В прошлом я работал с -Wall и другими переключателями для gcc, чтобы исключить все предупреждения компилятора для проектов, в которых я был вовлечен. Аналогично, в Perl я всегда программирую с использованием строгих и предупреждающих предупреждений (а часто - 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, и наш проект содержит десятки тысяч предупреждений. Я бы хотел их очистить. Некоторые из них особенно трудно понять и устранить, но я медленно учусь. Некоторым из них я должен был обращаться с директивами компилятора, чтобы подавлять предупреждения (как правило, в минимальных минимальных методах, чтобы исключить плохую практику игнорирования предупреждений), но я также нашел способы справиться с ними.
Стоит ли это время программиста? Будет ли проект действительно намного лучше, если вы выберете каждое предупреждение о компиляторе?
Если ничего другого, похоже, было бы неплохо уменьшить количество предупреждений до нуля, чтобы серьезные предупреждения не потерялись в беспорядке.
Примечание: Дубликат этого вопроса