Привет! Последние 4 месяца я занмался тем, что продумывал, как делать на clojure бизнес-приложения. Свой подход я описываю в методичке https://github.com/darkleaf/building-application. Она еще не закончена, но оснавные идеи уже описаны. Было бы здорово обсудить эти идеи и улучшить изложение. Если кратко, то речь идет о Clean Architecture, Data Mapper, Identity Map, Unit of Work. Еще будет интересно посмотреть на то, как генерируются формы на основе clojure.spec.
@kuzmin_m ЕГЭ сдавал?))
@dbushenko очень давно да, там уйма опечаток, простите
в целом -- хорошая попытка, молодцом
из конструктивной критики я бы добавил только лишь то, что в процессе работы над книгой ты изобрел очень много своего такого, для чего есть или неплохие решения, или нормальные названия в других областях; кроме того стоило бы рассмотреть и другие типы архитектур, кроме DDD. Пример с протоколами -- ок, но его надо обосновать, и показать, в каких случаях лучше с протоколами, а в каких - без. ну и вообще, обоснований побольше, вместо ссылок на авторитеты. некоторые из этих авторитетов, тот же Боб Мартин, для многих выглядят клоунами
@dbushenko спасибо за отзыв. Идея в том, что бы показать идею хоть как-нибудь, собрать обратную связь и улучшить. Я даю краткое описание и ссылку на подробный материал. Это не книга, а "методичка", я не готов писать нетленку в несколько томов с разбором всех возможных вариантов 😃 Обоснования как раз по ссылкам. По поводу клоунства - можешь дать ссылку на человека, который бы показал, как делать софт приносящий ценность бизнесу?
ну если просто как методичка -- норм
вообще, конечно, DDD на Clojure делать довольно сложно, я не очень себе представляю, как сделать идиоматичный агрегат средствами Clojure так, чтобы не плеваться потом. Думаю, что если компромиссные подходы не годятся, надо делать через абстрактный тип данных и композицию функций, хотя и АДТ в кложе нормально не сделать....
у меня есть агрегат, ну или то, что я этим словом называю все это нужно рассматривать как вариацию на тему 😃
и по поводу ссылки на человака, кого ни спрошу, никто кроме Мартина назвать не может
:rich:
где? 😃
Ну, Мартин, достаточно много хорошего сделал, заставил многих подумать головой, и не мне называть человека клоуном, но в последние годы он реально имел недальновидные высказывания. :rich: же вместо того чтобы писать блог-посты как делать хороший софт, написал язык для полезного софта. Но даже :rich: на своем последнем выступлении очень сильно ругал типы/pattern matching - приводя примеры из Java, C++, что тоже, недальновидно, кмк.
ключевой момент того, что доносит Мартин - это инверсия зависимости SOLID, Clean Architecture все это на базе инверсии зависимости она позволяет разрабатывать бизнес-логику сразу, откладывание выбор реализации на потом т.е. ты описывашь логику, идешь к заказчику, он вносит правки эти правки практически бесплантные, у нас нет базы, нет фреймворка, нет ничего кроме этой самой логики а когда уже стали разибраться в проекте лучше, переходим к конкретным реализациям деталей
для этого и нужны нужны протоколы, интерфесы, динамический полиморфизм
Это трындец
Башня из слоновой кости
Сферический Боб Мартин в вакууме