Size: a a a

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

2021 February 24

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
И это одна из причин почему это unofficial гайд )
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
а тесты рядом с кодом, это особо смертельно?
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Sergey Trofimov
а тесты рядом с кодом, это особо смертельно?
а зачем?
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
если есть серьёзная причина - то конечно, наздоровье
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
а как тесты на приватные функи без этого писать?
Раз уж про гайды заговорили. Какой гайд рекомендует тестировать приватные функи?
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Kirill Chernyshov
Раз уж про гайды заговорили. Какой гайд рекомендует тестировать приватные функи?
никакой, вроде, но с учётом божидаровского у тебя два варианта
- через #'
- выносишь приватки в отдельный ns и делаешь публичными (тут теряешь профит от приватности)
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
а, ну и да, не тестировать приватки :D, я, кстати, сам таким страдал лет 5 назад, молодой был, глупый
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
никакой, вроде, но с учётом божидаровского у тебя два варианта
- через #'
- выносишь приватки в отдельный ns и делаешь публичными (тут теряешь профит от приватности)
я не очень понимаю, почему ты профит от приватности считаешь объективным.
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Alex Bubnov
я не очень понимаю, почему ты профит от приватности считаешь объективным.
я считаю, что всё, что может предотвратить спагетти - хорошо
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
не факт, что оно предотвратит, но лучше перестраховаться, тем более, что это достаточно дёшево (а была бы форсированная приватность - было бы ещё дешевле)
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
я считаю, что всё, что может предотвратить спагетти - хорошо
Спагетти это свойство конкретного проекта и даже твоего видения его.
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
То, что для тебя спагетти может быть вполне ок для кого-то другого, и наоборот.
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Alex Bubnov
То, что для тебя спагетти может быть вполне ок для кого-то другого, и наоборот.
Очень тупое напоминание, сорри
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Alex Bubnov
я не очень понимаю, почему ты профит от приватности считаешь объективным.
кстати, а зачем с таким подходом вообще юзать приват?
источник

AB

Alex Bubnov in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
кстати, а зачем с таким подходом вообще юзать приват?
Так и я не понимаю, зачем его юзать.
Зачем его реализовывать в языке - ну, чтобы у людей был выбор.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
на мой взгляд private - это не про то, что "не используй эту функу, потому что я жадина!", а про то, что "не используй эту функу, потому что я сам ещё не решил, сохранится ли она в будущих версиях".
когда ты пишешь модуль для себя, то проще, если всё открыто по умолчанию. когда пишешь либу для общественности, тогда проще, если всё закрыто по умолчанию.
Но либа для общественности это всегда реже, чем модуль для себя. Поэтому проще сделать по умолчанию открыто, а потом изредка накидать ^private в может быть единственном проекте своей жизни, выложенном на github.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
а началось-то кажется с того, что человек спросил: "когда def, а когда let?"
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Tim
Спасибо, парни! Вчера писал небольшой скрипт, не сразу сообразил как промежуточные результаты где-то хранить. Теперь стало понятнее.

Ещё вопрос: в каких случаях обычно используете def вместо let?
def - для всего глобального.
let - для всего локального.

или по-другому: всегда используй let, а если оказывается потом, что нужен доступ "снаружи", то перекидывай в def (конечно же с соблюдением определённых правил).
Ну это, опять же, во всех языках ведь так.
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Damir Farazetdinov
на мой взгляд private - это не про то, что "не используй эту функу, потому что я жадина!", а про то, что "не используй эту функу, потому что я сам ещё не решил, сохранится ли она в будущих версиях".
когда ты пишешь модуль для себя, то проще, если всё открыто по умолчанию. когда пишешь либу для общественности, тогда проще, если всё закрыто по умолчанию.
Но либа для общественности это всегда реже, чем модуль для себя. Поэтому проще сделать по умолчанию открыто, а потом изредка накидать ^private в может быть единственном проекте своей жизни, выложенном на github.
ну вот мне сейчас проще (точнее, понятнее) делать по умолчанию приватно, в закрытом проекте.
так я лучше понимаю зависимости между неймспейсами, также это помогает видеть кривизну в зависимостях, которую требуется исправить
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Sergey Trofimov
ну вот мне сейчас проще (точнее, понятнее) делать по умолчанию приватно, в закрытом проекте.
так я лучше понимаю зависимости между неймспейсами, также это помогает видеть кривизну в зависимостях, которую требуется исправить
my thoughts exactly
источник