Дальнейшие планы работы над Эргономичным подходом

April 29, 2023

Привет!

Разобрался с делами, накопившимися после конфы, перевёл немного дух и пишу обещанный пост с моими дальнейшими планами. Ну как планами - я не человек плана, поэтому это те области, которые на данный момент я бы хотел затронуть в рамках Эргономичного подхода. Без сроков и даже порядка.

Список того, над чем ещё предстоит поработать выглядит так:

  • Ретро Проекта Э
  • Эргономичная структура програм
  • Функциональная архитектура
  • Классический подход к ТДД
    • Фокус на тестировании требований
  • Обработка ошибок
  • ПЕРСИСТАНС!
    • Посмотреть на Exposed + отказ от агрегатов и слоя сущностей
    • iArm
  • В целом описать процесс разработки от "Хочу зюзюку" до "Вот ваша зюзюка в проде"
  • Чеклисты/критерии качества процесса и кодовой базы
  • Матрица компетенций разработчика по Эргономичному подходу

Теперь чуть раскорою каждый из пунктов.

Ретро проекта Э Тут я процентов на 90 уверен, что с этого начну и даже кажется, что к лету закончу. Потому что в этом посте не надо будет ничего изучать и осознавать, а просто красиво изложить факты - что я делал, почему я делал, что получилось хорошо, что сделал бы по другому.

Эргономичная структура программ Затем, наверное, доделаю давно анонсированный пост об Эргономичной структуре программ. Черновик этого поста у меня уже есть, поэтому есть шанс что с ним я разберусь тоже быстро и опубликую к июлю.

Функциональная архитектура Далее по списку, но не факт что по порядку идёт функциональная архитектура. Тут у меня сомнения - материала на эту тему в мире уже достаточно и мне добавить к нему особо нечего. Но это один из столпов ЭП, поэтому рано или поздно собственную версию ФА написать надо будет. Сделаю опрос, хоте ли бы вы этот пост.

Классический подход к ТДД Затем, схожая штука с ТДД. Мой взгляд процентов на 90 совпадает со взглядами Владимира Хорикова, но ТДД является третьим столпом ЭП, поэтому расписать надо будет обязательно. Кроме того, в этом случае, мне есть что добавить (да и самому осознать и по полочкам разложить) - фокус на тестировании требований.

Обработка ошибок Тема большая, и достаточно важная. У меня есть какое-то высокоуровневое видение как это делать, но по полочкам оно не разложено. И ссылок на хороший на мой взгляд материал у меня пока нет. Поэтому, возможно, я эту тему раскрою даже раньше ФА и ТДД. Хотя не исключаю, что в процессе работы найду хороший материал для ссылок и тоже пока отложу эту тему.

ПЕРСИСТАНС…​ Как много в этом слове. Сейчас для меня это самая главная боль - я не знаю, как эргономично работать с БД. По мотивам проекта Э, я понял что Spring Data JDBC - это не ответ. И тут, кажется, снова придётся заняться велосипедостроительством. Сейчас у меня есть пара сильно разных вариантов в какую сторону пойти.

Первый вариант - запилить iARM - immutable Aggregate-Relational Mapping. Звучит жутковато, конечно, но у меня есть гипотеза что мапить неизменяемые деревья будет существенно проще, чем изменяемые графы.

Второй вариант - наоборот, вообще отказаться от слоя сущностей. Для работы взять Exposed и попробовать обойтись только DTO-шками и объектами таблиц. Тоже звучит страшно, тоже надо проверять, что из этого выйдет.

В целом описать процесс разработки от "Хочу зюзюку" до "Вот ваша зюзюка в проде". Тут у меня тоже уже есть база - Эргономичный подход v1.0M1, но её надо актуализировать, дополнить иллюстрациями, убрать лирику, добавить деталей.

Чеклисты/критерии качества процесса и кодовой базы Это будет не пост, а какая-то техническая штука - собственно чеклист - с помощью которой можно будет отслеживать соответствие кодовой базы принципам ЭП. Там будут крыжики аля "В зависимостях нет циклов", "каждый юз кейс покрыт тестом", "бизнес-логика отделена от ввода-вывода" и т.п.

Матрица компетенций разработчика по Эргономичному подходу Пункт по мотивам одноимённого (практически) доклада с JPoint. Разработка по ЭП требует определённой специфики в скилл сете - основы ФП, диаграмма эффектов, эргономичная структура и т.п. Вот это всё надо осознать, выписать, научиться системно этому обучать и оценивать уровень владения.


Моими темпами, тут без персистанса мне работы ещё лет на 5 минимум, а с персистансом - на все 10. Так что стей тюнед, будет интересно:)