Fork me on GitHub
#clojure-russia
<
2017-12-10
>
kuzmin_m16:12:00

Привет! Последние 4 месяца я занмался тем, что продумывал, как делать на clojure бизнес-приложения. Свой подход я описываю в методичке https://github.com/darkleaf/building-application. Она еще не закончена, но оснавные идеи уже описаны. Было бы здорово обсудить эти идеи и улучшить изложение. Если кратко, то речь идет о Clean Architecture, Data Mapper, Identity Map, Unit of Work. Еще будет интересно посмотреть на то, как генерируются формы на основе clojure.spec.

dbushenko17:12:07

@kuzmin_m ЕГЭ сдавал?))

kuzmin_m17:12:19

@dbushenko очень давно да, там уйма опечаток, простите

dbushenko17:12:45

в целом -- хорошая попытка, молодцом

dbushenko17:12:17

из конструктивной критики я бы добавил только лишь то, что в процессе работы над книгой ты изобрел очень много своего такого, для чего есть или неплохие решения, или нормальные названия в других областях; кроме того стоило бы рассмотреть и другие типы архитектур, кроме DDD. Пример с протоколами -- ок, но его надо обосновать, и показать, в каких случаях лучше с протоколами, а в каких - без. ну и вообще, обоснований побольше, вместо ссылок на авторитеты. некоторые из этих авторитетов, тот же Боб Мартин, для многих выглядят клоунами

kuzmin_m17:12:54

@dbushenko спасибо за отзыв. Идея в том, что бы показать идею хоть как-нибудь, собрать обратную связь и улучшить. Я даю краткое описание и ссылку на подробный материал. Это не книга, а "методичка", я не готов писать нетленку в несколько томов с разбором всех возможных вариантов 😃 Обоснования как раз по ссылкам. По поводу клоунства - можешь дать ссылку на человека, который бы показал, как делать софт приносящий ценность бизнесу?

dbushenko17:12:50

ну если просто как методичка -- норм

dbushenko17:12:53

вообще, конечно, DDD на Clojure делать довольно сложно, я не очень себе представляю, как сделать идиоматичный агрегат средствами Clojure так, чтобы не плеваться потом. Думаю, что если компромиссные подходы не годятся, надо делать через абстрактный тип данных и композицию функций, хотя и АДТ в кложе нормально не сделать....

kuzmin_m18:12:31

у меня есть агрегат, ну или то, что я этим словом называю все это нужно рассматривать как вариацию на тему 😃

kuzmin_m18:12:25

и по поводу ссылки на человака, кого ни спрошу, никто кроме Мартина назвать не может

kuzmin_m18:12:38

где? 😃

troglotit18:12:43

Ну, Мартин, достаточно много хорошего сделал, заставил многих подумать головой, и не мне называть человека клоуном, но в последние годы он реально имел недальновидные высказывания. rich же вместо того чтобы писать блог-посты как делать хороший софт, написал язык для полезного софта. Но даже rich на своем последнем выступлении очень сильно ругал типы/pattern matching - приводя примеры из Java, C++, что тоже, недальновидно, кмк.

kuzmin_m18:12:44

ключевой момент того, что доносит Мартин - это инверсия зависимости SOLID, Clean Architecture все это на базе инверсии зависимости она позволяет разрабатывать бизнес-логику сразу, откладывание выбор реализации на потом т.е. ты описывашь логику, идешь к заказчику, он вносит правки эти правки практически бесплантные, у нас нет базы, нет фреймворка, нет ничего кроме этой самой логики а когда уже стали разибраться в проекте лучше, переходим к конкретным реализациям деталей

kuzmin_m18:12:21

для этого и нужны нужны протоколы, интерфесы, динамический полиморфизм

dbushenko18:12:20

Это трындец

dbushenko18:12:58

Башня из слоновой кости

dbushenko18:12:46

Сферический Боб Мартин в вакууме