Покрытие кода в Rust
Покрытие кода - техника, которую должен освоить каждый тестировщик. Сегодня поговорим о ее полезных особенностях и возможностях, о которых, возможно, знают не все специалисты.
Эволюция монолитных систем
Как предотвратить энтропию монолитных систем, свойственную технологическим стартапам? Воспользуйтесь рекомендациями эксперта, чтобы обеспечить успех и рост компании, избежав дорогостоящих ошибок.
Автоматизация платежей со Stripe и Golang: руководство разработчика
Реализуем интегрируемый в онлайн-платформы функционал автоматической оплаты услуг, создадим сеанс оформления заказа для клиента на Go, Stripe и Gin. Разберемся, как с помощью хуков здесь устраняются основные сложности.
Понимание и реализация смарт-указателя Arc и мьютекса на Rust
Изучим модель владения, функционал потоков области видимости, попробуем самостоятельно разобраться с типажами-маркерами Send и Sync.
Android/Kotlin/Jetpack Compose: обработка push-уведомлений
Подробно обо всем: начнем с базовых настроек передачи и сохранения данных, получаемых в уведомлениях в Intents, а в итоге перейдем к данным, отображаемым в конкретном представлении Composable при нажатии на них пользователем. Сделаем акцент на извлечении токена, настройке MyFirebaseMessagingService, обработке сообщения, получаемого в закрытом/фоновом/неактивном/приоритетном приложении.
Области видимости в Android и Hilt
Определение области видимости объекта A в объекте B означает, что на протяжении всего жизненного цикла объект B всегда будет иметь один и тот же...
Поиск утечек памяти с помощью автоматизированных тестов
Процесс управления памятью может стать фактором, весьма затрудняющим работу в приложениях iOS. В связи с этим нужно уделять пристальное внимание размещенным в памяти object...
Настройка компонентов и тем Material UI: современный подход
Воспользуйтесь руководством по созданию ультрамодульной библиотеки компонентов с помощью Bit и Material UI. Она обеспечит расширенный набор настраиваемых компонентов и тем с предварительным просмотром и документацией, а также многократно используемую среду разработки.
Новые инструменты Android 11 для обеспечения конфиденциальности и стабильности
В рамках наших постоянных усилий по созданию высококачественных приложений мы часто ищем области, куда можем инвестировать инструменты и ресурсы, которые дадут вам более ясную...
Rust: безопасный парсинг с нулевым копированием
В Rust парсинг с нулевым копированием избавляет от ошибок безопасности памяти, возникающих в других языках. Руководство по использованию такого алгоритма позволит повысить общую производительность системы.
Методы wait(), notify() и notifyAll() в Java
Ознакомьтесь с ключевыми аспектами языка Java: межпотоковое взаимодействие, синхронизация, многопотоковая обработка. Особое внимание обратите на работу методов wait(), notify() и notifyAll() и рекомендуемые практики их применения.
Настраиваем автоматизированную модерацию с помощью OpenAI
Бьетесь над задачей максимизации пользовательского опыта? Воспользуйтесь инструментами, основанными на искусственном интеллекте.
Реализация шаблона Saga на Go: практический подход
Разберем нюансы управления продолжительными транзакциями в распределенных системах, реальные сценарии применения. Проиллюстрируем примером действие компенсации в этапах транзакций, откат предыдущих транзакций.
Как читать CSV-файлы на Java с помощью Open CSV
Вкратце рассмотрим возможности по обработке CSV-файлов на языке Java, ведь этот формат файлов часто встречается в повседневной работе.
Самый быстрый способ cоздать CRUD API в Golang
Поэтапно сделаем пригодный для промышленной эксплуатации API. Менее чем в 50 строках кода реализуем его с миграциями, REST-обработчиками, функцией main, создадим простейший компонент - слой данных.
C++: подробное руководство по std::accumulate
На примерах разберем нюансы этой функции, в том числе ее отличия от параллельных алгоритмов C++17. Рассмотрим реальный сценарий и типичные ошибки.
Как создать бессерверное приложение с помощью AWS Chalice
Недавно я наткнулся на AWS Chalice и был очарован его простотой и удобством пользования.
AWS Chalice — это бессерверная платформа, которая позволяет создавать бессерверные приложения...
Как использовать GPT-3 для поиска и рекомендаций текстового контента
Общий обзор по генерации векторов GPT-3 для анализа сходства документов. Научимся вычислять косинусное сходство и на его основе определять максимально похожие документы.
5 функций CLI на Rust для оптимизации привычных инструментов
Хотите стать более продуктивным? Rust предоставит вам возможность обновить некоторые из повседневных инструментов командной строки!
Kotlin изнутри: как работают inline-функции
Inline-функции могут как и увеличить код, так и повысить его производительность. Чтобы с выгодой использовать этот Kotlin-инструмент, необходимо понять принцип его действия, а заодно разобраться в том, зачем нужен crossinline и как работает reified.
Ошибка дублированного класса в Android для Kotlin
Разберем сценарий, в котором появилась ошибка, и поэтапно ее устраним. Воспользуйтесь предлагаемым решением, чтобы быстро с ней справиться.
Последовательное объединение адаптеров с помощью MergeAdapter
Пример использования: отображение верхнего и нижнего колонтитулов списка.
MergeAdapter — это новый класс, доступный в recyclerview:1.2.0-alpha02, который позволяет последовательно объединять несколько адаптеров для отображения в одном RecyclerView....
Код на Python медленный? Вот 5 простых решений, чтобы быстро его ускорить
Бывший сотрудник Google, разработчик на Django и просто энтузиаст Python делится накопленным опытом оптимизации кода. При беглом взгляде рекомендации кажутся очевидными, но читайте до конца: скорее всего, вы вспомните средства работы с кодом, о которых из-за постоянного изучения чего-то нового успели забыть.
C++: подробно о реализации двусторонней очереди
Изучим особенности реализации deque, ее отличия от vector и разберем нюансы производительности. Проиллюстрируем примерами и реальным сценарием.
C++: практическое руководство по проверке наличия файла
Изучим различные методы проверки, проиллюстрируем примерами реального применения. Какие факторы учитываются при выборе метода и где они сбалансированы оптимально?
Функциональные и гибкие Shell скрипты
Шелл скрипты vs python/Perl
Кто вообще пишет шелл скрипты в 2019’ом? Хороший вопрос. Что же, я пишу. ¯_(ツ)_/
На это есть веские причины, они описаны здесь...
Как обеспечить возможность обнаружения для совместно используемых компонентов
Компоненты привносят модульность в дизайн приложений. Модульность, в свою очередь, обеспечивает возможность повторного использования, благодаря которой можно создавать приложения без необходимости каждый раз изобретать...
Создание бесчисленных областей предпросмотра в AWS с помощью Lambda@Edge
Целью большинства команд веб-разработки является переход к непрерывному развёртыванию, для которого одним из существенных факторов может послужить наличие у каждой ветви функции собственного URL...
Ошибки в Rust: формула
Сравним философию обработки ошибок Go, Java и Rust. Рассмотрим ошибки на уровне крейта и модуля, попробуем создать иерархию ошибок. Как происходит отображение ошибок?
10 практических примеров использования функций высшего порядка при разработке Android
Функции высшего порядка могут значительно повысить качество и удобство сопровождения кода. Рассмотрим 10 полезных примеров того, как их можно использовать.
Как Scalene с ИИ-рекомендациями оптимизирует код Python
Изучим характеристики и принцип работы профилировщика Scalene, который помогает ускорять код и сокращать потребление памяти. Дополнительно рассмотрим преимущества его совместной работы с OpenAI.
Лучшие iOS SDK инструменты за 2019 год
В 2019 году появилось множество приложений для iOS, которые однозначно стоит добавить на главный экран вашего устройства. Например, Mobike для бесстанционного проката велосипедов, Blinkist...
Как я создавал систему для алгоритмического трейдинга на Rust и о чем сожалею
Вы когда-нибудь ныряли в бассейне с цепными пилами на дне? Не удивляйтесь, но что-то похожее можно испытать при первом погружении в Rust. Избежать подобного экстрима поможет ознакомление с опытом человека, решившего использовать Rust без предварительной подготовки.
Автоматизация создания файлов для нового экрана с плагином для Android Studio
Введение
Приходилось ли вам работать над проектом со сложной архитектурой, в котором для создания нового экрана нужно добавить несколько новых файлов с определенным содержимым? Например,...
Анализ инструментов Go для проверки уязвимостей безопасности
Уязвимости безопасности существуют в любом языке и любом коде. Одни из них пишут сами программисты, но большая часть проистекает из исходных зависимостей и даже базового Linux. Проведем полноценный обзор официальных инструментов Go для защиты кода: govulncheck, Github security dependency scan и gosec.
Проект API с точки зрения разработчика Android
Обучающее руководство по созданию API с точки зрения разработчика Android. Рассмотрим разные аспекты данного процесса: структуру проекта, архитектуру, точки входа, внедрение зависимостей и тестирование.
Основы SQL: разница между GROUP BY и PARTITION BY
Несмотря на кажущуюся простоту, SQL может таить в себе немало особенностей, о которых лучше узнать заранее. Сегодня рассмотрим основные различия между операторами GROUP BY и PARTITION BY, а также их основные сценарии использования.
Корутины и управление разрешениями в Android
Из этой статьи вы узнаете, как обрабатывать разрешения среды выполнения Android, появившиеся в Android Marshmallow, с помощью корутин (сопрограмм). Такой подход позволит обрабатывать разрешения...
Создай и играй: код для игры “Змейка” с кнопками управления в SwiftUI
Вспомним классическую игру "Змейка" и создадим для нее код в SwiftUI. Задача сложная, но интересная.
PHP: принятие решений
Рассмотрим, как работают операторы принятия решений if, elseif… else и switch.
Подробнее о функциях высшего порядка
В JavaScript, функции являются “функциями первого класса”, соответственно они могут:
храниться в переменной, объекте или массиве.
передаваться как аргументы в другую функцию.
и даже...
Интеграция Google Maps в приложение Jetpack Compose
Научимся интегрировать Google Maps в приложение Jetpack Compose с помощью библиотеки Maps Compose. В связи с этим рассмотрим ряд требуемых компонуемых функций и параметров.
Подписки, чеки и StoreKit в iOS 14
Из всех способов получить деньги за работу, которую вы вкладываете в разработку приложений, лучшим на сегодняшний день является подписка. В статье я надеюсь рассмотреть...
CHRONOS: современный мониторинг работоспособности приложений
Познакомимся с Chronos, бесплатным инструментом для отслеживания, записи и отображения метрик с привычным npm-пакетом. Вот что рассказывают разработчики Chronos о его текущих и планируемых возможностях.
Выражение when в Kotlin
Рассмотрим особенности использования выражения when в Kotlin.
Базовый случай использования
На фрагменте ниже приведен базовый случай использования выражения when:
fun myFunction(valueToTest: Any) {
when...
Реализация ViewPager в Swift 5
Без всякой помощи сторонней библиотеки, опираясь на подробное пошаговое руководство, научимся создавать переключатель страниц в Swift 5. Он будет состоять из представлений со вкладками и страницами.
Шаблоны проектирования распределенных систем и не только
Изучим преимущества и недостатки типовых шаблонов распределенных систем и микросервисов. Рассмотрим также не связанные с ними, но интересные концепции.
Темная сторона однонаправленных архитектур Swift
Однонаправленные архитектуры строго предусматривают, где и как обрабатываются состояния и эффекты. Но при этом страдают так называемой “пинг-понг-проблемой”, что сопряжено с риском для удобочитаемости. Поэтому стоит разобраться с этой проблемой и поискать способы ее преодоления.
Разностный алгоритм Майерса и наблюдаемые свойства в Kotlin - как их объединить, чтобы облегчить жизнь разработчика
Посмотрите на анимацию ниже. Это группа разноцветных элементов, которые при нажатии кнопки начинают перемещаться. С точки зрения разработчика, эти элементы размещаются внутри RecyclerView с...
Экспериментируем с…
Пагинация — достаточно известная, но трудная в реализации функция. Поэтому я решил разработать демонстрационное приложение на основе Android Paging Library с пагинацией, основанной на пользовательских запросах...
Лучшие практики для эффективного кода на Golang. Часть 2
Продолжаем обработкой паник с Recover, функциями init и defer, составными литералами, параметрами и сложностью функций, явными возвращаемыми значениями. Изучим затенение переменных, интерфейсы для абстракции, разделение библиотечных пакетов и исполняемых файлов.
Как развернуть пакет Cython в PyPI
Для меня это оказалось довольно трудно, и я подумал, что неплохо было бы поделиться своим опытом в статье.
Структура проекта
Вот файловая структура, которую мы будем...
Роль метода Stream.map() в Java
Для многих задач в Java метод map() предоставляет гибкие и лаконичные решения. Ознакомьтесь с ними, чтобы понять, как работает этот метод и в каких случаях он может быть полезен. Применяя его в реальных сценариях, вы упростите код, повысив его читаемость и удобство при сопровождении.
6 рекомендаций по устранению типичных проблем производительности Java
Тщательно изучим проблемы производительности Java. Научимся выявлять и приоритизировать части кода с наибольшим влиянием на масштабируемость системы.
Как учиться программировать с помощью ChatGPT
Как учиться писать год в 2023 году? Конечно, с помощью искусственного интеллекта! ChatGPT - всезнающий и отзывчивый онлайн-ассистент - готов помочь на каждом этапе обучения.
8 лучших техник программирования в Kotlin
Как известно, Kotlin предлагает много эффективных функциональностей, способствующих написанию чистого, лаконичного и производительного кода. Рассмотрим самые наилучшие из них и приведем примеры.
Как быстро найти проблемы с Python-типами через Pytype
Если вы работаете над большим проектом на Python или предпочитаете лаконичную и понятную базу кода, то Pytype станет для вас отличным помощником.
Python — это отличный язык...
Пишем балансировщик нагрузки на Golang
Реализуем логику распределения нагрузки с алгоритмом циклического перебора, перенаправлением запроса на бэкенды через обратный прокси-сервер, тремя повторами при сбое и обозначением бэкенда «мертвым». Как обрабатываются ситуации сбоя запроса?
Какие типы изображений можно создавать в Midjourney
Знакомьтесь с генератором изображений Midjourney. Эта нейросеть была создана в феврале 2022 года и уже пережила несколько апгрейдов. Рассказываем, что умеет Midjourney и как использовать этот инструмент в проектах.
Создание собственной версии UseCase в 2023 году: гибкий и функциональный подход
Гибкий и функциональный подход при создании UseCase обеспечит удобочитаемость, выразительность и модульность кодовой базы. Ознакомьтесь с его применением на примере реализации UseCase в приложении электронной коммерции.
Развертывание Kubernetes с пользовательским файлом index.html в поде Nginx с ConfigMap
Настроим веб-страницу index.html в поде Kubernetes с ConfigMap и веб-сервером Nginx. Убедимся в ее работоспособности, выведя сообщение в командную строку и веб-браузер.
С Kotlin приведение стало еще удобнее
Приведение — это необходимое зло в программировании. Мы обожаем его ненавидеть. В Kotlin выполнять приведение намного приятнее, чем в Java. Читайте ниже об очень известном, малопонятном...
UseCase: лучшие практики чистой архитектуры и красные флаги
Предлагаем подробное руководство по юзкейсам, на которых основана чистая архитектура. Корректное использование юзкейсов - с учетом красных флагов - поможет пользователям приложений достигать желаемых результатов без лишних нервов и усилий.
Конструктор перемещения на C++
Сравним конструкторы перемещения и копирования: что быстрее? Изучим их связь и соответствующие семантики, варианты применения.
Формирование эффективной и целостной культуры ревью кода
Погрузимся в различные ситуативные контексты ревью кода, рассмотрим их цели и содержание. На основе полученных знаний сформулируем рекомендации для авторов и рецензентов, позволяющих улучшить процесс ревью.
Уведомления о контактах
Android 11 мы делаем более ориентированным и выразительным для людей, переосмысливая то, как мы разговариваем по телефону, и создавая ОС, которая может распознавать и...
Работа с GitHub Actions на маркетплейсе
Поиск экшенов
Для этого есть два способа.
Непосредственно в маркетплейсе GitHub
В маркетплейсе размещается два вида инструментов для расширения основной функциональности GitHub:
Приложения.Экшены.
Для поиска экшенов в самом маркетплейсе...
Фреймворк The Composable Architecture
Combine с закрытым исходным кодом Apple скоро заменят в TCA на код async/await, сделав его фреймворком с поддержкой нескольких платформ и, возможно, с портированием на другие языки. Рассмотрим функционал, преимущества, последние разработки, применение и план освоения TCA.
Почему ИИ не лишит работы программистов
Искусственный интеллект - мощный инструмент, который уверенно набирает популярность в современном мире. Но сможет ли он в ближайшем будущем заменить человека? Оказывается, не все так просто. Сегодня поговорим о том, почему рано списывать программистов со счетов.
Создание снэкбара с обратным отсчетом времени в Android с помощью Jetpack Compose
Снэкбар - полезная функция в контексте современной веб-разработки. Она дает пользователю время подумать над принятием важного решения. Поговорим о том, как создать снэкбар, используя арсенал Jetpack Compose.
Как усилить электронные таблицы Google возможностями ChatGPT
Предлагаем улучшить электронные таблицы Google с помощью ChatGPT и начать работать с ними по-новому: более качественно, продуктивно и творчески.
Как вызвать из C# генерируемую на Rust библиотеку
Объединяем преимущества двух языков. Узнаем, как создать библиотеку на Rust, выполнить сборку и с помощью P/Invoke вызвать из C# ее функции.
Обработка событий по времени в бессерверной архитектуре
Бессерверность — мир событий
Когда-то в качестве серверов все размещали непрерывно запущенные демоны, но теперь мы вступаем в бессерверную эру, когда все запускается событиями.
Это очевидно, если...
Join-операции в MySQL — инструмент оптимизации поиска данных
Предлагаем руководство по использованию join-операций в MySQL для эффективного извлечения данных. Возможность join-операций извлекать общие данные из нескольких таблиц расширяет горизонты анализа данных, позволяя получать сведения, которые было бы сложно обнаружить в отдельных таблицах.
Язык R: прокачайте свои навыки до следующего уровня
Узнайте, как анализировать и ускорить код на R. Напишите эффективный код в своем следующем проекте, следуя этим рекомендациям.
Как Snowflake повышает эффективность dbt-моделей на Python
Исследуйте Snowflake - новейшую облачную платформу, позволяющую сделать более эффективным dbt-моделирование на языке Python. Сравните простоту, мощность и производительность dbt-моделей Python на Snowflake с настройками, необходимыми для запуска этих моделей на других платформах.
Навигация по ландшафту ИИ в 2024 году: тренды, прогнозы, возможности. Часть 1
2024-й обещает стать годом инноваций, когда ИИ и технологии объединятся, чтобы перекроить карты наших возможностей. Заглянем в ближайшее будущее нейронных сетей, векторных данных, экосистемы агентов ИИ, а также уникальных смарт-девайсов, меняющих наш образ жизни.
Проблема и решение: присвоение имени файлу
Проблема: стандартный изменяемый объект
Но сначала разберёмся: что такое изменяемый объект в Python? Изменяемые объекты — это такие объекты, которые можно поменять. Список, множество и словарь — всё это...
Создание динамического кластера ECS с помощью Terraform
Цель этой статьи предоставить вам наглядные примеры и инструкции по разработке динамического модуля ECS (Elastic Container Service) с помощью Terraform. При этом предполагается наличие...
Правила PRISM на языке Python
PRISM - простой, но конкурентоспособный алгоритм вывода правил методом индукции. Ознакомьтесь с его реализацией на языке Python и рассмотрите несколько практических примеров использования.
Сложные вопросы на собеседовании для тех, кто 7 лет работал с Java. Часть 2
Увеличьте свои шансы на успех, впечатлив потенциальных работодателей знаниями и навыками. Разберем некоторые вопросы с подробными объяснениями и примерами.
Диспетчеризация методов в Swift
Разберем особенности диспетчеризации методов и отличия статической от динамической: в какие случаях применяется одна, а в каких - другая? На интересном примере посмотрим, как оптимизировать ее производительность в компиляторе.
Ответы на распространенные вопросы о подписании приложений в Google Play
Приложения для Android имеют криптографическую подпись разработчика. С ее помощью менеджер пакетов на устройстве пользователя может проверить, что каждое обновление приложения происходит из одного...
От отправителя к получателю: подход Rust к локальной передаче файлов
Это руководство не только прольет свет на технические тонкости использования Rust для локального обмена файлами, но и позволит получить практические навыки. В процессе работы над Rust-проектом для локальной передачи файлов вы узнаете, как запрограммировать сервер и клиента, выполнить сериализацию данных, указать тип устройства, а также опробовать программу на нескольких устройствах.
Плохие модели машинного обучения? Но их можно откалибровать
Для правильного расчета вероятностей оракул не нужен. В чем разница между хорошими калибровкой и производительностью, и когда одна предпочтительнее другой?
Типы функций и функции высшего порядка на Go
Рассмотрим объекты первого класса, их влияние на производительность. Изучим варианты использования с примерами: обратные вызовы, анонимные функции, замыкания, композиция функций, обработка ошибок, тестирование.
Как создать и развернуть бота для Twitter при помощи Python, Tweepy и PythonAnywhere
Среда разработки
Для создания бота потребуется настроить нашу среду разработки и установить необходимые библиотеки и инструменты.Что нам понадобится:
Python 3virtualenv — среда разработкиRequests library — библиотека для удобной работы с...
Обучение Inception в Google распознаванию пользовательских изображений
Ищете краткое руководство по обучению классификатора пользовательских изображений? С помощью Inception API от Google Brain с этой задачей можно справиться быстрее, чем выпить чашку...
Основные методы оптимизации базы данных SQL
При разработке приложений часто возникают проблемы с индексированием данных, структурированием SQL-запросов, проектированием схем и т.д. Это руководство позволит значительно повысить эффективность БД: запросы и операции станут намного экономичнее и быстрее.
Альтернатива Java 8: что умеет VAVR
Обзор на крайне полезную Java-библиотеку: вкратце рассмотрим примеры ее функциональных возможностей и сравним с тем, что предоставляет Java 8 по умолчанию.
Объекты данных в Kotlin
Рассмотрим новый функционал Kotlin, который улучшает строковое представление object. Он особенно актуален, когда имеются иерархии запечатанных классов с другими классами данных, которые нужно занести в журнал или распечатать для отладки или аналитики.
20 основных вопросов для собеседования по Android
Без этих 20 вопросов не обходится ни одно собеседование по Android-разработке. Попробуйте ответить на них самостоятельно, заглядывая в готовые ответы лишь в случае затруднения.
Шаблон Sidecar-контейнера с Kubernetes и Go
Рассмотрим шаблон Sidecar, создадим две службы Go и выполним контейнеризацию, а затем развернем на Kubernetes. Отправим HTTP-запрос и отследим его перенаправление из Sidecar-контейнера в основной.
Что нового в системной трассировке Android Studio
В Android Studio 4.0 мы пересмотрели UI профилировщика (Profiler), чтобы обеспечить более интуитивно понятный рабочий процесс записи работы ЦПУ. Мы продолжали вносить улучшения, основываясь...
Создание CLI в Rust для исполнения гитарных аккордов
Пошаговое руководство по созданию инструмента командной строки Rust, который выводит схему аккордов на гитарном грифе.
6 шагов для старта в машинном обучении в 2025 году
Все, что вам нужно для изучения машинного обучения в 2025 году, - ноутбук и дорожная карта, которую вы должны выполнить. Помимо 5 очевидных шагов - изучения Python, математики, машинного обучения, глубокого обучения, разработки проектов - вас ждет бонусный лайфхак, который и поможет найти желанную работу.
Почему стоит использовать GoFr для разработки Golang-бэкенда?
Разрабатываете микросервисы? Тогда вам обязательно нужно освоить GoFr. С этим фреймворком ваша работа станет намного проще и эффективней. Как надежный эксперт, он будет руководить каждым вашим шагом, обеспечив исключительную производительность.
K8s: топология подов
Как равномерно распределять поды по кластеру для эффективного использования его ресурсов и высокой доступности? Изучим мультиузловое/-зональное/-региональное распределение подов в его топологии.
Топ-6 инструментов и фреймворков для искусственного интеллекта
Инженеру искусственного интеллекта требуется множество навыков. Один из них - знание инструментов и фреймворков, используемых в области ИИ. Предлагаем ознакомиться с самыми популярными и значимыми из них.
Вся правда об использовании навигационной библиотеки Jetpack в модульных проектах
Jetpack - популярный инструмент современного разработчика. Но так ли удобна эта библиотека для модульных проектов?
Сможет ли Julia занять место рядом с Python
Julia и Python —языки программирования, которыми я очень дорожу. Использование Julia вместо Python обладает множеством преимуществ, таких как меньшее время написания кода и более...
PurePWA — радикальный поворот в веб-разработке
Все еще находитесь в плену у выбранного раз и навсегда фреймворка? Пересмотрите свой подход и почувствуйте первозданную силу чистых веб-стандартов.
Как работает шлюз API на Golang: на примере одного симпатичного платья
Совместим просмотр красивых платьев в веб-магазинах и заодно разберем принцип работы шлюза API на Golang!
Краткое руководство по строкам и регулярным выражениям в R
Учимся управлять строками максимально эффективно - осваиваем наиболее актуальные функции, а также метасимволы для регулярных выражений.
20 основных вопросов для собеседования по Android
Без этих 20 вопросов не обходится ни одно собеседование по Android-разработке. Попробуйте ответить на них самостоятельно, заглядывая в готовые ответы лишь в случае затруднения.







































































































