Содержание.
I. Механика 23
2. Ускорение 25
Стартовая площадка 25
Акселераторы 36
Макросы 54
Резюме 56
3. Сосредоточение 58
Долой все, что отвлекает 58
Поиск бьет навигацию 61
Поиск трудных целей 64
Представления со смещенным корнем 66
Липучие атрибуты 68
Ярлыки для проектов 69
Больше мониторов 70
Виртуальные рабочие столы: разграничение
рабочего пространства 70
Резюме 73
4. Автоматизация 74
Не изобретайте велосипед 75
Организуйте локальный кэш 76
Автоматизируйте взаимодействие с веб-сайтами 77
Не забывайте про RSS-каналы 78
Применяйте Ant не только для сборки 78
Используйте Rake для решения типовых задач 81
Применяйте Selenium для автоматизации работы с веб-страницами 82
Применяйте bash для подсчета исключений 84
Замените пакетные файлы сценариями для Windows Power Shell 86
Применяйте Mac OS X Automate г для удаления старых загрузок 87
Научитесь работать с Subversion из командной строки 89
Построение анализатора SQL на Ruby 90
Обоснование автоматизации 91
Не стригите яков 94
Резюме 95
5. Приведение к каноническому виду 96
Управление версиями по принципу DRY 97
Выполняйте сборку на канонической машине 99
Косвенность 100
Применяйте виртуализацию 108
Рассогласование импеданса и принцип DRY 109
Документация и принцип DRY 118
Резюме 126
II. Практика 127
6. Проектирование, управляемое тестами 129
Эволюция тестов 131
Покрытие кода 138
7. Статический анализ 141
Анализ байт-кода 141
Анализ исходных текстов 144
Генерация метрик с помощью Panopticode 146
Анализ для динамических языков 149
8. О добрых гражданах 152
Нарушение инкапсуляции 152
Конструкторы 154
Статические методы 154
Криминальное поведение 160
9. Принцип YAGNI 162
10. Античные философы 168
Эссенциальные и акцидентал ьные свойства у Аристотеля 168
Бритва Оккама 170
Закон Деметры 174
Программистская мудрость 176
11. О непогрешимости авторитетов 178
Разъяренные обезьяны 178
Цепные интерфейсы 179
Антиобъекты 182
12. Метапрограммирование 184
Java и отражение 184
Тестирование Java с помощью Groovy 186
Написание цепных интерфейсов 188
Когда остановиться? 190
13. Паттерн «составной метод» и принцип SLAP 191
Составной метод в действии 191
Принцип SLAP 197
14. Многоязычное программирование 202
Как мы здесь оказались? И где собственно мы находимся? 202
Куда мы движемся? И как туда попасть? 206
Пирамида Олы 211
15. Ищите идеальные инструменты 213
В поисках идеального редактора 213
Кандидаты 217
Выбор подходящего инструмента для работы 218
Отказ от неудачных инструментов 226
16. Заключение: приглашение к продолжению разговора 230
Приложение. Строительные блоки 232
Алфавитный указатель 240
Добавить комментарий