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

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

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

Как прокачать навык отладки

В какой-то момент, каждый из нас сталкивается с ошибками при написании кода. Собственно, процесс разработки в том и состоит. При возникновении ошибки, вы теряетесь...
Как оркестровать микросервисы с помощью Docker Compose

Как оркестровать микросервисы с помощью Docker Compose

Развертывание приложений с микросервисной архитектурой - довольно громоздкий процесс, занимающий много времени. Уменьшить рабочую нагрузку позволяет Docker Compose, инструмент оркестрации контейнеров. Рассказываем об упрощенном создании микросервисных приложений на Spring Boot.
Реверсинг плагина компилятора Compose: перехват фронтенда

Реверсинг плагина компилятора Compose: перехват фронтенда

Как плагином компилятора нарушаются правила Kotlin? Изучим архитектуру, FIR-фронтенд компилятора. Заглянем внутрь и попробуем сориентироваться: что и где перехватывается при прохождении этапов компилятора Kotlin?
Язык С: классы памяти

Язык С: классы памяти

Классы памяти определяют область видимости и время жизни переменных и/или функций в программе, написанной на языке С. Они предшествуют типу, который модифицируют. В языке С различают четыре класса памяти. Рассмотрим их в данной статье.
10 языков программирования, которые пригодятся в 2023 году

10 языков программирования, которые пригодятся в 2023 году

Какие языки программирования стоит изучить в новом году? Ответ на этот вопрос поможет найти подборка из 10 самых популярных на сегодняшний день языков программирования.
Пишем балансировщик нагрузки на Golang

Пишем балансировщик нагрузки на Golang

Реализуем логику распределения нагрузки с алгоритмом циклического перебора, перенаправлением запроса на бэкенды через обратный прокси-сервер, тремя повторами при сбое и обозначением бэкенда «мертвым». Как обрабатываются ситуации сбоя запроса?
Реализация ролевого контроля доступа в Elasticsearch

Реализация ролевого контроля доступа в Elasticsearch

Как защитить данные и предотвратить несанкционированный доступ? Пройдем этапы настройки, дадим рекомендации по эффективному ролевому контролю.
Отступы в Python: так ли это плохо?

Отступы в Python: так ли это плохо?

Является ли стиль отступов в Python недостатком? Не приводит ли он к сложному и склонному к ошибкам синтаксису? Не превращает ли язык в беспорядочные разбросанные блоки Lego? Подумаем вместе над этими вопросами.
Выбор лучшего фреймворка для создания мобильного приложения

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

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

Команда Git Rerere — автоматизируйте решения для устранения конфликтов слияния

rerere - сокращение от "reuse recorded resolution" (повторное использование сохраненных разрешений конфликтов). С помощью этой команды Git запоминает, каким образом был разрешен конфликт, чтобы при...
Kepler.gl - инструмент для визуализации геоданных на Python

Kepler.gl — инструмент для визуализации геоданных на Python

Познакомимся с отличным инструментом Kepler.gl и с его помощью создадим веб-приложение для визуализации геоданных на Python.
Как использовать управляемые Gradle устройства с собственными девайсами

Как использовать управляемые Gradle устройства с собственными девайсами

Реализуем абстракцию Device с устройствами и эмуляторами. Используем собственную ферму устройств для удаленного запуска тестов и распараллеливания выполнения на нескольких устройствах.
Принципы SOLID в Kotlin

Принципы SOLID в Kotlin

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

C++: полное руководство по операторам Switch со строками

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

Конструкция контейнера в Docker

Контейнеризация приложений - основной принцип работы платформы Docker при разработке, тестировании и запуске веб-приложений. Эта краткая шпаргалка по важным концепциям и командам в процессах контейнеризации напомнит о свойствах образов, файлов, сетей и томов данных.
Spring Boot: реализация фабричного метода

Spring Boot: реализация фабричного метода

Шаблон Factory упрощает создание новых объектов и помогает прятать логику, ненужную для клиента. Предлагаем рассмотреть вариант реализации шаблона фабрики для простого приложения на Spring Boot.
Python

Работа с панелью индикаторов. Руководство программиста Python. Часть 3

Часть 1, Часть 2, Часть 3 В этой серии статей в качестве основной платформы для Dashboarding используется Dash от Plotly. Прежде чем перейти к этой статье,...
Подробно об акторах в Swift

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

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

Lombok: хорошее и плохое применение

Lombok - популярная библиотека, облегчающая рутинную работу с классами в Java. Но даже хороший инструмент можно применять неправильно. Дадим несколько рекомендаций, как этого избежать.
5 удивительных скрытых возможностей Python. Часть 1

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

Хотите повысить уровень своих навыков написания кода? Возьмите на заметку 5 скрытых возможностей Python. Они помогут сократить время разработки, улучшить читаемость кода и повысить его эффективность.
iOS/Swift: подробное руководство по модульным и UI-тестам. Часть 2

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

Рассмотрим особенности тестирования моделей декодирования и HTTP-запросов, настроим идентификаторы доступности. Протестируем ввод в поисковую строку, прокрутку в tableView, навигацию, статичные и динамические метки.
15 бизнес-идей агентов на основе ИИ в 2025 году

15 бизнес-идей агентов на основе ИИ в 2025 году

Агенты на базе ИИ открывают невероятные возможности перед предпринимателями. Они помогают достичь успехов в самых различных бизнес-сферах - будь то автоматизация поддержки клиентов, оптимизация продаж или разработка инновационных SaaS-решений. Не упустите и вы свой шанс извлечь выгоду с помощью ИИ в 2025 году!
Понимание шаблонов проектирования: шаблон "Строитель"

Понимание шаблонов проектирования: шаблон “Строитель”

Опытный разработчик должен иметь в своем арсенале различные устоявшиеся инструменты проектирования. Сегодня рассмотрим полезный шаблон "Строитель".
Java

Плюсы и минусы программирования на Java

Не так много технологий могут похвастаться тем, что они актуальны уже более 20 лет. Однако в этом году Java заняла пятое место в списке...
Java

Java для начинающих: часть 2 из 4

Часть 1, Часть 2, Часть 3, Часть 4 Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java. Даже при...
Оптимизация структур в Golang для эффективного распределения памяти

Оптимизация структур в Golang для эффективного распределения памяти

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

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

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

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

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

8 полезных на практике приёмов для веб-разработчиков

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

9 встроенных декораторов Python, которые помогут оптимизировать код

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

Откажитесь от SQLite в пользу DuckDB

Все еще пользуетесь SQLite? Пришло время забыть об этой библиотеке, поскольку теперь у нас есть DuckDB! Узнайте, что представляет собой DuckDB, почему и когда стоит использовать эту систему, а также о том, как интегрировать DuckDB в Python.
Изучаем AndroidManifest.xml: как подэлемент

Изучаем AndroidManifest.xml: <service> как подэлемент <application>

Чтобы сервисы приложения обнаруживались и запускались системой, они должны быть представлены в файле AndroidManifest.xml элементом . Разберем ключевые атрибуты элемента и посмотрим на примерах, как они работают.
Python

Полезные хитрости на Python от А до Я

Python — это один из самых популярных и востребованных языков программирования в мире. И на то есть множество причин: · прост в изучении; · мега-универсальный; · огромное разнообразие модулей...
Топ-15 лайфхаков для работы с Python

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

Python, без сомнения, является одним из самых популярных языков программирования. Простой и легкий в освоении, он завоевал признание многочисленного сообщества. Python  —  “самый мощный язык,...
Глубокое погружение в режим Copy-on-Write в pandas. Часть 3

Глубокое погружение в режим Copy-on-Write в pandas. Часть 3

Внедрение процесса Copy-on-Write (CoW) является серьезным изменением, которое способно оказать определенное влияние на код pandas. В этой части мы изучим способы адаптации кода, чтобы избежать ошибок при включенном по умолчанию CoW.
Защита секретов в Android: от ключей API до хранения в продакшене

Защита секретов в Android: от ключей API до хранения в продакшене

В Android-разработке хранение секретов в коде приложения — прямая угроза безопасности. Ключи API, токены и другие конфиденциальные данные могут быть извлечены из APK-файла. Узнайте, как построить надежную защиту, исходя из того, что клиентское приложение всегда может быть скомпрометировано.
5 крутых функций Chrome DevTools, о которых не знают большинство разработчиков

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

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

Корутины: исключения

Часть 1, Часть 2 Мы, разработчики, обычно тратим много времени на полировку наилучшего сценария работы нашего приложения. Однако не менее важно обеспечить надлежащий пользовательский опыт,...
Команды Go и переменные среды, которые должен знать каждый разработчик

Команды Go и переменные среды, которые должен знать каждый разработчик

Как загружаются, кешируются и удаляются зависимости на Go, и что здесь изменилось с появлением GOPROXY и модулей? Как избежать ошибок сборки и обеспечить ее воспроизводимость?
Python

Элегантное ООП в Python

Разбираемся с магическими методами в Python, облегчающими жизнь с ООП. Вам понравится! Что за магические методы?  Магические методы  —  это специальные методы в python, обрамленные двумя...
SQL

Инъекция SQL: руководство для начинающих

Внедрение кода или инъекция SQL — это уязвимость системы безопасности в Интернете, позволяющая злоумышленнику завладеть доступом к SQL-запросам в базу данных. Так он может получить...
Обработка событий по времени в бессерверной архитектуре

Обработка событий по времени в бессерверной архитектуре

Бессерверность  —  мир событий Когда-то в качестве серверов все размещали непрерывно запущенные демоны, но теперь мы вступаем в бессерверную эру, когда все запускается событиями. Это очевидно, если...
Лучшая IDE для Python-разработки в 2024 году

Лучшая IDE для Python-разработки в 2024 году

Обзор топовых сред разработки Python-проектов поможем понять, какая из них подходит именно вам. Помимо особенностей и возможностей каждой из них, вы получите рекомендации по началу работы с PyCharm - самой популярной IDE в профессиональном Python-сообществе.
Как компьютер выполняет математические вычисления

Как компьютер выполняет математические вычисления

Что позволяет вашему ПК, ноутбуку или смартфону быть легким, быстрым и относительно недорогим девайсом? Что делает компьютер эффективным, сокращая энергопотребление и тепловыделение? Поищем ответы на эти вопросы "под капотом" вычислительной машины.
Архитектура виртуальной машины Java: объяснение для начинающих

Архитектура виртуальной машины Java: объяснение для начинающих

На собеседованиях часто требуется знание внутреннего устройства JVM. Но и в повседневной практике Java-разработчику полезно понимать, что происходит внутри при запуске кода. Разобраться поможет эта статья.
Основы CI/CD

Основы CI/CD

В современной компании процесс разработки редко обходится без систем непрерывной интеграции и доставки. Разберемся, как они работают и почему они так важны для бизнеса.
C++: подробное руководство по cортированным векторам

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

Разберем основные операции, выполняемые с сортированными векторами, и реальные сценарии. Сравним по эффективности эти векторы с несортированными.
ScyllaDB в K8S: как справляться с интенсивными рабочими нагрузками на спотовых экземплярах без простоев

ScyllaDB в K8S: как справляться с интенсивными рабочими нагрузками на спотовых экземплярах без простоев

Почему Scylla предпочтительнее, чем Cassandra и Mongo? Создадим высокодоступный оператор Scylla для кластера, настроим дашборды Grafana, оповещения, средства мониторинга, резервное копирование с VolumeSnapshots и расширение тома.
17 полезных скриптов автоматизации на Python. Часть 1

17 полезных скриптов автоматизации на Python. Часть 1

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

Самые полезные библиотеки Go

Эти библиотеки всегда оказываются первыми в списке инструментов Go-разработчика при запуске нового проекта. Они помогают устранить избыточный код и позволяют создавать более качественные и быстрые приложения.
iOS

Рефакторинг большой раскадровки в несколько меньших

День настал Я недавно работал над iOS приложением, которое уже находится на рынке. Оно было выпущено прежде, чем Apple запустили новый чудо фреймворк SwiftUI, и...
Проектирование и развертывание Python-приложения для машинного обучения. Часть 2

Проектирование и развертывание Python-приложения для машинного обучения. Часть 2

Не нужно быть Атлантом, чтобы перенести модель в облако. Нужно лишь усвоить ключевые концепции проектирования Python-приложения для машинного обучения. Предлагаем рассмотреть их на высоком и низком уровнях, чтобы принять оптимальные решения для сбалансирования нагрузки и устранения узких мест при развертывании.
7 наиболее полезных расширений VS Code, представленных в 2021 году

7 наиболее полезных расширений VS Code, представленных в 2021 году

Представляем самые крутые расширения VS Code, выпущенные в 2021 году. Они помогут разработчикам расширить рабочий процесс и повысить продуктивность.
Rust: первые впечатления

Rust: первые впечатления

Станет ли Rust пределом мечтаний разработчиков и универсальным языком, который заменит все остальные? Что делает его таким особенным? Рассмотрим текущее положение и разберем слабые и сильные стороны Rust.
C++

Возможности C++, о которых должен знать каждый разработчик

С момента своего появления C++ очень хорошо развился как язык программирования. Конечно, это не произошло моментально. Когда-то этому языку не доставало динамичности. В то время...
10 примеров для изучения модуля JSON в Python

10 примеров для изучения модуля JSON в Python

Модуль json - мощный инструмент Python для работы с данными JSON. Рассмотрим 10 примеров, демонстрирующих общие задачи, которые можно выполнять с помощью этого модуля.
Ruby

Магия Pry для отладки кода Ruby

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

Android 14: обновления в области конфиденциальности и безопасности

Узнайте о новых функциях Android 14, чтобы обновить свои приложения в соответствии с ними. Это поможет обеспечить безопасность приложений и соблюдение конфиденциальности пользователей.
Как перевести код R в Python с помощью ChatGPT

Как перевести код R в Python с помощью ChatGPT

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

Почему гейм-дизайнеру нужно программирование

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

Функциональные возможности систем типов Julia и Rust

Я твёрдо убеждён, и многие со мной в этом согласятся, что прекрасным началом разработки программы является выявление подходящих представлений реальной проблемы, которую мы пытаемся...
Абстракции с нулевой стоимостью* в Kotlin

Абстракции с нулевой стоимостью* в Kotlin

*Могут применяться особые условия Внимание: этот пост в блоге охватывает экспериментальную функцию Kotlin, которая может быть изменена. Эта статья была написана с использованием Kotlin 1.3.50. Безопасность...
Превратите свой Java-код в полностью асинхронный

Превратите свой Java-код в полностью асинхронный

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

Эффективные шаблоны архитектуры программного обеспечения

Ознакомьтесь с востребованными шаблонами архитектуры программного обеспечения и их практическим применением. Четкое представление о том, какие из шаблонов наиболее эффективно работают в определенных ситуациях, - ключ к созданию оптимальной архитектуры.
8 рекомендаций по написанию читаемого кода на C# с помощью .NET 6

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

Научитесь избегать лишних операторов else, извлекать и именовать методы, грамотно использовать Linq и применять прочие подходы для придания коду читаемости и прозрачности.
Повышение безопасности Angular-приложения путем интеграции OCR и биометрии 

Повышение безопасности Angular-приложения путем интеграции OCR и биометрии 

Хотите защитить пользователей своих приложений от мошеннических действий? Сделайте это с помощью автоматического извлечения данных путем OCR и биометрических технологий. Предлагаем подробное руководство по интеграции OCR с биометрическими решениями.
CProgramming

Новейшие возможности C# 9

В преддверии релиза .NET 5, объединяющего среды выполнения .NET, Microsoft недавно анонсировали возможности, которые будут включены в C# 9. О выпуске финальной предварительной версии C# было...
Реализация интерфейсов в Golang

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

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

Преобразуем проект в мультиплатформенный с Kotlin Multiplatform: зачем, когда и как

Как сделать разработку эффективнее, не переписывая приложения? Расскажем о преимуществах и универсальной стратегии плавного перехода, при котором сохраняется надежность цифрового продукта.
6 отборных практик для определения метода _init_ в Python

6 отборных практик для определения метода __init__ в Python

Создание читаемого и удобного в обслуживании кода Python начинается с грамотного определения метода __init__. В связи с эти предлагаем 6 наилучших практик, проверенных личным опытом автора.
Golang

Как реализовать древовидную сортировку в стандартной библиотеке Go

Двоичная куча Итак, двоичная куча — это:  Контейнер, предоставляющий свой максимальный элемент за время O(1), добавляющий элемент за O(log n) и удаляющий максимальный элемент за O(log n).Неполное бинарное...
Android

Новое в Android 11

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

Ruby: рефакторинг без лишних сложностей

С чего начать и как избежать ловушки усложнения? Дадим рекомендации с небольшим примером.
Избегаем исключения Null Pointer Exception в Java с помощью Optional

Избегаем исключения Null Pointer Exception в Java с помощью Optional

В 1964 году британский ученый-компьютерщик Тони Хоар изобрел ссылки на нулевые указатели (Null Pointer References). Исключение Null Pointer Exception составляет львиную долю всех исключений, которые...
C++: полное руководство по параметризованным классам

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

Изучим особенности создания и реального применения этих классов. Проиллюстрируем практическими реализациями и примерами.
Как создать компонент Toast в SwiftUI

Как создать компонент Toast в SwiftUI

Расскажем, как, не напрягаясь, создать интересный компонент Toast в SwiftUI. Присоединяйтесь - скучно не будет!
Python

Python — идеальный инструмент для любой проблемы

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

Go: трассировочный пакет

ℹ️ В статье речь идёт о Go 1.13. В Go имеется инструмент для проведения трассировки и получения подробного представления о работе программы во время её...
Rust

Тестирование клиент-серверов на Rust для IoT

Выбор подходящих зависимостей для проекта может быть сложной задачей. При принятии решения здесь необходимо учитывать множество аспектов  —  начиная от производительности и заканчивая стилем...
Скрытые нововведения в iOS 15

Скрытые нововведения в iOS 15

Самая интригующая часть нового функционала, появившегося по итогам проведения конференции WWDC21, была запрятана в замечаниях к выпуску Xcode 13. Все программы и библиотеки dylib, имеющие...
Принципы SOLID в инженерии данных. Часть 1

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

Продемонстрируем на примерах, как нарушается и соблюдается каждый принцип и что получается при расширении кодовой базы. Разберем достоинства и недостатки, в каких ситуациях принципы SOLID нужны, в каких - нет.
Среда разработки Entity Framework в Docker

Среда разработки Entity Framework в Docker

Рассмотрим наглядный пример использования среды разработки Docker, который поможет разобраться в настройке и инициализации серверной базы данных.
Как стать Android-разработчиком за 2 месяца

Как стать Android-разработчиком за 2 месяца

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

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

Создаем блокировщик сайтов в 3 шага   Предыдущие части: Часть 1, Часть 2   Технологии стремительно развиваются, как и мир в целом. Каждый день вы сталкиваетесь с чем-то, о чем раньше...
Python

Магические методы в Python

Создание объекта dict, принимающего только целые и плавающие числа в качестве значений В этом сценарии мы реализуем класс, который создает объекты-словари, принимающие только целые и...
Koin

Релиз Koin 1.0.0✨

Так, так, так… вот оно! Уважаемые пользователи Koin, настал момент релиза нашей первой стабильной версии Koin. Спустя чуть больше года после начальной версии, мы...
Улучшение Python кода: замените if-elif условие на словарь!

Улучшение Python кода: замените if-elif условие на словарь!

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

Введение в модульное тестирование на Python

Вы только что написали фрагмент кода и не знаете, что делать дальше. Отправлять ли pull request, чтобы коллеги провели ревизию кода или же протестировать...
Jetpack DataStore: улучшенная система хранения данных

Jetpack DataStore: улучшенная система хранения данных

Что такое DataStore На протяжении многих лет разработчики Android хранили небольшие фрагменты конфиденциальных пользовательских данных с помощью общих настроек (shared preferences). Этот подход имеет следующие...
Как правильно объявлять API устаревшими и не сломать пользователям код

Как правильно объявлять API устаревшими и не сломать пользователям код

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

Как загружать файлы и изображения в приложении Django

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

Конструктор перемещения на C++

Сравним конструкторы перемещения и копирования: что быстрее? Изучим их связь и соответствующие семантики, варианты применения.
Python

Обработка аргументов в Python с помощью argparse

Если вы хотите разрабатывать ПО на Python, то умение использовать argparse в своих скриптах будет крайне полезным. Если же вы специалист по данным, то,...
OOP

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

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

LocalStack: запуск AWS на локальном компьютере

Более миллиона компаний по всему миру создают приложения на облаке AWS. Одна из проблем при работе с облаком — это огромное количество сервисов в распоряжении, а...
Мой первый опыт работы с языком Gleam 

Мой первый опыт работы с языком Gleam 

Gleam - надежный инструмент в мире функционального программирования. Проведем объективное исследование возможностей этого языка и выделим его сильные стороны.
Когда чистый код нецелесообразен

Когда чистый код нецелесообразен

Хотя у чистого кода имеется ряд преимуществ, его внедрение в проект не всегда оправдано. Рассмотрим ситуации, когда чистый код слишком дорог.
Python

Скрипт для WhatsApp-сообщений в 20 строках кода Python

В повседневной рутине мы часто забываем о близких. А ведь можно воспользоваться WhatsApp! То, с какой регулярностью родители шлют мне с утра пораньше сообщения — засыпая...
Построение потоков событий с Rust и Kafka: практическое руководство

Построение потоков событий с Rust и Kafka: практическое руководство

Реализуем отправителей и получателей, настроим корректную обработку ошибок, конфигурацию и типы. Обозначим подводные камни, дадим рекомендации.
Go

Отладка Go для профессионалов

Многие разработчики редко используют отладчик при возникновении проблем в коде. Если вы пишете модульные тесты и используете линтинг и рефакторинг, то этот быстрый и...
Тестируя нетестируемое - битва с легаси-кодом

Тестируя нетестируемое — битва с легаси-кодом

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

Запуск с нуля: как я создала сайт с нуля при помощи Netlify + Gatsby

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

3 основных закона разработки ПО

Чтобы стать инженером-программистом, требуются годы обучения. Однако основные принципы, на которых базируется подход к разработке программного обеспечения, можно свести к 3 фундаментальным законам.
JavaScript

Три примера, когда не стоит использовать стрелочные функции JavaScript

Стрелочные функции ES6 Вы их знаете, любите и наверняка постоянно используете! Представленные в 2015 году как часть обновления ECMAScript 6 стрелочные функции приобрели свою популярность совершенно...