Дальнейшие планы работы над Эргономичным подходом
April 29, 2023
Привет!
Разобрался с делами, накопившимися после конфы, перевёл немного дух и пишу обещанный пост с моими дальнейшими планами. Ну как планами - я не человек плана, поэтому это те области, которые на данный момент я бы хотел затронуть в рамках Эргономичного подхода. Без сроков и даже порядка.
Список того, над чем ещё предстоит поработать выглядит так:
- Ретро Проекта Э
- Эргономичная структура програм
- Функциональная архитектура
- Классический подход к ТДД
- Фокус на тестировании требований
- Обработка ошибок
- ПЕРСИСТАНС!
- Посмотреть на Exposed + отказ от агрегатов и слоя сущностей
- iArm
- В целом описать процесс разработки от "Хочу зюзюку" до "Вот ваша зюзюка в проде"
- Чеклисты/критерии качества процесса и кодовой базы
- Матрица компетенций разработчика по Эргономичному подходу
Теперь чуть раскорою каждый из пунктов.
Ретро проекта Э Тут я процентов на 90 уверен, что с этого начну и даже кажется, что к лету закончу. Потому что в этом посте не надо будет ничего изучать и осознавать, а просто красиво изложить факты - что я делал, почему я делал, что получилось хорошо, что сделал бы по другому.
Эргономичная структура программ Затем, наверное, доделаю давно анонсированный пост об Эргономичной структуре программ. Черновик этого поста у меня уже есть, поэтому есть шанс что с ним я разберусь тоже быстро и опубликую к июлю.
Функциональная архитектура Далее по списку, но не факт что по порядку идёт функциональная архитектура. Тут у меня сомнения - материала на эту тему в мире уже достаточно и мне добавить к нему особо нечего. Но это один из столпов ЭП, поэтому рано или поздно собственную версию ФА написать надо будет. Сделаю опрос, хоте ли бы вы этот пост.
Классический подход к ТДД Затем, схожая штука с ТДД. Мой взгляд процентов на 90 совпадает со взглядами Владимира Хорикова, но ТДД является третьим столпом ЭП, поэтому расписать надо будет обязательно. Кроме того, в этом случае, мне есть что добавить (да и самому осознать и по полочкам разложить) - фокус на тестировании требований.
Обработка ошибок Тема большая, и достаточно важная. У меня есть какое-то высокоуровневое видение как это делать, но по полочкам оно не разложено. И ссылок на хороший на мой взгляд материал у меня пока нет. Поэтому, возможно, я эту тему раскрою даже раньше ФА и ТДД. Хотя не исключаю, что в процессе работы найду хороший материал для ссылок и тоже пока отложу эту тему.
ПЕРСИСТАНС… Как много в этом слове. Сейчас для меня это самая главная боль - я не знаю, как эргономично работать с БД. По мотивам проекта Э, я понял что Spring Data JDBC - это не ответ. И тут, кажется, снова придётся заняться велосипедостроительством. Сейчас у меня есть пара сильно разных вариантов в какую сторону пойти.
Первый вариант - запилить iARM - immutable Aggregate-Relational Mapping. Звучит жутковато, конечно, но у меня есть гипотеза что мапить неизменяемые деревья будет существенно проще, чем изменяемые графы.
Второй вариант - наоборот, вообще отказаться от слоя сущностей. Для работы взять Exposed и попробовать обойтись только DTO-шками и объектами таблиц. Тоже звучит страшно, тоже надо проверять, что из этого выйдет.
В целом описать процесс разработки от "Хочу зюзюку" до "Вот ваша зюзюка в проде". Тут у меня тоже уже есть база - Эргономичный подход v1.0M1, но её надо актуализировать, дополнить иллюстрациями, убрать лирику, добавить деталей.
Чеклисты/критерии качества процесса и кодовой базы Это будет не пост, а какая-то техническая штука - собственно чеклист - с помощью которой можно будет отслеживать соответствие кодовой базы принципам ЭП. Там будут крыжики аля "В зависимостях нет циклов", "каждый юз кейс покрыт тестом", "бизнес-логика отделена от ввода-вывода" и т.п.
Матрица компетенций разработчика по Эргономичному подходу Пункт по мотивам одноимённого (практически) доклада с JPoint. Разработка по ЭП требует определённой специфики в скилл сете - основы ФП, диаграмма эффектов, эргономичная структура и т.п. Вот это всё надо осознать, выписать, научиться системно этому обучать и оценивать уровень владения.
Моими темпами, тут без персистанса мне работы ещё лет на 5 минимум, а с персистансом - на все 10. Так что стей тюнед, будет интересно:)