Тренды

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

Развертывание безопасных 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.
Настройка компонентов и тем Material UI: современный подход

Настройка компонентов и тем Material UI: современный подход

Воспользуйтесь руководством по созданию ультрамодульной библиотеки компонентов с помощью Bit и Material UI. Она обеспечит расширенный набор настраиваемых компонентов и тем с предварительным просмотром и документацией, а также многократно используемую среду разработки.
Освойте оконные функции SQL раз и навсегда

Освойте оконные функции SQL раз и навсегда

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

Map-ориентированное программирование в Java

Map-ориентированное программирование в Java может быть насколько удобным, настолько и беспорядочным. Предлагаем задуматься над соотношением затрат и выгод от использования Map в качестве универсального возвращаемого типа.
Сериализация с Kotlin Serialization

Сериализация с Kotlin Serialization

Подробно изучим процесс кодирования/декодирования, применение аннотаций, перечислений, типов данных, сериализаторов. Как в Kotlin решается проблема сериализации полиморфных классов?
Создание кастомизированного кругового загрузчика в Jetpack Compose: изучение Android Canvas и анимации

Создание кастомизированного кругового загрузчика в Jetpack Compose: изучение Android Canvas и анимации

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

Добавляем в приложение SwiftUI холст Freeform, чат и видеозвонки

Создадим виртуальную доску SwiftUI для совместной работы над идеями. Поработаем с фреймворком PencilKit, разберем функционал, реализуемый при интегрировании в приложение на iOS.
Полное руководство по Kotlin для Android-разработчиков в 2024 году

Полное руководство по Kotlin для Android-разработчиков в 2024 году

Язык Kotlin  —  удобный и многофункциональный инструмент для создания современных мобильных приложений. Рассмотрим его сильные стороны и перспективы в мире Android-разработки.
Оптимизация кода Python с помощью конечных запятых: мощная техника

Оптимизация кода Python с помощью конечных запятых: мощная техника

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

Как использовать перечисления в Golang

Изучим способы создания перечислений с идентификатором iota и структурными тегами. Проверим поведения на тестовых сценариях.
Изучаем Rust. Потоковая передача tar-архива

Изучаем Rust. Потоковая передача tar-архива

Сделаем подробную реализацию асинхронного потока с нетривиальным конечным автоматом, проверим в консоли создание tar-архива, полностью распознаваемого в API среды выполнения Docker. Выполним идеальную интеграцию результата в процесс загрузки файлов.
Паттерны проектирования генеративного ИИ: полное руководство

Паттерны проектирования генеративного ИИ: полное руководство

Преимущества генеративного ИИ, способного к созданию контента, давно стали очевидными для всех. Тем не менее сохраняется необходимость в дальнейшей разработке схем, способствующих высокой эффективности моделей на базе ИИ. Сегодня рассмотрим 9 наиболее перспективных паттернов, которые находят широкое применение в современной индустрии.
Angular и Wiz: вместе лучше

Angular и Wiz: вместе лучше

В Google решили объединить Angular и Wiz. Как ожидается, это приведет к улучшению обоих веб-фреймворков: Angular извлечет выгоду из производительности Wiz, а Wiz будет полезен опыт Angular-разработчиков. Рассказываем подробности.
Начало работы с базой данных Room в Android

Начало работы с базой данных Room в Android

Хранение данных  —  один из важнейших аспектов разработки мобильных приложений для Android. Чтобы упростить этот процесс, используйте передовую библиотеку Room. В сегодняшнем гайде пошагово пройдемся по настройке Room и выполнению с ее помощью базовых операций.
Забудьте про pip  —  используйте uv

Забудьте про pip  —  используйте uv

Хотите устанавливать Python-пакеты в 100 раз быстрее, чем с pip? Используйте uv  —  сверхскоростной и супернадежный установщик и разрешитель Python-пакетов. Узнайте о создателе, возможностях, бенчмарках, установке и использовании этого инструмента.
6 рекомендаций по устранению типичных проблем производительности Java

6 рекомендаций по устранению типичных проблем производительности Java

Тщательно изучим проблемы производительности Java. Научимся выявлять и приоритизировать части кода с наибольшим влиянием на масштабируемость системы.
Придет ли язык программирования Mojo на смену Python?

Придет ли язык программирования Mojo на смену Python?

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

Корутины в Kotlin: топ-50 вопросов для собеседования с Android-разработчиками в 2024 году 

Хотите поразить рекрутеров своими знаниями в области корутин или стремитесь повысить свой квалификационный уровень? В любом случае будет полезно изучить основные вопросы для собеседования по корутинам, актуальные для Android-разработчиков в 2024 году.
Псевдоним типа в Swift

Псевдоним типа в Swift

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

Встроенные инструменты Golang

Освоим команды, которыми совершенствуются практически все этапы разработки на Go: от сборки исполняемых файлов до управления зависимостями и даже изучения документации. Дадим краткое описание, когда используются и примеры.
Освоение различных видов линий в Jetpack Compose с помощью PathEffect

Освоение различных видов линий в Jetpack Compose с помощью PathEffect

Устали от однообразных линий в Jetpack Compose? Вы не одиноки! Сегодня поговорим о том, как создавать различные стили линий и фигур в рамках Jetpack Compose и использовать их на практике.
Борьба с веб-скрейперами с помощью Rust

Борьба с веб-скрейперами с помощью Rust

Боты, использующие инструменты веб-скрейпинга, могут быть использованы злоумышленниками в самых неприглядных целях. Можно ли им противостоять? Да! Сегодня рассмотрим мощный инструмент для борьбы с такими непрошенными гостями, построенный на Rust.
Внедрение зависимостей в Android с помощью Koin

Внедрение зависимостей в Android с помощью Koin

Как и Dagger-Hilt, Koin является популярным фреймворком для внедрения зависимостей. Однако пользоваться им гораздо проще. Вы можете убедиться в этом на примере написания простого приложения для получения данных.
Как создать Android-приложение чат-бота с генеративным ИИ Google

Как создать Android-приложение чат-бота с генеративным ИИ Google

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

10 советов по созданию чистого кода для мобильной разработки на Kotlin в 2024 году

Умением писать чистый код должен обладать каждый программист. Разберем 10 полезных рекомендаций по созданию четкого и понятного кода, который легко сопровождать и отлаживать.
Слияние больших языковых моделей с помощью mergekit

Слияние больших языковых моделей с помощью mergekit

Слияние  —  инновационный способ создания передовых языковых моделей. В сегодняшнем гайде рассмотрим слияние с помощью библиотеки mergekit, подробно опишем, как работают механизмы SLERP, TIES, DARE и passthrough, а также приведем примеры конфигураций.
Подробно об акторах в Swift

Подробно об акторах в Swift

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

Программирование на Java. Глубокое погружение в ключевой функционал Java 21

Разберем новый LTS-выпуск: детализацию, проверку типов, решаемые с помощью записей проблемы, запечатанные классы/интерфейсы и подробнее  -  сопоставление с образцом. Чем обусловлены актуальность и популярность, каковы факторы значимости Java?
Sealed-интерфейс Kotlin: полное руководство для Android-разработчиков

Sealed-интерфейс Kotlin: полное руководство для Android-разработчиков

Хотите подняться на новый уровень производительности, эффективности и качества кода? Освойте sealed-интерфейсы Kotlin и начните внедрять их в свои проекты. Предлагаем исчерпывающее руководство по применению sealed-интерфейсов в Android-разработке.
Преобразование речи в текст с помощью ИИ на Python: пошаговый гайд

Преобразование речи в текст с помощью ИИ на Python: пошаговый гайд

Давно мечтали о виртуальном собеседнике на базе искусственного интеллекта? Представляем подробное руководство по созданию такой модели с помощью языка Python.
Реализация фильтра Блума на Go

Реализация фильтра Блума на Go

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

Как я создавал систему для алгоритмического трейдинга на Rust и о чем сожалею

Вы когда-нибудь ныряли в бассейне с цепными пилами на дне? Не удивляйтесь, но что-то похожее можно испытать при первом погружении в Rust. Избежать подобного экстрима поможет ознакомление с опытом человека, решившего использовать Rust без предварительной подготовки.
Spring Boot, Kafka и WebSocket для отправки сообщений в реальном времени

Spring Boot, Kafka и WebSocket для отправки сообщений в реальном времени

Мгновенный обмен сообщениями необходим в приложениях социальных сетей, инструментах совместной работы и платформах прямых трансляций. При этом значительно улучшается взаимодействие между пользователями. Рассмотрим создание приложения для чата, используя Spring Boot, Kafka и WebSocket.
Проектирование и развертывание Python-приложения для машинного обучения. Часть 2

Проектирование и развертывание Python-приложения для машинного обучения. Часть 2

Не нужно быть Атлантом, чтобы перенести модель в облако. Нужно лишь усвоить ключевые концепции проектирования Python-приложения для машинного обучения. Предлагаем рассмотреть их на высоком и низком уровнях, чтобы принять оптимальные решения для сбалансирования нагрузки и устранения узких мест при развертывании.
Работа с графиками в SwiftUI: руководство для начинающих

Работа с графиками в SwiftUI: руководство для начинающих

Хотите, чтобы визуальный контент приложения был представлен в виде функциональных графиков? Воспользуйтесь руководством по работе со Swift Charts. Оно поможет освоить процесс создания и настройки диаграмм с возможностями модифицирования, комбинирования и интерактивности.
Байт-код JVM: манипулирование и инструментация

Байт-код JVM: манипулирование и инструментация

Манипулирование байт-кодом JVM и его инструментация  -  техники, позволяющие максимально оптимизировать Java-приложения и входящие в арсенал каждого продвинутого разработчика. Узнайте о широких возможностях этих техник, сложностях их применения и лучших практиках.
Эти декораторы Python позволят сократить код вдвое

Эти декораторы Python позволят сократить код вдвое

Декораторы  -  интересный, мощный и полезный инструмент, способный значительно сокращать и структурировать код Phyton. Убедитесь в этом сами.
Обучение и развертывание пользовательской модели Detectron2 для обнаружения объектов в PDF-документах. Часть 1: обучение

Обучение и развертывание пользовательской модели Detectron2 для обнаружения объектов в PDF-документах. Часть 1: обучение

Предлагаем руководство по созданию приложения компьютерного зрения. Ускорить процесс машинного обучения поможет библиотека нового поколения  -  Detectron2. В результате вы получите модель, способную "видеть" и извлекать нужную информацию из PDF-документов.
Лучшие практики для эффективного кода на Golang. Часть 2

Лучшие практики для эффективного кода на Golang. Часть 2

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

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

Многие новички в программировании путают понятия "многозадачность" и "параллелизм". Большинство ошибочно считает, что это одно и то же. Разберемся в сути этих понятий с помощью простых примеров, ярких образов и прозрачных аллегорий.
Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 2

Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 2

2024-й обещает стать годом инноваций, когда ИИ и технологии объединятся, чтобы перекроить карты наших возможностей. Узнайте о катализаторах демократизации и персонализации ИИ, первых маркетплейсах для сервисов и агентов ИИ, новых моделях ценообразования и маркетинговых диджитал-стратегиях.
Подходы к созданию линейных графиков для iOS-приложений на базе фреймворка SwiftUI

Подходы к созданию линейных графиков для iOS-приложений на базе фреймворка SwiftUI

Специалисты в сфере мобильной разработки могут пользоваться несколькими способами для графического представления контента. Рассмотрим три метода создания диаграмм на iOS, в том числе и с помощью стороннего фреймворка.
Лучшие практики для эффективного кода на Golang. Часть 1

Лучшие практики для эффективного кода на Golang. Часть 1

Изучим рекомендации с примерами кода на Go. Рассмотрим отступы, импорт пакетов, названия переменных, длину строк, константы, обработку ошибок, глобальные переменные, структуры для сложных данных, комментарии, горутины.
Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 1

Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 1

2024-й обещает стать годом инноваций, когда ИИ и технологии объединятся, чтобы перекроить карты наших возможностей. Заглянем в ближайшее будущее нейронных сетей, векторных данных, экосистемы агентов ИИ, а также уникальных смарт-девайсов, меняющих наш образ жизни.
Machine Learning Libraries

5 лучших библиотек машинного обучения

За последние несколько лет рост машинного обучения достиг стремительных темпов. Это связано с выпуском библиотек машинного обучения (МО)/глубокого обучения (ГО), которые абстрагируются от сложности...
Инженерия геопространственных данных: пространственное индексирование

Инженерия геопространственных данных: пространственное индексирование

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

PostgreSQL вместо Kafka: способ реализации системы очередей

Очереди - ключевой элемент в распределенных системах. Поэтому так важно организовать их обработку наиболее оптимальным образом. Здесь о своем подходе к решению этого вопроса рассказывает представитель платформы работы с данными RudderStack.
Язык С: структура программы

Язык С: структура программы

Прежде чем изучать основные строительные блоки языка C, рассмотрим в самых общих чертах структуру программы, чтобы использовать ее в качестве отправной точки в последующих главах.
Галерея лучших модулей Python

Галерея лучших модулей Python

Вас никогда не обескураживало огромное число модулей Python? И, скорее всего, вам было непросто выбрать всего один для конкретного проекта. В этой статье вы...