Phong cách lập trình bắt buộc đã được thực hiện trong phát triển web từ năm 2005 đến năm 2013.
Với lập trình bắt buộc, chúng tôi đã viết ra mã liệt kê chính xác những gì ứng dụng của chúng tôi nên làm, từng bước một.
Phong cách lập trình chức năng tạo ra sự trừu tượng thông qua các cách kết hợp các chức năng thông minh.
Có đề cập đến lập trình khai báo trong các câu trả lời và liên quan đến việc tôi sẽ nói rằng lập trình khai báo liệt kê một số quy tắc mà chúng ta phải tuân theo. Sau đó, chúng tôi cung cấp những gì chúng tôi đề cập đến như một số trạng thái ban đầu cho ứng dụng của mình và chúng tôi để những quy tắc đó xác định cách ứng dụng hoạt động.
Bây giờ, những mô tả nhanh này có lẽ không có nhiều ý nghĩa, vì vậy hãy đi qua sự khác biệt giữa lập trình mệnh lệnh và khai báo bằng cách đi qua một sự tương tự.
Hãy tưởng tượng rằng chúng tôi không xây dựng phần mềm, mà thay vào đó chúng tôi nướng bánh để kiếm sống. Có lẽ chúng ta là những người làm bánh tồi và không biết cách nướng một chiếc bánh ngon theo cách chúng ta nên làm.
Vì vậy, ông chủ của chúng tôi cung cấp cho chúng tôi một danh sách các hướng dẫn, những gì chúng ta biết là một công thức.
Công thức sẽ cho chúng ta biết làm thế nào để làm cho một chiếc bánh. Một công thức được viết theo phong cách bắt buộc như vậy:
- Trộn 1 chén bột
- Thêm 1 quả trứng
- Thêm 1 chén đường
- Đổ hỗn hợp vào chảo
- Đặt chảo vào lò nướng trong 30 phút và 350 độ F.
Công thức khai báo sẽ làm như sau:
1 chén bột mì, 1 quả trứng, 1 chén đường - Trạng thái ban đầu
Quy tắc
- Nếu mọi thứ trộn đều, đặt vào chảo.
- Nếu mọi thứ không trộn lẫn, đặt vào bát.
- Nếu mọi thứ trong chảo, đặt trong lò nướng.
Vì vậy, phương pháp tiếp cận bắt buộc được đặc trưng bởi các phương pháp tiếp cận từng bước. Bạn bắt đầu với bước một và chuyển sang bước 2 và cứ thế.
Cuối cùng bạn kết thúc với một số sản phẩm cuối cùng. Vì vậy, làm chiếc bánh này, chúng tôi lấy những nguyên liệu này trộn chúng, cho vào chảo và trong lò nướng và bạn đã có sản phẩm cuối cùng.
Trong một thế giới khai báo, nó khác nhau. Trong công thức khai báo, chúng tôi sẽ tách công thức của chúng tôi thành hai phần riêng biệt, bắt đầu với một phần liệt kê trạng thái ban đầu của công thức, như các biến. Vì vậy, các biến của chúng tôi ở đây là số lượng thành phần của chúng tôi và loại của chúng.
Chúng tôi lấy trạng thái ban đầu hoặc thành phần ban đầu và áp dụng một số quy tắc cho chúng.
Vì vậy, chúng tôi lấy trạng thái ban đầu và vượt qua các quy tắc này nhiều lần cho đến khi chúng tôi sẵn sàng ăn bánh dâu tây đại hoàng hoặc bất cứ điều gì.
Vì vậy, trong một cách tiếp cận khai báo, chúng ta phải biết cách cấu trúc đúng các quy tắc này.
Vì vậy, các quy tắc chúng tôi có thể muốn kiểm tra các thành phần hoặc trạng thái của chúng tôi, nếu trộn, đặt chúng vào chảo.
Với trạng thái ban đầu của chúng tôi, điều đó không phù hợp vì chúng tôi chưa trộn các thành phần của chúng tôi.
Vì vậy, quy tắc 2 nói, nếu chúng không trộn thì trộn chúng vào một cái bát. Được rồi, quy tắc này được áp dụng.
Bây giờ chúng tôi có một bát các thành phần hỗn hợp như nhà nước của chúng tôi.
Bây giờ chúng tôi áp dụng trạng thái mới đó cho các quy tắc của chúng tôi một lần nữa.
Vì vậy, quy tắc 1 nói rằng nếu các thành phần được trộn chúng vào chảo, được rồi, bây giờ quy tắc 1 được áp dụng, hãy làm điều đó.
Bây giờ chúng ta có trạng thái mới này, nơi các thành phần được trộn và trong chảo. Quy tắc 1 không còn phù hợp, quy tắc 2 không áp dụng.
Quy tắc 3 nói rằng nếu các thành phần nằm trong chảo, hãy đặt chúng vào lò nướng, thật tuyệt, quy tắc đó là những gì áp dụng cho trạng thái mới này, hãy thực hiện nó.
Và chúng tôi kết thúc với một chiếc bánh táo nóng hổi thơm ngon hoặc bất cứ thứ gì.
Bây giờ, nếu bạn giống như tôi, bạn có thể nghĩ, tại sao chúng ta vẫn không làm chương trình bắt buộc. Điều này thật ý nghĩa.
Vâng, đối với các luồng đơn giản thì có, nhưng hầu hết các ứng dụng web có các luồng phức tạp hơn mà không thể nắm bắt chính xác bằng thiết kế lập trình bắt buộc.
Trong một cách tiếp cận khai báo, chúng ta có thể có một số thành phần ban đầu hoặc trạng thái ban đầu như textInput=“”
, một biến duy nhất.
Có thể nhập văn bản bắt đầu như một chuỗi trống.
Chúng tôi lấy trạng thái ban đầu này và áp dụng nó cho một bộ quy tắc được xác định trong ứng dụng của bạn.
Nếu người dùng nhập văn bản, cập nhật nhập văn bản. Vâng, ngay bây giờ không áp dụng.
Nếu mẫu được hiển thị, tính toán các widget.
- Nếu textInput được cập nhật, hãy kết xuất lại mẫu.
Chà, không có cái nào trong số này áp dụng nên chương trình sẽ chỉ chờ một sự kiện xảy ra.
Vì vậy, tại một số điểm, người dùng cập nhật kiểu nhập văn bản và sau đó chúng tôi có thể áp dụng quy tắc số 1.
Chúng tôi có thể cập nhật điều đó thành “abcd”
Vì vậy, chúng tôi vừa cập nhật văn bản và cập nhật textInput, quy tắc số 2 không áp dụng, quy tắc số 3 cho biết nếu nhập văn bản là cập nhật, sau đó xảy ra, sau đó kết xuất lại mẫu và sau đó chúng tôi quay lại quy tắc 2 nói rằng nếu mẫu được hiển thị , tính toán các widget, okay cho phép tính toán các widget.
Nói chung, là lập trình viên, chúng tôi muốn phấn đấu cho các thiết kế lập trình khai báo nhiều hơn.
Bắt buộc có vẻ rõ ràng và rõ ràng hơn, nhưng một cách tiếp cận khai báo quy mô rất độc đáo cho các ứng dụng lớn hơn.