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) (Мартин Фаулер)

Онлайн-материалы:

Аспектно-ориентированное программирование (AOP, AOSD)


  • Aspect-Oriented Analysis and Design: The Theme Approach (Siobhán Clarke , Elisa Baniassad)