Идеальная разработка ПО. Рецепты лучших программистов

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Авторы популярной в IT-сообществе книги «Идеальный код» вновь предлагают вашему вниманию подборку лучших решений от признанных экспертов в области разработки ПО.
Существует много споров о том, какие же инструменты, технологии и практики могут действительно оптимизировать процесс разработки ПО и усовершенствовать конечный продукт.
В новой книге под редакцией Энди Орама и Грега Уилсона известные разработчики делятся своим бесценным опытом и мнениями на эту тему. Авторские эссе и статьи посвящены наиболее эффективным методам работы программиста, а также развенчиванию ряда мифов, существующих в программистском сообществе.
Среди авторов книги - такие авторитеты, как Стив Макконнелл, Барри Бэм, Барбара Китченхем и еще 27 известных экспертов в области разработки программного обеспечения.

Author(s): Энди Орам, Грегори Уилсон
Series: Бестселлеры O'Reilly
Publisher: Питер
Year: 2012

Language: Russian
Pages: 587
Tags: Информатика и вычислительная техника;Технология программирования;

Оглавление
Предисловие.....17
Часть I. Общие принципы поиска и использования
доказательств
Глава 1. Задача сбора убедительных доказательств ................22
Тим Мензес, Форрест Шалл
В начале .....22
Как обстоят дела сегодня ............23
Что может измениться .................26
Влияние контекста .....29
Взгляд в будущее .....30
Библиография......33
Глава 2. Достоверность, или Почему мы настаиваем на том,
чтобы нас убедили ...................36
Лютц Прекелт, Мэриан Петр
Как появляются доказательства в области технологии программирования ..........36
Достоверность и релевантность ...............38
Объединение доказательств ......42
Виды доказательств, их сильные и слабые стороны ..................44
Общество, культура, технология программирования и вы ......52
Благодарности .....53
Библиография......53
Глава 3. Что можно узнать из систематического обзора ..........55
Барбара Китченхэм
Общие сведения о систематических обзорах ..........56
Достоинства и недостатки систематических обзоров ................59
Систематические обзоры в области технологий программирования .......................64
Гибкие методы .....66
Заключение ...........70
Библиография......71
Глава 4. Качественные методы в области технологий
программирования ...................76
Эндрю Ко
Что такое "качественные методы" ..........77
Чтение результатов качественных исследований .......................79
Применение качественных методов на практике ........................81
Обобщение результатов качественных исследований ..............83
О систематичности качественных методов .............84
Библиография......84
Глава 5. Уроки практического применения: становление
метода QIP ..........85
Виктор Р. Базили
Сложность исследований в области технологий программирования ......................85
Реалистичный подход к эмпирическим исследованиям ..........86
Лаборатория технологий программирования NASA:
испытательная площадка для эмпирических исследований ...............87
QIP .....88
Заключение ...........95
Библиография......96
Глава 6. Личность, интеллект и опыт: влияние на разработку ........ 98
Джо Э. Ханней
Как узнать хорошего программиста ........99
Индивид и среда.....114
Расширенная модель интеллекта ...........117
Заключение .........121
Библиография.........123
Глава 7. Почему так трудно научиться программировать ........130
Марк Гуздьял
Действительно ли у студентов возникают трудности .............131
Группа Маккракена .....................132
Группа Листера .......133
Естественное понимание ..........134
Совершенствование инструментария и визуальное программирование ..............136
Роль контекстуализации ...........138
Заключение .........141
Библиография.........142
Глава 8. Кроме количества строк нужны ли дополнительные
метрики сложности? ..............145
Исраэль Херрайц, Ахмед Э. Хассан
Выбор продукта ......146
Метрики исходного кода...........147
Анализ выборки .....148
Статистический анализ .............153
Общий анализ .........153
Замечания по поводу статистической методологии ................159
Так нужны ли дополнительные метрики сложности ...............160
Библиография.........161
Часть II. Конкретные вопросы технологий
программирования
Глава 9. Автоматизированная система прогнозирования
дефектов ...........164
Элейн Дж. Вьюкер, Томас Дж. Острэнд
Распределение дефектов ...........164
Характеристики дефектных файлов .....168
Обзор модели прогнозирования ............169
Репликация и изменение модели прогнозирования ................171
Создание программы ..................176
Предупреждение ..........................177
Библиография.........180
Глава 10. Архитектурное планирование. Сколько и когда .......181
Барри Бем
Изменяется ли стоимость внесения изменений на протяжении
жизненного цикла проекта? ..................181
Сколько архитектурного планирования реально необходимо ............182
Так сколько архитектурного планирования реально необходимо .....198
Нужно ли проводить архитектурное планирование заранее ...............202
Выводы .................202
Библиография.........203
Глава 11. Следствие из закона Конвея ......... 206
Кристиан Берд
Закон Конвея .....206
Координация, конгруэнтность и производительность ............208
Координация при разработке продуктов с открытым кодом ...............213
Заключение .........217
Библиография.........218
Глава 12. Насколько эффективна разработка
через тестирование ................219
Бурак Турхан, Лукас Леймен, Мэделайн Дьеп,
Хакан Эрдогму, Форрест Шалл
Лекарство TDD - что это такое .............220
Сводка клинических испытаний TDD.....221
Выводы .................229
Благодарности ........230
Общая библиография ................230
Данные клинических испытаний TDD...................230
Глава 13. Почему в области компьютерных технологий
так мало женщин? ..................233
Мишель А. Уайткрафт, Уэнди М. Уильямс
Почему так мало женщин? .......234
А нужно ли? ........240
Заключение .........248
Библиография.........249
Глава 14. Два сравнения языков программирования ...............252
Лютц Прекелт
Сражение языков .........................253
Plat_forms: культура и технологии веб-разработки ..................261
И что? ...................270
Библиография.........271
Глава 15. Войны качества. Открытый код против
коммерческих продуктов .......273
Диомидис Спинеллис
Великие сражения прошлого ..................274
Поле боя ...............275
В бой ......................279
Результаты и последствия ........300
Благодарности и сведения о личной заинтересованности .....305
Библиография.........305
Глава 16. Разговоры о программном коде ...........309
Роберт Делайн
День из жизни программиста ..................309
О типичности поведения программистов ..............311
О чем разговор? ......312
Получение ответов на вопросы ...............312
Поиски логического обоснования .........314
Прерывания и многозадачность .............315
О чем спрашивают программисты.........315
Гибкие методологии лучше подходят для общения? ...............321
Программная модель общения ...............322
Библиография.........324
Глава 17. Парное программирование ........... 325
Лори Уильямс
История парного программирования .......326
Распределенное парное программирование ..........334
Проблемы ............335
Выводы .................336
Благодарности ........336
Библиография.........337
Глава 18. Современное рецензирование кода ..........................343
Джейсон Коэн
Здравый смысл .......343
Индивидуальное рецензирование кода ..................344
Динамика в группах ....................347
Заключение .........350
Библиография.........351
Глава 19. Общая мастерская или закрытые двери? .................352
Хорхе Аранда
Закрытые двери ......352
Общая мастерская .......................355
Производственные процессы ..................358
И последнее... .....360
Библиография.........360
Глава 20. Выявление зависимостей и управление ими при
глобальной разработке программного обеспечения ....... 362
Марсело Катальдо
Почему возникают проблемы с координацией в GSD ............363
Зависимости и их социально-технический дуализм ...............364
От теории к практике .................375
Перспективные направления ..................379
Библиография.........382
Глава 21. Насколько эффективна модуляризация ...................385
Нейл Томас, Гейл Мерфи
Системы ...............386
Что такое изменение ...................387
Что такое модуль .........................392
Результаты ..........394
Угрозы валидности ......................400
Заключение .........401
Библиография.........402
Глава 22. Доказательства в пользу паттернов проектирования ..... 404
Уолтер Тиши
Примеры паттернов проектирования .......405
Почему паттерны проектирования могут работать ..................408
Выводы .................422
Заключение .........424
Благодарности ........425
Библиография.........425
Глава 23. Научно обоснованное прогнозирование сбоев .........427
Начьяппан Нагаппан, Томас Болл
Введение ..............428
Покрытие кода ........429
Текучесть кода ........430
Сложность кода ......433
Зависимости кода ........................435
Организационные структуры ..................436
Интегрированный метод прогнозирования сбоев ....................438
Выводы .................443
Благодарности ........444
Библиография.........444
Глава 24. Искусство сбора сообщений об ошибках ..................447
Рахул Премрадж, Томас Циммерманн
Хорошие и плохие сообщения об ошибках ...........447
Какими свойствами должно обладать хорошее сообщение об ошибке ..................448
Результаты опроса .......................451
Расхождения в представлениях об информации ......................454
Проблемы с сообщениями об ошибках ...................456
О полезности дублирующихся сообщений об ошибках .........458
Не все ошибки исправляются .................461
Заключение .........462
Благодарности ........463
Библиография.........463
Глава 25. Откуда берутся дефекты в программных продуктах ....... 465
Дьюэйн Перри
Исследование дефектов в программных продуктах .................465
Контекст исследования .............467
Фаза 1: Общий опрос .................468
Фаза 2: Опрос по дефектам проектирования/программирования ..........................474
Дефекты интерфейса и дефекты реализации .......496
Чему следует верить в этих результатах .................498
Что мы узнали.........502
Благодарности ........504
Библиография.........504
Глава 26. Первые шаги профессионала: недавний выпускник
в своем первом программном проекте ......................507
Эндрю Бегел, Бет Саймон
Методология исследования .....509
Задача разработки программного продукта ..........513
Сильные и слабые стороны начинающих разработчиков ......517
Размышления .....520
Первые шаги .......520
Заблуждения, мешающие обучению .........522
О методологии преподавания .................523
Вовлечение в процесс изменений .....525
Библиография.........528
Глава 27. Анализ данных при сборе доказательств .................530
Ким Себастиан Херциг, Андреас Зеллер
Что именно анализировать ......530
Планирование исследования .....531
Введение в анализ данных ........532
Что дальше? ........540
Благодарности ........541
Библиография.........541
Глава 28. Копирование кода как принципиальный подход .....544
Майкл Годфри, Кори Кэпсер
Пример клонирования кода .....545
Обнаружение клонированного кода в программном продукте ...........546
Практика клонирования кода ............548
Наше исследование .......................553
Заключение .........556
Библиография.........557
Глава 29. Удобны ли ваши API? .............558
Стивен Кларк
Почему важно изучать удобство использования API..............559
Первые попытки изучения удобства API ..............561
Если не получилось с первого раза .......564
Адаптация к разным стилям работы .....571
Заключение .........576
Библиография.........577
Глава 30. Что означает "10x", или Измерение различий
в производительности труда программистов ...........578
Стив Макконнелл
Различия в производительности труда программистов .........578
Проблемы измерения производительности труда программистов .........................580
Различия в производительности труда групп ......582
Библиография.........584