080815 - Thừa kế

Mặc dù mình đang làm công việc lập trình nhưng phải thú thật là việc này chẳng xuất phát từ một đam mê cháy bỏng nào. Chẳng qua tính mình tò mò, thấy cái máy tính nó mới mới, hay hay thì chọn học cái gì nó được làm việc nhiều với cái máy tính một tí. Điều duy nhất làm mình thấy lập trình thú vị, đó là khả năng dễ dàng mô phỏng thế giới xung quanh. Tất nhiên bạn có thể mô phỏng thế giới bằng bất kỳ cái gì, họa sĩ có màu sắc, nhạc sĩ có âm thanh, nhà văn có ngôn từ, rồi toán học, vật lý, hóa học… cũng là công cụ. Nhưng làm việc đó thật dễ dàng với máy tính. Bạn có thể xây dựng cả thế giới với những quy tắc của riêng mình, nhờ đó có thể phần nào hiểu được cách thức mọi thứ vận hành, hoặc ít ra là tạo được một cách nhìn nhận sự việc cho bản thân.

Ví dụ, trong lập trình có một phương thức mà ai từng học cũng biết, gọi là lập trình hướng đối tượng. Tức là bạn mô phỏng các đối tượng thực tế dưới dạng các đối tượng mã, gồm các thuộc tính và hành động (phương thức) mà đối tượng có thế thực hiện. Ngoài ra chúng ta cũng có thể mô phỏng quan hệ giữa các đối tượng, trong đó có quan hệ thừa kế. Đây có thể là mối quan hệ gây nhiều bối rối nhất khi thiết kế. Có thể bạn sẽ phải kết thúc với một chuỗi thừa kế dài ngoằng như thể là Tổ Trưởng kế thừa Nhân Viên kế thừa Người kế thừa Động Vật Có Vú kế thừa Động Vật, vân vân và vân vân…

Việc này cũng khiến tôi băn khoăn một thời gian. Cho đến một hôm tôi nhận được một email từ @derickbailey (do tôi đăng ký nhận newsletter từ anh này). Nội dung bức thư có thể chỉ cần tóm tắt bằng một câu “You Did Not Inherit Your Roles Or Responsibilities. You Earned Them.” - “Bạn không kế thừa vai trò và trách nhiệm của mình, bạn gặt hái được chúng”. Tất cả mọi thứ đều trở nên rõ ràng, phải không? Bạn là Nhân Viên, là Giám Đốc, là Người Chồng,… Những thứ đó là vai trò của bạn, chứ không phải là bản thân bạn. Không có ai trao chúng vào tay bạn hay bạn có chúng từ lúc sinh ra. Kể cả việc bạn là Con Người cũng là do sự lựa chọn của bạn, thế nên ông cha ta mới hay nói bằng từ “nên người”, “thành người” chứ không phải “là người”, bởi về mặt sinh học ai cũng là người nhưng không phải ai cũng đạt được vai trò và thể hiện được trách nhiệm đích đáng.

“Mày phải lấy vợ đi, để nó dạy cho nên người” – Một bà mẹ nào đó

Hiểu được điều này không chỉ giúp mình loại bỏ được những quan hệ kế thừa không cần thiết trong thiết kế phần mềm, mà còn giúp mình từ bỏ những trách nhiệm không thực sự thuộc về mình. Tóm lại, bạn chẳng kế thừa cái đách gì cả.

Bạn lựa chọn vai trò và trách nhiệm của mình, hãy nhớ điều đó.

Để kết thúc, luôn cần một câu truyện cười:

Cô giáo hỏi Vô-va:

“Vô-va, bố em bao nhiêu tuổi?”

“6 tuổi ạ”

“Vô-va, đó là tuổi em, cô hỏi tuổi bố em cơ”

“Tất nhiên em biết, nhưng bố em chỉ là bố của em kể từ lúc em được sinh ra thôi.”