Лидер команды backend-разработки IT-компании Lad поделился опытом с джуниорами из Developer Student Clubs.
Архитектор омниканальной платформы для сети магазинов федерального ритейлера kari (проекта Lad) Сергей Кучин выступил на митапе в НИУ ВШЭ перед участниками программы Developer Student Clubs, которые интересуются современными технологиями разработки и хотят улучшить свои знания и навыки разработки в peer-to-peer среде обучения.
Эксперт на конкретных примерах рассказал о backend-разработке корпоративных приложений на NodeJS и TypeScript, осознанном выборе технологий под нужную среду, выделил основные черты E-comm enterprise - проекта.
Большинство задач - ввод-вывод в enterprise проектах - это ввод и вывод. отмечает Сергей Кучин:
“Это очень важно, поскольку апи сервис обрабатывает пользовательские запросы. Бизнес-логика может быть сложна для понимания, но в большинстве случаев она не требует много процессорного времени. Типичная задача - когда получили запрос от пользователя, сделали запрос в базу, сформировали данные и вернули результат пользователю. При этом, задачи приходят от бизнеса, а значит, описываются не совсем так, как хотел бы разработчик. Описание может быть слишком подробным или скудным. Не получается быстро понять суть и цель разрабатываемого функционала”.
Среди особенностей enterprise-проекта эксперт Lad также называет высокую цену ошибки и простоя, большую нагрузку и многолетний цикл жизни проекта, а значит, много технологий, легаси и внушительный технический долг.
Сергей Кучин также высказал мнение, чем JS полезен для E-comm enterprise backend'a:
“NodeJS? - это кроссплатформенное runtime окружение с открытым исходным кодом для выполнения javascript кода. NodeJS является реализацией шаблона "Реактор", в нем реализован "синхронный демультиплексор событий". В NodeJS есть один thread ОС, в котором работает EventLoop. Один поток, в котором выполняется наш код. В реализации EventLoop'а в NodeJS есть нюансы, разные стадии, понятие макротасок и микротасок и т.д. Но главное - это то, что NodeJS это платформа созданная для работы с вводом-выводом.”
Кроме того, эксперт отметил важность проектирования и анализа в условиях эволюционной разработки.