-
Notifications
You must be signed in to change notification settings - Fork 6
Резюме зустрічі 13.01.16
Поточні задачі [1:26 - 6:15]
- зробити демо XSLT-перетворення #64 [1:26 - 6:15]
Запитання [6:15 - 56:40]
Логика в контроллерах. Мы много раз говорили на митингах, что логики в контроллерах и дао быть не должно. Логика должна быть только в сервисном слое. Верно? [6:15 - 42:20]
-
роль контролера [6:15 - 11:50]:
- конвертація з однієї сущності в іншу;
- формування бізнес-сущностей;
- валідація введених користувачем даних;
- роутинг url;
- exception handling;
-
перенести класи [11:50 - 18:50]:
- FilterWrapper -> controller
- FilterConverter -> controller
-
транзакции [22:30 - 35:00]:
-
зробити рефакторинг
EventTechnologySqlBuilder
- погана читаємість [35:00 - 38:50]- багато вкладень
-
рівень DAO [38:50 - 42:20]:
- може містити логіку в SQL;
Создание собственных исключений. Я считаю, что для таких случаев как "пользователь не найден", "пользователь уже существует" и им подобных нужно использовать наследование от Exception, а не от RuntimeException. Саня Власов утверждает, что сейчас бест практис - это использование unchecked исключений (пруфов он мне не давал). В принципе, я нашел статью Брюса Эккеля "Does Java need Checked Exceptions?" http://www.mindview.net/Etc/Discussions/CheckedExceptions но я не считаю, что он прав в данном вопросе. ИМХО, если мы используем checked исключения, то мы устанавливаем контракт, которого должны придерживаться и мы сами, и те, кто будет работать с кодом после нас. Если использовать unchecked исключения, то их легко забыть, потерять и т.п. Что скажешь ты? Какой подход ты бы хотел видеть в нашем проекте? [42:20 - 45:45]
- краще писати Runtime-exceptions;
- chrcked-exceptions породжують велику кількість try-catch;
Саня Власов говорит, что ты описал на каком-то из митингов (возможно, я тогда отсутствовал) правильную работу с исключениями в "слоеном" приложении так: кидаем дао-эксепшн в дао, ловим его в сервисе, кидаем вместо него сервис-эксепшн, который ловим в контроллере, где кидаем свой контроллер-эксепшен, который уже в свою очередь обрабатывается ЭксепшенХендлером. Действительно ли мы должны так делать? Вроде как цель этого - сделать слои независимыми, чтобы слой контроллера ничего не знал об исключениях слоя Дао, но выглядит это как появление дополнительных обработок исключений в каждом методе сервисного слоя (как сделано на данный момент в ветке refactoring-exeptions) [45:45 - 56:40]
- треба залишити конвертацію