Продуктивный программист

Советы и рекомендации для разработчиков.

Форд H. «Продуктивный программист. Как сделать сложное простым, а невозможное-возможным» Символ-Плюс, 2009 год, 256 стр., ISBN 978-5-93286-156-1; (2,63 мб. pdf)

Аннотация из книги.
Всякому, кто зарабатывает на жизнь разработкой программного обеспечения, крайне важно добиваться лучшего результата быстрее и с меньшими усилиями. Правильный выбор редактора и сборка наилучшего набора инструментов для конкретной работы, использование преимуществ метапрограммирования, тонкое управление жизненным циклом объектов — вот лишь некоторые темы, которые опытный разработчик и преподаватель Нил Форд рассматривает в своей новой книге.

Он делится рекомендациями по механизмам повышения производительности — разумному планированию времени, извлечению максимума возможностей своего компьютера, подробно описывает множество полезных практических приемов и инструментов, к которым можно обращаться вне зависимости от используемой платформы. Будь вы начинающим программистом или профессионалом с годами работы за плечами, отказ от слепого следования стандартам и советы авторитетного мастера позволят вам работать продуктивнее и смело двигаться вверх по профессиональной и карьерной лестнице.

Оглавление книги

Содержание.

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

Скачать

Похожая литература