Читать книгу Полезные конспекты книг и авторские заметки по информационным технологиям. Без формул - - Страница 7
Полезные высказывания из книги «Надежный код» Бруно
ОглавлениеВ разделе приведены цитаты из [5].
Более высокий уровень абстрагирования позволяет больше времени уделять важным элементам любого проекта.
Нет единого мнения по вопросу, что именно должны знать и уметь все разработчики.
Разработка ПО – это не инженерия.
Настройка производительности и безопасности не должна откладываться на конец проекта.
После прочтения советов необходимо выработать привычку их применения.
На практике методология водопада работает не очень хорошо, поскольку многие важные особенности программы проявляются лишь на этапе реализации.
Нереалистично тестировать ПО в конце цикла разработки.
agilealliance.org.
agilemanifesto.org/principles.html.
Сейчас используются Scrum (наиболее широко применяется в Microsoft), XP, TDD.
blogs.msdn.com/e7.
Шаги разработки:
– сбор сведений от заказчика, совместное обсуждение требований, детальное тестирование, описание параметров компонентов и общей архитектуры системы;
– процедуры контроля качества кода – стандарты, совместная разработка, оптимизация, модульное тестирование;
– обширное тестирование системы и сборки.
Методы контроля качества применять как можно раньше.
Чем больше кода написано, тем сложнее его тестировать.
Стремиться и сосредоточиться на качестве, надежности, безопасности.
Применять итеративную разработку с итерациями не более 6—8 недель, полностью завершать один компонент перед началом работы, разделять работы на несколько автономных групп, достаточно часто обмениваться информацией о состоянии проекта.
Использовать типичные методологии развертывания, оборудования и инструментов, планировать процессы, стремясь к предсказуемости и повторяемости процедур.
Для ускорения процессов создания и развертывания, упрощения обмена информацией использовать в командах общие инструменты и процедуры для управления исходным кодом, сборки, ведения баз данных, общие подходы к программированию и единую терминологию.
Отказаться от модели водопада.
Создавать проверяемые модули.
Ежедневно запускать сборку и запускать автоматические BVT-тесты.
Использовать продукты компании в ее работе, начиная с самых ранних стадий их разработки.
Идентифицировать участников приложения (типы) и способы их взаимодействия друг с другом (прототипирование; концепции, взаимоотношения и взаимодействия проверяются на полноту и корректность; здесь же анализируются риски дизайн).
В приложениях на управляемом коде в качестве языка метапрограммирования, позволяющего изменять поведение приложения во время выполнения, применять XML.
Производительность с самого начала часть любого проекта.
Факторы масштабирования – часть дизайна приложения.
Безопасность закладывается в дизайне приложения.
Тестеры гарантируют полное покрытие кода тестами.
Учиться эффективно управлять памятью.
Использовать безопасное программирование.
Сердцем программирования являются этапы анализа требований и проектирования.
Цикл разработки ПО:
– анализ требований;
– проектирование;
– спецификации;
– программирование;
– тестирование;
– развертывание;
– обслуживание.
Написанию кода обязательно должен предшествовать этап проектирования.
Дизайн приложения в идеале не зависит от особенностей реализации.
В ООП 40—50% времени разработчик тратит на проектирование кода.
Число написанных строк кода – неверный показатель труда.
Секрет успеха заключается в неизменности цели.
На устранение проблемы на этапе тестирования требуется в 4 раза больше времени, чем на этапе проектирования.
C# – прямой потомок C++.
Существительные из предметной области могут стать объектами, глаголы и глагольные группы – поведением.
Проектирование должно управлять реализацией, но не наоборот.
Из списка объектов предметной области удаляются не взаимодействующие с другими.
Использовать UML для моделирования в проектировании.
Типы UML-схем см. в книге.
Изоляция классов друг от друга – один из принципов ООП.
В конструкторе классов VS изменения в схеме классов немедленно отражаются в коде и наоборот.
Один из способов повысить гибкость кода – писать его как можно меньше.
Метаданные хранить в xml-файлах конфигурации в корневом каталоге приложения (не использовать ini и реестр).
Использование метаданных позволяет разработчику отделить конкретные логические детали от исходного кода.
Настройки, применимые ко всем приложениям на данном компьютере, хранятся в machine.config.
Храните в метаданных настройки приложения.
Храните в метаданных данные приложения.
Управляйте поведением приложения при помощи метаданных.
Все компоненты должны при возможности управляться конфигурацией.
Изменение файлов конфигурации не требует регрессионного тестирования.
Использовать сжатие данных, передаваемых по сети.
Не использовать множество маленьких статических избражений.
Стандарт HTTP/1.1 предполагает одновременную загрузку браузером только двух ресурсов с одного имени хоста (новые браузеры игнорируют это требование).