Parcel + Rust и WASM = идеальный ромком
Введение
Мне уже давно хотелось попробовать использовать Rust и WASM вместе. Причин для этого была масса: небольшой размер пакета, низкоуровневый доступ с надёжной производительностью и...
Как выполнять выражения и процедуры PL/SQL в Python
Расскажем о том, как выполнять процедуры и выражения PL/SQL в Python.
Рекомендации по Go: выделение памяти с new
Разберем нюансы функции new на примерах. Для каких целей и типов она используется, как ею упрощается инициализация?
Dynamic Feature Modules: навигация
В последнее время моя команда начала проходить испытание по модуляризации нашего приложения. Одна из первых вещей, за которые мы взялись основательно, была навигация, а...
Язык C: введение и настройка среды
Операционная система UNIX, компилятор C и практически все прикладные программы UNIX были написаны на языке С. Он является наиболее широко практикуемым компьютерным языком.
Bash, Python или JavaScript: какой язык лучше для автоматизации?
Предлагаем сравнение преимуществ и недостатков Shell-сценариев на основе Bash, Python и JavaScript. Выбирайте язык программирования в соответствии с вашими потребностями.
4 golang-сниппета, которые вводят в заблуждение разработчиков C#!
В лингвистике такое явление получило название ложные друзья переводчика, то есть слова, похожие по звучанию или написанию, но совершенно разные по значению. Например, английское...
Ошибки в Rust: формула
Сравним философию обработки ошибок Go, Java и Rust. Рассмотрим ошибки на уровне крейта и модуля, попробуем создать иерархию ошибок. Как происходит отображение ошибок?
Как обеспечить возможность обнаружения для совместно используемых компонентов
Компоненты привносят модульность в дизайн приложений. Модульность, в свою очередь, обеспечивает возможность повторного использования, благодаря которой можно создавать приложения без необходимости каждый раз изобретать...
Шаблон Sidecar-контейнера с Kubernetes и Go
Рассмотрим шаблон Sidecar, создадим две службы Go и выполним контейнеризацию, а затем развернем на Kubernetes. Отправим HTTP-запрос и отследим его перенаправление из Sidecar-контейнера в основной.
Конструкция контейнера в Docker
Контейнеризация приложений - основной принцип работы платформы Docker при разработке, тестировании и запуске веб-приложений. Эта краткая шпаргалка по важным концепциям и командам в процессах контейнеризации напомнит о свойствах образов, файлов, сетей и томов данных.
Как освоить API-интерфейсы Metal с UIView и SwiftUI
Раскроем возможности программирования графических процессоров с Metal для создания сложной 3D-графики, обработки изображений и других задач. Предоставим фрагменты кода и рекомендации для применения Metal в собственном приложении iOS или macOS.
Эффективная передача сообщений между процессами в C++
Разбираемся в особенностях передачи сообщений между процессами. Рассмотрим как нужно писать для этого выразительный, чистый код.
30 полезных сниппетов на Python, которые можно освоить за 30 секунд
Python — один из популярнейших языков, который активно используется в анализе данных и машинном обучении, при разработке ПО, в автоматизации и так далее. Такая...
Эволюция монолитных систем
Как предотвратить энтропию монолитных систем, свойственную технологическим стартапам? Воспользуйтесь рекомендациями эксперта, чтобы обеспечить успех и рост компании, избежав дорогостоящих ошибок.
Map-ориентированное программирование в Java
Map-ориентированное программирование в Java может быть насколько удобным, настолько и беспорядочным. Предлагаем задуматься над соотношением затрат и выгод от использования Map в качестве универсального возвращаемого типа.
Обработка ошибок в Golang с помощью Panic, Defer и Recover
В Golang предусмотрен простой интерфейс для ошибок. Любая ошибка, возвращаемая в Golang, следует такому определению интерфейса:
type error interface {
Error() string
}
Создание сообщения об...
Сортировка и фильтрация записей с помощью базы данных Room и Kotlin Flow
Легко и просто строим реактивные приложения на Android. Рассмотрим реализацию функций сортировки и фильтрации записей локального хранилища.
Жизненный цикл потока в Java
Эта статья направлена на объяснение различных состояний потока в мире Java. Если вы новичок в области многопоточного программирования, попробуйте сначала почитать про потоки что-нибудь...
Рабочая очередь в Go с RabbitMQ
Мы создадим систему рабочих очередей, в которой будут появляться новые задания. Обработчики (workers) будут следить за очередью и выполнять работу по мере поступления. Система...
Изучаем Python: генераторы, стримы и yield
В Python часто используются generator иyield. Расскажу в этой статье об основных свойствах generator, а также преимуществах работы с ним. Разберёмся в подробностях, как...
Класс данных в Kotlin
Что такое «класс данных» и чем он отличается от обычного класса? Какие проблемы решаются в Kotlin с помощью классов данных? Рассмотрим классы данных и разберемся, почему их используют вместо обычных классов.
Как поразить интервьюеров умением инспектировать App Bundle
Хотите произвести неизгладимое впечатление при собеседовании на новую должность? Воспользуйтесь приведенными ниже советами по получению и инспектированию App Bundle.
Улётные пакеты Julia для машинного обучения - мечта программиста!
Несмотря на то, что Julia все еще относительно молодой и перспективный язык, иногда он просто поражает своей не по годам зрелой экосистемой. Особенно это...
5 достойных альтернатив спискам в Python
В Python наиболее популярным контейнером, вероятно, является list. Благодаря присущей ему гибкости список можно повсеместно использовать в проектах для хранения различных видов данных: целых...
Почему имена Android-пакетов имеют вид com.xyz.abc?
Узнайте, почему необходимо использовать реверсивный домен организации при именовании пакетов в Android-проекте. Усвоив этот простой способ именования, вы сохраните свой код чистым, организованным и готовым к последующим изменениям.
Двусторонняя связь без интернета: Nearby Connections
Nearby Connections API позволяет пользователям соединяться друг с другом даже в тех случаях, когда интернет недоступен. При этом API использует Bluetooth и другие технологии, способные обеспечивать одноранговую связь на близком расстоянии (обычно в пределах 100 метров).
Устранение неполадок в Kubernetes - стратегический подход
Работа с Kubernetes может серьезно озадачивать, особенно когда дело доходит до отладки и устранения сбоев. Основная сложность кроется в недостатке подробных сообщений об ошибках...
Подробно об акторах в Swift
Чем акторы похожи на очереди и как ими решаются типичные проблемы параллелизма? Разберем на примерах эффективное применение акторов, опишем правила взаимодействия с ними.
Почему ИИ не лишит работы программистов
Искусственный интеллект - мощный инструмент, который уверенно набирает популярность в современном мире. Но сможет ли он в ближайшем будущем заменить человека? Оказывается, не все так просто. Сегодня поговорим о том, почему рано списывать программистов со счетов.
6 отборных практик для определения метода __init__ в Python
Создание читаемого и удобного в обслуживании кода Python начинается с грамотного определения метода __init__. В связи с эти предлагаем 6 наилучших практик, проверенных личным опытом автора.
Сложные вопросы на собеседовании для тех, кто 7 лет работал с Java. Часть 2
Увеличьте свои шансы на успех, впечатлив потенциальных работодателей знаниями и навыками. Разберем некоторые вопросы с подробными объяснениями и примерами.
C++: практическое руководство по priority_queue
На примерах покажем, как создаeтся приоритизированная очередь, применяются пользовательские типы, обходятся ограничения. Рассмотрим реальный сценарий.
Структурированное логирование JSON в приложениях на Golang
Структурированные логи важны для отладки программного обеспечения. К счастью, это очень легко реализовать на Golang. Узнаем, как сэкономить время при отслеживании багов и как использовать уровни ведения журнала для контроля за логами, а также научимся создавать настраиваемые логгеры.
Знакомство с функциональным программированием в Python, JavaScript и Java
Функциональное программирование (ФП) представляет собой процесс создания ПО путем компоновки чистых функций. В современном мире работодатели ищут программистов, способных применять к решению задач различные...
Новое в Android 11
Оцените превью для обновлений некоторых уже существующих функций, а также доступных нововведений, таких как IME animation control.
Синхронизированные анимации IME
Идея заключается в том, что IME (редактор...
17 полезных скриптов автоматизации на Python. Часть 1
Эти скрипты значительно повысят вашу продуктивность и производительность. Они оптимизируют решение многих повседневных задач, включая сбор изображений, анализ качества кода, создание искусственных данных, мониторинг системных ресурсов, обработку email-рассылок, резюмирование статей, корректуру текстов.
Изучение Blockchain на Python
Неделю назад я поняла, почему испытывала неприязнь к Bitcoin. У меня не было его, и я не понимала как он работает. Я начала изучать...
Разработка продвинутого GUI на Python
Хотите, чтобы графические интерфейсы ваших приложений выглядели более привлекательно и улучшали взаимодействие пользователя с компьютером? Воспользуйтесь практическим руководством по разработке двух версий продвинутого GUI на Python.
10 рекомендаций, которые повысят производительность разработки на Flutter в 2023 году
Flutter предлагает множество функций и инструментов, которые могут значительно повысить производительность при разработке мобильных приложений. Предлагаем подробное руководство по использованию этих возможностей.
Самые полезные библиотеки Go
Эти библиотеки всегда оказываются первыми в списке инструментов Go-разработчика при запуске нового проекта. Они помогают устранить избыточный код и позволяют создавать более качественные и быстрые приложения.
Spring Boot: реализация фабричного метода
Шаблон Factory упрощает создание новых объектов и помогает прятать логику, ненужную для клиента. Предлагаем рассмотреть вариант реализации шаблона фабрики для простого приложения на Spring Boot.
Как я создал веб-скрапер на Python для поиска жилья
Через несколько месяцев мне придется съехать из съемной квартиры и искать новую. Как бы это ни было тяжело, особенно учитывая замаячивший на горизонте ценовой...
TextHero - самый простой способ чистки и анализа текста в Pandas
Упрощенная обработка естественного языка (NLP)
Я всегда нахожусь в поиске новых инструментов, которые помогут мне упростить процедуру обработки естественного языка, поэтому, когда я наткнулся на короткий...
Подробное знакомство с кортежами в C#
История эволюции кортежей в C#, включая описание и примеры их использования как в старом виде, так и в современном.
Отправка push-уведомлений с помощью Firebase Cloud Messaging
Познакомимся с инструментом для отправки уведомлений на одно или несколько устройств и разберем, какие типы уведомлений существуют и как их можно реализовать.
10 полезных советов по повышению производительности при работе с VS Code
Visual Studio Code - не просто текстовый редактор. Это мощный инструмент, который значительно повышает производительность и оптимизирует рабочий процесс. Воспользуйтесь этими советами по работе с ним.
Автоматизация работы с Python
Введение
Работу по вводу данных можно разделить на следующие категории:
Извлечение данных из таблиц (Excel, Google Sheets) и перемещение их в другое место (веб-страница или другая...
Мониторинг приложения Golang с Prometheus, Grafana, New Relic и Sentry
Изучим, как осуществляются мониторинг и логирование службы Go. Напишем код приложения и модульный тест, создав конфигурационные и тестовые файлы, и посмотрим метрики в дашборде Grafana.
Что нового в системной трассировке Android Studio
В Android Studio 4.0 мы пересмотрели UI профилировщика (Profiler), чтобы обеспечить более интуитивно понятный рабочий процесс записи работы ЦПУ. Мы продолжали вносить улучшения, основываясь...
Конкурентность на Go: горутины и каналы для масштабируемых приложений
Рассмотрим две ключевые концепции, их применение в реальном примере. Дадим рекомендации по конкурентному выполнению.
Секреты оператора delete
Оператор delete - старая функция языка JavaScript. Как следует из ее названия, она призвана что-то удалять. Но что именно подлежит удалению в JavaScript? Предлагаем вместе поискать ответ на этот вопрос!
Подключение приложений Android к серверу с помощью gRPC
Пройдем весь процесс поэтапно: создание проекта, файл Gradle, канал взаимодействия клиента и сервера. Настроим локальный сервер, потоковую передачу от клиента и двунаправленную с асинхронной «заглушкой», а также «защелкой» с обратным отсчетом для ожидания текущего потока.
Работа с панелью индикаторов. Руководство программиста Python. Часть 3
Часть 1, Часть 2, Часть 3
В этой серии статей в качестве основной платформы для Dashboarding используется Dash от Plotly.
Прежде чем перейти к этой статье,...
Go. Прорабатываем 25 основных вопросов собеседования
Go, иначе называемый Golang, является открытым языком программирования, который похож на C, но при этом оптимизирован для более быстрой компиляции, удобной реализации конкурентности и...
Реализация ролевого контроля доступа в Elasticsearch
Как защитить данные и предотвратить несанкционированный доступ? Пройдем этапы настройки, дадим рекомендации по эффективному ролевому контролю.
Отладка API Java Message Service с использованием Lightrun
Узнаем, как работает Java Message Service (JMS) и как инструмент под названием Lighrun помогает в отладке, если с пересылкой сообщений что-то идет не так.
Делегаты в Kotlin для Android
Kotlin действительно красивый язык, в котором есть очень крутые фичи. Из-за них разработка приложений становится веселым и захватывающим опытом. Одна из этих фич — делегированные свойства....
TrendNow: создание новостного Android-приложения с помощью Jetpack Compose. Часть 1
Это 1-я часть серии статей, посвященных современной Android-разработке на примере создания новостного агрегатора "TrendNow" с помощью Jetpack Compose. В 1-й части предлагается подробное руководство по созданию базовой функциональности новостного приложения.
Топ-10 магических команд в Python, которые повысят вашу продуктивность
Python не только самый универсальный язык программирования, но и самый гибкий, когда речь заходит об интеграции новых функций. Магические команды являются одной из таких...
Приложение React Native с поддержкой Apple Watch и виджетов
Хотите достичь новых горизонтов в разработке на React Native? Сегодня поговорим о том, как интегрировать приложение Apple watchOS с приложением на React Native, а также создадим виджет, который можно установить в циферблате часов в качестве дополнительной функции.
Язык С: структура программы
Прежде чем изучать основные строительные блоки языка C, рассмотрим в самых общих чертах структуру программы, чтобы использовать ее в качестве отправной точки в последующих главах.
Руководство по использованию регулярных выражений Python
Одна из главных задач при работе с текстовыми данными — это создание множества текстовых функций.
Некоторые функции ищут конкретные паттерны в тексте, например, адреса электронной почты или...
Как создавать анимированные графы в Python
Matplotlib и Seaborn — вполне приличные Python-библиотеки для создания превосходных графиков. Но такие графики получаются статичными, и крайне трудно подобрать для них красивое представление данных или...
Реализация функции Pull-to-refresh с помощью Compose Material 3
Pull-to-refresh ("потяни, чтобы обновить") - удобная функция, которая позволяет пользователям приложений обновлять контент с помощью простых жестов. Опишем реализацию этой возможности посредством новейшей версии библиотеки Compose Material 3.
Как использовать Laravel Sail с бэкендом Docker Desktop на WSL 2
Каждому разработчику рано или поздно приходится иметь дело с Docker и контейнерами. Посмотрим, как происходит установка Docker Desktop на Windows 10, как она интегрируется...
Руководство по созданию интерактивных визуализаций на Python
Хотите научиться создавать эффектные интерактивные визуализации? Сегодня разберем построение графиков и диаграмм, а также развернем контрольную панель на Heroku.
Attr - одна из лучших практик объектно-ориентированного Python
Известно, что Python очень гибкий язык, который может использоваться в функциональном, процедурном и объектно-ориентированном программировании. Честно говоря, я пишу на нем классы только при...
5 удивительных скрытых возможностей Python. Часть 2
Python - эффективный и надежный язык программирования, пользующийся авторитетом в сообществе благодаря своей универсальности и динамике. Рассмотрим 5 недооцененных функций Python, которые сделают вас еще более грамотным разработчиком.
Решение алгоритмических проблем: Поиск повторяющихся элементов в массиве
Проблема
Найти дубликат в массиве
Given an array of n + 1 integers between 1 and n, find one of the duplicates.
If there are multiple possible...
Подробный разбор фреймворка Observation. Новый способ повысить производительность SwiftUI
Всесторонне изучим Observation: его преимущества перед KVO и Combine, применение объектов Observable, особенности отслеживания. Как сокращаются лишние обновления в представлениях SwiftUI?
4 бесплатные игры для изучения Python
Оказывается, можно приобретать полезные знания, весело проводя время. Геймифицированное изучение Python, которое предлагают эти 4 игры, способно увлечь как начинающих, так и продвинутых разработчиков.
Ключевое слово vararg и оператор spread в Kotlin
Что осталось за кадром?
В некоторых случаях необходимо определить функцию с переменным числом параметров; Вот пара примеров, с которыми вы, вероятно, сталкивались в Android:printf(String format, Obj......
Почему Python не станет языком программирования будущего
Причины популярности Python
Успех Python отражается в тенденциях Stack Overflow, рассчитанных по количеству тегов в постах, что является довольно хорошим показателем популярности языка, учитывая размер...
Как создать простое Flutter-приложение ToDo с помощью Hive
Говорят, Hive - лучшая БД для локального хранения данных. Сейчас мы это и проверим на практическом примере создания приложения ToDo на Flutter.
Написание кода как создание бестселлера
Можно ли сказать, что код пишется по тем же законам, что и проза? В чем сходство между программистом и писателем? Какую услугу им обоим может оказать генеративный ИИ? Поразмышляйте над этими вопросами, чтобы писать код, напоминающий бестселлер.
Полное руководство по встроенным структурам данных Python
Структуры данных — это просто специализированные форматы для организации и хранения данных. Они крайне необходимы для разработки программного обеспечения, поэтому их правильный выбор очень важен.
“Плохие программисты...
Go: как циклы преобразуются в ассемблерную программу?
ℹ️ В статье речь идёт о Go 1.13.
Циклы в программировании — понятие мощное и довольно простое. Тем не менее возникает необходимость преобразовывать их в основные команды,...
Регулярные выражения для извлечения информации о расходах из текстового файла
Паттерны регулярных выражений (ReGex) выглядят как какая-то ерунда и все же являются мощным инструментом для извлечения информации из текста. Куча, казалось бы, случайных знаков...
Как стать инженером Python в 2023 году
Предлагаем подробное руководство по овладению основными навыками работы с Python, которые требуются начинающим программистам в 2023 году. Это руководство, составленное с учетом последних тенденций и технологий IT-индустрии, поможет сосредоточиться на самом главном.
Как Nginx справляется с тысячами конкурентных запросов
Изучим безблокировочную архитектуру Nginx. Из каких компонентов она состоит и почему этот событийный подход быстрее?
Как создать загрузчик с вращающимися кругами в Jetpack Compose
Хотите порадовать пользователей анимацией с вращающимися разноцветными кругами? Выполнить ее в Jetpack Compose позволит функция SpinningCirclesLoader. Предлагаем руководство с несколькими вариантами ее использования.
Многопоточность на Rust: ускоряем приложения, делаем их эффективнее
Продемонстрируем мощный подход к выполнению операций в многосхемных базах данных и к параллельной обработке данных. Из строгой системы типов Rust, асинхронных возможностей и потоковой модели создадим надежное приложение.
Продвинутые методы и техники списков в Python
Списковое включение
Это продвинутая функция списков Python, делающая код более чистым и читабельным. Композиция - это способ выполнения ряда операций над списком с использованием одной...
Битва 4 инструментов визуализации данных на языке Python
Предлагаем сравнить потенциал Pyecharts, Plotly, Matplotlib и Seaborn, а также возможности использования каждого инструмента (на примерах визуализации данных фондового рынка).
Как оптимизировать навигацию в Jetpack Compose
Проанализируем ситуацию с навигацией в Jetpack Compose, выявим существующие проблемы и рассмотрим конструктивное решение в виде реализации чистой навигации.
Современное хранилище работает быстро - это API мешают делу
Последние десять лет я почти целиком провел в специализированной продуктовой компании, создавая высокопроизводительные системы ввода-вывода. У меня была возможность наблюдать за быстрым, решительным развитием...
Навигация в приложениях Flutter
Flutter — это продукт от Google, который используется для создания гибридных мобильных приложений на ЯП Dart.
Страница приложения Flutter — это Widget, который представляет собой описание изображенного пользовательского интерфейса....
4 новых продукта GitHub, которые изменят код
Совсем недавно GitHub провел свое первое виртуальное мероприятие — GitHub Satellite. Тысячи людей подключились к прямой трансляции, которая весь день радовала публику интересными докладами, сгенерированной музыкой...
Темная сторона однонаправленных архитектур Swift
Однонаправленные архитектуры строго предусматривают, где и как обрабатываются состояния и эффекты. Но при этом страдают так называемой “пинг-понг-проблемой”, что сопряжено с риском для удобочитаемости. Поэтому стоит разобраться с этой проблемой и поискать способы ее преодоления.
10 шаблонов поведения для UX-дизайна
При разработке любого продукта важно понимать и учитывать ожидания пользователей. Если создавать продукт в вакууме, не принимая во внимание существующие варианты на рынке или...
Создание собственной симуляции активной материи на Python
Сегодня наша задача — создать симуляцию активной материи, т. е. роевое поведение. С помощью этой системы можно имитировать поведение стаи птиц или косяка рыб,...
5 антипаттернов на языке функционального программирования
Проанализируем причины роста популярности языков функционального программирования и подробно рассмотрим 5 антипаттернов на примерах Scala.
Как я встраивал ресурсы в Go
Во время стажировки в WSO2, я работал над проектом разработки процессов непрерывной интеграции и развёртывания ПО для WSO2 API Manager. Работа велась в основном...
Топовые пакеты Python для очистки данных
Многим кажется, что наука о данных сводится исключительно к разработке моделей машинного обучения и оценке технических показателей. Это не так - круг обязанностей гораздо шире. Специалисты работают над сбором, очисткой, анализом, пониманием данных и т. д. Разберем же наиболее эффективные инструменты Python, предназначенные для очистки данных.
Объекты данных в Kotlin
Рассмотрим новый функционал Kotlin, который улучшает строковое представление object. Он особенно актуален, когда имеются иерархии запечатанных классов с другими классами данных, которые нужно занести в журнал или распечатать для отладки или аналитики.
Превратите свой Java-код в полностью асинхронный
Асинхронное программирование становится все популярнее благодаря своим преимуществам. Изучим, как добиться асинхронности в Java - на помощь в этом придут CompletionStage и AutoValue.
Доступно об API-вызове во Flutter: лучшие практики с демонстрацией кода
Рассказываем, как во Flutter использовать методы API-вызова HTTP, POST, GET и как создавать модели для представления данных, получаемых с сервера. Следуя этим практикам, вы будете писать более надежный и эффективный код.
Однонаправленный поток данных в пользовательском интерфейсе Android
Вступление
Рассмотренные в этой статье идеи основаны на лучших описаниях особенностей реализации приложений Android, которые были успешно проверены на практике при создании реального приложения для...
Почему стоит упрощать проекты МО
Аргументируем, почему не стоит тратить время и силы на сложную модель МО, а лучше в интересах бизнес-клиентов заняться созданием работоспособного MVP.
Python Django и OSRM: маршрут на интерактивной онлайн-карте
Python Django, Folium, Leaflet и OSRM API для веб-приложения с функционалом Google Maps
Выполняйте загрузку Excel-файлов в Python в 1000 раз быстрее
Обеспечьте молниеносную обработку данных с помощью экспертных методов. Используя преимущества оптимизации форматов файлов и параллельной обработки, вы существенно повысите производительность операций загрузки данных в Python.
Лучшие инструменты для разработки приложений под Android
Android предлагает разработчикам массу возможностей: это универсальная, открытая платформа, используемая миллионами пользователей по всему миру, с удивительно простой в использовании площадкой для распространения приложений....
Блокчейн и искусственный интеллект - мощный тандем
Альянс искусственного интеллекта и блокчейна способен произвести настоящую революцию в промышленности. При этом обе передовые технологии могут эффективно расширять возможности друг друга.
Как использовать JavaScript для расстановки элементов на веб-странице
Вы когда-нибудь видели веб-страницы с абсолютно хаотичной расстановкой элементов? Сложно сфокусироваться, да? К счастью, если очень захотеть, то их можно расставить в нужном порядке с помощью JavaScript!








































































































