Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
899
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6087
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Какие инструменты вы используете для статического анализа кода?
Этот вопрос о цикломатической сложности заставил меня больше задуматься о статическом анализе кода . Анализ сложности и согласованности кода иногда бывает полезен, и я хотел бы начать делать это чаще. Какие инструменты вы рекомендуете (для каждого языка) для такого анализа? В Википедии есть большой список инструментов, но какие из них люди пробовали раньше?
Edit: как отмечает Дэвид, это не совсем незаданный вопрос, когда речь заходит об инструментах на основе C/UNIX .
Я настраивал систему сборки Hudson continuous integration (CI) для своих проектов Objective-C iPhone (iOS apps) и составил разнообразный список инструментов, которые можно использовать для анализа моих проектов во время сборки:
Статический анализатор Clang: бесплатный, автономный инструмент up-to-date, который улавливает больше проблем, чем версия Clang, включенная в Xcode 4. Активный проект. -- посещение http://clang-analyzer.llvm.org
Doxygen: бесплатный инструмент для создания документации, который также создает диаграммы зависимостей классов. Активный проект-посетите http://www.doxygen.nl
HFCCA (header-free cyclomatic complexity analyzer): бесплатный скрипт Python для вычисления сложности кода, но без заголовочных файлов и предпроцессоров. Поддерживает вывод в формате XML для сборок Hudson/Jenkins. Активный проект. -- посещение http://code.google.com/p/headerfile-free-cyclomatic-complexity-analyzer
CLOC (count lines of code): бесплатный инструмент для подсчета файлов, строк кода, комментариев и пустых строк. Поддерживает дифференцирование, поэтому вы можете видеть различия между сборками. Активный проект. -- посещение http://cloc.sourceforge.net
SLOCcount (source lines of code count): бесплатный инструмент для подсчета строк кода и оценки затрат и времени, связанных с проектом. Кажется, что он не активен. -- посещение http://sourceforge.net/projects/sloccount и http://www.dwheeler.com/sloccount
AnalysisTool: бесплатный инструмент анализа кода, который измеряет сложность кода, а также создает диаграммы зависимостей. Не активный. Похоже, что он не работает с Xcode 4, но я хотел бы, чтобы он работал. -- посещение http://www.karppinen.fi/analysistool
Для C и Objective-C можно также использовать статический анализатор LLVM / Clang .
Он с открытым исходным кодом и находится в стадии активной разработки.
Checkstyle, Findbugs и PMD-все они довольно хорошо работают в Java. В настоящее время я вполне доволен тем, что PMD работает в NetBeans. Он имеет довольно простой GUI для управления тем, какие правила вы хотите запустить. Также очень легко запустить проверку на одном файле, всем пакете или всем проекте.
Также смотрите вопрос выбор инструмента статического анализа кода , если вы ищете инструменты на основе C/UNIX.
Мои администраторы действительно дешевы, поэтому я могу использовать только действительно дешевые инструменты:
1) CCCC (счетчик кода C / C++): различные результаты, связанные с количеством строк (по сравнению со строками комментариев, цикломатической сложностью, потоком информации,...) 2) Semian: самый быстрый поиск дубликатов кода, который я когда-либо пробовал. 3) LOC Metrix: не очень полезно, но может помочь сделать точку зрения.
Мы используем код QAC компании Programming Research для нашего кода C. Работает OK.
Недавно мы говорили о проверке некоторых более продвинутых и статических/динамических анализаторов кода, таких как Coverity Prevent или analysis tool by GrammaTech .
Они утверждают, что не только делают статический анализ, но и находят ошибки во время выполнения и т. д. Предполагается, что одним из основных пунктов продажи будет меньше ложных срабатываний.
Линт -единственный, который я использовал на предыдущей позиции. Это было неплохо, большинство вещей, которые он предлагал, были хорошими уловами, некоторые не имели большого смысла. До тех пор, пока у вас нет процесса на месте, чтобы гарантировать, что нет никаких ошибок ворса или предупреждений, то это полезно, возможно, поймать некоторые в противном случае скрытые ошибки
Мы используем Coverity Prevent at Palm для анализа кода C и C++, и он проделал большую работу по выявлению некоторых скрытых ошибок в нашем коде. Он также находит много проблем, которые вряд ли будут затронуты, но их легко отметить как "will not fix" или "not a problem" в базе данных кода, которую генерирует инструмент. Это дорого, но компания иногда работает над проектами с открытым исходным кодом и предоставляет отчеты сопровождающим. Если вы хотите узнать больше о нашем опыте, у них на сайте есть техническая документация о нашем использовании продукта .
Я использовал довольно много инструментов статического анализа с открытым исходным кодом и коммерческих инструментов статического анализа на многих языках, и я нахожу, что общее обсуждение подходит под зонтиком концепции, известной как технический долг ( о котором подробно говорится в этой статье ).
Однако для быстрого ответа, вот мои любимые на каждом языке:
- Java: Google CodePro Analytix & Checkstyle .
- NET: FxCop & StyleCop
- C/C++: McCabe IQ