メインコンテンツにスキップ

Boilerplate codeとは?概念の整理と例

Boilerplateとは

  • Boilerplate は新聞社が使用する金属板を意味します。 *新聞社では、金属板に既に作られている枠組みを使用して、同じ内容を繰り返し印刷します。

Boilerplate code コンセプト

  • Boilerplate code は、毎回新しいプロジェクトを開始するたびに繰り返し作成する必要があるコードを指します。 Boilerplate code は、さまざまな場所で同様の形式で繰り返されるコードです。
  • たとえば、プロジェクトの構造を作成したり、設定を初期化したり、ライブラリを読み込むなどの操作が含まれます。または、Getter&Setter Methodなどの特定の機能を実装するときに繰り返し作成する必要があるコードを指します。

Boilerplate codeの例

  • Boilerplate codeはさまざまな言語で発生する可能性があります。
  • JavaでBoilerplateとして使用されるコードの例は次のとおりです。
    • Getter & Setter Method
    • equals() and hashCode() Method
    • toString() Method
    • Constructor Method *上記のコードは、毎回新しいクラスを作成するたびに繰り返し作成する必要があるコードです。
// 1. Getter & Setter Method
public class Person {
private String name;
private int age;

// Getter Method
public String getName() {
return name;
}

// Setter Method
public void setName(String name) {
this.name = name;
}

// Getter Method
public int getAge() {
return age;
}

// Setter Method
public void setAge(int age) {
this.age = age;
}
}

// 2. equals() and hashCode() Method
public class Person {
private String name;
private int age;

// equals() Method
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age && Objects.equals(name, person.name);
}

// hashCode() Method
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}

// 3. toString() Method
public class Person {
private String name;
private int age;

// toString() Method
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}

// 4. Constructor Method
public class Person {
private String name;
private int age;

// Constructor Method
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}

Boilerplate code を減らす方法

  • Boilerplate code は繰り返し作成しなければならないコードなので、コードの量が多くなるとコードの読みやすさが低下することがあります。
  • Javaでは、Boilerplate codeを減らすために次の方法を使用できます。
    • 統合開発環境(IDE)の使用:IDEが提供する機能を使用して、Boilerplateコードを自動的に生成できます。
    • Lombok ライブラリの使用: Lombok ライブラリを使用して、Getter & Setter Method、equals() and hashCode() Method、toString() Method、Constructor Method などを自動的に生成できます。
    • Annotation Processorの使用: Annotation Processorを使用してBoilerplate codeを自動的に生成できます。
    • Template Engineの使用:Template Engineを使用してBoilerplate codeを自動的に生成できます。
  • Javaでは、Lombokライブラリを使用して以下のようにBoilerplate codeを減らすことができます。
    • @Data Annotation を使用して、Getter & Setter Method、equals() and hashCode() Method、toString() Method、Constructor Method を自動的に生成できます。
    • 以下のように @Data Annotation を使用するだけでコード作成を減らすことができます。
import lombok.Data;

@Data
public class Person {
private String name;
private int age;
}

*言語やフレームワークによってBoilerplate codeを減らす方法が異なる場合があります。現在使用している言語やフレームワークで提供されている機能を使用して、Boilerplateコードを減らす方法を見つけてください。