Комментарий к докладу
Хочу поделиться интересным докладом от iOS разработчика из American Express.
Большинство идей, которые я реализовал на TypeScript в проектах Ozon Aquriring за последний год, взяты из этого доклада и тех материалов, на которые он ссылается.
Мне кажется, будет полезно увидеть, как пишут код такие же фронты, но на другой платформе, ознакомится с оригиналом и тем, на чём он основан, а позже в серии заметок я выложу свой конспект доклада с реализацией большинства идей на TypeScript.
Доклад
Темы
- Доменное моделирование на основе типов;
- Функциональные паттерны и типы;
- Превращение частичных функций в полные;
- Превращение функций с сайд эффектами в чистые
- Value Oriented Programming;
- Функциональная dependency injection.
Мысли
- Несмотря на то, что в TS структурная, а не номинальная система типов, почти всё, что рассказано в докладе, можно реализовать на TS;
- Я теперь по-другому смотрю на Redux/useReducer. За свою практику видел много кода, где редьюсеры используются, как value setter’ы, а в миддлварах лежала бизнес логика, которая не покрывалась unit-тестами, но зато были тривиальные тесты на редьюсеры, что вообще бессмысленно. Ладно, об этом позже;
- Стоит также прочитать Redux is half of pattern . Это хорошо ляжет на доклад;
- Важно, что когда я говорю “Redux”, то это про идею использования редьюсеров с однонаправленным потоком данных, а не про сам фреймворк. Я в курсе, что его захейтил Даниил Абрамов, просто так фронту легче понять, что за концепции обсуждаются;
- Рекомендую смотреть доклад в Obsidian с использованием плагина Timestamp Notes;
Вдохновляет
- Идея разрабатывать веб на связке Kotlin-JS, вместо TS-JS
- Мысль, что ты можешь работать в области 5 лет и всё равно ещё будет море вещей, которые можно узнавать и чувствовать себя Незнайкой
- Человек, придумавший мандарины без косточек
- Запах весны. Сейчас суббота, открыто окно, дует приятный ветерок, а я сижу и почему-то вместо прогулки пытаюсь понять, как перевести фамилию Luposchainsky…
Тэги
typeDrivenDesignюнитТестированиефронтенды,valueOrientedProgramming,чистыеФункции,functionalProgramming,доклад,swift,ios,patterns,fcis
Материалы
- Boundaries - доклад Гэри Бернхардта;
- Parse, don’t validate - статья Алексис Кинг;
- Domain Modeling Made Functional; - книга Скотт Влашин;
- Boolean Blindness - статья Роберта Харпера;
- Algebraic blindness - статья Дэвида Лупосчаинского;
- Value-Oriented Programming - статья Мэтта Дипхауса;
- Swiftology - блог Алексея Озуна.