Марат Зимнуров
Компания: Авито
Клиент-заказчик просит добавить в функциональность приложения новую функцию? А вы объясняете, что в вашей луковой архитектуре очень плотная связность классов и цена внедрения мелкой фичи болезненна? А на клиентской части ваши компоненты живут в помеси mobx и пруда-болота, где среди трех сыновей наследование оказалось самым больным.
Monkey patching и двухсторонние bindings позволяют клепать новые и новые костыли, а написание тестов невероятно сложное и требует безумных усилий в подготовке окружения, и проще загрузить работой QA. Создаем рабочие места! Но вдруг кто-то вам шепнул: «одна функция, что объединит все функции; одна функция, чтобы править всеми; одна функция; ОДНА!»
Расскажу, что такое функциональное программирование на самом деле, какие методы оттуда уже проникли в повседневную разработку, какие конкретные недостатки существуют для его применения в JavaScript и в целом. На примерах разберем, как писать веб-приложения и бэкенды, используя практики функционального программирования, почему сейчас болезненно писать тесты и как убедиться, что ваша разработка уже ушла в путь функций. Узнаем, куда спрятались монады и кто главный композитор!
Компания: Авито
Компания: Группа НЛМК