Библиотека knigago >> Компьютеры и Интернет >> Базы данных >> Код, который умещается в голове. Эвристики для разработчиков


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 898, книга: Мертвая бухта
автор: Владимир Григорьевич Колычев

"Мертвая бухта" Владимира Колычева - это мастерски написанный триллер, который погружает читателей в мир мистических тайн и загадочных событий. Главная героиня, Марина, возвращается на отдаленный остров, который когда-то был ее домом. Но по прибытии она понимает, что на острове происходит что-то зловещее. Жители ведут себя странно, и кажется, что их преследует темная сущность. По мере того как Марина расследует таинственные исчезновения и тревожные явления, она обнаруживает, что...

Марк Симан - Код, который умещается в голове. Эвристики для разработчиков

Роберт Мартин рекомендует Код, который умещается в голове. Эвристики для разработчиков
Книга - Код, который умещается в голове. Эвристики для разработчиков.  Марк Симан  - прочитать полностью в библиотеке КнигаГо
Название:
Код, который умещается в голове. Эвристики для разработчиков
Марк Симан

Жанр:

Базы данных, Околокомпьютерная литература, Учебники и самоучители по компьютеру

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Код, который умещается в голове. Эвристики для разработчиков"

Незаменимые практические советы по написанию кода в устойчивом темпе и по управлению сложностью, из-за которой проекты часто выходят из-под контроля. В книге описываются методы и процессы, позволяющие решать ключевые вопросы: от создания чек-листов до организации командной работы, от инкапсуляции до декомпозиции, от проектирования API до модульного тестирования. Автор иллюстрирует свои выводы фрагментами кода, взятыми из готового проекта. Написанные на языке C#, они будут понятны всем, кто использует любой объектно-ориентированный язык, включая Java, C++ и TypeScript. Для более глубокого изучения материала вы можете загрузить весь код и подробные комментарии к коммитам.

Читаем онлайн "Код, который умещается в голове. Эвристики для разработчиков". [Страница - 3]

Гуманный код . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. Модульное тестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. Пороговые значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.