Size: a a a

2020 May 14

RN

Ryzhikov Nikolay in fprog_spb
можно в тесты заглянуть
источник

DS

Denis Shevchenko in fprog_spb
конечно можно! Но не лучше ли, когда функция сама за себя говорит, что от неё можно ожидать?
источник

RN

Ryzhikov Nikolay in fprog_spb
не факт что по типам ты всегда поймешь что делает функция
источник

AZ

Aleksandr Zhuravlev in fprog_spb
Ryzhikov Nikolay
еще раз - пусть это будет 1.5 часа размышлений и 10 строчек кода
Так @graninas обещал же показать.
источник

RN

Ryzhikov Nikolay in fprog_spb
👍
источник

DS

Denis Shevchenko in fprog_spb
Ryzhikov Nikolay
не факт что по типам ты всегда поймешь что делает функция
А я и не говорил, что это всегда легко понять. Но главное, что это всегда МОЖНО понять. :-)
источник

RN

Ryzhikov Nikolay in fprog_spb
ну анотации можно написать и в clojure - https://clojure.org/guides/spec
источник

DS

Denis Shevchenko in fprog_spb
например, понять, лезет ли она во внешний мир
источник

DS

Denis Shevchenko in fprog_spb
Ты имеешь в виду это?

(defn ranged-rand
 "Returns random int in range start <= rand < end"
 [start end]
источник

DS

Denis Shevchenko in fprog_spb
А что если внутри этой строки я напишу иначе?

(defn ranged-rand
 "Returns random double in range start > rand > end"
 [start end]

И вот уже аннотация вводит читателя в заблуждение, верно?
источник

K

Kakadu in fprog_spb
Ryzhikov Nikolay
ну анотации можно написать и в clojure - https://clojure.org/guides/spec
А если функция не натягивается на эти аннотации?
источник

DS

Denis Shevchenko in fprog_spb
Типы - это документация, которая гарантированно актуальна, ибо компилятор просто не позволит ей устареть.
источник

n

neFormal in fprog_spb
Документация, по которой не понять, что делает функция. Отлично.
источник

n

neFormal in fprog_spb
Столько отмазок, как только речь пошла про показать
источник

AZ

Aleksandr Zhuravlev in fprog_spb
И не типы, а статическая типизация.
источник

DS

Denis Shevchenko in fprog_spb
> Документация, по которой не понять, что делает функция.

Когда я смотрю на приведённую выше аннотацию - да, я не понимаю, что делает функция. Просто потому, что аннотация может устареть. Типы - это документация, которая не может устареть.
источник

DS

Denis Shevchenko in fprog_spb
Если же вы считаете, что вам такого рода документация не нужна - ок. Но я знаю, что многим такая документация нужна (мне уж точно нужна).
источник

n

neFormal in fprog_spb
Просто это не документация.
источник

AV

Alexander Vershilov in fprog_spb
У меня бы был интересный кейс в ту субботы, но я не подумал, что можно стримить
источник

AV

Alexander Vershilov in fprog_spb
Когда я делал вывод кодеков для запросов postgres
источник