|
|
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
1. Программа рисует главный фрэйм(mainFrame). На главом фрейме три кнопки Student, Faculty, Print. 2. При нажатии на Student или Faculty - создается новый фрейм(dataFrame), в котором есть поля name, age, degree и три кнопки: accept - записывает информацию в массив о персоне, clear - очищается dataFrame, close - закрывает dataFrame 3. При нажатии на кнопку Print in mainFrame программа выводит в консоль список персон из массива Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 13:07 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
mainFrame - класс с маленькой буквы "the database" - бессмысленный тайтл и почему-то в lower case People - это "народ". В вашем случае больше подходит слово Person. MyProg, MyPanel, DataFrame - названия не отражающие назначение классов. В ActionListener не стандартная расстановка скобок. Используется тупой if-else диспатч. Гораздо лучше использовать концепцию Action. Один Action на одно действие. Диспатч с привязкой к тексту кнопки это тоже криво. Любое переименование текста, требует исправления в диспетчере. А про интернационализацию можно вообще забыть. Строки сравниваются == . Работать-то оно работает но через side effect. Использование | и &, там где обычно применяется || и && выдаёт не знание и непонимание различия этих операторов. Очень слабое разделениие на слои (MVC, MVP, MVVM, Abstract Layer). Есть Value Object сущности и есть GUI классы, которые делают всё-всё-всё. Именование butPrint конфликтует с английским словом but. Мне больше импонируют нотации btnPrint или printButton. System.out.println("Array is full"); - не очень понял смысл вывода на консоль в GUI приложении. Константы вроде "Faculty data" встречаются в таком маленьком приложении аж по 5 раз. То есть переименование в одном месте сразу ломает остальные 4. "Магические константы" Код: java 1. 2. 3. Почему 9 и 10? Почему в 4х разных местах? Снова если в одном поменять, остальные 3 сломаются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 13:37 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо большое за подробный ответ! автор"the database" - бессмысленный тайтл и почему-то в lower case Название окна. Почему бессымысленный? авторОдин Action на одно действие То есть сколько кнопок, столько нужно и классов ActionListener? авторПочему 9 и 10? Почему в 4х разных местах? Снова если в одном поменять, остальные 3 сломаются? Так по условию было, что 10 элементов. А 9 - проверка на заполненность массива, nextIndex - следующий элемент массива, в который будет писаться. Согласен, что криво. Через Vector лучше будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 14:17 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
mr_virtusНазвание окна. Почему бессымысленный? Потому что название должно быть конкретным. "База данных преподавателей и студентов" вместо вашего "та самая база данных". Артикли на GUI обычно не используют. mr_virtusТо есть сколько кнопок, столько нужно и классов ActionListener? Action а не ActionListener. Action обозначает конкретное действие и может быть привязан не только к кнопке. mr_virtusТак по условию было, что 10 элементов. А 9 - проверка на заполненность массива, nextIndex - следующий элемент массива, в который будет писаться. Вам не хватает констаны типа RECORS_LIMIT, MAX_RECORDS, MAX_PERSONS, которая бы глобально задавала это лимит, а не в 4х разных местах. mr_virtusСогласен, что криво. Через Vector лучше будет. Прям на машине времени в 90е переместился от ваших слов. Какой, нафиг, Vector в Java в 21 веке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 14:27 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторПрям на машине времени в 90е переместился от ваших слов. Какой, нафиг, Vector в Java в 21 веке? =)) Это я в книжке прочитал про такую коллекцию) За остальное спасибо большое, буду обращать теперь на это внимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 14:34 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
mr_virtus=)) Это я в книжке прочитал про такую коллекцию) В печку её =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 18:23 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
mr_virtus, Вот щас покритикую, я и сам нуб в жава, но вот это: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. и это: Код: java 1. 2. 3. 4. 5. 6. 7. 8. это фэйл по-моему. Про |, & и сравнение строк уже сказали. ИМХО Вам нужно (сейчас сам так стараюсь делать): выбрать любой баг (на оф. баг-трекере) где-нибудь в библиотеках известных, напр: EE, Spring, Apache commons и т.д. и попытаться найти и исправить. Сам процесс изучения чужого кода + процесс возможного исправления с минимальными издержками очень прокачивает скилл. инфа 100%. И еще можно почитать про паттерны. Тогда, есть шанс, что у Вас меньше будет этой лапши из if. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 19:06 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
mr_virtus, Да, забыл указать, что при переносе тела условия на следующую строку Код: java 1. 2. Рекомендуется всегда писать фигурные скобки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 19:35 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
no56892, спасибо. Код: java 1. 2. 3. 4. 5. 6. Да, тут явно можно и без if.=) А про баг-трекеры, если не сложно, можете пару ссылок кинуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 19:47 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, авторДа, забыл указать, что при переносе тела условия на следующую строку if ((labelBut == "Accept") & (peopleLabel == "Faculty data")) addFaculty(); Рекомендуется всегда писать фигурные скобки. Ну да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 19:48 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
no56892на оф. баг-трекере А это что такое, дайте ссылку! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2014, 00:11 |
|
||
|
покритикуйте, пожалуйста код
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, BlazkowiczКакой, нафиг, Vector в Java в 21 веке? Он перестал быть депрекатнутым ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2014, 00:15 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38599128&tid=2126429]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 450ms |

| 0 / 0 |
