Создаем юнит-тесты с помощью ИИ-инструмента
В этой статье мы воспользуемся плагином на базе искусственного интеллекта для IntelliJ, чтобы автоматически сгенерировать юнит-тесты.
Шаг 1. Установка плагина и импорт проекта
Плагин для IntelliJ IDEA...
Автоматизация платежей со Stripe и Golang: руководство разработчика
Реализуем интегрируемый в онлайн-платформы функционал автоматической оплаты услуг, создадим сеанс оформления заказа для клиента на Go, Stripe и Gin. Разберемся, как с помощью хуков здесь устраняются основные сложности.
Максимальная производительность Pandas Python
В этой статье мы докажем, что использование Nuclio и RAPIDS, бесплатной open-source платформы для ускорения обработки данных от NVIDIA, может значительно увеличить производительность Python.
Я...
Обучение и развертывание пользовательской модели Detectron2 для обнаружения объектов в PDF-документах. Часть 1: обучение
Предлагаем руководство по созданию приложения компьютерного зрения. Ускорить процесс машинного обучения поможет библиотека нового поколения - Detectron2. В результате вы получите модель, способную "видеть" и извлекать нужную информацию из PDF-документов.
Логирование в Python с помощью Logzero
Logzero - это пакет Python, созданный Крисом Хагером, который упрощает отображение информации и сведений об отладке в качестве оператора print в Python 2 и...
Устранение неполадок в Kubernetes - стратегический подход
Работа с Kubernetes может серьезно озадачивать, особенно когда дело доходит до отладки и устранения сбоев. Основная сложность кроется в недостатке подробных сообщений об ошибках...
Роль Fragments в современной разработке приложений для Android
Функция библиотеки Fragments при разработке приложений для Android серьезно изменилась. Посмотрим, в чем заключаются изменения и к чему они приводят.
Python или Node.Js: какой язык программирования выбрать?
Каждый проект обладает определенными особенностями и требованиями. При создании приложения важно выбрать правильную технологию. В этой статье мы рассмотрим особенности Python и Node.js, чтобы...
R - язык для статистической обработки данных. Часть 2/3
Часть 1, Часть 2
Предыдущую часть мы закончили темой векторов, а в этой — переходим к матрицам.
9. Что такое матрица?
Матрица, как структура данных, тоже часто встречается в R.
Её...
Что нового в системной трассировке Android Studio
В Android Studio 4.0 мы пересмотрели UI профилировщика (Profiler), чтобы обеспечить более интуитивно понятный рабочий процесс записи работы ЦПУ. Мы продолжали вносить улучшения, основываясь...
Интерфейсы в Go для повышения тестируемости кода
Интерфейсы в Go
Интерфейсы — это абстракции, описывающие поведение различных типов, но не определяющие детали его реализации. Например, вы можете запросить и принять деньги от кассира...
5 функций-расширений в арсенале каждого разработчика Jetpack Compose
Изучим пять функций из асенала разработчика Jetpack Compose и столько же для работы с системой представлений. Проиллюстрируем примерами.
Clean Architecture в Android для начинающих
Даже до того, как я начал специализироваться на Android, меня, как разработчика, всегда восхищал хорошо структурированный, чистый и понятный в целом код.
“Задача архитектуры программного...
Автоматизация скриншот-тестирования предварительных просмотров Compose с использованием отражения
Это решение по автоматизации скриншот-тестирования предварительных просмотров Composable занимает всего пару часов, интегрируется в проект и имеет почти нулевые затраты на обслуживание. При этом оно позволяет быть уверенным в том, что любое изменение пользовательского интерфейса не приведет к неожиданным сбоям.
Построение комплексных конвейеров сборки вокруг Kubernetes
Интегрируем современные практики и инструменты DevOps. Настроив каждый экземпляр, сконфигурировав инструменты и подключив все системы, создадим комплексный рабочий процесс.
Выполнение AES/GCM в Android
Столкнувшись с рядом проблем, связанных с выполнением шифрования и расшифровки AES в Android, я решил поделиться своим опытом.
TL;DR: здесь можно найти готовое решение. Если...
Создание хука Git pre-commit для автопроверки и исправления кода JavaScript и TypeScript
Улучшите качество кода JavaScript и TypeScript с помощью ESLint, Prettier, lint-staged и Husky. Эти линтеры обеспечивают соблюдение стандартов программирования и форматирования, а также делают кодовую базу менее подверженной ошибкам, более простой в обслуживании и приятной для чтения.
Как решить реальную задачу при помощи структурированной конкурентности и виртуальных потоков Java 21
Любую сложную задачу можно разбить на простые. Особенно просто и естественно это делается в одном потоке выполнения кода. Но что делать в многопоточной среде, где отношения между конкурентно выполняемыми задачами хранит только ваша голова? Java 21 разгружает вашу голову идеей структурированной конкурентности. JDK позволяет явно выделить подзадачи (подстеки), чтобы затем получить общий итог работы подзадач. Смотрим, как это делается, на примере реальной задачи.
Создание снэкбара с обратным отсчетом времени в Android с помощью Jetpack Compose
Снэкбар - полезная функция в контексте современной веб-разработки. Она дает пользователю время подумать над принятием важного решения. Поговорим о том, как создать снэкбар, используя арсенал Jetpack Compose.
Визуализация крупномасштабных импульсных нейронных сетей
Импульсные нейронные сети — это не просто еще одна архитектура ИИ, а шаг к созданию машин, работающих так же эффективно, как и биологический мозг. Но как заглянуть внутрь этих сложных систем? Ответ — визуализация, которая превращает поток импульсов в наглядную динамическую карту работы "цифрового мозга".
Глубокое погружение в режим Copy-on-Write в pandas. Часть 2
В первой части мы рассказывали о том, как работает механизм Copy-on-Write. Там указывались области, в которых копии внедряются в рабочий процесс. Во второй части сосредоточимся на оптимизациях, которые позволят избежать замедления среднестатистического рабочего процесса.
Как оптимизировать код на Python
Как я сократил время выполнения приложения на 1/10
Данные советы просты в реализации и могут пригодиться вам в обозримом будущем.
Считается, что первоочередной задачей программиста является написание...
Как создать анимированный переключатель тем в Jetpack Compose
Сколько пользователей, столько и предпочтений. Темы - не исключение. Кому-то больше нравится темное оформление, кому-то - светлое. Сегодня посмотрим, как разработать оригинальный переключатель тем с помощью Jetpack Compose.
Топ-10 вопросов о Pandas на StackOverflow
Эти десять вопросов получили наибольшее количество голосов в категории Pandas на платформе StackOverflow. Они были актуальны десять лет назад, такими же остаются и сегодня. Ответы на них позволяют закрепить фундаментальные операции в Pandas.
4 ситуации из жизни лямбда-функций в Python
Начнем с того, что лямбда-функции не пользуются особой популярностью у программистов Python, да и у меня они вызывают смешанные чувства. Новичкам непросто в них...
Дорожная карта iOS для разработчиков Android: основы
Хотите стать универсальным разработчиком, знающим особенности программирования как для Android, так и для iOS? Этот гайд расскажет о различиях и сходствах работы с этими двумя платформами.
Создание собственной версии UseCase в 2023 году: гибкий и функциональный подход
Гибкий и функциональный подход при создании UseCase обеспечит удобочитаемость, выразительность и модульность кодовой базы. Ознакомьтесь с его применением на примере реализации UseCase в приложении электронной коммерции.
Выбираем базу данных
Опытный ли вы инженер-программист или студент, пишущий университетский проект, в какой-то момент вам нужно будет выбрать базу данных для ваших целей.
Если вы ранее уже...
Руководство по доступу к датчикам Android-устройств
Это простое руководство ознакомит вас с различными типами датчиков, а также научит определять их доступность на Android-устройствах и возможности. Кроме того, вам будут предложены реальные сценарии использования датчика освещенности и магнитометра.
Основы работы с Git
В процессе разработки ПО значимая роль отводится сотрудничеству. В большинстве случаев деятельность разработчика включает работу в команде и совместное использование проекта с другими специалистами....
Кросс-компиляция программ Rust для запуска на маршрутизаторе
Вы никогда не задумывались о том, чтобы запустить на домашнем роутере какой-нибудь пакет Ubuntu? Для этого можно было бы использовать контейнеры LXC. Всё это...
Простой прием для молниеносных запросов LIKE и ILIKE
Как ускорить запросы в немаленьких приложениях? Доработаем производительность поиска в PostgreSQL триграммными индексами.
Разворачиваем декораторы. Часть 1
Предпосылки
Для начала я должен убедиться, что все одинаково хорошо разбираются в теме. Если вам хорошо известны такие понятия как: переменные, параметры, возвращение значений переменной...
Использование Kubernetes для развертывания 3-уровневой инфраструктуры контейнерных приложений
Рассмотрим основные различия Kubernetes и Docker Swarm. Создадим среду и deployment, настроим кластер для развертывания фронтенда, бэкенда и базы данных приложения.
Эффективная стратегия тестирования Android-проектов. Часть 2: модульное тестирование
Эта часть посвящена основным элементам модульного тестирования при подготовке Android-проектов, а также различным типам тестовых дублеров. Вы узнаете, что именно надо тестировать при Android-разработке и получите рекомендации по написанию удобных в обслуживании и эффективных тестов.
Расшифровка собеседования разработчика в Cisco 2024: Java, Spring Boot, Hibernate
Разберем полную запись технической части для продвинутых. Все это актуальные вопросы и ответы для желающих работать в Cisco Systems.
C++: полное руководство по «приведению вверх»
Изучим нюансы приведения вверх, проиллюстрировав их практическими примерами и реальными сценариями. Разберем неявное и явное приведения, полиморфизм, конструкторы и деструкторы, множественное наследование, dynamic_cast.
Создание анимированных диаграмм в Python
Изображение вместо тысячи слов - такой принцип лежит в основе визуализации данных. А если добавить в нее анимацию? Представляете, какой живой отклик она вызовет у вашей аудитории! Так что самое время научиться создавать анимированные диаграммы в Python.
Как дизассемблировать код Python и повысить его производительность
Базовое знакомство с простой, но эффективной техникой оптимизации кода через его дизассемблирование.
Избегайте этих нелепых ошибок при работе с Python
Чем больше вы практикуетесь, тем легче программирование становится для вас, но суть не меняется:
программирование — это сложно.
Оно может стать ещё сложнее при неудачном сочетании обязательств и рабочих...
Как обеспечить возможность обнаружения для совместно используемых компонентов
Компоненты привносят модульность в дизайн приложений. Модульность, в свою очередь, обеспечивает возможность повторного использования, благодаря которой можно создавать приложения без необходимости каждый раз изобретать...
Введение в Navigation Architecture Component
Среди компонентов Jetpack, самым интересным является Navigation Architecture Component. Навигация управляет перемещением между destinations. Destinations обычно представлены фрагментами, однако поддерживают activities и другие пользовательские...
Сравниваем целочисленное и линейное программирование в Python
Разбираемся, в чем отличия между целочисленным и линейным программированием. Параллельно решаем распространенную задачу по математической оптимизации.
Язык C: константы и литералы
Константы - фиксированные величины, которые не изменяются во время выполнения программы. Эти фиксированные величины также называются литералами.
Android 14: обновления в области конфиденциальности и безопасности
Узнайте о новых функциях Android 14, чтобы обновить свои приложения в соответствии с ними. Это поможет обеспечить безопасность приложений и соблюдение конфиденциальности пользователей.
Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 1
2024-й обещает стать годом инноваций, когда ИИ и технологии объединятся, чтобы перекроить карты наших возможностей. Заглянем в ближайшее будущее нейронных сетей, векторных данных, экосистемы агентов ИИ, а также уникальных смарт-девайсов, меняющих наш образ жизни.
Почему вам стоит написать свой API-шлюз с нуля
Любой организации, имеющей в своем распоряжении пару микросервисов, необходим контроль за тем, кто получает к ним доступ и на каких условиях. Такой контроль помогает...
MVVM на Android с компонентами архитектуры + библиотека Koin
Введение
С MVVM (Model-View-ViewModel) процесс разработки графического интерфейса для пользователей делится на две части. Первая — это работа с языком разметки или кодом GUI. Вторая — разработка бизнес-логики или...
Обработка файлов на C
Какие функции используются для открытия, редактирования и закрытия файлов? Рассмотрим особенности их применения с текстовыми и двоичными файлами.
Actix или Rocket? Сравнение двух мощных платформ для веб-приложений на Rust
Понятие платформ для веб-приложений
Прежде чем приступать к сравнению этих двух платформ Rust, давайте сначала разберёмся, что в принципе собой представляют платформы для веб-приложений.
Для создания...
Реализация кэширования новостных тем в приложении TrendNow. Часть 5
В этой части вы узнаете о том, как эффективно реализовать кэширование новостных тем на стороне клиента с использованием базы данных Room. Это может быть полезно для снижения ограничения скорости API, уменьшения нагрузки на сервер, повышения эффективности приложения.
Язык C: операторы
Оператор - это символ, который дает команду компилятору выполнить определенные математические или логические функции. В распоряжении пользователей языка С множество встроенных операторов различных типов. Рассмотрим их в данной статье.
Java для начинающих: часть 2 из 4
Часть 1, Часть 2, Часть 3, Часть 4
Данные статьи помогут легко и быстро разобраться в концепциях и программировании на Java. Даже при...
Спецификатор constexpr в C++: зачем он нужен и как работает
Разберемся, что такое спецификатор constexpr и чем он отличается от const, а также рассмотрим особенности вычислений на этапе компиляции. Эти знания помогут избежать многих ошибок при программировании на C++.
Не заблудитесь при работе с кластерами Kafka — возьмите компас
Представляем инструмент мониторинга кластеров KafkaCompass. Рассмотрим функционал этого приложения - со слов его разработчиков.
Откажитесь от SQLite в пользу DuckDB
Все еще пользуетесь SQLite? Пришло время забыть об этой библиотеке, поскольку теперь у нас есть DuckDB! Узнайте, что представляет собой DuckDB, почему и когда стоит использовать эту систему, а также о том, как интегрировать DuckDB в Python.
Защита секретов в Android: от ключей API до хранения в продакшене
В Android-разработке хранение секретов в коде приложения — прямая угроза безопасности. Ключи API, токены и другие конфиденциальные данные могут быть извлечены из APK-файла. Узнайте, как построить надежную защиту, исходя из того, что клиентское приложение всегда может быть скомпрометировано.
Реализация «бесконечного» пейджера в Jetpack Compose
Хотите превратить стандартный пейджер в "бесконечный", чтобы повысить удобство и вовлеченность пользователей? Предлагаем простые стратегии реализации бесконечного скроллинга с минимальными изменениями кода.
Как реализовать в Golang двухфакторную аутентификацию с TOTP
Поэтапно настроим среду, интегрируем в проект библиотеку и рассмотрим различные аспекты 2FA, включая генерирование и хранение секретов, обработку аутентификации пользователя и проверку кодов TOTP. Дадим рекомендации по реализации в приложении Golang.
Реализация gRPC и PostgreSQL на GO
Пошагово создадим масштабируемое серверное приложение: подключим модульные тесты, контейнеризируем приложение и задействуем Envoy как прокси-службу взаимодействия. В итоге спроектируем, выполним оценку, запустим и протестируем его.
Делегаты в Kotlin для Android
Kotlin действительно красивый язык, в котором есть очень крутые фичи. Из-за них разработка приложений становится веселым и захватывающим опытом. Одна из этих фич — делегированные свойства....
Кэширование Redis для максимальной производительности в Spring Boot и Java
Кэширование помогает повысить производительность приложений за счет снижения нагрузки на такие ресурсы, как базы данных и удаленные сервисы. Рассмотрим, как применять Redis в качестве кэша в приложении Spring Boot для достижения максимальной эффективности.
Топ-10 самых распространенных ошибок в проектах Go. Часть 2
Предыдущая часть: Часть 1, Часть 2
Инициализация среза
Иногда конечная длина среза бывает известна. Допустим, нужно преобразовать срез Foo в срез Bar, что означает, что они...
Топ-13 пакетов Python в 2023 году
Предлагаем обзор 13 лучших пакетов Python, которые помогут ускорить процесс разработки. Оцените невероятные возможности Python, широту и глубину доступных ему задач (особенно в сфере машинного обучения).
Отладка зависимостей в Gradle
Узнайте, как с помощью dependencyInsight отлаживать версии транзитивных зависимостей в Android-приложении. Переопределение транзитивных версий зависимостей позволит избежать конфликта версий, ведущим к сбоям работы приложений.
Bamboolib - одна из самых полезных библиотек Python
Почему Bamboolib считают уникальной библиотекой Python и почему вы непременно должны с ней поработать? Идея Bamboolib заключается в том, чтобы "изучать и использовать Pandas без написания кода". Это ли не мечта любого программиста?
Знакомство с Papermill
Как превратить Jupyter Notebook в рабочий процесс по обработке данных
1. Введение
Jupyter Notebook — это «золотой стандарт» в разведочном анализе данных (EDA-анализ) и отличный инструмент для документирования...
Не самые очевидные советы по написанию DTO на Java
Как облегчить себе жизнь при работе с Data Transfer Object: создаем неизменяемые DTO, избегаем нулевых значений и упрощаем инициализацию, руководствуясь книгой "Java: эффективное программирование".
10 продвинутых советов по Git
Если вы уже понимаете, как работает Git, эта статья поможет вам развить умение работать с Git и стать более эффективным.
Сопоставление LiveData, SingleLiveEvent и MediatorLiveData в Android
Хотите эффективно управлять данными и событиями в приложении Android, а также создавать удобный в обслуживании код? Уделите внимание таким важным структурам Android Architecture Components, как LiveData, SingleLiveEvent и MediatorLiveData.
Внедрение зависимостей для создания элегантных горизонтальных архитектур
Как не попасть в ловушку вертикальных архитектур? Рассмотрим преимущества горизонтальной структуры с внедрением зависимостей и построим такую.
Контейнеризация в Python. Часть 1
Разработка в Python в локальных средах может стать нелёгкой задачей, если одновременно работать более чем над одним проектом. Бутстрэппинг (начальная загрузка) проекта может потребовать...
Принцип DRY в Kotlin: повышение качества и удобства сопровождения кода
Принцип DRY позволит оптимизировать процесс Kotlin-разработки: снизит количество ошибок, упростит обновление и сопровождение кода, повысит его читаемость. Ознакомьтесь с примерами применения этого подхода и рекомендациями по его корректному использованию.
Оптимизация начальной загрузки сервера с RocksDB
Усовершенствуем процесс развертывания, перейдя от Redis к локальному хранению данных. Интегрируем RocksDB в код, сделаем схему хранения данных. Попутно решим проблему устаревших данных, преодолеем трудности работы с обновлениями Kafka, разберемся с утечкой памяти.
Как создать загрузчик с вращающимися кругами в Jetpack Compose
Хотите порадовать пользователей анимацией с вращающимися разноцветными кругами? Выполнить ее в Jetpack Compose позволит функция SpinningCirclesLoader. Предлагаем руководство с несколькими вариантами ее использования.
Лучшие практики для эффективного кода на Golang. Часть 1
Изучим рекомендации с примерами кода на Go. Рассмотрим отступы, импорт пакетов, названия переменных, длину строк, константы, обработку ошибок, глобальные переменные, структуры для сложных данных, комментарии, горутины.
Map-ориентированное программирование в Java
Map-ориентированное программирование в Java может быть насколько удобным, настолько и беспорядочным. Предлагаем задуматься над соотношением затрат и выгод от использования Map в качестве универсального возвращаемого типа.
Полное руководство по Kotlin для Android-разработчиков в 2024 году
Язык Kotlin — удобный и многофункциональный инструмент для создания современных мобильных приложений. Рассмотрим его сильные стороны и перспективы в мире Android-разработки.
9 встроенных декораторов Python, которые помогут оптимизировать код
Делайте больше меньшими средствами: используйте возможности декораторов. Они помогут сэкономить время на написание кода и откроют новые функциональные возможности Python.
Что нового в Python 3.10?
Разработка Python 3.10 стабилизировалась, и пришло время наконец-то протестировать все те новые функции, которые войдут в финальный выпуск.
Мы расскажем все самое интересное о том,...
Создание интерфейсов RESTful API в Golang
Часть 1, Часть 2, Часть 3
В предыдущей статье мы говорили о создании «идеальной» настройки для Golang проекта. Теперь пришла пора найти для неё...
C++: подробное руководство по обработке файлов с getline()
Изучим файловые операции этой функции, различные сценарии и практические применения. Дадим рекомендации по эффективному считыванию файлов.
Как сделать собственный Git с нуля на Go
Реализуем основную функциональность: hash-object, cat-file, init. Разберемся, как здесь управляются объекты и имитируется поведение команд в коде, а затем протестируем.
Виртуальные Окружения в Python
В процессе работы над проектом мне потребовалось проверить, работает ли пакет Flask с установленным у меня Python. При запуске команды для установки Flask я...
Лень писать игру на Rust одному? Позовите на помощь ChatGPT
На что способен ChatGPT? Заменит ли он в итоге программистов? Разберем его возможности на примере написания игры Pong и подумаем, не пора ли искать другую работу.
Фреймворк The Composable Architecture
Combine с закрытым исходным кодом Apple скоро заменят в TCA на код async/await, сделав его фреймворком с поддержкой нескольких платформ и, возможно, с портированием на другие языки. Рассмотрим функционал, преимущества, последние разработки, применение и план освоения TCA.
Замыкания в Rust
В Rust можно создавать не только именованные функции, но и анонимные, которые называются замыканиями. Сами по себе они не так уж интересны, пока вы...
Kotlin: вложенный и внутренний классы
Чем отличаются вложенные классы от внутренних? Как в Kotlin одни классы объявляются внутри других?
Рефакторинг кода Go для тестопригодности: возможности интерфейсов
Раскроем возможности модульных тестов для раннего обнаружения багов. Продемонстрируем на конкретном примере, как сделать приложение на Go более тестопригодным.
Код на Python медленный? Вот 5 простых решений, чтобы быстро его ускорить
Бывший сотрудник Google, разработчик на Django и просто энтузиаст Python делится накопленным опытом оптимизации кода. При беглом взгляде рекомендации кажутся очевидными, но читайте до конца: скорее всего, вы вспомните средства работы с кодом, о которых из-за постоянного изучения чего-то нового успели забыть.
8 причин использовать Pydantic для улучшения парсинга и валидации данных
Совершенствование приложения тесно связано с усилением контроля качества данных в нем. Представляем вашему вниманию Pydantic - перспективный инструмент, о котором должен знать современный разработчик.
Создание анимированной пузырьковой диаграммы Ханса Рослинга на языке R
Статистические выкладки выглядят привлекательней при добавлении анимации. Сегодня мы убедимся в этом, воссоздав пузырьковую диаграмму Рослинга средствами языка R.
Инструмент, который автоматически находит уязвимости в Python-коде
TL;DR
В январе 2019 года мы запустили инструмент, который эффективно находит уязвимости в Python-коде. Мы создали автоматизированную систему, в которой объединили алгоритмы анализа потока данных...
Как создать NFT-маркетплейс с полным стеком
Предлагаем подробное руководство по созданию полнофункционального NFT-маркетплейса. В реализации используются Polygon, Next.js, Tailwind, Solidity, Hardhat, Ethers.js и IPFS.
Игра на C# меньше 8 Кб
Как уменьшить размер исполняемого файла C#?
Как человеку, выросшему во времена дискет и 56 Кбит модемов, мне всегда нравились небольшие программы. Я мог поместить много небольших...
Как создать инструмент PGP-шифрования на основе Python
Сделаем первый шаг в мир кибербезопасности и шифрования. Для этого создадим инструмент командной строки для PGP-шифрования с помощью Python.
Бинарное дерево на Go для новичка
Введение
В этой статье мы сосредоточимся на том, как деревья бинарного поиска могут быть реализованы на Go и почему они предпочтительнее линейных структур данных, таких...
Как автоматизировать электронную почту с помощью Python
С помощью Python можно с легкостью автоматизировать ежедневные задачи. Используя комбинацию API и простых для понимания библиотек, можно настроить системы, которые выполняют скрейпинг веб-сайтов,...
Python PyQt5: современные графические интерфейсы для Windows, MacOS и Linux
Установка и настройка Python PyQt5 для новичков: кнопки, поля ввода, всплывающие окна и событийно-ориентированное программирование.
Проекты Go: создаем собственное канареечное развертывание
Каким образом перенаправляется трафик? Разберем различные подходы к развертыванию с примерами кода.
Где и как применить Python на практике? Три основные сферы его применения
Если вы собираетесь изучать такой язык программирования, как Python, или уже изучаете — у вас может возникнуть резонный вопрос:
«Для решения каких конкретных задач я могу использовать...
Простое руководство по форматированию строк в Python с помощью f-строк
Использование f-строк - 5-го способа форматирования строк, появившегося в Python 3.6, - повысит ваш профессиональный уровень. В отличие от других способов в Python, f-строки являются более гибкими, работают быстрее и улучшают читаемость кода.
Кто придет на замену JavaScript
Десять лет назад никто не догадывался о том, что JavaScript будет править миром. Другие платформы, такие как Java, Flash и Silverlight, также были сильными...
Как я начала кодить
Моя история настолько далека от программирования, насколько это возможно. На тот момент я уже десять лет училась в школе. У меня есть степень магистра...
Прощайте, useState и useEffect: революция в React
Несмотря на свою эффективность, useState и useEffect - не универсальные решения. Представляем набор приемов, которые прокачают ваши навыки и позволят эффективнее справляться с получением и загрузкой данных.








































































































