Хитрости объектно-ориентированного программирования. Часть 1: Искусство разделения команд и запросов
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
У функций есть побочные эффекты. Иногда они изменяют состояние системы в самый неожиданный момент и...
Как оркестровать микросервисы с помощью Docker Compose
Развертывание приложений с микросервисной архитектурой - довольно громоздкий процесс, занимающий много времени. Уменьшить рабочую нагрузку позволяет Docker Compose, инструмент оркестрации контейнеров. Рассказываем об упрощенном создании микросервисных приложений на Spring Boot.
Как построить масштабируемый API на Go с помощью Gin
Пошаговое руководство по проектированию API, от с создания базы данных и прописывания основных маршрутов до тестирования его работоспособности.
Нативные, гибридные и web-приложения в сравнении
Итак, вы решили разработать для своего бизнеса приложение. Каков в этом случае следующий шаг?
С одной стороны, исследователи прогнозируют, что совокупная доходность мобильных приложений во...
Самые полезные библиотеки Go
Эти библиотеки всегда оказываются первыми в списке инструментов Go-разработчика при запуске нового проекта. Они помогают устранить избыточный код и позволяют создавать более качественные и быстрые приложения.
Автоматизированное семантическое управление версиями с помощью GitVersion
При создании новых программных проектов или изменении уже существующих процессов всегда бывает сложно определить правильную стратегию управления версиями. Выбор стратегии ветвления, достижение консенсуса с...
Графовые сверточные сети: введение в GNN
Предлагаем подробное описание механизма работы графового сверточного слоя. Пошаговое руководство по использованию PyTorch Geometric (PyG) позволит на практике применять этот механизм для решения задач классификации узлов.
Виртуальные Окружения в Python
В процессе работы над проектом мне потребовалось проверить, работает ли пакет Flask с установленным у меня Python. При запуске команды для установки Flask я...
Топ-13 пакетов Python в 2023 году
Предлагаем обзор 13 лучших пакетов Python, которые помогут ускорить процесс разработки. Оцените невероятные возможности Python, широту и глубину доступных ему задач (особенно в сфере машинного обучения).
Почему в Python по-прежнему нужна функция map()
При наличии различных альтернатив функция map() в Python кажется излишней. Так нужна ли она в Python? Предлагаем обсудить этот вопрос вместе с Python-разработчиком.
Логирование в Python с помощью Logzero
Logzero - это пакет Python, созданный Крисом Хагером, который упрощает отображение информации и сведений об отладке в качестве оператора print в Python 2 и...
Переменная __name__ в Python
Введение в переменную _ _name_ _ и варианты ее использования в Python
Скорее всего, вы встречали переменную __name__ при работе с кодом Python. Она выглядит следующим...
5 Расширенных возможностей Pandas и как ими пользоваться
Pandas — это золотой стандарт в обработке данных. А функциональные возможности библиотеки по загрузке, фильтрации, обработке и изучению данных быстро сделали ее излюбленным инструментом аналитиков.
Конечно же,...
Как создать простой планировщик событий в Go
Базовый рабочий механизм представляет собой следующее: запланированное событие добавляется в базу данных, из которой оно будет выполняться в определенное время. Другая задача будет запускаться...
Haskell: навстречу функциональному программированию
Haskell — это функциональный язык программирования, разработанный специально для обработки символьных вычислений и списков.
Данная статья носит обучающий характер и предназначена для новичков, стремящихся понять основные...
Создаем веб-сканер страниц с помощью Python
Рассмотрим поэтапный процесс создания веб-сканера для отслеживания изменений и последующего оповещения посредством e-mail. Работаем с Python, Beautiful Soup и Pipedream.
Как и для чего использовать нативную библиотеку сериализации Kotlin
Вывод из статьи
В конце статьи вы узнаете, почему команда Kotlin создала новую библиотеку сериализации, несмотря на наличие многих продвинутых решений, таких как Moshi и Gson....
Как автоматизировать операции Kubernetes посредством Python
Научимся автоматизировать все "скучные" задачи и операции Kubernetes. Для этого познакомимся и подробно разберем внутренний механизм работы клиентской библиотеки Python для Kubernetes!
Принципы SOLID в инженерии данных. Часть 1
Продемонстрируем на примерах, как нарушается и соблюдается каждый принцип и что получается при расширении кодовой базы. Разберем достоинства и недостатки, в каких ситуациях принципы SOLID нужны, в каких - нет.
Инструменты прототипирования в 2021 году
Прототипирование является ключевой частью проектирования UI и UX. Дизайнеры могут создать прототипы как с высокой, так и с низкой точностью, в зависимости от их...
GitHub Actions: начало
Часть 1, Часть 2
В одной из последних статей я делала обзор GitHub Actions и показывала, как использовать существующий экшен для развертывания сайта Gatsby на...
Как разбить текст на абзацы с помощью Python
Ищете простой и эффективный способ автоматического реферирования текстовых данных? Воспользуйтесь доступным руководством по реализации первого этапа реферирования - разбиения текста на абзацы.
Лучшие практики Python для специалистов по обработке данных
Немало уже сказано о том, что специалисты по анализу и обработке данных не пишут чистый код. И тому есть объяснение: большая часть всей предварительной...
Сетевое программирование в Go
Предлагаем пошаговый гайд по созданию надежного TCP-сервера с использованием Go. Такой сервер обеспечивает регистрируемую и контролируемую доставку потока одновременных соединений.
Как создать Telegram бота с помощью Python
Представьте, что у вас есть бот в мессенджере, который присылает вам случайно выбранную картинку с собачкой, когда вам захочется. Звучит здорово, да? Давайте сделаем...
Функциональное программирование - будущее компьютерной науки?
Функциональное программирование (ФП) существует уже на протяжении последних шести десятилетий, и на данный момент не прекращает попыток преодолеть повсеместное доминирование объектно-ориентированного программирования (ООП). В...
Разворачиваем декораторы. Часть 2
Предыдущие части: Часть 1
Вспомним о чем шла речь
Предыдущий пост я писал про основы декораторов в Python. Для тех, кто не читал её, в двух...
Обработка ошибок в Go
Обработка ошибок в Go постоянно вызывает споры и возникает среди тем ежегодного опроса о сложнейших проблемах, с которыми встречаются разработчики, пишущие на этом языке....
Освойте оконные функции SQL раз и навсегда
Пошаговое руководство по освоению оконных функций поможет решать различные задачи. Изучите на конкретных примерах, как оконные функции помогают выполнять агрегирование, ранжирование и смещения данных.
Как зарабатывать с помощью Python в 2023 году
Извлечь выгоду из навыков программирования можно разными способами. Представляем список навыков Python, которые принесут доход в условиях конкуренции.
Топовые пакеты Python для очистки данных
Многим кажется, что наука о данных сводится исключительно к разработке моделей машинного обучения и оценке технических показателей. Это не так - круг обязанностей гораздо шире. Специалисты работают над сбором, очисткой, анализом, пониманием данных и т. д. Разберем же наиболее эффективные инструменты Python, предназначенные для очистки данных.
Выбираем базу данных
Опытный ли вы инженер-программист или студент, пишущий университетский проект, в какой-то момент вам нужно будет выбрать базу данных для ваших целей.
Если вы ранее уже...
Java для начинающих: часть 2 из 4
Часть 1, Часть 2, Часть 3, Часть 4
Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java. Даже при...
Прощай, Python! Здравствуй, C#!
Рассказ о том, как один программист перешел с Python на C# и что его к этому побудило.
Как улучшить навыки работы с Python в 2023 году
Хотите узнать, как повысить эффективность вашего кода с точки зрения времени выполнения и сохранения памяти? Воспользуйтесь советами, которые помогут перейти на новый уровень написания кода Python.
Как дизассемблировать код Python и повысить его производительность
Базовое знакомство с простой, но эффективной техникой оптимизации кода через его дизассемблирование.
Rust: реализация двоичного дерева
Поскольку Rust приобрел довольно широкую известность и пополнил ряды своих преданных поклонников, я решил отложить в сторону любимый JS и заняться изучением нового языка....
Подключение Kafka в Spring Boot
Подробно разберем код для подключения Apache Kafka в Spring Boot. Подготовим приложение к отправке сообщений на сервер Kafka и их потреблению.
Отмена в корутинах
Часть 1, Часть 2
В разработке, как и в жизни, мы знаем, что важно избегать делать больше работы, чем необходимо, так как это может привести...
Spring Boot: реализация фабричного метода
Шаблон Factory упрощает создание новых объектов и помогает прятать логику, ненужную для клиента. Предлагаем рассмотреть вариант реализации шаблона фабрики для простого приложения на Spring Boot.
Как создавать диаграммы с помощью ChatGPT
Узнаем, как ChatGPT создает диаграммы на основе скриптов Mermaid. Проиллюстрируем весь процесс наглядными примерами и обойдемся без глубоких знаний Mermaid.
Fake-объекты практичнее mock-объектов
Стоит помнить — если вы имеете дело с неудачно разработанным API, предпочтительнее использовать mock-объекты.
Пример кода.
Что такое mock- и fake-объекты
Определения можно найти во множестве статей...
Чистая архитектура с MVVM
Для лучшего понимания чистой архитектуры давайте создадим примерный проект. Это приложение, на первой странице которого показывается список персонажей из мультсериала «Рик и Морти» с...
Rust для разработчиков JS
Rust не вызвал у меня большого интереса, когда я впервые прочитал о нём. Это было около двух лет назад. Я работал веб-разработчиком, программировал в...
Создаем краткое содержание текста с помощью Python без NLP
Существует много библиотек NLP, например Natural Language Toolkit (NLTK), TextBlob, CoreNLP, Gensim, и spaCy. Также есть множество способов обобщения текстов — покажу самый простой,...
Овладей Python, создавая реальные приложения. Часть 6
Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4, Часть 5
Многие считают, что наука о данных— это крутые алгоритмы машинного обучения и машины на автопилоте. Позвольте вас...
Овладей Python, создавая реальные приложения. Часть 7
Приложение для сбора данных с Flask и PostgerSQL
Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4, Часть 5 и Часть 6
Работа с базой данных и запросами пугает некоторых (а...
8 полезных на практике приёмов для веб-разработчиков
Как веб-разработчику, мне всегда приятно узнавать фишки, которые упрощают жизнь, особенно если их можно сразу же использовать на практике. Однако список таких приёмов бесконечен,...
Как я встраивал ресурсы в Go
Во время стажировки в WSO2, я работал над проектом разработки процессов непрерывной интеграции и развёртывания ПО для WSO2 API Manager. Работа велась в основном...
Веб-API для улучшенного UX
Примечание: некоторые из представленных здесь API все еще находятся в разработке или не поддерживаются в некоторых браузерах. Рекомендуем прочитать полную документацию перед их использованием.
Видимость...
Как оптимизировать набор текста с помощью Python
Набор текста давно превратился в неотъемлемую часть нашей повседневной рутины. Поэтому умение оптимизировать процесс ввода текста с клавиатуры приносит огромную пользу тем, кто большую...
Разветвление вселенной UI
В 2023 году нам предстоит увидеть новые версии пользовательского опыта. Ознакомьтесь с некоторыми из них, а заодно поразмышляйте над тем, нужно ли нам отказаться от пользовательского интерфейса вообще или стоит переосмыслить его в пользу более естественных, минималистичных и осязаемых вариантов?
Java Hibernate
Познакомимся с инструментом Hibernate, который помогает сопоставлять объекты с записями в реляционных базах данных, и выполним CRUD-операции на примере условного класса.
Как интегрировать Kafka со Spring Boot
Для создания управляемых событиями, надежных и масштабируемых приложений часто используют Apache Kafka совместно с Spring Boot. Рассмотрим особенности такой интеграции.
Сможет ли Julia занять место рядом с Python
Julia и Python —языки программирования, которыми я очень дорожу. Использование Julia вместо Python обладает множеством преимуществ, таких как меньшее время написания кода и более...
Как создать свой Twitter или управляемое данными приложение с Golang и Kafka
Сделаем легко масштабируемую систему с ML-алгоритмами для определения предпочтений пользователей. Заполним временну́ю шкалу, создадим тему, заведем задачу для получения и сохранения твитов из темы, проанализируем их с помощью тегирования.
Автоматический импорт библиотек в IPython или Jupyter Notebook
Если вы — частый пользователь IPython или Jupyter Notebooks и вам надоело постоянно импортировать одни и те же библиотеки, то попробуйте этот способ:
Перейдите к ~/.ipython/profile_defaultСоздайте папку...
10 шаблонов поведения для UX-дизайна
При разработке любого продукта важно понимать и учитывать ожидания пользователей. Если создавать продукт в вакууме, не принимая во внимание существующие варианты на рынке или...
Изменение типа с помощью typealias
Когда определения типов отвлекают от значения вашего кода из-за нечитабельности, выразительности или просто длины, у Kotlin есть подходящая функция: typealias! Typealias позволяет давать альтернативные...
Написание консольных скриптов: Bash против Python
Для создания скриптов командной строки часто используют такие инструменты, как Bash и Python. Сравним их возможности в современных задачах автоматизации рутинных операций программирования.
7 советов по улучшению анализа данных в Python
#1: Pandas Profiling
Преимущества этого инструмента очевидны. Анимация ниже создана с помощью вызова метода df.profile_report():
С помощью этого инструмента можно с легкостью устанавливать и импортировать пакет...
Как легко оптимизировать Jupyter Notebook. Часть 2
Руководство для начинающих о том, как сделать Jupyter Notebook быстрее, мощнее и круче
Часть 1, Часть 2
Магические команды (Magic)
Magic — это отличные команды, упрощающие нашу жизнь при решении определенных...
Интерактивное управление в Jupyter Notebooks
Вряд ли найдётся занятие бесполезнее, чем вновь и вновь запускать одну и ту же ячейку, немного меня значение входных данных и параметров. Несмотря на...
Создание приложения на Python для систематизации фото по геолокации и дате
Накопилось множество папок с фотографиями из путешествий? Наведем в них порядок, создав приложение на Python для сортировки изображений по геолокации и дате.
Использование инверсии зависимостей в Go
Что такое инверсия зависимостей?
Её идея заключается в том, что высокоуровневая логика не должна зависеть от низкоуровневых реализаций. Бизнес-логике в приложении не должно быть дела...
Основы CI/CD
В современной компании процесс разработки редко обходится без систем непрерывной интеграции и доставки. Разберемся, как они работают и почему они так важны для бизнеса.
Эффективное использование словаря (C#) как альтернатива оператору If
Всё больше наших коллег на практике предпочитают избегать применения операторов if. Эти условия, по их мнению, усложняют и прибавляют багов в наши приложения.
Но условия...
Обзор библиотеки Datatable в Python
Данные, с которыми вы работаете, уже настолько большие, что вы часами ждёте их загрузки? Пора осваивать новый инструмент, который избавит вас от долгого ожидания...
R - язык для статистической обработки данных. Часть 2/3
Часть 1, Часть 2
Предыдущую часть мы закончили темой векторов, а в этой — переходим к матрицам.
9. Что такое матрица?
Матрица, как структура данных, тоже часто встречается в R.
Её...
Секреты оператора delete
Оператор delete - старая функция языка JavaScript. Как следует из ее названия, она призвана что-то удалять. Но что именно подлежит удалению в JavaScript? Предлагаем вместе поискать ответ на этот вопрос!
Практикум по созданию сценариев командной строки
Сценарии командной строки играют важную роль в современных операционных системах. Предлагаем углубиться в это понятие и поучиться писать скрипты shell.
Создание простого клиента RabbitMQ с помощью Go
Как известно, Go — это язык программирования с открытым исходным кодом, позволяющий легко создавать простое, надёжное и эффективное программное обеспечение.
RabbitMQ представляет собой общедоступный программный...
Топ-10 самых распространенных ошибок в проектах Go. Часть 1
Неизвестное значение enum
Рассмотрим простой пример:
type Status uint32
const (
StatusOpen Status = iota
StatusClosed
StatusUnknown
)
Enum создан с помощью iota, что приводит к следующему состоянию:
StatusOpen = 0
StatusClosed = 1
StatusUnknown =...
Почему Go прекрасно подходит для DevOps
Go — это язык программирования с открытым исходным кодом, история которого началась в Google примерно десять лет назад. Сегодня Go стремительно приобретает популярность как язык будущего....
Классификация текстов отзывов о фильмах с помощью Scikit-learn
Сначала мы посмотрим, как подготовить текстовые данные для подачи их в модель машинного обучения. Затем покажем, как использовать Scikit-learn для реализации модели классификатора, а...
OpenTelemetry и Sentry - недооцененные инструменты трассировки распределенных систем на Golang
Краткое описание 🚶
Создадим небольшой пример инструментирования приложения на Golang с его настройкой, использованием OpenTelemetry и передачей получаемых трассировок на бэкенд Sentry. Вот ссылка на него...
Модификатор Kotlin, которого не должно было быть
Большинство разработчиков Kotlin уверены в том, что свойство val здесь эквивалентно использующемуся в Java свойству final. А что, если я скажу, что это не...
Как настроить базу данных с Firebase Firestore для Android
Начало
Загрузите стартовый проект с GitHub.
Откройте приложение в Android Studio и дайте завершитьсяGradle sync. Запустите приложение и вы увидите список покупок:
Создание проекта в Firebase Console
Первый шаг — это...
Обзор полезных инструментов для интроспекции объектов Python
Поделимся полезными советами и приемами для проверки объектов Python и получения информации о коде во время выполнения. В связи с этим рассмотрим такие инструменты интроспекции, как встроенные функции, атрибуты объектов и модуль inspect.
4 golang-сниппета, которые вводят в заблуждение разработчиков C#!
В лингвистике такое явление получило название ложные друзья переводчика, то есть слова, похожие по звучанию или написанию, но совершенно разные по значению. Например, английское...
Хитрости на Python
Болтовня ничего не стоит. Покажите мне код.
Эти приемы на Python весьма незаурядны и крайне полезны.
Обмен значениями
Создание одной строки из всех элементов списка
Поиск самого частого значения...
PostgreSQL вместо Kafka: способ реализации системы очередей
Очереди - ключевой элемент в распределенных системах. Поэтому так важно организовать их обработку наиболее оптимальным образом. Здесь о своем подходе к решению этого вопроса рассказывает представитель платформы работы с данными RudderStack.
Как защитить учетные данные с помощью переменных среды в Python
Как быстро и без особых усилий скрыть учетные данные, исключив их передачу по сети небезопасным способом.
Преобразование речи в текст с помощью ИИ на Python: пошаговый гайд
Давно мечтали о виртуальном собеседнике на базе искусственного интеллекта? Представляем подробное руководство по созданию такой модели с помощью языка Python.
Как написать хороший README: краткий курс
После Hacktoberfest в проектах с открытым исходным кодом появилось много новых правок. Только за октябрь было сделало более 400 000 запросов на включение кода. Это невероятно!
Я...
Микрооптимизации в Java. Enum - хороший, красивый и медленный
Перечисления — важная часть каждого приложения, которое представляет собой чуть больше, чем “Hello World”. Они повсюду. И, на самом деле, перечисления очень полезны: они...
ТОП-5 законов для каждого UX-дизайнера
Когда люди слышат слово «дизайн», они обычно думают, что это творческая работа, которая подразумевает создание красивого внешнего вида. Но UX-дизайн доказывает, что привлекательный продукт...
Сортировка и фильтрация записей с помощью базы данных Room и Kotlin Flow
Легко и просто строим реактивные приложения на Android. Рассмотрим реализацию функций сортировки и фильтрации записей локального хранилища.
Нормальное завершение работы в Go
Go очень популярен среди разработчиков бэкенда, а его сообщество с каждым днем только растет.Лично я предпочитаю писать код на Go.
В этом кратком руководстве описывается...
Как создавать легкие платформонезависимые приложения на Go — без JS и BS
Ознакомимся с методами, виджетами и функционалом библиотеки Gio, сделаем приложение GoGiggles, запустим его в ОС. Добавим функционал СhatGPT, кнопку, обработку событий нажатия.
Замыкания в Rust
В Rust можно создавать не только именованные функции, но и анонимные, которые называются замыканиями. Сами по себе они не так уж интересны, пока вы...
Java для начинающих: часть 3 из 4
Часть 1, Часть 2, Часть 3, Часть 4
Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java. Даже при нулевых знаниях...
10 простых сниппетов Python для веб-разработки, автоматизации и обработки данных
Используйте эти модули и сниппеты в программировании на Python - это позволит автоматизировать сложные задачи и оформлять код так, как вам нравится.
Устранение неполадок в Kubernetes - стратегический подход
Работа с Kubernetes может серьезно озадачивать, особенно когда дело доходит до отладки и устранения сбоев. Основная сложность кроется в недостатке подробных сообщений об ошибках...
Понятия “связанности” и “связности” в объектно-ориентированном программировании
Рассмотрим такие характеристики кода, как связанность и связность. Разберем каждое из понятий и на примерах определим их наилучшее сочетание для чистоты кода и удобства его сопровождения.
5 удивительных скрытых возможностей Python. Часть 1
Хотите повысить уровень своих навыков написания кода? Возьмите на заметку 5 скрытых возможностей Python. Они помогут сократить время разработки, улучшить читаемость кода и повысить его эффективность.
Анализ автоаварий в Барселоне с использованием Pandas, Matplotlib и Folium
Open Data Barcelona - это сервис, предоставляющий наборы данных Барселоны, который содержит около 400 наборов, охватывающих широкий спектр тем, таких как население, бизнес и...
Реляционные базы данных в контейнерах Docker Compose
Простое и быстрое руководство по контейнеризации базы данных MySQL.
Реализация односвязного списка в Golang
Разберем структуру односвязного списка, компоненты его узлов. Рассмотрим четыре способа вставить и удалить данные в связном списке, реализацию с ним других операций.
Локализация: почему простого перевода пользовательского интерфейса будет недостаточно
Узнаем, что такое индекс дистанции власти и его влияние на культуру и пользовательский опыт. Узнаем, как индекс дистанции власти влияет на общение пользователей в социальных сетях, их систему оценивания товаров и услуг.
5 подводных камней нереляционных баз данных
Когда речь заходит о нереляционных базах данных, не все видят две стороны одной медали: многие упускают из виду то, что у этих баз данных...
Что нового в системной трассировке Android Studio
В Android Studio 4.0 мы пересмотрели UI профилировщика (Profiler), чтобы обеспечить более интуитивно понятный рабочий процесс записи работы ЦПУ. Мы продолжали вносить улучшения, основываясь...
Совместное использование компонентов React с различными библиотеками управления состоянием
Создадим компоненты React для совместного использования с Redux, MobX, Recoil и любыми другими библиотеками управления состоянием. Узнаем, какие задачи и каким образом решают данные библиотеки.
Пишем фронтенд-компоненты на ванильном JS
В наши дни вокруг фронтенд-фреймворков (React, Angular, Vue) много шумихи. Поразмышляем, какую проблему они решают и для чего могут быть полезны.
В качестве эксперимента создадим...