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