1.6.17. Правило расширяемости: проектируйте с учетом изменений в будущем, поскольку будущее придет скорее, чем кажется
1.6.17. Правило расширяемости: проектируйте с учетом изменений в будущем, поскольку будущее придет скорее, чем кажется
Если доверять заявлениям других людей о "единственном верном пути" неблагоразумно, еще большим безрассудством будет вера в непогрешимость собственных разработок. Никогда не считайте себя истиной в последней инстанции. Следовательно, оставляйте пространство для роста форматов данных и кода. В противном случае часто будут возникать препятствия, связанные с прежними неразумными решениями, поскольку их невозможно изменить при поддержке обратной совместимости.
При проектировании протоколов или форматов файлов следует делать их достаточно самоописательными, для того чтобы их можно было расширять. Всегда, всегда следует либо включать номер версии, либо составлять формат из самодостаточных, самоописательных команд так, чтобы можно было легко добавить новые директивы, а старые удалить, "не сбивая с толку" код чтения формата. Опыт Unix свидетельствует: минимальные дополнительные издержки, которые позволяют сделать расположение данных самоописательным, тысячекратно окупаются возможностью развивать его без разрушения конструкции.
Проектируя код, следует организовывать его так, чтобы будущие разработчики могли включать новые функции в архитектуру без необходимости ее перестройки, Данное правило не является разрешением на добавление функций, которые еще не нужны; это совет, призывающий писать код так, чтобы облегчить последующее добавление новых функций, когда они действительно понадобятся. Необходимо сделать добавление новых функций гибким, а также вставлять в код комментарии, начинающиеся словами "если когда-нибудь потребуется сделать…". Это значительно облегчит работу тех, кто в последующем будет использовать и сопровождать код.
В их числе окажется и создатель программы, поддерживая код, который наполовину забудется под давлением более новых проектов. "Проектируя на будущее", можно сохранить собственное душевное равновесие.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
В будущем
В будущем В будущие версии Safari и IE8 уже внесены изменения, которые коснулись способа загрузки скриптов. Идея заключается в том, чтобы загружать скрипты параллельно, но исполнять в той последовательности, в которой они находятся на странице. По всей видимости, в один
Кто к нам с вирусом придет...
Кто к нам с вирусом придет... Без сомнения, вы уже наслышаны о компьютерных вирусах, о них периодически пишут в газетах и говорят по телевизору.Компьютерные вирусы – это вредоносные программы, способные самостоятельно копироваться на компьютер ничего не подозревающего
7. Кодирование с учетом масштабируемости
7. Кодирование с учетом масштабируемости РезюмеВсегда помните о возможном росте данных. Подумайте об асимптотической сложности без преждевременной оптимизации. Алгоритмы, которые работают с пользовательскими данными, должны иметь предсказуемое и, желательно, не хуже,
71. Проектируйте и пишите безопасный в отношении ошибок код
71. Проектируйте и пишите безопасный в отношении ошибок код РезюмеВ каждой функции обеспечивайте наиболее строгую гарантию безопасности, какой только можно добиться без дополнительных затрат со стороны вызывающего кода, не требующего такого уровня гарантии. Всегда
19.2.4.4. Проектирование с учетом обновлений
19.2.4.4. Проектирование с учетом обновлений По мере выхода новых версий, программы изменяются. Некоторые изменения обратно не совместимы. Соответственно, следует серьезно продумать проектирование схемы инсталляции, для того чтобы несколько установленных версий кода
Правило 18: Проектируйте интерфейсы так, что их легко было использовать правильно и трудно – неправильно
Правило 18: Проектируйте интерфейсы так, что их легко было использовать правильно и трудно – неправильно C++ изобилует интерфейсами. Интерфейсы функций. Интерфейсы классов. Интерфейсы шаблонов. Каждый интерфейс – это средство, посредством которого пользователь
1.6.17. Правило расширяемости: проектируйте с учетом изменений в будущем, поскольку будущее придет скорее, чем кажется
1.6.17. Правило расширяемости: проектируйте с учетом изменений в будущем, поскольку будущее придет скорее, чем кажется Если доверять заявлениям других людей о "единственном верном пути" неблагоразумно, еще большим безрассудством будет вера в непогрешимость собственных
19.2.4.4. Проектирование с учетом обновлений
19.2.4.4. Проектирование с учетом обновлений По мере выхода новых версий, программы изменяются. Некоторые изменения обратно не совместимы. Соответственно, следует серьезно продумать проектирование схемы инсталляции, для того чтобы несколько установленных версий кода
Совет 38. Проектируйте классы функторов для передачи по значению
Совет 38. Проектируйте классы функторов для передачи по значению Ни С, ни С++ не позволяют передавать функции в качестве параметров других функций. Вместо этого разрешается передавать указатели на функции. Например, объявление стандартной библиотечной функции qsort
Глава 3 Подбор строительно-отделочных материалов и работ с учетом их стоимости в программе PromOffice Euroremont
Глава 3 Подбор строительно-отделочных материалов и работ с учетом их стоимости в программе PromOffice Euroremont Любому человеку рано или поздно приходится делать ремонт. Квартира, дом, загородная дача – любое жилье время от времени требует ремонта или реконструкции. Даже если нет
Викторина с учетом времени
Викторина с учетом времени Исходный файл: Flashtrivia.fla Теперь, когда у вас есть работающая программа викторины, можно кое-что добавить и создать более развернутый вариант викторины. Эта игра отличается от предыдущей совсем немногим [15] . Вы добавите более сложный подсчет
Когда Интернет придёт в каждый дом? Ответит "Билайн"
Когда Интернет придёт в каждый дом? Ответит "Билайн" Широкополосный доступ в Интернет — понятие не новое: провайдеры прокладывают провода и подключают новые здания, 3G-сети постепенно расширяются, USB-модемы продаются на каждом углу, но быстрый безлимитный Интернет — пока
Скорее всего, вам не избежать фазы приёмочного тестирования
Скорее всего, вам не избежать фазы приёмочного тестирования В идеальном мире Scrum’а результатом каждого спринта должна быть система, потенциально готовая к использованию. Бери и устанавливай, да? А вот и нет!По нашему опыту, такой подход обычно не работает. Там будет куча
Почему стартаперам кажется, что российский венчур — клондайк, и почему на самом деле это не совсем так Валентина Славина, президент НП «Бизнес-ангелы Урала»
Почему стартаперам кажется, что российский венчур — клондайк, и почему на самом деле это не совсем так Валентина Славина, президент НП «Бизнес-ангелы Урала» Опубликовано 23 апреля 2013Будучи руководителем сообщества частных инвесторов ранней стадии на Урале (НП