kb
24.08.2011 09:01 Gajim
Чувак на хабре привел пример статического анализатора кода от Apple. Вы не могли бы мне объяснить, что конкретно он пытается сказать на этом скриншоте? http://habrahabr.ru/blogs/programming/12... Что при x < 0 вернётся чепуха или что?
обвиусли да
да
Хреново чувак показал, да. Анализатор здесь просто ищет наличие хотя бы одного присваивания до того, как сработает return. Ясен хрен, можно извратиться и инициализировать через указатель, но это уже совсем другая и-C-тория.
ну и вообще такие штуки только засоряют, как мне кажется, внимание. Как кто-то правильно сказал: "автоматические анализаторы разного рода постоянно улучшают защиту от тупых ошибок. Мне не нужна защита от тупых ошибок, с ними я и сам справлюсь. Мне нужна защита от охуенно сложных ошибок!". В чем-то он прав.
Не, анализатор — это ок. Но для языков с более простой грамматикой, я считаю. В плюсах как ни старайся, получится либо монстр, либо пустые места.
ну в питоне есть, казалось бы, простенький pylint, но даже тот своими "капитан очевидность" (типа "неиспользованная переменная") чаще засоряет внимание только.
В нормальных конторах проталкивание исходников в главное дерево должно сопровождаться запуском тестов и статическим анализом (хотя бы на соответствие стилю). Такие вещи можно и нужно автоматизировать и скриптовать.
дада, и еще pep8.py (который стиль кодирования), еще coverage.py. Всё равно pylint нужен как минимум чтоб на летку ошибки синтаксиса подсвечивал (в питоне с его форматированием строк и % dict() иногда помогает, потому что бывает таки херня с переносами)
ага, не пользуюсь им, ибо ещё ни разу ничего полезного не посоветовал
pylint?
да
нет, ну если придерживаться правила 80 символов и извращаться чтоб всё правильно переносилось — pylint бывает реально полезен
мне показалось глупым, что он требовал от меня заменить {} на dict()
да, этого вроде бы нету уже :-) А вообще мне очень интересно самому пописать статический анализатор, обязательно займусь в будущем. Конкретно хочется сделать его таким, чтоб можно было в питоне его assert'ами обучать уму и подсказки давать. И в рантайме полезно и критические куски можно свести практически к статическому коду в теории.
красиво же!
всё правильно говорил, рли