-
Я просто придерживаюсь мнения, что если какую-то работу можно переложить на бездушную машину, то нужно переложить.
-
> Kerk ©
Setup я не скачивал - просто пока что он мне ни к чему, а потом будет видно. Скажи, а реализована эта штука в виде вращиваемого в среду препроцессора (имеется в виду эксперт с методом BeforeCompile), или как-то иначе?
-
> Kerk © (07.10.14 01:57) [15] > > Ответ тот же самый :) > У меня в планах поддержка всех версий, начиная с 2006. Но > что успел, то успел
Ну тогда всё-таки с Д2007. 2005 и 2006 это всё-таки некие бэта-версии.
-
> Юрий Зотов © (07.10.14 02:32) [21]
Эта штука добавляет в среду кнопку, которая при нажатии запускает анализ текущего проекта. Возможно, BeforeCompile я сделаю позже опционально, но пока подумал, что не нужно.
> Германн © (07.10.14 02:54) [22]
D2006 наряду с D7 - одна их самых популярных версий до сих пор! :)
-
> Юрий Зотов © (07.10.14 01:21) [10]
> Для начинающих - полезно. Для профи - вряд ли, потому что > таких очевидных ляп они уже практически не делают.
Ляпы делают все разной степени очевидности. Если над кодом работает несколько человек полезно иметь инструмент отслеживающий вот такие ляпы. Тот же PVS Studio находил в свое время массу багов в известных программных продуктах, таких как например Google Chrome. Вот кстати блог PVS Studio с отчетами о проверках: http://habrahabr.ru/company/pvs-studio/
-
>Но функция Format сама же интерпретирует свою строку, это не часть языка. интерпретирует то она интерпретирует, но от того не легче. пример:
Format('select study_name from studies where study_uid = %s', [StudyUID]);
иногда приходится менять тип StudyUID со string на integer или наоборот, приходится весь код шерстить, что бы поменять %s на %d и всё равно ошибки, бывает, проскакивают. не скажу, что часто - может раза 3-4 было, но всё равно неприятно. не уверен, правда, что автоматом можно это учесть - объявления переменных бывают разбросаны по модулям. не знаю - может ли твой анализатор глобально по проекту собирать список переменных. >Для начинающих - полезно. Для профи - вряд ли, потому что таких очевидных ляп они уже практически не делают. у себя в коде почти ничего не нашел. только блок with несколько раз подвел, автоматом нашлось (присвоение одинаковых переменных). в сторонних компонентах в нескольких местах нашлись проблемы. в коде других программистов - штуки три ошибки (exit не в том месте, несоответствие числа параметров format). Проект - около 800-та тысяч строк. Ошибок с десяток нашлось, польза для меня есть. Впрочем - даже если одна была бы - всё равно хорошо. Ну а идеальным программистам, конечно, такие программы незачем.
-
D2006 фарева!
Программа крайне полезная, но вот основная масса канвы для анализа у меня именно в упомянутой версии.
Рома, у тебя же был в начале не экспертный вариант, нельзя его как-то собрать ?
-
Буквально недавно напоролся на опечатку. В код случайно попал лишний слэш, как раз в формате. Вместо "some text %s some text" было "some text %/s some text". Причем - именно случайно вклинившийся слэш, сам ума не приложу, как он туда попал. То было бы здорово проверять не только количиство, но и сами параметры. Делфи автоматом не делает. Понятно - не часть языка, но от того не легче.
-
"количиство" читать - количество. сделали на форуме обязательную регистрацию, сделайте пожалуйста еще и редактор.
-
> Дмитрий Белькевич © (07.10.14 10:29) [25]
> иногда приходится менять тип StudyUID со string на integer > или наоборот, приходится весь код шерстить, что бы поменять > %s на %d и всё равно ошибки
Я бы вообще предпочел, чтобы integer в string конвертировалось автоматом и т.д. Вон в c# такой проблемы нету.
-
> Дмитрий Белькевич © (07.10.14 10:29) [25]
> у себя в коде почти ничего не нашел.
это потому что база у программы пока совсем маленькая. натрави на код что-то типа AQTime (там вроде кроме профилировщика тоже есть анализатор с 100500 критериями оценки кода) узнаешь о своем коде много нового, начиная от дублей которые можно вынести в функции и заканчивая явными ошибками, время которых еще просто не пришло.
-
> Юрий Зотов © (07.10.14 01:21) [10] > ИМХО. > > Для начинающих - полезно. Для профи - вряд ли, потому что > таких очевидных ляп они уже практически не делают.
Делают-делают :) В наших проектах нашел пару тройку ляпов, хотя команда у нас, сам знаешь, точно не новички ни разу :) Даже удивительно что раньше не выплывало.
-
>Я бы вообще предпочел, чтобы integer в string конвертировалось автоматом и т.д. Вон в c# такой проблемы нету.
что имеем.
>натрави на код что-то типа AQTime
интересно, гляну.
-
> Kerk © (07.10.14 10:24) [23] > D2006 наряду с D7 - одна их самых популярных версий до сих пор! :)
жаль, что другая из самых популярных не поддерживается )
-
> Игорь Шевченко © (07.10.14 10:35) [26] > Рома, у тебя же был в начале не экспертный вариант, нельзя > его как-то собрать ?
У меня он и сейчас есть, я его для отладки использую. Но он же неудобный.
-
Проверять типы переменных в Format в принципе можно, но не в ближайшем будущем. Анализатор пока не умеет такие сложные штуки делать :)
-
>натрави на код что-то типа AQTime Статических анализаторов всего четыре. Первый, Static Analysis, позволяет получить общую информацию о приложении (размер функций в байтах, их адреса в памяти) и информацию о конкретных функциях (количество циклов в функции, количество условных операторов и т.д.). Следующий, Sequence Diagram Link, анализирует последовательность выполнения функций в программном коде, и по результатам анализа строит наглядную диаграмму в Microsoft Visio или Microsoft Word. Следующий статический анализатор имеет название Unused VCL Units и предназначен для поиска неиспользуемых модулей в программах, созданных с применением Delphi или C++ Builder. Такой анализ позволит несколько уменьшить размер исполняемого файла, получающегося при использовании этих сред, если из исходного текста программы убрать упоминание лишних модулей. Ну и, наконец, четвертый инструмент статического анализа, Platform Compliance, позволяет убедиться в том, что приложение может быть запущено на определённых целевых платформах - например, с его помощью можно узнать, какие дополнительные DLL'ки для этого понадобятся. Увы, судя по описанию, нет в нем нормального анализатора. >Проверять типы переменных в Format в принципе можно, но не в ближайшем будущем. не то, что бы оно сильно нужно было :) хорошо даже то, что уже сделал, спасибо. еще парочка: http://www.campwoodsw.com/http://www.socksoftware.com/codehealer.phphttp://sourceforge.net/projects/dca/может пригодится.
-
> Дмитрий Белькевич © (07.10.14 14:44) [36]
> Увы, судя по описанию, нет в нем нормального анализатора.
А там случайно нет отличий между редакциями? Мне кажется я как то смотрел именно AQTime и там была куча всяких критериев анализа.
-
-
DVM © (07.10.14 15:14) [38]
Вот мне интересно, кто-нибудь из этого встроенного аудита хоть какую-то пользу имеет ? Кроме тучи цифири, в которой без стакана разобраться невозможно, я там ничего полезного не обнаружил. Возможно, плохо смотрел. Сабжевый анализатор гораздо проще и интуитивнее.
|