Thursday, October 26, 2017

Do đâu những code của lập trình viên bốc mùi

Những thói xấu luôn rất khó để sửa, đặc biệt là khi ngay chính bản thân bạn cũng không hề nhận ra chúng.

Là một programmer, tôi đã thấy rất nhiều thói quen xấu không chỉ trong code mà còn trong cả teamwork. Sau đây là 35 thói xấu trong lập trình, được chia thành 4 loại:cách trình bày code, teamwork, cách viết code và testing bảo trì.

Trình bày code

  1. Cứ nói là “Tôi sẽ fix nó sau”
Thói quen “hứa hẹn” sửa code không chỉ là một vấn đề về cách sắp xếp task. Với lối suy nghĩ như vậy sẽ rất dễ khiến bạn quên chúng và làm cho lỗi nhỏ cứ xuất hiện liên tục. Vì vậy thêm “TODO” comment là cách tốt nhất để không bị quên.
2. Ám ảnh với việc viết code “1-dòng”
Một lỗi thường gặp của các programmer, việc rút gọn code luôn là một điều tốt nhưng khi bạn đi quá mức thì thay vì trở nên đơn giản thì nó lại quá ngắn khiến cho việc đọc hiểu bỗng trở nên khó hơn nhiều lần. Như vậy, vô tình nó lại đi ngược lại mục đích của việc viết code “1-dòng”.
3. Tối ưu hóa không cần thiết
Các lập trình viên cũng thường phí công sức vào việc tối ưu hóa mọi thứ. Nghe thì việc giảm vài byte cho website có vẻ hay nhưng nó lại tốn quá nhiều công sức. Chưa kể trong quá trình phát triển, tuy theo yêu cầu mà sẽ có rất nhiều thay đổi thế nên hãy để việc tối ưu hóa ở cuối quá trình.
4. Cho rằng vấn đề về style không đáng quan tâm
Nếu có một điều mà tôi học được sau nhiều năm nhìn vào code của người khác, thì đó là đừng có xem thường coding style. Với các lập trình viên non trẻ thì việc này có vẻ khá là nhỏ nhặt nhưng theo thời gian, nó sẽ ảnh hưởng tới chất lượng của code, như một quả tuyết lăn và kéo cả project thành một đống hỗn lộn. Hãy nghiêm khắc về vấn đề này và luôn kiểm tra code.
5. Làm việc cẩu thả
Có thể là catch hoặc làm ngơ exceptions, hoặc dùng libraries không report lỗi (như jQuery), có rất nhiều cách để trốn tránh trách nhiệm để đi đường tắt. Thế nhưng khi ta cần phải sửa những lỗi ấy thì nó sẽ rất thử thách bởi bạn không biết bắt đầu từ đâu. Giải pháp là hãy log những error bị bỏ qua và nghiên cứu chúng.
6. Đặt tên không có thông tin
Đặt tên luôn là việc khó nhưng có một cách giúp cho tên của variable và function trở nên dễ hiểu và chất lượng hơn. Miễn là tên của bạn có chứa thông tin cần thiết mà trong code không có, các developer khác sẽ đọc hiểu code của bạn dễ dàng hơn. Lí do vì sao tên lại quan trọng đến vậy là bởi nó cho ta biết được code có công dụng là gì. Như vậy, việc bạn phải mất vài phút cho đến vài tiếng chỉ để biết dòng code đó có chức năng gì thì với tên, vấn đề này sẽ được giải quyết trong vài giây.
7. Mặc kệ những phương thức thực hành tốt nhất
Code reviews, test-driven development, đảm bảo chất lượng, deployment automation – và nhiều phương thức khác – chúng đều rất có giá trị trong quá trình phát triển project, đó là nguyên nhân vì sao các developer blog luôn nói về chúng liên tục. Bạn có thể đọc thêm tại Making Software: What Really Works, and Why We Believe It. Hãy dành thời gian học chúng và quá trình phát triển project của bạn sẽ được cải thiện rất nhiều.

Teamwork

8. Bỏ kế hoạch quá sớm
Cách khiến cho mọi thứ thất bại thật sự chính là việc bỏ cuộc và không theo một kế hoạch rõ ràng. Việc không làm đúng theo dự định mà chỉ nửa vời sẽ khiến mọi thứ đều chưa hoàn thiện. Trường hợp này thường gặp khi có sự thay đổi trong leader với người mới muốn thử theo ý họ thay vì bảo đảm sự nhất quán.
9. Cố chấp theo đuổi những ý tưởng tệ 
Hãy bỏ ngay những kế hoạch và ý tưởng có khả năng gây ra rắc rối, và chỉ tập trung vào một kế hoạch tốt nhất của bạn. Do đó mà việc trao đổi chia sẻ với các thành viên là rất quan trọng.
10. Chỉ làm việc một mình
Hãy luôn cố gắng giao tiếp và kết nối với các thành viên trong nhóm. Đôi khi bạn sẽ nghĩ mọi thứ mình làm là đúng nhưng sự thật thì trái ngược lại do đó mà bạn sẽ cần phải liên tục trao đổi. Ngoài ra, các thành viên trong nhóm cũng sẽ được lợi ích khi các lập trình viên trẻ được đàn anh chỉ dạy.
11. Không muốn viết code dở
Sẽ có những lúc, khi mà deadline đã cận kề và bạn bắt buộc phải viết code thật nhanh và dẫn đến chất lượng của nó bị ảnh hưởng. Mặc dù đã cảnh báo cho manager và cả client nhưng họ vẫn mặc kề và chỉ quan tâm rằng bạn làm ra sản phẩm chạy được thôi. Do đó là một lập trình viên bạn phải vừa có khả năng code tốt nhưng đồng thời cũng có khả năng code nhanh tùy theo đòi hỏi của tình huống.
12. Đổ lỗi cho người khác
Không có gì lạ khi sự kiêu ngạo là một trong những đặc điểm thường thấy của nhiều lập trình viên. Hãy dũng cảm và nhận phần lỗi của mình, như vậy bạn mới có thể rút ra bài học và tránh không lặp lại sai lầm đó.
13. Không chia sẽ kiến thức với các thành viên trong nhóm
Giá trị của bạn không chỉ nằm ở việc tạo ra code mà nó còn là ở việc bạn học gì từ chúng. Chia sẻ kinh nghiệm, cho nhận xét, giải thích cho các thành viên khác và giúp họ học hỏi từ project.
14. Chậm feeback cho managers/client
Một trong những kĩ năng nổi bật của một người thợ là đảm bảo tất cả mọi người đều cùng đồng ý. Việc feedback thường xuyên cho manager và client sẽ bảo đảm mọi thứ đều rõ ràng cũng như tương lai của project.
15. Không muốn sử dụng Google  
Khi nghi ngờ bất cứ thứ gì hãy Google nó. Tất nhiên là bạn có thể hỏi đứa kế bên nhưng sẽ rất hiếm khi nhận được câu trả lời như trên Stack Overflow, chưa kể là còn cắt mạch làm việc của thành viên trong nhóm.
16. Đánh giá quá cao style của bạn
Luôn bắt buộc nhóm phải theo phong cách của mình. Lí tưởng nhất chính là việc tất cả mọi người đều làm chung theo một code style nhưng đôi khi style của bạn lại khá khó hiểu cũng như không thật sự tối ưu.
17. Quá bảo thủ
Khi có người nhận xét code của bạn, đừng quá bảo thủ. Hãy giải thích lí do vì sao bạn code như vậy. Nếu code cần có sự cải thiện thì đó là vấn đề liên quan đến kĩ thuật chứ không có gì quá cá nhân cả.

No comments:

Post a Comment