|
Нов арх
|
|||
---|---|---|---|
#18+
Всем привет. Хочу спросить совета у старожилов так сказать. Есть некое приложение- стандартная архитектура MVC ,под капотом бут2,постгрес ,хибер и хезелькаст приложение медлленно работает изза того что база данных откровенное дерьмо,на нее повешен жпа слой ,который так же откровенное дерьмо и сверху все это прикрыто запросами ,которые так же откровенное дерьмо с джоинам,которые вызывают декартово произведение,сущности хибер кидаются сразу на фронт - со всеми вытекающими,так же никак не реализована многопоточка вообщем наше руководство пришло к выводу что нужно что то менять и решило поменять !внимание архитектуру) тоесть не переделать базу,не переделать жпа слой ,может быть что то перевести на многопоточку в сервисах,нет! ввели новую архитектуру- в стандартый мвс воткнули два лишних слоя,при этом везде теперь запреты,тут нельзя спринг,тут нельзя что то из доменной модели,тут ломбок нельзя,тут вообще нельзя ничего кроме джава маперы писать руками ,хотя есть модельмапер отличный .. складывается ощущение что оттуда пора уходить. Расскажите может было такое у кого то? есть смысл просто смириться и печать код,который от тебя ждут или просто поменять контору,тем более есть на руках действующий оффер ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 18:44 |
|
Нов арх
|
|||
---|---|---|---|
#18+
localhost8080, Ты зря такие топики опять в java. Их в форум работа надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 20:15 |
|
Нов арх
|
|||
---|---|---|---|
#18+
Имхо - не нравится, чем занимаешься и есть куда валить? Вали. Однако я задал бы себе пару вопросов:
... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 20:20 |
|
Нов арх
|
|||
---|---|---|---|
#18+
chpasha Имхо - не нравится, чем занимаешься и есть куда валить? Вали. Однако я задал бы себе пару вопросов:
проблема в том,что я чувтвстую что мы идем не тем путем- да мне платят - я могу тупо делать что от меня хотят,но я вот явно вижу что мы сейчас тратим ресурсы в никуда ситуация простая- пришел человек,стаж больщой - но он в джаве 0 ему сходу не понавился спринг и хибер) он решил все перевести на жук + обычная джава я четно не знаю что тут сказать у нас был реализован кэш - он такой не видел - начал мутить что то на подобии пхп короче по факту запрещено все кроме джавы- даже ModelMapper нельзя Lombok нельзя - у меня воломы дыбом встают от этого бойлер плейта и контрусторов этих.. хз кто то двигается на пути прогресса а у меня такое чувство что мы куда то обрато в легаси 2000 года.. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 20:50 |
|
Нов арх
|
|||
---|---|---|---|
#18+
PetroNotC Sharp localhost8080, Ты зря такие топики опять в java. Их в форум работа надо. да с точки зрения работы там будет понятно все- слать все лесом и уходить я хочу все таки для себя разобраться- ибо контора мне нравится и непонятно что в этой ситуации делать либо я ошибаюсь и наша новая архтектура взлетит либо я прав ,но я не вижу ничего кроме тонны дополнительных маперов,чтобы наше приложение стало лучше рабоать) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 21:23 |
|
Нов арх
|
|||
---|---|---|---|
#18+
localhost8080 Всем привет. Хочу спросить совета у старожилов так сказать. Есть некое приложение- стандартная архитектура MVC ,под капотом бут2,постгрес ,хибер и хезелькаст приложение медлленно работает изза того что база данных откровенное дерьмо,на нее повешен жпа слой ,который так же откровенное дерьмо и сверху все это прикрыто запросами ,которые так же откровенное дерьмо с джоинам,которые вызывают декартово произведение,сущности хибер кидаются сразу на фронт - со всеми вытекающими,так же никак не реализована многопоточка Ты на митинге поднимал воппрос оптимизации? Какие были от тебя предложения? Складывается ощущение что ты просто сегодня напился с горя и пришел сюда. Был тут такой один. Крысопытом звали. Всё ходил и ныл. Ему в ПТ таких советов накидали - с тех пор молчит и не ноет. Лежит себе тихо на глубине полтора метра. Улавливаешь? Так что или давай сюда архитектурную диаграмму и короче ... соберись, тряпка! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 23:30 |
|
Нов арх
|
|||
---|---|---|---|
#18+
Работал в компании, где на проекте были примерно так же. До 150 человек (на одном проекте!), 5-6 лет работы, на выходе голимое дерьмо, которое заказчик при первой возможности выкинул и вернулся на предыдущею систему. На предыдущей системе (клиент-сервер, forms 6.0) так и живут. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 10:44 |
|
Нов арх
|
|||
---|---|---|---|
#18+
Очень часто тема топика звучит так. Меня взяли юнгой на корабль. Корабль куда-то плывет. Но корабль - дерьмо. И капитан со стар-помом - полные дураки и ничего не понимают. Скоро доплывём до края земли. Складывается ощущение что пора прыгать за борт. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 10:49 |
|
Нов арх
|
|||
---|---|---|---|
#18+
localhost8080 Всем привет. Расскажите может было такое у кого то? есть смысл просто смириться и печать код,который от тебя ждут или просто поменять контору,тем более есть на руках действующий оффер Честно не понимаю в чём тут вопрос?! Ну как бы есть возможность уйти с не приятной работы - уходи. Может на другой работе повезет. <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 10:54 |
|
Нов арх
|
|||
---|---|---|---|
#18+
mayton Меня взяли юнгой на корабль. Корабль куда-то плывет. Но корабль - дерьмо. И капитан со стар-помом - полные дураки и ничего не понимают это не важно - если то, что они делали раньше ему нравилось, а то, что делают сейчас - нет, то пусть идет туда, где нравится, будь он хоть сто раз не прав ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 10:59 |
|
Нов арх
|
|||
---|---|---|---|
#18+
localhost8080, Стас. В топике нет вопроса по архитектуре. А болтовню тут не любят. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 11:02 |
|
Нов арх
|
|||
---|---|---|---|
#18+
chpasha mayton Меня взяли юнгой на корабль. Корабль куда-то плывет. Но корабль - дерьмо. И капитан со стар-помом - полные дураки и ничего не понимают это не важно - если то, что они делали раньше ему нравилось, а то, что делают сейчас - нет, то пусть идет туда, где нравится, будь он хоть сто раз не прав Я думаю что сильный разработчик спокойно сообщает о намерении уйти за 2 месяца и спокойно находит позицию и так-же спокойно уходит. Что сотрясать воздух? Корабль плывёт. И если у тебя нет возможности поменять его курс - уходи чьорт тебя побери. К чему рефлексировать? Одни нервы и толку никакого. Я так понимаю что просто у людей накапливатся боль и ее надо куда-то выплеснуть. Просто место выбрано неудачно. Может в дедофорум было-бы лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 11:51 |
|
Нов арх
|
|||
---|---|---|---|
#18+
В общих словах архтектура выглядит так - 1.слой перситенс- там всякие имлементации репозиториев,маперы и тд(разрешено все) 2.доменный слой тут интерфейс репо + сама доменная модель- (тут запрещено все - спринг,ломбок,короче чистая джава только) 3.слой юз кейса- который фактически делает круд операции над доменными моделями- тоесть может быть createUserUserCase, deleteUserUseCase тут тоже нельзя спринг,написаны свои анотации вообщем 4.СЛой это презентер- тут у нас лежат имлпементации презетеров( который в юзкейсе в виде интрерфейса вложенного) и респонсы - это то что мы непосрдественно скармливаем контроллеру( тут опять все разрещено- спринг и ломбок) как я это вижу- какая то динозавра с головой и жопой спринга,внутри которой есть прослойка на чистой джаве зачем это я честно хер знает- но сейчас я корячу тонный бойлер плейт кода- какие то астрономические конструкторы,учитывая что иерахия и все запрещено и это не 17 джава в констктор нужно как то загнать тип - приходится прям внутри делать инстаст офф вместо 1 строчки кода с ModelMapper -но нам запретили любые сторонние мапперы от этого ломается мозг ,вместо какой то реальной бизнес логики или проблем быстродействия - сидишь и изобретаешь велосипед заново-вот что то типо такой диичи Код: 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.
вот эта портянка выше - в одну строчку пишется с помощью ModelMapper- при этом при измененеии названия полей или еще чего то - мне не нужно будет сюда идти и что то менять ,а сейчас это жесточайший хардкод поэтому у меня дичайше горит зад изза вот таких вот портянок ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2021, 21:59 |
|
Нов арх
|
|||
---|---|---|---|
#18+
из этой портянки я вижу только что если что то где то меняется - оно не скомпилируется при ModelMapper оно упадет в рантайме при этом мы будем писать тонны бойлер плейта с намеком на то ,что мы настолько тупы и ниразу не запустим свой код- чтобы увидеть что ModelMapper не может смапить.... Вообщем поэтому и горит задница ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2021, 22:06 |
|
Нов арх
|
|||
---|---|---|---|
#18+
localhost8080, вроде основной вопрос был что тормоза в проекте. Где именно тормоза ты не выяснил и начал гнать волну на условия работы. Найди где тормоза! Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2021, 22:35 |
|
Нов арх
|
|||
---|---|---|---|
#18+
PetroNotC Sharp localhost8080, вроде основной вопрос был что тормоза в проекте. Где именно тормоза ты не выяснил и начал гнать волну на условия работы. Найди где тормоза! Не? тормоза там везде изза неправильного использования ЖПА я немного декомпозировал и вот показал то что мы кидаем на фронт - теперь это надо мапить руками- вместо одной строчки с модельпамером я вот этого умом не понимаю - где выгода будет? как по мне этот бойлер плейт дороже писать и еще дороже поддерживать ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2021, 22:43 |
|
Нов арх
|
|||
---|---|---|---|
#18+
localhost8080 тормоза там везде изза неправильного использования ЖПА Начальство скажет - где цифры и логи тормозов? Говорил про ТОРМОЗА. А счас сказал про БОЙЛЕР ПЛЕЙТ. Ну не дураки же они у вас там если ты сам всё в своем посте смешал в кучу. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2021, 23:21 |
|
Нов арх
|
|||
---|---|---|---|
#18+
PetroNotC Sharp localhost8080 тормоза там везде изза неправильного использования ЖПА Начальство скажет - где цифры и логи тормозов? Говорил про ТОРМОЗА. А счас сказал про БОЙЛЕР ПЛЕЙТ. Ну не дураки же они у вас там если ты сам всё в своем посте смешал в кучу. петро ты абстрагируйся - и вот перед тобой кусок кода и тоже самое можно написать в одну строчку кода код выше я предоставил как оно может повлиять на что то кроме геморая разработчика?я пока этот код писал - 100 раз наверно ошибся в данных ,которые надо в конструктор передавать- это известная проблема классов с множестом полей- тут либо юзать мапер готовый -либо вот так с горящей задницей писать бойлер плейт а таких классов то сотни - вот представь объем работы вникуда- вместо строчки кода с модель мапером Код: java 1.
ну вот скажи что я не прав и желательно обоснуй - только опять же ты абстрагируйся- у тебя есть задача зачем то переписать маперы на ручной маппинг- при этом зачем - умалчивают класс channel имеет кучу наследников- для модель мапера это норм- он все скушает и все размпаит куда надо- а вот руками это будет как я показал выше и это боль ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 00:32 |
|
Нов арх
|
|||
---|---|---|---|
#18+
Непонятно чего все так возбудились. Я вижу обычный ентерпрайзный код. Видывали и похуже. Этот - вполне себе норм. Ну .. можно рефакторить чтоб убрать хотя-бы повторяющиеся instanceof. Это даже не из соображения перформанса а просто. По человечески. Чтоб больше в коде было типизации. И меньше всякого разыменования неизвестных ссылок. Короче .. меньше Ansi C и больше Хаскеля. По поводу моделлеров и всего прочего. Все кодо-генераторы упрощают задачу при внесении изменений. Но нужно следовать протоколу. Тоесть вы - больше не Java-разработчик. А вы - Java/Modeller пользователь. С этим надо смирится и жить. Это плата за использование всяких там Rational e.t.c. И к этому тоже приходят эволюционным путем. Если такая роль не устраивает - то можно покинуть проект. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 00:41 |
|
Нов арх
|
|||
---|---|---|---|
#18+
mayton Непонятно чего все так возбудились. Я вижу обычный ентерпрайзный код. Видывали и похуже. Этот - вполне себе норм. Ну .. можно рефакторить чтоб убрать хотя-бы повторяющиеся instanceof. Это даже не из соображения перформанса а просто. По человечески. Чтоб больше в коде было типизации. И меньше всякого разыменования неизвестных ссылок. Короче .. меньше Ansi C и больше Хаскеля. По поводу моделлеров и всего прочего. Все кодо-генераторы упрощают задачу при внесении изменений. Но нужно следовать протоколу. Тоесть вы - больше не Java-разработчик. А вы - Java/Modeller пользователь. С этим надо смирится и жить. Это плата за использование всяких там Rational e.t.c. И к этому тоже приходят эволюционным путем. Если такая роль не устраивает - то можно покинуть проект. вот да не очень устраивает ,скорей всего последую твоему совету ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 01:07 |
|
Нов арх
|
|||
---|---|---|---|
#18+
mayton Ну .. можно рефакторить чтоб убрать хотя-бы повторяющиеся instanceof. Это даже не из соображения перформанса а можно посмотреть как ты в конструкторе уберешь повторяющиеся и инстан офы?я напомню что это конструктор ,а не набор сетеров ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 01:11 |
|
Нов арх
|
|||
---|---|---|---|
#18+
В map ты передаешь лямбду. У лямбды есть синтаксис с bracers. Вот и создавай там conditions. Можешь отдельно функции создать. Конвертеры. Да много вариантов. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 01:26 |
|
Нов арх
|
|||
---|---|---|---|
#18+
Я думаю, что модели тут не причем. То, что в конструктор передаются десятки параметров и то что эти мэпперы пишутся руками - явно какой-то бред. У меня, например, из такой модели: Model Код: 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.
BusinessObjects -> DTO Код: 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. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166.
DTO -> BusinessObjects Код: 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. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355.
В мепперах для каждого типа объектов генерятся такие виды методов: map - получает на вход исходный объект и возможно какие-то параметры, на выходе - результирующий объект init - инициализирует атрибуты и ссылки создаваемого объекта, в том числе вызывает мапинг вложенных объектов create - создает результирующий объект, если его нельзя создать просто с помощью конструктора Естественно всё это работает с учетом иерархии классов. Мепперы дочерних классов вызывают init родительских классов. Плюс если одна модель основана на других моделях, то она наследует их мепперы. Можно было бы JavaDoc генерить, но руки не дошли. Это абсолютно прозрачный и понятный код. В отличие от динамических мепперов, которые не проверишь пока не запустишь. Хотя кроме динамических есть и статические с кодогенерацией, но мне они не подошли поэтому сделал свой. Если бы я писал эти мепперы вручную, то выглядели бы они ровно так же. В общем, не нужно катить бочку на модели :) Это просто у вас очень странный чел всё это придумывал. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 08:35 |
|
Нов арх
|
|||
---|---|---|---|
#18+
А я вижу здесь подход к делу: чем бы не занимался, лишь бы заманался. В промышленном коде можно использовать ломбок, а можно не использовать. Ты же не ручками этот бойлерплейт пишешь, да? Что касается маппера - его запрет на мой вгляд бред собачий. MapStruct и погнали. Особенно если модель с > 30-50 полями. Ручками импл писать? Так пусть наймут ждуна за 30 тыс. Автор, не нравится, уходи. Тем более джава. Перепрыгнуть на другую посудину легко, если знаешь актуальный стек: docker/k8s/os, спрингбут, spring data, реляционки, junit + mockito, mapstruct. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 09:29 |
|
Нов арх
|
|||
---|---|---|---|
#18+
RMT MapStruct и погнали localhost8080 даже ModelMapper нельзя Ares_ekb У меня, например, из такой модели ... генерились такие мэпперы ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2021, 10:02 |
|
|
start [/forum/topic.php?fid=59&msg=40109167&tid=2120314]: |
0ms |
get settings: |
27ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
505ms |
get tp. blocked users: |
2ms |
others: | 2364ms |
total: | 2978ms |
0 / 0 |