twitter / finagle
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
properties
ini
txt
lua
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.

main89358 LOC (47%) 1,284 files
test87536 LOC (46%) 783 files
generated0 LOC (0%) 0 files
build and deployment67 LOC (<1%) 3 files
other12743 LOC (6%) 93 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
lua
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 1284 files match defined criteria (89,358 LOC, 100.0% vs. main code):
    • 1,183 *.scala files (78,571 LOC)
    • 63 *.java files (8,187 LOC)
    • 7 *.sbt files (855 LOC)
    • 8 *.rb files (639 LOC)
    • 4 *.py files (278 LOC)
    • 1 *.lua files (265 LOC)
    • 7 *.html files (220 LOC)
    • 6 *.thrift files (174 LOC)
    • 2 *.css files (119 LOC)
    • 1 *.gemspec files (19 LOC)
    • 1 *.bash files (18 LOC)
    • 1 *.xml files (13 LOC)
  • " *.scala" is biggest, containing 87.93% of LOC.
  • " *.xml" is smallest, containing 0.01% of LOC.


*.scala78571 LOC (87%) 1,183 files
*.java8187 LOC (9%) 63 files
*.sbt855 LOC (<1%) 7 files
*.rb639 LOC (<1%) 8 files
*.py278 LOC (<1%) 4 files
*.lua265 LOC (<1%) 1 file
*.html220 LOC (<1%) 7 files
*.thrift174 LOC (<1%) 6 files
*.css119 LOC (<1%) 2 files
*.gemspec19 LOC (<1%) 1 file
*.bash18 LOC (<1%) 1 file
*.xml13 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*[.][Tt]ests[.].*".
    • files with paths like ".*[.]tests[.].*".
  • 783 files match defined criteria (87,536 LOC, 98.0% vs. main code):
    • 707 *.scala files (84,883 LOC)
    • 64 *.java files (2,446 LOC)
    • 6 *.thrift files (110 LOC)
    • 3 *.rb files (80 LOC)
    • 3 *.sql files (17 LOC)
  • " *.scala" is biggest, containing 96.97% of LOC.
  • " *.sql" is smallest, containing 0.02% of LOC.


*.scala84883 LOC (96%) 707 files
*.java2446 LOC (2%) 64 files
*.thrift110 LOC (<1%) 6 files
*.rb80 LOC (<1%) 3 files
*.sql17 LOC (<1%) 3 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
  • 3 files match defined criteria (67 LOC, 0.1% vs. main code). All matches are in *.sh files.


*.sh67 LOC (100%) 3 files
Other Code
ini
properties
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*[.]json".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]properties".
    • files with paths like ".*[.]ini".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
    • files with paths like ".*[.]svg".
  • 93 files match defined criteria (12,743 LOC, 14.3% vs. main code):
    • 55 *.rst files (11,803 LOC)
    • 16 *.md files (580 LOC)
    • 2 *.svg files (187 LOC)
    • 17 *.json files (161 LOC)
    • 1 *.ini files (10 LOC)
    • 2 *.properties files (2 LOC)
  • " *.rst" is biggest, containing 92.62% of LOC.
  • " *.properties" is smallest, containing 0.02% of LOC.


*.rst11803 LOC (92%) 55 files
*.md580 LOC (4%) 16 files
*.svg187 LOC (1%) 2 files
*.json161 LOC (1%) 17 files
*.ini10 LOC (<1%) 1 file
*.properties2 LOC (<1%) 2 files
Analyzers
Info about analyzers used for source code examinations.


2025-01-17 11:59