Fork me on GitHub
#clojure-russia
<
2016-02-23
>
artemyarulin08:02:50

> наверное самый надежный и простой способ ну чота вот сомневаюсь simple_smile

artemyarulin08:02:35

Кстати - кто-нить пользует какие линтеры/чекеры? Я вот тока kibit знаю

artemyarulin08:02:41

о, сам себе ответил: https://github.com/jonase/eastwood

artemyarulin08:02:08

старовата правда

artemyarulin10:02:42

чувствую себя тормозом - узнал что оказывается есть clojure.test/are, а не только clojure.test/is. В CLJS тоже simple_smile

artemyarulin10:02:56

народ подскажите - type hints. На сколько оно помогает и чем грозит если везде их юзать? Т.е. как документация + перформанс повышает или есть подводные камни и не стоит?

serioga20:02:24

вот здесь http://blog.circleci.com/rewriting-your-test-suite-in-clojure-in-24-hours/ писали, почему они “weren’t really happy with Midje”

serioga20:02:24

и сейчас у midje пишется наследник https://github.com/jimpil/fudje

artemyarulin21:02:55

@trybeee: Прочитал мельком, если оно прям так ускоряет - почему по дефолту почти никто не пишет с ними. И все еще открыт вопрос - что если я буду их везде указывать, плохо ли это

malch21:02:35

@artemyarulin: Type hints нужны в случае java interop

malch21:02:00

чтобы вызывать конкретный метод напрямую, а не через reflection

prepor21:02:20

без жава интеропа они НИЧЕГО не ускоряют

prepor21:02:37

кложавские функции резолвятся в момент компиляции

prepor21:02:52

> И все еще открыт вопрос - что если я буду их везде указывать, плохо ли это да ) замусориваешь код только

artemyarulin21:02:21

ааа, дошло

prepor21:02:23

тайп хинты нужно использовать в библиотеках и в во всяких лупах частых

artemyarulin21:02:30

тьфу, затупил - сорян, вопрос снимается ага

prepor21:02:31

(только с ява интеропом, конечно)

prepor21:02:43

разница в производительности может быть в разы

malch21:02:49

не только замусориваешь, но и ограничиваешь использование (логически)

artemyarulin21:02:29

ну я думал типо как под документацию это заюзать еще

malch21:02:39

(filter …) будет работать с любой коллекцией, поэтому не стоит указывать, что это vector, например

artemyarulin21:02:59

дада, был категорически не прав - не понял сразу что это тока для интеропа

malch21:02:02

хватай schema

artemyarulin21:02:20

ага, походу уже надо в это сторону глядеть

malch21:02:30

на моей практике, его (ее) для всего хватало

artemyarulin21:02:45

а там вроде есть схема и чота еще? две вроде либы?

malch21:02:21

core.typed

artemyarulin21:02:31

core.typed - ну это во время компиляции, и чота я помню что тот-же circle-ci с нее слез. А схема - это рантайм чеки же?

malch21:02:49

Еще https://github.com/ptaoussanis/truss - не совсем то же, но близко и вообще интересно

malch21:02:41

для def даже во время компиляции в schema

artemyarulin21:02:48

о, интересно - спасибо, завтра посмотрю

artemyarulin21:02:15

а если я заменю некоторые мапы дефрекордами? Там никаких проверок кложура не добавляет?

malch21:02:09

по-моему нет, но пусть кто-то еще ответит

artemyarulin21:02:14

я помню тут был холиварчик пару месяцев назад что кто-то притащил вроде дефрекорды в CLJS, чтоб мол ловило опечатки по сравнению с обычными мапами

artemyarulin21:02:38

вродь даже во время компиляции

artemyarulin21:02:18

или там совсем о другом было “и не 100 рублей, а 20 и не выиграл, а проиграл”(с)

malch21:02:05

в record ты можешь сделать assoc чего угодно, так что не думаю, что какая-то проверка имеется

malch21:02:12

ну и традиционная ссылка на доку: http://clojure.org/reference/datatypes simple_smile

artemyarulin21:02:28

доку то я и сам могу, “а поговорить?”(с) 😄

artemyarulin21:02:52

освежу в памяти ага, спс

malch21:02:59

без проблем 😉