RU

Вы точно не знаете всех встроенных возможностей платформы, которые сделаны хорошо, и используете внешние зависимости, которые устарели и написаны гораздо хуже. Похоже на вас? Давайте посмотрим на fs, v8, vm, child_process, worker_threads, async_hooks, crypto, undici и забудем про axios, express, lodash, async.js, bcrypt, argon2, mkdirp, bluebird, socket.io, и др.

Вы не думаете про безопасность и надежность — давайте узнаем про роутинг запросов без ReDOS-уязвимостей и Path traversal, изоляцию контекстов исполнения запросов друг от друга. Вспомним про XSS, SQL инъекции, CSRF, поговорим про обработку ошибок на колбэках и промисах, которые вы часто игнорируете. Обсудим утечки памяти и других ресурсов, race condition и dead locks, которые у вас на каждом шагу в однопоточном JavaScript, а вы боретесь с ними рестартом процесса, не догадываясь, что происходит.

Вы используете навязанные вам архитектурные и структурные антипаттерны, такие как middleware, shared/global state, смешивание слоев абстракций, нарушение закона Деметры и принципов DDD. У вас контексты запросов req и res проникают в код предметной области и код, работающий с базой данных, потому что нужно помнить про GRASP и SOLID, применять GoF и чистую архитектуру.

Давайте писать framework agnostic-код, вытесним фреймворки и зависимости в детали реализации.

Спикеры

Тимур Шамсединов
Тимур Шамсединов

Программист с 26-летним стажем, преподаватель, исследователь, open source-энтузиаст, CTO компании Salucyber, архитектор технологического стека Metarhi. Автор более 200 открытых видео-лекций, организатор сообществ NodeUA, Metaeducation, HowProgrammingWorks, спикер на более чем 55 конференциях.