Немножко динамической типизации и кложури
Макрос with-db-comment выполняет указанную функцию с параметрами в контексте коннект+транзакция, с логом комментария к транзакции в БД.
dump-seq-debug скармливает последовательность в log4j для отладки.
вот такое падает с NPE:
(with-db-comment "(get-subaccounts 20)"
(dump-seq-debug (get-subaccounts "20")))
вот такое работает:
(with-db-comment "(get-subaccounts 20)"
dump-seq-debug (get-subaccounts "20"))
Можно ли увидеть разницу с первого раза и понять, откуда там NPE? :)
Вот эта содомия с лишними или пропущенными скобками, не обнаруживаемыми компилятором работу с кложурелиспами делает немного неудобной.
И практически не пригодной для осмысленного использования людьми без встроенной типовыводилки в голове.
dump-seq-debug скармливает последовательность в log4j для отладки.
вот такое падает с NPE:
(with-db-comment "(get-subaccounts 20)"
(dump-seq-debug (get-subaccounts "20")))
вот такое работает:
(with-db-comment "(get-subaccounts 20)"
dump-seq-debug (get-subaccounts "20"))
Можно ли увидеть разницу с первого раза и понять, откуда там NPE? :)
Вот эта содомия с лишними или пропущенными скобками, не обнаруживаемыми компилятором работу с кложурелиспами делает немного неудобной.
И практически не пригодной для осмысленного использования людьми без встроенной типовыводилки в голове.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
(Anonymous) 2013-01-17 02:43 pm (UTC)(link)[code]
dump-seq-debug (get-subaccounts "20"))
[/code]
при форматировании получиться никак не может.
то, что она некорректна, видно при первом же беглом взгляде на код.
в реальном коде может быть только такое:
[code]
(with-db-comment "(get-subaccounts 20)"
(dump-seq-debug (get-subaccounts "20")))
(with-db-comment "(get-subaccounts 20)"
dump-seq-debug
(get-subaccounts "20"))
[/code]
и тут разница сразу понятна.
с правильным форматированием пропустить скобки сбалансированным образом просто нельзя, а несбалансированные еще ридер подсветит.
no subject
no subject
no subject
no subject
А статическая типизация не нужна!
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
no subject
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(Anonymous) - 2013-01-18 12:27 (UTC) - Expand(no subject)
no subject
(no subject)
no subject
С другой стороны если это макрос, то сделан он как-то криво. with- макросы не принимают что-либо для дергания, а принимают "контекст" (назовем его так) и тело для выполнения, правда это не обязательство, а хороший тон.
Тут вообще наезд настолько специфический, что больше похоже на бред, а не на реальный наезд.
(no subject)
(no subject)
no subject
(no subject)
no subject
no subject
no subject
no subject
всегда лучше "традиционного"
Правда, я за скобкой ещё и комментарий ставлю, к чему она относится, чтобы вверх-вниз не бегать
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
Но вообще отдельная строка для закрывающей скобки часто удобнее (и комментарии ставить проще и копироваьт строки.
(no subject)
(no subject)
(no subject)
(no subject)