Независимо от того, поддерживаем ли мы незнакомый код или проверяем детали реализации модуля Apache, это может помочь, если мы сможем быстро пройтись по коду и составить обзор того, на что мы смотрим. Grep удовлетворяет большинство моих ежедневных потребностей, но в некоторых случаях он просто не подходит.
Вот типичный пример того, как это может помочь. Чтобы найти определение функции PHP, которая мне интересна, я могу набрать это в командной строке:
grep -r "function myfunc" .
Это может быть очень быстро адаптировано к C или C ++, если мы знаем тип возвращаемого значения, но все усложняется, если, скажем, я хочу перечислить все методы, которые предоставляет мой класс:
grep "function " ./src/mine.class.php
Поскольку в C ++ нет единственного ключевого слова, обозначающего функцию или метод, и поскольку в целом это более сложный синтаксис, я думаю, что мне нужен какой-то инструмент статического анализа кода, умное использование препроцессора C или слепое доверие, которому следовал кодер строгие правила кода (количество пробелов, положение фигурных скобок и т. д.) для получения результатов такого рода.
Что бы вы порекомендовали?