|
|
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Alexey TominВполне может быть так, что уникальность логина нового пользователя контролируется уникальностью в БД. Как результат- БД кидает исключение. С точки зрения слоя ДАО это именно что исключение. Но выше, где-то на уровне UI, оно превращается во вполне стандартное окошко пользователю про то, что такой логин уже есть.Вся это цепочка - логическая ошибка проектирования. 1. Проверить существование объекта не настолько накладно, чтобы этого нельзя было ещё до вставки. 2. Сегодня ограничение отключат для технологической операции, а потом не включат или потому, что забыли или потому, что "реально дубль, но всем пофиг, т.к. увидят штатное исключение, но только на уровне DAO". А послезавтра начнут рвать волосы на разных частях тела, т.к. дублей станет существенно больше трёх. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 16:44 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
mayton+Еще разворачивание стека, если вы его логгируете средствами log4j тоже ударит по перформансу. JVM обнаружит часто выкидываемое исключение и выкинет из него stacktrace нафиг, ибо нефиг. Разве не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 17:40 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov1. Проверить существование объекта не настолько накладно, чтобы этого нельзя было ещё до вставки. Ну проверил. Нету. Вставил- а уже есть. Мало ли кто ещё вставляет. Каждому своё. БД хорошо обеспечивает уникальность- пусть делает. Но пусть будем - insert from select where not exists- но всё одно- то, что exception в точке его создания, может оказаться нормальной ситуаций выше. Как пример- мы знаем, что связь плохая и выше делаем N попыток выполнить сетевой запрос. Или просто (внешний) сервис иногда может 500 возвращать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 22:06 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Alexey TominНу проверил. Нету. Вставил- а уже есть. Мало ли кто ещё вставляет.Совершенно верно. Только это уже будет однозначная ошибка. Не техническая, так организационная. А не "здесь - рыба, там - не играем".Как пример- мы знаем, что связь плохая и выше делаем N попыток выполнить сетевой запрос. Или просто (внешний) сервис иногда может 500 возвращать.А зачем люди с конями мешаются в одну кучу??? Про N попыток авансом - вообще шедевр, а вставка дубля должна возвращать "400 Bad request", что никак не пересекается с 5xx группой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 10:37 |
|
||
|
Как и что вы логируете ?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovКак пример- мы знаем, что связь плохая и выше делаем N попыток выполнить сетевой запрос. Или просто (внешний) сервис иногда может 500 возвращать.А зачем люди с конями мешаются в одну кучу??? Про N попыток авансом - вообще шедевр, а вставка дубля должна возвращать "400 Bad request", что никак не пересекается с 5xx группой. Я не об этом. Внешний сервис может быть с багами- такова жизнь. Говоришь "сделай нечто", а он такой "уйди старушка, я в печали"- 500 тебе в морду. А то и 400 кинет- когда как. Делаешь ещё раз- о, сработало. Сервис внешний, багрепорты можно слать сколько угодно. Да, можно передавать в метод "сделай N попыток", но это уже когда совсем клиника (или просто ошибки сети). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 08:56 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2123755]: |
0ms |
get settings: |
6ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 293ms |

| 0 / 0 |
