Часто разработчиков нужно направить, поскольку они не имеют понятия о том,
что им нужно изучить для повышения своего уровня. В этой заметке я опишу
источники знаний, в моем понимании, необходимые для этой цели. Пишу в порядке, в
котором я их предлагаю читать.
Паттерны проектирования
Википедия -
там, в принципе, на хорошем уровне все описано и приведены примеры на разных
языках.
Базовая книга – классика:
«Приемы
объектно-ориентированного проектирования. Паттерны проектирования» - читал
книгу давно, и раза 3. Вам того же советую. Даст возможность понимать большое
количество терминов, произносимых другими разработчиками.
Рефакторинг
«Рефакторинг. Улучшение
существующего кода» - вероятно, эта книга сделала революцию в написании
кода. Читается быстро и интересно. Методы рефакторинга должны отложиться в
голове до конца жизни. Ваш код отныне будет лучше. В книге есть упоминание про
юнит тестинг.
Наверное, классикой в этой области ТДД считается книга -
«Экстремальное
программирование: разработка через тестирование» - просто и доступно. Даст
базу, но не научит писать юнит тесты.
Для углубления познаний в юнит тестинге советую прочитать толстый каталог
хЮнит паттернов:
xUnit Test Patterns: Refactoring Test Code
- ссылку на курсы английского языка я не буду приводить, так как предполагаю,
что программист должен уметь читать англоязычные книги. Книга ответила на все
мои вопросы, возникающие в процессе многочисленных попыток писать хорошие тесты.
Следующая книга, рассказывает о том, как правильно использовать паттерны и
тоже обязательна «Рефакторинг
с использованием шаблонов» Возможно, после прочтения этой книги, вы таки
сможете использовать паттерны во благо.
Углубляемся
«Архитектура
корпоративных программных приложений» - еще одна буква в азбуке
разработчика. Описывает подходы, составляющие, паттерны. Необходима для
понимания еще кучи непонятных терминов.
Если в предыдущей книге фундаментальные понятия. То в книге «
Применение DDD и шаблонов проектирования. Проблемно-ориентированное
проектирование приложений с примерами на C# и .NET » можно понять, как их
применить. Перевод - отвратительный, так что, возможно, многие её предпочтут
читать на английском языке. А, еще эта книга дала мне понимание наконец-то, что
такое «Внесение зависимостей» (Dependency injection).
Полученные знания, из книг указанных выше, дадут результат, если научиться
использовать их постоянно. В книге -
Continuous Integration: Improving Software Quality and Reducing Risk
рассказывается, что нужно для этого сделать.
Что дальше
Я прочитал книги упомянутые выше. Дальше я планирую прочесть
Implementation Patterns - вроде как основы, разложенные по полочкам в
результате труда Кента Бека.
Книга, которую я сейчас читаю
Beyond Software Architecture: Creating and Sustaining Winning Solutions
Также жду выхода
Aspect Oriented Refactoring - даже само название уже звучит интересно.
Refactoring HTML: Improving the Design of Existing Web Application - по
аннотации очень интересно (мне как веб-разработчику, по крайней мере).
Знатоки скажут, что я хитер – перечислил книги из серии Мартина Фаулера и
сделал пост. В принципе, вы правы, всю статью можно было написать одним
предложением:
Прочитайте все книги из
The Addison-Wesley Signature Series и будет вам счастье.
Автор: http://www.kigorw.com