Thứ Sáu, 2 tháng 3, 2012

Vẻ đẹp nằm ở sự giản dị


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