Код, который умещается в голове. Эвристики для разработчиков [Марк Симан] (pdf) читать постранично, страница - 2
Книга в формате pdf! Изображения и текст могут не отображаться!
[Настройки текста] [Cбросить фильтры]
- 1
- 2
- 3
- 4
- . . .
- последняя (105) »
Примечание для архитекторов ПО . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Структура книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
О стиле кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Типизировать явно или неявно . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Примеры кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Примечание к библиографии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
О моих книгах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
От издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Об авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7
Оглавление
ЧАСТЬ I
РАЗВИТИЕ
Глава 1. Искусство или наука? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.1. Строительство здания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.1.1. Проблема проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.1.2. Этапы разработки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.1.3. Зависимости . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.2. Возделывание сада . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.2.1. Что заставляет сад расти? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.3. С точки зрения инженерии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.3.1. Программирование как ремесло . . . . . . . . . . . . . . . . . . . . . . . 37
1.3.2. Эвристика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.3.3. Ранние представления о разработке ПО . . . . . . . . . . . . . . . . 40
1.3.4. Становление и развитие программной инженерии . . . . . . 41
1.4. Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Глава 2. Чек-листы: история, виды, преимущества . . . . . . . . . . . . . . . . . . 45
2.1. Как ничего не забыть . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2. Чек-лист для новой кодовой базы . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2.1. Использовать Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2. Автоматизировать сборку . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.2.3. Включить все сообщения об ошибках . . . . . . . . . . . . . . . . . . 54
2.3. Добавление проверок в существующие кодовые базы . . . . . . . 61
2.3.1. Постепенное улучшение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.2. «Взломайте» свою организацию . . . . . . . . . . . . . . . . . . . . . . . 62
2.4. Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Глава 3. Преодоление трудностей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.1. Цель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.1.1. Надежность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.1.2. Ценность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
8
Оглавление
3.2. Почему программировать так сложно? . . . . . . . . . . . . . . . . . . . . . 70
3.2.1. Аналогия с мозгом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.2.2. Код больше читается, чем пишется . . . . . . . . . . . . . . . . . . . . . 72
3.2.3. Удобочитаемость . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.2.4. Интеллектуальный труд . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.3. Навстречу программной инженерии . . . . . . . . . . . . . . . . . . . . . . . 76
3.3.1. Связь с computer science . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3.2. Гуманный код . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.4. Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Глава 4. Вертикальный срез . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.1. Начните с рабочего ПО . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.1.1. От поступления данных до их сохранения . . . . . . . . . . . . . . 81
4.1.2. Минимальный вертикальный срез . . . . . . . . . . . . . . . . . . . . . 82
4.2. «Ходячий скелет» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.2.1. Характеризационные тесты . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.2.2. Паттерн AAA (Arrange-Act-Assert) . . . . . . . . . . . . . . . . . . . . . 87
4.2.3. Модерация статического анализа . . . . . . . . . . . . . . . . . . . . . . 88
4.3. Модель тестирования «от общего к частному» (оutside-in) . . 92
4.3.1. Получение данных JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.3.2. Размещение бронирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.3.3. Модульное тестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- 1
- 2
- 3
- 4
- . . .
- последняя (105) »
Последние комментарии
3 часов 21 минут назад
13 часов 41 минут назад
1 день 2 часов назад
1 день 9 часов назад
1 день 10 часов назад
1 день 11 часов назад