В прошлом я работал с -Wall и другими ключами для gcc, чтобы устранить все предупреждения компилятора для проектов, в которых я участвовал. Точно так же в Perl я всегда программирую с use strict и использую предупреждения (и часто также -T). ), чтобы попытаться добиться наилучшего качества кода, какое только возможно. Я понимаю, что несколько лет назад группа портировщиков Perl усердно работала над тем, чтобы сам perl (интерпретатор Perl) компилировался чисто под gcc со всеми включенными предупреждениями. Очевидно, они считали, что это хорошая идея для качества кода. Я также понимаю, что в настоящее время программисты Perl добавляют в свой код еще больше предупреждений с помощью Perl::Critic, который предупреждает их, когда они нарушают рекомендации, описанные в книге Damian Conway Perl Best Practices (и, я думаю, из других источников).
У меня всегда было хорошее мнение о коде, который я очистил таким образом, но иногда я не мог избавиться от ощущения, что часть работы была потрачена впустую. Например, более десяти лет назад на моих вводных курсах C меня учили запускать функцию main() следующим образом:
void main(void) {
Это было минимально и могло использоваться только тогда, когда вы не возвращали значение и не обращались к своим аргументам. В этом случае она работает просто отлично, но предупреждения gcc сообщат вам, что эта функция действительно должна выглядеть так:
int main(int args, char* argv) {
Я, должно быть, набрал пару сотен неиспользуемых строк int args, char* argv в тот день. Действительно ли я сделал свой код лучше или просто стал короче?
Сейчас я программирую на Java в Eclipse, и наш проект имеет десятки тысяч предупреждений. Я хотел бы их почистить. Некоторые из них особенно трудно понять и устранить, но потихоньку я учусь. Некоторые из них мне приходилось обрабатывать с помощью директив компилятора для подавления предупреждений (обычно в крошечных минимальных методах, чтобы исключить плохую практику игнорирования предупреждений), но я также нахожу способы справиться с ними.
Стоит ли это времени программиста? Будет ли проект действительно лучше, если вы будете отслеживать каждое предупреждение компилятора?
По крайней мере, кажется, было бы неплохо уменьшить количество предупреждений до нуля, чтобы серьезные предупреждения не терялись в беспорядке.
Примечание: дубликат этот вопрос