|
|
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
Как же все-таки не хватает лямбд:) Как бы вы отрефакторили такой код? - Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Вот руки так и чешутся, а нормального способа не могу придумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 02:01:07 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
забыл ник, Например, убрать catch -блоки с параметром AdidasServiceException . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 02:32:07 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
забыл ник, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. P.S. Не знаю как быть в этом случае с аннотацией @POST P.P.S. Думаю, что можно всю логику формирования JSON'а загнать в функцию respond , если это возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 03:01:27 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
ну это понятно, меня интересует как люди рефакторят Код: java 1. 2. 3. 4. 5. Пока вижу только такой вариант - создать интерфейс коллбэка и два анонимных класса, для такой задачи конечно как из пушки по воробьям.. Буду ждать лямбды(пока писал понял что мой вариант и есть лямбды без сахара:)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 03:02:51 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
Usmanзабыл ник, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. P.S. Не знаю как быть в этом случае с аннотацией @POST P.P.S. Думаю, что можно всю логику формирования JSON'а загнать в функцию respond , если это возможно. не, уж лучше так пусть останется:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 03:04:51 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
Перефразирую вопрос так - вы видите такой код ваши действия - 1) хер с ним 2) имитируете функцональный стиль 3) создаете энумерейшн и разруливаете через if\else switch\case в зависимости от значения энума ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 03:07:51 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
Речь о том, что все методы отличаются только одним вызовом? Тогда так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. И вызов: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 08:10:02 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
забыл никну это понятно, меня интересует как люди рефакторят Код: java 1. 2. 3. 4. 5. Пока вижу только такой вариант - создать интерфейс коллбэка и два анонимных класса, для такой задачи конечно как из пушки по воробьям.. Буду ждать лямбды(пока писал понял что мой вариант и есть лямбды без сахара:)). А если так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 09:01:34 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
забыл ник, Фактически-то происходит JSon-сериализация объекта AdidasService.Result . Делаем так: Код: java 1. P.S. Gson().toJson будет сериализировать только проинициализированные поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 09:40:33 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
забыл ник, Во-первых, лови и обрабатывай только один базой exception, throwable или exception. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 10:04:20 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
Usmanзабыл ник, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. P.S. Не знаю как быть в этом случае с аннотацией @POST P.P.S. Думаю, что можно всю логику формирования JSON'а загнать в функцию respond , если это возможно. Это что, анти рефакторинг? Раньше не было диспатча явного, теперь он появился... Надо, если уж в эту сторону копать, делать визитор, вторичную диспетчеризацию по типу запроса, но проблема то в том, что первичная диспетчеризация уже по типу запроса, но средствами мапинга запросов на методы сервлета. Но я лично вообще не вижу там причин для рефакторинга, там есть только повторное использование кода обработки исключения и формирования json - на. Его можно исключить использую тривиально функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 10:19:01 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
забыл никну это понятно, меня интересует как люди рефакторят Код: java 1. 2. 3. 4. 5. Пока вижу только такой вариант - создать интерфейс коллбэка и два анонимных класса, для такой задачи конечно как из пушки по воробьям.. Буду ждать лямбды(пока писал понял что мой вариант и есть лямбды без сахара:)). Как бы лямбда - это функция с данными. Если у тебя уже есть все данные в твоем объекте сервера, то вот твоя лямблиоз уже и есть, что тебе ещё надо - не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 10:23:03 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Здесь ничего не надо делать, здесь надо использовать базовый класс сервлета который был бы уже с поддержкой json — возвращал бы всегда json и оборачивал все обработчики в стек исключений с формированием нужных Jain response. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 10:27:52 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
забыл ник, Достаточно просто поделить на слои. 1) Слой обработки ошибок\отката транзакций - ServletFilter, Proxy или другой AOP 2) Слой сериализации Model->JSON, Java Serialization, Protobuf, etc 3) Dispatcher, которй редиректит запросы на методы бизнес-логику 4) Cлой логики, который формирует Model Всё остальное - частные варианты реализации разделения на слои. Никакие новые ухищрения не нужны. Слоёв может быть больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 10:30:39 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
забыл никКак же все-таки не хватает лямбд:) Как бы вы отрефакторили такой код? - Вообще говоря для лямбд нужны еще анонимные типы, вывод типов и полноценные замыкания. Например я шарпе я могу так. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. И использование. Код: c# 1. Компилятор сам выведет тип переменной org, причем это может быть анонимный тип и возмет из внешнего контекста orgGuid. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 10:34:00 |
|
||
|
Как бы вы отрефакторили
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто что, анти рефакторинг? Раньше не было диспатча явного, теперь он появился...Это всего лишь попытка обобщить несколько (по структуре одинаковых) действий в одну единую функцию-переключатель.MasterZivНадо, если уж в эту сторону копать, делать визитор, вторичную диспетчеризацию по типу запроса, но проблема то в том, что первичная диспетчеризация уже по типу запроса, но средствами мапинга запросов на методы сервлета.Все не настолько ужасно, как в оконной процедуре обработки сообщений (WinAPI). ТС привел фрагмент кода, где формируется ответ для клиента. На счет запроса, то там конечно будет задаваться тип операции/действия, который успешно будет десериализирован и передан в качестве параметра в функцию ввиде константы enum. MisterZiv, Согласен, что все это избыточно, переосмыслил и уже предложил намного компактный вариант: 14445905 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 11:02:30 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2129145]: |
0ms |
get settings: |
20ms |
get forum list: |
25ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
38ms |
get topic data: |
17ms |
get first new msg: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 296ms |
| total: | 489ms |

| 0 / 0 |
