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

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

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

Написание консольных скриптов: Bash против Python

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

SQLite: как организовывать таблицы

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

Новые инструменты Android 11 для обеспечения конфиденциальности и стабильности

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

Хитрости на Python

Болтовня ничего не стоит. Покажите мне код. Эти приемы на Python весьма незаурядны и крайне полезны. Обмен значениями Создание одной строки из всех элементов списка Поиск самого частого значения...
Решение крупномасштабных задач машинного обучения на Python

Решение крупномасштабных задач машинного обучения на Python

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

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

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

Модули Python для ускоренной обработки JSON

Познакомимся с 5 модулями Python, которые значительно расширяют возможности разработчиков при работе с JSON. Среди них: orjson, tortilla, jsonpickle, jsondiff и GenSON.
Шаблон «Стратегия» на Go

Шаблон «Стратегия» на Go

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

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

Недавно я начал изучать Android и iOS на предмет возможности обмена между ними бизнес-логикой. Этот поиск привёл меня к Rust — очень интересному и относительно новому...
CProgramming

Использование методов расширения в C# для элегантного и плавного кода

Методы расширения являются неотъемлемой частью современной платформы .NET и широко применяются в языке запросов LINQ, одной из лучших функциональных возможностей .NET. К сожалению, многих они отпугивают:...
Python

Вы умеете говорить на Python?

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

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

Создадим конфигурационные файлы, развернем инфраструктуру с подробным разбором кода и протестируем все созданные ресурсы.
5 приемов Python, которые отличают профессионалов от новичков

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

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

Анимации с Matplotlib

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

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

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

Rust: реализация двоичного дерева

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

Java для начинающих: часть 3 из 4

Часть 1, Часть 2, Часть 3, Часть 4 Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java. Даже при нулевых знаниях...
RxJS и Angular: декларативный If/Else

RxJS и Angular: декларативный If/Else

Исходный код: Github 🚀 | Интерактивные примеры и фрагменты кода🚀 Цель статьи 🎯 Задействование оператора фильтра RxJS. Использование последовательной парадигмы декларативного программирования для потенциального улучшения ясности кода...
Управление памятью в Python: 3 частых вопроса на собеседовании

Управление памятью в Python: 3 частых вопроса на собеседовании

Занять вакантную должность разработчика Python - заветная мечта многих программистов. Наш краткий гайд поможет вам не ударить в грязь лицом на собеседовании.
Curry

Бесконечное каррирование в JavaScript

Один из лучших аспектов JavaScript — это его принадлежность к функциональным языкам программирования, что, в свою очередь, открывает двери к ряду классных шаблонов программирования. Среди которых...
Стековая и кучная память в Kotlin 

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

Хотите максимально эффективно управлять памятью в Kotlin? Тогда выясните, чем различаются стековая и кучная память. Разобраться в этом непростом вопросе помогут простые аналогии и примеры кода.
Простое объяснение интерфейсов на Golang

Простое объяснение интерфейсов на Golang

Что общего у электророзеток с интерфейсами? Как создавать интерфейсы правильно? Попробуем понять этого непонятного зверя!
Matplotlib или Plotly: как выбрать библиотеку для визуализации данных в Python

Matplotlib или Plotly: как выбрать библиотеку для визуализации данных в Python

Не знаете, что предпочесть: Plotly или Matplotlib? Неправильный выбор может стоить вам часов работы и свести на нет всю эффективность дэшборда. Секрет в том, что "лучшей" библиотеки не существует — есть та, что идеально подходит под ваши цели. Готовы узнать, какая из них сделает ваш проект по-настоящему мощным?
Освойте оконные функции SQL раз и навсегда

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

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

Что возвращать в Go: структуры или интерфейсы?

В подробном руководстве исследуем преимущества и особенности возвращения структур и интерфейсов на Go. Рассмотрим реальные сценарии с практическими примерами, рекомендации, альтернативные стратегии.
Знакомство с фабричным методом

Знакомство с фабричным методом

Фабричный метод упрощает процесс создания объектов, делает код более удобным в обслуживании и обеспечивает ряд других преимуществ. Разберем принцип его работы на реальном примере создания игровых персонажей.
Избегаем исключения Null Pointer Exception в Java с помощью Optional

Избегаем исключения Null Pointer Exception в Java с помощью Optional

В 1964 году британский ученый-компьютерщик Тони Хоар изобрел ссылки на нулевые указатели (Null Pointer References). Исключение Null Pointer Exception составляет львиную долю всех исключений, которые...
45 сочетаний клавиш в VSCode, чтобы ускорить написание кода

45 сочетаний клавиш в VSCode, чтобы ускорить написание кода

Visual Studio Code (VS Code) — бесплатный редактор кода с открытым исходным кодом, выпущенный Microsoft. Благодаря легкому дизайну, мощным функциям и обширным возможностям настройки VS Code быстро стал самым популярным редактором кода среди разработчиков. VS Code также имеет богатую коллекцию расширений, поддержку широкого спектра языков программирования, автодополнение кода IntelliSense, возможности отладки и встроенное управление Git.
Как работает внедрение зависимостей в Angular

Как работает внедрение зависимостей в Angular

Предлагаем изучить механику внедрения зависимостей в Angular. Узнайте, как определить зависимость, как ее импортировать и как Angular разрешает конфликты зависимостей.
Python

Учимся писать строки документации в Python

Все мы когда-то писали такой код, взглянув на который две недели спустя, трудно было понять почему и как он работает. Нам часто приходится иметь...
Чистая архитектура с MVVM

Чистая архитектура с MVVM

Для лучшего понимания чистой архитектуры давайте создадим примерный проект. Это приложение, на первой странице которого показывается список персонажей из мультсериала «Рик и Морти» с...
Python

Одно слово для «быстрой» Pandas

Она навсегда изменит вашу жизнь Вы загрузили данные в DataFrame и уже готовы провести предварительный анализ…, но сначала придется создать кое-какие дополнительные функции. Как правило, вы...
ViewModel. События как состояние  -  это антипаттерн

ViewModel. События как состояние  —  это антипаттерн

Трижды разоблачим антипаттерн одноразовых событий и сравним аргументацию для осознанного выбора из имеющихся подходов. В чем суть проектного решения команды Kotlin - «гарантии быстрой отмены»?
Самые полезные библиотеки Go

Самые полезные библиотеки Go

Эти библиотеки всегда оказываются первыми в списке инструментов Go-разработчика при запуске нового проекта. Они помогают устранить избыточный код и позволяют создавать более качественные и быстрые приложения.
Android

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

Внедрение зависимостей (DI) — это метод, широко используемый в программировании и хорошо подходящий для Android-разработки. При нем зависимости предоставляются классу, а не создаются самостоятельно. Следуя принципам...
Создаем веб-сканер страниц с помощью Python

Создаем веб-сканер страниц с помощью Python 

Рассмотрим поэтапный процесс создания веб-сканера для отслеживания изменений и последующего оповещения посредством e-mail. Работаем с Python, Beautiful Soup и Pipedream.
Как писать промпты для ChatGPT

Как писать промпты для ChatGPT

Чтобы научиться писать промпты для ChatGPT, требуется время и практика. Эти рекомендации помогут создавать качественные промпты, с которыми ChatGPT будет генерировать точные и релевантные ответы.
Shell

Функциональные и гибкие Shell скрипты

Шелл скрипты vs python/Perl Кто вообще пишет шелл скрипты в 2019’ом? Хороший вопрос. Что же, я пишу. ¯_(ツ)_/ На это есть веские причины, они описаны здесь...
C++: практическое руководство по priority_queue

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

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

Инструменты для создания виртуального окружения в Python

В этой статье я хочу поделиться инструментами для создания виртуального окружения в Python, а также разобрать их преимущества и недостатки. Различные инструменты для создания виртуального...
Забудьте про сохранение изображений на Android в JPEG/PNG: HEIF и AVIF сэкономят до 50 % места

Забудьте про сохранение изображений на Android в JPEG/PNG: HEIF и AVIF сэкономят до 50...

Хотите, чтобы ваше Android-приложение стало легче, быстрее и современнее? Откажитесь от старых форматов JPEG/PNG и переходите на HEIF и AVIF, чтобы сохранять те же изображения, только размером в 2 раза меньше и без потери качества. Они обеспечат вам молниеносную загрузку изображений и разгрузку памяти на 50 %.
7 лучших CLI-библиотек Python в 2023 году

7 лучших CLI-библиотек Python в 2023 году

Повысьте свой уровень программирования на Python, освоив 7 самых продвинутых CLI-библиотек. Их возможности максимально упростят разработку интерфейса командной строки и позволят сократить код до минимума.
Pandas: взгляд изнутри

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

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

Примитивы синхронизации в Go

Изучаем Mutex, WaitGroup и Once с примерами В данной статье кратко рассмотрим некоторые конструкции низкоуровневой синхронизации, которые наряду с горутинами и каналами предлагает нам один...
Анализ тональности в 3 шага: использование quick_sentiments в Python

Анализ тональности в 3 шага: использование quick_sentiments в Python

Устали от бесконечной предварительной обработки текста и сложных пайплайнов машинного обучения? Теперь у вас будет возможность получать готовые прогнозы тональности всего в три шага — без головной боли с настройкой моделей и очисткой данных. Откройте для себя quick_sentiments: пакет, который превращает трудоемкие задачи в минутные операции.
Комбинаторы парсеров: от parsimmon до nom (Typescript → Rust)

Комбинаторы парсеров: от parsimmon до nom (Typescript → Rust)

В этой статье мы вкратце рассмотрим процесс повторной реализации фиктивного синтаксического анализатора языка запросов, написанного на Typescript. Новая реализация будет на Rust. Комбинатор парсеров представляет...
Понятия "связанности" и "связности" в объектно-ориентированном программировании

Понятия “связанности” и “связности” в объектно-ориентированном программировании 

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

История путешествий вместе с Plotly Express

Составим интерактивную карту путешествий с Python, pandas и Plotly Express. Процесс настолько же увлекательный, как и сами путешествия!
Что нового в Python 3.10?

Что нового в Python 3.10?

Разработка Python 3.10 стабилизировалась, и пришло время наконец-то протестировать все те новые функции, которые войдут в финальный выпуск. Мы расскажем все самое интересное о том,...
LangChain + Streamlit + LlaMA: установка диалогового бота с ИИ на локальный компьютер

LangChain + Streamlit + LlaMA: установка диалогового бота с ИИ на локальный компьютер

Предлагаем пошаговое руководство по созданию с нуля личного помощника с ИИ. В руководстве используются большая языковая модель LLaMA 7b и Langchain - библиотека с открытым исходным кодом, специально разработанная для бесшовной интеграции с LLM.
Apache Spark  -  типичные ошибки и их устранение

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

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

Изучение Blockchain на Python

Неделю назад я поняла, почему испытывала неприязнь к Bitcoin. У меня не было его, и я не понимала как он работает. Я начала изучать...
C++: подробное руководство по выводу массива

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

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

Практическое применение KSP

Kotlin Annotation Processing Tool - ценный инструмент, который позволяет автоматизировать утомительные задачи, повысить качество кода, сделать его менее подверженным ошибкам и сократить время разработки. Рассказываем на примерах, как использовать KSP.
Golang

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

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

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

Знакомьтесь с генератором изображений Midjourney. Эта нейросеть была создана в феврале 2022 года и уже пережила несколько апгрейдов. Рассказываем, что умеет Midjourney и как использовать этот инструмент в проектах.
Использование Kotlin Flow для отображения наблюдаемого состояния UI на экране в Android

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

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

Изучение нового языка для работы с данными

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

Топ-10 магических команд в Python, которые повысят вашу продуктивность

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

Сферы применения Python

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

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

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

Как работает шлюз API на Golang: на примере одного симпатичного платья

Совместим просмотр красивых платьев в веб-магазинах и заодно разберем принцип работы шлюза API на Golang!
5 команд Linux, которые облегчают жизнь программистам

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

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

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

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

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

Что позволяет вашему ПК, ноутбуку или смартфону быть легким, быстрым и относительно недорогим девайсом? Что делает компьютер эффективным, сокращая энергопотребление и тепловыделение? Поищем ответы на эти вопросы "под капотом" вычислительной машины.
Android

Как создать плавающую кнопку для Android приложения

Для начала создайте пустой Android проект. Добавьте зависимость Android Design, потому что FAB находится в этой библиотеке. Скопируйте и вставьте её в свой проект. implementation 'com.android.support:design:28.0.0' Если...
TypeScript

Как создать простую браузерную игру с помощью Phaser 3 и TypeScript

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

Реверсинг плагина компилятора Compose: перехват фронтенда

Как плагином компилятора нарушаются правила Kotlin? Изучим архитектуру, FIR-фронтенд компилятора. Заглянем внутрь и попробуем сориентироваться: что и где перехватывается при прохождении этапов компилятора Kotlin?
Java

Основы программирования UDP-сокетов на Java

Сокеты — это абстракция самого низкого уровня для программистов, работающих в области сетевого программирования. Существует в основном два способа (протокола) того, как должна происходить коммуникация сокетов. Один...
Python

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

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

Асинхронная многопоточность в Python

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

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

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

Rust: первые впечатления

Станет ли Rust пределом мечтаний разработчиков и универсальным языком, который заменит все остальные? Что делает его таким особенным? Рассмотрим текущее положение и разберем слабые и сильные стороны Rust.
Когда чистый код нецелесообразен

Когда чистый код нецелесообразен

Хотя у чистого кода имеется ряд преимуществ, его внедрение в проект не всегда оправдано. Рассмотрим ситуации, когда чистый код слишком дорог.
Написание кода как создание бестселлера

Написание кода как создание бестселлера

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

Как Snowflake повышает эффективность dbt-моделей на Python

Исследуйте Snowflake - новейшую облачную платформу, позволяющую сделать более эффективным dbt-моделирование на языке Python. Сравните простоту, мощность и производительность dbt-моделей Python на Snowflake с настройками, необходимыми для запуска этих моделей на других платформах.
UseCase: лучшие практики чистой архитектуры и красные флаги

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

Предлагаем подробное руководство по юзкейсам, на которых основана чистая архитектура. Корректное использование юзкейсов - с учетом красных флагов - поможет пользователям приложений достигать желаемых результатов без лишних нервов и усилий.
Создание хука Git pre-commit для автопроверки и исправления кода JavaScript и TypeScript

Создание хука Git pre-commit для автопроверки и исправления кода JavaScript и TypeScript

Улучшите качество кода JavaScript и TypeScript с помощью ESLint, Prettier, lint-staged и Husky. Эти линтеры обеспечивают соблюдение стандартов программирования и форматирования, а также делают кодовую базу менее подверженной ошибкам, более простой в обслуживании и приятной для чтения.
C++: подробное руководство по разыменованию указателя

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

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

Как преобразовать сгенерированные ИИ изображения в полигональные сетки

Поделимся практическим опытом создания полигональных сеток из сгенерированных ИИ изображений с помощью современных методов машинного обучения.
Создание Copilot для визуального распознавания в Azure

Создание Copilot для визуального распознавания в Azure

Хотите создать чат-бота для обобщения и релевантного поиска видеоконтента в Azure? Ознакомьтесь с примером разработки и использования цифрового помощника Copilot. Он поможет быстро находить как ключевые моменты видеоролика, так и заданные фрагменты.
3 интерактивных инструмента для управления командами в Linux

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

Эти инструменты позволят находить и отфильтровывать нужные команды, добавлять их в избранное для мгновенного выполнения и предоставят множество других полезных возможностей.
Как ИИ влияет на развитие NFT

Как ИИ влияет на развитие NFT

Искусственный интеллект - настоящий бустер для развития NFT (невзаимозаменяемых токенов). Представляем 3 передовых проекта, на которые вам стоит обратить внимание.
Golang

Настройка Swagger документации для API в Golang

Часть 1, Часть 2, Часть 3 В предыдущей статье мы создали RESTful API в Golang. Теперь, когда у нас есть готовый проект, надо понять, как...
Docker

Генерируем образы Docker с помощью Spring Boot

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

Работа с GitHub Actions на маркетплейсе

Поиск экшенов Для этого есть два способа. Непосредственно в маркетплейсе GitHub  В маркетплейсе размещается два вида инструментов для расширения основной функциональности GitHub: Приложения.Экшены. Для поиска экшенов в самом маркетплейсе...
Основные методы оптимизации базы данных SQL

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

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

Rust: безопасный парсинг с нулевым копированием

В Rust парсинг с нулевым копированием избавляет от ошибок безопасности памяти, возникающих в других языках. Руководство по использованию такого алгоритма позволит повысить общую производительность системы.
Go на пороге третьего десятилетия 21 века: язык программирования для искусственного интеллекта и науки о данных

Go на пороге третьего десятилетия 21 века: язык программирования для искусственного интеллекта и науки...

Python появился 30 лет назад, но только через 20 лет получил признание разработчиков. Он колоссально вырос за это время, особенно за последние пять лет...
Golang

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

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

Отладка API Java Message Service с использованием Lightrun

Узнаем, как работает Java Message Service (JMS) и как инструмент под названием Lighrun помогает в отладке, если с пересылкой сообщений что-то идет не так.
Python

15 Python пакетов, которые нужно попробовать

Подборка самых полезных и разноплановых Python-пакетов с PyPI За что мы любим Python? Для начала, это — красивый и простой в изучении язык. Но есть и другая причина:...
C++: полное руководство по перечислениям

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

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

Рецензирование кода Flutter: лучшие практики

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

Язык C: введение и настройка среды

Операционная система UNIX, компилятор C и практически все прикладные программы UNIX были написаны на языке С. Он является наиболее широко практикуемым компьютерным языком.
Реализация цифрового конверта в iOS

Реализация цифрового конверта в iOS

Добро пожаловать в увлекательный мир криптографии! Познакомимся с технологией гибридного шифрования и научимся безопасно передавать конфиденциальные данные через REST API в Swift.
CPP

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

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

Jetpack DataStore: улучшенная система хранения данных

Что такое DataStore На протяжении многих лет разработчики Android хранили небольшие фрагменты конфиденциальных пользовательских данных с помощью общих настроек (shared preferences). Этот подход имеет следующие...
Python PyQt5: современные графические интерфейсы для Windows, MacOS и Linux

Python PyQt5: современные графические интерфейсы для Windows, MacOS и Linux

Установка и настройка Python PyQt5 для новичков: кнопки, поля ввода, всплывающие окна и событийно-ориентированное программирование.
Секреты в Android. Часть 2

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

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

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

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

Практики быстрого программирования

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

Дизайн-система: иконки

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

7 советов по улучшению анализа данных в Python

#1: Pandas Profiling Преимущества этого инструмента очевидны. Анимация ниже создана с помощью вызова метода df.profile_report(): С помощью этого инструмента можно с легкостью устанавливать и импортировать пакет...