web-dev-qa-db-ja.com

定型コードは何ですか?

同僚はこれについて聞いたことがなく、私は本当の定義を提供することができませんでした。私にとっては、それは常に「私が知っているときに知っている」というインスタンスでした。

ボーナス質問、誰がこの用語の由来ですか?

342
Nate Parsons

「定型コード」は、もっと単純なはずのような結果を得るために何度も何度も現れる繰り返しのある一見コードです。

それは主観的な定義です。

この用語は新聞業界の「定型文」から来ています。 wiki

184
Adam Vandenberg

語源については、用語定型句:from http://www.takeourword.com/Issue009.html ...

興味深いことに、この用語は新聞業界から生まれました。シンジケートされたコラムおよび他の部分は、マット(すなわちマトリックス)の形で購読している新聞に送られた。受け取ったら、沸騰している鉛をこのマットに流し込んで、作品を印刷するのに使用されるプレートを作成し、ボイラープレートと名付けました。ボイラープレートに印刷された記事は変更することができなかったので、この用語は、異なるアプリケーションで繰り返し使用しても変更されなかった契約の部分、そして最後には変更されなかった言語を指すために使用されるさまざまな場面で繰り返し使用されたあらゆる文書。

プログラミングで定型文を構成するもの他の人が指摘したように、それはプロセスの変更をほとんどまたはまったく加えずに何度も何度もコピーされる単なるコードの塊です。

53
NealB

定型コードとは、何度も繰り返し使用できるコードのことです。一方、誰もがそれが再利用可能なコードの一部であると言うことができます。

この用語は実際には鉄鋼業から来ています。

Wikipedia によると、歴史のほんの少しについて:

1890年代には、定型印刷機は実際には印刷機に備えて金属で鋳造または刻印され、米国中の新聞に配布されました。 1950年代まで、何千もの新聞がこの種の定型文を全国最大の供給者であるWestern Newspaper Unionから受け取って使用していました。書面通りに印刷しなければならないように、一部の企業は定型文としてプレスリリースも送りました。

ウィキペディア

オブジェクト指向プログラムでは、インスタンス変数を取得および設定するためのメソッドがクラスに提供されることがよくあります。これらのメソッドの定義は、定型句と見なすことができます。コードはクラスによって異なりますが、構造的には十分にステレオタイプであり、手書きで作成するよりも自動的に生成される方が適切です。たとえば、ペットを表す次のJavaクラスでは、Pet、name、ownerの宣言を除いて、ほとんどすべてのコードが定型的です。

public class Pet {
    private PetName name;
    private Person owner;

    public Pet(PetName name, Person owner) {
        this.name = name;
        this.owner = owner;
    }

    public PetName getName() {
        return name;
    }

    public void setName(PetName name) {
        this.name = name;
    }

    public Person getOwner() {
        return owner;
    }

    public void setOwner(Person owner) {
        this.owner = owner;
    }
}
45
onCompletion

ほとんど、あるいはまったく変更を加えることなく、多くのアプリケーション/コンテキストで使用できるコードです。

ボイラープレートは1900年代初頭の鉄鋼業から派生したものです。

34
Gabe

ウィキペディアより

コンピュータプログラミングでは、定型句は、ほとんどまたはまったく変更を加えずに、多くの場所に含める必要があるコードのセクションを表すために使用される用語です。冗長と見なされる言語を参照するときに使用されます。つまり、プログラマは最小限の作業を行うために多くのコードを記述する必要があります。

ですから、基本的にボイラープレートコードはあなたがその言語で書くプログラムのまわりで非常に頻繁にプログラミング言語によって必要とされるテキストとして考えることができます。

現代の言語はそれを減らそうとしていますが、特定の型チェッカーを持つ古い言語も同様です(たとえば、OCamlにはJavaのようなより冗長な言語の定型コードとなるような多くの宣言を避けることができる型推論器があります)

29
Jack

定型句は、良いプログラマーが避けるべきものです。繰り返しです。

22
James

ソフトウェア開発における定型句は、人によって異なることを意味しますが、一般的に何度も何度も使用されるコードのブロックを意味します。

MEANスタック開発では、この用語はテンプレートの使用によるコード生成を指します。アプリケーション全体を最初から手作業でコーディングするよりも簡単で、クリーンでテスト済みで実証済みのコードであり、常に更新または修正されるため、コードブロックの一貫性とバグが少なくなります。フレームワークまたはコードジェネレータMEANスタックの詳細については、 here をクリックしてください。

14
Nermien Barakat

実用的には、定型コードは至るところにカットアンドペーストするものです。多くの場合、それはモジュールヘッダ、いくつかの標準/必須宣言(すべてのモジュールはロガーを宣言し、すべてのモジュールはその名前とリビジョンなどの変数を宣言する必要があります)のようなものになります。そしてそれらはすべて同じ構造を持ち(メッセージを読んでそれを検証し、それを処理します)そして私達がそれらをすべて基本クラスから継承させたくないハンドラー間の依存関係を排除するので私たちは定型スケルトンを考え出しました。それはすべてのルーチン変数、標準メソッド、例外処理フレームワークを宣言しました - 開発者がしなければならなかったすべては扱われるメッセージに特定のコードを追加することでした。すばやく簡単に使用できるはずでしたが、メッセージ定義をスプレッドシート(​​ボイラープレート形式を使用)で取得していることがわかったので、コード生成プログラムを作成してコードの90%を出力しました。ユニットテスト)。

7
TMN

まあ、簡単な言葉で私はから引用しています Spring in Action

コードを書いたことがありますが、以前に同じコードを書いたことがあると感じたことはありますか。それは私の友人のデジャヴではありません。これは定型コードです。一般的で単純なタスクを実行するために何度も何度も書き直す必要があるコードです。

それが役立つことを願っています。その起源は新聞ビジネスでした。 こちら 詳細については==。

7

ボイラープレートの定義は、今日、他の多くのプログラミング言語でよりグローバルになっています。それはOOPから来ていて、OOPになっていて手続き型以前のものであったハイブリッド言語は、モデル/テンプレート/クラス/オブジェクトを使って構築するコードを繰り返し続けるという同じ目標を持つ彼らはこの用語を改作します。テンプレートを作成し、テンプレートの各インスタンスに対して行うのはオブジェクトを個別化するためのパラメータだけです。この部分をボイラープレートと呼びます。単にテンプレートを作成したコードを、さまざまなパラメータを付けて再利用するだけです。

同義語
青写真は定型文です
ステンシルは定型文です
フッターは定型文です
複数回使用のデザインパターンは定型文です
メールの署名は定型文です

7
Thielicious

Joshua BlochAPIデザインについて話す を持っています。 (定型文への参照のための議事録46、今日これを聴いて)

5
dove

whatis.techtarget.com から:

情報技術では、定型句は、変更なしに何度も何度も再利用できる記述単位です。拡大すると、この考えは「定型コード」のように再利用可能なプログラミングにも適用されることがあります。この用語は製鋼業から派生したもので、ボイラープレートはスチームボイラーで使用するために鋼板を大きなプレートに圧延したものです。その意味するところは、定型的な文章は古くからテストされており、「スチール」として強力であるか、あるいは繰り返し使用するのに十分なほど強力なものに展開されていることです。

プログラミングを超えて:

ボイラープレートは、ある種のテンプレートと比較することができます。これは、空白を埋めるボイラープレートと考えることができます。いくつかの典型的な定型文には以下が含まれます:ミッションステートメント、安全上の警告、一般的に使用されるインストール手順、著作権ステートメント、および責任免責事項。

プログラマーとしての私の経験では、適切な種類の定型コードは、一般的に、フレームワークと呼ばれるほど大きくも、複雑でもないコードから始まります。

典型的な例は、 HTML5ボイラープレート です。

2
John Slegers

あなたはそれを "スニペット"またはもっと正確に "スニペットのコレクション"と呼ぶことができます。私が思うに、彼らは実際の「プレート」を使用し、それからそれらを再び塊として再利用していた。よりトレンディで洗練されたものに見えるようにするための単純なものに対する派手な用語。 RESPONSIVE = adaptable/fluidを参照してください。

1
Obmerk Kronen