Тренды

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

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

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

В версии Swift 5.5 и iOS 15 у нас появился новый API средства форматирования. С ним строковое отображение дат будет более декларативным и интуитивно...
Как пользоваться Thread.sleep на JVM без блокировки

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

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

3 способа мониторинга изменений лог-файлов в Java

Научимся отслеживать изменения файлов тремя разными способами: запланированная задача + File.lastModified, WatchService и Apache Commons-IO.
iOS/Swift: подробное руководство по модульным и UI-тестам. Часть 1

iOS/Swift: подробное руководство по модульным и UI-тестам. Часть 1

Добавим тесты в имеющийся проект, создадим новый и основательно все настроим. Распишем тестовый сценарий.
Стековая и кучная память в Kotlin 

Стековая и кучная память в Kotlin 

Хотите максимально эффективно управлять памятью в Kotlin? Тогда выясните, чем различаются стековая и кучная память. Разобраться в этом непростом вопросе помогут простые аналогии и примеры кода.
Новинка Python 3.10: оператор переключения Structural pattern matching

Новинка Python 3.10: оператор переключения Structural pattern matching

Разбираемся в работе механизма сопоставления с образцом из обновления Python до версии 3.10: новые операторы match и case.
Оптимизация кода задачи на миллиард строк — ускоряем запуск в 87 раз

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

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

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

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

Избегайте этих нелепых ошибок при работе с Python

Чем больше вы практикуетесь, тем легче программирование становится для вас, но суть не меняется: программирование — это сложно. Оно может стать ещё сложнее при неудачном сочетании обязательств и рабочих...
Рекомендации по работе с большими наборами данных на Java

Рекомендации по работе с большими наборами данных на Java

Изучим нюансы эффективной обработки данных для оптимизации приложений. Рассмотрим надежные решения Java Spring, проиллюстрируем примерами с пояснениями.
7 малоизвестных, но полезных библиотек Python 

7 малоизвестных, но полезных библиотек Python 

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

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

Хотите крепко спать, зная, что ваш код не будет взломан? Обеспечьте себе спокойную жизнь с помощью модульных тестов. Узнайте о том, что такое модульное тестирование, зачем оно применяется и как его реализовать на Python.
Android and iOS Libraries

Топ-10 самых популярных библиотек Android и iOS

Хотите быть в курсе трендов этого сезона? Представляем вашему вниманию список из десяти популярных библиотек Android и iOS на GitHub на конец 2019 года!
Операционная система Android

Операционная система Android

Android  —  это операционная система с открытым исходным кодом, созданная для мобильных устройств на основе модифицированного ядра Linux. Эта ОС разработана консорциумом Open Handset...
18 понятий программирования, о которых вы никогда не слышали (но должны были!)

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

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

Динамическое извлечение видеокадров в Android

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

Выбор лучшего фреймворка для создания мобильного приложения

Для создания мобильных приложений есть множество фреймворков. Но выбрать нужно лишь один. Совсем недавно каждый разработчик занимался разработкой мобильных приложений, используя Software Development Kit (SDK),...
OOP

Эффективное использование словаря (C#) как альтернатива оператору If

Всё больше наших коллег на практике предпочитают избегать применения операторов if. Эти условия, по их мнению, усложняют и прибавляют багов в наши приложения. Но условия...
Rust

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

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

Как создать атомарный загрузчик в Jetpack Compose

Jetpack Compose предлагает эффективные инструменты для разработки визуально привлекательной плавной загрузки. Предлагаем руководство по созданию 3D-анимации атомарного загрузчика, которая впечатлит самых претенциозных пользователей современных приложений.
React

Реализация жизненных циклов React с помощью Reason React Hooks

Использование хуков React дает множество полезных преимуществ. Узнаем, что такое жизненные циклы React и рассмотрим реализацию этих циклов с помощью Reason React Hooks. После выпуска...
Как мобильному разработчику всегда быть в курсе последних событий в своей сфере

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

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

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

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

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

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

Шаблон «Стратегия» на Go

Изучим нюансы шаблона: когда, зачем, как и где применяется. Поэтапно отследим его реализацию, проиллюстрируем кодом.
JAVA: разница между параметрами JVM -D, -X, -XX

JAVA: разница между параметрами JVM -D, -X, -XX

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

7 ошибок Python, от которых стоит немедленно избавиться

Введение Python относительно прост в освоении, но, учитывая его обширный функционал, в нём легко допустить ошибку. Кроме того, ошибки в течение длительного времени могут оставаться...
Python и Java: комплексное сравнение двух популярных языков программирования

Python и Java: комплексное сравнение двух популярных языков программирования

Python или Java? Какой язык выбрать для создания успешных проектов? Однозначного ответа на эти вопросы нет, поскольку и Python, и Java обладают как достоинствами, так и недостатками. Сегодня поговорим о сильных и слабых сторонах двух популярных языков программирования.
[SwiftUI] @AppStorage: управление UserDefaults с помощью ViewModel

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

Чем @AppStorage отличается от @State и как решается потенциальная проблема @AppStorage с самим SwiftUI? Применим подход со ViewModel.
Как я создал 2D-игру с помощью Ebiten за 40 минут

Как я создал 2D-игру с помощью Ebiten за 40 минут

Хотите создать видеоигру менее чем за час? Следуйте руководству по максимально упрощенной разработке 2D-игры с использованием языка Go и библиотеки Ebiten и возможностью развертывания на Windows, macOS и Linux. 
Руководство по созданию интерактивных визуализаций на Python

Руководство по созданию интерактивных визуализаций на Python

Хотите научиться создавать эффектные интерактивные визуализации? Сегодня разберем построение графиков и диаграмм, а также развернем контрольную панель на Heroku.
4 подводных камня на Go, на которые часто натыкаются

4 подводных камня на Go, на которые часто натыкаются

Эти баги приводят к ошибкам, которые пропускаются компилятором и их легко проглядеть при проверке кода. Каковы причины появления, как их можно обойти и избежать мучений при отладке?
Haskell

Haskell: навстречу функциональному программированию

Haskell — это функциональный язык программирования, разработанный специально для обработки символьных вычислений и списков.   Данная статья носит обучающий характер и предназначена для новичков, стремящихся понять основные...
Мутационное тестирование: создай мутанта и прокачай тест

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

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

5 задач для Python

Лучший способ укрепить знания и попрактиковаться в Python Цель этой статьи — помочь вам разобраться в основах языка, а не поделиться готовыми ответами, которые легко вызубрить и списать. 5...
Механика разрешения имен и связывания на C++

Механика разрешения имен и связывания на C++

Разберемся с разрешением символов, типами связывания и распространенными проблемами: ошибками повторных определений, неразрешенных символов, нарушений правила одного определения. Узнаем, как предотвращаются конфликты именования.
C++: подробное руководство по is_open()

C++: подробное руководство по is_open()

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

Комментарии к коду: почему больше не всегда значит лучше

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

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

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

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

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

Давайте разберемся с нижним подчеркиванием (_) в Python

Символ нижнего подчеркивания Символу нижнего подчеркивания (_) в Python присущ ряд особенностей. В большинстве языков программирования (хотя, конечно же не во всех) этот символ используется в...
5 крутых функций Chrome DevTools, о которых не знают большинство разработчиков

5 крутых функций Chrome DevTools, о которых не знают большинство разработчиков

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

10 типичных ошибок в коде и способы их предупреждения

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

Лучшие практики Python для специалистов по обработке данных

Немало уже сказано о том, что специалисты по анализу и обработке данных не пишут чистый код. И тому есть объяснение: большая часть всей предварительной...
Go - единственный выбор для бэкенд-разработчика?

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

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

10 проектов для изучения Golang в 2023 году

Учиться лучше на практике, и оптимальный способ освоить Golang - создавать проекты. Мы отобрали для вас подходящие проекты - не слишком сложные и не самые простые - с курсами для начинающих и опытных разработчиков.
C++: подробное руководство по разыменованию указателя

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

Разберем нюансы и ошибки разыменования. Проиллюстрируем примерами и реальным сценарием. Сравним эффективность прямого доступа к массиву и разыменования указателя.
Зачем использовать RTK Query для API-вызовов в React

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

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

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

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

Введение в линейное программирование на Python 

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

Событийно-ориентированная архитектура

Создадим простой проект Spring Boot с темами и разделами Kafka для публикации событий отправителями и подписки получателей. Разберем стратегии реализации повторных попыток, масштабируем микросервисы.
Regex

Шпаргалка по регулярным выражениям. В примерах

Регулярные выражения (regex или regexp) очень эффективны для извлечения информации из текста. Для этого нужно произвести поиск одного или нескольких совпадений по определённому шаблону...
Развертывание приложений Python в Azure

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

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

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

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

Как работает программа «Hello World!»?

Вы когда-нибудь задумывались о том, как работает знаменитая программа «Hello World!»? Давайте подробно разберём ассемблерный код и увидим, что происходит, так сказать, за кадром...
Python

Строим конвейеры с Pandas, используя «pdpipe»

Введение Pandas — прекрасная библиотека в экосистеме Python для анализа данных и машинного обучения. Она идеально соединяет мир данных, где живут файлы Excel/CSV и таблицы SQL, и...
OOP

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

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

8 хитрых приемов написания кода на Go

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

Жажда скорости: Python с расширениями С

Хотите, чтобы Python работал на всех скоростях? Тогда пора познакомиться с расширениями С. Узнаем, как их создавать, применять в программах Python, а затем сравним скорость программы с расширениями и без.
Python

Обзор библиотеки Datatable в Python

Данные, с которыми вы работаете, уже настолько большие, что вы часами ждёте их загрузки? Пора осваивать новый инструмент, который избавит вас от долгого ожидания...
Как настроить внешний вид Visual Studio Code

Как настроить внешний вид Visual Studio Code

Хотите, чтобы редактор кода способствовал вашей продуктивности и не вызывал усталости глаз? Ознакомьтесь с подборкой популярных тематических пакетов, делающих VS Code визуально приятным и более производительным.
TypeScript

Как создать простую браузерную игру с помощью Phaser 3 и TypeScript

Большую часть своего времени я занимаюсь backend-разработкой, поэтому я не могу похвастаться большим опытом во frontend. Какое-то время назад у меня возникло желание создать...
Реализация интерфейсов в Golang

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

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

Kotlin: продвинутые техники функционального программирования

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

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

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

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

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

LOESS в Rust

Пришло время перенести LOESS-код из Python на Rust? Предлагаем описание процесса переноса с оптимальными решениями при переписывании кода. Вы будете впечатлены возросшей производительностью переписанного кода!
R

R - язык для статистической обработки данных. Часть 3/3

Часть 1, Часть 2, Часть 3 В предыдущем материале мы остановились на теме корреляции из раздела “Статистические вычисления в языке R”. Переходим к ковариации.  Ковариация Ковариация была...
Android

Чистый код в Android

Прежде чем начать писать код, стоит разобраться в том, как им управлять, и как сделать его масштабируемым. Как сказал Дядя Боб в своей книге: Вы читаете...
Основы ​программирования на Ruby

Основы ​программирования на Ruby

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

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

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

Функциональные и гибкие Shell скрипты

Шелл скрипты vs python/Perl Кто вообще пишет шелл скрипты в 2019’ом? Хороший вопрос. Что же, я пишу. ¯_(ツ)_/ На это есть веские причины, они описаны здесь...
Инструменты прототипирования в 2021 году

Инструменты прототипирования в 2021 году

Прототипирование является ключевой частью проектирования UI и UX. Дизайнеры могут создать прототипы как с высокой, так и с низкой точностью, в зависимости от их...
Как превратить Google Таблицы в базу данных с помощью Python

Как превратить Google Таблицы в базу данных с помощью Python

Предлагаем простое руководство по созданию электронных таблиц и сохранению данных в Google Таблицах с помощью Python. В качестве бонуса предлагается инструкция по открытию любого файла из Google Таблиц с использованием Python.
LangChain + Streamlit + LlaMA: установка диалогового бота с ИИ на локальный компьютер

LangChain + Streamlit + LlaMA: установка диалогового бота с ИИ на локальный компьютер

Предлагаем пошаговое руководство по созданию с нуля личного помощника с ИИ. В руководстве используются большая языковая модель LLaMA 7b и Langchain - библиотека с открытым исходным кодом, специально разработанная для бесшовной интеграции с LLM.
Мьютекс в Android: предотвращение состояния гонки

Мьютекс в Android: предотвращение состояния гонки

Использование мьютекса может значительно повысить производительность и надежность приложения, сделав многопоточный код более безопасным и предсказуемым. Рассмотрите на примерах Kotlin, как мьютекс применяется в Android для предотвращения состояния гонки.
C++: практическое руководство по множественным конструкторам

C++: практическое руководство по множественным конструкторам

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

Как я встраивал ресурсы в Go

Во время стажировки в WSO2, я работал над проектом разработки процессов непрерывной интеграции и развёртывания ПО для WSO2 API Manager. Работа велась в основном...
Меньше образы Docker => быстрее CI-конвейер

Меньше образы Docker => быстрее CI-конвейер

CI/CD позволяет разработчикам и организациям реализовывать циклы задач быстрее. Автоматизируя такие процессы, как сборка, тестирование и развертывание ПО, мы затрачиваем меньше времени на типовые...
Компонентный подход: преодоление сложности в Android-приложениях. Часть 1

Компонентный подход: преодоление сложности в Android-приложениях. Часть 1

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

3 применения исключений, которые улучшат навыки программирования на Java

В статье мы узнаем: 1. Как выбрасывать исключение в пустом классе «Optional».2. Как тестировать и просматривать исключение.3. Как использовать ошибки утверждения. 1. Как выбрасывать исключение в...
Шаблон "запрос-ответ" в RabbitMQ: подход на основе EventListener в Node.js

Шаблон «запрос-ответ» в RabbitMQ: подход на основе EventListener в Node.js

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

Быстрое перенаправление в приложение с AutoVerify

Сайты с множественной переадресацией и поддержкой диплинков Представьте, что у вас есть сайт, к примеру, https://www.yoursite.com. Когда пользователь кликает по ссылке http://www.yoursite.com, где нет s...
Как читать CSV-файлы на Java с помощью OpenCSV

Как читать CSV-файлы на Java с помощью Open CSV

Вкратце рассмотрим возможности по обработке CSV-файлов на языке Java, ведь этот формат файлов часто встречается в повседневной работе.
SQL

Запросы сразу к нескольким базам данных MySQL

Представьте, что вы создаёте SaaS-продукт (связанный с электронной торговлей), где каждый пользователь занимает свою собственную маленькую базу данных (MySQL). Можно гарантировать, что данные пользователя...
Kotlin

С Kotlin приведение стало еще удобнее

Приведение — это необходимое зло в программировании. Мы обожаем его ненавидеть. В Kotlin выполнять приведение намного приятнее, чем в Java. Читайте ниже об очень известном, малопонятном...
5 рекомендаций по оптимизации пул-реквестов

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

Создание пул-реквеста (запроса на размещение изменений в основной ветке) и ожидание результатов ревью  —  стандартные процедуры в процессе написания кода, являющиеся важной и неотъемлемой...
Топ-6 инструментов и фреймворков для искусственного интеллекта

Топ-6 инструментов и фреймворков для искусственного интеллекта

Инженеру искусственного интеллекта требуется множество навыков. Один из них - знание инструментов и фреймворков, используемых в области ИИ. Предлагаем ознакомиться с самыми популярными и значимыми из них.
Псевдоним типа в Swift

Псевдоним типа в Swift

Рассмотрим практические применения typealias: упрощение сигнатур и типов функций, кортежи, рефакторинг и миграции, ограничения, замыкания, словари, протоколы. Изучим на примерах, как создаются четкие, лаконичные, гибкие структуры кода, благодаря чему в Swift совершенствуется процесс разработки, упрощаются сложные типы, повышается удобство восприятия кода.
8 первоклассных инструкций SQL на каждый день

8 первоклассных инструкций SQL на каждый день

Обзор полезных инструкций SQL, которые помогут оптимизировать рабочий процесс.
OOP

Хитрости объектно-ориентированного программирования. Часть 5: Правило бойскаутов

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

Приемы работы в терминале Linux для повышения продуктивности

Освоим приемы, хитрости, рекомендации, сочетания клавиш в терминале Linux. С им помощью упростим повседневную рутину и облегчим выполнение многих задач.
Python

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

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

Ознакомление с Work Manager в Android

Work Manager - это компонент Android Jetpack, который помогает выполнять задачи как можно быстрее и в наиболее подходящее время. Ознакомьтесь с его базовыми и продвинутыми возможностями, а также лучшими практиками использования.
Python

Attr - одна из лучших практик объектно-ориентированного Python

Известно, что Python очень гибкий язык, который может использоваться в функциональном, процедурном и объектно-ориентированном программировании. Честно говоря, я пишу на нем классы только при...
Реализация gRPC и PostgreSQL на GO

Реализация gRPC и PostgreSQL на GO

Пошагово создадим масштабируемое серверное приложение: подключим модульные тесты, контейнеризируем приложение и задействуем Envoy как прокси-службу взаимодействия. В итоге спроектируем, выполним оценку, запустим и протестируем его.
Развертывание Gradio на AWS: краткое руководство для начинающих

Развертывание Gradio на AWS: краткое руководство для начинающих

Предлагаем пошаговое руководство по развертыванию базового приложения Gradio с помощью Amazon Web Services (AWS). Предварительный опыт работы с AWS не требуется, поскольку каждый шаг будет сопровождаться детальными инструкциями.
Android

Новое в Android 11

Оцените превью для обновлений некоторых уже существующих функций, а также доступных нововведений, таких как IME animation control. Синхронизированные анимации IME Идея заключается в том, что IME (редактор...
Состояния потоков в Java

Состояния потоков в Java

«Гораздо проще уже спроектировать класс потокобезопасным, чем модернизировать его позже».― Брайан Гетц. Потоки Java играют важную роль в параллельном программировании. Поток в любой момент времени находится...
Основы безопасного программирования

Основы безопасного программирования

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

Пакетная обработка 22 ГБ данных о транзакциях с помощью Pandas

Можно ли работать с большими массивами данных при ограниченных вычислительных ресурсах? Можно и очень даже успешно, если использовать пакетную обработку для создания различных агрегаций этих данных.
Кэширование в связке Spring Boot + Redis + PostgreSQL

Кэширование в связке Spring Boot + Redis + PostgreSQL

Успешное кэширование крайне важно для веб-приложений. Вкратце рассмотрим способ настройки работы с кэшем через Redis с помощью Docker.
Корутины и управление разрешениями в Android

Корутины и управление разрешениями в Android

Из этой статьи вы узнаете, как обрабатывать разрешения среды выполнения Android, появившиеся в Android Marshmallow, с помощью корутин (сопрограмм). Такой подход позволит обрабатывать разрешения...
Webpack

Введение в Webpack для новичков

Что такое Webpack? Webpack — это инструмент, позволяющий скомпилировать, например, JavaScript модули в единый JS-файл. Webpack также известен как сборщик модулей. При большом количестве файлов он создает один объемный файл...
Education

Перестаньте фокусироваться на синтаксисе, если хотите стать senior-разработчиком

Вы переезжаете в новый город и не знаете, где находится ближайший продуктовый магазин.  Вы не станете волноваться, а просто воспользуетесь Google Maps. После того, как вы...