Xin chào tất cả anh em! ở bài Tổng quan về clean code và code (phần 1) chúng ta đã nói một vài vấn để về code như code sẽ ra sao, như nào là code xấu và hậu quả của code xấu.
Tiếp đến bài hôm nay chúng ta sẽ nói đến thái độ làm code, nghệ thuật viết code và một số vấn để khác.
Thái độ
Đã bao giờ bạn phải lội qua 1 mớ hỗn độn hàng tuần liền trong khi đáng lẽ ra chỉ cần vài giờ? Hay có những thứ đáng nhẽ ra chỉ nên thay đổi 1 dòng thay vì phải thay đổi ở hàng trăm file, trăm module khác nhau.
Tại sao điều này lại xảy ra? Tại sao một đoạn mã tốt lại trở nên tồi tệ một cách nhanh chóng?
Có nhiều lời giải thích cho việc này ví dụ như các yêu cầu sau đã phá vỡ cấu trúc các thiết kế có sẵn. Hay như do sự quản lý kém cỏi, thậm chí khách hàng “ngớ ngẩn” với những yêu cầu oái ăm.
Nhưng thực sự vấn đề nằm ở chúng ta, chúng ta đã làm việc không chuyên nghiệp.
Điều này thực sự khó chấp nhận khi mà có vô vàn điều tác động vào chúng ta như khách hàng, quản lý, nhân viên kinh doanh, rồi cả sự thay đổi công nghệ nữa…
Nhưng nhìn đi thì cũng nhìn lại. Lập trình viên là người xây dựng lên các dự án, là kiến trúc sư của công trình. Việc của bạn là làm ra một sản phẩm thực sự tốt và cần có những lời khuyên cho những người quản lý.
Câu hỏi hóc búa ( The Primal Conundrumn )
Bạn không thể làm kịp tiến độ dự án với một mớ code hỗn độn được. Mớ hỗn độn đó sẽ làm bạn chậm ngay lập tức, càng tệ hơn nữa nếu dự án đó là dự án dài hơi nhiều giai đoạn. Cách duy nhất để đáp ứng đúng tiến độ là phải giữ cho mã code luôn rõ ràng và sạch sẽ nhất có thể.
Nghệ thuật của viết code sạch
Code lởm là một trở ngại đáng kể cho quá trình làm dự án. Cách duy nhất để chúng ta luôn đạt tiến độ tốt nhất là giữ cho đoạn code của bạn thực sự sạch sẽ. Tuy vậy câu hỏi đặt ra là: ”Làm thế nào để viết code sạch – clean code?”.
Một thực tế là, viết code giống như vẽ tranh vậy, hầu hết chúng ta đều biết rằng khi nào bức tranh được vẽ tốt hay xấu. Nhưng nhìn thấy điều đó không đồng nghĩa với việc chúng ta biết vẽ. Tương tự như việc chúng ta nhận ra code xịn và code lởm không đồng nghĩa với việc chúng ta biết cách viết clean code.
Để viết code ngon bạn cần phải có cảm giác code – code sense. Việc này có thể luyện tập tập thông qua sự rèn luyện và áp dụng các kỹ thuật nhỏ vào việc viết code. Với sự trợ giúp của cảm giác code – code sense chúng ta có thể biết đâu là code sạch, đâu là code bẩn, cũng như cách làm cho code bẩn trở nên xịn xò hơn.
Clean Code là gì?
Có nhiều định nghĩa được đưa ra, và trong cuốn sách này đã ghi lại 1 vài ý kiến từ các chuyên gia, các lập trình viên có kinh nghiệm.
Bjarne Stroustrup – cha để của C++
Tôi thích code của tôi thanh lịch và hiệu quả. Các logic nên thực sự đơn giản để giảm thiểu các lỗi tiềm ẩn. Các phụ thuộc lẫn nhau cũng là tối thiểu để dễ dàng cho việc bảo trì. Việc xử lý lỗi cũng cần thực hiện theo 1 chiến lược rõ ràng và có hiệu suất gần như tối ưu để không cám dỗ con người ta lao vào làm rối mã với các cách tối ưu vớ vẩn khác. Code sạch là code thực hiện từng nhiệm vụ cụ thể, rõ ràng.
Grady Booch – tác giả của Object Oriented Analytics và Desing with applications
Clean Code là đơn giản và thực tế. Code sạch giống như đoạn văn xuôi được viết trôi chảy. Mã xịn này không bao giờ che khuất đi mục đích thiết kế, nhưng vẫn đầy đủ các khái niệm trừu tượng háo rõ ràng, những đoạn mã đơn giản dễ hiểu.
Các trường phái về Clean Code
Cũng giống như võ thuật, từ 1 môn phái gốc có thể tạo ra nhiều nhánh phái riêng nhỏ về sau này. Đối với Clean Code cũng vậy, sẽ rất khó để xác định cái nào là chính tông, cái nào là ngoại đạo. Tuy vậy những kiến thức trong cuốn sách này đều là dựa trên kinh nghiệm xương máu của tác giả. Do vậy thực sự những kiến thức này rất đáng được lưu tâm và học tập. Chắc chắn các lập trình viên như chúng ta sẽ gặt hái nhiều lợi ích trong quá trình phát triển bản thân, công việc nhờ clean code.
Tổng kết lại
Cuốn sách này đương nhiên không phải 1 thần kíp, giúp chúng các lập trình viên giỏi lên nhanh chóng chỉ sau khi đọc. Cái mà cuốn sách mang lại là các công cụ, kỹ thuật, những đánh giá, suy nghĩ của những lập trình viên có kinh nghiệm để lại.
Sau tất cả để đạt được kết quả tốt nhất thì phải phụ thuộc mỗi người, phụ thuộc vào quá trình rèn luyện và nỗ lực của cá nhân. Hãy nhớ rằng :”Rèn luyện liên tục” mới chính là chìa khóa của sự thành công.