جزییات کتاب
Э. Хант, Д. ТомасПрограммист-прагматик. Путь от подмастерья к мастеруНаходясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса - требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы - от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании. Содержание: Показать / Скрыть текст Глава 1. Прагматическая философия 1 Мой исходный текст съел кот МурзикПринятие ответственности 2 Энтропия в программах 3 Суп из камней и сварившиеся лягушки 4 Приемлемые программыНаходите компромисс с пользователямиЗнайте меру 5 Портфель знанийВаш портфель знанийПостроение вашего портфеляЦелиВозможности обученияКритическое осмысление 6 ОбщайтесьГлава 2. Прагматический подход 7 Пороки дублированияКак возникает дублирование?Навязанное дублированиеНеумышленное дублированиеНетерпеливое дублированиеКоллективное дублирование 8 ОртогональностьЧто такое ортогональность?Преимущества ортогональностиПроектные группыПроектированиеИнструментарии и библиотекиНаписание текста программыТестированиеДокументацияЖизнь в условиях ортогональности 9 ОбратимостьГибкая архитектура 10 Стрельба трассирующимиПрограмма, которую видно в темнотеПри стрельбе трассирующими вы не всегда попадаете в цельПрограмма трассировки и создание прототипов 11 Прототипы и памятные запискиДля чего создаются прототипыКак использовать прототипыСоздание прототипов архитектурыКак не надо использовать прототипы 12 Языки, отражающие специфику предметной области 13 ОценкаНасколько точной является "приемлемая точность"?Из чего исходят оценки?Что сказать, если вас просят оценить что-либоГлава 3. Походный набор инструментов 14 Преимущества простого текстаЧто такое простой текст?НедостаткиПреимущества простого текстаПодводим итог 15 Игры с оболочкамиУтилиты оболочек и системы Windows 16 Мощь редактированияОдин-единственный редакторСредства редактированияПроизводительностьКуда же направиться?Какой же редактор выбрать? 17 Управление исходным текстом программКоманда, в которой я работаю, не использует систему управления исходным текстомПрограммы управления исходным текстом 18 ОтладкаПсихология процесса отладкиУмонастроение отладкиС чего начать?Стратегии отладкиЭлемент удивленияКонтрольные вопросы при отладке 19 Обработка текста 20 Генераторы текстов программПассивные генераторыАктивные генераторы текстаГенераторы текста не должны быть слишком сложнымиГенераторы текста не всегда генерируют тексты программГлава 4. Прагматическая паранойя 21 Проектирование по контрактуРеализация принципа ППКППК и аварийное завершение работы программыДругие случаи применения инвариантовДинамические контракты и агенты 22 Мертвые программы не лгутАварийное завершение не означает "отправить в корзину для мусора" 23 Программирование утвержденийНе отключайте утверждения 24 Случаи, в которых используются исключенияЧто является исключительным?Обработчики ошибок как альтернатива исключению 25 Балансировка ресурсовОбъекты и исключенияБалансировка и исключенияСлучаи, при которых балансировка ресурсов невозможнаПроверка балансаГлава 5. Гибкость против хрупкости26 Несвязанность и закон ДеметераСведение связанности к минимумуЗакон Деметера для функцийА не все ли равно? 27 МетапрограммированиеДинамическая конфигурацияПриложения, управляемые метаданными 28 Временное связываниеПоследовательность операцийАрхитектураПроектирование с использованием принципа параллелизмаРазвертывание 29 Всего лишь визуальное представлениеПротокол "Публикация и подписка"Принцип "модель-визуальное представление-контроллер"Отходя от графических интерфейсовВсе такой же связанный (после стольких лет) 30 Доски объявленийРеализация концепции доски объявленийПример приложенияГлава 6. Пока вы пишете программу 31 Программирование в расчете на стечение обстоятельствКак программировать в расчете на стечение обстоятельствПреднамеренное программирование 32 Скорость алгоритмаЧто подразумевается под оценкой алгоритмов?Система обозначений 0()Оценка с точки зрения здравого смыслаСкорость алгоритма на практике 33 РеорганизацияКогда осуществлять реорганизацию?Как производится реорганизация? 34 Программа, которую легко тестироватьМодульное тестированиеТестирование в рамках контрактаСоздание модульных тестовПрименение тестовых стендовПостроение тестового окнаКультура тестирования 35 Злые волшебникиГлава 7. Перед тем, как начать проект 36 Карьер для добычи требованийВ поисках требованийДокументация требованийЧрезмерная спецификацияВидеть перспективуЕще одна мелочьПоддержка глоссарияПрошу слова 37 Разгадка невероятных головоломокСтепени свободыЕсть более простой способ! 38 Чувство готовностиЗдравое суждение или промедление? 39 Западня со стороны требований 40 Круги и стрелкиКакова отдача от методов?Нужно ли использовать формальные методы?Глава 8. Прагматические проекты 41 Команды прагматиковНикаких разбитых оконСварившиеся лягушкиОбщайтесьНе повторяйте самого себяОртогональностьАвтоматизацияЧувствуйте момент, когда нужно остановиться 42 Вездесущая автоматизацияВсе в автоматическом режимеКомпилирование проектаАвтоматизация процесса сборкиАвтоматические административные процедурыДети сапожника 43 Безжалостное тестированиеЧто тестироватьКак проводить тестированиеКогда тестироватьКольцо сжимается 44 Все эти сочиненияКомментарии в программеИсполняемые документыТехнические писателиПечатать документ или ткать его на холсте?Языки разметки 45 Большие надеждыПередача надеждНебольшой довесок 46 Гордость и предубеждениеПриложение А. Информационные ресурсыПрофессиональные обществаСобираем библиотекуИнтернет-ресурсыПриложение В. Ответы к упражнениям