Genelge kodu - Boilerplate code

Bilgisayar programcılığında, ortak kod veya sadece ortak kod, çok az değişiklikle veya hiç değişiklik olmadan birden çok yerde tekrarlanan kod bölümleridir. Ayrıntılı olarak kabul edilen dilleri kullanırken , programcı yalnızca küçük işlevleri gerçekleştirmek için çok sayıda kod yazmalıdır. Bu tür kodlara kazan plakası denir .

Genel bilgi ihtiyacı, metaprogramlama (bilgisayarın gerekli ortak kod kodunu otomatik olarak yazmasını veya derleme zamanında eklemesini sağlar ), konfigürasyon konvansiyonu (iyi varsayılan değerler sağlar, program belirtme ihtiyacını azaltır ) gibi üst düzey mekanizmalar yoluyla azaltılabilir. ayrıntılar) ve modele dayalı mühendislik (modeller ve modelden koda üreteçler kullanarak manuel ortak kod oluşturma ihtiyacını ortadan kaldırır).

Menşei

Terim gazete işinden doğdu . Basılı sendikalar tarafından dağıtılan sütunlar ve diğer eserler , hazırlanan baskı levhaları şeklinde abone gazetelere gönderildi . Kazan yapımında kullanılan metal plakalara benzerlikleri nedeniyle, "kazan plakaları" olarak bilinir hale geldiler ve sonuçta ortaya çıkan metinleri - "boilerplate text". Kazan plakaları tarafından dağıtılan hikayeler genellikle "ciddi" haberler yerine " dolgular " olduğundan, terim orijinal olmayan, tekrarlanan metinlerle eş anlamlı hale geldi.

İlgili bir terim, iş mantığının bir parçası olmayan ancak veri yapılarını güncel tutmak veya programın ikincil yönlerini ele almak için araya eklenen koda atıfta bulunan defter tutma kodudur .

önsöz

Bir kalıp plakası biçimi, program mantığının veya dilin temel sözdiziminin bir parçası olmasa da, bir gelenek meselesi olarak bir kaynak dosyanın başlangıcına eklenen bildirimlerden oluşur . Aşağıdaki Perl örneği, standart metni gösterir:

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

İlk satır bir olan shebang komut satırında doğrudan çalıştırılabilir bir Perl komut dosyası olarak dosyayı tanımlayan, (Unix / Linux sistemlerinde.) Diğer ikisi pragmas modaya Perl tarafından görevlendirilmiş olan uyarı ve Katı modda, açma tarzı programlama .

Bu sonraki örnek, bir C/C++ programlama dili ortak plakasıdır, #includeguard .

#ifndef MYINTERFACE_H
#define MYINTERFACE_H

...

#endif

Bu, derleyiciye myinterface.h dosyasının zaten dahil edilip edilmediğini söylemek için genel bir bayrak denetler ve ayarlar. Bir modülün derlenmesinde birbirine bağlı birçok dosya yer alabileceğinden, bu, aynı başlığın birden çok kez işlenmesini önler (bu, aynı ada sahip birden çok tanım nedeniyle hatalara yol açar).

Nesne yönelimli programlamada

In nesne yönelimli programların , sınıflar genellikle için yöntemlerle yapılmaktadır alma ve ayar örnek değişkenler. Bu yöntemlerin tanımları sıklıkla standart olarak kabul edilebilir. Kod bir sınıftan diğerine değişse de, elle yazıldığından daha iyi otomatik olarak oluşturulacağı için yapı olarak yeterince basmakalıptır. Örneğin, bir evcil hayvanı temsil eden aşağıdaki Java sınıfında , Pet , name ve Owner bildirimleri dışında hemen hemen tüm kod ortaktır :

Java

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;
    }
}

Bu örnekteki ortak bilgilerin çoğu, kapsülleme sağlamak için mevcuttur . name ve Owner değişkenleri public olarak bildirilmişse , erişimci ve mutator yöntemlerine ihtiyaç duyulmaz.

Genel bilgi miktarını azaltmak için birçok çerçeve geliştirilmiştir, örneğin Java için Lombok. Yukarıdakiyle aynı kod , bir metaprogramlama biçimi olan Java ek açıklamaları kullanılarak Lombok tarafından otomatik olarak oluşturulur :

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

Skala

Diğer bazı programlama dillerinde, dil bu tür ortak yapılar için yerleşik desteğe sahip olduğunda, daha az standart ile aynı şeyi başarmak mümkün olabilir. Örneğin, yukarıdaki Java kodunun eşdeğeri, yalnızca bir kod satırı kullanılarak Scala'da ifade edilebilir :

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

C#

Veya derleyici tarafından oluşturulan destek alanlarıyla Otomatik Özellikler kullanarak C#'da :

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

Yöntem kazan plakası

Bildirimlere ek olarak, OOP dillerindeki yöntemler de ortak bilgi miktarına katkıda bulunur. Popüler Java projeleri üzerine 2015 yılında yapılan bir araştırma, yöntemlerin %60'ının, belirteçlerinin %4,6'sının meydana gelmesiyle benzersiz bir şekilde tanımlanabileceğini ve kalan %95,4'lük kalıp levhasını mantıkla alakasız hale getirdiğini gösteriyor. Araştırmacılar, bu sonucun genel olarak prosedürel dillerdeki alt programlara çevrileceğine inanıyorlar .

HTML

In HTML , aşağıdaki klişe bir temel boş şablon olarak kullanılır ve çoğu web sayfalarında mevcuttur edilir:

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

</body>
</html>

WHATWG HTML Yaşam Standardı olduğunu tanımlar <html>, <head>ve <body>etiketler güvenle çoğu koşulda ihmal edilebilir. <meta charset="UTF-8">HTML yanıtıyla bir in kaydedildiğinde yararlı olur gerçi, bir HTTP başlık karakter kodlamasını göndermek üzere yapılandırılmış bir web sunucusuna doğrudan gelirken etiketi teknik olarak gereksiz .htmldosya, önbellek, veya web arşivde. Google'ın HTML/CSS stil kılavuzu, tüm isteğe bağlı etiketlerin atlanmasını önermektedir, bu da çok daha az ortak kullanım anlamına gelir. World Wide Web Consortium eleman belirtiyor <title>boş olmamalıdır:

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

Ayrıca bakınız

  • Yönerge (programlama)  – Bir derleyicinin girdisini nasıl işlemesi gerektiğini belirten dil yapısı
  • Genel amaçlı makro işlemci  – Belirli bir dil veya yazılım parçasına bağlı olmayan veya bunlarla entegre olmayan makro işlemci.
  • "Selam Dünya!" program  – Geleneksel yeni başlayanlar için bilgisayar programı
  • Kütüphane (bilgi işlem)  – Genellikle yazılım geliştirme için bilgisayar programları tarafından kullanılan kalıcı kaynakların toplanması.
  • Makro (bilgisayar bilimi)  – Bilgisayar biliminde, bir kalıbın kısa ve öz bir temsili
  • Önişlemci  – Başka bir program için girdiyi işleyen program
  • İskele (programlama)  – Kod oluşturma tekniği veya proje oluşturma tekniği
  • Parçacık (programlama)  – Yeniden kullanılabilir kaynak kodu, makine kodu veya metinden oluşan küçük bir bölge
  • Şablon işlemcisi  – Sonuç belgeleri üretmek için şablonları bir veri modeliyle birleştirmek için tasarlanmış yazılım
  • Web şablon sistemi  – Web tasarımcılarının ve geliştiricilerinin otomatik olarak özel web sayfaları oluşturmak için web şablonlarıyla çalışmasına izin veren web yayıncılığı sistemi

Referanslar