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

User

Send message

От Kotlin до машинного кода

Level of difficultyEasy
Reading time3 min
Views7K

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

Читать далее

Особенности нагрузочного тестирования банковского ПО: что важно учитывать

Level of difficultyMedium
Reading time4 min
Views1.8K

Представьте ситуацию: через банк ежесекундно проходит более 150 транзакций. Как можно быть уверенными, что такая система будет достаточно надежна и не откажет в 11 вечера в субботу, разочаровав клиентов?

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

Читать далее

VPN: последний выпуск. Завтра об этом писать нельзя

Level of difficultyEasy
Reading time5 min
Views171K

Закрываем двери в свободный интернет: завтра, 30 ноября, вступает в силу закон №406-ФЗ запрещающий распространять информацию о способах обхода блокировок.

Кто знает о визитах на Pornhub?
- Какие именно данные сохраняют провайдеры о нас — с VPN и без.
- Что нового запретят обсуждать о VPN (и почему).
- VLESS — замена VPN, которую ещё можно упомянуть (пока).
- ТРИ способа как вычислить, что вы зашли через прокси или VPN.

Читайте, пока это ещё не заблокировали!

Читать далее

Что происходит, когда вы вводите адрес сайта и нажимаете Enter?

Level of difficultyMedium
Reading time8 min
Views31K

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

На собеседованиях я иногда задаю один, казалось бы, простой вопрос: «Что происходит после того, как вы вводите URL сайта в адресную строку браузера и нажимаете Enter?» Этот вопрос подходит как для Junior, так и для Middle-разработчиков, а иногда и для Senior, потому что, несмотря на его фундаментальность, в нем многие ошибаются или не могут дать точного ответа.

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

В этой статье я постараюсь кратко, но понятно, разобрать этот процесс: от ввода URL до полной загрузки и отображения страницы в браузере. Рассмотрим именно загрузку статических страниц, хотя для фреймворков процесс будет немного сложнее.

Читать далее

«Модная болезнь»: как распознать и предотвратить профессиональное выгорание

Reading time16 min
Views7.9K

Меня зовут Анна Бабич, я психолог, ACT-терапевт, руководитель Школы самооценки и автор телеграм-канала «Жить навстречу себе». В этой статье поговорим о способах распознать профессиональное выгорание — проблему, о которой, кажется, все знают, но попадают в ловушку снова и снова. Я расскажу, как выгорание ощущается внутри и как проявляется во внешней жизни, как его самостоятельно продиагностировать; разберу причины выгорания — какие звоночки вы упорно пропускаете; помогу определить пути, как выбраться из выгорания, если вы в него угодили, и какой должна быть профилактика.

Читать далее

Что тестировщикам (и не только им) важно знать о базах данных. Шпаргалка по популярным ошибкам

Reading time6 min
Views16K

Нужно ли тестировщику разбираться в базах данных? Короткий ответ: да, как минимум на том уровне, чтобы можно было успешно выявлять и локализовывать ошибки в их работе. На практике же проблемы в базах данных зачастую фрустрируют даже опытных QA-инженеров. Что-то где-то пошло не так, но что именно и где?

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

Под катом — наша шпаргалка по распространённым багам в работе баз данных. Разбили их по категориями, снабдили примерами и объяснили первопричины появления. Надеемся, будет полезно не только QA-специалистам, но и бэкенд-разработчикам начального уровня, а также всем, кто хочет углубить свои познания в области взаимодействия с БД.

Читать далее

Популярные фреймворки для автоматизации тестирования

Level of difficultyEasy
Reading time11 min
Views9.9K

Привет всем! В этой статье мы собрали для новичков подборку фреймворков для автотестирования. Вы найдёте здесь подсказки, на что опираться при выборе, а также сводку некоторых достоинств и недостатков.

Фреймворк для автоматизации тестирования — это инструмент, экономящий время разработчикам, которым необходимо тестировать функциональность и надёжность программного обеспечения. Автоматизируя повторяющиеся, трудоёмкие задачи, такие как тестирование потоков входа и поведения меню, фреймворки могут выявлять проблемы на ранних этапах процесса разработки, а это в значительной степени способствует повышению общего качества конечного продукта.

Читать далее

Введение в Spring AOP на примере кастомизации логирования

Level of difficultyEasy
Reading time6 min
Views3.5K

Аспектно-ориентированное программирование (AOP) — это мощный инструмент для разделения кода, который позволяет изолировать кросс-функциональные задачи, такие как логирование, обработка транзакций и безопасность, от основной бизнес-логики. В этой статье мы рассмотрим, как использовать AOP в Spring для реализации кастомного логирования с помощью аннотации и аспектов.

Читать далее

Как ручному тестировщику стать автоматизатором?

Level of difficultyMedium
Reading time10 min
Views16K

Всем привет, я Александра Гордеева, QA‑инженер в Авито, занимаюсь тестированием CRM для партнеров по выкупу. В этой статье рассуждаю о способах перехода из ручного тестирования в автоматизированное и зачем этот переход вообще нужен. А еще делюсь личным опытом — как я стала писать первые автотесты, не имея технического образования и не зная языков программирования.

Читать далее

Улучшаем автокомплит в смешанных Java-Kotlin проектах

Level of difficultyEasy
Reading time4 min
Views1.9K

Недавно я наткнулся на статью, где описывается, как можно убрать мешающие варианты из автокомплита в Android Studio. Но тот способ касается только классов — с методами у меня так же не получилось, и тогда мне пришла идея.

Что за идея?

Готовим лоб к пробитию стен: как Android-разработчику найти первую работу в 2025-м

Level of difficultyEasy
Reading time7 min
Views3.4K

Привет, друзья!

Я Илья Попов, действующий senior android разработчик, ментор начинающих андроид-разработчиков и автор телеграм-канала Android Dev Notes.

Итак, вы приняли решение стать андроид-разработчиком. Как найти дорогу в этом океане неизвестного впереди?

Раз наша цель – работа в андроид-разработке, то первое, что нужно сделать – изучить рынок вакансий и понять, а что от вас вообще нужно работодателям?

Идём на основные сайты для поиска работы (hh, superjob, career.habr, geekjob, getmatch и тд) и анализируем пару десятков вакансий джуниоров и то, какие требования в них фигурируют чаще всего. Составляем себе список навыков, библиотек, фреймворков, инструментов для освоения.

Следующее, с чем надо определиться: к какому из пунктов приступать первым? Здесь два варианта:

– самостоятельно изучаем программы существующих курсов в интернете и на этой основе пытаемся понять, в какой последовательности что обычно учат

– просим помощи в составлении программы у компетентного разработчика, который занимается обучением начинающих

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

Читать далее

Задача о банкомате

Level of difficultyMedium
Reading time12 min
Views19K

Рассмотрим одну задачу, которая на leetcode маркирована как "medium", хотя на самом деле это невероятно сложная задача. Примечательна она тем, что допускает в разной степени оптимальные решения, самые упрощённые из которых действительно весьма просты, а самые оптимальные ещё не найдены современной наукой. В этой задаче ценно то, что на её примере можно изучать целый ряд техник программирования.

Читать далее

Избавляемся от Android в api-модулях

Level of difficultyMedium
Reading time4 min
Views4.2K

Небольшой туториал на тему «Как уменьшить количество Android-модулей в проекте при помощи оберток над Android-классами»

На решение, которое будет описано ниже, меня натолкнула статья Оптимизация Gradle: избавляемся от Android-модулей. В ней приведен синтетический бенчмарк, из которого видно, что количество gradle-модулей с Android-плагином негативно влияет на скорость конфигурации проекта, а также на количество необходимой памяти. Мы, как инженеры, должны воспользоваться каждой возможностью ускорить сборку проекта. Однако в статье приведено несколько недостатков описанного подхода, и на момент написания статьи они были критичными и не давали возможности использовать его в нашем проекте. 

Итак, теперь сначала..

Читать далее

ИТ-шники: разновидности, отличительные черты

Level of difficultyEasy
Reading time13 min
Views20K

Множество вакансий, разные вывески, а внутри почти никакой разницы.

Почему так? Правда ли нет разницы, или она размыта?

Попробуем разобраться вместе. Допускаю, что подобных статей было, есть и будет много, но все же постараюсь сделать ее достаточно уникальной, может даже полезной:)

Продолжение следует

REST vs gRPC. Межсервисная интеграция для начинающих

Level of difficultyEasy
Reading time10 min
Views33K

Привет! Меня зовут Максим Соколов, я — аналитик в команде “Управление доступностью товаров и категорий”. В нашей команде была выделена отдельная подгруппа, которая создавалась специально под новый продукт-фичу для селлеров. Сразу стало понятно, что для реализации нового функционала требуется разработка нового микросервиса. Командой разработки было принято решение интегрироваться по gRPC, но мне до конца не было понятно, почему выбор именно такой. И тут я решил разобраться подробнее!

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

Могу сказать, что выбор технологии для проекта — задача непростая, требующая совместного участия разных участников технической команды: аналитик, разработчик, тимлид, архитектор.

На свете много статей про проектирование API, в которых описаны архитектурные стили, протоколы, технологии. Информации — огромное количество, иногда она даже противоречивая, поэтому новичку тяжело подступиться к теме.

В этой статье я хочу дать точку входа для джун/мидл системных аналитиков, которые хотят разобраться в межсервисной интеграции. Мы пройдёмся по HTTP, REST, RPC и gRPC, разберёмся в их значениях. Выясним, почему эти аббревиатуры появляются, когда происходит проектирование API, и попробуем понять, когда и что следует применять.

Также по ходу статьи буду оставлять ссылки на хорошие (по моему мнению) статьи для более глубокого погружения в поднимаемые темы.

Читать далее

Как мы развиваем архитектурные навыки ИТ-специалистов в Сбере

Level of difficultyEasy
Reading time9 min
Views9.9K

Привет, Хабр! Меня зовут Антон Мамичев, я исполнительный директор Департамента корпоративной архитектуры в Сбере и лидер Школы ИТ‑архитекторов.

ИТ‑архитектура для большой организации имеет исключительное значение. Компании очень важно, чтобы сотрудники обладали необходимыми компетенциями для успешного выполнения поставленных задач, а сотрудникам эти компетенции необходимы, чтобы чувствовать себя увереннее, быть успешнее и расти профессионально. Для достижения этой задачи в Департаменте корпоративной архитектуре (ДКА) была создана Школа IT‑архитекторов SberAX.

Управление таким объёмом уникального контента невозможно по наитию, поэтому мы разработали свой подход, о котором я и расскажу в этой статье.

Читать далее

Оптимизация PostgreSQL: параметры для ускорения запросов

Level of difficultyMedium
Reading time5 min
Views13K

Почему SQL-запросы иногда работают не так быстро, как хотелось бы? PostgreSQL — мощный инструмент, который раскрывает свои возможности при правильной настройке. В этой статье мы разберем ключевые параметры, влияющие на производительность запросов, а также дадим рекомендации, как их использовать. В конце мы обсудим, как избежать ошибок при конфигурации и почему мониторинг так важен.

Читать далее

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

Level of difficultyEasy
Reading time12 min
Views6.2K

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

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

Читать далее

Information

Rating
Does not participate
Registered
Activity