Size: a a a

Clojure — русскоговорящее сообщество

2020 May 08

DM

Denis Muraviev in Clojure — русскоговорящее сообщество
Спасибо за развернутый ответ
источник

v

vveare138 in Clojure — русскоговорящее сообщество
откуда ты можешь знать что там
источник

DM

Denis Muraviev in Clojure — русскоговорящее сообщество
Ещё я вижу что много проектов не используют логгинг. Почему? Казалось бы можно сделать трейс параметров функции если там какая то мапа едреная.
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
в моем примере save-db принимает рекветст, делает io с базой и отдает ответ, который потом make-response  каким-то образом трансформирует в нужный формат.
Получается что save-db имеет четкую логику, которая описана в виде: докстрингов, pre-post условий, тестами, спекой, комменты. Логика входа и выхода IO функи такова:
request -> save-db -> ответ из базы.
Если по логике вещей мы работаем с CRUD пользователей, то например request может содержать мапу с параметрами нового пользователя, save-db знает как положить в БД insert'ом и получит от базы ответ (полжили или не положили). Ответы от базы тоже типизированы и они всегда вернуться в виде мапы. соответственно save-db  может проанализировать ответ от базы и вернуть уже свой ответ в нужной бизнес-логике.
источник

DM

Denis Muraviev in Clojure — русскоговорящее сообщество
Имеет ли это смысл не знаю видимо с реплом нет. Но опять же таки возникают трудности с пониманием какие данные надо засунуть в функцию что бы в репле вызвать
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
Denis Muraviev
Имеет ли это смысл не знаю видимо с реплом нет. Но опять же таки возникают трудности с пониманием какие данные надо засунуть в функцию что бы в репле вызвать
Тогда нужно тебе вернуться на 1 уровень и представлять общий флоу твоего процесса. У тебя процесс складываться из набора операций, через который летит твой запрос (стейт). Поэтому исходя из логики процесса на каждом шаге ты ЗНАЕШЬ, что должно быть подано на вход. Представь конвейер, который собирает машину. В начале скрепляют детали кузова, далее деталь едет по конвейеру и попадает на робота, который прикручивает двери. Далее вставляют мотор, Потом колеса. То есть каждый робот в конвейере стоит строго после определенного шага и он знает , что на вход ему должно быть подано.
источник

MA

Mike Ananev in Clojure — русскоговорящее сообщество
Если говорить про IO то тут тоже самое...
ты ЗНАЕШЬ что нужно для того, чтобы сделать разные IO  операции. Это исходит из самой бизнес-логики операции. например:
1) создать нового пользователя
2) положить на счет деньги
3) провести транзакцию
4) сформировать отчет

Все 4 примера могут работать с БД. У БД есть таблицы с доменными и связанными сущностями. Для того, чтобы удовлетворить БД при вставке данных у тебя для каждой из 4 операций будут свои мапы, которые формируются из требований БД и контекста (бизнес-логики).
источник
2020 May 09

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Sergey Trofimov
вот нифига статическая типизация не гарантировала мне, что в рантайме багло после рефакторинга не вылезет
вот да!
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Azamat Kalimoulline
И да, проекты двухлетней давности если тебе понятны, то ты супер человек. :)
а что такого должно меняться за два года кардинально?
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Maxim Penzin
а что такого должно меняться за два года кардинально?
Вся жизнь может за два года изменится.
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Azamat Kalimoulline
Вся жизнь может за два года изменится.
А может и 10 лет не меняться
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Azamat Kalimoulline
И да, проекты двухлетней давности если тебе понятны, то ты супер человек. :)
Раскопал проект 5-летней давности, почти все помню
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
Раскопал проект 5-летней давности, почти все помню
правда я его рефакторил с потом и кровью, да
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Maxim Penzin
а что такого должно меняться за два года кардинально?
В мире JS - очень много
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
Раскопал проект 5-летней давности, почти все помню
На чем написан?
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Vlad Lisovsky
На чем написан?
racket
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
А может и 10 лет не меняться
Может, но обычно меняется.
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Azamat Kalimoulline
Может, но обычно меняется.
а зачем?
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Ну жизнь такая. Всё меняется.
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Sergey Trofimov
Нет, я немного о другом, но устал объяснять :-)
Ты можешь просто аннотацию поставить где-то типа считать вот это String
источник