|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
Если развивать идеи Роберта Мартина то в каментах нужно писать только то что НЕВОЗМОЖНО описать кодом. Я обычно в каментах пишу о намерениях например выкосить этот код в будущем. Кстати у Бугаенко были тоже интересные идеи в части понимания кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:14 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
На одном из проектов часто приходилось разбираться с чужим кодом Обычно проблема не с "что делает это код", а самое главное "зачем он это делает и нахрена вообще все это было надо" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:25 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev На одном из проектов часто приходилось разбираться с чужим кодом Обычно проблема не с "что делает это код", а самое главное "зачем он это делает и нахрена вообще все это было надо" Да. Вот еще одно интересное наблюдение. С связи с SingleResponsibility каждый компонент должен делать 1 узкую задачу. Но этих простых компонентов - тыщи. Каждый из них - как кирпичик LEGO сам по себе не несет особого смысла. Но будучи собранными в кучу - они представляют какой-то смысл. И получается что JavaDoc должен описиывать не SingleResp-class, на некий агрегат или композит из множества компонентов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 14:39 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
mayton Да. Вот еще одно интересное наблюдение. С связи с SingleResponsibility каждый компонент должен делать 1 узкую задачу. Но этих простых компонентов - тыщи. Каждый из них - как кирпичик LEGO сам по себе не несет особого смысла. Но будучи собранными в кучу - они представляют какой-то смысл. И получается что JavaDoc должен описиывать не SingleResp-class, на некий агрегат или композит из множества компонентов. И тут мы приходим к ситуации, когда в сервисе spring создается объект, ктр. для решения своих задач создает свои объекты и т.д. И там где-то далеко в этой куче понадобится доступ к какому-нибудь сервису spring. И что делать? Как обратиться к spring? Это я к теме топика. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 15:03 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
bob1970 mayton Да. Вот еще одно интересное наблюдение. С связи с SingleResponsibility каждый компонент должен делать 1 узкую задачу. Но этих простых компонентов - тыщи. Каждый из них - как кирпичик LEGO сам по себе не несет особого смысла. Но будучи собранными в кучу - они представляют какой-то смысл. И получается что JavaDoc должен описиывать не SingleResp-class, на некий агрегат или композит из множества компонентов. И тут мы приходим к ситуации, когда в сервисе spring создается объект, ктр. для решения своих задач создает свои объекты и т.д. И там где-то далеко в этой куче понадобится доступ к какому-нибудь сервису spring. И что делать? Как обратиться к spring? Это я к теме топика. Я не совсем понял суть проблемы. В Спринг приложении ты в любой момент можешь дернуть глобальный объект контекста и получить в руке то что надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 15:07 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
mayton Я не совсем понял суть проблемы. В Спринг приложении ты в любой момент можешь дернуть глобальный объект контекста и получить в руке то что надо. Согласен. Но как-то некрасиво. Решение с ктр начался топик этим и не нравится. Подсказали @Configurable. Похоже на правду. Очень похоже. Надо только посмотреть как в тестах будет выглядеть. Вроде бы нормально на первый взгляд. Детально не смотрел еще. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 16:11 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
bob1970 И тут мы приходим к ситуации, когда в сервисе spring создается объект, ктр. для решения своих задач создает свои объекты и т.д. И там где-то далеко в этой куче понадобится доступ к какому-нибудь сервису spring. И что делать? Как обратиться к spring? Это я к теме топика. Что это за такие объекты, что из них надо дергать спринг? Если так происходит, то что-то не то со структурой проекта. Можешь на пальцах показать пример? - возможно легче все порефакторить, чем тащить @Configurable ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 17:08 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
Ну это как из С++ вызывать Python который снова вызывает С++. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 17:16 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
SpringMan, Можно и на примерах. Только толку ноль, свалимся в холивар "Spring головного мозга"/"Вы не умеете его готовить". И мне не нужно решать какой-то конкретный use-case. Я бы немного шире взял. Что мы пишем в Service? Бизнес логику. Какое-то поведение решаем созданием объектов. Но далеко от сервиса не уходим, т.к. там все зависимости. Держим все время в голове, что сервис это одиночка, без состояния. С учетом этих ограничений часто пишем логику в самом сервисе. Он становится жирным, забиваем на single-responsibility. Да, я в курсе про слои и т.п. Тесты отдельная песня. Зачем то поднимаем SpringRunner, боремся с ним, тесты тормозят. Представь другую схему. Создавай объекты какие хочешь. Его созданием, поведением сам рулишь. Он может быть и не одиночка, и доступен GC. А этому объекту вдруг понадобиться доступ к например репозиторию. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 18:31 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
Если на примерах - нельзя пояснить то наверное что-то туго с обоснованием. Объясняющий или стесняется своей архитектуры, или сам ее не понимает но просто верит, ибо много кода написано да и привычка. Сильная вещь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 19:17 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 19:17 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 23:05 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
bob1970 SpringMan, Можно и на примерах. Только толку ноль, свалимся в холивар "Spring головного мозга"/"Вы не умеете его готовить". И мне не нужно решать какой-то конкретный use-case. Я бы немного шире взял. Что мы пишем в Service? Бизнес логику. Какое-то поведение решаем созданием объектов. Но далеко от сервиса не уходим, т.к. там все зависимости. Держим все время в голове, что сервис это одиночка, без состояния. С учетом этих ограничений часто пишем логику в самом сервисе. Он становится жирным, забиваем на single-responsibility. Да, я в курсе про слои и т.п. Ну как бы решение предлагают во всяких книжках по TDD. :-) Если придерживаться данной методологии разработки, то по заверениям, такого не будет. Сейчас я себя "тренирую" не использовать аннотации для создание компонентов в Spring, только в классе конфигураций. И все внедрения зависимостей делать через конструктор. bob1970 Тесты отдельная песня. Зачем то поднимаем SpringRunner, боремся с ним, тесты тормозят. Да - поднятие контекста тяжелая вещь. Но она нужна не для всех тестов, а только которые тестируют поведение всего приложения. Для остального должны использоваться юнит-тесты. Как минимум в теории. Но т.к. большинству лень, то обычно поднимают весь контекст, чтобы протестировать что "2+2 == 4". bob1970 Представь другую схему. Создавай объекты какие хочешь. Его созданием, поведением сам рулишь. Он может быть и не одиночка, и доступен GC. А этому объекту вдруг понадобиться доступ к например репозиторию. То что вы предлагаете, это плохо. Приложение становится "хрупким". написать юнит-тест невозможно. Я и с такими приложениями сталкивался.... Там изменишь в одном месте, а у тебя все приложение стает колом. Нужно разделять поведение. И тут либо через if-чики. Или глубокий рефакторинг. Т.к. if-чик это быстро. То потом после 3-5 поколений программистов видишь объект на 10000 строк if-ов в одном методе. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 06:25 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
mad_nazgul Да - поднятие контекста тяжелая вещь. Но она нужна не для всех тестов, а только которые тестируют поведение всего приложения. Для остального должны использоваться юнит-тесты. Как минимум в теории. Но т.к. большинству лень, то обычно поднимают весь контекст, чтобы протестировать что "2+2 == 4". Это не правда про "тяжёлое" поднятие контекста. Вы просто не умеете его готовить ) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 10:37 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
unregestered mad_nazgul Да - поднятие контекста тяжелая вещь. Но она нужна не для всех тестов, а только которые тестируют поведение всего приложения. Для остального должны использоваться юнит-тесты. Как минимум в теории. Но т.к. большинству лень, то обычно поднимают весь контекст, чтобы протестировать что "2+2 == 4". Это не правда про "тяжёлое" поднятие контекста. Вы просто не умеете его готовить ) Это смотря с чем сранивать. Как минимум Код: java 1. 2. 3. 4. 5. 6.
быстрее исполняется чем Код: java 1. 2. 3. 4. 5. 6. 7. 8.
<:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 14:28 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
Результаты Яндекс.Танк 1000 запросов, 10 сек Получается вполне можно пользоваться @Configurable. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 17:44 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
Какое отношение имеет яндекс к теме топика? Чьорт вась побери... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 19:01 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
mayton, Яндекс.Танк бесплатный инструмент нагрузочного тестирования. По ссылке просто результаты тестов. Результаты Впрочем уже не важно. Метод работает без потери производительности. Пользоваться можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 19:14 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
На фига здесь лишний интерфейс IServiceForFree ?? Это же не, прости госпади, EJB 2.1, где интерфейсы надо было на каждый чих создавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 19:54 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
unregestered На фига здесь лишний интерфейс IServiceForFree ?? Это же не, прости госпади, EJB 2.1, где интерфейсы надо было на каждый чих создавать. Вот это по нашему, по бразильски. Да нафига нужны все эти интерфейсы? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 20:51 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
Куча быдлкодеров перешло с EJB на спринг и начинают копировать ужасные EJB практики там, где это нафиг не нужно. FizzBuzz Enterprise Edition ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 15:46 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
А что у разработчиков Node - вообще таких проблем нет? Складывается впечатление что им открыто - истинное буддийское знание. А мы (java-исты) - как лохи позорные?... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 16:38 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
unregestered На фига здесь лишний интерфейс IServiceForFree ?? Это же не, прости госпади, EJB 2.1, где интерфейсы надо было на каждый чих создавать. Не сразу дошел смысл этого комментария. А смысл прост. Не создавать интерфейс, если предполагается единственная реализация. Полностью согласен. В данном абстрактном примере хотел подчеркнуть, что это какая-то спринговая зависимость. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2020, 09:18 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
Идея овер-инжинернига описана в статье на хабре https://habr.com/en/post/113128/ К сожалению в Spring заходят новички которых сразу учат длинным реализациям. Думаю что через лет 5 такого учения они будут уже не в состоянии написать простой код. Такая проф-деформация специфичная именно для Spring-сегмента. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2020, 14:00 |
|
Получение spring beans в классе, неуправляемом spring
|
|||
---|---|---|---|
#18+
mayton Идея овер-инжинернига описана в статье на хабре https://habr.com/en/post/113128/ К сожалению в Spring заходят новички которых сразу учат длинным реализациям. Думаю что через лет 5 такого учения они будут уже не в состоянии написать простой код. Такая проф-деформация специфичная именно для Spring-сегмента. Ну типичный карго-культ. Просто учатся по "делай как я", не задавая вопросы. Имхо это все же лучше, чем класс на 10 000 строк с методом содержащим "if else if" на 5000 - 7000 строк. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2020, 07:59 |
|
|
start [/forum/topic.php?fid=59&msg=39952020&tid=2120807]: |
0ms |
get settings: |
21ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
443ms |
get tp. blocked users: |
1ms |
others: | 300ms |
total: | 842ms |
0 / 0 |