Skip to content

Commit 1407029

Browse files
Update
1 parent 62e31a0 commit 1407029

File tree

6 files changed

+819
-264
lines changed

6 files changed

+819
-264
lines changed

README.md

Lines changed: 57 additions & 35 deletions
Large diffs are not rendered by default.

ReleaseNotes.md

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,62 @@
11
# TopJava Release Notes
2+
3+
### Topjava 23
4+
- migrate to JDK 16
5+
- в новой spring-data-jpa `getOne` заменили на `getById`
6+
- в UserUtil#prepareToSave убрал проверку пароля на `hasText`. На UI поле проверяется на `@NotBlank`
7+
- `ProfileRestController#register` делаю по правилам REST (POST без "/register")
8+
- css стили `data-...` сделал [low-case через дефисы](https://stackoverflow.com/questions/36176474/548473)
9+
- `TestMatcher` переименовал в `MatcherFactory`
10+
- Для Swagger UI пометил `AuthorizedUser` аннотацией `@ApiIgnore`
11+
12+
### Topjava 22
13+
- очистка пароля `AuthorizedUser#userTo`
14+
- заменил `@SafeHtml`, который удалили из `hibernate.validator` на [Jsoup.clean](https://stackoverflow.com/a/68888601/548473)
15+
- перенес запрет на обновление admin/user в `UserService`
16+
- проверку email на уникальность для update с `id=null` в теле запроса сделал на основе анализа `HttpServletRequest.getRequestURI()`
17+
- проверку класса в `classpath` в `Profiles#getActiveDbProfile` делаю на `org.springframework.util.ClassUtils#isPresent`
18+
- удалил `type="text/javascript"`
19+
20+
### Topjava 21
21+
- **добавили документирование REST API: Swagger**
22+
- мигрировали на JDK 15 и используем текстовые блоки
23+
- Вынес `produces = MediaType.APPLICATION_JSON_VALUE` на уровень контроллеров
24+
- Правильно используем [глабальные переменные в js](https://stackoverflow.com/a/5064235/548473)
25+
- Зарефакторил `inputField.tag`
26+
- Тестовые переменные переименовал из UPPERCASE в camelCase
27+
- Из тестов сервисов убрал `throws Exception` (в IDEA больше не генерятся по умолчанию)
28+
- **Мигрировали на Spring Boot 2.4.1**
29+
30+
### Topjava 20
31+
- мигрировали на JDK 14
32+
- в `@SafeHtml` запрещаем весь html (`whitelistType = NONE`)
33+
- в `topjava.common.js` в `makeEditable()` вместо объекта контекст передаю 3 параметра
34+
- в UI контроллерах убрал префикс `ajax`
35+
- из тестов сервисов убрал `repository`. При проверке через `assertThrows` он не требуется
36+
- в `TestMatcher` сценарии сравнения сделал параметризируемыми (паттерн стратегия)
37+
- в API добавили `/users/{id}/with-meals` (см. [двунаправленные отношения](https://www.codeflow.site/ru/article/jackson-bidirectional-relationships-and-infinite-recursion))
38+
- добавил `UserTestData.USER_WITH_MEALS_MATCHER` (проверки пользователя сразу с едой) и константу id `NOT_FOUND`
39+
40+
### Topjava 19
41+
- Изменилась логика для интервалов времени (исключаем `endTime`)
42+
- Заменил собственный `MessageUtil` велосипед на спринговый `MessageSourceAccessor`
43+
- В ролях убрал префиксы `ROLE_` ([Role and GrantedAuthority](https://stackoverflow.com/a/19542316/548473))
44+
- Добавился удобный метод `int AbstractBaseEntity.id()`
45+
- Фикс `Location` в `ProfileRestController.register`
46+
- Фикс валидации `UniqueMailValidator` для REST update без `user.id`
47+
- Заменил `jdbc.initLocation` на полный путь - IDEA не ругается
48+
- В конфигурации `cargo-maven2-plugin` сделал [индивидуальный контекст приложения](https://stackoverflow.com/a/60797999/548473)
49+
- Тесты
50+
- Обновил даты еды на 2020г.
51+
- Зарефакторил тесты сервисов на удаление - `NotFoundException` может бросаться при `delete()`
52+
- В тестах контроллеров вернулся к реализации без обертки над `MockMvcRequestBuilders`
53+
- Для `InMemory` тестов подключаю только `inmemory.xml` (добавил туда необходимую конфигурацию из `spring-app.xml`)
54+
55+
256
### Topjava 18
357

458
- В `ErrorType` добавил `HttpStatus status`
5-
- В PostgreSQL обнаружилась бага: граничное значение `0:00` из за ошибок округления попадает в предыдущий интервал.
59+
- В PostgreSQL обнаружилась бага: граничное значение `0:00` из-за ошибок округления попадает в предыдущий интервал.
660
Мораль: всегда в тестах проверяйте граничные значения. Добавил этот случай в тестовые данные.
761
- Изменил `MealRepository.getBetween` (принимаю `@Nullable LocalDate`). Изменились реализации.
862
- Выделил метод `UserService.prepareAndSave`

cv.md

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
![cv](https://cloud.githubusercontent.com/assets/13649199/10877471/93ea86b8-8157-11e5-9bfa-95e3fba75c58.jpg)
44

55
- <a href="http://habrahabr.ru/company/ua-hosting/blog/272617/">Научиться программировать сложнее, чем кажется</a>
6-
- [Собеседование. Разработка ПО. Вопросы.](https://drive.google.com/open?id=0B9Ye2auQ_NsFQVc2WUdCR0xvLWM)
6+
- [Собеседование. Разработка ПО. Вопросы.](https://drive.google.com/file/d/0B9Ye2auQ_NsFQVc2WUdCR0xvLWM/view?usp=sharing&resourcekey=0-HaWoRxoyboMSKjg5P2I1cQ)
77
- [Набор ссылок для тренировки и прохождения интервью](https://github.com/andreis/interview)
88

99
### Составление резюме:
@@ -20,6 +20,7 @@
2020
### <a href="http://javaops.ru/story.html">Наши истории (делимся опытом и успехом)</a>
2121

2222
### Тесты/задачи онлайн:
23+
- [Interviewing: the most profitable skill you can learn (pramp.com)](https://www.pramp.com/)
2324
- [Java Programming Test](https://tests4geeks.com/java)
2425
- <a href="http://www.javadeathmatch.com/">game: test Java skills</a>
2526
- <a href="https://codility.com/programmers/lessons">Codility lesson tests</a>
@@ -28,7 +29,6 @@
2829
- <a href="http://www.spoj.com/">Sphere online judge</a>
2930
- <a href="https://codility.com/programmers/lessons/">Codility programmers lessons</a>
3031
- <a href="https://www.hackerrank.com/">Hackerrank practice coding</a>
31-
- [Interviewing: the most profitable skill you can learn (pramp.com)](https://www.pramp.com/)
3232
- [start.interviewing.io](https://start.interviewing.io/)
3333

3434
## [Тестовое собеседование, самые спрашиваемые темы](http://javaops.ru/interview/test.html)
@@ -37,6 +37,8 @@
3737
- <a href="https://www.youtube.com/watch?v=Deb5wMHjBHY">Михаил Портнов. Собеседование на работу: как продать себя грамотно</a>
3838
- <a href="https://www.youtube.com/watch?v=qKsc8PoHJwM">Михаил Портнов. Какие вопросы мы задаем на собеседовании?</a>
3939
- <a href="https://www.youtube.com/watch?v=hry2CNuOxBg">Михаил Портнов. Собеседование на работу: жизненный путь</a>
40+
- [Лёша Корепанов. Признаки плохих компаний для программиста](https://www.youtube.com/watch?v=Sj-WSWr-n7U)
41+
- [Лёша Корепанов. Как отвечать на вопросы, которые ты не знаешь. Техническое интервью для программиста](https://www.youtube.com/watch?v=Beoh3tfgPEk)
4042
- <a href="https://www.youtube.com/playlist?list=PL7XXjge0nKZczMtQbNk9c2cplvuLZomTh">Канал: Резюме, поиск работы, интервью</a>
4143
- <a href="https://www.youtube.com/watch?v=ft0Nj8Cm9kk">Яков Файн: Как стать профессиональным Java разработчиком</a>
4244
- <a href="https://jsehelper.blogspot.ru/p/blog-page.html">Ответы на вопросы на собеседовании Junior Java Developer</a>
@@ -48,7 +50,7 @@
4850
- <a href="http://habrahabr.ru/post/181033/">Тест на знание SQL</a>
4951
- <a href="http://jsehelper.blogspot.ru/p/blog-page.html">Вопросы на собеседовании Java Junior Developer</a>
5052
- <a href="https://play.google.com/store/apps/details?id=com.ab.jiq">Java вопросы с собеседований на Android</a>
51-
- <a href="https://drive.google.com/open?id=0B9Ye2auQ_NsFLTRFY293RUVPVms">Сборка вопросов от JavaRush</a>
53+
- <a href="https://drive.google.com/file/d/0B9Ye2auQ_NsFLTRFY293RUVPVms/view?usp=sharing&resourcekey=0-TXwkTG380W0Dm04cdZa4NA">Сборка вопросов от JavaRush</a>
5254
> про clone и finalize объязательно прочтите <a href="http://www.ozon.ru/context/detail/id/24828676/">Джошуа Блох: Java. Эффективное программирование (второе издание)</a>
5355
5456
- <a href="http://bookvoed.ru/book?id=2593572">Cracking the Coding Interview</a>
@@ -88,9 +90,13 @@
8890
- <a href="https://rabota.yandex.ru/search?job_industry=275&text=java">Яндекс агрегатор</a>
8991
- <a href="hh.ru">HH</a>
9092
- <a href="https://www.linkedin.com/">LinkedIn</a>
93+
- <a href="https://career.habr.com/">ХабрКарьера</a>
94+
- [headz.io](https://app.headz.io/candidates/new)
9195
- <a href="http://djinni.co/">djinni.co (более актуально для Украины)</a>
9296

93-
## Как выжить на испытательном сроке
97+
[Как изучать Java. Подборка от JavaRush](https://javarush.ru/groups/posts/3538-v-zakladki-kak-izuchatjh-java-boljhshaja-podborka-po-planu-obuchenija-instrumentam-i-poiskam-mo)
98+
<h2 id="probation">Как выжить на испытательном сроке</h2>
99+
94100
- Учись грамотно формулировать проблему. Проблема "у меня не работает" может иметь тысячи причин. В
95101
процессе формулирования очень часто приходит ее решение.
96102
- Учись инвестигировать проблему. Внимательное чтение логов и умение дебажить - основные навыки
@@ -106,6 +112,13 @@
106112
- Выдели самое главное путем опроса босса и важных коллег. Не распыляйся на мелочи.</li>
107113
- [**5 вещей, которые разработчик должен сделать прежде чем попросить о помощи**](https://techrocks.ru/2018/07/16/5-things-a-developer-should-do-before-asking-for-help/)
108114
- [**Советы новичкам**](http://blog.csssr.ru/2016/09/19/how-to-be-a-beginner-developer)
115+
- [ТОП-13 ошибок начинающего программиста](https://proglib.io/p/beginners-fails/)
116+
- [25 ошибок начинающего программиста](https://habr.com/ru/post/413129/)
117+
- [Путеводитель по синдрому самозванца](https://vc.ru/hr/167443-eshche-odin-putevoditel-po-sindromu-samozvanca-korni-prichiny-simptomy-i-posledstviya-chast-1)
109118
- [Нетехнические навыки](https://tproger.ru/experts/softskills-for-job)
110-
119+
- Видео [Junior и испытательный срок на первой работе](https://www.youtube.com/watch?v=GsGlsCbok-c)
120+
- Типичные ошибки начинающих программистов от JavaRush:
121+
- [Часть 1](https://javarush.ru/groups/posts/3044-razbor-tipichnihkh-oshibok-nachinajujshikh-programmistov-chastjh-1)
122+
- [Часть 2](https://javarush.ru/groups/posts/3055-razbor-tipichnihkh-oshibok-nachinajujshikh-programmistov-chastjh-2)
123+
- [От джуна к миддлу: практические советы](https://tproger.ru/articles/ot-dzhuna-k-middlu-prakticheskie-sovety)
111124
## [Отзывы по стажировке Topjava](https://vk.com/topic-74381644_30447246)

0 commit comments

Comments
 (0)