«В самом начале 2014 года я решил начать лучше документировать свои привычки чтения и делиться ими со всеми вами.
Суть в том, что благодаря кураторству и документированию мое чтение стало более целенаправленным и разнообразным. Кроме того, я считаю, что курирование хорошего контента приносит большую пользу, помогает людям исследовать и позволяет лучшим материалам подниматься на вершину.
Надеюсь, они вам понравятся во второй половине 2014 года.
Итак, приступим…
1. Java
>> Writing Tests for Data Access Code – Green Build Is Not Good Enough
Хорошее начало для обзора этой недели — Петри передовой опыт тестирования приложения. Третий пункт о транзакционности особенно важен — не тестируйте разные семантики транзакций.
Тоже довольно забавно: «У нас есть два варианта: правильный и неправильный».
>> State of the Specialization
В Java появляются обобщения над примитивами (возможно, также и овеществление) — Брайан Гетц опубликовал очень раннее предложение, которое определенно стоит прочесть.
>> From JPA to Hibernate’s legacy and enhanced identifier generators
Далее в списке — далее по генерации идентификаторов с помощью JPA — эта серия станет отличным ресурсом для более глубокого изучения как Hibernate, так и JPA.
>> Introduction to writing custom collectors in Java 8
Кто говорит, что Java 8 не поддерживает Guava – вот хороший пример для сборщиков, который показывает, что они могут хорошо играть вместе.
>> Turning recursive file system traversal into Stream
Элегантное использование потоков для выравнивания и обхода каталога в файловой системе.
2. Весна
>> Should my tests be @Transactional?
Это одна из тех областей, где я сейчас делаю все по-другому, чем даже несколько лет назад. Мое мнение о тестах и @Transactional — нет.
Почему бы и нет? Несколько причин: во-первых, я считаю ценным, чтобы тесты использовали мою систему и мои API с той же семантикой транзакций, которая фактически используется в рабочей среде; их изменение слегка изменит ситуацию — а тонкие различия в тестах — по моему опыту — нехороши.
Вторая причина, стоящая за `нет`, заключается в том, что знание того, что у меня будут ненужные данные и окончание выполнения моего набора тестов, заставляет меня писать логику теста определенным образом, действительно продумывать некоторые сценарии и, в целом, положительно влияет на гибкость тестов.
Но это мое личное предпочтение, и как Марко открывает статью – это зависит от обстоятельств. В общем, хорошая статья для прочтения.
>> SpEL support in Spring Data JPA @Query definitions
Spring Data только что стал немного круче – сказал Нафф.
>> Spring Data REST now comes with ALPS metadata
Метаданные ALPS для меня новы, и эта статья делает их довольно интересными — возможно, это шаг вперед по сравнению с медленными темпами стандартизации типов гипермедиа.
Стоит посмотреть — и, вероятно, потребуется немного покопаться, чтобы действительно получить хорошее представление о том, что такого рода метаданные могут сделать для API (раскопки, которые я планирую провести на выходных).
>> Spring Tool Suite and Groovy/Grails Tool Suite 3.6.0 released
Вышел новый STS — и, поскольку это инструмент, которым я пользуюсь каждый день, я быстро его обновил; если вы используете Eclipse и делаете Spring — действительно нет причин не попробовать.
3. Технические и размышления
>> TDD Chess Game Part 9: God Save the Queen
Хотя у меня еще не было возможности увидеть эту часть, я с самого начала освещал всю серию в своих еженедельных обзорах, поэтому я без колебаний рекомендую ее даже прежде чем я увижу это в эти выходные. Сериал переполнен – и, если быть честным, это то, что, вероятно, следует выпускать и продавать – но, поскольку это бесплатно – пройдите его, и вы многое поймете.
>> What not to do in an interview, part 2: Interviewer Edition
Хорошее продолжение первой статьи с советами по собеседованию – я был по обе стороны стола для собеседований и лично я обнаружил, что быть интервьюером намного сложнее (для меня). Вам предстоит пройти долгий-долгий путь, прежде чем вы станете наполовину приличным интервьюером — и это достойный список вещей, о которых следует помнить, когда вы находитесь в таком положении.