Pull to refresh
69
45.6
Ксения Мосеенкова @kmoseenk

Переводчик, редактор

Send message

15 тенденций в области разработки программного обеспечения в 2024 году

Level of difficultyEasy
Reading time13 min
Views10K

Сфера разработки программного обеспечения продолжает развиваться в геометрической прогрессии, движимая технологическими инновациями и меняющимися потребностями рынка. И для бизнеса, и для разработчиков быть в курсе этих тенденций не просто выгодно — это важно для того, чтобы оставаться конкурентоспособными. В этой статье мы исследуем ключевые тенденции, которые, как ожидается, окажут значительное влияние на сферу разработки в 2024 году.

Читать далее
Total votes 16: ↑13 and ↓3+13
Comments5

Микросервисы и RabbitMQ в Docker

Reading time12 min
Views16K

Микросервисная архитектура предполагает декомпозицию монолитного приложения на несколько полностью независимо развёртываемых и масштабируемых сервисов. За пределами этого базового определения, то, что представляет собой микросервис, может быть несколько субъективным. Хотя есть несколько проверенных в бою практик, принятых такими гигантами, как Netflix и Uber, которые всегда следует принимать во внимание. И я расскажу о некоторых из них. 

Читать далее
Total votes 15: ↑14 and ↓1+15
Comments15

Как создать YouTube GIF Maker с использованием Next.js, Node и RabbitMQ

Reading time28 min
Views3.3K

В этом руководстве мы рассмотрим разработку веб-приложения по созданию GIF-файлов из видеороликов.

Функциональные возможности приложения:
- Создание GIF из видео на YouTube с определённым временным диапазоном.
- Предварительный просмотр результата перед выполнением фактической конвертации.

Компоненты системы:
- Клиентская часть на React (Next.js)
- Бэкенд-сервер на Node
- Node как Service Worker
- В качестве брокера сообщений — RabbitMQ
- Для хранения данных — MongoDB
- Для хранения медиафайлов — Google Cloud Storage

Полный код проекта можно найти на github, а по этой ссылке посмотреть демо-версию приложения.

Читать далее
Total votes 14: ↑13 and ↓1+14
Comments0

Когнитивные искажения, о которых стоит помнить

Reading time15 min
Views87K

Из-за когнитивных искажений мы иногда принимаем иррациональные решения, а также выносим суждения на основе информации, которую мы обрабатываем. Фактически, когнитивные искажения — это запрограммированная ошибка в нашем мозге.

Также их можно представить как простые правила, которым следует мозг, чтобы обрабатывать поступающую информацию с минимальными затратами.

Когнитивных искажений существует большое множество, и о них полезно знать. В этой статье мы сделаем обзор 151 искажения, которые часто встречаются в повседневной жизни: как в личной, так и в профессиональной.

Читать далее
Total votes 84: ↑76 and ↓8+79
Comments36

Защищено ли ваше программное обеспечение?

Reading time10 min
Views1.3K

В нашем мире, где каждый релиз готовится в спешке, а сами релизы выходят на регулярной основе, что вы делаете, чтобы защитить своё программное обеспечение? Что вы можете сделать, какие вообще есть варианты?

С точки зрения того, что именно представляет собой CI/CD: непрерывная интеграция программного обеспечения — это процесс, целью которого является максимально проверенный дистрибутив.

Хотя характеристику «максимально проверенный» можно интерпретировать по-разному, я полагаю, что это сводится к использованию такого количества тестов, которое позволяет бюджет, а бюджет это деньги и время.

Если есть тест, который добавит вам уверенности и который вы можете себе позволить он должен стать частью вашей стратегии.

Читать далее
Total votes 13: ↑10 and ↓3+9
Comments0

Обзор продуктивности разработчиков от McKinsey

Reading time14 min
Views3.1K

Не так давно компания McKinsey опубликовала статью, в которой утверждалось, что они могут измерить продуктивность разработчиков. Этот текст вызвал определённый резонанс, но я не видел, чтобы кто-то подробно комментировал содержание. Я решил, что это будет полезно сделать.

Я буду писать так, как будто авторы обратились ко мне за технической рецензией на свою статью. Можете считать это открытым письмом.

Читать далее
Total votes 21: ↑17 and ↓4+17
Comments3

15 самых востребованных ИТ-сертификаций в 2024 году

Reading time10 min
Views13K

Хотите сделать шаг вперед в карьере в сфере ИТ? В этой статье представлен обзор самых ценных ИТ-сертификаций, которые помогут увеличить зарплату в 2024 году.

Читать далее
Total votes 15: ↑11 and ↓4+9
Comments7

Знакомство с Jest Mocks

Reading time6 min
Views4.5K


Мокинг — это техника изоляции объектов тестирования путем замены зависимостей объектами, которые можно проверять и контролировать. Зависимостью может быть всё, от чего зависит объект, но обычно это модуль, который объект импортирует.
Читать дальше →
Total votes 10: ↑9 and ↓1+12
Comments0

Как будет регулироваться искусственный интеллект в 2024 году?

Reading time8 min
Views2K


В наступившем году вступят в силу первые масштабные законы об искусственном интеллекте, а также будут предприняты глобальные усилия по привлечению технологических компаний к ответственности.
Читать дальше →
Total votes 11: ↑9 and ↓2+9
Comments1

Как мы сократили время тестирования на 70% благодаря переходу с Cypress на Playwright

Reading time6 min
Views4.6K


«Remove .only from Cypress test» — знаком ли вам такой комментарий к коммиту? Если вы используете Cypress для сквозного тестирования, то вы знаете, о чем я говорю.

Мы создали обширный набор из более чем 200 тест-кейсов с помощью Cypress. Хотя Cypress является мощным инструментом, мы в какой-то момент заинтересовались Playwright. Playwright — это быстро развивающийся фреймворк с открытым исходным кодом, разработанный Microsoft. Обещания повысить скорость, унифицировать синтаксис и обеспечить кроссбраузерную поддержку серьезно заинтересовали нас, и мы решили попробовать.

В этой статье мы расскажем, почему и как мы перешли с Cypress на Playwright. Вы узнаете о ключевых преимуществах Playwright и о том, как мы справились с переходом.
Читать далее
Total votes 12: ↑10 and ↓2+10
Comments5

Продвинутые техники извлечения данных для достижения максимальной производительности

Reading time12 min
Views3.6K

Cегодня мы поговорим на тему оптимизации производительности для масштабируемых систем.

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

В этой статье мы рассмотрим хорошо зарекомендовавшие себя стратегии, которые можно легко интегрировать в кодовые базы, независимо от того, находятся ли они во фронтенде или бэкенде, и независимо от используемого языка программирования. Эти стратегии выходят за рамки теоретических предположений; они были тщательно протестированы и проверены в самых требовательных технологических средах по всему миру.

Читать далее
Total votes 15: ↑13 and ↓2+15
Comments0

Сообщаются ли ваши тесты?

Reading time9 min
Views1.9K

Чтобы быстро продвигаться в рабочих задачах, необходимо иметь уверенность в том, что можно вносить изменения. А уверенность в изменениях зависит от тестового покрытия.

С тех пор как мы это поняли, автоматические тесты стали просто необходимы. Это привело к массовому внедрению шаблонов для старта работы. Однако просто начать работу недостаточно.

Читать далее
Total votes 11: ↑10 and ↓1+11
Comments1

Переменные окружения в Node.js: полное руководство

Reading time10 min
Views13K

В этой статье мы рассмотрим переменные окружения (environment variables) в NodeJs с примерами. По сути, это пары ключ-значение набора данных, которые хранятся на уровне операционной системы. Они важны, поскольку отвечают за: разделение проблем, безопасность, переносимость, масштабируемость, совместимость, интероперабельность.

Читать далее
Total votes 16: ↑13 and ↓3+12
Comments7

Как создать приложение для чата в реальном времени с помощью React, Node, Socket.io и HarperDB

Reading time27 min
Views6.6K

Статья посвящена созданию приложения для чата в реальном времени с чат-комнатами, с использованием Socket.io и HarperDB. Научимся на практике создавать полнофункциональные приложения, в которых бэкэнд может взаимодействовать с фронтендом в реальном времени. Руководство будет особенно полезно для начинающих веб-разработчиков.

Читать далее
Total votes 11: ↑10 and ↓1+11
Comments0

Гексагональная архитектура со Spring Boot

Level of difficultyMedium
Reading time19 min
Views15K

Гексагональная архитектура стала популярным архитектурным паттерном, помогающим отделить бизнес-логику от инфраструктуры. Такое разделение позволяет откладывать принятие решений о технологиях или легко заменять их. Кроме того, это позволяет тестировать бизнес-логику в изоляции от внешних систем.

В этой статье мы рассмотрим, как реализовать гексагональную архитектуру в Spring Boot приложении. Мы разделим бизнес-логику и инфраструктуру на отдельные модули и посмотрим, как можно изолированно реализовать и протестировать эти модули.

Данная статья представляет собой практическое руководство и предполагает, что читатель имеет базовое представление о принципах, лежащих в основе гексагональной архитектуры. 

Читать далее
Total votes 14: ↑11 and ↓3+11
Comments4

Какой монорепозиторий сейчас подходит для Node.js BACKEND?

Reading time13 min
Views6.1K

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

Читать далее
Total votes 10: ↑9 and ↓1+11
Comments2

Илья Суцкевер, главный научный сотрудник OpenAI, о своих надеждах и опасениях относительно будущего ИИ

Level of difficultyEasy
Reading time13 min
Views14K


Я пришел на встречу с Ильей Суцкевером, соучредителем и главным научным сотрудником OpenAI, в неприметное офисное здание компании на непримечательной улице в районе Мишн в Сан-Франциско. Мы поговорим о том, что будет дальше с перевернувшей мир технологией, к появлению которой он приложил немало усилий. Также я собираюсь расспросить Илью о его личных планах — в частности, почему создание следующего поколения флагманских генеративных моделей больше не является основным фокусом его работы.

Вместо создания следующего GPT или генератора изображений DALL-E, новая приоритетная задача Ильи — выяснить, как остановить искусственный сверхинтеллект (гипотетическую технологию будущего, которую он видит с прозорливостью истинно верующего) так, чтобы он не стал «мошенником».
Читать далее
Total votes 21: ↑18 and ↓3+20
Comments8

Пишем чистые тесты на JavaScript с использованием принципов BASIC

Reading time16 min
Views3.7K

Продакшен код может быть неидеальным, и это подразумевает риск или долг, которым команды управляют различными способами. Для кода тестов риск гораздо более значителен — они могут просто исчезнуть. Сотни часов кодирования и встреч могут просто пропасть.

Вы сталкивались с подобным?

В этой статье мы поговорим о том, как сократить время, затрачиваемое на решение проблемы сложности тестов — важной составляющей стратегии тестирования.

Читать далее
Total votes 15: ↑13 and ↓2+14
Comments1

Почему хорошие разработчики пишут плохие юнит-тесты

Reading time10 min
Views11K

Ура! Наконец-то вы написали столько строк кода, что можете позволить себе дом на берегу моря. Вы нанимаете лучшего архитектора, который уверяет, что у него появилась отличная идея по поводу вашего дома.

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

Часто разработчики программного обеспечения подходят к юнит-тестированию с подобным ошибочным мышлением. Они механически применяют все «правила» и лучшие практики, которые они усвоили из опыта написания продакшен кода, не проверяя, подходят ли они для написания тестов. В результате они строят небоскребы на пляже. О причинах этого явления и главное, как это изменить, в этой статье.

Читать далее
Total votes 21: ↑17 and ↓4+16
Comments6

Чтобы ускорить работу Numba и кода NumPy, нужно понять, как работают процессоры

Reading time11 min
Views6.6K

Если вам нужно ускорить обработку NumPy или просто сократить использование памяти, попробуйте компилятор Numba just-in-time. С его помощью можно писать код на языке Python, который во время выполнения компилируется в машинный код. Это позволяет получить прирост скорости, сопоставимый с приростом, который можно получить на C, Fortran или Rust.

По крайней мере, так считается в теории. На практике же код на Numba может быть не быстрее, чем эквивалент NumPy. Но если лучше понимать, как работают процессоры, можно добиться большего. Эти знания помогут более широко использовать любой компилируемый язык. В этой статье мы:

Рассмотрим простую задачу обработки изображений.

Попытаемся (поначалу безуспешно) ускорить ее с помощью Numba.

Рассмотрим, почему современные процессоры такие быстрые, и каковы возможности компиляторов.

Опираясь на полученные знания, скорректируем наш код так, чтобы он выполнялся в 25 раз быстрее по сравнению с первоначальной версией.

Читать далее
Total votes 20: ↑19 and ↓1+22
Comments8

Information

Rating
137-th
Works in
Registered
Activity