Золото-доклад по Type-Driven Design

Хочу поделиться интересным докладом от iOS разработчика из American Express.

Большинство идей, которые я реализовал на TypeScript в проектах Ozon Aquriring за последний год, взяты из этого доклада и тех материалов, на которые он ссылается.

Мне кажется, будет полезно увидеть, как пишут код такие же фронты, но на другой платформе, ознакомится с оригиналом и тем, на чём он основан, а позже в серии заметок я выложу свой конспект доклада с реализацией большинства идей на TypeScript.

Темы - Доменное моделирование на основе типов; - Функциональные паттерны и типы; - Превращение частичных функций в полные; - Превращение функций с сайд эффектами в чистые - Value Oriented Programming; - Функциональная dependency injection.

https://youtu.be/pbVjkY9fS8c?si=V7cWrtyXPgpyf-B2

Мысли - Несмотря на то, что в 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 - блог Алексея Озуна;

Золото-доклад по Type-Driven Design
Хочу поделиться интересным докладом от iOS разработчика из American Express | Сетка — социальная сеть от hh.ru