Тренды

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

Кэширование в связке Spring Boot + Redis + PostgreSQL

Кэширование в связке Spring Boot + Redis + PostgreSQL

Успешное кэширование крайне важно для веб-приложений. Вкратце рассмотрим способ настройки работы с кэшем через Redis с помощью Docker.
Clean Code

О дивный читаемый код

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

Как использовать управляемые Gradle устройства с собственными девайсами

Реализуем абстракцию Device с устройствами и эмуляторами. Используем собственную ферму устройств для удаленного запуска тестов и распараллеливания выполнения на нескольких устройствах.
CPP

Шаблон проектирования прототипов в современном C++

Шаблон проектирования прототипов — это порождающий шаблон проектирования, который помогает в прототипировании (недорогом создании/копировании) объекта с использованием отдельных методов или полиморфных классов. Прототипом можно считать модель...
Golang

Удалённые вызовы процедур в Golang

Что такое удалённые вызовы процедур? Удалённый вызов процедур (RPC) — это подпрограмма в распределённых вычислениях. Реализация RPC напоминает реализацию локальных вызовов, но обычно они не идентичны. Как...
Байт-код JVM: манипулирование и инструментация

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

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

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

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

10 проектов для изучения Golang в 2023 году

Учиться лучше на практике, и оптимальный способ освоить Golang - создавать проекты. Мы отобрали для вас подходящие проекты - не слишком сложные и не самые простые - с курсами для начинающих и опытных разработчиков.
Kotlin

Kotlin Coroutines для Android — Прощай RxJava?

Недавно JetBrains анонсировала новую фичу, которая известна как coroutines (coroutines является экспериментальной функцией в Kotlin 1.1+). Кстати, jetbrains — это место, где можно найти настоящее сокровище,...
Синхронизация данных в реальном времени между MongoDB и Elasticsearch на Golang

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

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

Шаблон Flyweight (Приспособленец) на Go

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

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

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

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

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

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

Разберем основные операции, выполняемые с сортированными векторами, и реальные сценарии. Сравним по эффективности эти векторы с несортированными.
Разработка приложения на ChatGPT: пошаговое руководство

Разработка приложения на ChatGPT: пошаговое руководство

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

6 отборных практик для определения метода __init__ в Python

Создание читаемого и удобного в обслуживании кода Python начинается с грамотного определения метода __init__. В связи с эти предлагаем 6 наилучших практик, проверенных личным опытом автора.
Реализация gRPC и PostgreSQL на GO

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

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

Изучение Python: от нуля до мастера

Первым делом спросим себя, что такое Python? Создатель языка, Гвидо ван Россум, описывает его следующим образом: "Язык программирования высокого уровня, главная идея которого - это...
Python

Альтернатива switch в Python

Во многих языках программирования (например, JavaScript) есть операторы switch. Это блок кода, в котором значение сравнивается с цепочкой переключателей case. При обнаружении соответствия выполняется...
Flutter

Навигация в приложениях Flutter

Flutter — это продукт от Google, который используется для создания гибридных мобильных приложений на ЯП Dart. Страница приложения Flutter — это Widget, который представляет собой описание изображенного пользовательского интерфейса....
Секреты в Android. Часть 2

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

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

Python 4.0: программирование следующего поколения

Python 4.0 - это захватывающий скачок вперед, который определит будущее программирования на Python на долгие годы. Узнайте о его заметных улучшениях, новых функциях и расширенных возможностях.
Реактивное программирование с Combine

Реактивное программирование с Combine

Увидим фреймворк в действии, шаг за шагом пройдя процесс настройки конвейера связываемых в цепочку операторов обработки значений, выдаваемых издателями для подписчиков. Подробно разберем пример и попробуем реализовать в проекте.
Бесконечное количество репозиториев Git на Cloudflare Worker с быстрым развертыванием

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

Авторы Gitlip рассказывают о своем продукте — инструменте совместной разработки в эпоху искусственного интеллекта. Это комплексное сочетание контроля версий на основе Git, совместного написания кода и развертывания в один клик. Цель — упростить практическое применение современных моделей искусственного интеллекта.
Фича-флаги времени компиляции в Rust: зачем, как и когда используются

Фича-флаги времени компиляции в Rust: зачем, как и когда используются

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

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

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

Сможет ли Julia занять место рядом с Python

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

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

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

Строковые методы в Python

Узнайте, какие встроенные методы Python используются в строковых последовательностях Строка — это последовательность символов. Встроенный строковый класс в Python представлен строками, использующими универсальный набор символов Unicode. Строки...
Оптимизация кода задачи на миллиард строк — ускоряем запуск в 87 раз

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

Поэтапно увеличим производительность реализации парсера для огромного файла. Устраним копии и баги, воспользуемся профилировщиком, хеш-картой линейного зондирования, микрооптимизациями, распараллелим код.
Создание среды AWS Boto3 на Python с Docker Compose

Создание среды AWS Boto3 на Python с Docker Compose

Развернем всего из одного файла среду Boto3 с изолированными контейнерами разработки и продакшена. Рассмотрим типичные команды Dockerfile для сборки образов, организуем и автоматизируем ее с помощью Docker Compose.
Go & RabbitMQ

Рабочая очередь в Go с RabbitMQ

Мы создадим систему рабочих очередей, в которой будут появляться новые задания. Обработчики (workers) будут следить за очередью и выполнять работу по мере поступления. Система...
Отступы в Python: так ли это плохо?

Отступы в Python: так ли это плохо?

Является ли стиль отступов в Python недостатком? Не приводит ли он к сложному и склонному к ошибкам синтаксису? Не превращает ли язык в беспорядочные разбросанные блоки Lego? Подумаем вместе над этими вопросами.
[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel

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

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

Логирование в Python с помощью Logzero

Logzero - это пакет Python, созданный Крисом Хагером, который упрощает отображение информации и сведений об отладке в качестве оператора print в Python 2 и...
Ошибки в Rust: формула

Ошибки в Rust: формула

Сравним философию обработки ошибок Go, Java и Rust. Рассмотрим ошибки на уровне крейта и модуля, попробуем создать иерархию ошибок. Как происходит отображение ошибок?
Почему не стоит использовать or для проверки нескольких условий в Python

Почему не стоит использовать or для проверки нескольких условий в Python

Все еще пользуетесь or для проверки условий при программировании на Python? Разберем несколько причин, почему делать этого не стоит.
SQL

Инъекция SQL: руководство для начинающих

Внедрение кода или инъекция SQL — это уязвимость системы безопасности в Интернете, позволяющая злоумышленнику завладеть доступом к SQL-запросам в базу данных. Так он может получить...
Адаптируем Android-приложение к большим размерам экрана с помощью классов window-size

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

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

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

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

Руководство по созданию интерактивных визуализаций на Python

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

Использование конкурентности при создании API в Go

Когда в 2014 году я впервые начинал писать приложения на Golang, мое внимание сразу же привлекло самое необычное и интересное, что есть в этом...
UX Design

10 шаблонов поведения для UX-дизайна

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

Как сделать приложение-чат с Redis, WebSocket и Go

Протокол WebSocket предоставляет двунаправленный (сервер и клиент могут обмениваться сообщениями) и полнодуплексный (сервер или клиент могут отправлять сообщения одновременно) канал связи, подходящий для сценариев...
Как оптимизировать навигацию в Jetpack Compose

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

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

Python: публикация ваших пакетов в PyPi

Примечание: исходный код можно найти на GitHub. Если вы работаете с Python, то, вероятно, знаете о пакетах, которые можно загрузить и импортировать в свои проекты...
Принципы SOLID в инженерии данных. Часть 2

Принципы SOLID в инженерии данных. Часть 2

Построим реальный конвейер данных: реализуем объекты с классами, обеспечив соблюдение принципов SOLID применением подхода программной инженерии. Узнаем, как они используются в приложениях обработки данных на Python. Вторая часть.
Как стать инженером Python в 2023 году

Как стать инженером Python в 2023 году

Предлагаем подробное руководство по овладению основными навыками работы с Python, которые требуются начинающим программистам в 2023 году. Это руководство, составленное с учетом последних тенденций и технологий IT-индустрии, поможет сосредоточиться на самом главном.
Реализация интерфейсов в Golang

Реализация интерфейсов в Golang

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

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

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

Nota Bene для программиста Python

В данной статье мы рассмотрим основные концепции Python, которые необходимо знать и понимать каждому профессиональному программисту. Они образуют основу продвинутого программирования на Python, нацеленного...
Как развернуть 2-уровневую архитектуру с AWS и Terraform Cloud

Как развернуть 2-уровневую архитектуру с AWS и Terraform Cloud

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

Не используйте оператор «+» для объединения строк в Python

Когда я только начал работать с Python, интуитивно стал использовать оператор + для объединения строк, как в Java и многих других языках программирования. Однако вскоре...
5 реальных способов достичь сбалансированности трудовой жизни

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

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

5 приемов Python, которые отличают профессионалов от новичков

Чем отличается senior- от junior-программиста? Ответить на этот вопрос поможет Advent of Code. Этот обучающий сервис для программистов отлично иллюстрирует различия в подходах к решению задач специалистами разного уровня.
Matplotlib

Анимации с Matplotlib

Используем библиотеку matplotlib для создания интересной анимации Изображение имитации дождя выполнено с помощью библиотеки Matplotlib, известной как прародитель пакетов для визуализации данных на python. Matplotlib...
Rust

Использование SQLite с Rust и Actix Web (с тестами)

В этой статье мы рассмотрим, как использовать SQLite (вместе с Diesel) и Rust как в файловом режиме, так и в режиме памяти. Необходимые условия Кроме Rust...
Angular и Wiz: вместе лучше

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

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

Pandas: взгляд изнутри

Рассмотрим структуру данных Pandas: массивы, блоки, BlockManager. Познакомимся с понятием консолидированного датафрейма.
UnitTesting

Тестирование для не тестировщиков

Тестирование является одним из ключевых этапов разработки. Вне зависимости от того, над каким проектом вы работаете, тестирование — это залог того, что вы сможете поставлять качественные...
В гостях у GitHub Package Registry

В гостях у GitHub Package Registry

Сервис управления пакетами GitHub Package Registry был разработан и представлен в середине 2019 компанией Microsoft. Его создание, наряду с приобретениями GitHub и NPM, говорит...
Шпаргалка Swift для разработчиков Android/Kotlin

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

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

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

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

Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 2

В этой части статьи углубимся в механизм загрузки классов. Этот процесс в Java тесно связан с рефлексией, поскольку направлен на внедрение нового поведения в программу во время выполнения.
Как создать компонент Toast в SwiftUI

Как создать компонент Toast в SwiftUI

Расскажем, как, не напрягаясь, создать интересный компонент Toast в SwiftUI. Присоединяйтесь - скучно не будет!
Как настроить отдельные SSH-ключи для нескольких учётных записей GitLab

Как настроить отдельные SSH-ключи для нескольких учётных записей GitLab

Перейдём сразу к делу. Допустим, у вас есть один GitLab для личных проектов и один для работы. Проблем не возникнет, пока не придётся работать...
Java

Java-Lombok: нужны ли геттеры и сеттеры?

Привет всем энтузиастам Java! Давайте поговорим о Java и рефакторинге. Как известно, Java остается одним из наиболее популярным языком программирования. В каждом новом релизе...
Python

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

Одна из главных задач при работе с текстовыми данными — это создание множества текстовых функций. Некоторые функции ищут конкретные паттерны в тексте, например, адреса электронной почты или...
Julia

Стоит ли учить Julia?

Julia — это новейший IT-язык, поэтому я решил его попробовать. Вопрос в том, стоит ли добавлять его в арсенал специалиста по данным? Установка Первое, что стоит знать о...
Rust

Использование строк в Rust

Копировать одну переменную в другую и ожидать, что значение будет доступно в первой переменной — это обычное дело для многих языков программирования. Но это не совсем...
Python

Пишем интерфейсы командной строки в Python как профи

Все мы, специалисты по анализу данных, выполняем множество рутинных и повторяющихся действий. Сюда относятся: создание еженедельных отчетов, ETL-операции (извлечение, преобразование, загрузка), обучение моделей с...
Как скрывают секретные ключи и пароли в Python

Как скрывают секретные ключи и пароли в Python

Всякий раз, загружая свой проект или код на GitHub с общедоступным репозиторием, нужно помнить о безопасности. Ведь пользователи, которые запустят файл, содержащий секретные ключи...
Меньше образы Docker => быстрее CI-конвейер

Меньше образы Docker => быстрее CI-конвейер

CI/CD позволяет разработчикам и организациям реализовывать циклы задач быстрее. Автоматизируя такие процессы, как сборка, тестирование и развертывание ПО, мы затрачиваем меньше времени на типовые...
Как мобильному разработчику всегда быть в курсе последних событий в своей сфере

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

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

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

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

Почему ИИ не лишит работы программистов

Искусственный интеллект - мощный инструмент, который уверенно набирает популярность в современном мире. Но сможет ли он в ближайшем будущем заменить человека? Оказывается, не все так просто. Сегодня поговорим о том, почему рано списывать программистов со счетов.
Тестирование производительности: rust/warp против go/fasthttp

Тестирование производительности: rust/warp против go/fasthttp

В чем причина недостаточной эффективности rust/warp и что ведет к увеличению производительности? Применим хитрые приемы, способные улучшить работу версии Rust.
Java

Java. Вложенные классы

Вложенный (иначе  —  внутренний) класс в объектно-ориентированных языках программирования  —  это такой класс,объявленный внутри другого класса. Это позволяет объединять логически связанные между собой классы и...
Python

Знакомство с объектно-ориентированным программированием в Python: классы и экземпляры

Новичок в ООП? Узнай, как создавать классы и экземпляры в Python Про объектно-ориентированное программирование в Python писали многие. Большинство специалистов по обработке данных, в том числе...
Machine Learning Model

Как выбрать модель машинного обучения

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

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

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

Какие типы изображений можно создавать в Midjourney

Знакомьтесь с генератором изображений Midjourney. Эта нейросеть была создана в феврале 2022 года и уже пережила несколько апгрейдов. Рассказываем, что умеет Midjourney и как использовать этот инструмент в проектах.
Kotlin 1.5.30 и KMM/KMP

Kotlin 1.5.30 и KMM/KMP

Узнайте, почему специалисты называют Kotlin 1.5.30 поворотным моментом в мультиплатформенном программировании.
Новый подход к пониманию RxJava

Новый подход к пониманию RxJava

Реактивное программирование  —  очень важный способ написания чистого кода, а ReactiveX  —  одна из самых известных библиотек для асинхронной обработки последовательностей данных реактивным способом. Для...
Владеешь merge  -  освой и rebase

Владеешь merge  -  освой и rebase

В центре внимания - две команды Git: merge и rebase. Рассмотрим случаи применения каждой из них, сравним результаты и выявим отличия.
Лучшие практики для эффективного кода на Golang. Часть 1

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

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

Овладей Python, создавая реальные приложения. Часть 4

Предыдущие части: Часть 1, Часть 2, Часть 3 Время от времени появляются новые языки программирования, а с ними и крупные сообщества пользователей. Python существует уже довольно долго, поэтому...
Разветвление на различные очереди SQS с помощью фильтрации сообщений SNS

Разветвление на различные очереди SQS с помощью фильтрации сообщений SNS

SNS и SQS  —  сервисы AWS, которые часто находят применение в событийно-управляемой архитектуре. Сочетание этих сервисов дает возможность отправлять сообщения по разным каналам. Часто...
Как протестировать код на Go с Github Actions

Как протестировать код на Go с Github Actions

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

Выражение when в Kotlin

Рассмотрим особенности использования выражения when в Kotlin. Базовый случай использования На фрагменте ниже приведен базовый случай использования выражения when: fun myFunction(valueToTest: Any) { when...
3 функции Pandas для группировки и агрегирования данных

3 функции Pandas для группировки и агрегирования данных

При работе с данными в Pyth on у программистов есть инструмент, который никогда не подведет: pandas. Это полнофункциональная и интуитивно понятная библиотека с открытым...
Освоение различных видов линий в Jetpack Compose с помощью PathEffect

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

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

Осваиваем веб-скрэпинг на Python

В этой короткой статье рассказывается про методику вэб-скрэпинга (англ. web scraping) - набор инструментов по извлечению данных с сайтов. Если вы сталкивались с проблемами...
Go

Топ-10 самых распространенных ошибок в проектах Go. Часть 1

Неизвестное значение enum Рассмотрим простой пример: type Status uint32 const ( StatusOpen Status = iota StatusClosed StatusUnknown ) Enum создан с помощью iota, что приводит к следующему состоянию: StatusOpen = 0 StatusClosed = 1 StatusUnknown =...
Добавление новостных тем в приложение TrendNow. Часть 2

Добавление новостных тем в приложение TrendNow. Часть 2

2-я часть посвящена добавлению в новостное приложение раздела тем с реализацией горизонтальной прокрутки в LazyColumn. Вы узнаете, зачем стоит создать еще одну ViewModel и как добавить раздел/элемент в LazyColumn Jetpack Compose, чтобы избежать ненужных рекомпозиций.
8 рекомендаций по написанию читаемого кода на C# с помощью .NET 6

8 рекомендаций по написанию читаемого кода на C# с помощью .NET 6

Научитесь избегать лишних операторов else, извлекать и именовать методы, грамотно использовать Linq и применять прочие подходы для придания коду читаемости и прозрачности.
Пора отказаться от “@Input” и “@Output” в Angular

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

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

cin.ignore() на C++

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

Как использовать PHP для вывода данных?

Функциональность и простота PHP не вызывают сомнений. Однако знание нюансов этого языка не повредит разработчику, приступающему к его изучению. Сегодня поговорим о выводе данных с помощью PHP.
Реализация односвязного списка в Golang

Реализация односвязного списка в Golang

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

Go. Прорабатываем 25 основных вопросов собеседования

Go, иначе называемый Golang, является открытым языком программирования, который похож на C, но при этом оптимизирован для более быстрой компиляции, удобной реализации конкурентности и...
Education

Перестаньте фокусироваться на синтаксисе, если хотите стать senior-разработчиком

Вы переезжаете в новый город и не знаете, где находится ближайший продуктовый магазин.  Вы не станете волноваться, а просто воспользуетесь Google Maps. После того, как вы...
Новая большая речевая модель Watson от IBM предоставит голос генеративному ИИ

Новая большая речевая модель Watson от IBM предоставит голос генеративному ИИ

Приготовьтесь к выпуску Watson LSM - новых больших речевых моделей, способных преобразовывать длинные аудиозаписи в готовые тексты. Пока они доступны только в закрытой бета-версии, но, войдя в массовое производство, смогут обеспечить бесперебойную работу с клиентами.
React Single Page Application и React-Router для начинающих

React Single Page Application и React-Router для начинающих

Ваше первое React SPA с нуля: всё, что нужно знать про хуки UseParams, UseLocation и UseHistory, про маршрутизацию и панель навигации
Знакомство с библиотекой Styled Components в React

Знакомство с библиотекой Styled Components в React

Узнаем особенности и преимущества библиотеки Styled Components, а также научимся создавать стилизованный компонент, глобальную тему и передавать свойства.