Марк Симан - Код, который умещается в голове. Эвристики для разработчиков
Роберт Мартин рекомендуетНазвание: | Код, который умещается в голове. Эвристики для разработчиков | |
Автор: | Марк Симан | |
Жанр: | Базы данных, Околокомпьютерная литература, Учебники и самоучители по компьютеру | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | - | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Код, который умещается в голове. Эвристики для разработчиков"
Незаменимые практические советы по написанию кода в устойчивом темпе и по управлению сложностью, из-за которой проекты часто выходят из-под контроля. В книге описываются методы и процессы, позволяющие решать ключевые вопросы: от создания чек-листов до организации командной работы, от инкапсуляции до декомпозиции, от проектирования API до модульного тестирования. Автор иллюстрирует свои выводы фрагментами кода, взятыми из готового проекта. Написанные на языке C#, они будут понятны всем, кто использует любой объектно-ориентированный язык, включая Java, C++ и TypeScript. Для более глубокого изучения материала вы можете загрузить весь код и подробные комментарии к коммитам.
Читаем онлайн "Код, который умещается в голове. Эвристики для разработчиков". [Страница - 3]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (118) »
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. Модульное тестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.3.4. DTO и модель предметной области
(доменная модель) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.3.5. Fake Object, или фиктивный объект . . . . . . . . . . . . . . . . . . . 106
4.3.6. Интерфейс Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.3.7. Работа с интерфейсом Repository . . . . . . . . . . . . . . . . . . . . . 108
4.3.8. Настройка зависимостей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.4. Завершение среза . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.4.1. Схема . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.4.2. Репозиторий SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
9
Оглавление
4.4.3. Конфигурация базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . 115
4.4.4. Дымовой тест, или smoke-тестирование . . . . . . . . . . . . . . . 116
4.4.5. Граничный тест с фиктивной базой данных . . . . . . . . . . . 117
4.5. Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Глава 5. Инкапсуляция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.1. Сохранение данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.1.1. Предпосылки приоритета трансформации (TPP) . . . . . . 121
5.1.2. Параметризованные тесты . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.1.3. Копирование данных dto в модель предметной
области . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.2. Валидация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.2.1. Невалидные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.2.2. Цикл «красный, зеленый, рефакторинг» . . . . . . . . . . . . . . 129
5.2.3. Натуральные числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.2.4. Закон Постела (принцип надежности) . . . . . . . . . . . . . . . . 136
5.3. Защита инвариантов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
5.3.1. Постоянная валидность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.4. Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Глава 6. Триангуляция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.1. Кратковременная и долговременная память . . . . . . . . . . . . . . . 145
6.1.1. Легаси-код и память . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
6.2. Объем памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.2.1. Переполнение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
6.2.2. Метод «Адвокат дьявола» . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
6.2.3. Существующее резервирование . . . . . . . . . . . . . . . . . . . . . . . 155
6.2.4. Метод «Адвокат дьявола» и цикл «красный,
зеленый, рефакторинг» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
6.2.5. Когда тестов будет достаточно? . . . . . . . . . . . . . . . . . . . . . . . 160
6.3. Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
10
Оглавление
Глава 7. Декомпозиция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.1. Деградация кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.1.1. Пороговые значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . --">
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (118) »
Книги схожие с «Код, который умещается в голове. Эвристики для разработчиков» по жанру, серии, автору или названию:
А. В. Кириченко, Е. В. Дубовик, А. П. Никольский - Web на практике. CSS, HTML, JavaScript, MySQL, РНР для fullstасk-разработчиков Жанр: Web-дизайн Год издания: 2021 |
Слава Грис - Ошибки разработчиков видеоигр. От идеи до провала Жанр: Базы данных Год издания: 2023 Серия: Видеоигры: Глубокое погружение |
Адам Д. Скотт, Шелли Пауэрс, Мэтью Макдональд (Microsoft MVP) - JavaScript. Рецепты для разработчиков Жанр: Базы данных Серия: Бестселлеры O'Reilly |