Сфера разработки программного обеспечения продолжает развиваться в геометрической прогрессии, движимая технологическими инновациями и меняющимися потребностями рынка. И для бизнеса, и для разработчиков быть в курсе этих тенденций не просто выгодно — это важно для того, чтобы оставаться конкурентоспособными. В этой статье мы исследуем ключевые тенденции, которые, как ожидается, окажут значительное влияние на сферу разработки в 2024 году.
Переводчик, редактор
Микросервисы и RabbitMQ в Docker
Микросервисная архитектура предполагает декомпозицию монолитного приложения на несколько полностью независимо развёртываемых и масштабируемых сервисов. За пределами этого базового определения, то, что представляет собой микросервис, может быть несколько субъективным. Хотя есть несколько проверенных в бою практик, принятых такими гигантами, как Netflix и Uber, которые всегда следует принимать во внимание. И я расскажу о некоторых из них.
Как создать YouTube GIF Maker с использованием Next.js, Node и RabbitMQ
В этом руководстве мы рассмотрим разработку веб-приложения по созданию GIF-файлов из видеороликов.
Функциональные возможности приложения:
- Создание GIF из видео на YouTube с определённым временным диапазоном.
- Предварительный просмотр результата перед выполнением фактической конвертации.
Компоненты системы:
- Клиентская часть на React (Next.js)
- Бэкенд-сервер на Node
- Node как Service Worker
- В качестве брокера сообщений — RabbitMQ
- Для хранения данных — MongoDB
- Для хранения медиафайлов — Google Cloud Storage
Полный код проекта можно найти на github, а по этой ссылке посмотреть демо-версию приложения.
Когнитивные искажения, о которых стоит помнить
Из-за когнитивных искажений мы иногда принимаем иррациональные решения, а также выносим суждения на основе информации, которую мы обрабатываем. Фактически, когнитивные искажения — это запрограммированная ошибка в нашем мозге.
Также их можно представить как простые правила, которым следует мозг, чтобы обрабатывать поступающую информацию с минимальными затратами.
Когнитивных искажений существует большое множество, и о них полезно знать. В этой статье мы сделаем обзор 151 искажения, которые часто встречаются в повседневной жизни: как в личной, так и в профессиональной.
Защищено ли ваше программное обеспечение?
В нашем мире, где каждый релиз готовится в спешке, а сами релизы выходят на регулярной основе, что вы делаете, чтобы защитить своё программное обеспечение? Что вы можете сделать, какие вообще есть варианты?
С точки зрения того, что именно представляет собой CI/CD: непрерывная интеграция программного обеспечения — это процесс, целью которого является максимально проверенный дистрибутив.
Хотя характеристику «максимально проверенный» можно интерпретировать по-разному, я полагаю, что это сводится к использованию такого количества тестов, которое позволяет бюджет, а бюджет — это деньги и время.
Если есть тест, который добавит вам уверенности и который вы можете себе позволить — он должен стать частью вашей стратегии.
Обзор продуктивности разработчиков от McKinsey
Не так давно компания McKinsey опубликовала статью, в которой утверждалось, что они могут измерить продуктивность разработчиков. Этот текст вызвал определённый резонанс, но я не видел, чтобы кто-то подробно комментировал содержание. Я решил, что это будет полезно сделать.
Я буду писать так, как будто авторы обратились ко мне за технической рецензией на свою статью. Можете считать это открытым письмом.
15 самых востребованных ИТ-сертификаций в 2024 году
Хотите сделать шаг вперед в карьере в сфере ИТ? В этой статье представлен обзор самых ценных ИТ-сертификаций, которые помогут увеличить зарплату в 2024 году.
Знакомство с Jest Mocks
Мокинг — это техника изоляции объектов тестирования путем замены зависимостей объектами, которые можно проверять и контролировать. Зависимостью может быть всё, от чего зависит объект, но обычно это модуль, который объект импортирует.
Как будет регулироваться искусственный интеллект в 2024 году?
В наступившем году вступят в силу первые масштабные законы об искусственном интеллекте, а также будут предприняты глобальные усилия по привлечению технологических компаний к ответственности.
Как мы сократили время тестирования на 70% благодаря переходу с Cypress на Playwright
«Remove
.only
from Cypress test» — знаком ли вам такой комментарий к коммиту? Если вы используете Cypress для сквозного тестирования, то вы знаете, о чем я говорю.Мы создали обширный набор из более чем 200 тест-кейсов с помощью Cypress. Хотя Cypress является мощным инструментом, мы в какой-то момент заинтересовались Playwright. Playwright — это быстро развивающийся фреймворк с открытым исходным кодом, разработанный Microsoft. Обещания повысить скорость, унифицировать синтаксис и обеспечить кроссбраузерную поддержку серьезно заинтересовали нас, и мы решили попробовать.
В этой статье мы расскажем, почему и как мы перешли с Cypress на Playwright. Вы узнаете о ключевых преимуществах Playwright и о том, как мы справились с переходом.
Продвинутые техники извлечения данных для достижения максимальной производительности
Cегодня мы поговорим на тему оптимизации производительности для масштабируемых систем.
В современной постоянно развивающейся цифровой среде необходимо держать фокус внимания не только на функциональности программных систем — нужно создавать системы, способные беспроблемно и эффективно масштабироваться при значительных нагрузках. Однако, как могут подтвердить многие опытные разработчики и архитекторы, масштабируемость несет в себе уникальный набор сложных проблем. Даже незаметные на первый взгляд неэффективные моменты, будучи многократно умноженными, способны нарушить работу систем.
В этой статье мы рассмотрим хорошо зарекомендовавшие себя стратегии, которые можно легко интегрировать в кодовые базы, независимо от того, находятся ли они во фронтенде или бэкенде, и независимо от используемого языка программирования. Эти стратегии выходят за рамки теоретических предположений; они были тщательно протестированы и проверены в самых требовательных технологических средах по всему миру.
Сообщаются ли ваши тесты?
Чтобы быстро продвигаться в рабочих задачах, необходимо иметь уверенность в том, что можно вносить изменения. А уверенность в изменениях зависит от тестового покрытия.
С тех пор как мы это поняли, автоматические тесты стали просто необходимы. Это привело к массовому внедрению шаблонов для старта работы. Однако просто начать работу недостаточно.
Переменные окружения в Node.js: полное руководство
В этой статье мы рассмотрим переменные окружения (environment variables) в NodeJs с примерами. По сути, это пары ключ-значение набора данных, которые хранятся на уровне операционной системы. Они важны, поскольку отвечают за: разделение проблем, безопасность, переносимость, масштабируемость, совместимость, интероперабельность.
Как создать приложение для чата в реальном времени с помощью React, Node, Socket.io и HarperDB
Статья посвящена созданию приложения для чата в реальном времени с чат-комнатами, с использованием Socket.io и HarperDB. Научимся на практике создавать полнофункциональные приложения, в которых бэкэнд может взаимодействовать с фронтендом в реальном времени. Руководство будет особенно полезно для начинающих веб-разработчиков.
Гексагональная архитектура со Spring Boot
Гексагональная архитектура стала популярным архитектурным паттерном, помогающим отделить бизнес-логику от инфраструктуры. Такое разделение позволяет откладывать принятие решений о технологиях или легко заменять их. Кроме того, это позволяет тестировать бизнес-логику в изоляции от внешних систем.
В этой статье мы рассмотрим, как реализовать гексагональную архитектуру в Spring Boot приложении. Мы разделим бизнес-логику и инфраструктуру на отдельные модули и посмотрим, как можно изолированно реализовать и протестировать эти модули.
Данная статья представляет собой практическое руководство и предполагает, что читатель имеет базовое представление о принципах, лежащих в основе гексагональной архитектуры.
Какой монорепозиторий сейчас подходит для Node.js BACKEND?
На рынке монорепозиториев сейчас жара. Расцвет новых инструментов приводит многих в замешательство — что выбрать для следующего проекта? На что обратить внимание при выборе инструмента монорепо? В этой заметке мы постараемся разобраться в этом информационном перегрузе: поговорим о новых инструментах, подчеркнем важное и поделимся рекомендациями.
Илья Суцкевер, главный научный сотрудник OpenAI, о своих надеждах и опасениях относительно будущего ИИ
Я пришел на встречу с Ильей Суцкевером, соучредителем и главным научным сотрудником OpenAI, в неприметное офисное здание компании на непримечательной улице в районе Мишн в Сан-Франциско. Мы поговорим о том, что будет дальше с перевернувшей мир технологией, к появлению которой он приложил немало усилий. Также я собираюсь расспросить Илью о его личных планах — в частности, почему создание следующего поколения флагманских генеративных моделей больше не является основным фокусом его работы.
Вместо создания следующего GPT или генератора изображений DALL-E, новая приоритетная задача Ильи — выяснить, как остановить искусственный сверхинтеллект (гипотетическую технологию будущего, которую он видит с прозорливостью истинно верующего) так, чтобы он не стал «мошенником».
Пишем чистые тесты на JavaScript с использованием принципов BASIC
Продакшен код может быть неидеальным, и это подразумевает риск или долг, которым команды управляют различными способами. Для кода тестов риск гораздо более значителен — они могут просто исчезнуть. Сотни часов кодирования и встреч могут просто пропасть.
Вы сталкивались с подобным?
В этой статье мы поговорим о том, как сократить время, затрачиваемое на решение проблемы сложности тестов — важной составляющей стратегии тестирования.
Почему хорошие разработчики пишут плохие юнит-тесты
Ура! Наконец-то вы написали столько строк кода, что можете позволить себе дом на берегу моря. Вы нанимаете лучшего архитектора, который уверяет, что у него появилась отличная идея по поводу вашего дома.
И вот вы приезжаете на торжественное открытие, и что вы видите? Ваш новый дом представляет собой внушительную пятиэтажную громадину из стали, бетона и стекла. Вы проходите через вращающиеся двери, и на роскошном мраморном полу остается песок. Внутри обнаруживаете стойку администратора, за которой находится лифт. Наверху — спальня и три гостевые комнаты в виде смежных офисных кабинок.
Часто разработчики программного обеспечения подходят к юнит-тестированию с подобным ошибочным мышлением. Они механически применяют все «правила» и лучшие практики, которые они усвоили из опыта написания продакшен кода, не проверяя, подходят ли они для написания тестов. В результате они строят небоскребы на пляже. О причинах этого явления и главное, как это изменить, в этой статье.
Чтобы ускорить работу Numba и кода NumPy, нужно понять, как работают процессоры
Если вам нужно ускорить обработку NumPy или просто сократить использование памяти, попробуйте компилятор Numba just-in-time. С его помощью можно писать код на языке Python, который во время выполнения компилируется в машинный код. Это позволяет получить прирост скорости, сопоставимый с приростом, который можно получить на C, Fortran или Rust.
По крайней мере, так считается в теории. На практике же код на Numba может быть не быстрее, чем эквивалент NumPy. Но если лучше понимать, как работают процессоры, можно добиться большего. Эти знания помогут более широко использовать любой компилируемый язык. В этой статье мы:
• Рассмотрим простую задачу обработки изображений.
• Попытаемся (поначалу безуспешно) ускорить ее с помощью Numba.
• Рассмотрим, почему современные процессоры такие быстрые, и каковы возможности компиляторов.
• Опираясь на полученные знания, скорректируем наш код так, чтобы он выполнялся в 25 раз быстрее по сравнению с первоначальной версией.