Lập trình khai báo(declarative) và Lập trình mệnh lệnh(imperative)
Lập trình khai báo(declarative) và Lập trình mệnh lệnh(imperative) là hai phong cách lập trình khác nhau — chúng phản ánh cách bạn mô tả công việc mà máy tính cần thực hiện
I. Lập trình khai báo(declarative)
-
Bạn nói cho máy tính biết bạn muốn đạt được gì.
-
Tập trung vào cái gì là kết quả cuối cùng.
-
Máy tính sẽ tự lo cách thực hiện.
# Declarative (giống kiểu functional programming)
result = [x * 2 for x in data if x > 10]
Hoặc ví dụ quen thuộc hơn:
SELECT * FROM users WHERE age > 18;
Bạn không nói “lặp qua từng dòng, kiểm tra tuổi”, mà chỉ nói “hãy lấy dữ liệu theo điều kiện”.
II. Lập trình mệnh lệnh(imperative)
-
Bạn nói cho máy tính biết từng bước phải làm gì.
-
Tập trung vào cách để đạt được mục tiêu.
-
Ví dụ: viết một vòng lặp
for
, gọi hàm này rồi hàm kia, kiểm tra điều kiện…# Imperative result = [] for x in data: if x > 10: result.append(x * 2)
Bạn phải quản lý từng bước cụ thể.
III. Trong LangGraph thì sao?
LangGraph kết hợp cả hai phong cách:
-
Bạn khai báo các node và mối quan hệ giữa chúng (kiểu Lập trình khai báo(declarative) – giống vẽ sơ đồ luồng).
-
Nhưng bên trong mỗi node, bạn viết các bước cụ thể xử lý dữ liệu (kiểu Lập trình mệnh lệnh(imperative) – như viết hàm bình thường).
Ví dụ:
builder.add_node("process", process_input) # declarative
def process_input(state): # imperative
return {"output": state["input"].upper()}
Tóm lại:
LangGraph giúp bạn tận dụng sức mạnh kết hợp: vừa dễ hình dung (declarative), vừa dễ điều khiển (imperative).
Phong cách | Bạn mô tả... | Ưu điểm | Nhược điểm |
---|---|---|---|
Imperative | CÁCH máy tính phải làm | Kiểm soát chi tiết | Dễ rối với quy trình phức tạp |
Declarative | CÁI GÌ bạn muốn đạt được | Gọn, dễ hiểu | Khó kiểm soát từng bước nhỏ |
Tác giả: Đỗ Ngọc Tú
Công Ty Phần Mềm VHTSoft