Size: a a a

2020 May 15

AV

Alexander Vershilov in fprog_spb
Но это достаточно мощные типы, не просто типы объектов
источник

YS

Yan Shkurinskiy in fprog_spb
Гарантия на уровне "Нормально делай - нормально будет")
источник

AV

Alexander Vershilov in fprog_spb
Ещё, например, такая задача к нам пришёл json, пусть известной формы, в нём есть userId: int, и есть всякие данные int. И нам нужно посчитать количество int-ов
источник

AV

Alexander Vershilov in fprog_spb
Но не не считать тот который в поле userId
источник

AV

Alexander Vershilov in fprog_spb
(Тупой пример конечно, если надо потом подумаю над нормальным)
источник

YS

Yan Shkurinskiy in fprog_spb
Стандартно про широту и долготу
источник

YS

Yan Shkurinskiy in fprog_spb
Если про ньютайпы)
источник

AV

Alexander Vershilov in fprog_spb
В языке с типами это можно выразить т.к. int в userId может иметь другой тип по сравнению с другими
источник

AV

Alexander Vershilov in fprog_spb
Несмотря на то, что структурное предствление тоже самое
источник

AV

Alexander Vershilov in fprog_spb
Т.е. макрос, или функция, которая будет рекурсивно обходить структуру не будет их отличать если нет типов
источник

AS

Alex Shipilov in fprog_spb
7. I/O and other activities with side-effects should be avoided in transactions, since transactions will be retried. The io! macro can be used to prevent the use of an impure function in a transaction.
https://clojure.org/reference/refs
источник

AV

Alexander Vershilov in fprog_spb
Ну и не складывать широту с долготой и не умножать долланы на доллары
источник

YS

Yan Shkurinskiy in fprog_spb
Похоже, будто эта штука бросает исключения в рантайме, если будет IO
источник

AV

Alexander Vershilov in fprog_spb
Если макрос io! окажется в транзакции, то он бросит исключение
источник

AV

Alexander Vershilov in fprog_spb
Я так прочитал
источник

YS

Yan Shkurinskiy in fprog_spb
Ну, лучше чем ничего)
источник

AV

Alexander Vershilov in fprog_spb
Т.е. ты можешь защитить свой код от выполенения в транзакции
источник

YS

Yan Shkurinskiy in fprog_spb
Правда в рантайме и исключением, но тоже хорошо!
источник

AV

Alexander Vershilov in fprog_spb
Делаешь запрос во внешний мир - делай его в io!
источник

YS

Yan Shkurinskiy in fprog_spb
Лучше чем без этого, да
источник