Объяснение вывода phploc

Если я запускаю phploc против одного из моих проектов PHP (с открытым исходным кодом), я вижу этот вывод.

 phploc 1.6.4 by Sebastian Bergmann. Directories: 3 Files: 33 Lines of Code (LOC): 2358 Cyclomatic Complexity / Lines of Code: 0.08 Comment Lines of Code (CLOC): 903 Non-Comment Lines of Code (NCLOC): 1455 Namespaces: 0 Interfaces: 3 Classes: 28 Abstract: 1 (3.57%) Concrete: 27 (96.43%) Average Class Length (NCLOC): 49 Methods: 149 Scope: Non-Static: 128 (85.91%) Static: 21 (14.09%) Visibility: Public: 103 (69.13%) Non-Public: 46 (30.87%) Average Method Length (NCLOC): 9 Cyclomatic Complexity / Number of Methods: 1.69 Anonymous Functions: 0 Functions: 3 Constants: 9 Global constants: 0 Class constants: 9 

С помощью этого статического анализа, как определить, хорошая ли эта кодовая база хорошая или плохая? Или как хорошо или плохо написано?

  1. Является ли цикломатическая сложность хорошей, если ее слишком низкая или высокая?
  2. Имеющий 3.57% абстрактный класс хорош или плох?
  3. 14.09% статические методы. Должно ли оно быть ниже на базе кода ООП?
  4. Нет используемого пространства имен, хорошо это или плохо?

Последний вопрос Как вы анализируете базу кода с выходом phploc?

Низкая цикломатическая сложность хорошая, высокая – плохая; статикам трудно провести единичный тест , но (хотя некоторые считают их плохими, как eval), они служат цели; другие меры от phploc подлежат интерпретации.

Но вы действительно должны использовать phploc наряду с другими инструментами, такими как pdepend и phpmd . В частности, сайт pdepend объясняет большую часть используемой аналитики, а вывод phpmd довольно понятен

РЕДАКТИРОВАТЬ

Для сравнения, код, над которым я сейчас работаю ( https://github.com/MarkBaker/PHPGeodetic ): Я достаточно доволен уровнем абстрактных / конкретных классов, хотя это может пойти немного выше; У меня есть один метод с более высокой циклической сложностью, которого достаточно, чтобы немного перекосить эти фигуры, но это нелегко поддается слому; и несколько более длинных методов (но недостаточно долго, чтобы вызывать предупреждения phpmd).

 Lines of Code (LOC): 4003 Cyclomatic Complexity / Lines of Code: 0.07 Comment Lines of Code (CLOC): 1580 Non-Comment Lines of Code (NCLOC): 2423 Namespaces: 0 Interfaces: 1 Traits: 0 Classes: 25 Abstract: 4 (16.00%) Concrete: 21 (84.00%) Average Class Length (NCLOC): 103 Methods: 160 Scope: Non-Static: 129 (80.62%) Static: 31 (19.38%) Visibility: Public: 131 (81.88%) Non-Public: 29 (18.12%) Average Method Length (NCLOC): 16 Cyclomatic Complexity / Number of Methods: 2.12 Anonymous Functions: 2 Functions: 0 Constants: 66 Global constants: 0 Class constants: 66 

В целом, я испытываю соблазн работать с правилом 80:20 для публичных / частных, нестатических / статических и для конкретных / абстрактных; но многое зависит от того, что вы на самом деле кодируете

Вероятно, более важным является Cyclomatic Complexity / Number of Methods … Мне не нравится, что эта фигура слишком высока; но если он встанет выше среднего, я буду смотреть на статистику phpmd намного ближе