Как PyPy ускоряет Python до уровня C?

Как PyPy ускоряет Python до уровня C?

Обзор PyPy, быстрого интерпретатора Python: улучшение производительности программы без изменения кода!
5 причин грядущего господства Go в мире программирования

5 причин грядущего господства Go в мире программирования

Еще пару лет назад Go считался языком с ограниченными возможностями. Однако сегодня у него есть как минимум 5 причин стать номером один в веб-разработке.
Kotlin Multiplatform: как усовершенствовать процесс разработки iOS

Kotlin Multiplatform: как усовершенствовать процесс разработки iOS

Изучим стратегии и нюансы применения KMP в ключевых областях  -  архитектуре проекта, внедрении зависимостей, Kotlin-Swift совместимости. Рассмотрим, как в командах решаются типичные проблемы.
Matplotlib или Plotly: как выбрать библиотеку для визуализации данных в Python

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

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

Пять отличных Python-библиотек для data science

Python — это лучший друг специалистов по данным, а библиотеки значительно упрощают их жизнь. Работая над NLP-проектом, я открыл для себя пять отличных Python-библиотек, которые мне...
Язык R: прокачайте свои навыки до следующего уровня

Язык R: прокачайте свои навыки до следующего уровня

Узнайте, как анализировать и ускорить код на R. Напишите эффективный код в своем следующем проекте, следуя этим рекомендациям.
Борьба с веб-скрейперами с помощью Rust

Борьба с веб-скрейперами с помощью Rust

Боты, использующие инструменты веб-скрейпинга, могут быть использованы злоумышленниками в самых неприглядных целях. Можно ли им противостоять? Да! Сегодня рассмотрим мощный инструмент для борьбы с такими непрошенными гостями, построенный на Rust.
Подробно об акторах в Swift

Подробно об акторах в Swift

Чем акторы похожи на очереди и как ими решаются типичные проблемы параллелизма? Разберем на примерах эффективное применение акторов, опишем правила взаимодействия с ними.
Как использовать перечисления в Golang

Как использовать перечисления в Golang

Изучим способы создания перечислений с идентификатором iota и структурными тегами. Проверим поведения на тестовых сценариях.
Что такое закрепление сертификата в Android

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

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

Разработка макроса Rust для автоматического написания шаблонного кода SQL

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

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

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

C++: полное руководство по Mutable

Разберем преимущества этого инструмента, типичные сценарии и потенциальные ошибки. Проиллюстрируем практическими примерами, дадим рекомендации.
Node

Как создать HTML-таблицу и PDF с Node и Google Puppeteer

В этой статье мы узнаем о возможностях встроенного инструмента утилиты Node под названием fs (file system). В документации fs говорится: Модуль fs предоставляет API для взаимодействия...
Реализация односвязного списка в Golang

Реализация односвязного списка в Golang

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

О дивный читаемый код

Введение  Большинство начинающих программистов сталкивается со многими дилеммами в процессе написания кода, например задумываются о том, какой код будет востребован в индустрии. У каждой компании...
Подходы к созданию линейных графиков для iOS-приложений на базе фреймворка SwiftUI

Подходы к созданию линейных графиков для iOS-приложений на базе фреймворка SwiftUI

Специалисты в сфере мобильной разработки могут пользоваться несколькими способами для графического представления контента. Рассмотрим три метода создания диаграмм на iOS, в том числе и с помощью стороннего фреймворка.
[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel

[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel

Чем @AppStorage отличается от @State и как решается потенциальная проблема @AppStorage с самим SwiftUI? Применим подход со ViewModel.
Python

Осваиваем веб-скрэпинг на Python

В этой короткой статье рассказывается про методику вэб-скрэпинга (англ. web scraping) - набор инструментов по извлечению данных с сайтов. Если вы сталкивались с проблемами...
Как украсть API-ключи ChatGPT

Как украсть API-ключи ChatGPT

А вы знаете, где нужно хранить API-ключи ChatGPT, чтобы спать спокойно? Известно ли вам, как злоумышленники могут обойти популярные техники безопасности и получить доступ к вашим API-ключам? Чтобы этого не случилось, ознакомьтесь с основными правилами безопасности фронтенда.
CProgramming

Тестирование сервиса ASP.NET Core с помощью xUnit

Вступление и предварительные условия Эта статья относится к серии, в которой мы создаём “ходячий скелет” (walking skeleton) приложения с помощью ASP.NET Core и Angular, а...
iOS

Лучшие iOS SDK инструменты за 2019 год

В 2019 году появилось множество приложений для iOS, которые однозначно стоит добавить на главный экран вашего устройства. Например, Mobike для бесстанционного проката велосипедов, Blinkist...
Лучшие практики для эффективного кода на Golang. Часть 2

Лучшие практики для эффективного кода на Golang. Часть 2

Продолжаем обработкой паник с Recover, функциями init и defer, составными литералами, параметрами и сложностью функций, явными возвращаемыми значениями. Изучим затенение переменных, интерфейсы для абстракции, разделение библиотечных пакетов и исполняемых файлов.
Java

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

Клиент-серверная архитектура — наиболее распространенная структура приложений в Интернете. В этой архитектуре клиенты (т.е. персональные компьютеры, устройства Интернета вещей и т. д.) сначала запрашивают ресурсы с...
C++: полное руководство по сортировке пузырьком

C++: полное руководство по сортировке пузырьком

Оптимизируем базовую реализацию, изучим реальные применения. Замерим выполнение при разных размерах входных данных, обозначим типичные проблемы и их решения.
CPP

[C++] часть 2: МЬЮТЕКС. Пишем наш первый код для многопоточной среды

Часть 1, Часть 2 В прошлой статье мы разобрались с тем, что такое конкурентность/параллелизм и зачем нужна синхронизация. Настала пора изучить примитивы синхронизации, которые предлагает...
Python

20 фрагментов Python, которые стоит выучить прямо сегодня

Python — язык программирования без лишнего синтаксиса. Читаемость и простота дизайна — две основные причины его огромной популярности. Как говорится в дзене Python: Красивое лучше, чем уродливое.Явное лучше, чем неявное. Вот...
Python

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

Приложение для сбора данных с Flask и PostgerSQL Предыдущие части: Часть 1, Часть 2, Часть 3, Часть 4, Часть 5 и Часть 6 Работа с базой данных и запросами пугает некоторых (а...
Architecture

Clean Architecture с Kotlin

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

Как использовать ИИ и Python для распознавания речи

Создаем систему распознавания речи с использованием искусственного интеллекта (ИИ) для транскрибирования звука. Рассмотрим особенности создания такой системы на языке Python с использованием сетевой платформы AssemblyAI.
Операторы Ruby: звездочка * и двойная звездочка **

Операторы Ruby: звездочка * и двойная звездочка **

Изучим эти мощные инструменты, их принцип работы. Рассмотрим, как аргументы передаются в методы, собираются в массив и хеш, каковы особенности присвоения значений.
Golang

Идеальная настройка вашего Golang проекта

Часть 1, Часть 2, Часть 3 При запуске нового проекта самые большие трудности у меня всегда вызывала его настройка. Всегда стараешься сделать её «идеальной»: используешь лучшую...
Python

Проблема и решение: присвоение имени файлу

Проблема: стандартный изменяемый объект Но сначала разберёмся: что такое изменяемый объект в Python? Изменяемые объекты — это такие объекты, которые можно поменять. Список, множество и словарь — всё это...
Начало работы с базой данных Room в Android

Начало работы с базой данных Room в Android

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

Пространства имен и области видимости в Python

Содержание:  Пространства имен в Python. Встроенное пространство имен. Глобальное пространство имен.Локальное и объемлющее пространства имен.  Область видимости переменной. Словари пространств имен Python.  Функция globals().Функция locals(). Изменение переменных вне области видимости. Объявление global.Объявление...
Глубокое погружение в Java: рефлексия и загрузчик классов. Часть 1

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

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

Пишем интерфейсы командной строки в Python как профи

Все мы, специалисты по анализу данных, выполняем множество рутинных и повторяющихся действий. Сюда относятся: создание еженедельных отчетов, ETL-операции (извлечение, преобразование, загрузка), обучение моделей с...
Топ-15 лайфхаков для работы с Python

Топ-15 лайфхаков для работы с Python

Python, без сомнения, является одним из самых популярных языков программирования. Простой и легкий в освоении, он завоевал признание многочисленного сообщества. Python  —  “самый мощный язык,...
Оптимизация кода задачи на миллиард строк — ускоряем запуск в 87 раз

Оптимизация кода задачи на миллиард строк — ускоряем запуск в 87 раз

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

Рост производительности машинного обучения с Rust

Сделаем с нуля небольшой ML-фреймворк на Rust для создания нейросетевых моделей. За счет чего скорость обучения здесь в 5,5 раза выше, чем с Python и PyTorch?
Python 4.0: программирование следующего поколения

Python 4.0: программирование следующего поколения

Python 4.0 - это захватывающий скачок вперед, который определит будущее программирования на Python на долгие годы. Узнайте о его заметных улучшениях, новых функциях и расширенных возможностях.
Веб-скрейпинг с нуля на Python: библиотека Beautiful Soup

Веб-скрейпинг с нуля на Python: библиотека Beautiful Soup

Простое руководство для новичков в Data Science: извлечение данных из веб-сайтов с помощью Python-библиотек Beautiful Soup и requests.
RxJS и Angular: декларативный If/Else

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

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

Продвинутый функционал Git: хитрые приемы и команды

git  —  очень мощный инструмент, который практически каждый разработчик задействует ежедневно. Но для большинства его использование сводится всего к нескольким командам: pull, commit и...
K8s: топология подов

K8s: топология подов

Как равномерно распределять поды по кластеру для эффективного использования его ресурсов и высокой доступности? Изучим мультиузловое/-зональное/-региональное распределение подов в его топологии.
Лучшие практики для эффективного кода на Golang. Часть 1

Лучшие практики для эффективного кода на Golang. Часть 1

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

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

Большинство современных сайтов реализуют некий MV*-фреймворк как формально, так и неформально. Если вы пишете много кода, скорее всего, вы пишете много моделей снова и...
Сложные вопросы на собеседовании для тех, кто 7 лет работал с Java. Часть 1

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

Увеличьте свои шансы на успех, впечатлив потенциальных работодателей знаниями и навыками. Разберем некоторые вопросы с подробными объяснениями и примерами.
Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 2

Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 2

2024-й обещает стать годом инноваций, когда ИИ и технологии объединятся, чтобы перекроить карты наших возможностей. Узнайте о катализаторах демократизации и персонализации ИИ, первых маркетплейсах для сервисов и агентов ИИ, новых моделях ценообразования и маркетинговых диджитал-стратегиях.
Руководство по устранению неполадок в Kubernetes

Руководство по устранению неполадок в Kubernetes

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

Реализация масштабируемого и гибкого пользовательского экрана с несколькими переключателями на Swift

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

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

Для создания скриптов командной строки часто используют такие инструменты, как Bash и Python. Сравним их возможности в современных задачах автоматизации рутинных операций программирования.
Зачем использовать RTK Query для API-вызовов в React

Зачем использовать RTK Query для API-вызовов в React

Если для API-вызовов в React-приложениях вы все еще используете Redux, значит, вам пора ознакомиться с более продвинутым инструментом - RTK Query. Он облегчит вашу работу, избавив от необходимости вручную писать логику загрузки и кэширования данных.
Jupyter

Интерактивные отчеты в Jupyter Notebook

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

7 расширенных возможностей Python

Python - один из самых продвинутых языков программирования, который широко используется во многих отраслях. Он обладает множеством расширенных функций, которые делают его мощным инструментом в руках опытных программистов. Вот подборка из 7 наиболее полезных расширенных возможностей Python.
GoFr и Gin: сравнительное исследование

GoFr и Gin: сравнительное исследование

Напишем REST API с базой данных MySQL на своенравном GoFr и платформе для веб-приложений Gin. Сопоставим функционал этих двух фреймворков, его влияние на продуктивность разработчиков и пригодные для продакшена приложения.
8 рекомендаций по написанию читаемого кода на C# с помощью .NET 6

8 рекомендаций по написанию читаемого кода на C# с помощью .NET 6

Научитесь избегать лишних операторов else, извлекать и именовать методы, грамотно использовать Linq и применять прочие подходы для придания коду читаемости и прозрачности.
C++: практическое руководство по Transform

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

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

Как оптимизировать код на Python

Как я сократил время выполнения приложения на 1/10 Данные советы просты в реализации и могут пригодиться вам в обозримом будущем. Считается, что первоочередной задачей программиста является написание...
SQL

Как использовать Flutter с SQLite

Введение SQLite появилась в 2000 году и с тех пор стала одним из самых популярных решений для встраивания баз данных в локальные приложения. Давайте в...
Machine Learning Model

Как выбрать модель машинного обучения

Для начала рассмотрим некоторые руководящие принципы, которые используются при создании моделей: Сбор данных (обычно в больших количествах).Установление цели, гипотезы для проверки и сроков для достижения.Проверка...
Модульные тесты на Golang: от стандартного Testing до Testify

Модульные тесты на Golang: от стандартного Testing до Testify

Напишем тесты для проверки работы функций. Посмотрим, как совершенствуются тестовые сценарии с Testify.
Python

Как изменить PYTHONPATH на Windows

Вы читаете эту статью, потому что пользуетесь: Windows 10+Python 3.3+Anaconda3 … и хотите изменить PYTHONPATH. Краткая инструкция Откройте C:Users<your_username>Anaconda3Libsite-packagesСоздайте файл python37.pthИзмените файл и добавьте в него строку C:\Users\<your_username>\my_module Подробное...
Знакомство с фабричным методом

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

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

Сможете ли вы решить эти 3 «простые» задачи на Python?

Правильное решение вас удивит Попробуйте решить эти задачи самостоятельно, а потом проверьте себя по готовым ответам. Подсказка: У всех задач есть нечто общее. Так что если разобраться...
Структурированное логирование JSON в приложениях на Golang

Структурированное логирование JSON в приложениях на Golang

Структурированные логи важны для отладки программного обеспечения. К счастью, это очень легко реализовать на Golang. Узнаем, как сэкономить время при отслеживании багов и как использовать уровни ведения журнала для контроля за логами, а также научимся создавать настраиваемые логгеры.
5 востребованных методов программирования на Bash

5 востребованных методов программирования на Bash

Рассмотрим 5 популярных приемов работы с кодом интерпретатора команд Bash. Они помогают писать более производительные и легко читаемые скрипты командной оболочки.
Чем отличается C++ от C#?

Чем отличается C++ от C#?

Заглянем в историю возникновения C++ и C# и разберем 9 отличий, чтобы понять, какую программу использовать при написании кода для конкретного приложения. Также решим, в какой язык стоит углубляться и какой осваивать в первую очередь!
C++: полное руководство по преобразованию строки в число двойной точности

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

Изучим методы с их преимуществами и недостатками, оптимальные сценарии. Поможем оценить нюансы std::stod(), std::stringstream и atof() и выбрать метод под конкретные требования.
Использование SwiftUI в UIKit

Использование SwiftUI в UIKit

Наглядная демонстрация совмещения представлений SwiftUi с представлениями UIKit и реализации передачи данных между этими компонентами.
CPP

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

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

Полиморфизм с интерфейсами в Golang

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

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

Неизвестное значение enum Рассмотрим простой пример: type Status uint32 const ( StatusOpen Status = iota StatusClosed StatusUnknown ) Enum создан с помощью iota, что приводит к следующему состоянию: StatusOpen = 0 StatusClosed = 1 StatusUnknown =...
Julia

Стоит ли учить Julia?

Julia — это новейший IT-язык, поэтому я решил его попробовать. Вопрос в том, стоит ли добавлять его в арсенал специалиста по данным? Установка Первое, что стоит знать о...
Дирижируйте горутинами с помощью каналов

Дирижируйте горутинами с помощью каналов

Go получил известность во многом благодаря своему чистому и эффективному подходу к параллельному выполнению. С применением горутин можно добиться огромного повышения эффективности, выполняя несколько...
Visual Studio Code

Проекты на Python с помощью Visual Studio Code

Зачем использовать виртуальные среды в науке о данных? Управление зависимостями играет важную роль для разработчиков пакетов и ПО. Но как насчет специалистов по науке о...
Middleware Django: пользовательское ПО промежуточного слоя

Middleware Django: пользовательское ПО промежуточного слоя

Что такое middleware, как создать пользовательский Django middleware и как проверить стандартные? Всё, что нужно знать о связующем ПО.
Как Snowflake повышает эффективность dbt-моделей на Python

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

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

Что важнее — промпт-дизайн или промпт-инжиниринг?

В сфере языковых моделей разграничивают такие аспекты, как “промпт-дизайн” и “промпт-инжиниринг”. Первый относят к искусству, второй  —  к науке. Какой же из них важнее? Ответ на этот вопрос определит как настоящее, так и будущее человекоориентированного ИИ.
5 проверенных методов для создания сверхбыстрых трейдинговых систем с низкой задержкой на Java

5 проверенных методов для создания сверхбыстрых трейдинговых систем с низкой задержкой на Java

Создание эффективных трейдинговых систем на Java требует не только знания алгоритмов, но и ювелирной работы с памятью и процессором. Возьмите на вооружение пять рекомендаций, которые ускоряют обработку ордеров в разы — от выбора структур данных до битовых операций.
23 шаблона проектирования для 99% разработчиков на Java

23 шаблона проектирования для 99% разработчиков на Java

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

Язык С: структура программы

Прежде чем изучать основные строительные блоки языка C, рассмотрим в самых общих чертах структуру программы, чтобы использовать ее в качестве отправной точки в последующих главах.
Топ-10 вопросов о Pandas на StackOverflow

Топ-10 вопросов о Pandas на StackOverflow

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

Как создать анимированный переключатель тем в Jetpack Compose

Сколько пользователей, столько и предпочтений. Темы - не исключение. Кому-то больше нравится темное оформление, кому-то - светлое. Сегодня посмотрим, как разработать оригинальный переключатель тем с помощью Jetpack Compose.
Самый быстрый способ cоздать CRUD API в Golang

Самый быстрый способ cоздать CRUD API в Golang

Поэтапно сделаем пригодный для промышленной эксплуатации API. Менее чем в 50 строках кода реализуем его с миграциями, REST-обработчиками, функцией main, создадим простейший компонент  -  слой данных.
Golang

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

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

4 лучших шаблона для написания простого кода

О шаблонах В этой статье речь пойдет о наборе шаблонов ООП, использующих простую композицию, а не наследование. Большинство шаблонов взяты из книги Gang of Four: Design Patterns....
Python/C API  -  ускорение Python при помощи кода на C

Python/C API  -  ускорение Python при помощи кода на C

Пакет ctypes для начинающих: запуск библиотек на C из Python и функции CUDA ускорят не только вычисления, но и процесс разработки.
Рекомендации по Go: выделение памяти с new

Рекомендации по Go: выделение памяти с new

Разберем нюансы функции new на примерах. Для каких целей и типов она используется, как ею упрощается инициализация?
Создание пользовательских аннотаций в Java

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

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

Контейнеризация в Python. Часть 1

Разработка в Python в локальных средах может стать нелёгкой задачей, если одновременно работать более чем над одним проектом. Бутстрэппинг (начальная загрузка) проекта может потребовать...
Тестирование уровня данных в Android Room с помощью Rxjava, LiveData и сопрограмм Kotlin

Тестирование уровня данных в Android Room с помощью Rxjava, LiveData и сопрограмм Kotlin

В чем смысл начинать тестирование с уровня данных? Выбор архитектуры, будь то MVVM, MVP, MVC или MV, по минимуму затрагивает уровень данных. Во время архитектурных миграций...
Подробное знакомство с кортежами в C#

Подробное знакомство с кортежами в C#

История эволюции кортежей в C#, включая описание и примеры их использования как в старом виде, так и в современном.
Встроенные инструменты Golang

Встроенные инструменты Golang

Освоим команды, которыми совершенствуются практически все этапы разработки на Go: от сборки исполняемых файлов до управления зависимостями и даже изучения документации. Дадим краткое описание, когда используются и примеры.
Лучшие практики модульного тестирования

Лучшие практики модульного тестирования

Тестирование имеет большое значение. Модульное тестирование  —  еще большее, это бесспорно. Вот пишешь какой-то код, и надо бы покрыть его тестами. Но как только...
Переход с VS Code на Neovim: повысьте свою продуктивность 

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

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

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

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

Асинхронность в Java

Асинхронное программирование  —  обширная и получившая широкое обсуждение тема, но инженеры-программисты все еще ищут, как лучше реализовать эту идею и интегрировать в приложения. Мне  — ...
Утилитные классы в Kotlin с точки зрения Java-разработчика

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

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

Функциональное программирование  -  будущее компьютерной науки?

Функциональное программирование (ФП) существует уже на протяжении последних шести десятилетий, и на данный момент не прекращает попыток преодолеть повсеместное доминирование объектно-ориентированного программирования (ООП). В...
Python

Как собрать кубик Рубика с помощью генетических алгоритмов

Введение В качестве эксперимента я решил собрать кубик Рубика с помощью генетических алгоритмов (ГА). Их основная концепция заключается в том, чтобы найти решение путем имитации...
Полное руководство по установке Magento 2 с включенным SSL на Ubuntu ≥ 18.04

Полное руководство по установке Magento 2 с включенным SSL на Ubuntu ≥ 18.04

Пошагово пройдем весь процесс с самым важным аспектом - настройкой веб-сервера. Как избежать типичных ошибок?
Глубокое погружение в Nuxt.js

Глубокое погружение в Nuxt.js

Подробное руководство даст полное представление о сильных и слабых сторонах Nuxt.js, вооружит эффективными решениями и ознакомит с лучшими практиками использования этого фреймворка. С таким багажом вы сможете легко создавать быстрые, SEO-дружественные и удобные для пользователя веб-приложения.
Проекты Go: создаем собственное канареечное развертывание

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

Каким образом перенаправляется трафик? Разберем различные подходы к развертыванию с примерами кода.
Programming

Почему вам нужно учить больше языков программирования

О моих свободных отношениях с языками программирования Я занимаюсь программированием уже около 4 лет. Я начал с C#, занимаясь разработкой игр, а затем перешел на...