Null

Null - это зло!

Не сомневаюсь, что заголовок статьи привлек ваше внимание! А теперь позвольте мне аргументировать свою точку зрения, поскольку процентов на 50%, а то и больше,...
Программируем с ChatGPT: 10 советов

Программируем с ChatGPT: 10 советов

Хотите извлечь максимальную пользу из ChatGPT? Эти советы помогут ускорить работу, внедрив в нее ChatGPT, но при этом не допустить критических ошибок.
Оптимизация кода Python с помощью конечных запятых: мощная техника

Оптимизация кода Python с помощью конечных запятых: мощная техника

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

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

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

5 удивительных скрытых возможностей Python. Часть 2

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

Создаем настраиваемую цепочку обязанностей в Go

Цепочка обязанностей или цепочка команд — это шаблон проектирования, позволяющий передавать запросы по цепочке Handlers. Каждый Handler решает, нужно ли обработать и расширить запрос или же...
Go - единственный выбор для бэкенд-разработчика?

Go — единственный выбор для бэкенд-разработчика?

Go впечатляет балансом свой простоты и мощи. Но можно ли его назвать "золотой клеткой" для бэкенд-разработчика? Способен ли он удовлетворить широкий спектр бэкенд-потребностей? Чтобы ответить на этот вопрос, оцените технические возможности языка Go.
Сложные вопросы на собеседовании для тех, кто 7 лет работал с Java. Часть 1

Сложные вопросы на собеседовании для тех, кто 7 лет работал с Java. Часть 1

Увеличьте свои шансы на успех, впечатлив потенциальных работодателей знаниями и навыками. Разберем некоторые вопросы с подробными объяснениями и примерами.
20 Python-скриптов для автоматизации повседневных задач

20 Python-скриптов для автоматизации повседневных задач

Эта коллекция из 20 скриптов усилит арсенал любого питониста. Став ее обладателем, вы сможете легко решать такие задачи, как поиск дубликатов файлов, преобразование текста в речь, создание собственного чат-бота, мониторинг цен на криптовалютном рынке и многие другие. 
JavaScript

Малоизвестные функции JavaScript

Считается, что JavaScript — самый простой язык, чтобы начать и самый сложный язык, чтобы полностью освоить. Не могу не согласиться, так как JS очень старый и...
Pandas

3 классные малоизвестные функции Pandas

Я и раньше писал о Pandas по очевидным причинам — это изумительная библиотека для анализа данных и даже для визуализации. Предыдущая статья была о функциях, которые...
Как узнать, допускает ли изменения коллекция в Java?

Как узнать, допускает ли изменения коллекция в Java?

Ответ на этот вопрос - никак. Между тем преимущества различения изменяемых и неизменяемых коллекций в Java очевидны. Это не менее важно, чем отличать мастику для натирки полов от начинки для десерта.
Как с легкостью создать установщик пакетов Android

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

Ищете простой способ создания установщика пакетов Android? Библиотека Ackpine позволит выполнить этот процесс, избавив вас от многих забот и большого объема кода.
Python

Разворачиваем декораторы. Часть 1

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

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

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

10 продвинутых советов по Git

Если вы уже понимаете, как работает Git, эта статья поможет вам развить умение работать с Git и стать более эффективным.
Rust

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

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

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

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

Мутационное тестирование: создай мутанта и прокачай тест

Какая же проблема связана с модульными тестами? Дело в том, что можно написать их сколько душе угодно, и они даже пройдут, но это совсем...
5 рекомендаций по оптимизации пул-реквестов

5 рекомендаций по оптимизации пул-реквестов

Создание пул-реквеста (запроса на размещение изменений в основной ветке) и ожидание результатов ревью  —  стандартные процедуры в процессе написания кода, являющиеся важной и неотъемлемой...
Принципы SOLID в инженерии данных. Часть 3

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

Выясним, как с принципами SOLID сочетается функциональное программирование, каковы их достоинства и недостатки. Продемонстрируем на примерах нарушение и соблюдение этих принципов.
18 понятий программирования, о которых вы никогда не слышали (но должны были!)

18 понятий программирования, о которых вы никогда не слышали (но должны были!)

Откройте для себя "скрытые жемчужины" программирования, чтобы улучшить навыки в написании кода. Освоив эти 18 понятий, вы получите мощные инструменты для простого решения сложных проблем - будь то оптимизация производительности, безопасности или читабельности. 
Переход с VS Code на Neovim: повысьте свою продуктивность 

Переход с VS Code на Neovim: повысьте свою продуктивность 

Переход с VS Code на Neovim может кардинально изменить ваш рабочий процесс. Настраиваемость, скорость и эффективность Neovim позволит быстрее и продуктивнее писать код и управлять проектами. Узнайте, как установить, настроить и использовать этот инструмент.
Прогнозирование настроений на фондовом рынке с помощью OpenAI и Python

Прогнозирование настроений на фондовом рынке с помощью OpenAI и Python

Хотите помочь своим клиентам овладеть алгоритмическим трейдингом? Тогда вас должны заинтересовать возможности LLM в анализе акций. Предлагаем комплексную методологию по извлечению значимых сведений о рыночных тенденциях на основе настроений, выраженных в новостях.
5 проектов Go: управление безопасностью и контейнерами, создание бэкендов

5 проектов Go: управление безопасностью и контейнерами, создание бэкендов

Расскажем об интересных проектах Golang, связанных в том числе с разведкой по открытым источникам. Используйте их в своих приложениях.
Байт-код Java: назначение, структура и использование

Байт-код Java: назначение, структура и использование

Занимаетесь разработкой компиляторов, современных фреймворков или Java-инструментов? Тогда вам необходимо знать, как что такое байт-код, какова его структура, зачем он нужен и как с ним работать. Эти знания позволят эффективно использовать байт-код Java в своих целях.
Как удаленно отлаживать сайты для Android с помощью Chrome DevTools

Как удаленно отлаживать сайты для Android с помощью Chrome DevTools

Поскольку под управлением Android работает более 2,5 млрд устройств, разработчики не могут игнорировать оптимизацию веб-страниц для этой операционной системы (ОС). Обычно на устройствах с...
Как пользоваться Thread.sleep на JVM без блокировки

Как пользоваться Thread.sleep на JVM без блокировки

У таких языков JVM, как Java и Scala, есть возможность запускать параллельный код с помощью класса Thread. Потоки, как известно, сложны и подвержены ошибкам,...
Go: точечная вставка значения в структуру

Go: точечная вставка значения в структуру

Подробно и с примерами рассмотрим функционал мощного и элегантного пакета dot для сложноиерархических структур. На основе тестов дадим рекомендации по его использованию.
Создание пользовательских аннотаций в Java

Создание пользовательских аннотаций в Java

Продолжаем разговор об аннотациях в Java - теперь кроме предопределенных "из коробки" аннотаций научимся писать и применять свои собственные.
Julia

Улётные пакеты Julia для машинного обучения - мечта программиста!

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

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

Сравним функционал PgCat по временно́й задержке и корректности. Рассмотрим особенности балансировки нагрузки и отработки отказа реплики, клиентов с плохим поведением и поддержку сегментированных БД.
10 наиболее эффективных CLI-инструментов 

10 наиболее эффективных CLI-инструментов 

Эти утилиты способны значительно повысить продуктивность работы. Они помогут расширить возможности терминала и навигации, оптимизируют взаимодействие с системами контроля версий, автоматизируют повторяющиеся задачи, возьмут на себя управление задачами и организацию информации.
Rust

Диагностика кода на Rust

Отладка кода на Rust  —  дело непростое. Может быть, она и возможна, но здесь и близко нет таких инструментов, которые позволяют осуществлять её в...
7 признаков того, что Flutter готов к разработке корпоративных приложений

7 признаков того, что Flutter готов к разработке корпоративных приложений

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

Хотите стать классным разработчиком? Работайте с UX

В свою первую стажировку я проработал продукт-менеджером и UX-дизайнером всего лишь два месяца, однако узнал о проектировании куда больше, чем за время работы разработчиком. Технические...
Frink

Злые единицы - добрый Frink

Введение Единица измерения  —  это физическое свойство, представляющее собой число, например, расстояние или время. Мы почти всегда говорим о системе единиц СИ. У единиц могут быть...
Python

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

Введение в виртуальные среды Python с использованием VR Нет, вам не нужны очки виртуальной реальности (VR) для чтения этой статьи. Будет достаточно внимательности и интереса...
Когда стоит использовать перечисления в Java?

Когда стоит использовать перечисления в Java?

Где же все-таки можно, а где не стоит использоваться перечисления? Краткое руководство "в картинках".
Базовый класс Android ViewModel за 5 минут

Базовый класс Android ViewModel за 5 минут

Класс ViewModel служит прослойкой между View и Model в структурном паттерне проектирования MVVM. Рассмотрим особенности реализации ViewModel на реальном примере.
Как настроить отдельные SSH-ключи для нескольких учётных записей GitLab

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

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

Сопоставление LiveData, SingleLiveEvent и MediatorLiveData в Android

Хотите эффективно управлять данными и событиями в приложении Android, а также создавать удобный в обслуживании код? Уделите внимание таким важным структурам Android Architecture Components, как LiveData, SingleLiveEvent и MediatorLiveData.
Поддержание документации в актуальном состоянии с помощью Bit и GitHub

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

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

Хитрости объектно-ориентированного программирования. Часть 6 SLAP для функций

Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.  Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4 и Часть 5. Элементарные функции Должен признать: очень долгое...
Java

Портируем решатель судоку с Java на WebAssembly

Мне давно хотелось приступить к изучению WebAssembly, но никак не находилось подходящего материала. Однако недавно я просматривал некоторые старые программы и вспомнил, что как-то...
Представление концепций ООП с реальными сценариями

Представление концепций ООП с реальными сценариями

Что общего между разработчиком и архитектором, которому поручено спроектировать дом? Подробно разберем понятия ООП для применения в реальных проектах.
Разработка приложения на основе генеративного ИИ в React IDE

Разработка приложения на основе генеративного ИИ в React IDE

Создание приложений сопряжено с проблемами, способными замедлить процесс разработки и затруднить совместную работу. Codux  -  бесплатная визуальная среда разработки для приложений React + TypeScript  -  сделает этот процесс намного проще и эффективнее.
VS Code Remote-SSH для удаленной разработки

VS Code Remote-SSH для удаленной разработки

Зачем ограничивать себя nano и vi, когда есть удобное расширение VS Code Remote-SSH для удаленной разработки? Вперед за знаниями!
Android

Под капотом модификатора suspend

Корутины Kotlin предоставили Android разработчикам модификатор suspend. Изучив его, вы поймете, почему функция suspend не возвращает ничего до тех пор, пока не будет завершена...
Двусторонняя связь без интернета: Nearby Connections

Двусторонняя связь без интернета: Nearby Connections

Nearby Connections API позволяет пользователям соединяться друг с другом даже в тех случаях, когда интернет недоступен. При этом API использует Bluetooth и другие технологии, способные обеспечивать одноранговую связь на близком расстоянии (обычно в пределах 100 метров).
Как создать Android-приложение чат-бота с генеративным ИИ Google

Как создать Android-приложение чат-бота с генеративным ИИ Google

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

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

Сделаем шаг навстречу более гибкой методологии разработки и познакомимся с концепцией архитектуры Just-in-Time (пер. в нужный момент), которая позволяет реорганизовывать приложения без рефакторинга.
Kotlin

Запечатанный класс

Часто нам приходится представлять ограниченный набор возможностей: веб-запрос либо успешно выполняется, либо не выполняется, User может быть либо про-пользователем, либо обычным. Чтобы смоделировать это, мы...
Понятие об умных указателях Rust

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

В этой статье мы разберемся, что именно представляют собой умные указатели, откуда они берутся и как работают. Если по-простому, умный указатель  —  это абстрактный тип...
Думаете, хеш-карты нельзя отсортировать? Еще как можно!

Думаете, хеш-карты нельзя отсортировать? Еще как можно!

Научимся реализовывать интерфейс sort.Sort в любой структуре данных. Узнаем, какие методы задействуются в Golang для добавления сортировки.
Android 12: радикально новый дизайн от Google

Android 12: радикально новый дизайн от Google

Material You  —  новая веха в эволюции текущего поколения Material Design (“материального дизайна”), используемого Android-устройствами (и почти всеми продуктами Google). Идея, лежащая в основе...
Малоизвестный пакет Go, который пригодится при выполнении SQL-миграций

Малоизвестный пакет Go, который пригодится при выполнении SQL-миграций

Пакет embed, который появился в Go 1.16, предоставляет возможность встраивать файлы и каталоги в бинарные файлы Go. Предлагаем узнать, как этот пакет используется для встраивания файлов миграции SQL в бинарный файл.
Роль Fragments в современной разработке приложений для Android

Роль Fragments в современной разработке приложений для Android

Функция библиотеки Fragments при разработке приложений для Android серьезно изменилась. Посмотрим, в чем заключаются изменения и к чему они приводят.
Kotlin

Ключевое слово vararg и оператор spread в Kotlin

Что осталось за кадром? В некоторых случаях необходимо определить функцию с переменным числом параметров; Вот пара примеров, с которыми вы, вероятно, сталкивались в Android:printf(String format, Obj......
Мониторинг приложения Golang с Prometheus, Grafana, New Relic и Sentry

Мониторинг приложения Golang с Prometheus, Grafana, New Relic и Sentry

Изучим, как осуществляются мониторинг и логирование службы Go. Напишем код приложения и модульный тест, создав конфигурационные и тестовые файлы, и посмотрим метрики в дашборде Grafana.
Рисуем Дораэмона с помощью Python

Рисуем Дораэмона с помощью Python

Хотите нарисовать популярного аниме-персонажа Дораэмона с помощью языка Python и его библиотеки turtle? Воспользуйтесь пошаговым гайдом, который поможет вам успешно справиться с этой задачей.
Android

Инструкция для новичка: как программировать дополненную реальность для Smart Glass

Обзор В этом туториале я поделюсь основной информацией об умных очках. Затем, используя пример проекта с хакатона, проведу вас через весь процесс. А начнем мы...
Game Development

Как я создал свою первую видеоигру

В прошлом году во время новогодних праздников мне очень захотелось начать новый параллельный проект. Я не знал, чего именно хочу, но я был уверен,...
Создание пользовательских метрик Prometheus в Golang и отправка оповещений в Slack с Grafana

Создание пользовательских метрик Prometheus в Golang и отправка оповещений в Slack с Grafana

Создадим настраиваемые показатели Prometheus с Go, подробно разберем метрики. При наличии оповещения в Grafana отправим сообщение на канал Slack.
Android

Навигация по настраиваемой доставке

Android App Bundle — это новый формат публикации для Android-приложений, заменяющий монолитный APK. Сам пакет приложений непосредственно не устанавливается. Вместо этого Google Play генерирует оптимизированные APK...
Как отслеживать среду выполнения Docker с помощью Prometheus и Grafana

Как отслеживать среду выполнения Docker с помощью Prometheus и Grafana

Как определять производительность и поведение контейнеров и хост-систем? С помощью метрик. Поэтапно пройдем весь процесс: установка серверов, настройка Prometheus, запуск брандмауэра и экспортера Docker для извлечения метрик, создание дашборда в Grafana.
Go

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

Предыдущая часть: Часть 1, Часть 2 Инициализация среза Иногда конечная длина среза бывает известна. Допустим, нужно преобразовать срез Foo в срез Bar, что означает, что они...
Создание и отслеживание первого рабочего потока Github Actions

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

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

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

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

Тест рабочего цикла C++ через написание кода для декодера base85

Всем привет! Меня зовут Герман Диаго, по образованию я инженер компьютерной науки и уже долгое время увлечён разработкой разного рода ПО.  Большую часть своей карьеры...
Ссылки на методы в Java

Ссылки на методы в Java

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

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

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

Мифы Go, в которые мы верим: емкость

Узнаем правильный ответ на вопрос: «Как растет емкость среза?» В каких случаях она удваивается, а в каких нет?
Golang

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

ℹ️ В статье речь идёт о Go 1.13. Циклы в программировании — понятие мощное и довольно простое. Тем не менее возникает необходимость преобразовывать их в основные команды,...
В ожидании Java 16: Stream.toList() и другие методы преобразования

В ожидании Java 16: Stream.toList() и другие методы преобразования

Только самообслуживание  В 2004 году я работал архитектором ПО на Java в крупной финансовой компании. На тот момент в этом языке отсутствовало большинство эффективных функциональностей...
Визуализация стратегии автоматизированного тестирования

Визуализация стратегии автоматизированного тестирования

Стратегия тестирования  —  это подход к автоматизированному тестированию вашего программного обеспечения. Она очень важна, и к ней следует отнестись серьезно. Я предложу визуальный способ...
Подключение приложений Android к серверу с помощью gRPC

Подключение приложений Android к серверу с помощью gRPC

Пройдем весь процесс поэтапно: создание проекта, файл Gradle, канал взаимодействия клиента и сервера. Настроим локальный сервер, потоковую передачу от клиента и двунаправленную с асинхронной «заглушкой», а также «защелкой» с обратным отсчетом для ожидания текущего потока.
Что такое Flutter и зачем его изучать?

Что такое Flutter и зачем его изучать?

Сегодня доступно множество инструментов для мобильной разработки. Одним из них является Flutter, который в последнее время стал довольно популярным. Рассказываем, в чем секрет успеха Flutter и почему стоит обратить на него внимание.
Новый API форматировщика дат в Swift

Новый API форматировщика дат в Swift

В версии Swift 5.5 и iOS 15 у нас появился новый API средства форматирования. С ним строковое отображение дат будет более декларативным и интуитивно...
3 интерактивных инструмента для управления командами в Linux

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

Эти инструменты позволят находить и отфильтровывать нужные команды, добавлять их в избранное для мгновенного выполнения и предоставят множество других полезных возможностей.
Внимание: работает пакет Python Tweepy!

Внимание: работает пакет Python Tweepy!

Обучающее руководство по извлечению любых данных из твитов посредством пакета Python Tweepy и форматированию их в датафрейм Pandas.
SQL: загадки на сообразительность

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

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

Как реализовать в Golang двухфакторную аутентификацию с TOTP

Поэтапно настроим среду, интегрируем в проект библиотеку и рассмотрим различные аспекты 2FA, включая генерирование и хранение секретов, обработку аутентификации пользователя и проверку кодов TOTP. Дадим рекомендации по реализации в приложении Golang.
Почему большинство программистов выбирают Python

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

Python - второй (после JavaScript) по распространенности язык программирования, который используют 15,7 млн человек. Рассказываем, с чем связана его популярность и как понять, подходит ли он именно вам.
Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 3

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

В этой части рассмотрим использование рефлексии и загрузчика классов на примере добавления функциональности плагина в Java-приложение и модификации классов во время выполнения. В завершение поговорим о том, почему две мощные функции Java - динамическая типизация и изменяемые во время выполнения классы - должны войти в арсенал каждого программиста.
Как заказывали: админ-панель от Django Jet

Как заказывали: админ-панель от Django Jet

Нет пределов совершенству! Под таким девизом займемся улучшением панели администратора в приложении Django. А в качестве волшебной палочки воспользуемся шаблоном django-jet-reboot.
UnitTesting

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

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

Феномен NFT и причины его популярности

NFT расшифровывается как non-fungible token (невзаимозаменяемые токены). Взаимозаменяемость  —  это способность актива быть обмененным или замещенным аналогичными активами с одинаковой стоимостью. Предположим, у вас есть одна...
Что такое бессерверная платформа?

Что такое бессерверная платформа?

Понятие о бессерверной платформе Бессерверная платформа помогает разрабатывать и развёртывать функции AWS Lambda вместе с необходимыми им инфраструктурными ресурсами AWS. Фактически это интерфейс командной строки,...
Выполнение AES/GCM в Android

Выполнение AES/GCM в Android

Столкнувшись с рядом проблем, связанных с выполнением шифрования и расшифровки AES в Android, я решил поделиться своим опытом. TL;DR: здесь можно найти готовое решение. Если...
Kubernetes: установка MicroK8s на локальном компьютере за 5 минут

Kubernetes: установка MicroK8s на локальном компьютере за 5 минут

В чем преимущества MicroK8s перед Minikube? Запустим его, проверим состояние кластера, добавим дополнения, научимся останавливать.
Навигация во Flutter с использованием AutoRoute

Навигация во Flutter с использованием AutoRoute

Как настроить библиотеку пакетов AutoRoute? Как назвать страницы маршрута? Как управлять стеком и полностью очищать его, чтобы возвращаться на первую экранную страницу? Предлагаем краткое руководство по навигации во Flutter - оно даст ответы на эти и многие другие вопросы.
Python

PEG парсеры и Python

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

Зачем и как реализовать ленивую загрузку компонентов в Angular

Ленивая загрузка  —  это техника загрузки чего-то по требованию. Она применяется к различным уровням процесса разработки приложений  —  от модулей до компонентов. Ленивая загрузка на...
OOP

Хитрости объектно-ориентированного программирования. Часть 2: Закон Деметры

Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.  Предыдущие части: Часть 1   Единственный закон в программировании — это отсутствие законов. А закон Деметры — это, скорее, рекомендации, а...
Как стать инженером Python в 2023 году

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

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

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

Как и Dagger-Hilt, Koin является популярным фреймворком для внедрения зависимостей. Однако пользоваться им гораздо проще. Вы можете убедиться в этом на примере написания простого приложения для получения данных.
Раскройте потенциал VS Code для программирования на Ruby

Раскройте потенциал VS Code для программирования на Ruby

Рассмотрим расширения и библиотеки для повышения продуктивности при работе с кодом на Ruby. Настроим альтернативную RubyMine, бесплатную среду разработки.
Xcode: шпаргалка для iOS разработчиков

Xcode: шпаргалка для iOS разработчиков

Приводим исчерпывающий список клавиш быстрого доступа: сборка, запуск, отладка, навигация и редактирование кода, рефакторинг и преобразование… Сохраните в закладках.
Тип Result в Rust

Тип Result в Rust

Рассмотрим тип Result для обработки случаев успеха и случаев ошибок в вычислениях на Rust и методы для манипулирования значениями и их обработки. Изучим примеры использования и функциональность методов.
SQL

Руководство по SQL: Как лучше писать запросы

Язык структурированных запросов – SQL, является незаменимым навыком в области науки о данных и, вообще говоря, приобрести этот навык довольно просто. Однако большинство забывают, что...
Тренды в сфере графического дизайна в 2024 году

Тренды в сфере графического дизайна в 2024 году

Подробно рассмотрим ожидаемые в 2024 году тренды в сфере графического дизайна, а также тенденции, которые будут набирать популярность в предстоящем году.
Создаем Telegram-бота с помощью Node.js за 3 минуты

Создаем Telegram-бота с помощью Node.js за 3 минуты

Одна из интересных особенностей Telegram заключается в возможности создать собственного бота. Он помогает автоматизировать и упрощать повседневные задачи. Узнаем, как сделать простого бота с помощью Node.js.
Java

Синхронизация в Java. Часть 1

Прежде чем перейти к самой синхронизации, я объясню многопоточность на примере простого кода.  Первым классом будет класс “Countdown”, а класс “ThreadColor” будет выглядеть вот так: public...
Как построить надежную фронтенд-архитектуру

Как построить надежную фронтенд-архитектуру

Что такое дизайн «Feature Sliced» во фронтенд-архитектуре? Рассмотрим особенности и результаты применения дизайна, его достоинства и недостатки.