On Saturday, May 25, 2013 11:50:37 AM UTC+3, Max Lapshin wrote:
К счастью, эрланг не позволяет делать таких страшных вещей, как
открытие втихаря транзакций какой-то строчкой где-то в XML.
Он запросто позволяет делать parse_transform, который для меня выглядит гораздо менее прозрачный чем транзакционная анотация в Джаве.
Если вам нужны транзакции, то явно открывайте и используйте.
Получается мешанина из бизнес логики и доступа к БД, да и выглядит для понимания/поддержки/тестирования проще такой метод
@Transactional
long saveUser(String name, String passwd) {....}
чем
long saveUser(String name, String passwd, Connection conn) {
Transaction trans =conn.getCurrentTransaction()
boolean isNewTrans = false;
if(null == trans) {
trans = conn.createNewTransaction();
isNewTrans = true;
}
try {
....
if(isNewTrans) {
trans.commit();
}
} catch(MyException e) {
trans.rollback();
}
Так же, к счастью, в ковбое нет никаких штатных сессий, потому что для
разных задач они нужны сильно разные. Где-то вполне хватает cookie
session, где-то делают шаренные сессии с серверным хранением. Но,
наверное, если привыкнуть к тому, что сессии магически включаются
парой сотен строк XML конфигурации, то такой подход непривычен.
Ковбой — это всё таки неплохой пример софтины, которая делает только
то, что должна, не мешая различным пользователям своими умолчаниями и
соображениями.
Только в этом треде мне показали три варианта решения сессий - те люди потратили свое время на делание одного и того же.
В моем понимании делать веб сервер без сессий в 21 веке моветон. Мне думается правильней было бы сделать один простой механизм для одного сервера где данные хранятся в памяти и иметь behaviour и список callbacks, реализовав которые можно менять имплементацию.
А так надо самому реализовывать простейший вариант, потом следить если куки отключены, то передавать сессию через урл.