Boilerplate code

Содержание
Происхождение
Преамбула
В объектно-ориентированном программировании
метод boilerplate
HTML

В компьютерном программировании шаблонный код -это разделы кода, которые повторяются в нескольких местах практически без изменений.

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

Такой код называется шаблонным.

Потребность в шаблонном коде может быть уменьшена с помощью высокоуровневых механизмов, таких как:

  1. метапрограммирование (при котором компьютер автоматически записывает необходимый шаблонный код или вставляет его во время компиляции)
  2. соглашение о конфигурации (которое обеспечивает хорошие значения по умолчанию, уменьшая необходимость указывать детали программы в каждом проекте)
  3. проектирование на основе моделей (которое использует модели и генераторы моделей в код, устраняя необходимость в ручном шаблонном коде).
Содержание
Происхождение
Преамбула
В объектно-ориентированном программировании
метод boilerplate
HTML
См. также
Ссылки

Происхождение

Дополнительная информация: Boilerplate - Шаблон (текст)

Термин возник из газетного бизнеса. Колонки и другие материалы, распространявшиеся печатными синдикатами, рассылались подписным газетам в виде готовых печатных форм. Из - за их сходства с металлическими пластинами, используемыми при изготовлении котлов (boiler - котёл), они стали известны как "котловые пластины", а их результирующий текст - "шаблонный текст". Поскольку рассказы, которые распространяли бойлеры, обычно были "наполнителями", а не "серьезными" новостями, этот термин стал синонимом неоригинального, повторяющегося текста.

Родственным термином является бухгалтерский код, относящийся к коду, который не является частью бизнес-логики, но перемежается с ней для того, чтобы обновлять структуры данных или обрабатывать вторичные аспекты программы.

Преамбула

Одна из форм шаблонного кода состоит из объявлений, которые, хотя и не являются частью логики программы или основного синтаксиса языка, добавляются в начало исходного файла как обычай. Следующий пример Perl демонстрирует шаблонный шаблон:

#!/usr/bin/perl use warnings; use strict;

Первая строка-это shebang, который идентифицирует файл как Perl-скрипт, который может быть выполнен непосредственно в командной строке (в системах Unix/Linux.)

Два других-это прагмы (директивы), включающие предупреждения и строгий режим, которые предписаны модным стилем программирования Perl.

Следующий пример-шаблонный шаблон языка программирования C/C++, #include guard.

#ifndef MYINTERFACE_H #define MYINTERFACE_H ... #endif

Это проверяет и устанавливает глобальный флаг, чтобы сообщить компилятору, является ли файл myinterface.h уже был включен.

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

В объектно-ориентированном программировании

В объектно-ориентированных программах классы часто снабжаются методами получения и установки переменных экземпляра.

Определения этих методов часто можно рассматривать как шаблонные.

Хотя код будет варьироваться от одного класса к другому, он достаточно стереотипен по структуре, чтобы его лучше генерировать автоматически, чем писать от руки.

Например, в следующем классе Java , представляющем домашнее животное, почти весь код является шаблонным, за исключением объявлений Pet, name и owner:

public class Pet { private String name; private Person owner; public Pet(String name, Person owner) { this.name = name; this.owner = owner; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Person getOwner() { return owner; } public void setOwner(Person owner) { this.owner = owner; } }

Большая часть шаблона в этом примере существует для обеспечения инкапсуляции.

Если бы имя переменных и владелец были объявлены общедоступными, методы доступа и мутатора не были бы нужны.

Чтобы уменьшить количество шаблонных шаблонов, было разработано много фреймворков, например Lombok для Java.

Тот же код, что и выше, автоматически генерируется фреймворком Lombok с использованием аннотаций Java, что является формой метапрограммирования:

@AllArgsConstructor @Getter @Setter public class Pet { private String name; private Person owner; }

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

Например, эквивалент приведенного выше кода Java может быть выражен в Scala, используя только одну строку кода:

case class Pet(var name: String, var owner: Person)

Или в C# с использованием автоматических свойств с созданными компилятором резервными полями:

public class Pet { public string Name { get; set; } public Person Owner { get; set; } }

Шаблонный метод

В дополнение к объявлениям, методы в языках ООП также вносят свой вклад в количество шаблонов.

Проведенное в 2015 году исследование популярных Java-проектов показывает, что 60% методов могут быть однозначно идентифицированы по появлению 4,6% его токенов, что делает оставшиеся 95,4% шаблонных неуместными для логики.

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

HTML

В HTML следующий шаблонный шаблон используется в качестве базового пустого шаблона и присутствует на большинстве веб-страниц:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <title></title> </head> <body> </body> </html>

Рабочая группа по вебу, гипертексту, приложениям и технологиям (WHATWG) в своём HTML Living Standard определяет, что <html>, <head> и <body> теги могут быть безопасно опущены в большинстве случаев.

Тег <meta charset="UTF-8"> также может быть опущен, если веб-сервер правильно настроен для отправки кодировки символов вместе с типом контента.

Руководство по стилю HTML/CSS Google рекомендует опустить все необязательные теги, что приводит к гораздо более компактному шаблону:

<!DOCTYPE html> <title<>/title>

Похожие статьи
Программирование
C
C++
Bash
Python
PHP
JavaScript
Ruby
GIT
Docker

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: