Trong quá khứ tôi đã làm việc với -Wall và các thiết bị chuyển mạch khác cho gcc để loại bỏ mọi cảnh báo trình biên dịch cho các dự án tôi đã tham gia. Tương tự như vậy, trong Perl, tôi luôn lập trình sử dụng cảnh báo nghiêm ngặt và sử dụng (và thường là -T cũng vậy) để cố gắng đạt được chất lượng mã tốt nhất mà tôi có thể. Tôi hiểu rằng một vài năm trước đây, nhóm người khuân vác Perl đã làm việc chăm chỉ để làm cho bản thân perl (thông dịch viên Perl) biên dịch sạch dưới gcc với tất cả các cảnh báo được kích hoạt. Rõ ràng họ cảm thấy đó là một ý tưởng tốt cho chất lượng mã. Tôi cũng hiểu rằng hiện nay các lập trình viên của Perl đã thêm nhiều cảnh báo vào mã của họ với Perl :: Critic, cảnh báo họ khi họ vi phạm các phương pháp hay nhất được tìm thấy trong cuốn sách Perl Best Practices của Damian Conway (và từ các nguồn khác).Bạn có nên loại bỏ cảnh báo trình biên dịch không?
Tôi luôn có cảm giác tốt về mã mà tôi đã dọn dẹp theo cách này, nhưng đôi khi tôi không thể tránh được cảm giác rằng một số công việc đã bị lãng phí một chút. Ví dụ, trong lớp học của tôi giới thiệu C hơn một thập kỷ trước, tôi được dạy để bắt đầu hàm main() của tôi như thế này:
void main(void) {
Đây là tối thiểu và chỉ có thể được sử dụng khi bạn không được trả lại một giá trị và không truy cập đối số của bạn. Nó hoạt động tốt trong trường hợp đó, nhưng cảnh báo gcc sẽ cho bạn biết rằng chức năng này thực sự nên trông giống như:
int main(int args, char* argv) {
tôi có lẽ đã gõ một vài trăm args int không sử dụng, char * argv dòng trở lại trong ngày. Tôi đã thực sự làm cho mã của tôi tốt hơn, hoặc chỉ cần đeo ngón tay của tôi xuống ngắn hơn?
Hiện tại tôi đang lập trình bằng Java trong Eclipse và dự án của chúng tôi có hàng chục nghìn cảnh báo. Tôi muốn làm sạch chúng. Một số trong số đó đặc biệt khó hiểu và loại bỏ, nhưng dần dần tôi đang học. Một vài trong số chúng tôi đã phải xử lý với các chỉ thị của trình biên dịch để ngăn chặn các cảnh báo (thường là trong các phương thức tối thiểu nhỏ để đưa ra các hành động không quan tâm của việc bỏ qua các cảnh báo), nhưng tôi cũng đang tìm cách xử lý các cảnh báo đó.
Đây có phải là giá trị của một lập trình viên không? Liệu một dự án có thực sự tốt hơn nhiều nếu bạn theo dõi mọi cảnh báo trình biên dịch đơn lẻ?
Nếu không có gì khác, có vẻ như sẽ tốt hơn nếu giảm số cảnh báo xuống 0 để cảnh báo nghiêm trọng sẽ không bị lạc trong mớ hỗn độn.
Note: Duplicate của this question
hàng chục nghìn cảnh báo ?! Geez, vui vẻ. –
Tìm thấy câu hỏi của bạn vì dự án tôi đang làm gần đây cũng có hàng nghìn cảnh báo. Ngay cả việc xây dựng EAR luôn luôn phun ra 9 cảnh báo (tất cả là về Sun độc quyền API). Tôi bỏ qua chúng nhưng tôi đảm bảo không có cảnh báo trong các phần của mã cá nhân tôi liên lạc (chỉnh sửa hoặc tạo). Phần lớn thời gian, dù thế nào đi chăng nữa. Những người khác làm việc trên dự án không quan tâm đến các cảnh báo ở tất cả (miễn là nó hoạt động, nó là tốt) và nói với nhau để chỉ nhắm mắt làm ngơ trước mọi cảnh báo, chỉ xử lý các lỗi. – ADTC