Тренды

Все что касается разработки: образовательные статьи, тренды, технологии, языки, фреймворки и многое другое!

Шпаргалка по 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. Некоторые ответы снабжены примерами кода.
Почему микросервисы нужны каждому разработчику

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

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

Как спроектировать рекомендательную систему

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

C++: подробное руководство по std::accumulate

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

Руководство по устранению неполадок в Kubernetes

Изучим передовые практики, инструменты, команды, методы отладки, рекомендации с примерами. Рассмотрим продвинутые методы: инструментирование трассировок, удаленную отладку.
Преобразуем проект в мультиплатформенный с Kotlin Multiplatform: зачем, когда и как

Преобразуем проект в мультиплатформенный с Kotlin Multiplatform: зачем, когда и как

Как сделать разработку эффективнее, не переписывая приложения? Расскажем о преимуществах и универсальной стратегии плавного перехода, при котором сохраняется надежность цифрового продукта.
Оптимальные инструменты Firebase для мобильного приложения

Оптимальные инструменты Firebase для мобильного приложения

Как упрощается процесс разработки с готовыми решениями аутентификации, уведомлений, баз данных реального времени? Изучим реализацию важного функционала: FCM, Remote Config, расширений, распространения приложений, устранения сбоев, мониторинга производительности.
5 навыков работы в Python на прокачку

5 навыков работы в Python на прокачку

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

Механика разрешения имен и связывания на C++

Разберемся с разрешением символов, типами связывания и распространенными проблемами: ошибками повторных определений, неразрешенных символов, нарушений правила одного определения. Узнаем, как предотвращаются конфликты именования.
Мой первый опыт работы с языком Gleam 

Мой первый опыт работы с языком Gleam 

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

Как создать анимированный переключатель тем в Jetpack Compose

Сколько пользователей, столько и предпочтений. Темы - не исключение. Кому-то больше нравится темное оформление, кому-то - светлое. Сегодня посмотрим, как разработать оригинальный переключатель тем с помощью Jetpack Compose.
C++: практическое руководство по priority_queue

C++: практическое руководство по priority_queue

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

Продвинутые концепции Kafka для старшего инженера-программиста

Рассмотрим важный функционал: репликацию, избыточность данных, гарантии доставки, разбиение на разделы, управление смещениями, операции контроллера, эволюцию схем. Изучим расширенное применение Kafka, политики сжатия и хранения сообщений, сценарии Kafka Streams, безопасность и соответствие требованиям, мониторинг и наблюдаемость.
10 наиболее эффективных CLI-инструментов 

10 наиболее эффективных CLI-инструментов 

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

Адаптируем Android-приложение к большим размерам экрана с помощью классов window-size

"Большой экран" становится популярным и быстрорастущим сегментом устройств Android. Самое время научиться оптимизировать приложение для любого размера экрана. Узнайте о классах window-size, рассмотрите сценарии их использовании в разных типах макетов навигации и закрепите материал с помощью реальной демонстрации.
C++: полное руководство по преобразованию строки в число двойной точности

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

Изучим методы с их преимуществами и недостатками, оптимальные сценарии. Поможем оценить нюансы std::stod(), std::stringstream и atof() и выбрать метод под конкретные требования.
Подробно о технологии «Издатель-подписчик» Redis

Подробно о технологии «Издатель-подписчик» Redis

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

Стековая и кучная память в Kotlin 

Хотите максимально эффективно управлять памятью в Kotlin? Тогда выясните, чем различаются стековая и кучная память. Разобраться в этом непростом вопросе помогут простые аналогии и примеры кода.
Создание снэкбара с обратным отсчетом времени в Android с помощью Jetpack Compose

Создание снэкбара с обратным отсчетом времени в Android с помощью Jetpack Compose

Снэкбар - полезная функция в контексте современной веб-разработки. Она дает пользователю время подумать над принятием важного решения. Поговорим о том, как создать снэкбар, используя арсенал Jetpack Compose.
Приложение React Native с поддержкой Apple Watch и виджетов

Приложение React Native с поддержкой Apple Watch и виджетов

Хотите достичь новых горизонтов в разработке на React Native? Сегодня поговорим о том, как интегрировать приложение Apple watchOS с приложением на React Native, а также создадим виджет, который можно установить в циферблате часов в качестве дополнительной функции.
Как я создал 2D-игру с помощью Ebiten за 40 минут

Как я создал 2D-игру с помощью Ebiten за 40 минут

Хотите создать видеоигру менее чем за час? Следуйте руководству по максимально упрощенной разработке 2D-игры с использованием языка Go и библиотеки Ebiten и возможностью развертывания на Windows, macOS и Linux. 
Конструктор перемещения на C++

Конструктор перемещения на C++

Сравним конструкторы перемещения и копирования: что быстрее? Изучим их связь и соответствующие семантики, варианты применения.
Базовая торговая стратегия, позволяющая переиграть рынок

Базовая торговая стратегия, позволяющая переиграть рынок

Предлагаем руководство по созданию на Python и бэктесту простой, но эффективной торговой стратегии. Используя всего два базовых финансовых показателя, она обеспечит быстрый и стабильный рост дохода в течение длительного времени.
Как реализовать в Golang двухфакторную аутентификацию с TOTP

Как реализовать в Golang двухфакторную аутентификацию с TOTP

Поэтапно настроим среду, интегрируем в проект библиотеку и рассмотрим различные аспекты 2FA, включая генерирование и хранение секретов, обработку аутентификации пользователя и проверку кодов TOTP. Дадим рекомендации по реализации в приложении Golang.
5 реальных способов достичь сбалансированности трудовой жизни

5 реальных способов достичь сбалансированности трудовой жизни

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

Улучшение воспроизведения видео с помощью ExoPlayer

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

3 лайфхака по работе с музыкальным ИИ в условиях нехватки данных 

Нехватка данных - не повод сдерживать ваш энтузиазм! Практические советы эксперта в области музыкального ИИ помогут создать надежную модель даже с небольшим набором данных. Она позволит решать любые задачи - будь то определение тональности, обнаружение помех, распознавание инструментов или сравнение музыкальных фрагментов.
Дорожная карта iOS для разработчиков Android: основы

Дорожная карта iOS для разработчиков Android: основы

Хотите стать универсальным разработчиком, знающим особенности программирования как для Android, так и для iOS? Этот гайд расскажет о различиях и сходствах работы с этими двумя платформами. 
Методы wait(), notify() и notifyAll() в Java

Методы wait(), notify() и notifyAll() в Java

Ознакомьтесь с ключевыми аспектами языка Java: межпотоковое взаимодействие, синхронизация, многопотоковая обработка. Особое внимание обратите на работу методов wait(), notify() и notifyAll() и рекомендуемые практики их применения. 
Освоение широковещательных приемников в Android

Освоение широковещательных приемников в Android

Широковещательные приемники - важный компонент разработки Android. Чтобы использовать их потенциал правильно, узнайте об их основных функциях и областях применения. 
10 способов повысить качество Python-кода

10 способов повысить качество Python-кода

Пополните копилку своих Python-компетенций 10 лайфхаками, которые должен знать каждый программист. Применяя их в повседневной практике, вы не только будете писать эффективный код профессионального уровня, но и повысите собственную производительность.
SQL в браузере  -  веб-оболочка DuckDB для анализа локальных данных

SQL в браузере  —  веб-оболочка DuckDB для анализа локальных данных

Как анализировать данные намного проще и полнофункциональнее, чем в Excel? Сделаем локальный файл доступным для SQL-операций с DuckDB, преобразуем в реальную таблицу, доберемся до файлов на GitHub и S3.
Как создать форму текстового фона в Jetpack Compose

Как создать форму текстового фона в Jetpack Compose

Красивое оформление повышает привлекательность текста для пользователей. Сегодня расскажем, как с помощью Jetpack Compose "одеть" текст в фоновую форму.
Ознакомление с функциями высшего порядка в Kotlin

Ознакомление с функциями высшего порядка в Kotlin

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

Отладка зависимостей в Gradle

Узнайте, как с помощью dependencyInsight отлаживать версии транзитивных зависимостей в Android-приложении. Переопределение транзитивных версий зависимостей позволит избежать конфликта версий, ведущим к сбоям работы приложений.
7 типичных ошибок в Go-интерфейсах 

7 типичных ошибок в Go-интерфейсах 

Интерфейсы - одна из отличительных особенностей языка Go. Новички часто путаются в том, как и когда их использовать. Разберем типичные ошибки, допускаемые при работе с Go-интерфейсами. 
Шаблоны проектирования распределенных систем и не только

Шаблоны проектирования распределенных систем и не только

Изучим преимущества и недостатки типовых шаблонов распределенных систем и микросервисов. Рассмотрим также не связанные с ними, но интересные концепции.
Развертывание безопасных Java-приложений на AWS EKS с GitLab CI/CD, Maven, Trivy и SonarQube

Развертывание безопасных Java-приложений на AWS EKS с GitLab CI/CD, Maven, Trivy и SonarQube

Настроим приложение, пройдем модульное тестирование, сканирование безопасности, анализ качества кода, сборку и контейнеризацию. Упростим сложные развертывания, а инструменты и процессы интегрируем в единый автоматизированный рабочий поток.
Ознакомление с Work Manager в Android

Ознакомление с Work Manager в Android

Work Manager - это компонент Android Jetpack, который помогает выполнять задачи как можно быстрее и в наиболее подходящее время. Ознакомьтесь с его базовыми и продвинутыми возможностями, а также лучшими практиками использования.
Создание кастомного балансировщика нагрузки на Go для gRPC с приоритизацией адресов

Создание кастомного балансировщика нагрузки на Go для gRPC с приоритизацией адресов

Друзья, рады поделиться с вами оригинальной статьёй, написанной владельцем нашего канала специально для Хабра. В этом материале подробно рассматривается процесс разработки собственного балансировщика нагрузки на языке Go для gRPC, с акцентом на приоритизацию адресов. Статья охватывает постановку задачи, анализ стандартных решений и их недостатков, а также пошаговую реализацию кастомного балансировщика с примерами кода. Если вы интересуетесь высоконагруженными системами, балансировкой нагрузки и gRPC, эта статья будет вам полезна.
Шаблон "запрос-ответ" в RabbitMQ: подход на основе EventListener в Node.js

Шаблон «запрос-ответ» в RabbitMQ: подход на основе EventListener в Node.js

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

Оптимизация начальной загрузки сервера с RocksDB

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

Как создать 3D-границу в Jetpack Compose

Воспользуйтесь руководством по созданию модификатора 3D-границ и панели поиска с использованием этого модификатора. Вы научитесь рисовать тени и блики для получения эффекта выпуклости, а также узнаете, как написать TextField с индивидуальным стилем.
MVI на Eventbrite

MVI на Eventbrite

Архитектура MVI обеспечивает приложениям Eventbrite четкое разделение задач, предсказуемый поток данных и централизованное управление состоянием. Изучите подробно эту архитектуру, оцените ее преимущества перед MVVM и узнайте, как имплементировать ее в приложение.
Мониторинг приложения Golang с Prometheus, Grafana, New Relic и Sentry

Мониторинг приложения Golang с Prometheus, Grafana, New Relic и Sentry

Изучим, как осуществляются мониторинг и логирование службы Go. Напишем код приложения и модульный тест, создав конфигурационные и тестовые файлы, и посмотрим метрики в дашборде Grafana.
Повышение безопасности Angular-приложения путем интеграции OCR и биометрии 

Повышение безопасности Angular-приложения путем интеграции OCR и биометрии 

Хотите защитить пользователей своих приложений от мошеннических действий? Сделайте это с помощью автоматического извлечения данных путем OCR и биометрических технологий. Предлагаем подробное руководство по интеграции OCR с биометрическими решениями.
Принцип DRY в Kotlin: повышение качества и удобства сопровождения кода

Принцип DRY в Kotlin: повышение качества и удобства сопровождения кода

Принцип DRY позволит оптимизировать процесс Kotlin-разработки: снизит количество ошибок, упростит обновление и сопровождение кода, повысит его читаемость. Ознакомьтесь с примерами применения этого подхода и рекомендациями по его корректному использованию.
JAVA: разница между параметрами JVM -D, -X, -XX

JAVA: разница между параметрами JVM -D, -X, -XX

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

Типы функций и функции высшего порядка на Go

Рассмотрим объекты первого класса, их влияние на производительность. Изучим варианты использования с примерами: обратные вызовы, анонимные функции, замыкания, композиция функций, обработка ошибок, тестирование.
Динамическое извлечение видеокадров в Android

Динамическое извлечение видеокадров в Android

Предлагаем пошаговое руководство по извлечению кадров из воспроизводимого видео в Android-приложениях с использованием ExoPlayer и MediaMetadataRetriever. Описанные здесь методы предлагают эффективные решения - будь то редактирование видео, анализ кадров или улучшение пользовательского опыта.
Как Ktlint облегчает жизнь разработчикам

Как Ktlint облегчает жизнь разработчикам

Узнайте о фантастических возможностях Ktlint и о том, как внедрить его в проект. Этот инструмент, выполняющий статический анализ и автоматическое форматирование кода, позволит сэкономить массу времени и трудозатрат. 
Основы SQL: разница между GROUP BY и PARTITION BY

Основы SQL: разница между GROUP BY и PARTITION BY

Несмотря на кажущуюся простоту, SQL может таить в себе немало особенностей, о которых лучше узнать заранее. Сегодня рассмотрим основные различия между операторами GROUP BY и PARTITION BY, а также их основные сценарии использования.
Вопросы на собеседованиях для опытных профессионалов Java в 2024 году

Вопросы на собеседованиях для опытных профессионалов Java в 2024 году

Рассмотрим применение интерфейсов в разных целях и сценариях. Поопределяем временную сложность, изучим практическое назначение агрегации, композиции и наследования, утечку кода и другие проблемы Java.
Миграция UI-ориентированной библиотеки Android на Compose Multiplatform (Android/iOS)

Миграция UI-ориентированной библиотеки Android на Compose Multiplatform (Android/iOS)

Написать кроссплатформенный пользовательский интерфейс на Kotlin - уже не проблема. Теперь Android-разработчики могут создавать iOS-приложения на Kotlin с минимальными дополнительными усилиями. Убедитесь в этом на примере успешной миграции Android-библиотеки на Compose Multiplatform. 
LOESS в Rust

LOESS в Rust

Пришло время перенести LOESS-код из Python на Rust? Предлагаем описание процесса переноса с оптимальными решениями при переписывании кода. Вы будете впечатлены возросшей производительностью переписанного кода!
Продвинутый поиск Meilisearch для приложения Golang

Продвинутый поиск Meilisearch для приложения Golang

Применим упрощенный подход интеграции Meilisearch с Golang: обойдя процессы создания БД и вставки данных, получим данные напрямую из внешних источников и вставим их в Meilisearch. Реализуем функционал поиска, создав индексы, вставив в них данные, настроив поисковый запрос для функции поиска.
Как предотвратить утечки памяти в Android-приложении

Как предотвратить утечки памяти в Android-приложении

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

Простая и эффективная утилита сжатия данных кодами Хаффмана на Haskell

Автор материала объясняет, как устроено кодирование Хаффмана, затем пишет простую и понятную реализацию на Haskell и оборачивает ее в интерфейс командной строки, а еще делится ссылкой на отчет профайлера, который показывает, что программа расходует один и тот же (константный, постоянный) объём памяти вне зависимости от размера входных данных.
Пора отказаться от “@Input” и “@Output” в Angular

Пора отказаться от “@Input” и “@Output” в Angular

Ознакомьтесь с реализацией входов модели - новшества, введенного в Angular 17.3 для упрощения двунаправленной привязки данных. Отказ от традиционных декораторов @Input() и @Output() и принятие директивы @model позволит улучшить читаемость, сопровождаемость и общую реактивность Angular-приложений.
Моделирование лесных пожаров

Моделирование лесных пожаров

Моделирование природных явлений - процесс непростой, но увлекательный. Он позволяет выявить закономерности, на которые затем можно ориентироваться в условиях реального мира. Сегодня поговорим о том, как создать модель лесных пожаров с помощью numpy и matplotlib и какие при этом факторы стоит учитывать. 
Реализация конвейера CI/CD «от и до»

Реализация конвейера CI/CD «от и до»

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

UseCase: лучшие практики чистой архитектуры и красные флаги

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

Реализация подсказок с помощью Modifier в Jetpack Compose

Занимаетесь проектированием интуитивно понятных интерфейсов? Тогда вам не обойтись без подсказок, особенно необходимых при обновлении приложения. Предлагаем упрощенную версию реализации подсказок с использованием Modifier — компонента библиотеки Jetpack Compose.
Самый быстрый способ cоздать CRUD API в Golang

Самый быстрый способ cоздать CRUD API в Golang

Поэтапно сделаем пригодный для промышленной эксплуатации API. Менее чем в 50 строках кода реализуем его с миграциями, REST-обработчиками, функцией main, создадим простейший компонент  -  слой данных.
Расшифровка собеседования разработчика в Cisco 2024: Java, Spring Boot, Hibernate

Расшифровка собеседования разработчика в Cisco 2024: Java, Spring Boot, Hibernate

Разберем полную запись технической части для продвинутых. Все это актуальные вопросы и ответы для желающих работать в Cisco Systems.
5 крутых функций Chrome DevTools, о которых не знают большинство разработчиков

5 крутых функций Chrome DevTools, о которых не знают большинство разработчиков

Среди множества интересных функций Chrome DevTools есть несколько по-настоящему крутых, но малоизвестных. Каждая из этих возможностей позволит делать на пару-тройку кликов меньше. Так почему бы не узнать о них прямо сейчас?
Реализация шаблона Saga на Go: практический подход

Реализация шаблона Saga на Go: практический подход

Разберем нюансы управления продолжительными транзакциями в распределенных системах, реальные сценарии применения. Проиллюстрируем примером действие компенсации в этапах транзакций, откат предыдущих транзакций.
Секреты в Android. Часть 2

Секреты в Android. Часть 2

В этой части рассмотрим процесс получения секретов из удаленного хранилища (сервера) с помощью сервисов Firebase Remote Config, API Play Integrity и Firebase App Check. Такой подход значительно повысит безопасность приложений, и злоумышленникам будет сложнее получить секреты. 
Netlas - полноценный инструмент интернет-разведки

Netlas — полноценный инструмент интернет-разведки

Ищете эффективные средства управление рисками информационной безопасности? С Netlas - инструментом интернет-разведки - потребуется всего несколько минут, чтобы создать область видимости любого целевого объекта и досконально исследовать ее.
Шаблон Sidecar-контейнера с Kubernetes и Go

Шаблон Sidecar-контейнера с Kubernetes и Go

Рассмотрим шаблон Sidecar, создадим две службы Go и выполним контейнеризацию, а затем развернем на Kubernetes. Отправим HTTP-запрос и отследим его перенаправление из Sidecar-контейнера в основной.
Секреты в Android. Часть 1

Секреты в Android. Часть 1

Обращение с секретными данными в мире Android требует определенной осторожности. В 1-й части цикла поговорим о том, как усложнить злоумышленникам доступ к секретам с помощью статических полей и NDK.
Лучшая IDE для Python-разработки в 2024 году

Лучшая IDE для Python-разработки в 2024 году

Обзор топовых сред разработки Python-проектов поможем понять, какая из них подходит именно вам. Помимо особенностей и возможностей каждой из них, вы получите рекомендации по началу работы с PyCharm - самой популярной IDE в профессиональном Python-сообществе.
Android/Kotlin/Jetpack Compose: обработка push-уведомлений

Android/Kotlin/Jetpack Compose: обработка push-уведомлений

Подробно обо всем: начнем с базовых настроек передачи и сохранения данных, получаемых в уведомлениях в Intents, а в итоге перейдем к данным, отображаемым в конкретном представлении Composable при нажатии на них пользователем. Сделаем акцент на извлечении токена, настройке MyFirebaseMessagingService, обработке сообщения, получаемого в закрытом/фоновом/неактивном/приоритетном приложении.
Почему стоит использовать GoFr для разработки Golang-бэкенда?

Почему стоит использовать GoFr для разработки Golang-бэкенда?

Разрабатываете микросервисы? Тогда вам обязательно нужно освоить GoFr. С этим фреймворком ваша работа станет намного проще и эффективней. Как надежный эксперт, он будет руководить каждым вашим шагом, обеспечив исключительную производительность.
Что важнее — промпт-дизайн или промпт-инжиниринг?

Что важнее — промпт-дизайн или промпт-инжиниринг?

В сфере языковых моделей разграничивают такие аспекты, как “промпт-дизайн” и “промпт-инжиниринг”. Первый относят к искусству, второй  —  к науке. Какой же из них важнее? Ответ на этот вопрос определит как настоящее, так и будущее человекоориентированного ИИ.
Темная сторона однонаправленных архитектур Swift

Темная сторона однонаправленных архитектур Swift

Однонаправленные архитектуры строго предусматривают, где и как обрабатываются состояния и эффекты. Но при этом страдают так называемой “пинг-понг-проблемой”, что сопряжено с риском для удобочитаемости. Поэтому стоит разобраться с этой проблемой и поискать способы ее преодоления.
Автоматизация платежей со Stripe и Golang: руководство разработчика

Автоматизация платежей со Stripe и Golang: руководство разработчика

Реализуем интегрируемый в онлайн-платформы функционал автоматической оплаты услуг, создадим сеанс оформления заказа для клиента на Go, Stripe и Gin. Разберемся, как с помощью хуков здесь устраняются основные сложности.
Изучаем AndroidManifest.xml: как подэлемент

Изучаем AndroidManifest.xml: <service> как подэлемент <application>

Чтобы сервисы приложения обнаруживались и запускались системой, они должны быть представлены в файле AndroidManifest.xml элементом . Разберем ключевые атрибуты элемента и посмотрим на примерах, как они работают.
Оптимизация кода задачи на миллиард строк — ускоряем запуск в 87 раз

Оптимизация кода задачи на миллиард строк — ускоряем запуск в 87 раз

Поэтапно увеличим производительность реализации парсера для огромного файла. Устраним копии и баги, воспользуемся профилировщиком, хеш-картой линейного зондирования, микрооптимизациями, распараллелим код.
Освоение функциональных возможностей Kotlin

Освоение функциональных возможностей Kotlin

Ознакомьтесь с основными функциями Kotlin. Их эффективное использование позволит создавать более упорядоченный, чистый, удобочитаемый и многократно используемый код.
Правила PRISM на языке Python

Правила PRISM на языке Python

PRISM - простой, но конкурентоспособный алгоритм вывода правил методом индукции. Ознакомьтесь с его реализацией на языке Python и рассмотрите несколько практических примеров использования.
Шпаргалка Swift для разработчиков Android/Kotlin

Шпаргалка Swift для разработчиков Android/Kotlin

Рассмотрим концепции Swift, обнаруживаемые при просмотре кода iOS, сравним их реализацию в Kotlin. Изучим, как здесь реализуется функционал опциональных привязок, словарей, расширений, структур, протоколов, анализируется код, просматриваются или пишутся технические спецификации/предложения.
Модульное тестирование с помощью JUnit в Android

Модульное тестирование с помощью JUnit в Android

Тестирование  —  неотъемлемая часть полноценной разработки программного обеспечения. Сегодня рассмотрим фреймворк JUnit, а также функции и правила, которые помогут провести тесты Android-продукта на достойном уровне.
От отправителя к получателю: подход Rust к локальной передаче файлов

От отправителя к получателю: подход Rust к локальной передаче файлов

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

10 типичных ошибок в коде и способы их предупреждения

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

Использование LLM в реальном мире

Как настроить большую языковую модель? Как составить промпт, чтобы получить приемлемый результат от ИИ? Как минимизировать количество токенов для снижения затрат? Предлагаем отправиться в увлекательное путешествие в мир ИИ и найти ответы на все эти вопросы.
Создание пользовательских метрик Prometheus в Golang и отправка оповещений в Slack с Grafana

Создание пользовательских метрик Prometheus в Golang и отправка оповещений в Slack с Grafana

Создадим настраиваемые показатели Prometheus с Go, подробно разберем метрики. При наличии оповещения в Grafana отправим сообщение на канал Slack.
Как вернуть контроль над состоянием данных с RemoteResult

Как вернуть контроль над состоянием данных с RemoteResult

Построим на основе Result универсальный способ обозначать состояния ресурса, чтобы из представлений SwiftUI реагировать на его изменения. Рассмотрим реальное применение этого перечисления и адаптируем его для архитектуры TCA.
Приемы работы в терминале Linux для повышения продуктивности

Приемы работы в терминале Linux для повышения продуктивности

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

Важные вопросы для собеседования по корутинам для опытных разработчиков Android

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

Выполняйте загрузку Excel-файлов в Python в 1000 раз быстрее

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

Эволюция монолитных систем

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

GoFr и Gin: сравнительное исследование

Напишем REST API с базой данных MySQL на своенравном GoFr и платформе для веб-приложений Gin. Сопоставим функционал этих двух фреймворков, его влияние на продуктивность разработчиков и пригодные для продакшена приложения.
Понимание и реализация смарт-указателя Arc и мьютекса на Rust

Понимание и реализация смарт-указателя Arc и мьютекса на Rust

Изучим модель владения, функционал потоков области видимости, попробуем самостоятельно разобраться с типажами-маркерами Send и Sync.
OOP

Хитрости объектно-ориентированного программирования. Часть 4: Шаблон Starter для Android

Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.  Предыдущие части: Часть 1, Часть 2, Часть 3. Создание Обычно мы создаем объекты в одном месте. Это может...
Data Analysis

Анализ автоаварий в Барселоне с использованием Pandas, Matplotlib и Folium

Open Data Barcelona - это сервис, предоставляющий наборы данных Барселоны, который содержит около 400 наборов, охватывающих широкий спектр тем, таких как население, бизнес и...
Как оптимизировать навигацию в Jetpack Compose

Как оптимизировать навигацию в Jetpack Compose

Проанализируем ситуацию с навигацией в Jetpack Compose, выявим существующие проблемы и рассмотрим конструктивное решение в виде реализации чистой навигации.
Angular

Оптимизация размера Angular bundle за 4 шага

Вам доводилось получать жалобы на слишком медленную загрузку веб-приложения или получать задачу “оптимизировать производительность” медленного приложения? Множество тем посвящено производительности приложений: отложенная загрузка, отслеживание...