История изменений
Исправление shkolnick-kun, (текущая версия) :
cppcheck
Adlint - Чтобы словить тысячи варнингов и засуспендить болшую часть из них.
Ещё, в хорошем проекте должы быть тесты, по крайней мере чтобы регрессии отлавливать и править.
А в совсем хорошем не помешает использование CI.
pmccabe
Почитав тред попробовал https://github.com/terryyin/lizard ,словил высокие значения на свичах (конечный автомат с 16-ю состояниями сразу дает «высокорискованный» код).
Спасибо за наводку, можно будет делать эксрпресс-анализ чужого кода на предмет...
А чем посоветуете оценить взаимосвязи модулей?
Если первый раз вижу код - кормлю его диоксигену, смотрю графы включения заголовков, графы зависимости типов данных, графы вызовов.
Дальше либо вырисовывается картина стихийной разработки (признак - бардак в графах вызовов, например), либо не вырисовывается, и тогда нужно смотреть код более глубоко, например - статическими анализаторами и прочими кошерными инструментами.
Чтение исходников - последнее, что делаю.
Исходная версия shkolnick-kun, :
cppcheck
Adlint - Чтобы словить тысячи варнингов и засуспендить болшую часть из них.
Ещё, в хорошем проекте должы быть тесты, по крайней мере чтобы регрессии отлавливать и править.
А в совсем хорошем не помешает использование CI.
pmccabe
Почитав тред попробовал https://github.com/terryyin/lizard ,словил высокие значения на свичах (конечный автомат с 16-ю состояниями сражу дает «высокорискованный» код).
Спасибо за наводку, можно будет делать эксрпресс-анализ чужого кода на предмет...
А чем посоветуете оценить взаимосвязи модулей?
Если первый раз вижу код - кормлю его диоксигену, смотрю графы включения заголовков, графы зависимости типов данных, графы вызовов.
Дальше либо вырисовывается картина стихийной разработки (признак - бардак в графах вызовов, например), либо не вырисовывается, и тогда нужно смотреть код более глубоко, например - статическими анализаторами и прочими кошерными инструментами.
Чтение исходников - последнее, что делаю.