Skip to content

Commit 9a9a14a

Browse files
committed
Update md
1 parent ccb9d8d commit 9a9a14a

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ Java Enterprise Online Project
7777
- Переключиться в основную ветку проекта `master`.
7878

7979
## ![video](https://cloud.githubusercontent.com/assets/13649199/13672715/06dbc6ce-e6e7-11e5-81a9-04fbddb9e488.png) 7. [Maven](https://drive.google.com/file/d/1qEJTwv9FNUQjx-y9MSydH01xaAne0-hu)
80+
- [Как установить Maven 3 на Ubuntu или Windows](https://devcolibri.com/как-установить-maven-3-на-ubuntu-или-windows/)
8081
- [Руководство по Maven](https://topjava.ru/blog/apache-maven-osnovy-1)
8182
- Wiki: [Apache Maven](https://ru.wikipedia.org/wiki/Apache_Maven)
8283
- [The Central Repository](http://search.maven.org)

graduation.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ _Антуан де Сент-Экзюпери_
7777

7878
### 4: Модель
7979

80-
- 4.1: В БД обычно хранятся все введенные пользователем и админом данные (история). Они не удаляются и не переписываются заново. Есть базовые вещи, которые закладываются в архитектуру приложения, и есть неочевидные доработки к ТЗ, делать не надо.
80+
- 4.1: В БД обычно хранятся все введенные пользователем и админом данные c возможность их редактирования. Это означает, что мы не удаляем прошлые меню, а храним их в базе, как и историю голосования. Есть базовые вещи, которые закладываются в архитектуру приложения, и есть неочевидные доработки к ТЗ, делать не надо.
8181
- 4.2: Не делайте в модели объектов, которые не будут использоваться в коде (например, не надо двунаправленных связей, если достаточно однонаправленных)
8282
- 4.3: еще раз про [hashCode/equals в Entity](https://stackoverflow.com/questions/5031614/the-jpa-hashcode-equals-dilemma): не делайте в модели сравнение по полям!
8383
- 4.4: ORM работает с объектами. [Иногда, для упрощения логики, fk_id как поля допустимы](https://stackoverflow.com/questions/6311776/hibernate-foreign-keys-instead-of-entities)
@@ -97,9 +97,8 @@ _Антуан де Сент-Экзюпери_
9797
### 6: Доступ к БД
9898

9999
- 6.1: Используйте Spring Data JPA (без лишней делегации). Методы Repository можно вызывать напрямую из сервиса или из контроллера.
100-
- 6.2: Если приложению в объекте требуется только его id, используйте reference (`getReferenceById`)
101-
- 6.3: В DATA-JPA 2.x используются `Optional`. Попробуйте работать с ними, это безопасный способ работать с null-значениями (используйте `orElseThrow`)
102-
- 6.4: Не делайте при обновлении записи ради экономии пары строчек кода так:
100+
- 6.2: В DATA-JPA 2.x используются `Optional`. Попробуйте работать с ними, это безопасный способ работать с null-значениями (используйте `orElseThrow`)
101+
- 6.3: Не делайте при обновлении записи ради экономии пары строчек кода так:
103102
```
104103
if(updateCondition)
105104
repository.delete(entity)
@@ -123,6 +122,7 @@ repository.save(entity)
123122

124123
- 8.1: Проверьте, станет ли код проще с `@AuthenticationPrincipal` (урок 11, доступ к AuthorizedUser).
125124
- 8.2: Я предпочитаю четкое разделение ролей на основе URL. Для админа URL содержит `/admin`
125+
- 8.3: Еще раз - призываю не менять код TopJava
126126

127127
### 9: Кэширование
128128

@@ -163,3 +163,7 @@ repository.save(entity)
163163
- 13.2: API ДОЛЖЕН соответствовать принципам REST (см. ссылки выше)
164164
- 13.3: ОБЯЗАТЕЛЬНО: запустите `mvn test` - ошибок быть не должно
165165
- 13.4: ОБЯЗАТЕЛЬНО: запустите приложение без всяких предварительных настроек (базы, переменных окружения, ..), лучше на другом компьютере. Приложение должно запускаться и работать!
166+
167+
## Оценка
168+
ТЗ очень скромное, не дает понимания, что хочет получить заказчик, именно поэтому моих комментариев к этому ТЗ больше на 2 порядка. Это реальное тестовое задание на работу. При оценке учитывается отсутствие грубых ляпов, простота и красота решения + его расширяемость, если понадобится дорабатывать приложение. Если практический опыт небольшой, еще раз очень рекомендую держаться как можно ближе к нашему коду на Spring Boot.
169+
Тестовое задание дается для того, чтобы оценить вас, как программиста. Нужны ли вы компании или нет. Это умение спроектировать грамотную модель и API, придерживаясь принципов REST и без своих велосипедов, и ваш чистый красивый код.

0 commit comments

Comments
 (0)