Recommended Books - SJC-2015/Tasks GitHub Wiki
Recommended Books
Advanced Java Development
- Java. Эффективное программирование (Джошуа Блох)
- Философия Java (Брюс Эккель)
- Java. Новое поколение разработки (Бенджамин Эванс, Мартин Вербург)
- Java Concurrency in Practice (Brian Goetz, et al.)
Рефакторинг / чистый код
- Совершенный код (Стив Макконнелл)
- Рефакторинг. Улучшение существующего кода (Мартин Фаулер)
Refactoring (web) - Рефакторинг с использованием шаблонов (Джошуа Кириевски)
- Чистый код. Создание, анализ и рефакторинг (Роберт Мартин)
OOP / OOAD
-
Объектно-ориентированный анализ и проектирование с примерами приложений на С++ (Гради Буч)
-
Объектно-ориентированное программирование в действии (Тимоти Бадд)
-
Приемы объектно-ориентированного проектирования. Паттерны проектировани (Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес)
-
Object Design: Roles, Responsibilities, and Collaborations (Rebecca Wirfs-Brock , Alan McKean)
-
Object Oriented Software Engineering: A Use Case Driven Approach (Ivar Jacobson)
-
Head First Design Patterns (by Eric Freeman , Bert Bates) - есть на русском
-
Head First Software Development (by Dan Pilone , Russ Miles) - возможно, есть на русском
Книги о процессе разработки
-
Мифический человеко-месяц, или Как создаются программные системы (Фредерик Брукс)
-
Программист-прагматик. Путь от подмастерья к мастеру (Эндрю Хант, Дэвид Томас)
-
Лучшие примеры разработки ПО (Джоэл Спольски) - http://joelonsoftware.com
-
Принципы работы с требованиями к программному обеспечению. Унифицированный подход (Дин Леффингуэлл, Дон Уидриг)
-
Пользовательские истории: гибкая разработка программного обеспечения (Майк Кон)
-
Быстрая разработка программ. Принципы, примеры, практика (Роберт Мартин)
-
Непрерывная интеграция. Улучшение качества программного обеспечения и снижение риска (Поль Дюваль, Стивен Матиас, Эндрю Гловер)
- Как успешно руководить проектами. Серебряная пуля (Фергус О`Коннел)
- Deadline. Роман об управлении проектами (Том ДеМарко)
- Как пасти котов. Наставление для программистов, руководящих другими программистами (Дж. Ханк Рейнвотер)
- Вальсируя с Медведями: управление рисками в проектах по разработке программного обеспечения (Том ДеМарко, Тимоти Листер)
- Человеческий фактор. Успешные проекты и команды (Том ДеМарко, Тимоти Листер)
Экстремальное программирование
- Экстремальное программирование: планирование (Кент Бек, Мартин Фаулер)
- Экстремальное программирование: разработка через тестирование (Кент Бек)
Другие
- Архитектура корпоративных программных приложений (Мартин Фаулер)
- Catalog of Patterns of Enterprise Application Architecture
- Алгоритмы. Построение и анализ (Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн)
- Aspect-Oriented Analysis and Design: The Theme Approach (Siobhán Clarke , Elisa Baniassad)
Потенциально интересные темы
Domain-Driven Design
- Применение DDD и шаблонов проектирования (Нильссон)
- Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем (Эрик Эванс)
- Предметно-ориентированные языки программирования, Domain-specific languages (DSL) (Мартин Фаулер)
Онлайн-материалы:
-
An Introduction To Domain-Driven Design - http://msdn.microsoft.com/en-us/magazine/dd419654.aspx
-
Martin Fowler on DDD - http://martinfowler.com/tags/domain%20driven%20design.html
Аспектно-ориентированное программирование (AOP, AOSD)
- Aspect-Oriented Analysis and Design: The Theme Approach (Siobhán Clarke , Elisa Baniassad)