Bạn có chắc chắn muốn xóa bài viết này không ?
Bạn có chắc chắn muốn xóa bình luận này không ?
Lập trình hướng đối tượng và lập trình hàm
Mở bài
Bài viết mang ý kiến chủ quan về cách tư duy : Use the right tool for right job
, với mục đích sử dụng chúng để thiết kế 1 phần mềm tốt hơn là khi không dùng chúng.
OOP và FP (viết tắt cho lập trình theo hướng đối tượng và lập trình hàm), là 2 công cụ sắc bén cho các lập trình viên thiết kế
, mở rộng
1 phần mềm.
Vậy, điều đầu tiên, chúng ta phải hiểu
đúng về các công cụ này đã.
Ở đây, tôi dùng khai niệm đúng
mang ý nghĩa kinh nghiệm cá nhân nhiều hơn, vì mọi thứ sẽ chỉ đúng trong cái context
của nó.
Sau khi đã hiểu đúng về 2 công cụ trên, chúng ta bắt đầu suy nghĩ, làm thế nào để áp dụng
đúng nó cho cái bài toán của mình.
Thân bài
Nếu để trực quan nhất, bạn hình dung có 1 cái cây. Cây chổng ngược.
Rễ của nó nằm trên cùng. (Root node
)
Từ rễ, nó đi theo các branch
, để cuối cùng về các lá (Leaf
), thông qua các node
trung gian.
Nếu hình dung ra với bài toán thực tế, ví dụ bạn đang làm 1 ứng dụng web
với Ruby on Rails
,
ta có các so sánh sau:
Root node
là toàn bộcontext
của hệ thống, nó được tạo nên từ toàn bộexternal input
, có thể từ người dùng, từ 1 hệ thống ngoài,...Branch
chính là cácfunction
, nótransform
data xuống cácnode
tiếp theo. Ở đây, cácnode
trung gian chính làdata
được chuyển đi.Cuối cùng, các
leaf
, các lá, nó là cácobject
, 1 đặc điểm của các lá này, là chúng có thể gởimessage
cho nhau. Vì sao vậy?
Vì các lá không có các nhánh (function
) nối với nhau, chúng chỉ có thể truyền tin
cho nhau mà thôi.
Kết luận
Ở loạt bài viết tiếp theo, tôi sẽ cố gắng đưa ra các ví dụ cụ thể hơn minh hoạ cho ý tưởng thiết kế trên.







