Khi tạo code, có rất nhiều quy luật cụ thể để việc code dễ dàng sửa đổi hơn: D.R.Y, nguyên lý trách nhiệm cá nhân, định luật Demeter, nguyên lý đóng/mở, vân vân. Đây là những nguyên lý tuyệt vời, nhưng bạn không thể nhớ hết một lúc được. Sẽ dễ hơn khi nhìn nhận vấn đề tổng quan hơn.

Thay đổi tầm nhìn

Khi code, tôi liên tục tham khảo ý kiến từ những developer mới tham gia dự án và hình dung code khi đọc lần đầu sẽ như thế nào. Tôi liệu có hiểu toàn bộ tiến trình công việc không? Tôi có từng sử dụng những điều khoản mặc định cho toàn bộ dự án? Nếu tôi phải tìm kiếm một thứ không biết tên, liệu tôi có tìm ra nhanh chóng không? Ở Atomic Object, chúng tôi luôn thực hiện programming kép, một cách cực tốt để giải quyết vấn đề nhanh gọn. Một cách hay để đảm bảo người khác tạo maintainable code cho bạn, hãy chú thích trước. Tuy nhiên cũng không nên thêm chú thích quá nhiều, chỉ nên thêm vào những đoạn code hiếm dễ dàng tác động. Nhưng đúng hơn, nên chú ý vào cách đặt tên cho mọi thứ.

Quan trọng hơn….

Chỉ có 2 điều khó khăn trong khoa học máy tính: vô hiệu hóa bộ nhớ đệm và đặt tên.

_Phil Karlton

Ngắn gọn

Bạn đã từng nghe cuộc thi code ngược đời chưa? Vâng, chính là khả năng viết những code hữu ích nhưng thậm chí còn không đọc nổi nữa. Những cuộc thi này thực chất chỉ để vui thôi,nhưng có thể dễ dàng lậm vào những thói quen xấu (hoặc thờ ơ với nó). Code dễ nhìn hơn thì sẽ quét nhanh hơn.

Bộ biên dịch thực ra rất giỏi phân tích và tối ưu hóa code trong khi con người thì không. Đáng tiếc con người thật nhỏ bé, tạo code trước và máy móc chỉ là thứ yếu. Rõ ràng cụ thể tốt hơn là thông minh. Dễ đọc sẽ tốt hơn là chỉ tối ưu hóa. Brian Kernighan có câu nói khá hay:

Ai cũng biết debug lần đầu tiên sẽ khó gấp đôi việc lập trình. Vậy nếu khi đủ khả năng để lập trình, bạn sẽ debug như thế nào?

Tránh các trường hợp đặc biệt

Code sẽ dễ gặp sự cố nhanh hơn trong những trường hợp đặc biệt. Sau đây là những yếu tố nắm giữ máy móc xây dựng và tạo những kẽ hở hệ ống. Có thể sẽ dễ dàng khi fix tạm bợ và quên đi, nhưng nếu bạn không fix những lỗi nguồn, e rằng sẽ có những kẽ hở về sau. Giống như chỉ fix qua loa cho kịp thời gian release. Cũng kiểu như tận dụng một bộ phận hoàn toàn không liên quan để dùng, mọi thứ hầu như đều ổn thỏa nhưng vẫn có nhiều khuyết điểm.

Khá hay ho khi có thể sử dụng thứ gì trợ giúp, nhưng cũng cần phương pháp để biết trước rằng nó có thể giúp được bạn hay không. Hoàn toàn xứng đáng!

Related