Рекомпозиция в Jetpack Compose и View-рендеринг на основе XML: в чем разница?

Рекомпозиция в Jetpack Compose и View-рендеринг на основе XML: в чем разница?

Переход от традиционного View-рендеринга на основе XML к рекомпозиции в Jetpack Compose может оказаться непростым. Но преимущества Compose с точки зрения производительности, удобства разработки и обслуживания оправдывают затраченные усилия.
Настройка приложения Go с проблемами сборки мусора

Настройка приложения Go с проблемами сборки мусора

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

10 инструментов ИИ для SaaS-стартапов 2025

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

C++: практическое руководство по пересечению множеств

Изучим нюансы set_intersection, проиллюстрируем примерами. Дадим рекомендации по производительности.
Как Nginx справляется с тысячами конкурентных запросов

Как Nginx справляется с тысячами конкурентных запросов

Изучим безблокировочную архитектуру Nginx. Из каких компонентов она состоит и почему этот событийный подход быстрее?
Как стать Android-разработчиком за 2 месяца

Как стать Android-разработчиком за 2 месяца

Хотите всего за пару месяцев научиться разрабатывать приложения с нуля? Воспользуйтесь простым руководством для начинающих по созданию первого в жизни Android-приложения.
12 проверенных способов оформления продакшн-кода на Python

12 проверенных способов оформления продакшн-кода на Python

Возьмите на заметку 12 способов оформления продакшн-кода, повышающих его удобочитаемость и производительность. Они выручат вас во многих случаях, включая распаковку кортежа, списковое выражение, объединение строк, создание цепочки методов, индексирование вложенных словарей. 
C++: полное руководство по параметризованным классам

C++: полное руководство по параметризованным классам

Изучим особенности создания и реального применения этих классов. Проиллюстрируем практическими реализациями и примерами.
Построение потоков событий с Rust и Kafka: практическое руководство

Построение потоков событий с Rust и Kafka: практическое руководство

Реализуем отправителей и получателей, настроим корректную обработку ошибок, конфигурацию и типы. Обозначим подводные камни, дадим рекомендации.
C++: полное руководство по push_back

C++: полное руководство по push_back

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

Наблюдаемость как суперспособность

Автор рассказывает о платформе отслеживания инцидентов incident.io, а ее устройстве изнутри и рекомендует, где и как разместить трассировки, чтобы облегчить жизнь разработчиков ПО.
Apache Iceberg за семь часов

Apache Iceberg за семь часов

Подробно разберем принцип работы, изучим внутренние механизмы Apache Iceberg, поэкспериментируем с этим файловым форматом и PySpark, PyIceberg, каталогом Nessie.
Защита бэкенда на Go: шифрование, предотвращение уязвимостей и не только

Защита бэкенда на Go: шифрование, предотвращение уязвимостей и не только

Обсудим, как обезопасить бэкенд от SQL-инъекции, межсайтовых скриптинга и подделки запросов, настроить безопасные заголовки и логирование. Дадим рекомендации, проиллюстрируем фрагментами кода.
Генерация аналитических данных из PDF-файлов с помощью Apryse и GPT

Генерация аналитических данных из PDF-файлов с помощью Apryse и GPT

Одного лишь извлечения необработанного текста недостаточно для автоматизации получения финансовой информации. Чтобы использовать LLM в полную силу, необходимо с самого начала сохранять табличные данные в корректном формате. Сегодня познакомимся с мощным инструментом Apryse, который в этом поможет.
C++: полное руководство по перечислениям

C++: полное руководство по перечислениям

Что придумали разработчики для преодоления ограничений C++? Познакомимся с практическими подходами к прохождению перечислений, дополним примерами кода и реальными сценариями.
Ruby on Rails  -  пишите тесты, как профессионал

Ruby on Rails  —  пишите тесты, как профессионал

Узнаем на простых и эффективных примерах, как пишутся оптимизированные, быстрые и точные тесты. Хорошие тесты против плохих: как сокращается дублирование, поддерживается четкая структурированность, соблюдается принцип DRY.
Компонентный подход: организация навигации с помощью библиотеки Decompose. Часть 3

Компонентный подход: организация навигации с помощью библиотеки Decompose. Часть 3

Компонентный подход позволяет масштабироваться до больших проектов с десятками или даже сотнями экранов. Узнайте, как с помощью Decompose и Jetpack Compose настроить сложную навигацию в таком приложении, а также как добавить уровни навигации.
C++: подробное руководство по циклам for с векторами

C++: подробное руководство по циклам for с векторами

Изучим методы прохождения векторов, включая продвинутые, проиллюстрируем примерами. Разберем нюансы производительности и обработки ошибок.
Контейнеризация проекта GO с Envoy

Контейнеризация проекта GO с Envoy

Контейнеризируем приложение и задействуем Envoy как прокси-службу взаимодействия. В итоге настроим, соберем, запустим и протестируем контейнер.
Функциональное программирование Java: элегантное применение Predicate и Function

Функциональное программирование Java: элегантное применение Predicate и Function

Освоим интерфейсы для валидации, фильтрации и преобразования данных. Научимся использовать Predicate и Function со спецификациями JPA, коллекциями и потоками для реальных приложений.
Компонентный подход: реализация экранов с помощью библиотеки Decompose. Часть 2

Компонентный подход: реализация экранов с помощью библиотеки Decompose. Часть 2

В этой части рассмотрим с позиций компонентного подхода реализацию сложных экранов с использованием библиотеки Decompose. Используя описанные методы, вы сможете управлять экранами любой сложности.
Код на Python медленный? Вот 5 простых решений, чтобы быстро его ускорить

Код на Python медленный? Вот 5 простых решений, чтобы быстро его ускорить

Бывший сотрудник Google, разработчик на Django и просто энтузиаст Python делится накопленным опытом оптимизации кода. При беглом взгляде рекомендации кажутся очевидными, но читайте до конца: скорее всего, вы вспомните средства работы с кодом, о которых из-за постоянного изучения чего-то нового успели забыть.
C++: руководство по vector.erase

C++: руководство по vector.erase

Разберем две разновидности метода и нюансы производительности. Рассмотрим типичные ошибки и реальные применения.
Написание модульного теста на Go с gRPC

Написание модульного теста на Go с gRPC

Настроим тестовый сервер, объявим ожидаемый результат и сравним с фактическим. Запустим модульный тест. Что, если тест не выполнен?
Apache Spark  -  типичные ошибки и их устранение

Apache Spark  —  типичные ошибки и их устранение

Рассмотрим, как устраняются эти ошибки, выполняются оптимизации для совершенствования производительности и использования памяти приложений Spark. Проиллюстрируем примерами, дадим рекомендации.
Компонентный подход: преодоление сложности в Android-приложениях. Часть 1

Компонентный подход: преодоление сложности в Android-приложениях. Часть 1

Как Android-разработчик, вы должны иметь четкое представление о компонентном подходе и его преимуществах. Это позволит избежать чрезмерной сложности в приложениях и значительно ускорить рабочие процессы.
Конкурентность на Go: горутины и каналы для масштабируемых приложений

Конкурентность на Go: горутины и каналы для масштабируемых приложений

Рассмотрим две ключевые концепции, их применение в реальном примере. Дадим рекомендации по конкурентному выполнению.
Реализация gRPC и PostgreSQL на GO

Реализация gRPC и PostgreSQL на GO

Пошагово создадим масштабируемое серверное приложение: подключим модульные тесты, контейнеризируем приложение и задействуем Envoy как прокси-службу взаимодействия. В итоге спроектируем, выполним оценку, запустим и протестируем его.
Бесконечное количество репозиториев Git на Cloudflare Worker с быстрым развертыванием

Бесконечное количество репозиториев Git на Cloudflare Worker с быстрым развертыванием

Авторы Gitlip рассказывают о своем продукте — инструменте совместной разработки в эпоху искусственного интеллекта. Это комплексное сочетание контроля версий на основе Git, совместного написания кода и развертывания в один клик. Цель — упростить практическое применение современных моделей искусственного интеллекта.
Реализация функции Pull-to-refresh с помощью Compose Material 3

Реализация функции Pull-to-refresh с помощью Compose Material 3

Pull-to-refresh ("потяни, чтобы обновить") - удобная функция, которая позволяет пользователям приложений обновлять контент с помощью простых жестов. Опишем реализацию этой возможности посредством новейшей версии библиотеки Compose Material 3.
C++: руководство по считыванию CSV-файлов

C++: руководство по считыванию CSV-файлов

Изучим разные подходы: от стандартных библиотек C++ для простых файлов до реализации пользовательской логики парсинга или привлечения сторонних библиотек для сценариев посложнее. Проиллюстрируем кодом и разберем нюансы.
Kotlin Multiplatform: как усовершенствовать процесс разработки iOS

Kotlin Multiplatform: как усовершенствовать процесс разработки iOS

Изучим стратегии и нюансы применения KMP в ключевых областях  -  архитектуре проекта, внедрении зависимостей, Kotlin-Swift совместимости. Рассмотрим, как в командах решаются типичные проблемы.
Ruby: рефакторинг без лишних сложностей

Ruby: рефакторинг без лишних сложностей

С чего начать и как избежать ловушки усложнения? Дадим рекомендации с небольшим примером.
Как создать импульсный эффект в Jetpack Compose

Как создать импульсный эффект в Jetpack Compose

Хотите впечатлить своих пользователей импульсным эффектом? Воспользуйтесь простым руководством по его созданию и использованию. В нем вы найдете примеры реализации этой анимации применительно к кнопке: по умолчанию, с градиентом, с настройкой цвета и формы, опционально.
Как писать безопасный код на Go

Как писать безопасный код на Go

Что значит помнить о безопасности при написании кода Go? Ответить в одной, короткой статье кажется невозможным. По этой причине сузим его до нескольких конкретных практик. При постоянном применении они приведут к написанию надежного, безопасного и производительного кода. Как быть в курсе новостей о безопасности Go? Как поддерживать код Go в актуальном состоянии? Как тестировать код, уделяя особое внимание безопасности и надежности? Что такое CVE и где можно узнать о самых распространенных уязвимостях ПО?
C++: практическое руководство по проверке наличия файла

C++: практическое руководство по проверке наличия файла

Изучим различные методы проверки, проиллюстрируем примерами реального применения. Какие факторы учитываются при выборе метода и где они сбалансированы оптимально?
10 продвинутых советов по Git

10 продвинутых советов по Git

Если вы уже понимаете, как работает Git, эта статья поможет вам развить умение работать с Git и стать более эффективным.
C++: подробное руководство по массивам

C++: подробное руководство по массивам

Разберем основные концепции, в том числе продвинутые. Проиллюстрируем примерами с решениями, поможем подготовиться к собеседованию.
Презентации в терминале

Презентации в терминале

Забудьте о постоянных переключениях контекста, из-за которых убивается демонстрационный процесс. Создавайте терминальные презентации.
Рекомендации по Go: выделение памяти с new

Рекомендации по Go: выделение памяти с new

Разберем нюансы функции new на примерах. Для каких целей и типов она используется, как ею упрощается инициализация?
Перестановка чисел в C++: руководство

Перестановка чисел в C++: руководство

Изучим нюансы каждого метода, оценим производительность и поможем выбрать оптимальный. Проиллюстрируем примерами реального применения.
Синхронизация данных в реальном времени между MongoDB и Elasticsearch на Golang

Синхронизация данных в реальном времени между MongoDB и Elasticsearch на Golang

Сделаем мощную событийно-ориентированную службу синхронизации на Golang. Поэтапно настроим, оптимизируем производительность и протестируем.
Как создать анимацию мерцающего текста в Jetpack Compose

Как создать анимацию мерцающего текста в Jetpack Compose

Воспользуйтесь руководством по созданию и применению анимации мерцающего текста в Jetpack Compose. Такая анимация позволит повысить плавность работы приложений, улучшить взаимодействие пользователей с интерфейсом, сделать более комфортным время ожидания. 
382 часа на изучение Rust и блестящая обезьянка

382 часа на изучение Rust и блестящая обезьянка

Как создать игровой движок для физически корректного рендеринга? Впечатления о разных аспектах языка от инженера-программиста Unity, сравнение Rust и C#.
Основные методы оптимизации базы данных SQL

Основные методы оптимизации базы данных SQL

При разработке приложений часто возникают проблемы с индексированием данных, структурированием SQL-запросов, проектированием схем и т.д. Это руководство позволит значительно повысить эффективность БД: запросы и операции станут намного экономичнее и быстрее.
Использование Kotlin Flow для отображения наблюдаемого состояния UI на экране в Android

Использование Kotlin Flow для отображения наблюдаемого состояния UI на экране в Android

Узнайте, что такое реактивное программирование и как оно реализуется в Android с помощью Kotlin Flow. Понимание разницы в использовании различных типов Flow позволит создавать отзывчивые, неблокирующие и реактивные пользовательские интерфейсы.
7 малоизвестных, но полезных библиотек Python 

7 малоизвестных, но полезных библиотек Python 

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

Эффективные шаблоны архитектуры программного обеспечения

Ознакомьтесь с востребованными шаблонами архитектуры программного обеспечения и их практическим применением. Четкое представление о том, какие из шаблонов наиболее эффективно работают в определенных ситуациях, - ключ к созданию оптимальной архитектуры.
Как создать атомарный загрузчик в Jetpack Compose

Как создать атомарный загрузчик в Jetpack Compose

Jetpack Compose предлагает эффективные инструменты для разработки визуально привлекательной плавной загрузки. Предлагаем руководство по созданию 3D-анимации атомарного загрузчика, которая впечатлит самых претенциозных пользователей современных приложений.
Проекты Go: создаем собственное канареечное развертывание

Проекты Go: создаем собственное канареечное развертывание

Каким образом перенаправляется трафик? Разберем различные подходы к развертыванию с примерами кода.
Объединение множеств C++: практическое руководство с реальными примерами

Объединение множеств C++: практическое руководство с реальными примерами

Научимся эффективно применять в проектах алгоритм std::set_union, оптимизировать его. Разберем нюансы, проиллюстрируем примерами и реальным сценарием.
Почему имена Android-пакетов имеют вид com.xyz.abc?

Почему имена Android-пакетов имеют вид com.xyz.abc?

Узнайте, почему необходимо использовать реверсивный домен организации при именовании пакетов в Android-проекте. Усвоив этот простой способ именования, вы сохраните свой код чистым, организованным и готовым к последующим изменениям.
Обработка ошибок на Rust: безопасный и чистый код без unwrap

Обработка ошибок на Rust: безопасный и чистый код без unwrap

Почему unwrap рискован на продакшене? Рассмотрим альтернативы  -  unwrap_or и unwrap_or_else, оператор ?, выражения match и while let.
Как проходится ассоциативный массив на C++

Как проходится ассоциативный массив на C++

Изучим способы итеративного прохождения  -  от простого цикла for с диапазоном и до гибких итераторов. Разберем нюансы и типичные ошибки, проиллюстрируем примерами.
Реализация ролевого контроля доступа в Elasticsearch

Реализация ролевого контроля доступа в Elasticsearch

Как защитить данные и предотвратить несанкционированный доступ? Пройдем этапы настройки, дадим рекомендации по эффективному ролевому контролю.
Jetpack Compose: настройка Retrofit и Ktor с помощью Dagger Hilt для внедрения зависимостей

Jetpack Compose: настройка Retrofit и Ktor с помощью Dagger Hilt для внедрения зависимостей

Предлагаем исчерпывающее руководство по сетевой интеграции в Jetpack Compose. Вы сможете создать простое приложение для отображения списка с помощью Retrofit или Ktor, выбрав тот фреймворк, который соответствует вашим потребностям.
Что такое «мьютекс» и как им предотвращаются состояния гонки?

Что такое «мьютекс» и как им предотвращаются состояния гонки?

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

С этим инструментом код чище в 10 000 раз

Это цифровая Фрекен Бок, которая просматривает кодовую базу, находит надоедливые print и удаляет их быстрее, чем вы произнесете слово «рефакторинг». Разберем основной функционал, нюансы конфигурационного файла.
C++: практическое руководство по инициализированию вектора размером

C++: практическое руководство по инициализированию вектора размером

Изучим способы инициализации  -  от простых до самых сложных вроде пользовательских типов и многомерных структур. Разберем их нюансы и типичные ошибки, проиллюстрируем примерами и поможем выбрать оптимальный способ.
Ruby on Rails 7: важные рекомендации для высококачественного кода

Ruby on Rails 7: важные рекомендации для высококачественного кода

Используйте Hotwire для современного фронтенда, оптимизируйте запросы к базе данных, повышайте качество кода инструментами вроде RuboCop - и ваши проекты Rails 7 будут выгодно отличаться. Так создаются высокопроизводительные, сопровождаемые, масштабируемые приложения.
Мьютекс в Android: предотвращение состояния гонки

Мьютекс в Android: предотвращение состояния гонки

Использование мьютекса может значительно повысить производительность и надежность приложения, сделав многопоточный код более безопасным и предсказуемым. Рассмотрите на примерах Kotlin, как мьютекс применяется в Android для предотвращения состояния гонки.
10 эффективных методов написания Python-кода в одну строку

10 эффективных методов написания Python-кода в одну строку

Ознакомьтесь с руководством по сокращению Python-кода до одной строки с использованием передовых методов. Наглядные примеры и экспертные рекомендации помогут оптимизировать код, сделать его более лаконичным и эффективным.
C++: практическое руководство по множественным конструкторам

C++: практическое руководство по множественным конструкторам

Изучим важные концепции  -  от простой перегрузки до сложных списков инициализаторов и делегирования конструкторов. Проиллюстрируем примерами, разберем нюансы и типичные ошибки.
Как создать анимацию кругового вытеснения в Jetpack Compose

Как создать анимацию кругового вытеснения в Jetpack Compose

Хотите разработать анимацию плавного кругового вытеснения, часто используемую в видеомонтаже и презентациях для создания плавных переходов между кадрами и слайдами? Предлагаем освоить как ручной, так и автоматический случаи использования этого анимационного эффекта. 
Чистая реализация структуры проекта на Go

Чистая реализация структуры проекта на Go

Изучим модульную структуру проекта для тестируемого и сопровождаемого приложения Go, которое создается по принципам чистой архитектуры. Используя веб-фреймворк Gin и базу данных MongoDB, сделаем простой REST API с функционалом регистрации, авторизации пользователей и управления их профилями.
Интуиция как ключ к успешному собеседованию по написанию кода

Интуиция как ключ к успешному собеседованию по написанию кода

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

Разработка отказоустойчивых микросервисов с шаблонами «Повтор» и «Выключатель»

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

5 команд Linux, которые облегчают жизнь программистам

Повысьте свою производительность с помощью эффективных команд Linux. Они значительно упростят выполнение повседневных задач - от эффективного управления файлами и папками до навигации по каталогам и запоминания команд. 
Топ-10 типичных ошибок при реализации паттерна MVVM в Android 

Топ-10 типичных ошибок при реализации паттерна MVVM в Android 

Вы наверняка совершали эти ошибки при реализации паттерна Model-View-ViewModel в Android. Предлагаем на практических примерах разобраться в их причинах и рассмотреть способы их исправления. Это позволит значительно повысить сопровождаемость, тестируемость и общее качество Android-приложений. 
Модульное тестирование для долговечного кода

Модульное тестирование для долговечного кода

Как вместо постоянной отладки сфокусироваться на создании функционала? Написать тесты! Дадим рекомендации по написанию эффективных модульных тестов.
Комментарии к коду: почему больше не всегда значит лучше

Комментарии к коду: почему больше не всегда значит лучше

Многие программисты злоупотребляют комментариями, что приводит к неправильному пониманию назначения и логики кода. Рассмотрим случаи, когда комментарии необходимы, а когда от них лучше воздержаться. 
C++: подробное руководство по разыменованию указателя

C++: подробное руководство по разыменованию указателя

Разберем нюансы и ошибки разыменования. Проиллюстрируем примерами и реальным сценарием. Сравним эффективность прямого доступа к массиву и разыменования указателя.
Альтернатива Docker Desktop, которая работает быстрее

Альтернатива Docker Desktop, которая работает быстрее

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

Операторы Ruby: звездочка * и двойная звездочка **

Изучим эти мощные инструменты, их принцип работы. Рассмотрим, как аргументы передаются в методы, собираются в массив и хеш, каковы особенности присвоения значений.
Реализация "бесконечного" пейджера в Jetpack Compose

Реализация «бесконечного» пейджера в Jetpack Compose

Хотите превратить стандартный пейджер в "бесконечный", чтобы повысить удобство и вовлеченность пользователей? Предлагаем простые стратегии реализации бесконечного скроллинга с минимальными изменениями кода. 
28 суперполезных фрагментов Python-кода для решения повседневных задач 

28 суперполезных фрагментов Python-кода для решения повседневных задач 

Повысьте свою производительность с помощью этих решений на Python. Охватывая широкий спектр задач - от объединения датафреймов и слияния списков до работы с датами, сортировки данных и управления использованием памяти, - они позволят обеспечить эффективность кода и оптимизировать работу с данными.
C++: подробно о реализации двусторонней очереди

C++: подробно о реализации двусторонней очереди

Изучим особенности реализации deque, ее отличия от vector и разберем нюансы производительности. Проиллюстрируем примерами и реальным сценарием.
PostgreSQL и MySQL: подробное сравнение

PostgreSQL и MySQL: подробное сравнение

Изучим преимущества, ограничения и сценарии этих двух баз данных. Сравним их по многим аспектам, поможем сделать правильный выбор.
Xcode: шпаргалка для iOS разработчиков

Xcode: шпаргалка для iOS разработчиков

Приводим исчерпывающий список клавиш быстрого доступа: сборка, запуск, отладка, навигация и редактирование кода, рефакторинг и преобразование… Сохраните в закладках.
Как участие в открытых проектах помогает найти работу?

Как участие в открытых проектах помогает найти работу?

Мечтаете о карьере разработчика ПО, но не знаете, как выгодно выделиться на фоне конкурентов? Узнайте о преимуществах участия в таких мероприятиях, как Hacktoberfest, и внесении вклада в такие открытые проекты, как Taipy, Composio, CopilotKit и ToolJet. 
Эффективная стратегия тестирования Android-проектов. Часть 2: модульное тестирование

Эффективная стратегия тестирования Android-проектов. Часть 2: модульное тестирование

Эта часть посвящена основным элементам модульного тестирования при подготовке Android-проектов, а также различным типам тестовых дублеров. Вы узнаете, что именно надо тестировать при Android-разработке и получите рекомендации по написанию удобных в обслуживании и эффективных тестов.
Модульные тесты на Golang: от стандартного Testing до Testify

Модульные тесты на Golang: от стандартного Testing до Testify

Напишем тесты для проверки работы функций. Посмотрим, как совершенствуются тестовые сценарии с Testify.
C++: подробное руководство по is_open()

C++: подробное руководство по is_open()

Рассмотрим типичные сценарии применения этой функции, разберем нюансы и ошибки. Проиллюстрируем примерами и дадим рекомендации по производительности.
Удаленная отладка контейнеризованного Java-приложения с IntelliJ IDEA

Удаленная отладка контейнеризованного Java-приложения с IntelliJ IDEA

Как быть, если в локальных сеансах отладки проблема не воссоздается? Пошагово пройдем процесс настройки и запуска отладчика.
Java: оператор try-with-resources

Java: оператор try-with-resources

Изучим синтаксис try-with-resources, его преимущества по сравнению с традиционными блоками try-finally и нюансы управления ресурсами. Приведем практические примеры.
Эффективная стратегия тестирования Android-проектов. Часть 1

Эффективная стратегия тестирования Android-проектов. Часть 1

В этой части описан и обоснован сбалансированный подход к комплексному тестированию Android-приложений, включающий автоматизированные (модульные, интеграционные, сквозные, интерфейсные) и ручные тесты. Такая эффективная стратегия позволяет минимизировать время и усилия, получив максимальную отдачу.
Многопоточность на Rust: ускоряем приложения, делаем их эффективнее

Многопоточность на Rust: ускоряем приложения, делаем их эффективнее

Продемонстрируем мощный подход к выполнению операций в многосхемных базах данных и к параллельной обработке данных. Из строгой системы типов Rust, асинхронных возможностей и потоковой модели создадим надежное приложение.
Как последовательно писать аналитические SQL-запросы за 8 шагов

Как последовательно писать аналитические SQL-запросы за 8 шагов

Сразу никогда не бывает очевидно, как перейти от простого SQL-запроса к сложному, особенно если запрос содержит сложные вычисления. Одна из «опасностей» SQL заключается в том, что можно создать исполнимый запрос, но вернуть неверные данные. Например, легко увеличить значение вычисляемого поля, объединив его с несколькими строками. Автор материала показывает, как строить SQL последовательно, чтобы сократить количество ошибок.
[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel

[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel

Чем @AppStorage отличается от @State и как решается потенциальная проблема @AppStorage с самим SwiftUI? Применим подход со ViewModel.
Зачем изучать Linux?

Зачем изучать Linux?

Сегодня многие домашние пользователи и компании переходят на Linux. И это не единственная причина, почему вам стоит присоединиться к их числу. Даже если вы поклонник Windows, изучение Linux - просто необходимость для разработчика ПО.
Как создать загрузчик с вращающимися кругами в Jetpack Compose

Как создать загрузчик с вращающимися кругами в Jetpack Compose

Хотите порадовать пользователей анимацией с вращающимися разноцветными кругами? Выполнить ее в Jetpack Compose позволит функция SpinningCirclesLoader. Предлагаем руководство с несколькими вариантами ее использования. 
Удаление последнего символа строки на C++: методы и их применение

Удаление последнего символа строки на C++: методы и их применение

Сравним эффективность pop_back(), resize(), erase() и substr(), разберем их нюансы, проиллюстрируем примерами. Рассмотрим реальный сценарий и типичные ошибки, поможем выбрать оптимальный метод
C# -  создаем клиент-серверный чат на TCP

C# —  создаем клиент-серверный чат на TCP

Сделаем простую TCP-настройку, чтобы приложения C# «общались» по сети, как старые друзья. Снабдим сервер «ушами», а клиента  -  рацией.
Шпаргалка по Kotlin Flow для продвинутых инженеров Android

Шпаргалка по Kotlin Flow для продвинутых инженеров Android

Изучим ключевые понятия и нюансы: холодные и горячие потоки, каналы channel, потоки flow. Разберем операторы, промежуточные операции и функции для объединения потоков, сценарии применения и фрагменты кода.
Пишем балансировщик нагрузки на Golang

Пишем балансировщик нагрузки на Golang

Реализуем логику распределения нагрузки с алгоритмом циклического перебора, перенаправлением запроса на бэкенды через обратный прокси-сервер, тремя повторами при сбое и обозначением бэкенда «мертвым». Как обрабатываются ситуации сбоя запроса?
18 понятий программирования, о которых вы никогда не слышали (но должны были!)

18 понятий программирования, о которых вы никогда не слышали (но должны были!)

Откройте для себя "скрытые жемчужины" программирования, чтобы улучшить навыки в написании кода. Освоив эти 18 понятий, вы получите мощные инструменты для простого решения сложных проблем - будь то оптимизация производительности, безопасности или читабельности. 
Как создать CSV-файл с помощью C++

Как создать CSV-файл с помощью C++

На примерах разберем разные подходы, дадим рекомендации по повышению производительности. Рассмотрим реальный сценарий и типичные ошибки.
Роль метода Stream.map() в Java

Роль метода Stream.map() в Java

Для многих задач в Java метод map() предоставляет гибкие и лаконичные решения. Ознакомьтесь с ними, чтобы понять, как работает этот метод и в каких случаях он может быть полезен. Применяя его в реальных сценариях, вы упростите код, повысив его читаемость и удобство при сопровождении.
Новые способы оптимизации стабильности в Jetpack Compose

Новые способы оптимизации стабильности в Jetpack Compose

C выпуском Compose 1.5.4 появился новый режим работы - Strong Skipping. Он позволяет сделать большее количество классов стабильными без дополнительного кода. Предлагаем на конкретных примерах кода разобраться, насколько это удобно и эффективно.
14 вопросов по валидациям на Ruby on Rails

14 вопросов по валидациям на Ruby on Rails

Шпаргалка для собеседования по важной теме Ruby. Некоторые ответы снабжены примерами кода.
Design Patterns

Сказание о шаблоне Стратегия и его реализации

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

В чем магия ожидаемых результатов?

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

Пошаговое построение логистической регрессии в Python

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

Определите свой уровень технических навыков — экспериментальный проект от Яндекса

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

Краткое введение в функции высшего порядка в JavaScript

Функции высшего порядка Функция, принимающая в качестве аргументов другие функции или возвращающая другую функцию в качестве результата, называется функцией высшего порядка. С функциями в JavaScript вы можете: Хранить...