Немножко динамической типизации и кложури
Jan. 17th, 2013 04:59 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Макрос 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
Date: 2013-01-17 02:43 pm (UTC)[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]
и тут разница сразу понятна.
с правильным форматированием пропустить скобки сбалансированным образом просто нельзя, а несбалансированные еще ридер подсветит.