Оглавление
Об авторе
Благодарности
Предисловие

Часть I. Перед лицом кода

Глава 1. Держим оборону
На пути к хорошему коду
Готовьтесь к худшему
Что такое защитное программирование?
Этот страшный, ужасный мир
Технологии защитного программирования
Ограничения
Резюме
Контрольные вопросы

Глава 2. Тонкий расчет
Да в чем проблема?
Знайте своих клиентов
Что такое хорошее представление?
Размещение скобок
Единственно верный стиль
Внутрифирменные стили (и когда придерживаться их)
Установка стандарта
Религиозные войны?
Резюме
Контрольные вопросы

Глава 3. Что в имени тебе моем?
Зачем нужны хорошие имена?
Каким объектам мы даем имена?
Игра в названия
Технические подробности
Роза пахнет розой
Резюме
Контрольные вопросы

Глава 4. Литературоведение
Самодокументируемый код
Техника написания самодокументируемого кода
Практические методологии самодокументирования
Резюме
Контрольные вопросы

Глава 5. Заметки на полях
Что есть комментарий в коде?
Как выглядят комментарии?
Сколько комментариев требуется?
Что помещать в комментарии?
На практике
Замечание об эстетичности
Работа с комментариями
Резюме
Контрольные вопросы

Глава 6. Людям свойственно ошибаться
Откуда что берется
Механизмы сообщения об ошибках
Обнаружение ошибок
Обработка ошибок
Подымаем скандал
Управление ошибками
Резюме
Контрольные вопросы

Часть II. Тайная жизнь кода

Глава 7. Инструментарий программиста
Что такое инструмент программирования?
А зачем они нужны - инструменты?
Электроинструменты
Какой инструмент необходим?
Резюме
Контрольные вопросы

Глава 8. Время испытаний
Проверка на подлинность
Кто, что, когда, зачем?
Тестировать легко
Типы тестирования
Выбор контрольных примеров для блочного тестирования
Архитектура и тестирование
Руками не трогать!
Анатомия провала
Справлюсь ли я сам?
Резюме
Контрольные вопросы

Глава 9. Поиск ошибок
Реальные факты
Природа этого зверя
Борьба с вредителями
Охота за ошибками
Как исправлять ошибки
Профилактика
Спрей от ос, репеллент для мух, липучки
Резюме
Контрольные вопросы

Глава 10. Код, который построил Джек
Языковые барьеры
Делаем слона из мухи
Выполнение сборки
Что должна уметь хорошая система сборки?
Механика сборки
Отпусти меня
Мастер на все руки
Резюме
Контрольные вопросы

Глава 11. Жажда скорости
Что такое оптимизация?
От чего страдает оптимальность кода?
Доводы против оптимизации
Нужна ли оптимизация
Технические подробности
Методы оптимизации
Как писать эффективный код
Резюме
Контрольные вопросы

Глава 12. Комплекс незащищенности
Риски
Наши оппоненты
Оправдания, оправдания
Ощущение незащищенности
Дела защитные
Резюме
Контрольные вопросы

Часть III. Проектирование кода

Глава 13. Важность проектирования
Программирование как конструкторская работа
Что нужно проектировать?
Из-за чего весь этот шум?
Хороший проект программного продукта
Как проектировать код
Резюме
Контрольные вопросы

Глава 14. Программная архитектура
Что такое программная архитектура?
Какими качествами должна обладать архитектура?
Архитектурные стили
Резюме
Контрольные вопросы

Глава 15. Программное обеспечение - эволюция или революция?
Гниение программного обеспечения
Тревожные симптомы
Как развивается код?
Вера в невозможное
Как с этим бороться?
Резюме
Контрольные вопросы

Часть IV. Стадо программистов?

Глава 16. Кодеры
Мартышкин труд
Идеальный программист
И что из этого следует?
Для глупцов
Резюме
План действий
Контрольные вопросы

Глава 17. Вместе мы - сила
Команды - общий взгляд
Организация команды
Инструменты для групповой работы
Болезни, которым подвержены команды
Личное мастерство и качества, необходимые для работы в команде
Принципы групповой работы
Жизненный цикл команды
Резюме
План действий
Контрольные вопросы

Глава 18. Защита исходного кода
Наши обязанности
Управление версиями исходного кода
Управление конфигурацией
Резервное копирование
Выпуск исходного кода
Где я оставлю свой код
Резюме
Контрольные вопросы
Часть V. Часть процесса

Глава 19. Спецификации
Что же это такое, конкретно?
Типы спецификаций
Что должны содержать спецификации?
Процесс составления спецификаций
Почему мы не пишем спецификации?
Резюме
Контрольные вопросы

Глава 20. Рецензия на отстрел
Что такое "рецензирование кода"?
Когда проводить рецензирование?
Проведение рецензирования кода
Пересмотрите свое отношение
Идеальный код
За пределами рецензирования кода
Резюме
Контрольный список
Контрольные вопросы

Глава 21. Какой длины веревочка?
Выстрел в темноте
Почему трудно делать оценки?
Под давлением
Практические способы оценки
Игры с планами
Не отставай!
Резюме
Контрольные вопросы

Часть VI. Вид сверху

Глава 22. Рецепт программы
Стили программирования
Рецепты: как и что
Процессы разработки
Спасибо, хватит!
Выбор процесса
Резюме
Контрольные вопросы

Глава 23. За гранью возможного
Программирование приложений
Программирование игр
Системное программирование
Встроенное программное обеспечение
Программирование распределенных систем
Программирование веб-приложений
Программирование масштаба предприятия
Численное программирование
И что дальше?
Резюме
Контрольные вопросы

Глава 24. Что дальше?
Но что же дальше?
Ответы и обсуждение

Библиография
Алфавитный указатель