Search
Write a publication
Pull to refresh
0
@Redlumusread⁠-⁠only

User

Send message

Как поднять инфраструктуру для запуска автотестов Android в облаках

Level of difficultyEasy
Reading time12 min
Views6.2K

Привет! Меня зовут Денис Веренцов, я Android-инженер из команды Emcee, это технопродукт Авито. В статье я расскажу, как можно развернуть облачную инфраструктуру для запуска нативных автотестов Android-приложений на основе разработанного нами решения.

Статья будет полезна тем, кто хочет организовать инфраструктуру для запуска тестов, но не обладает подходящим для этого «железом». Материал также будет интересен тем, у кого есть желание попробовать технологию Emcee в деле.

Читать далее

Как быстро уснуть? Здоровый сон — хороший код

Level of difficultyEasy
Reading time5 min
Views15K

Каким бы ни был здоровым человек (как психически, так и физически), проблемы со сном в той или иной мере были у каждого. Многие не раз задавали себе вопрос: как быстро уснуть, если на сон ограниченное время? Как уснуть ночью, когда по различным причинам этого не удаётся сделать? Все мы прекрасно знаем, что крепкий сон - это залог продуктивной деятельности и здоровья. Поэтому, давайте разберем разные моменты и подходы во Вселенной Морфея и Гипноса.

Читать далее

Монитор для чувствительных глаз — алгоритм подбора и один параметр, о котором Вы уже скорее всего забыли

Reading time13 min
Views21K

Подбор монитора для чувствительных глаз? Лично мне это знакомо в бОльшей степени, чем хотелось бы. Придумал - или скорее формализовал - алгоритм решения этой проблемы, по нему же быстро нашёл идеальный для своих глаз сетап, прошедшие полгода без нареканий. И сам алгоритм и хронологию - рассказываю в данной статье.

Читать далее

Сравнение операторов RxJava 3 и Kotlin Coroutines Flow

Level of difficultyMedium
Reading time7 min
Views3.1K

Привет, Хабр! Меня зовут Константинов Александр, я Android-разработчик в «Студии Олега Чулакова». Сегодня мы сравим операторы RxJava 3 и Flow. Статья будет полезна как для изучения операторов, так и для более легкого перехода с RxJava на Flow.

Читать далее

Быстрый старт в QA Fullstack: чем вооружиться будущему стажеру в Альфа-Банке

Level of difficultyEasy
Reading time11 min
Views13K

Я очень хотела попасть в тестирование не питая иллюзий, что это «легкий вход в IT» — он давно перестал быть таковым! Сейчас я работаю QA Fullstack в клиентском пути «Платежи и Переводы» Альфа-Банка уже 1,5 года. Мечта сбылась, а помогли мне самообучение и курсы от Альфа-Банка.

Я пишу эту статью, потому что когда я сама готовилась, мне сильно не хватало подобных материалов для подготовки. В статье хочу поделиться планом обучения, материалами, статьями и наработками, которые мне помогли понять, что нужно для старта работы QA Fullstack. Здесь отражен только мой опыт, буду рада если он будет полезен.

Примечание. Статья предназначена специалистам уровня ниже junior — тем, кто только изучает QA и/или пытается попасть на стажировку.

Читать далее

Уже не джун, но знаний нужно всё больше. Как самостоятельно учиться сложным вещам

Reading time6 min
Views12K

Самостоятельное обучение для разработчика — процесс, который не кончается никогда. Это касается не только джунов, но и намного более опытных мидлов и сеньоров. Однако возникает вопрос: все ли мы умеем учиться правильно? Как преодолеть свою инертность и научиться понимать сложные вещи? 

Один из важных моментов — это мышление роста, который подразумевает замену убеждения «я плох в X» на «я еще не узнал о X». Конечно, позитивный настрой помогает, но, одного его явно недостаточно, особенно на длинной дистанции. Обучение — это навык, над которым нужно упорно работать. Под катом разработчик и автор Джулия Эванс рассмотрит конкретные приемы, которые помогут вам стать более эффективным учеником. В частности — как превращать свое незнание в конкретные вопросы, которые приведут к решению задач и получению новых знаний.

Читать далее

Не играй в догонялки со Spring — Explyt Spring plugin для IDEA Community

Level of difficultyEasy
Reading time14 min
Views6.5K

Всем привет. После моей предыдущей статьи о Maven плагине, где я предложил новый подход к реализации и создал свою версию для IDEA (вместо того чтобы писать свой мини-мавен, я делегировал всю основную работу ему посредством Maven плагина), меня пригласили работать над Spring плагином в IT-стартап Explyt. Компания занимается автоматической генерацией тестов на базе AI и формальных методов. В процессе работы столкнулся с проблемами, похожими на те, которые решал в своем Maven плагине. У меня возникло некое дежавю, и я подумал: почему бы не использовать подобный подход, чтобы доработать и улучшить Dependency Injection Explyt Spring плагина? Текст для тех, кто работает со Spring-плагинами и хочет разобраться, как эффективно применять готовую логику Спринга для новых задач. Заходите под кат, подробно поделюсь своим кейсом, покажу код, расскажу про итерации и объясню логику.

Читать далее

API-Шлюз или опять тестировать

Reading time7 min
Views2.3K

При разработке микросервисов рано или поздно возникает вопрос о специализированном микросервисе, через который проходят запросы и маршрутизируются в нужный. Это необходимо не только с точки зрения безопасности (в одной точке аудита можно увидеть все нужные события), но так же с точки зрения производительности. Ваш микросервис выполняющий важную функцию наверняка использует массу ресурсов, например подключения к БД - даже если обработка плохого запроса не требует подключения к БД, то она гарантированно ворует ресурс ЦП. Разумеется можно покупать все более производительные сервера, но такой путь ни к чему не приведет.

Если вас интересует эта тема, то добро пожаловать под кат.

В лунапарк

Как написать Android приложение, которое не будет стыдно положить в портфолио. Гайд для новичков в Android разработке

Level of difficultyEasy
Reading time22 min
Views17K

Гайд по написанию Android-приложения с нуля, используя лучшие архитектурные подходы – Clean Architecture и MVI, они обеспечат поддерживаемость, тестируемость и масштабируемость приложения, что особенно важно для сложных и долгосрочных проектов.

Читать далее

Расширенная шпаргалка по корутинам Kotlin

Level of difficultyMedium
Reading time8 min
Views8.3K

Предположим, что вы уже какое-то время работаете с Kotlin-корутинами и знакомы с базовыми концепциями, такими как приостанавливаемые (suspend) функции и билдер launch. Однако по мере усложнения проектов вы всё чаще сталкиваетесь с необходимостью искать решения для более продвинутых задач и обращаетесь к поисковым системам или искусственному интеллекту за помощью.

Эта шпаргалка создана как удобный справочник для сложных сценариев работы с корутинами и содержит ключевые идеи, накопленные мной за всё время работы.

Читать далее

Оптимальные протоколы обучения 2024 согласно исследованиям Стэнфорда

Level of difficultyEasy
Reading time4 min
Views21K

Лучший способ выявить эффективные тактики обучения — это исследовать приемы, которыми пользуются студенты передового вуза мира.

Например, Стэнфорда, где учеба сопоставима с полноценной работой. Для студентов так тратить время на непродуктивные тактики обучения равно расписаться в собственной неорганизованности.

Вот конспект эффективных техник из подкаста профессора Эндрю Хубермана о том, как учится наш мозг, согласно новейшим исследованиям на группах студентов.

Читать далее

Как стать одержимым: эффективная учёба

Level of difficultyEasy
Reading time14 min
Views22K

Обучение — ценный навык, позволяющий стать лучше в той или иной сфере. Только лишь благодаря обучению вы можете овладеть каким‑либо навыком. Благодаря обучению вы можете впитать знания, а затем использовать их на практике, чтобы постепенно становиться лучше в вашей сфере. Прочитав эту статью, вы поймете, какие детали стоят за процессом обучения = что улучшает ваш процесс обучения, а что ухудшает.

К теме

Как жить без IntelliJ IDEA? Часть №2. Поддержка Spring

Level of difficultyEasy
Reading time12 min
Views26K

В первой статье из цикла «Как жить без IntelliJ IDEA» мы рассмотрели возможные альтернативы привычной многим IDE. 

Во второй статье из цикла команда Spring АйО выяснила, какие есть альтернативы Ultimate в части поддержки Spring и насколько хорошо они справляются со своей задачей.

Читать далее

ASN.1 Разбираемся с пакетами

Level of difficultyMedium
Reading time24 min
Views3.1K

ASN.1 (Abstract Syntax Notation One) представляет из себя язык для описания структур данных. По сути — это набор правил, для преобразования значений определённого типа в поток байтов для их последующей отправки по каналу связи. По мере развития языка, улучшались методы кодирования. Так помимо методов определения структур данных ASN.1 появились так же различные методы кодирования (BER, CER, DER, PER и др.). Одним из самых компактных методов кодирования ASN.1 (в плане результирующей байтовой последовательности), является «Packed Encoding Rules (PER)». Дело в том, что типы в BER (CER, DER), кодируются в виде последовательности TLV (Tag Length Value), в то время как в PER используются последовательности V (Value) или LV (Length Value). Такой подход позволяет уменьшить закодированную последовательность, однако, если BER можно декодировать без доступа к источнику ASN.1, получив "голые" результирующие данные (тип данных, плюс значение), то с PER такой фокус не пройдёт, без источника, какие-либо осмысленные результаты получить не получится (я не рассматриваю вариант глубокого анализа, с набором статистики по большому количеству реализаций).

В этой статье, я хотел бы рассказать о принципах кодирования структур данных при использовании правил кодирования PER.

Читать далее

Вернемся к основам: что на самом деле нужно для продуктивной работы?

Level of difficultyEasy
Reading time8 min
Views3.7K

Мы в beeline cloud любим продуктивно поработать. А как у вас дела с продуктивностью? Подготовили переводную статью, где автор — человек, угодивший в черную дыру аутотренингов, но за долгое время так ничему и не научившийся, пытается разобраться в ситуации.

На свете есть целые горы хаков для повышения продуктивности, специальных приложений, инструментов, советов, методик, книг, подкастов, обучающих роликов, рекомендаций, практик, статей, блогов, курсов, электронных книг, таблиц на стенку, учебников, шаблонов, планировщиков, дневников, вебинаров, семинаров, интервью, челленджей, каналов YouTube, тредов,  подробных руководств, чек-листов...

...

стратегии самосовершенствования, лайфхаки, оздоровительные практики, трекеры зависимостей, ежедневные аффирмации, мозговые штурмы, списки задач...

Ну, вы поняли.

Огромная куча контента, обещающего, что он изменит вашу жизнь.

И вы все равно читаете эту статью.

Может, что-то пошло не так, как думаете?

Читать далее

Функциональные HTTP-эндпоинты с Spring MVC/WebFlux и Kotlin

Level of difficultyEasy
Reading time7 min
Views2.7K

Функциональные подходы к разработке в Spring становятся все более популярными благодаря своей гибкости и лаконичности. В новой статье от эксперта сообщества Spring АйО, Михаила Поливахи, рассматривается, как можно эффективно определять HTTP-эндпоинты с использованием Spring MVC/WebFlux, применяя функциональный стиль программирования на языке Kotlin. Аналогичный подход можно реализовать и на Java, хотя использование Kotlin позволяет существенно упростить код.

Читать далее

Решение проблемы race condition в Kotlin корутинах

Level of difficultyMedium
Reading time4 min
Views7.7K

Синхронизация корутин в Android имеет огромное значение для обеспечения безопасности и эффективности многопоточности. Коррутины упрощают управление асинхронными задачами, но без должной синхронизации могут возникнуть проблемы, такие как race condition, что приведет к неправильному поведению приложения.

Читать далее

На самом деле, ООП — это не так уж плохо

Level of difficultyMedium
Reading time10 min
Views13K

ООП — определённо не самая моя любимая парадигма, но я считаю, что в мейнстримном ООП со статической типизацией кое-что сделано правильно, и это очень важно для программирования.

В этом посте я хочу рассказать, что же самое важное реализовано в мейнстримных ООП-языках со статической типизацией.

Затем я сравню ООП-код с Haskell, чтобы показать, что ООП не так плох во всём, как, похоже, считают поклонники функционального программирования.
Читать дальше →

SOLID на котиках

Reading time7 min
Views52K


Каждый программист хоть раз слышал о принципах SOLID. На собеседованиях и экзаменах в вузах многие из нас пытались вспомнить, о чем же был тот самый принцип Лисков. Однако вряд ли цель преподавателей и интервьюеров — заставить нас заучивать строчки из учебников. SOLID действительно помогает писать качественный код, когда во всем разберешься! Если вы этого еще не сделали, добро пожаловать под кат. Еще раз взглянем на то, как устроены всем известные принципы. Обещаю — без духоты, все рассмотрим на примерах с котиками.
Читать дальше →

XSS + Ошибки конфигурации OAuth = Кража токенов и захват аккаунта

Reading time3 min
Views3.5K

В этой статье я расскажу о том, как мне удалось найти уязвимость для захвата аккаунта (Account Takeover, ATO) через ошибки конфигурации OAuth и украсть токены авторизации.

Читать далее

Information

Rating
Does not participate
Registered
Activity