|
|
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток.. Имеется некий проект предназначенный для более глубокого понимания программирования под web и личного пользования. В нем есть некий сервлет и jsp`шка. Сразу скажу это не тестовое задание куда-то, а все для себя любимого. Я начал читать книгу Роберта Мартина "Чистый код", и мои подозрения что мой код является говнокодом переросли в уверенность, что мой код даже хуже, чем я думал. И вот я сейчас в сомнениях, пробовать писать все заново, или же рефакторить существующий код по мере чтения сенсея, Мартина, и снова и снова.. Скорее всего склонюсь к рефакторингу существующего, так как основная задача на этот кусок была познать основы hibernate, а начав переписывать хочу сделать это на Spring. Но перед спрингом хочу опять таки прописать все ручками. что бы не стать ботом пишущем на 2 фреймоворках хэлло ворды, и не понимающим сути происходящих процессов.. Впрочем не буду утомлять фантазиями очередного недоджуна, а ближе к делу.. Ближе к делу, подскажите как лучше отрефакторить код, в чем проблемы, в коде, в выборе технологий, что и как было бы более красиво и подходяще.. Сам результат, вот ссылка на картинку , меня полностью устраивает, а вот код не очень.. Собственно сам код: servlet Код: 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. JSP Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 21:22 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, какой ide пользуешься.? инклуд лучше делать фалы jspf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 21:32 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, для даты лучше использовать фишки даты java8 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 21:34 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, стили задавать в файлах css ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 21:36 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, обработку событий лучше перенести в функции, а в элементах указывать имя функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 21:41 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, в именах классов, айдишников в качестве разделителя лучше использовать _ , а не - ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 21:43 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Спасибо, так быстро много ответов :) ide - IntelliJ IDEA 15 jspf - почитаю, что это и как работать Даты в java8 хотел, но так как сделал на hibernate 4, то они не хотят нормально работать с DB, а при обновлении на hibernate 5, все полетело, целый день пытался вернуть, но в итоге все равно восстановился с бекапа, решил java 8 и hibernate 5 оставить на следующий раз, когда буду переписывать этот проект под spring. Если такой подход не верен, напишите, буду пробовать перейти на этом проекте.. стили - принято, сделаю имена классов - это bootstrap о обработке событий немного не понял, имеется ввиду функционал взятия из базы данных в сервлете вынести из doGet в отдельный метод? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 21:57 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, про хибермайт - я против этой прокладки, лишнее звено. <input onclick= "имя_функции();" > <script> function имя_функции(){ } </skript> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 22:07 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, кучу кода занимает таблица. Можно заменить на компонент библиотечную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 22:12 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, Привет, я бы тоэе кое-что посоветовал. 1) Вынеси "MMM dd, YYYY" в константу в отдельный класс, типо DateFormat. Она может много ещё где использоваться. 2) Из jsp выпили все скриплеты. Если надо что-то высчитать, то делай это в других классах, а на jsp передавай потом результат. Обработать результат на самой jsp поможет, к примеру, jstl (погугли). И все, никаких вычислений на jsp. Почему? Потому что ты одну и ту же логику можешь использовать на нескольких jsp, ты же не будет дублировать код много раз? 3) Выноси все аттрибуты style в css файл. Придумай имена классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 22:18 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяliberum, про хибермайт - я против этой прокладки, лишнее звено. Использую исключительно с целью изучения, голый jdbc использовал ранее, знание фреймворков повышает шансы на трудоустройство.. перенести onclick в функцию - принял Заменить таблицу на компонент библиотечную это как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 22:20 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Вынести SimpleDataFormat в константу - принято, сам думал, использую много где. jstl - погуглю вместе с jspf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 22:25 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberumЗаменить таблицу на компонент библиотечную это как? типа http://www.jtable.org/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 22:28 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberumВынести SimpleDataFormat в константу - принято, сам думал, использую много где. jstl - погуглю вместе с jspf SimpleDataFormat не надо в константу, он не tread safe. Вынесите туда строку с форматом. По существу вопроса - переписывать, потому что рефакторить там надо решительно все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 22:33 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
fixxerSimpleDataFormat не надо в константу, он не tread safe. Вынесите туда строку с форматом. По существу вопроса - переписывать, потому что рефакторить там надо решительно все. А если не в константу в класс, с методом типа getDate, которая будет возвращать клон? Часто нужна дата округленная до начала суток, что собственно и решаю конструкцией: Код: java 1. 2. Рефакторить хочу что бы знать как писать правильно, если сразу начну переписывать проект, чувствую напишу тот же говнокод, только в профиль.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 22:55 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123liberumЗаменить таблицу на компонент библиотечную это как? типа http://www.jtable.org/ Слишком избыточно.. Кроме того не уверен, что смогу ее заполнить. Заполняется сначала столбик понедельника, потом вторника и т.д. В моем случаи вид таблицы делается с помощью css, а сама таблица имеет всего 2 строки, первая - заглавие, вторая данные на весь день недели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2016, 23:08 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, Код: html 1. https://webref.ru/html/td/valign Код: html 1. 2. 3. Код: html 1. - https://webref.ru/html/title Код: html 1. - https://webref.ru/html/input вообще инпут в div непонятно для чего, ondblclick можно назначить и самому div. https://webref.ru/css https://webref.ru/html http://frontender.info/a-guide-to-flexbox/ https://learn.javascript.ru/ http://jquery.page2page.ru/index.php5/Заглавная_страница по логике js https://www.amazon.com/dp/<%=bookKDP.getAsin() лучше вынести в div Код: html 1. 2. 3. но ещё лучше Код: html 1. 2. 3. Код: javascript 1. 2. 3. 4. 5. по входу с паролём http://findevelop.blogspot.ru/2013/10/web-spring-security-100.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 05:31 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
ЗЫ имена взяты с потолка :) проверить правильность на использование кавычек (двойных и одинарных) к сожалению тут править не сделано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 05:34 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадя, Ну, кто же в 2016м году скриплеты использует? Для доступа-то к свойствам. EL в JSP уже достаточно хорош чтобы всё на нём писать. Скриплеты это табу. Только в исключительных случаях можно применить, если они действительно упрощают решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 08:37 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Именовать переменные таким образом Date date2 = c.getTime(); очень плохо, вы скоро забудете чем отличается date от date2, к тому же стороннему человеку решительно непонятно о чем идет речь. Гораздо лучше называть их как Date startDate например. Далее, в сервлете в идеале должно быть только то что связано с HTTP, как то - берем параметры из реквеста и преобразуем их в некий объект, валидация этих параметров и всякие sendRedirect forward и тд. Все остальное выносится в отдельный сервис, например DBService. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 09:01 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, Начните с чтения о таких понятиях как Abstract Layer, Model View Controller и Domain Model. Вам нужно четко понимать какая строка кода относитя к представлению, какая к модели предметной области, а какая просто обслуживает HTTP. И эти три вещи надо раздести в разные классы и стараться не смешивать, следуя Single Responsibility Principle. Не используйте скриплеты. В идеале надо JSP заменить на какой-нибудь FreeMarker или Thymeleaf. Но можно использовать и JSP, но разобраться с Expression Language и JSTL. Каждый раз когда вы копируете кусок кода, бейте себя по рукам и ищите способ изменить код. В JSTL есть тэги для циклов, например. А вы накопипастили 6 одинаковых пар строк. Ваши условия if(cl.getTime().getTime() == bookKDP.getPromo1().getTime() за гранью по двум причинам. 1. Почему 1-2-3-4-5 это разные методы? ПОчему не массив? Почему не список? 2. Каждый раз когда вы пишете bookKDP.getPromo2().getTime() это нарушение инкапсуляции. В идеале дожно быть bookKDP.getPromoTime(). bookKDP.getBookAuthorsWriter().getBook().getTitle() это bookKDP.getBookTitle(); "Чистый код" - правильная книга. Дочитайте и начните применять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 09:29 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Потоки потоками, но 10 строк кода для даты это чересчур). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 09:36 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. И ещё важный момент. Уверен что в книгде об этом тоже было. Научитесь создавать больше методов. Вот с ходу понять что тут происходит - решительно не возможно. Но если вы сделаете этому куску кода extractMethod и дадите методу внятное объясняющее имя, то это значительно повысит читаемость вашего кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 09:44 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Blazkowiczвадя, Ну, кто же в 2016м году скриплеты использует? Для доступа-то к свойствам. EL в JSP уже достаточно хорош чтобы всё на нём писать. Скриплеты это табу. Только в исключительных случаях можно применить, если они действительно упрощают решение. зачем городить что-то если можно обойтись простым? это табу придумано непонятно кем и для чего, а потом его теражируют... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 09:55 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Blazkowiczliberum Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. И ещё важный момент. Уверен что в книгде об этом тоже было. Научитесь создавать больше методов. Вот с ходу понять что тут происходит - решительно не возможно. Но если вы сделаете этому куску кода extractMethod и дадите методу внятное объясняющее имя, то это значительно повысит читаемость вашего кода. У меня тоже вынесло мозг от операций с датой... по моему можно упростить в одну строчку. Календарь и старые форматтеры желательно заменить joda time , в 8 джаве этот пакет уже влючен, он и пошустрее и thread safe в отличие от Calendar. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 09:57 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадязачем городить что-то если можно обойтись простым? Простым? Прикалываешься? Сравни: Код: html 1. 2. 3. вадяэто табу придумано непонятно кем и для чего, а потом его теражируют... Табу придумано тем кто заманался выдирать логику предметной области из представления. И придумано лет 15 назад, если не раньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:01 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
uid uniqueв 8 джаве этот пакет уже влючен, он и пошустрее и thread safe в отличие от Calendar. Но слегка урезан по сравнению с оригинальным Joda Time. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:02 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадя, Глупо спорить с jstl или скрипплеты. С тобой не спорят что события в фунеции. Это тоже самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:03 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
uid uniqueBlazkowiczпропущено... И ещё важный момент. Уверен что в книгде об этом тоже было. Научитесь создавать больше методов. Вот с ходу понять что тут происходит - решительно не возможно. Но если вы сделаете этому куску кода extractMethod и дадите методу внятное объясняющее имя, то это значительно повысит читаемость вашего кода. У меня тоже вынесло мозг от операций с датой... по моему можно упростить в одну строчку. Календарь и старые форматтеры желательно заменить joda time , в 8 джаве этот пакет уже влючен, он и пошустрее и thread safe в отличие от Calendar. Что то подобное слепить можно с джодой: Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:03 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
uid uniqueuid uniqueпропущено... У меня тоже вынесло мозг от операций с датой... по моему можно упростить в одну строчку. Календарь и старые форматтеры желательно заменить joda time , в 8 джаве этот пакет уже влючен, он и пошустрее и thread safe в отличие от Calendar. Что то подобное слепить можно с джодой: Код: java 1. 2. 3. Еще вдогонку не забудьте про time zone, если она нужна, дата в локальной зоне будет отличаться от GMT (now нужно инициализировать с зоной или сделать шифт, в джоде это есть). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:06 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Blazkowiczвадя, Ну, кто же в 2016м году скриплеты использует? Для доступа-то к свойствам. EL в JSP уже достаточно хорош чтобы всё на нём писать. Скриплеты это табу. Только в исключительных случаях можно применить, если они действительно упрощают решение. и где же ты в моем примере нашёл скриплет? только выражение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:11 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяи где же ты в моем примере нашёл скриплет? только выражение Вот: Код: html 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:14 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123вадя, Глупо спорить с jstl или скрипплеты. С тобой не спорят что события в фунеции. Это тоже самое. С тобой не спорят что события в фунеции. Это тоже самое нука про это попподробнее. а где должны они быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:16 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Код: javascript 1. это называется выражение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:17 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяBlazkowicz, Код: javascript 1. это называется выражение. Это называется путаница в терминах JSP Scriptlet - который табу, но в крайних случаях бывает полезен именно в JSP http://docs.oracle.com/javaee/5/tutorial/doc/bnaou.html JSP Expression - который нафиг не нужен http://docs.oracle.com/javaee/5/tutorial/doc/bnaov.html Unified Expression Language - который упрощает JSP код и делает его HTML friendly http://docs.oracle.com/javaee/5/tutorial/doc/bnahq.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:24 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, уж если заниматься буквоедством - то в моём примере JSP Expression а JSP Scriptlet у ТС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:37 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, а вот насчёт Unified Expression Language - который упрощает JSP код и делает его HTML friendly вопрос спорный по сути вводится ещё один язык программирования симбиоз java и HTML разметки что только усложняет построение этой самой разметки. по мимо дополнительного кода для его построения и кода на выпонение при формировании страницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:42 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяуж если заниматься буквоедством - то в моём примере JSP Expression а JSP Scriptlet у ТС. Продолжаем заниматься ерундой: In JavaServer Pages (JSP) technology, a scriptlet is a piece of Java-code embedded in the HTML-like JSP code. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:45 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Blazkowiczвадяуж если заниматься буквоедством - то в моём примере JSP Expression а JSP Scriptlet у ТС. Продолжаем заниматься ерундой: In JavaServer Pages (JSP) technology, a scriptlet is a piece of Java-code embedded in the HTML-like JSP code. тогда нахера ты дал три ссылки? сначала разделяешь , а потом объединяешь понятия? при буквоедстве так быстро переобуваться не стоит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 10:50 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадятогда нахера ты дал три ссылки? Чтобы объяснить таким непонятливым, откуда путаница в терминологии. вадясначала разделяешь , а потом объединяешь понятия? при буквоедстве так быстро переобуваться не стоит Я с самого начала сказал про "скриплеты", ты начал буквоедствовать. Твой код это скриплет, который в JEE называют JSP Expression только потому что этот скриплет должен возвращать результат. В обиходе же expression это EL. Не думал что тебе придется такие основы объяснять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 11:00 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, потому что про скриплеты у ТС ты ни слова не сказал , а к моим прицепился, я просто исправил код HTML на правильный и вместо нескольких выражений оставил одно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 11:08 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяпотому что про скриплеты у ТС ты ни слова не сказал , а к моим прицепился, И ты посчитал это личным оскорблением. Какой тонкой душевной натуры человек. Ну, извини. вадяя просто исправил код HTML на правильный и вместо нескольких выражений оставил одно. Ну, вот, а я добавил, что скриплеты тоже стоило выкинуть, потому что "они зло". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 11:14 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадя С тобой не спорят что события в фунеции. Это тоже самое нука про это попподробнее. а где должны они быть? не борись с ветряными мельницами. Я сказал, что Согласен с тобой (не спорю) относительно твоих постов по JS. Про JSTL толку с тобой говорить, если ты его не писал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 11:24 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
авторНу, вот, а я добавил, что скриплеты тоже стоило выкинуть, потому что "они зло". спорное утверждение, если учесть сколько дополниельного кода надо добавить дл JSTL . авторне борись с ветряными мельницами. Я сказал, что Согласен с тобой (не спорю) относительно твоих постов по JS. будь точнее в своих выражения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 11:35 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяспорное утверждение, если учесть сколько дополниельного кода надо добавить дл JSTL . Во-первых ни сколько не надо. Во-вторых JSTL это не EL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 11:38 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяесли учесть сколько дополниельного кода надо добавить дл JSTL я же говорю, что ни разу не писал: Код: html 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 11:57 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Blazkowiczвадяспорное утверждение, если учесть сколько дополниельного кода надо добавить дл JSTL . Во-первых ни сколько не надо. Во-вторых JSTL это не EL. взял пример http://devcolibri.com/1250 нафига ещё разбираться в дополнительном языке?????? когда внизу показано Код: plaintext 1. 2. 3. 4. даже если посчитать количество строк(не говоря уж о символах ) будет больше. это если будут платить за количество строк - тогда ещё можно понять. а такое Код: plaintext Код: plaintext 1. и это такие выносят табу????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 11:57 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяэто вообще бред тут просто Обычная лень для изучения всего нового. Что в JS, что в Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 11:59 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Код: javascript 1. 2. 3. 4. 5. 6. ни чуть не хуже. если учесть во что транслирется jsp страница . автортут просто Обычная лень для изучения всего нового. Что в JS, что в Java. ты вникнись в смысл там написанного... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 12:13 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяни чуть не хуже. Если ты не видишь разницы, тогда разговор продолжать бесполезно. вадяесли учесть во что транслирется jsp страница . Да пофигу во что транслируется. Это не сервлету потом читать код и вносить в него изменения. Какие-то нелепые нюансы технической реализации никак не влияют на качество кода. Говно код нельзя оправдывать тем что он будет работать, например, в интерпретаторе и всё равно будет медленным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 12:20 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяни чуть не хуже. если учесть во что транслирется jsp страница . ничего нового ты уже не скажешь. Всё как 5 лет назад. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2016, 12:31 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
:) Вас всех собрать в одну контору и надо перед вами поставить задачу и чтоб Вы решили совместно... интересно что будет... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 11:43 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Музаффар, )) известный спор - программизм это творчество или рутина) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 12:06 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123, просто основные мемберы этого форума заходит читать именно Ваши споры... в том числе я тоже т.к. много полезного можно изъять :) за это спасибо знатокам (Вам и Ваде и Блазговичу и другим...) а насчет совместной работы могу предположить что первый проект будет скорей всего не в срок но после получится крутые проекты... хотя ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 12:47 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Музаффармогу предположить что первый проект будет скорей всего не в срок если РП - Железный Феликс, то в срок). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 13:10 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123Музаффармогу предположить что первый проект будет скорей всего не в срок если РП - Железный Феликс, то в срок). Если РП железный феликс то не только проект будет сдан в срок. Но и население обеспечено предметами первной необходимости, продовольствие не менее через на неделю вперед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 13:50 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
авторесли РП - Железный Феликс, то в срок). кроме свойств железного Феликса, должна быть голова -иначе кибернетика будет объявлена лженаукой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 13:57 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123, тут много факторов но самый главный из них это Ваши споры... если согласованно будете работать то точно в срок без железного феликса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 14:03 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
OFF Музаффартут много факторов но самый главный из них это Ваши споры... если согласованно будете работать то точно в срок без железного феликса А кто по вашему Согласователь?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 14:23 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123А кто по вашему Согласователь?)) это и есть больщущий вопрос :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 14:27 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
МузаффарPetro123А кто по вашему Согласователь?)) это и есть больщущий вопрос :) Тогда это в топике Религия или ПТ. Тут обычные технари - инженеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 14:29 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Начал переписывать.. На данный момент столкнулся с несколькими проблемами. Сделал отдельно класс с датами. Класс умеет: getEndWeek() - возвращать последний день текущей недели getStartWeek() - возвращать первый день текущей недели getThisDayPromo() - возвращать текущую дату если уже больше 10 часов дня, и вчерашнюю если меньше getDateFormatMDY() - превращать дату в строку стандартного формата getDateFormatWeek() - превращать дату в строку с указанием дня недели getStartThisDay() - возвращать новый объект даты округленный до начала суток DifferentDates Код: 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. А потом попробовал написать тесты.. И не знаю, как их писать, например первый день недели, если я буду вычислять его как в методе, то не будет смысла в самом тесте, если я константно установлю, то тест будет актуален до понедельника.. Это можно обойти если написать метод, который будет устанавливать в используемой классом дате произвольную дате, но это будет инструмент с помощью которого можно будет поломать этот класс. Пример моего теста: TestDifferentDates Код: 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. Часть css перенес, получилось примерно так: таблица заголовок Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. таблица данные Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Заголовок таблицы можно вынести в цикл, это сделаю когда буду переделывать с помощью JSTL, сейчас читаю о нем, вроде не сложно. Так же там переделаю мои ужасные условия, для них планирую сделать 7 вызовов с БД по 1 на каждый день недели, вместо 1 вызова за всю неделю и 7 циклов с условиями для выбора нужной даты. На данный момент больше интерисует рефакторинг css и js ответ Вадивадяliberum, Код: html 1. https://webref.ru/html/td/valign Код: html 1. 2. 3. Код: html 1. - https://webref.ru/html/title Код: html 1. - https://webref.ru/html/input вообще инпут в div непонятно для чего, ondblclick можно назначить и самому div. https://webref.ru/css https://webref.ru/html http://frontender.info/a-guide-to-flexbox/ https://learn.javascript.ru/ http://jquery.page2page.ru/index.php5/Заглавная_страница по логике js https://www.amazon.com/dp/<%=bookKDP.getAsin() лучше вынести в div Код: html 1. 2. 3. но ещё лучше Код: html 1. 2. 3. Код: javascript 1. 2. 3. 4. 5. Код: java 1. я знаю, что он делает, без него табличка калечится, а именно каждый день центрируется, вместо того что бы приклеится к верху. если убрать input, тоже табличка калечится, текст начинает переносится на вторую страницу, теряется вертикальное разделение, курсор начинает переходить в режим работы с текстом, title для того, что бы видеть полное название когда наводишь мышку Повторюсь, почему не дата из java8, одна из задач в этом проекте, ознакомление с hibernate, его я поставил 4,2 версии, которая не работает с временем из java8, попытка поменять версию hibernate вылилась в жесткий краш, и необходимость переписывать много кода. В связи с этим, переход на java8 и hibernate 5, я решил сделать когда начну переписывать этот проект с использованием Spring. Спасибо еще раз всем за ответы, рефакторю медленно, много приходится читать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 18:37 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Код: html 1. устаревший атрибут - не рекомендуется использовать, надо найти новые методы для достижения цели. Код: plaintext 1. 2. не правильно используешь стили. использование здесь инпута и есть говнокод. а именно использование элемента не по назначению это надо исключить. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 19:52 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
авторак же там переделаю мои ужасные условия, для них планирую сделать 7 вызовов с БД по 1 на каждый день недели, вместо 1 вызова за всю неделю и 7 циклов с условиями для выбора нужной даты. рекомендую обратить внимание на использование хранимых процедур, в частности они могут возвращать множественный результсет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 19:55 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, если используешь mysql - рекомендую https://www.devart.com/ru/dbforge/mysql/studio/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 20:01 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадя, Спасибо, по поводу говнокода понял, перепишу. dbforge есть, использую. по работе с БД, как уже писал, на этом проекте учу hibernate, он умеет кешировать с коробки.. И подумаю еще о оптимизации.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 20:14 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, вот что тебя спасет от инпута http://htmlbook.ru/blog/obrezaem-dlinnuyu-stro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 20:20 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
авторпо работе с БД, как уже писал, на этом проекте учу hibernate, он умеет кешировать с коробки.. И подумаю еще о оптимизации.. если только для обучения..... потому как хорошей оптимизации с ним не добиться. он не заменить голову программиста, и не сможет поддержать все его возможности(правда если программист умеет работать с базами...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 20:24 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяавторак же там переделаю мои ужасные условия, для них планирую сделать 7 вызовов с БД по 1 на каждый день недели, вместо 1 вызова за всю неделю и 7 циклов с условиями для выбора нужной даты. рекомендую обратить внимание на использование хранимых процедур, в частности они могут возвращать множественный результсет угу. Пусть до кучи хранимки в БД выучит и множественные результсеты. Помнится у тебя код меньше от них не стал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 21:18 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
авторугу. Пусть до кучи хранимки в БД выучит и множественные результсеты. Помнится у тебя код меньше от них не стал). это не верное замечание, код стал меньше , не на много , но меньше повысиласть простота - одно обращение к базе и совершенно разные результсеты в ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 21:24 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадя, 1. А зачем ОДНО обращение к базе? ) В андроиде вон, модно делать много многопотоковых обращений)). 2. Тебе сравнить твой код с тем что в хибере? Через день уже ТС джуниор сравнит твою работу и свою в хибере. А мы посмотрим). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 21:33 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123вадя, 1. А зачем ОДНО обращение к базе? ) В андроиде вон, модно делать много многопотоковых обращений)). 2. Тебе сравнить твой код с тем что в хибере? Через день уже ТС джуниор сравнит твою работу и свою в хибере. А мы посмотрим). 1 иногда бывает очень и очень удобно и очень много упрощает. 2 то что я могу сделать не используя хибер - он не сделает.мне не требуется обрабтка данных прокладкой, мне база выдает данные уже максимально нужном виде. мне остаётся только отправить клиенту добавив немного html разметки и то не всегда да, хибер может зарать данные с сервера из хранимки, которые не ужно сильно обрабатывать, но тогда зачем хибер? у меня юзер изменид цифирь в таблице в браузере, -она отправилась на сервер , пару строк java и она уже в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 21:52 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадя, мы тут твой код уже обсуждали. Вроде все сошлись, что его тоже надо рефакторить. Так что не начинай по новой. Дело ведь не в моей критике. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2016, 22:51 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Итог рефакторинга по css и html, всплывающим текстом решил пожертвовать, в целом внешний вид стал даже немного лучше.. css Код: css 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. html Код: html 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 14:22 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, http://jsfiddle.net/kJFjU/ пример реализации всплывающей подсказки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 14:41 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, а как думаешь обеспечить переход по неделям? перегрузкой всей страницы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 14:46 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяliberum, http://jsfiddle.net/kJFjU/ пример реализации всплывающей подсказки не понял юмора. Это же уже есть в TML без всякого кодирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 15:23 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123HTML имеется ввиду ты не очень хорошо знаешь HTML, поэтому считаешь, что такое есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 15:28 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадя, а глобальный HTML атрибут title? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 15:33 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
http://shpargalkablog.ru/2011/02/vsplyvayushchiye-podskazki.html http://shpargalkablog.ru/2013/12/title.html Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 15:34 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадя Код: plaintext скажи зачем менять стиль и я тебе расскажу про варианты. Пока ты сказал выше что всплывающее окно нельзя)). Говори точнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 15:41 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
ну, а ещё выше ты говорил: вадя Код: plaintext поэтому и делаешь велосипеды. ТС получается скоро более тебя уже знать будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 15:43 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
авторскажи зачем менять стиль и я тебе расскажу про варианты. Пока ты сказал выше что всплывающее окно нельзя)). Говори точнее. Атрибут title создаёт всплывающую подсказку при наведении курсора мышки на элемент. Внешний вид подсказки изменить нельзя. авторпоэтому и делаешь велосипеды. ТС получается скоро более тебя уже знать будет. я знаю, что ничего не знаю, но я стремлюсь узнать всЁ... пока мне не требовались такие подсказки, поэтому и не обращал внимание, тут потребовалось - нашёл, несколько вариантов :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 15:57 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
авторТС получается скоро более тебя уже знать будет. я не против буду у него тогда поучиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 15:58 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяliberum, а как думаешь обеспечить переход по неделям? перегрузкой всей страницы? Наверное, думал стрелочки вправо - влево, и между ними select с выбором от 1 до 7 дней, для указания шага. Можно сделать через json, но тогда надо переделать что бы DOM строился средствами js. Я делал подобное, нижe, но этот код я не рефакторил еще.. пример Код: html 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. скрин 1 скрин 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 16:08 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадятут потребовалось - нашёл, несколько вариантов :) 1. Внешний вид подсказок менять в ТЗ выше не требовалось. Тогда в HTML есть атрибут штатный вместо твоего кода 30 строк. 2. Если всё таки нужно менять подсказки, то есть библиотека, которая в 2 строки меняет подсказки вместо твоих 30 строк. Вроде все варианты разобрали. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 16:10 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123вадятут потребовалось - нашёл, несколько вариантов :) 1. Внешний вид подсказок менять в ТЗ выше не требовалось. Тогда в HTML есть атрибут штатный вместо твоего кода 30 строк. 2. Если всё таки нужно менять подсказки, то есть библиотека, которая в 2 строки меняет подсказки вместо твоих 30 строк. Вроде все варианты разобрали. Удачи! я показал варианты, и не старался показать все, если ТС учится - то лучше смотреть как устроены библиотеки, а потом если захочется использовать их или сделать своё. в библиотеке тоже js и для универсальности может быть больше 30 строк, так что не факт что использование библиотеки ускорит, но однозначно замедлит загрузку и старт страницы, на время парсинга библиотеки. не требовалось - не факт, возможно просто не знал, или не задумывался , а узнает - возможно сделает... liberum, по показанному - о рефоаторизации можно судить только оценив всё в действии. так вроде всё не плохо. могу подсказать некоторые варианты по вопросу обновления данных на странице, мыло в профиле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 16:32 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадя, тяжёлый случай. Тебе сказали - есть тег штатный в HTML. Ты так и дату будешь из 12 строк делать вместо того чтобы использовать штатное. Ещё говорит, что кто то HTML не знает. Вообще, мастадонт какой то лет в 50. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 17:42 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123, а ты упоротый , какой-то. я не отрицаю, что есть штатный, а говорю что Внешний вид подсказки изменить нельзя. свой "аналог" штатному придётся писать ( или использовать библиотечный) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 17:48 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
авторТы так и дату будешь из 12 строк делать вместо того чтобы использовать штатное. а что ты знаешь про штатную дату? http://caniuse.com/#search=Date and time input types и пока я буду использовать jquery ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 18:00 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяили использовать библиотечный Имя сестра! Имя! Ты в первый раз за 5 лет согласен использовать библиотеку). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 19:20 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадяи пока я буду использовать jquery мы в ветке Java и спрашивал я про java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 19:21 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123вадяи пока я буду использовать jquery мы в ветке Java и спрашивал я про java если ты внимательно читл - я ещё на первой странице посоветовал использовать фичи даты от java8 (если ты об этой дате) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2016, 19:46 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
вадя, Спасибо за советы.. Я не совсем понимаю тролинг в твою сторону, но может у вас просто такие отношения.. Я ценю и пытаюсь осмыслить и реализовать то, о чем ты пишешь. В данный момент у меня есть еще вопрос касательно архитектуры БД, а конкретно пользователей. Как более правильно, сделать большую таблицу, с email, login, password, rule, birthday и т.д. или более правильно делать таблицу пользователей, таблицу ролей, и т.д., а потом делать сводные таблицы? На сколько оправдано дробить сущности? У меня к примеру есть по книгам: 1.1 Таблица авторов 1.2 Таблица писателей 1.3 Таблица книг 1.4 Сводная таблица Магазин 2.1 Таблица аккаунтов 2.2 Таблица книг на продаже 2.3 Сводная по аккаунтам и книгам на продаже 2.4 Таблица продаж В итоге, когда я хочу вытащить название проданной книги, мне надо сравнивать ASIN проданной книги с таблицей книг на продаже, найдя его, вытащить из него id сводной таблицы 1.4, из него вытащить id книги, и из нее название.. Мне кажется это довольно сложный подход, можно конечно в момент импорта продаж добавлять туда id книги на продаже, но это всего лишь небольшая оптимизация, поскольку импорт делается 1 раз, а просмотр продаж часто. Но это вроде как добавляет связи, а из того, что я читал о нормализации, я сделал вывод, что чем меньше взаимосвязей, тем лучше.. Но в целом вопрос по пользователям, разделять права, роли и самих пользователей, или нормально когда это прописано в одной большой таблице пользователей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 11:14 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, Продолжайте читать про нормализацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 11:23 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо, и не думал прекращать, но все же был бы благодарен за более развернутый ответ по пользователям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 11:55 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberumМне кажется это довольно сложный подход дак ты покажи ЭТО. Покажи свою работу! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 12:04 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123, Я описал, вот диаграмма вышеописанного если она интересует, а вопрос в том, как правильно сделать таблицу пользователей, надо ли роли выносить в отдельную таблицу.. Весь проект не могу пока что показать, отчасти потому что стыдно за большое количество говнокода, который я сейчас понемногу пытаюсь убирать, отчасти, как следствие первой проблемы, там в открытом виде есть пароль к аккаунту, с которым я работаю.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 12:23 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, у тебя совесть есть? Тут 4 страницы обсуждали говнокодинг в коде. Ты пишшь уже сегодня опять про "код большой". Тут ты скачешь на Модель и таблички. Ты не Вадя случайно? По стилю очень похоже. IMHO закончи тему с кодом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 12:43 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberumКак более правильно, сделать большую таблицу, с email, login, password, rule, birthday и т.д. или более правильно делать таблицу пользователей, таблицу ролей, и т.д., а потом делать сводные таблицы? Смотря с какой точки зрения посмотреть. Во время дизайна правильно всё предельно нормализовать. А потом уже нужно обратно денормализовать отдельные части для достижения производительности. Поэтому роли можно релизовать двумя способами - нормализовано - отдельной таблицей и регулярными джоинами. И денормализовано, в виде списка всех ролей в одной колонке. Что избавит от надобности джоинить и может дать некоторый прирост в скорости. Но с другой стороны поиск по ролям будет медленее. liberumНа сколько оправдано дробить сущности? Оправданно. liberumНо в целом вопрос по пользователям, разделять права, роли и самих пользователей, или нормально когда это прописано в одной большой таблице пользователей? И то и другое нормально, если решает конкретные проблемы. Спросите у гугла зачем нужна нормализация таблиц в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 12:44 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123, Совесть есть, по мере переписывания нахожу новые вопросы, их задаю, пример переделанного кода выкладываю, основную проблему я понял, но при переписывании вижу что архитектура не совсем верна. Спасибо Blazkowicz, понял в какую сторону двигаться с БД. Я понимаю, что много вопросов, и мало результата, наверное вы правы, и нужно переписать сначала существующий код и потом браться за остальное.. Blazkowicz, Спасибо, понял, именно это и интересовало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 13:34 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberumпример переделанного кода выкладываю пока не видел. Идеальный) мемебер выкладывает код по мере улучшения. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 13:45 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
liberum, дабы не разводить тут флуд, дава на млы напиши, там побщаемся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 15:37 |
|
||
|
рефакторинг
|
|||
|---|---|---|---|
|
#18+
Petro123liberumпример переделанного кода выкладываю пока не видел. Идеальный) мемебер выкладывает код по мере улучшения. Удачи! Идеальный мембер выкладывает код на гитхаб, чтобы интересующиеся сами могли смотреть прогесс ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 16:27 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2123546]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
121ms |
get tp. blocked users: |
2ms |
| others: | 196ms |
| total: | 415ms |

| 0 / 0 |
