Тренды

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

OOP

Хитрости объектно-ориентированного программирования. Часть 1: Искусство разделения команд и запросов

Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.   У функций есть побочные эффекты. Иногда они изменяют состояние системы в самый неожиданный момент и...
Реализуем функцию управления взглядом с помощью SwiftUI, ARKit и SceneKit

Реализуем функцию управления взглядом с помощью SwiftUI, ARKit и SceneKit

Предлагаем изучить опыт создания на SwiftUI hands-free приложения с применением ARKit и SceneKit. Для лучшего понимания возвращаемых значений будет использован также фреймворк SwiftUI Charts.
Реализация интерфейсов в Golang

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

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

Как быстро создать PDF-файл с помощью Python

Научитесь создавать PDF-файлы за несколько минут с помощью Python и HTML-шаблонов. Предлагаем простой гайд в 3 шага.
Rust

Замыкания в Rust

В Rust можно создавать не только именованные функции, но и анонимные, которые называются замыканиями. Сами по себе они не так уж интересны, пока вы...
Докеризируем среду разработки в VS Code

Докеризируем среду разработки в VS Code

Работая над последним проектом, я столкнулся с проблемой, которая заключалась в последовательном запуске проектов в нескольких ОС. Я потратил несколько недель, пытаясь исследовать файлы...
Kotlin & Android

Делегаты в Kotlin для Android

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

Хитрости и приемы эффективного программирования на Kotlin

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

Сравниваем целочисленное и линейное программирование в Python

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

Модификатор Kotlin, которого не должно было быть

Большинство разработчиков Kotlin уверены в том, что свойство val здесь эквивалентно использующемуся в Java свойству final. А что, если я скажу, что это не...
Основы Go: ввод-вывод файловой системы

Основы Go: ввод-вывод файловой системы

Введение Чтение с диска и запись на диск, а также перемещение по файловой системе  —  это основной элемент в любом языке. Узнаем, как все это...
python

Как создавать анимированные графы в Python

Matplotlib и Seaborn — вполне приличные Python-библиотеки для создания превосходных графиков. Но такие графики получаются статичными, и крайне трудно подобрать для них красивое представление данных или...
Google Test: интеграция модульных тестов в C/C++ проекты

Google Test: интеграция модульных тестов в C/C++ проекты

Научимся легко и просто интегрировать модульные тесты в C/C++ проекты.
Перестановка двух чисел на Си

Перестановка двух чисел на Си

Что такое перестановка двух чисел? Перестановкой двух чисел называют обмен значениями двух переменных. Например, переменная num1 содержит значение 20, а num2 содержит значение 40. После перестановки...
Python

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

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

Развертывание приложений Python в Azure

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

Решение алгоритмических проблем: Поиск повторяющихся элементов в массиве

Проблема Найти дубликат в массиве Given an array of n + 1 integers between 1 and n, find one of the duplicates. If there are multiple possible...
Все, что вам нужно знать о переходе на реляционную базу данных AWS

Все, что вам нужно знать о переходе на реляционную базу данных AWS

Каждая компания располагает огромным объемом данных, которыми нужно корректно управлять. Чтобы руководство принимало взвешенные решения, оно должно быть хорошо осведомлено о принципах деятельности своей...
Как отобразить индикатор выполнения на стандартной консоли с помощью Java

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

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

Поддержание документации в актуальном состоянии с помощью Bit и GitHub

Написание документации для кода (будь то небольшая библиотека или полный набор микросервисов, взаимодействие с которыми необходимо другим разработчикам)  —  это занятие кропотливое и утомительное. Основная...
C++

Возможности C++, о которых должен знать каждый разработчик

С момента своего появления C++ очень хорошо развился как язык программирования. Конечно, это не произошло моментально. Когда-то этому языку не доставало динамичности. В то время...
Как настроить отдельные SSH-ключи для нескольких учётных записей GitLab

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

Перейдём сразу к делу. Допустим, у вас есть один GitLab для личных проектов и один для работы. Проблем не возникнет, пока не придётся работать...
Ключевые вопросы для собеседования по Spring Boot в 2023 году. Часть 1

Ключевые вопросы для собеседования по Spring Boot в 2023 году. Часть 1

Хотите получить должность Java-разработчика или повысить свой профессиональный уровень? Ознакомьтесь с актуальными ответами на 50 ключевых вопросов по микросервисам Spring Boot для собеседования с кандидатами на должность Java-программиста или инженера ПО.
Команды Go и переменные среды, которые должен знать каждый разработчик

Команды Go и переменные среды, которые должен знать каждый разработчик

Как загружаются, кешируются и удаляются зависимости на Go, и что здесь изменилось с появлением GOPROXY и модулей? Как избежать ошибок сборки и обеспечить ее воспроизводимость?
Kotlin

Как и для чего использовать нативную библиотеку сериализации Kotlin

Вывод из статьи В конце статьи вы узнаете, почему команда Kotlin создала новую библиотеку сериализации, несмотря на наличие многих продвинутых решений, таких как Moshi и Gson....
Лучшая IDE для Python-разработки в 2024 году

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

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

Функциональные возможности Python, которые часто игнорируют

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

Фреймворк Executor в Java

Вплоть до Java 5 создавать потоки и управлять ими было возможно только на уровне приложения. Объекты Thread требуют значительного объема памяти. Таким образом, если...
Создание среды AWS Boto3 на Python с Docker Compose

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

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

Полезные Python модули, которыми мало кто пользуется

Python — это прекрасный язык с множеством встроенных модулей, цель которых — помочь нам писать более красивый и качественный код. Цель В данной статье мы будем работать с малоизвестными методами...
Почему стоит использовать GoFr для разработки Golang-бэкенда?

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

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

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

Создаем блокировщик сайтов в 3 шага   Предыдущие части: Часть 1, Часть 2   Технологии стремительно развиваются, как и мир в целом. Каждый день вы сталкиваетесь с чем-то, о чем раньше...
Переход на PgCat - прокси-сервер Postgres следующего поколения

Переход на PgCat — прокси-сервер Postgres следующего поколения

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

Как создать API-шлюз в Rust посредством библиотеки Hyper

Научимся создавать эффективный API-шлюз в Rust, задействуя библиотеку Hyper и YAML-файлы конфигурации. Кроме того, напишем модульные тесты для тестирования логики авторизации и проверим корректную работу API-шлюза.
Классификация текстов отзывов о фильмах с помощью Scikit-learn

Классификация текстов отзывов о фильмах с помощью Scikit-learn

Сначала мы посмотрим, как подготовить текстовые данные для подачи их в модель машинного обучения. Затем покажем, как использовать Scikit-learn для реализации модели классификатора, а...
Почему я перехожу с Python на Rust

Почему я перехожу с Python на Rust

Что может заставить программиста, который 10 лет предпочитал Python другим компьютерным языкам, перейти на Rust? Узнайте о 5 проблемах Python и о том, как Rust решил эти проблемы.
Как сделать калькулятор на C

Как сделать калькулятор на C

В этой статье простым языком изложена вся необходимая информация для программирования калькулятора на языке C. Применяемая программа используется на лабораторных занятиях студентов инженерных специальностей...
Комбинации команд Unix/Linux, которые должен знать каждый разработчик

Комбинации команд Unix/Linux, которые должен знать каждый разработчик

Экономьте свое время, используя комбинации команд в терминале и скриптах. Они полезны во многих ситуациях, в том числе при повторном выполнении команд, мгновенном переходе в только что созданный каталог и определении статуса долго выполняемой команды.
ТОП-5 законов для каждого UX-дизайнера

ТОП-5 законов для каждого UX-дизайнера

Когда люди слышат слово «дизайн», они обычно думают, что это творческая работа, которая подразумевает создание красивого внешнего вида. Но UX-дизайн доказывает, что привлекательный продукт...
Android

Автоматизация создания файлов для нового экрана с плагином для Android Studio

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

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

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

Сегментация по границам объекта и областям изображения с реализацией в Python

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

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

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

Parcel + Rust и WASM = идеальный ромком

Введение Мне уже давно хотелось попробовать использовать Rust и WASM вместе. Причин для этого была масса: небольшой размер пакета, низкоуровневый доступ с надёжной производительностью и...
Python

Полезные хитрости на Python от А до Я

Python — это один из самых популярных и востребованных языков программирования в мире. И на то есть множество причин: · прост в изучении; · мега-универсальный; · огромное разнообразие модулей...
Android

Уведомления о контактах

Android 11 мы делаем более ориентированным и выразительным для людей, переосмысливая то, как мы разговариваем по телефону, и создавая ОС, которая может распознавать и...
JavaScript

Подробнее о функциях высшего порядка

В JavaScript, функции являются “функциями первого класса”, соответственно они могут: храниться в переменной, объекте или массиве. передаваться как аргументы в другую функцию. и даже...
Основы многопоточности

Основы многопоточности

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

Вся правда об использовании навигационной библиотеки Jetpack в модульных проектах

Jetpack - популярный инструмент современного разработчика. Но так ли удобна эта библиотека для модульных проектов?
Секреты в Android. Часть 2

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

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

Контейнеры Docker и их связывание в сети

Создадим три файла Dockerfile с прямым подключением каждого к своему репозиторию GitHub, сделаем из них три пользовательских образа Docker, а из каждого образа - по одному контейнеру. Один изолируем в сети Development, два поместим в Production и проверим их взаимодействие.
Вопросы для собеседования iOS - Swift. Часть 2

Вопросы для собеседования iOS — Swift. Часть 2

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

5 способов выйти из вложенного цикла в Python

Вложенные циклы - одна из самых непонятных тем для новичков в программировании, которые еще не разобрались в порядке итерации по циклу. Иногда может понадобиться прервать вложенный цикл, однако это не так просто, как кажется. Рассмотрим различные способы выхода из вложенных циклов.
Kepler.gl - инструмент для визуализации геоданных на Python

Kepler.gl — инструмент для визуализации геоданных на Python

Познакомимся с отличным инструментом Kepler.gl и с его помощью создадим веб-приложение для визуализации геоданных на Python.
Вопросы для собеседования iOS - Swift. Часть 1

Вопросы для собеседования iOS — Swift. Часть 1

Рассмотрим самый важный и частый вопрос - шаблон делегирования. А также проверки времени выполнения, соответствие NSObject классу Swift, протоколы.
Как создать пользовательскую поисковую панель SwiftUI с LazyVStack

Как создать пользовательскую поисковую панель SwiftUI с LazyVStack 

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

PEG парсеры и Python

Несколько лет назад кто-то спросил, имеет ли смысл переключать Python на парсер PEG. Или на грамматику PEG. Не помню точно. Тогда я ещё не...
Создание и отслеживание первого рабочего потока Github Actions

Создание и отслеживание первого рабочего потока Github Actions

Github Actions  —  это собственное решение Github для CI/CD (непрерывной интеграции и непрерывного развёртывания ПО). Оно стало доступно сообществу разработчиков с момента запуска Github...
Golang

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

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

7 способов повысить свою продуктивность в Python

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

Почему Python не станет языком программирования будущего

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

Руководство по модулю Python itertools

Ознакомьтесь с 10 наиболее полезными функциями модуля Python itertools. Они помогут вам подняться на новый уровень программирования и стать более эффективным Python-разработчиком.
Подробно о технологии «Издатель-подписчик» Redis

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

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

7 фреймворков для работы с LLM

Предлагаем детальное описание 7 фреймворков с открытым исходным кодом для развертывания и обслуживания LLM. Сравните особенности, преимущества, ограничения и затратность таких фреймворков, как vLLM, Text Generation Inference, OpenLLM, Ray Serve, CTranslate2 и MLC LLM.
Руководство по наиболее востребованным базовым командам SQL

Руководство по наиболее востребованным базовым командам SQL

Изучим основные команды и операторы - базовые строительные блоки MySQL, применяемые в запросах к базе данных, а иногда и самостоятельно. Сохраните себе в закладках эту шпаргалку по SQL.
Утилитные классы в Kotlin с точки зрения Java-разработчика

Утилитные классы в Kotlin с точки зрения Java-разработчика

Разобравшись, в чем заключаются различия в реализации утилитных классов в Kotlin и Java, вы сделаете важный шаг в освоении языка Kotlin. Будь вы опытный Java-разработчик, желающий расширить спектр своих навыков, или новичок в программировании, уделите внимание этому аспекту.
5 простейших приемов работы на C#

5 простейших приемов работы на C#

Эти приемы работы на C# должен знать каждый, а тем, кто знает, полезно повторить. Типы, допускающие значения «null», обнаружение пустых строк, readonly и константы, простой способ завершения приложения и разрыв строк с «newline».
Бенчмарки в Golang: тестируем производительность кода

Бенчмарки в Golang: тестируем производительность кода

Честно вам признаюсь  —  бенчмаркинг (тестирование производительности) не входит в число моих самых сильных сторон, к тому же и провожу я его не так...
Продвинутый поиск Meilisearch для приложения Golang

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

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

Автоматическое масштабирование CI с помощью Kraken CI

Kraken CI — это современная локальная система CI/CD с открытым исходным кодом, которая обладает высокой масштабируемостью и ориентирована на тестирование. Kraken CI имеет лицензию Apache 2.0....
Основы SQL: разница между GROUP BY и PARTITION BY

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

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

Потоковые и многопроцессорные модули на Python

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

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

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

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

Всякий раз, загружая свой проект или код на GitHub с общедоступным репозиторием, нужно помнить о безопасности. Ведь пользователи, которые запустят файл, содержащий секретные ключи...
Архитектура виртуальной машины Java: объяснение для начинающих

Архитектура виртуальной машины Java: объяснение для начинающих

На собеседованиях часто требуется знание внутреннего устройства JVM. Но и в повседневной практике Java-разработчику полезно понимать, что происходит внутри при запуске кода. Разобраться поможет эта статья.
4 совета по работе с потоками и мьютексами в C++

4 совета по работе с потоками и мьютексами в C++

C++ представляет собой отличный язык программирования, который принято ассоциировать с высокой производительностью, а также доступным управлением памятью и указателями. Тем не менее в нем...
Сетевое программирование в Go

Сетевое программирование в Go

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

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

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

Docker: привязываем порты

Решаем вопрос с портами раз и навсегда Вы когда-нибудь были на собеседовании на должность младшего разработчика, где от вас ожидали, что вы знаете, как работает Docker?...
Java Script

10 отличных JavaScript библиотек на 2020 год

JavaScript  —  язык интернета. Вы можете запускать его в браузере или на сервере, а можете использовать для мобильных приложений. Хотя он и хорош сам по...
3 инструмента для отслеживания и визуализации выполнения кода на Python

3 инструмента для отслеживания и визуализации выполнения кода на Python

Для чего нужны новые инструменты? Видели когда-нибудь такой вывод ошибок? 2 divided by 1 is equal to 2.0. Traceback (most recent call last): File "loguru_example.py", line...
Простая и эффективная утилита сжатия данных кодами Хаффмана на Haskell

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

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

SQL: загадки на сообразительность

Насколько хорошо вы владеете языком SQL? Всегда ли добиваетесь ожидаемых результатов? Попробуйте решить три головоломки по SQL, которые включают временную метку, зависимые и независимые фильтры, а также неправильно действующие левые объединения. Верные ответы прилагаются!
Anaconda

Знакомство с Anaconda: что это такое и как установить

Простое руководство по Anaconda и его установке на Ubuntu 16.04 (64-bit). Что такое Anaconda? Перед тем, как изучать Anaconda, рассмотрим Conda. Цитируем определение Conda с официального блога: Conda — это...
Жизненный цикл потока в Java

Жизненный цикл потока в Java

Эта статья направлена на объяснение различных состояний потока в мире Java. Если вы новичок в области многопоточного программирования, попробуйте сначала почитать про потоки что-нибудь...
Android

Поддержка новых форм-факторов с помощью новой библиотеки Jetpack WindowManager

WindowManager — это недавнее дополнение к Android Jetpack, которое призвано помочь разработчикам приложений поддерживать новые форм-факторы устройств и обеспечить общее API для различных функций Window Manager...
Java

Замеры производительности на Java с JMH

Практически каждому разработчику известна фраза, сказанная Дональдом Кнутом в 1974 году: “Преждевременная оптимизация — корень всех зол”. Но откуда мы должны узнать, что именно стоит оптимизировать? С...
10 практических примеров использования функций высшего порядка при разработке Android

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

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

Объектно-ориентированное программирование в Golang

Давайте поучимся работать с объектно-ориентированной архитектурой в Golang. Здесь нет классов, зато есть структуры, работа с которыми является единственным способом поддержки объектно-ориентированной модели. Создание структур...
Как оркестровать микросервисы с помощью Docker Compose

Как оркестровать микросервисы с помощью Docker Compose

Развертывание приложений с микросервисной архитектурой - довольно громоздкий процесс, занимающий много времени. Уменьшить рабочую нагрузку позволяет Docker Compose, инструмент оркестрации контейнеров. Рассказываем об упрощенном создании микросервисных приложений на Spring Boot.
Введение в программирование на Rust

Введение в программирование на Rust

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

Go: как циклы преобразуются в ассемблерную программу?

ℹ️ В статье речь идёт о Go 1.13. Циклы в программировании — понятие мощное и довольно простое. Тем не менее возникает необходимость преобразовывать их в основные команды,...
Python

Не автоматизируйте всё подряд

Я склонен попадать в ловушку, пытаясь автоматизировать все подряд. Изучение и внедрение чего-то нового — это очень весело. Особенно если вы новичок в программировании: всё выглядит так,...
Kotlin

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

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

Jetpack Compose: пользовательский интерфейс Twitter

Я решил протестировать Jetpack Compose, сделав простой клон пользовательского интерфейса Twitter после того, как наткнулся на этот твит Mariano Zorrilla: Он использовал Flutter (отличный инструмент для...
Kotlin

Корутины: основы

Часть 1, Часть 2 Эта серия постов подробно посвящена отменам и исключениям в корутинах. Отмена важна тем, что она помогает избежать выполнения большего количества...
Краткое руководство по строкам и регулярным выражениям в R

Краткое руководство по строкам и регулярным выражениям в R

Учимся управлять строками максимально эффективно - осваиваем наиболее актуальные функции, а также метасимволы для регулярных выражений.
Настройка компонентов и тем Material UI: современный подход

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

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

Как легко оптимизировать Jupyter Notebook. Часть 2

Руководство для начинающих о том, как сделать Jupyter Notebook быстрее, мощнее и круче Часть 1, Часть 2 Магические команды (Magic) Magic — это отличные команды, упрощающие нашу жизнь при решении определенных...
Что такое закрепление сертификата в Android

Что такое закрепление сертификата в Android

Закрепление или выбор сертификата - важный шаг при разработке приложений. Рассмотрим, какие бывают сертификаты, в чем заключаются особенности и как их лучше использовать.
Как собрать данные для DS-проекта с помощью Python: 3 шага

Как собрать данные для DS-проекта с помощью Python: 3 шага

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

3 чудо-приема JavaScript для ускорения разработки

Обзор трех эффективных приемов для JavaScript: создание асинхронного контекста, работа с именованными параметрами и обертывание блоков try/catch.
Понятие об умных указателях Rust

Понятие об умных указателях Rust

В этой статье мы разберемся, что именно представляют собой умные указатели, откуда они берутся и как работают. Если по-простому, умный указатель  —  это абстрактный тип...
Interview

Худшие способы нанять хороших программистов

Хорошее собеседование  —  это просто неформальная беседа двух увлеченных программистов Чарльз Баркли поразительно точно отметил: Я не считаю себя тем, кто дает интервью. Я просто веду...