Lập trình hướng đối tượng và lập trình hàm
Software Engineering
36
White

checkraiser viết ngày 04/08/2016

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ác function , nó transform data xuống các node tiếp theo. Ở đây, các node trung gian chính là data được chuyển đi.

  • Cuối cùng, các leaf, các lá, nó là các object, 1 đặc điểm của các lá này, là chúng có thể gởi message 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.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

checkraiser

17 bài viết.
20 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
6 1
Tôi dự sẽ viết 1 loạt series về việc thiết kế 1 ứng dụng Rails như thế nào để nó có thể giúp bạn ăn ngon ngủ yên trong hằng năm trời: Khi mà việc t...
checkraiser viết hơn 2 năm trước
6 1
White
5 10
Cũng ngót nghét đi làm hơn 6 năm rồi, mình chỉ thấy một điều khá "ngược đời": Các ông chủ , những người trả tiền cho bạn lại có tư duy lập trình ké...
checkraiser viết 10 tháng trước
5 10
White
3 3
This post is a sample chapter from my (Link) How to render a ReactJS component isomorphically ? The trick is in defaultProps and componentDidM...
checkraiser viết 3 năm trước
3 3
Bài viết liên quan
White
1 1
Lập trình đôi (pair programming) là hình thức lập trình trong đó 2 người cùng hợp tác làm việc trên cùng màn hình (có thể khác bàn phím v.v.). Bài ...
Ngoc Dao viết hơn 2 năm trước
1 1
White
7 1
Trong quyển sách Beyond Java, xuất bản vài năm trước có đoạn:Java has characteristics that many of us take for granted. You can find good Java deve...
Ngoc Dao viết hơn 2 năm trước
7 1
White
5 0
Lập trình viên quá cố người Mỹ Phil Karlton có câu nổi tiếng: There are only two hard things in Computer Science: cache invalidation and naming th...
Ngoc Dao viết hơn 2 năm trước
5 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
17 bài viết.
20 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!