Vẻ
đẹp nằm ở sự giản dị
Jørn
Ølmheim
MỘT
PHÁT BIỂU của Plato mà tôi cho rằng mọi lập trình viên
cần phải nằm lòng:
Vẻ đẹp của phong cách,
của nét hài hòa, của tính thanh lịch và nhịp độ, đều
tùy thuộc vào sự giản dị.
Một
câu thôi, đã tổng kết được mọi giá trị mà lập
trình viên chúng ta cần phải hướng tới.
Ta
phấn đấu để mã (code) được
- Dễ hiểu
- Dễ bảo trì
- Dễ phát triển
- Đẹp
Plato
bảo rằng có một nhân tố ảnh hưởng đến tất cả
những phẩm chất trên, đó là sự giản dị.
Code
thế nào là đẹp? Đây là câu hỏi hết sức chủ quan.
Nhận thức về vẻ đẹp phụ thuộc rất nhiều vào cá
tính, cũng như vào nhận thức của chúng ta về vạn vật.
Nghệ nhân nhận thức (hay ít ra là tiếp cận) vẻ đẹp
khác với khoa học gia. Nghệ nhân có khuynh hướng so sánh
vẻ đẹp phần mềm (software) với vẻ đẹp của các công
trình nghệ thuật, trong khi đó, khoa học gia lại bàn về
sự cân đối và hoàng kim tỉ lệ (golden ratio), gắng qui
mọi thứ về công thức. Theo kinh nghiệm của tôi, giản
dị là nền tảng của hầu hết những lập luận từ cả
hai phía.
Hãy
tư duy trên code mà bạn đã từng tìm hiểu. Nếu chưa
dành thời gian nghiên cứu code của người khác, bạn nên
dừng đọc ngay đây để tìm hiểu một đoạn mã nguồn
mở (open source code). Tôi nói nghiêm túc đấy! Hãy tìm
trên Web một đoạn code do chuyên gia nổi tiếng viết bằng
ngôn ngữ mà bạn ưa thích.
Xong
rồi à? Tốt lắm. Ta đã bàn đến đâu nhỉ? À, đúng
rồi... Tôi thấy rằng code đó cộng hưởng với tôi,
đồng thời vẻ đẹp có một số nét chung. Trên hết là
sự giản dị. Tôi nhận ra rằng cho dù toàn bộ ứng dụng
hay hệ thống có phức tạp đến đâu, từng bộ phận
đơn lẻ đều phải duy trì được tính giản dị: các
đối tượng (objects) đơn giản có trách nhiệm duy nhất,
chứa những phương thức (methods) vừa giản tiện vừa
tập trung, vừa có tên gọi dễ hiểu. Một số cho rằng
việc tạo ra các methods từ 5 đến 10 dòng code là cực
đoan, và một vài ngôn ngữ rất khó thể hiện được
điều này, song tôi cho rằng giản dị là một mục tiêu
cần thiết.
Chốt
lại: code đẹp là code giản dị. Từng thành phần đơn
lẻ được duy trì sao cho giản tiện, trách nhiệm đơn
sơ, và có quan hệ đơn giản với các bộ phận khác
trong hệ thống. Đây là cách duy trì khả năng bảo trì
hệ thống theo thời gian, thông qua code gọn, đơn giản,
dễ kiểm thử, đảm bảo tốc độ phát triển nhanh trong
toàn thời gian tồn tại của hệ thống.
Vẻ
đẹp được tạo tác và được khám phá từ sự giản
dị.
Nguồn
Ølmheim
S. (2010) Beauty
Is in Simplicity,
in 97 Things Every Programmer Should Know, Henney K. (ed.), O'Reilly,
Sebastopol, CA.
Không có nhận xét nào:
Đăng nhận xét