Оглавление
Вступительное слово
Предисловие
Глава 1. Введение
Зачем нужна книга о продуктивности программиста?
О чем эта книга
Куда отправиться дальше?
Часть I. Механика
Глава 2. Ускорение
Стартовая площадка
Акселераторы
Макросы
Резюме
Глава 3. Сосредоточение
Долой все, что отвлекает
Поиск бьет навигацию
Поиск трудных целей
Представления со смещенным корнем
Липучие атрибуты
Ярлыки для проектов
Больше мониторов
Виртуальные рабочие столы: разграничение
рабочего пространства
Резюме
Глава 4. Автоматизация
Не изобретайте велосипед
Организуйте локальный кэш
Автоматизируйте взаимодействие с веб-сайтами
Не забывайте про RSS-каналы
Применяйте Ant не только для сборки
Используйте Rake для решения типовых задач
Применяйте Selenium для автоматизации работы с веб-страницами
Применяйте bash для подсчета исключений
Замените пакетные файлы сценариями для Windows Power Shell
Применяйте Mac OS X Automator для удаления старых загрузок
Научитесь работать с Subversion из командной строки
Построение анализатора SQL на Ruby
Обоснование автоматизации
Не стригите яков
Резюме
Глава 5. Приведение к каноническому виду
Управление версиями по принципу DRY
Выполняйте сборку на канонической машине
Косвенность
Применяйте виртуализацию
Рассогласование импеданса и принцип DRY
Документация и принцип DRY
Резюме
Часть II. Практика
Глава 6. Проектирование, управляемое тестами
Эволюция тестов
Покрытие кода
Глава 7. Статический анализ
Анализ байт-кода
Анализ исходных текстов
Генерация метрик с помощью Panopticode
Анализ для динамических языков
Глава 8. О добрых гражданах
Нарушение инкапсуляции
Конструкторы
Статические методы
Криминальное поведение
Глава 9. Принцип YAGNI
Глава 10. Античные философы
Эссенциальные и акцидентальные свойства у Аристотеля
Бритва Оккама
Закон Деметры
Программистская мудрость
Глава 11. О непогрешимости авторитетов
Разъяренные обезьяны
Цепные интерфейсы
Антиобъекты
Глава 12. Метапрограммирование
Java и отражение
Тестирование Java с помощью Groovy
Написание цепных интерфейсов
Когда остановиться?
Глава 13. Паттерн "составной метод" и принцип SLAP
Составной метод в действии
Принцип SLAP
Глава 14. Многоязычное программирование
Как мы здесь оказались? И где собственно мы находимся?
Куда мы движемся? И как туда попасть?
Пирамида Олы
Глава 15. Ищите идеальные инструменты
В поисках идеального редактора
Кандидаты
Выбор подходящего инструмента для работы
Отказ от неудачных инструментов
Глава 16. Заключение: приглашение к продолжению разговора
Приложение
Строительные блоки
Алфавитный указатель