Tôi giả sử "thực hành tốt nhất" bạn có nghĩa là một số danh sách các quy tắc mà ai đó đã viết trong một cuốn sách. Tất nhiên nếu bạn có nghĩa là cụm từ theo nghĩa đen, thì tất nhiên bạn nên luôn luôn viết mã tốt nhất bạn có thể.
Tôi có cần chỉ ra rằng không có một tập hợp "thực hành tốt nhất" nào được chấp nhận rộng rãi không? Đối với bất kỳ quy tắc nào được thúc đẩy bởi một chuyên gia, bạn hầu như luôn có thể tìm thấy một chuyên gia khác có thông tin tương đương, người nói điều gì đó khác biệt.
Nhưng đến mức: Câu trả lời ngắn: thường, nhưng không phải luôn luôn.
Mỗi lĩnh vực có "thực tiễn tốt nhất" và "giải pháp sách giáo khoa". Chúng đại diện cho kinh nghiệm tích lũy và trí tuệ của nhiều người, nhiều người trong nhiều, nhiều năm và không nên bỏ qua. NHƯNG! Luôn luôn có những trường hợp đặc biệt, trường hợp bên lề, v.v ... Người thực sự có khả năng trong bất kỳ lĩnh vực nào biết khi nào nên tuân theo các quy tắc và khi nào nên phá vỡ chúng.
Tôi muốn nói chung: Bắt đầu bằng cách làm theo các quy tắc sách giáo khoa. Khi tuân theo các quy tắc trong sách giáo khoa dẫn đến rắc rối - sự phức tạp không cần thiết, hiệu suất kém, bất cứ điều gì - sau đó xem xét liệu việc phá vỡ quy tắc này một lần có thể không phải là một ý tưởng tốt hơn.
Nếu bạn bỏ qua các quy tắc và đi bất cứ nơi nào ý thích của bạn dẫn bạn, mã của bạn có thể sẽ là một mớ hỗn độn. Cho dù bạn thông minh đến đâu, bạn không phải là lập trình viên đầu tiên trên thế giới. Nó có ý nghĩa để học hỏi từ kinh nghiệm của người khác. Trong cuộc sống hàng ngày của chúng tôi, đây là lý do tại sao chúng tôi có cha mẹ và giáo viên và nhà thuyết giáo: vì vậy chúng tôi không phải lặp lại mọi sai lầm ngu ngốc để biết rằng đó là một sai lầm ngu ngốc.
Nhưng nếu bạn không tuân theo một danh sách các quy tắc từ một số cuốn sách 100% thời gian, bạn sẽ thường thấy mình mắc một cái chốt vuông vào một cái lỗ tròn. Những người đã viết ra quy tắc có thể không gặp phải trường hợp nào giống như bạn. Và ngay cả khi họ có, nếu nó hiếm đến mức họ có thể bỏ qua nó. Một quy tắc hoạt động 80% thời gian là một quy tắc tuyệt vời - miễn là bạn hiểu rằng nó hoạt động 80% thời gian chứ không phải 100% thời gian.
Tôi đã viết một cuốn sách về thiết kế cơ sở dữ liệu bao gồm nhiều quy tắc mà tôi khuyên các nhà thiết kế cơ sở dữ liệu tuân theo. (Tôi sẽ không đưa ra tiêu đề để tôi trông giống như tôi đang tự quảng cáo một cách đáng xấu hổ.) Tôi chắc chắn khuyến khích bất cứ ai muốn thiết kế cơ sở dữ liệu để đọc một cuốn sách như của tôi và học tất cả những gì họ có thể từ nó . Nhưng KHÓA HỌC có những lúc bạn nên phá vỡ các quy tắc tôi liệt kê.
Tôi đã từng viết một tài liệu tiêu chuẩn lập trình cho một nhóm các nhà phát triển mà tôi đã lãnh đạo vào thời điểm đó. Và quy tắc cuối cùng đã diễn ra như sau: "Nếu bạn có lý do chính đáng để phá vỡ một trong những quy tắc trên, thì hãy tiếp tục, NHƯNG bạn phải bao gồm một nhận xét trong mã của mình giải thích lý do tại sao bạn phá vỡ quy tắc. Nếu bạn không thể đến với một lý do chính đáng, sau đó làm theo quy tắc. Nếu viết bình luận gặp nhiều rắc rối hơn là tuân theo quy tắc, thì hãy tuân theo quy tắc. " Chúng tôi chỉ có một vài lần rằng ai đó tìm thấy việc phá vỡ một quy tắc đáng để giải thích tại sao.