Size: a a a

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

2020 July 19

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Andrey Osnovin
А как ты узнаешь, что она возвращает User? У тебя на выходе будет какая-то мапа и тебе придётся в репле смотреть что это за мапа. У меня претензия к тому, что нельзя заранее сказать что за мапа вернётся, какая у неё структура, вложенность и т.д. Можно сделать (defrecord User [...]), и даже написать  (defn auth ^User [...] (->User ...)), но оно почему-то всё равно не проверяется в рантайме и я не видел на гитхабе что бы кто-то так делал
Это плюсы и минусы динамической типизации. С одной стороны да удобнее понять что там юзер, с другой - завтра там может быть нужен уже не юзер а что-то другое и опа у тебя в системе 10 разных юзеров.
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Причем тебе нужно написать функцию, где используются данные из 3 и 5 юзера
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
И делаешь 11 юзера
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Или у тебя один юзер в котором 200 полей не нужных в 99.9% случаев
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
А теперь представь что это не юзер - а мапа из мап из векторов из мап
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
одно описание типа которой занимает 3 файла по два экрана
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
И у тебя таких 5 разных
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
И ты сидишь и думаешь бля лушче бы в репле посмотрел
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
(короткая история о том как я стал кложуристом)
источник

A

Aleksey @cheatex in Clojure — русскоговорящее сообщество
TLDR; данные в реальном мире мало похожи на ADT и очень похожи на мапки.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
я80лй3кз
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Aleksey @cheatex
TLDR; данные в реальном мире мало похожи на ADT и очень похожи на мапки.
Вот да, где об этом почитать?
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
Thinking in maps? (Joy of Clojure)
источник

A

Aleksey @cheatex in Clojure — русскоговорящее сообщество
Vlad Lisovsky
Вот да, где об этом почитать?
В смысле "об этом"?
источник

A

Anton in Clojure — русскоговорящее сообщество
если есть потребность, можно прям в функцию добавлять спеку(в dev режиме, макросом) на вход / выход данные ну и писать простейший тест
источник

A

Anton in Clojure — русскоговорящее сообщество
видел такую поделку
источник

AO

Andrey Osnovin in Clojure — русскоговорящее сообщество
@achikin а что будешь делать с опциональным ключём в мапе который поменяли? Насколько быстро найдёшь изменения опираясь на репл (и пусть даже тесты, спеку и т.д, ключ то опциональный). Условного говоря было :alive стало :is-alive
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Andrey Osnovin
@achikin а что будешь делать с опциональным ключём в мапе который поменяли? Насколько быстро найдёшь изменения опираясь на репл (и пусть даже тесты, спеку и т.д, ключ то опциональный). Условного говоря было :alive стало :is-alive
Да бывает что сложно найти, особенно если ключи были кейвордами без неймспейсов
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
А так-то find usages работает
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Anton Chikin
Да бывает что сложно найти, особенно если ключи были кейвордами без неймспейсов
Это источник багов да
источник