Вся правда об использовании навигационной библиотеки Jetpack в модульных проектах
Jetpack - популярный инструмент современного разработчика. Но так ли удобна эта библиотека для модульных проектов?
Основы Android-разработки в Revolut
Хотите заглянуть за кулисы онлайн-банка Revolut? Сотрудники компании рассказали о том, как устроены ее команды и рабочие процессы.
Производительность в Jetpack Compose: стабильность и неизменяемость
Jetpack Compose - мощный набор инструментов для создания современных мобильных приложений. Рассмотрим особенности его работы с пропускаемыми и перезапускаемыми функциями, а также фактор стабильности и его роль в рекомпозиции.
Не заблудитесь при работе с кластерами Kafka — возьмите компас
Представляем инструмент мониторинга кластеров KafkaCompass. Рассмотрим функционал этого приложения - со слов его разработчиков.
Как преобразовать сгенерированные ИИ изображения в полигональные сетки
Поделимся практическим опытом создания полигональных сеток из сгенерированных ИИ изображений с помощью современных методов машинного обучения.
Стековая и кучная память в Kotlin
Хотите максимально эффективно управлять памятью в Kotlin? Тогда выясните, чем различаются стековая и кучная память. Разобраться в этом непростом вопросе помогут простые аналогии и примеры кода.
7 малоизвестных, но полезных библиотек Python
Эти библиотеки отлично справятся с вашими повседневными задачами. Они помогут оживить вывод консоли, сгенерировать фиктивные данные, выполнить стилизацию в духе ASCII-арта, упростить работу с датами и изображениями, облегчить обработку NLP, спланировать время выполнения функций.
25 основных вопросов для собеседования с Android-разработчиком. Часть 2
Техническое собеседование - важная часть найма разработчика Android-приложения. Продолжаем рассматривать частые вопросы на собеседованиях по Android-разработке.
Продвинутые концепции Kafka для старшего инженера-программиста
Рассмотрим важный функционал: репликацию, избыточность данных, гарантии доставки, разбиение на разделы, управление смещениями, операции контроллера, эволюцию схем. Изучим расширенное применение Kafka, политики сжатия и хранения сообщений, сценарии Kafka Streams, безопасность и соответствие требованиям, мониторинг и наблюдаемость.
Шаблон «запрос-ответ» в RabbitMQ: подход на основе EventListener в Node.js
Поиск нестандартных инженерных решений - всегда захватывающий процесс. Предлагаем ознакомиться с одним из таких решений, позволивших модифицировать стандартную реализацию шаблона "запроса-ответ" так, чтобы она соответствовала конкретному случаю использования.
Как создать CSV-файл с помощью C++
На примерах разберем разные подходы, дадим рекомендации по повышению производительности. Рассмотрим реальный сценарий и типичные ошибки.
В чем разница между ListView и RecyclerView?
Как Android-разработчик, вы наверняка стоите перед выбором: RecyclerView или ListView? Настало время выяснить, когда стоит использовать каждый из этих виджетов. Правильный выбор позволит вам обеспечить идеальный пользовательский опыт.
Использование LLM в реальном мире
Как настроить большую языковую модель? Как составить промпт, чтобы получить приемлемый результат от ИИ? Как минимизировать количество токенов для снижения затрат? Предлагаем отправиться в увлекательное путешествие в мир ИИ и найти ответы на все эти вопросы.
Тестирование уровня данных в Android Room с помощью Rxjava, LiveData и сопрограмм Kotlin
В чем смысл начинать тестирование с уровня данных?
Выбор архитектуры, будь то MVVM, MVP, MVC или MV, по минимуму затрагивает уровень данных. Во время архитектурных миграций...
Рост производительности машинного обучения с Rust. Часть 2
Дополняем ML-фреймворк полносвязных сетей на Rust определением и обучением сверточных нейросетей. За счет чего и насколько сократилось время обучения модели здесь?
C++: практическое руководство по priority_queue
На примерах покажем, как создаeтся приоритизированная очередь, применяются пользовательские типы, обходятся ограничения. Рассмотрим реальный сценарий.
Повторное использование UI в Android - 5 главных ошибок
За последние пару месяцев у меня была возможность пересмотреть кое-какие реальные интерфейсы Groupon с целью вывести качество таких интерфейсов на новый уровень. Мы начали...
Автоматическое масштабирование CI с помощью Kraken CI
Kraken CI — это современная локальная система CI/CD с открытым исходным кодом, которая обладает высокой масштабируемостью и ориентирована на тестирование. Kraken CI имеет лицензию Apache 2.0....
Java: оператор try-with-resources
Изучим синтаксис try-with-resources, его преимущества по сравнению с традиционными блоками try-finally и нюансы управления ресурсами. Приведем практические примеры.
Как тестировать приложения Gofr?
Разработка через тестирование. Как применяется этот подход? Напишем тесты для уровня хранения и обработчика.
Стратегии Async/Await и MainActor
Разберемся, где и как обновлять основной поток. Изучим код SIL, генерируемый разными механизмами, их эффективность, размер кода и связанные с этим последствия. Какой подход проще, эффективнее, где меньше кода и побочных эффектов?
Pandas: взгляд изнутри
Рассмотрим структуру данных Pandas: массивы, блоки, BlockManager. Познакомимся с понятием консолидированного датафрейма.
Тренды в сфере графического дизайна в 2024 году
Подробно рассмотрим ожидаемые в 2024 году тренды в сфере графического дизайна, а также тенденции, которые будут набирать популярность в предстоящем году.
Как последовательно писать аналитические SQL-запросы за 8 шагов
Сразу никогда не бывает очевидно, как перейти от простого SQL-запроса к сложному, особенно если запрос содержит сложные вычисления. Одна из «опасностей» SQL заключается в том, что можно создать исполнимый запрос, но вернуть неверные данные. Например, легко увеличить значение вычисляемого поля, объединив его с несколькими строками. Автор материала показывает, как строить SQL последовательно, чтобы сократить количество ошибок.
Изучаем AndroidManifest.xml: <service> как подэлемент <application>
Чтобы сервисы приложения обнаруживались и запускались системой, они должны быть представлены в файле AndroidManifest.xml элементом . Разберем ключевые атрибуты элемента и посмотрим на примерах, как они работают.
Новости об Android
Обновления для Android 11
Мы все еще находимся на стадии предварительного обзора для разработчиков Android 11.
Developer Preview 4
Превью-релиз был выпущен пару недель назад. О Developer Preview 4...
Быстрое перенаправление в приложение с AutoVerify
Сайты с множественной переадресацией и поддержкой диплинков
Представьте, что у вас есть сайт, к примеру, https://www.yoursite.com. Когда пользователь кликает по ссылке http://www.yoursite.com, где нет s...
Как создать локальное средство генерации кода с open source моделями и библиотекой Guidance от...
Научимся писать подсказки для генерации кода. «Вручную» воссоздадим строку документации для большой языковой модели в VSCode.
Краткое руководство по строкам и регулярным выражениям в R
Учимся управлять строками максимально эффективно - осваиваем наиболее актуальные функции, а также метасимволы для регулярных выражений.
Angular и Wiz: вместе лучше
В Google решили объединить Angular и Wiz. Как ожидается, это приведет к улучшению обоих веб-фреймворков: Angular извлечет выгоду из производительности Wiz, а Wiz будет полезен опыт Angular-разработчиков. Рассказываем подробности.
5 реальных способов достичь сбалансированности трудовой жизни
Вы руководитель инженерного отдела, желающий достичь баланса между работой и отдыхом? Следуйте этим 5 практическим советам, основанным не на стереотипах, а на реальном опыте. Они помогут привести команду к успеху без ущерба для здоровья.
Оптимизация кода задачи на миллиард строк — ускоряем запуск в 87 раз
Поэтапно увеличим производительность реализации парсера для огромного файла. Устраним копии и баги, воспользуемся профилировщиком, хеш-картой линейного зондирования, микрооптимизациями, распараллелим код.
Совместное использование кода в приложениях React и React Native
Хотите существенно сократить свои усилия и улучшить пользовательский опыт? Воспользуйтесь руководством по совместному использованию в веб- и мобильных приложениях общих элементов кода и дизайна в качестве зависимостей.
Как работает внедрение зависимостей в Angular
Предлагаем изучить механику внедрения зависимостей в Angular. Узнайте, как определить зависимость, как ее импортировать и как Angular разрешает конфликты зависимостей.
5 навыков работы в Python на прокачку
Изучим основные концепции и приемы программирования на Python. В каждой теме - от обработки исключений до виртуальных сред для изолирования проектов - рассмотрим практические рекомендации по написанию чистого, эффективного кода.
Программирование на Java. Глубокое погружение в ключевой функционал Java 21
Разберем новый LTS-выпуск: детализацию, проверку типов, решаемые с помощью записей проблемы, запечатанные классы/интерфейсы и подробнее - сопоставление с образцом. Чем обусловлены актуальность и популярность, каковы факторы значимости Java?
Встроенная поддержка контейнеров для .NET 7 — контейнеризация приложений .NET без Dockerfile
Рассмотрим стандартный подход Dockerfile для приложений .NET 6 и функционал нового SDK-пакета с настройками и параметрами для целей локальной разработки. Сделаем рабочий процесс GitHub Action для создания приложения, сборки образа Docker и отправки на DockerHub.
Приложение React Native с поддержкой Apple Watch и виджетов
Хотите достичь новых горизонтов в разработке на React Native? Сегодня поговорим о том, как интегрировать приложение Apple watchOS с приложением на React Native, а также создадим виджет, который можно установить в циферблате часов в качестве дополнительной функции.
Руководство по устранению неполадок в Kubernetes
Изучим передовые практики, инструменты, команды, методы отладки, рекомендации с примерами. Рассмотрим продвинутые методы: инструментирование трассировок, удаленную отладку.
Развертывание Cloud Functions в GCP с помощью Terraform
Как это: создавать инфраструктуру и управлять ей через конфигурационные файлы? Напишем и запустим простую Cloud Function, подробно разберем конфигурационные файлы среды развертывания со всеми объявлениями и определениями и узнаем, как применять изменения к реальной инфраструктуре.
Как перевести код R в Python с помощью ChatGPT
Научимся переводить код с языка программирования R на Python и наоборот. Для этой цели воспользуемся возможностями ChatGPT и на примерах рассмотрим принцип действия.
Как автоанализ кода с помощью ИИ повышает безопасность приложений
Инженеры по безопасности приложений напоминают канатоходцев. Им постоянно приходится балансировать: быть универсальными специалистами по всему спектру приложений и экспертами по ряду флагманских приложений. Узнайте о том, как ИИ способен помочь в этой непростой ситуации.
Android 14: обновления в области конфиденциальности и безопасности
Узнайте о новых функциях Android 14, чтобы обновить свои приложения в соответствии с ними. Это поможет обеспечить безопасность приложений и соблюдение конфиденциальности пользователей.
Поддержка новых форм-факторов с помощью новой библиотеки Jetpack WindowManager
WindowManager — это недавнее дополнение к Android Jetpack, которое призвано помочь разработчикам приложений поддерживать новые форм-факторы устройств и обеспечить общее API для различных функций Window Manager...
Освоение различных видов линий в Jetpack Compose с помощью PathEffect
Устали от однообразных линий в Jetpack Compose? Вы не одиноки! Сегодня поговорим о том, как создавать различные стили линий и фигур в рамках Jetpack Compose и использовать их на практике.
C++: практическое руководство по инициализированию вектора размером
Изучим способы инициализации - от простых до самых сложных вроде пользовательских типов и многомерных структур. Разберем их нюансы и типичные ошибки, проиллюстрируем примерами и поможем выбрать оптимальный способ.
Почему гейм-дизайнеру нужно программирование
Программисту не обязательно быть гейм-дизайнером, но каждый гейм-дизайнер должен быть программистом. Узнайте о том, почему навык написания кода жизненно важен в разработке игр и как им овладеть.
Принципы SOLID на Go
Изучим эффективное применение пяти принципов сквозь призму системы платежей. Проиллюстрируем примерами хорошего и плохого кода.
Как участие в открытых проектах помогает найти работу?
Мечтаете о карьере разработчика ПО, но не знаете, как выгодно выделиться на фоне конкурентов? Узнайте о преимуществах участия в таких мероприятиях, как Hacktoberfest, и внесении вклада в такие открытые проекты, как Taipy, Composio, CopilotKit и ToolJet.
Расшифровка собеседования разработчика в Cisco 2024: Java, Spring Boot, Hibernate
Разберем полную запись технической части для продвинутых. Все это актуальные вопросы и ответы для желающих работать в Cisco Systems.
Вопросы на собеседованиях для опытных профессионалов Java в 2024 году
Рассмотрим применение интерфейсов в разных целях и сценариях. Поопределяем временную сложность, изучим практическое назначение агрегации, композиции и наследования, утечку кода и другие проблемы Java.
SQL в браузере — веб-оболочка DuckDB для анализа локальных данных
Как анализировать данные намного проще и полнофункциональнее, чем в Excel? Сделаем локальный файл доступным для SQL-операций с DuckDB, преобразуем в реальную таблицу, доберемся до файлов на GitHub и S3.
История путешествий вместе с Plotly Express
Составим интерактивную карту путешествий с Python, pandas и Plotly Express. Процесс настолько же увлекательный, как и сами путешествия!
Реализация подсказок с помощью Modifier в Jetpack Compose
Занимаетесь проектированием интуитивно понятных интерфейсов? Тогда вам не обойтись без подсказок, особенно необходимых при обновлении приложения. Предлагаем упрощенную версию реализации подсказок с использованием Modifier — компонента библиотеки Jetpack Compose.
Освоение широковещательных приемников в Android
Широковещательные приемники - важный компонент разработки Android. Чтобы использовать их потенциал правильно, узнайте об их основных функциях и областях применения.
10 советов по созданию чистого кода для мобильной разработки на Kotlin в 2024 году
Умением писать чистый код должен обладать каждый программист. Разберем 10 полезных рекомендаций по созданию четкого и понятного кода, который легко сопровождать и отлаживать.
Netlas — полноценный инструмент интернет-разведки
Ищете эффективные средства управление рисками информационной безопасности? С Netlas - инструментом интернет-разведки - потребуется всего несколько минут, чтобы создать область видимости любого целевого объекта и досконально исследовать ее.
Класс данных в Kotlin
Что такое «класс данных» и чем он отличается от обычного класса? Какие проблемы решаются в Kotlin с помощью классов данных? Рассмотрим классы данных и разберемся, почему их используют вместо обычных классов.
Зачем нужен AutoGPT
AutoGPT - очередное пополнение в семействе алгоритмов GPT (Generative Pre-trained Transformers), позволяющих на основе алгоритмов ИИ создавать текст, изображения и видео. А что же еще может делать AutoGPT?
Реализация цифрового конверта в iOS
Добро пожаловать в увлекательный мир криптографии! Познакомимся с технологией гибридного шифрования и научимся безопасно передавать конфиденциальные данные через REST API в Swift.
C++: руководство по считыванию CSV-файлов
Изучим разные подходы: от стандартных библиотек C++ для простых файлов до реализации пользовательской логики парсинга или привлечения сторонних библиотек для сценариев посложнее. Проиллюстрируем кодом и разберем нюансы.
Топ-10 типичных ошибок при реализации паттерна MVVM в Android
Вы наверняка совершали эти ошибки при реализации паттерна Model-View-ViewModel в Android. Предлагаем на практических примерах разобраться в их причинах и рассмотреть способы их исправления. Это позволит значительно повысить сопровождаемость, тестируемость и общее качество Android-приложений.
Загрузочные представления в SwiftUI
Загрузочные представления являются одним из типичных компонентов приложения, и в этой статье вы научитесь грамотно их создавать и использовать с возможностью кастомизации.
Модульные тесты на Golang: от стандартного Testing до Testify
Напишем тесты для проверки работы функций. Посмотрим, как совершенствуются тестовые сценарии с Testify.
Подробно о технологии «Издатель-подписчик» Redis
Подробно изучим эту модель и даже доберемся до уровня блоков памяти. Раскроем делали реализации и нюансы, сценарии применения.
Как вернуть контроль над состоянием данных с RemoteResult
Построим на основе Result универсальный способ обозначать состояния ресурса, чтобы из представлений SwiftUI реагировать на его изменения. Рассмотрим реальное применение этого перечисления и адаптируем его для архитектуры TCA.
Взгляд в будущее: перспективы развития и влияния ИИ на изобразительное искусство и повседневную жизнь
Сначала погрузимся в историю изобразительного искусства, а потом вернемся в современную эпоху, которую автор статьи называет Ренессансом искусственного интеллекта. Откроем горизонты будущего и спрогнозируем основные тенденции развития ИИ в искусстве и его влияние на повседневную жизнь.
10 рекомендаций, которые повысят производительность разработки на Flutter в 2023 году
Flutter предлагает множество функций и инструментов, которые могут значительно повысить производительность при разработке мобильных приложений. Предлагаем подробное руководство по использованию этих возможностей.
Как создать пользовательскую поисковую панель SwiftUI с LazyVStack
Решаем практическую задачу по созданию инструмента для выбора кода страны - реализуем пользовательскую поисковую панель LazyVStack, содержащую данные с разделами и их индексами.
Какую архитектуру выбрать — с единой или множеством Activity?
Обе архитектуры - как с единой, так и со множеством Activity - находят свое место в Android-разработке. Изучаем плюсы и минусы каждого подхода, а также их случаи использования.
Ознакомление с Work Manager в Android
Work Manager - это компонент Android Jetpack, который помогает выполнять задачи как можно быстрее и в наиболее подходящее время. Ознакомьтесь с его базовыми и продвинутыми возможностями, а также лучшими практиками использования.
Удаление последнего символа строки на C++: методы и их применение
Сравним эффективность pop_back(), resize(), erase() и substr(), разберем их нюансы, проиллюстрируем примерами. Рассмотрим реальный сценарий и типичные ошибки, поможем выбрать оптимальный метод
Как Nginx справляется с тысячами конкурентных запросов
Изучим безблокировочную архитектуру Nginx. Из каких компонентов она состоит и почему этот событийный подход быстрее?
5 крутых приемов, которые улучшат работу на R
R — отличный язык, который используется для обработки данных и работы с ними. Рассмотрим пять крутых приемов работы на R, которые просто необходимо знать....
Вопросы для собеседования iOS — Swift. Часть 1
Рассмотрим самый важный и частый вопрос - шаблон делегирования. А также проверки времени выполнения, соответствие NSObject классу Swift, протоколы.
Разветвление на различные очереди SQS с помощью фильтрации сообщений SNS
SNS и SQS — сервисы AWS, которые часто находят применение в событийно-управляемой архитектуре. Сочетание этих сервисов дает возможность отправлять сообщения по разным каналам. Часто...
Как создать компонент Toast в SwiftUI
Расскажем, как, не напрягаясь, создать интересный компонент Toast в SwiftUI. Присоединяйтесь - скучно не будет!
Что такое закрепление сертификата в Android
Закрепление или выбор сертификата - важный шаг при разработке приложений. Рассмотрим, какие бывают сертификаты, в чем заключаются особенности и как их лучше использовать.
Реактивное программирование с Combine
Увидим фреймворк в действии, шаг за шагом пройдя процесс настройки конвейера связываемых в цепочку операторов обработки значений, выдаваемых издателями для подписчиков. Подробно разберем пример и попробуем реализовать в проекте.
Эволюция кортежей в C#
Углубимся в изучение кортежей в C#. Посмотрим, как они совершенствовались от версии к версии и обрастали новыми эффективными возможностями.
Изучаем Rust. Потоковая передача tar-архива
Сделаем подробную реализацию асинхронного потока с нетривиальным конечным автоматом, проверим в консоли создание tar-архива, полностью распознаваемого в API среды выполнения Docker. Выполним идеальную интеграцию результата в процесс загрузки файлов.
Новичкам на заметку: реализация шаблона Singleton в Ruby
Обучающее руководство по шаблону проектирования Singleton в Ruby: дадим определение, рассмотрим примеры, расскажем о преимуществах и недостатках.
Плохого кода не существует!
Немного размышлений на тему плохого кода, приправленных перчинкой юмора.
Важные вопросы для собеседования по корутинам для опытных разработчиков Android
Рассмотрим преимущества корутин, создание и запуск, отличия от потоков, управление областью, приостанавливающие функции, обработка исключений, контекст и диспетчеры. Пошагово разберем выполнение фоновых задач, лучшие практики отмены корутин.
Байт-код JVM: манипулирование и инструментация
Манипулирование байт-кодом JVM и его инструментация - техники, позволяющие максимально оптимизировать Java-приложения и входящие в арсенал каждого продвинутого разработчика. Узнайте о широких возможностях этих техник, сложностях их применения и лучших практиках.
Реализация gRPC и PostgreSQL на GO
Пошагово создадим масштабируемое серверное приложение: подключим модульные тесты, контейнеризируем приложение и задействуем Envoy как прокси-службу взаимодействия. В итоге спроектируем, выполним оценку, запустим и протестируем его.
Как использовать управляемые Gradle устройства с собственными девайсами
Реализуем абстракцию Device с устройствами и эмуляторами. Используем собственную ферму устройств для удаленного запуска тестов и распараллеливания выполнения на нескольких устройствах.
Внедрение зависимостей для создания элегантных горизонтальных архитектур
Как не попасть в ловушку вертикальных архитектур? Рассмотрим преимущества горизонтальной структуры с внедрением зависимостей и построим такую.
Модульное тестирование для долговечного кода
Как вместо постоянной отладки сфокусироваться на создании функционала? Написать тесты! Дадим рекомендации по написанию эффективных модульных тестов.
Рекомендации по Go: выделение памяти с new
Разберем нюансы функции new на примерах. Для каких целей и типов она используется, как ею упрощается инициализация?
Модульное тестирование с помощью JUnit в Android
Тестирование — неотъемлемая часть полноценной разработки программного обеспечения. Сегодня рассмотрим фреймворк JUnit, а также функции и правила, которые помогут провести тесты Android-продукта на достойном уровне.
Создание приложения ChatGPT в SwiftUI
Предлагаем руководство по разработке в SwiftUI приложения ИИ, подобного ChatGPT. Настроив поведение своего чат-бота с помощью системных сообщений, вы сможете создать нечто оригинальное.
Создание анимированной пузырьковой диаграммы Ханса Рослинга на языке R
Статистические выкладки выглядят привлекательней при добавлении анимации. Сегодня мы убедимся в этом, воссоздав пузырьковую диаграмму Рослинга средствами языка R.
15 бизнес-идей агентов на основе ИИ в 2025 году
Агенты на базе ИИ открывают невероятные возможности перед предпринимателями. Они помогают достичь успехов в самых различных бизнес-сферах - будь то автоматизация поддержки клиентов, оптимизация продаж или разработка инновационных SaaS-решений. Не упустите и вы свой шанс извлечь выгоду с помощью ИИ в 2025 году!
Разработка отказоустойчивых микросервисов с шаблонами «Повтор» и «Выключатель»
Разберем, как преодолеваются трудности распределенных систем. Рассмотрим практический сценарий комбинирования шаблонов, дадим рекомендации по их реализации.
12 проверенных способов оформления продакшн-кода на Python
Возьмите на заметку 12 способов оформления продакшн-кода, повышающих его удобочитаемость и производительность. Они выручат вас во многих случаях, включая распаковку кортежа, списковое выражение, объединение строк, создание цепочки методов, индексирование вложенных словарей.
Реализация параллакс-карусели из SwiftUI в Jetpack Compose
Можно ли перевести захватывающую параллакс-карусель с SwiftUI на Jetpack Compose? Следуя предложенному руководству, вы успешно осуществите эту идею, убедившись в гибкости и функциональных возможностях Jetpack Compose.
Как Ktlint облегчает жизнь разработчикам
Узнайте о фантастических возможностях Ktlint и о том, как внедрить его в проект. Этот инструмент, выполняющий статический анализ и автоматическое форматирование кода, позволит сэкономить массу времени и трудозатрат.
Настройка Detekt с помощью каталога версий и convention-плагина
Не упустите возможность поднять свою Android-разработку на новый уровень. Эти знания и инструменты помогут повысить качество кода и сделать Android-приложение надежным и поддерживаемым.
C++: подробное руководство по разыменованию указателя
Разберем нюансы и ошибки разыменования. Проиллюстрируем примерами и реальным сценарием. Сравним эффективность прямого доступа к массиву и разыменования указателя.
Гениально или глупо? Самая неоднозначная нейросеть
Некоторые считают нейронную сеть экстремального обучения (ELM) одной из самых удачных нейросетей — изучению её архитектуры даже посвящена отдельная конференция. Сторонники ELM утверждают, что для выполнения...
Теория графов в кратком и практичном изложении
Графы являются очень полезной в программировании структурой, поскольку зачастую задачи компьютерной науки можно представить в виде графа и решить с помощью одной из его...
От ‘R против Python’ к ‘R и Python’
Сосредоточьтесь на навыках, а не на инструментах
Для тех, кто разбирается в Data Science, R и Python — это первые два ЯП, которые приходят на ум. Оба...
Раскройте потенциал VS Code для программирования на Ruby
Рассмотрим расширения и библиотеки для повышения продуктивности при работе с кодом на Ruby. Настроим альтернативную RubyMine, бесплатную среду разработки.
Пользовательские структурные директивы в Angular
Что такое структурные директивы?
Структурные директивы в Angular отвечают за манипулирование элементами, их изменение и удаление внутри шаблона компонента. Структурная директива применяется к основному элементу,...








































































































