Mã soạn sẵn là gì?


384

Một đồng nghiệp chưa bao giờ nghe về điều này, và tôi không thể đưa ra một định nghĩa thực sự. Đối với tôi, nó luôn là một ví dụ của 'I-know-it-when-I-see-it'.

Câu hỏi thưởng, ai bắt nguồn từ?


68
Lưu ý, thuật ngữ soạn sẵn không dành riêng cho lập trình. Ví dụ, một luật sư có thể cung cấp cho bạn một hợp đồng 5 trang để ký, nhưng hầu hết các hợp đồng là bản tóm tắt. Có nghĩa là nó giống nhau cho tất cả mọi người có được hợp đồng đó, chỉ với một vài dòng thay đổi ở đây và ở đó.
mellow gió

26
Tôi không biết về bất kỳ ai khác, nhưng trong công ty của tôi, mã nồi hơi là mã vận hành nồi hơi: mở, đóng, rửa, thay thế, v.v ...
ulty4life

1
Câu hỏi này dường như lạc đề vì nó là về biệt ngữ.
Adriano Repetti

4
Tôi đến đây vì tài liệu và suy nghĩ của Laravel .. "Cái thứ nồi hơi này họ đang nói đến là gì?". Sau khi đọc một số câu trả lời, tôi nghĩ trang wiki liên quan trực tiếp này cũng cho thấy cái nhìn sâu sắc về vấn đề này: en.wikipedia.org/wiki/Boilerplate_code
Ben Fransen

1
Tôi đã nghe thuật ngữ này gần đây, vì vậy tôi tò mò muốn biết liệu tôi có thể gọi chúng là plugin hoặc mô-đun cho các ngôn ngữ lập trình hay không.
Anjil Panchal

Câu trả lời:


215

"mã soạn sẵn" là bất kỳ mã dường như lặp đi lặp lại xuất hiện nhiều lần để có được một số kết quả có vẻ như nó phải đơn giản hơn nhiều.

Đó là một định nghĩa chủ quan.

Thuật ngữ này xuất phát từ "nồi hơi" trong ngành báo chí: wiki


2
Ý tưởng đằng sau đa hướng trong OOP là giảm nồi hơi, vì vậy khi áp dụng đúng cách, nó có thể giảm đi một chút.
Andrew Sledge

Người ta cũng nói rằng, nó đến từ ngành công nghiệp thép, nơi các tấm thép được sử dụng nồi hơi int
Mohammed Shareef C

55

Về từ nguyên, thuật ngữ soạn sẵn : từ http://www.takeourword.com/Issue009.html ...

Thật thú vị, thuật ngữ phát sinh từ kinh doanh báo chí. Các cột và các phần khác được cung cấp đã được gửi đến đăng ký báo dưới dạng một tấm thảm (tức là một ma trận). Sau khi nhận được, chì sôi được đổ vào tấm thảm này để tạo ra tấm được sử dụng để in mảnh, do đó tên là nồi hơi. Vì bài báo được in trên bản tóm tắt không thể thay đổi, thuật ngữ này được các luật sư sử dụng để chỉ các phần của hợp đồng không thay đổi thông qua việc sử dụng lặp đi lặp lại trong các ứng dụng khác nhau và cuối cùng là ngôn ngữ nói chung không thay đổi bất kỳ tài liệu nào được sử dụng nhiều lần cho các dịp khác nhau.

Những gì cấu thành nồi hơi trong lập trình? Như những người khác đã chỉ ra, nó chỉ là một đoạn mã được sao chép lặp đi lặp lại với rất ít hoặc không có thay đổi nào được thực hiện trong quy trình.


Có một lời giải thích khác về psychfloss.com/article/26087/why-it-boilerplate-text mà tôi đã thấy nhiều tài liệu tham khảo hơn.
fgysin phục hồi Monica

1
chỉ trích! đây có vẻ như là một câu trả lời cho một stackexchange ngữ pháp ... thực sự có thể là toàn bộ câu hỏi này, nhưng tôi có thể thấy tại sao chúng ta cần nó ở đây ...
pythonia29033

55

Mã nồi hơi có nghĩa là một đoạn mã có thể được sử dụng nhiều lần. Mặt khác, bất cứ ai cũng có thể nói rằng đó là một đoạn mã có thể tái sử dụng.

Thuật ngữ này thực sự đến từ các ngành công nghiệp thép.

Đối với một chút lịch sử , theo Wikipedia :

Vào những năm 1890, nồi hơi thực sự được đúc hoặc đóng dấu bằng kim loại đã sẵn sàng cho báo in và phân phát cho các tờ báo trên khắp Hoa Kỳ. Cho đến những năm 1950, hàng ngàn tờ báo đã nhận và sử dụng loại nồi hơi này từ nhà cung cấp lớn nhất của quốc gia, Western Union Union. Một số công ty cũng đã gửi thông cáo báo chí dưới dạng soạn sẵn để chúng phải được in thành văn bản.

Bây giờ theo Wikipedia :

Trong các chương trình hướng đối tượng, các lớp thường được cung cấp các phương thức để nhận và thiết lập các biến thể hiện. Các định nghĩa của các phương pháp này thường có thể được coi là nồi hơi. Mặc dù mã sẽ thay đổi từ lớp này sang lớp khác, nhưng nó đủ rập khuôn trong cấu trúc rằng nó sẽ được tạo tự động tốt hơn so với viết bằng tay. Ví dụ, trong lớp Java sau đây đại diện cho thú cưng, hầu như tất cả các mã đều được soạn sẵn ngoại trừ các khai báo của Pet, tên và chủ sở hữu:

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

38

Đó là mã có thể được sử dụng bởi nhiều ứng dụng / bối cảnh với ít hoặc không có thay đổi.

Nồi hơi có nguồn gốc từ ngành công nghiệp thép vào đầu những năm 1900.


34

Từ Wikipedia :

Trong lập trình máy tính, soạn sẵn là thuật ngữ được sử dụng để mô tả các phần của mã phải được đưa vào nhiều nơi với rất ít hoặc không có 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, 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ì vậy, về cơ bản, bạn có thể coi mã soạn sẵn là một văn bản cần thiết cho ngôn ngữ lập trình rất thường xuyên xung quanh các chương trình bạn viết bằng ngôn ngữ đó.

Các ngôn ngữ hiện đại đang cố gắng giảm nó, nhưng cũng là ngôn ngữ cũ có trình kiểm tra kiểu cụ thể (ví dụ OCaml có trình suy luận kiểu cho phép bạn tránh rất nhiều khai báo sẽ là mã soạn sẵn trong ngôn ngữ dài hơn như Java)


24

Nồi hơi là thứ mà các lập trình viên giỏi tránh: sự lặp lại.


36
OMG, bạn có "ti" hai lần trong câu trả lời của bạn! Như bạn có thể thấy, sự lặp lại không phải lúc nào cũng xấu.
Tamás Sengel

3
Làm thế nào để tôi tránh public static void main(String[] _)?
Koray Tugay

15

Nồi hơi trong phát triển phần mềm có thể có nghĩa là những thứ khác nhau đối với những người khác nhau nhưng nhìn chung có nghĩa là khối mã được sử dụng nhiều lần.

Trong phát triển ngăn xếp MEAN , thuật ngữ này đề cập đến việc tạo mã thông qua việc sử dụng mẫu. Nó dễ dàng hơn việc mã hóa toàn bộ ứng dụng từ đầu và nó mang lại tính nhất quán cho khối mã và ít lỗi hơn vì nó sạch, được kiểm tra và chứng minh mã nguồn và nó là nguồn mở để nó liên tục được cập nhật hoặc sửa chữa do đó nó tiết kiệm rất nhiều thời gian khi sử dụng khung hoặc trình tạo mã. Để biết thêm thông tin về MEAN stack, bấm vào đây .


7

Trong điều kiện thực tế, mã soạn sẵn là thứ bạn cắt-dán khắp nơi. Thông thường, đó sẽ là những thứ như tiêu đề mô-đun, cộng với một số khai báo tiêu chuẩn / bắt buộc (mọi mô-đun phải khai báo logger, mọi mô-đun phải khai báo các biến cho tên và sửa đổi của nó, v.v.) Trong dự án hiện tại của tôi, chúng tôi đang viết trình xử lý thông báo và tất cả chúng đều có cùng cấu trúc (đọc tin nhắn, xác thực nó, xử lý nó) và để loại bỏ sự phụ thuộc giữa các trình xử lý, chúng tôi không muốn tất cả chúng được thừa hưởng từ một lớp cơ sở, vì vậy chúng tôi đã đưa ra một bộ xương nồi hơi. Nó đã khai báo tất cả các biến thường quy, các phương thức tiêu chuẩn, khung xử lý ngoại lệ - tất cả các nhà phát triển phải làm là thêm mã cụ thể vào thông điệp đang được xử lý. Nó sẽ được nhanh chóng và dễ sử dụng,


7

Định nghĩa nồi hơi đang trở nên toàn cầu hơn trong nhiều ngôn ngữ lập trình khác hiện nay. Nó xuất phát từ OOP và các ngôn ngữ lai đã trở thành OOP và trước đây thủ tục có cùng một mục tiêu là tiếp tục lặp lại mã bạn xây dựng với một mô hình / mẫu / lớp / đối tượng do đó tại sao chúng thích ứng thuật ngữ này. Bạn tạo một mẫu và những điều duy nhất bạn làm cho mỗi phiên bản của mẫu là các tham số để cá nhân hóa một đối tượng, phần này là cái mà chúng ta gọi là mẫu soạn sẵn. Bạn chỉ cần sử dụng lại mã bạn đã tạo mẫu, chỉ với các tham số khác nhau.

Từ đồng nghĩa
một kế hoạch chi tiết là một soạn sẵn
một stencil là một soạn sẵn
một chân là một soạn sẵn
một mẫu thiết kế cho nhiều sử dụng là một soạn sẵn
một chữ ký của một mail là một soạn sẵn



2

Từ whatis.techtarget.com :

Trong công nghệ thông tin, một cái nồi là một đơn vị viết có thể được sử dụng lại nhiều lần mà không thay đổi. Bằng cách mở rộng, ý tưởng đôi khi được áp dụng cho lập trình có thể sử dụng lại như trong "mã soạn sẵn". Thuật ngữ này bắt nguồn từ sản xuất thép, trong đó nồi hơi là thép được cuộn thành các tấm lớn để sử dụng trong nồi hơi. Hàm ý là văn bản soạn sẵn đã được kiểm tra thời gian và mạnh mẽ như "thép", hoặc có thể nó đã được đưa ra thành một cái gì đó đủ mạnh để tái sử dụng nhiều lần.

Ngoài lập trình:

Một cái nồi có thể được so sánh với một loại mẫu nhất định, có thể được coi là một cái nồi hơi điền vào chỗ trống. Một số mẫu nồi hơi điển hình bao gồm: tuyên bố sứ mệnh, cảnh báo an toàn, quy trình cài đặt thường được sử dụng, tuyên bố bản quyền và từ chối trách nhiệm.

Theo kinh nghiệm của tôi với tư cách là một lập trình viên, loại mã soạn sẵn thích hợp thường là một nhóm mã mà bạn bắt đầu với nó không lớn và / hoặc đủ phức tạp để được gọi là khung.

Một ví dụ điển hình sẽ là HTML5 Boilerplate .


1

Bạn có thể gọi nó là "đoạn trích" hay chính xác hơn là "bộ sưu tập đoạn trích". Thuật ngữ tôi nghĩ được đặt ra từ ngành công nghiệp báo chí và in ấn, nơi họ đã sử dụng các "tấm" thực tế và sau đó sử dụng lại chúng như một khối một lần nữa. thuật ngữ ưa thích cho những điều đơn giản để trông hợp thời trang và tinh tế hơn. xem RESPONSIVE = thích nghi / chất lỏng.


"Đoạn trích" không hoàn toàn truyền đạt ý nghĩa tương tự; "nồi hơi" có xu hướng bao hàm các khối lớn hơn có nghĩa là được sửa đổi để phù hợp, trái ngược với một vài dòng mã sao chép / dán / quên. Một ví dụ có thể là mã cho WinMainchức năng trong ứng dụng Win32; nó đăng ký lớp cửa sổ của ứng dụng, tạo cửa sổ chính, chạy vòng lặp sự kiện và trả về mã thoát của thủ tục cửa sổ. Chức năng đó thường không thay đổi nhiều giữa các ứng dụng và có thể được sử dụng lại với một vài sửa đổi, nhưng không thường xuyên đến mức nó có ý nghĩa như một thư viện (hoặc một đoạn trích, cho vấn đề đó).
cHao

0

Bản tóm tắt là một đơn vị viết có thể được sử dụng lại nhiều lần mà không thay đổi. Bằng cách mở rộng, ý tưởng đôi khi được áp dụng cho lập trình có thể sử dụng lại, như trong mã soạn sẵn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.