От редакции: в рубрике DOU Booksучастники сообщества рассказывают о пяти любимых книгах — тех, которые меняют мировоззрение и могут быть полезны читателям-коллегам. Если у вас есть желание поделиться своей подборкой, пишите на editors@dou.ua.
[Сергей Немчинский — 20 лет работает программистом. Почти 15 из них — в Java. В прошлом Сергей работал Project manager в Ciklum, Team Leader в Luxoft, NetCracker и IntroPro, начальником отдела веб-разработки в ЛигаБизнесИнформ (первая приличная версия сайта liga.netбыла сделана под его руководством). Параллельно преподавал в учебных центрах Luxoft, NetCraker и IntroPro, и даже работал учителем в школе. Является Certified Scrum Master. Сейчас Сергей — основатель и руководитель учебной компании Foxminded]
Поделюсь с вами пятью книгами, которые, по моему разумению, стоит прочитать Enterprise Java разработчику.
Мартин Фаулер: «Рефакторинг. Улучшение существующего кода»
Книга на все времена. Только прочитав ее, разработчик начинает понимать что-то в своем коде и самое главное — понимать, какую фигню он до этого писал. Да, книга слегка тяжеловата, и слишком растянутые примеры мешают, но из песни слова не выкинешь — если вы ее не читали — прочтите непременно.
Роберт К. Мартин: «Чистый код: создание, анализ и рефакторинг. Библиотека программиста»
Первая книга, которую должен прочитать любой разработчик, только вылезая из пеленок. Книга научит ценить качество кода, привьет верные ориентиры и научит не есть желтый снег. Меня часто спрашивают — вот я научился писать код и что дальше? Вот и ответ — читайте чистый код и будет вам счастье. :)
Роберт К. Мартин: «Agile Software Development: principles patterns and practices»
Вторая книга в этом обзоре от Роберта Мартина. По-хорошему — ее одной было бы достаточно вместо всех предыдущих. Книга прекрасна во всем — строго структурирована, емкие, короткие фразы, ни единого лишнего слова, авторские иллюстрации с легким и интеллигентным юмором. Но есть две проблемы. Первая — она отвратительно переведена на русский язык. Хуже я перевода не видел вообще, поэтому название даю на английском — на русском ее читать не имеет никакого смысла. Достаточно сказать, что один принцип там вообще переведен в противоположном от оригинала смысле. Естественно, авторское оформление и рисунки потеряны. А вот в оригинале — мастрид, однозначно. Даже держать книгу в руках приятно.
Мартин Фаулер «Шаблоны корпоративных приложений»
Следующая книга из нашего обзора подойдет для тех, кто уже поработал на галерах и даже перестал краснеть за свой код, ну по крайней мере делает это не часто. В этот момент разработчик понимает, что от решения локальных проблем надо переходить к пониманию построения архитектуры приложений в целом. К сожалению, хороших книг, обучающих декомпозиции предметной области я практически не знаю. Эта книга — не про декомпозицию, а про типовые решения для Enterprise разработки. Но и из нее можно сделать большое количество выводов и многому научиться. Честно говоря, я ее читал в русском переводе и был не впечатлен. Переведена она существенно хуже, чем рефакторинг, так что наверняка лучше читать в оригинале. Кстати, по материалу этой книги я скоро буду проводить тренингв Киеве, приходите. Буду рад вас видеть. :)
Kent Beck «Extreme Programming Explained: Embrace Change»
Прочитав эту книгу, я настолько в свое время влюбился, что ушел с престижной должности начальника отдела веб-разработки в Лиге в мелкую конторку простым девелопером, лишь потому, что они мне пообещали настоящий ХР, прямо как у Бека. Прочитайте, Бека читать приятно, у него отличный рубленный слог, четкая структура и приятный юмор.
Естественно, ХР — это вообще не про Enterprise, это про организацию всей команды. Ну и по естественным причинам — в Enterprise эта тема возникает в первую очередь — команды большие. Задачи длинные и сложные. Нужно как-то в этом всем разбираться. ХР сейчас в чистом виде встречается крайне редко, однако принципы Agile разработки — то, что должен знать любой разработчик. И лучше Кента Бека их не объяснит никто, на мой вкус.