apache / rocketmq-clients
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
ipp
txt
proto
pyi
csproj
mod
in
clang-format
gitmodules
properties
clang-tidy
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main43191 LOC (76%) 489 files
test6300 LOC (11%) 75 files
generated3815 LOC (6%) 68 files
build and deployment751 LOC (1%) 9 files
other2377 LOC (4%) 51 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
pyi
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 489 files match defined criteria (43,191 LOC, 100.0% vs. main code):
    • 48 *.go files (10,395 LOC)
    • 137 *.java files (8,516 LOC)
    • 56 *.cpp files (6,766 LOC)
    • 16 *.rs files (4,229 LOC)
    • 72 *.cs files (4,091 LOC)
    • 109 *.h files (3,776 LOC)
    • 27 *.py files (2,332 LOC)
    • 6 *.proto files (1,562 LOC)
    • 3 *.cmake files (574 LOC)
    • 2 *.pyi files (271 LOC)
    • 5 *.xml files (177 LOC)
    • 1 *.bzl files (172 LOC)
    • 4 *.php files (166 LOC)
    • 2 *.toml files (114 LOC)
    • 1 *.yml files (50 LOC)
  • " *.go" is biggest, containing 24.07% of LOC.
  • " *.yml" is smallest, containing 0.12% of LOC.


*.go10395 LOC (24%) 48 files
*.java8516 LOC (19%) 137 files
*.cpp6766 LOC (15%) 56 files
*.rs4229 LOC (9%) 16 files
*.cs4091 LOC (9%) 72 files
*.h3776 LOC (8%) 109 files
*.py2332 LOC (5%) 27 files
*.proto1562 LOC (3%) 6 files
*.cmake574 LOC (1%) 3 files
*.pyi271 LOC (<1%) 2 files
*.xml177 LOC (<1%) 5 files
*.bzl172 LOC (<1%) 1 file
*.php166 LOC (<1%) 4 files
*.toml114 LOC (<1%) 2 files
*.yml50 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/[Tt]est/.*".
  • 75 files match defined criteria (6,300 LOC, 14.6% vs. main code):
    • 36 *.java files (3,963 LOC)
    • 22 *.cpp files (940 LOC)
    • 6 *.go files (933 LOC)
    • 8 *.cs files (441 LOC)
    • 1 *.csproj files (16 LOC)
    • 2 *.py files (7 LOC)
  • " *.java" is biggest, containing 62.9% of LOC.
  • " *.py" is smallest, containing 0.11% of LOC.


*.java3963 LOC (62%) 36 files
*.cpp940 LOC (14%) 22 files
*.go933 LOC (14%) 6 files
*.cs441 LOC (7%) 8 files
*.csproj16 LOC (<1%) 1 file
*.py7 LOC (<1%) 2 files
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.](py|java|h|cc|cpp|m|rb|php)" AND any line of content like ".*Generated by the protocol buffer compiler[.][ ]+DO NOT EDIT[!].*".
  • 68 files match defined criteria (3,815 LOC, 8.8% vs. main code):
    • 67 *.php files (3,796 LOC)
    • 1 *.py files (19 LOC)
  • " *.php" is biggest, containing 99.5% of LOC.
  • " *.py" is smallest, containing 0.5% of LOC.


*.php3796 LOC (99%) 67 files
*.py19 LOC (<1%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]gitmodules".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]csproj".
  • 9 files match defined criteria (751 LOC, 1.7% vs. main code):
    • 4 *.xml files (693 LOC)
    • 1 *.csproj files (36 LOC)
    • 4 *.sh files (22 LOC)
  • " *.xml" is biggest, containing 92.28% of LOC.
  • " *.sh" is smallest, containing 2.93% of LOC.


*.xml693 LOC (92%) 4 files
*.csproj36 LOC (4%) 1 file
*.sh22 LOC (2%) 4 files
Other Code
txt
mod
properties
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/go[.]mod".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*/checkstyle[.]xml".
    • files with paths like ".*/checkstyle.*".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
  • 51 files match defined criteria (2,377 LOC, 5.5% vs. main code):
    • 7 *.cpp files (607 LOC)
    • 11 *.md files (561 LOC)
    • 5 *.rs files (334 LOC)
    • 7 *.cs files (308 LOC)
    • 16 *.txt files (253 LOC)
    • 1 *.xml files (222 LOC)
    • 1 *.mod files (51 LOC)
    • 1 *.json files (16 LOC)
    • 1 *.properties files (15 LOC)
    • 1 *.csproj files (10 LOC)
  • " *.cpp" is biggest, containing 25.54% of LOC.
  • " *.csproj" is smallest, containing 0.42% of LOC.


*.cpp607 LOC (25%) 7 files
*.md561 LOC (23%) 11 files
*.rs334 LOC (14%) 5 files
*.cs308 LOC (12%) 7 files
*.txt253 LOC (10%) 16 files
*.xml222 LOC (9%) 1 file
*.mod51 LOC (2%) 1 file
*.json16 LOC (<1%) 1 file
*.properties15 LOC (<1%) 1 file
*.csproj10 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2023-08-11 02:32