Boilerplate code là gì?

Noun Programming
boilerplate
Mã soạn sẵn

Trong thế giới thực luật sư có thể đưa cho bạn một bản hợp đồng dài năm trang để bạn ký, nhưng hầu hết hợp đồng là boilerplate - có nghĩa là tất cả những người nhận được hợp đồng đó đều giống nhau, chỉ có một vài dòng được thay đổi ở đây và ở đó.

Trong lập trình máy tính, boilerplate code (mã soạn sẵn) đề cập đến các phần mã phải được lặp lại nhiều chỗ mà ít hoặc không có sự thay đổi. Nó thường được sử dụng khi đề cập đến các ngôn ngữ được coi là dài dòng (verbose), tức là lập trình viên phải viết rất nhiều mã để thực hiện các công việc tối thiểu.

Ví dụ trong phát triển web (web development) boilerplate code (mã soạn sẵn) đơn giản cho HTML sẽ giống như sau:


<!DOCTYPE html>                       
<html class="no-js" lang="">
   <head>
      <meta charset="utf-8">
      <meta http-equiv="x-ua-compatible" content="ie=edge">
      <title></title>
      <meta name="description" content="">
      <meta name="viewport" content="width=device-width, initial- scale=1, shrink-to-fit=no">
      <link rel="stylesheet" href="css/main.css">
   </head>
   <body>
      <p>Hello world! This is HTML5 Boilerplate.</p>
      <script src="js/main.js">     </script>
   </body>
</html>

Trong các chương trình hướng đối tượng, các lớp (class) thường được cung cấp các phương thức getter để lấy (get) và setter để thiết lập (set) các instance variable. Các định nghĩa của các phương thức này thường được coi là boilerplate code (mã soạn sẵn). Mặc dù mã sẽ thay đổi từ lớp này sang lớp khác, nhưng nó đủ khuôn mẫu về cấu trúc để nó được tạo tự động tốt hơn là được viết bằng tay. Ví dụ trong lớp Java sau đại diện cho một con vật cưng, hầu như tất cả mã đều là boilerplate code (mã soạn sẵn) ngoại trừ các khai báo của Pet, name và 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;
    }
}

Learning English Everyday