Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Software Engineering2011.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.12 Mб
Скачать

Метапрограммирование

Метапрограммирование — вид программирования, связанный с созданием программ,которые порождают другие программы как результат своей работы (в частности, на стадии компиляции их исходного кода), либо программ, которые меняют себя во время выполнения (самомодифицирующийся код). Первое позволяет получать программы при меньших затратах времени и усилий на кодирование, чем если бы программист писал их вручную целиком, второе позволяет улучшить свойства кода (размер и быстродействие). При этом подходе код программы не пишется вручную, а создается автоматически программой-генератором на основе другой, более простой программы. Такой подход приобретает смысл, если при программировании вырабатываютсяразличные дополнительные правила (более высокоуровневые парадигмы, выполнение требований внешних библиотек, стереотипные методы реализации определенных функций и пр.). При этом часть кода теряет содержательный смысл и становится лишь механическим выполнением правил. Когда эта часть становится значительной, возникает мысль задавать вручную лишь содержательную часть, а остальное добавлять автоматически. Это и проделывает генератор. Возможность изменять или дополнять себя во время выполнения превращает программу в виртуальную машину. Хотя такая возможность существовала уже давно на уровне машинных кодов (и активно использовалась, например, при создании полиморфных вирусов), с метапрограммированием обычно связывают перенос подобных технологий в высокоуровневые языки. Языком, изначально имеющим расширенные механизмы метапрограммирования, является Forth.

Качество кода. Критерии качества кода

Качество кода может определяться различными критериями. Некоторые из них имеютзначение только с точки зрения человека. Например, то, как отформатирован текст программы. Многие из имеющихся стандартов оформления кода имеют своей целью облегчить будущее сопровождение ПО, включающее отладку и обновление. Так же следует различать качество приложения (безопасность, быстродействие) и качество кода (читаемость).

К признакам качественного кода можно отнести:

  • Читаемость кода (в том числе наличие или отсутствие комментариев к коду)

  • Лёгкость поддержки, тестирования, отладки, исправления ошибок, изменения ипортируемости

  • Низкая сложность кода

  • Низкое использование ресурсов: памяти, процессорного времени и дискового

пространства

  • Корректная обработка исключительных ситуаций

  • Отсутствие «мусора» — неиспользуемых переменных, недостижимых блоков кода,

ненужных устаревших комментариев и т.д.

Качественным является код, максимально приспособленный к поддержке.

Как правило, код необходимо поддерживать. Очень редки ситуации, когда код написали

и забыли. И затраты на поддержку, как показывает практика, зачастую серьезно превышают затраты на разработку. Код пишут разные разработчики, каждый со своим стилем, видением мира и квалификацией. И в этих условиях важнейшую роль играют правила, при соблюдении которых вероятность получить хорошо приспособленный к поддержке код сильно повышается.

Форматирование и оформление

Стандарт оформления кода обычно принимается и используется некоторой группой

разработчиков программного обеспечения с целью единообразного оформления совместно используемого кода. Такой стандарт сильно зависит от используемого языка программирования.Например, стандарт оформления кода для языка Си будет серьёзно отличаться от стандарта дляязыка BASIC.

Обычно стандарт оформления кода описывает:

  • Способы выбора названий и используемый регистр символов для имён переменных идругих идентификаторов:

  • Запись типа переменной в её идентификаторе (венгерская нотация);

  • Регистр символов (нижний, верхний, «верблюжий», «верблюжий» с малой буквы),

использование знаков подчёркивания для разделения слов;

  • Стиль отступов при оформлении логических блоков — используются ли символы

табуляции, ширина отступа;

  • Способ расстановки скобок, ограничивающих логические блоки;

  • Использование пробелов при оформлении логических и арифметических выражений;

  • Стиль комментариев и использование документирующих комментариев.

При определенном опыте работы с одним стандартом оформления навыки форматированиячаще всего доводятся до автоматизма. Так же практически все среды разработки предоставляют автоматическое форматирование кода. Широко известны такие стандарты оформления имен переменных как венгерская и верблюжья нотации. Венгерская нотация состоит в использовании префиксов, указывающихна тип переменной. Это наиболее актуально для языков с динамической типизацией. По верблюжьей нотации имена записываются логически достаточно полно словами, причем разделяются слова не подчеркиванием, а верхним регистром первых букв.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]