Для чего нужны разные Warning Level-ы?
От: _FRED_ Черногория
Дата: 23.01.09 16:13
Оценка:
Некоторые компиляторы (С++, C#) вводят градацию предупреждений (Warning Level).

Для чего это нужно? Т.е. в каких задачах имеет смысл не использовать максимальный (наиболее строгий) уровень?
Help will always be given at Hogwarts to those who ask for it.
Re: Для чего нужны разные Warning Level-ы?
От: Alexander G Украина  
Дата: 23.01.09 16:46
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Для чего это нужно? Т.е. в каких задачах имеет смысл не использовать максимальный (наиболее строгий) уровень?


Для дебага некоторые штуки допустимы и могут использоваться, например, замены методов на макросы в которых проверки с неиспользуемыми параметрами и лишними ветвлениями. /W3 для дебага вполне ок при максимальном /W4.
Русский военный корабль идёт ко дну!
Re: Для чего нужны разные Warning Level-ы?
От: Mr.Cat  
Дата: 23.01.09 16:58
Оценка:
Здравствуйте, _FRED_, Вы писали:
_FR>Для чего это нужно? Т.е. в каких задачах имеет смысл не использовать максимальный (наиболее строгий) уровень?

По своему опыту. В VB.NET warning level'ы помогают с переводом проекта на C#. VB с минимальным уровнем варнингов будет не по зубам даже самому умному конвертеру. Постепенно закручивая гайки (т.е. запрещая все больше из того, чего нет в C#) и фикся возникающие ошибки, можно за конечное время привести проект к состоянию, когда автоматическая конвертация в C# пройдет сравнительно гладко (и то потрудиться придется).
Re: Для чего нужны разные Warning Level-ы?
От: SergH Россия  
Дата: 23.01.09 17:47
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Для чего это нужно? Т.е. в каких задачах имеет смысл не использовать максимальный (наиболее строгий) уровень?


При использовании кода, который не хочется менять (чужой, или старый, или много).
Делай что должно, и будь что будет
Re[2]: Для чего нужны разные Warning Level-ы?
От: _FRED_ Черногория
Дата: 27.01.09 14:15
Оценка:
Здравствуйте, Alexander G, Вы писали:

_FR>>Для чего это нужно? Т.е. в каких задачах имеет смысл не использовать максимальный (наиболее строгий) уровень?

AG>Для дебага некоторые штуки допустимы и могут использоваться, например, замены методов на макросы в которых проверки с неиспользуемыми параметрами и лишними ветвлениями. /W3 для дебага вполне ок при максимальном /W4.

На Warning Level это завязано, как я понимаю, косвенно: ведь можно игнорировать опредёлённые ворнинги гораздо эффективнее: можно и на уровне проекта, и на любом другом более мелком уровне.
Help will always be given at Hogwarts to those who ask for it.
Re[2]: Для чего нужны разные Warning Level-ы?
От: _FRED_ Черногория
Дата: 27.01.09 14:33
Оценка:
Здравствуйте, SergH, Вы писали:

_FR>>Для чего это нужно? Т.е. в каких задачах имеет смысл не использовать максимальный (наиболее строгий) уровень?


SH>При использовании кода, который не хочется менять (чужой, или старый, или много).


Получается, Warning Level-ы нужны для поддержки плохо-написанного кода

И что же эффективнее: в чужом коде смотреть:

- Так, на четвёртом много ворнингом, меняем на третий;
— Так, на третьем многовато ворнингов, ставим второй;
— Так, на втором совсем не много, оставим так

или

- Так, в этом коде проблемы тут, тут и тут. Значит игнорируем это, это и это. И избавимся от ворнингов совсем.

Help will always be given at Hogwarts to those who ask for it.
Re[2]: Для чего нужны разные Warning Level-ы?
От: _FRED_ Черногория
Дата: 27.01.09 14:35
Оценка:
Здравствуйте, Mr.Cat, Вы писали:

_FR>>Для чего это нужно? Т.е. в каких задачах имеет смысл не использовать максимальный (наиболее строгий) уровень?


MC>По своему опыту. В VB.NET warning level'ы помогают с переводом проекта на C#.


Понятно, что использовать Warning Level-ы можно по-разному. Мне интересно, для чего они задумывались.
Help will always be given at Hogwarts to those who ask for it.
Re: Для чего нужны разные Warning Level-ы?
От: Tilir Россия http://tilir.livejournal.com
Дата: 27.01.09 15:59
Оценка: 5 (2)
_FR>Для чего это нужно? Т.е. в каких задачах имеет смысл не использовать максимальный (наиболее строгий) уровень?

Да тонны таких задач. Собственно компилить на максимальном уровне ворнингов нужно только критичные проекты. А всякие собственные предварительные эксперименты, удобные утилитки и прочую обвязку нужно писать за 15 минут а вылизывать времени нет. Вот у меня сейчас ответственный проект собирается на четвёртом уровне. Но там внутри юзается в одном из модулей один хитрый алгоритм для которого я сегодня сделал формочное приложение-демонстраху и отослал заказчику чтобы тот эту демонстраху погонял и рассудил устраивает ли его всё в таком виде. Так вот эта демонстраха собрана на честном втором уровне. Ибо не вижу смысла вылизывать, потому как жить ей до завтра когда мне скажут "да всё так" или "нет, тут поправить", после чего честно отправится в архив.

Для меня warning level на котором собран проект -- это часть его очень важной неформальной документации, показывающий *отношение* программиста к проекту. Чем серьёзней отношение твоего предшественника тем серьёзней следует отнестись и тебе.
Re: Для чего нужны разные Warning Level-ы?
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.01.09 17:08
Оценка: +1
Здравствуйте, _FRED_, Вы писали:

_FR>Некоторые компиляторы (С++, C#) вводят градацию предупреждений (Warning Level).


_FR>Для чего это нужно? Т.е. в каких задачах имеет смысл не использовать максимальный (наиболее строгий) уровень?


В С++ они помогают избавиться от ворнингов которые не контролировались другими компиляторами. Пришел к тебе скажем проект который собирался на ЖЦЦ, а тебе его нужно собрать на Интел С++. Вываливается гора вонрингов. Уменьшил уровень и все прошло. Код вроде как тестировался, так что работать будет. Ты за него не отвечаешь и только используешь.

В C# его ввели, я так думаю, для того чтобы тонны индусов и других безруких существ могли жить спокойно и не портить нервы непонятными сообщениями.

Сам лично всегда ставил максимальный уровень и исправлял все места где появляются предупреждения (даже безобидные). Иногда даже пользуюсь предупреждениями как "закладками" демонстрирующими недописанные участки кода. Скажем нет времени (в лом, заболел, устал...). Влепил что-то что выдаст ворнинг и потом легко нашел этот код и продолжил писать дальше. Только это прокатывает когда в проекте люди не пересекаются. Иначе по башке настучат .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Для чего нужны разные Warning Level-ы?
От: fddima  
Дата: 27.01.09 23:12
Оценка:
Скорее забьют. А когда нужно будет "стучать" по голове — тех уже и на конторе то нет.
Сами с усами, есть ворнинги — но их править это тратить время, а все ворнинги что там есть — весьма и весьма не критичны (C#), чаще всего типа переменная (обычно в catch) объявлена, а не используется. Ну или как-то так, может показалось.

( Влад, это уже совсем не тебе )
Имхо, вообще у каждого проекта — своя история — свои правила...
А WL — это мелочь из этих правил. Кто там что настроил, придумал — 8-10 лет назад — с этим иногда и живёшь, а правды уже недобьёшься, оно есть и живи — и колотушкой как писал выше — бить некого. Больше задумываюсь вот, почему не взять самому, потратить вечер и не выгрести все эти слюни. Но нет... Или задуматься о тех граблях что првнёс сам в проект. А это весьма не один вечер. Ну и не к одним ворнингам это сводится. Хотя ворнинги — они обычно как минимум там, где они неоправданно существуют — стоит пересмотреть, что рядом. Имеется ввиду что в проекте с самими ворнингами бороться смысла нет — нужно бороться за "эффективность-нормальность" кода. На любом языке. А ворнинги они, имхо, и вылазят там, где стоит подробно посмотреть что и как.

Сам предпочитаю всегда максимальный уровень. Мне легче написать, поправить, сразу пока пишешь (на С++ тоже пишу изредко), — и потом голову не морочить, чем держать этот зоопарк.
Re[3]: Для чего нужны разные Warning Level-ы?
От: Alexander G Украина  
Дата: 29.01.09 08:21
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>На Warning Level это завязано, как я понимаю, косвенно: ведь можно игнорировать опредёлённые ворнинги гораздо эффективнее: можно и на уровне проекта, и на любом другом более мелком уровне.


Можно. Но зачем вручную настраивать определённые ворнинги, если уже есть готовые наборы ?
Но Level 4 как раз состоит из ворнингов, которые ОК для дебаг версии, а на Level 2, 3 уже следует обращать внимания всегда.
Русский военный корабль идёт ко дну!
Re[2]: Для чего нужны разные Warning Level-ы?
От: рыбак  
Дата: 04.02.09 13:47
Оценка: :))
Здравствуйте, VladD2, Вы писали:


VD>Сам лично всегда ставил максимальный уровень и исправлял все места где появляются предупреждения (даже безобидные). Иногда даже пользуюсь предупреждениями как "закладками" демонстрирующими недописанные участки кода. Скажем нет времени (в лом, заболел, устал...). Влепил что-то что выдаст ворнинг и потом легко нашел этот код и продолжил писать дальше.


Ага, например можно так TODOList делать: объявил переменную int TODO_something; и компилятор сам тебе покажет что недоделано.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.