Skip to content

Instantly share code, notes, and snippets.

@hasantayyar
Last active January 6, 2019 15:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hasantayyar/4e7aaa1a23d86569407ce2d3dc7461d1 to your computer and use it in GitHub Desktop.
Save hasantayyar/4e7aaa1a23d86569407ce2d3dc7461d1 to your computer and use it in GitHub Desktop.
# list code lines
find . -type f -name "*.ts" -exec cat {} + | sort -u
# count them
find . -type f -name "*.ts" -exec cat {} + | sort -u | wc -l
ULOC(7) FreeBSD Miscellaneous Information Manual ULOC(7)
NAME
ULOC – unique lines of code
DESCRIPTION
There are many tools available which measure SLOC: source lines of code.
These tools are strangely complex for what they intend to do, which is to
estimate the relative sizes of projects. They perform some amount of
parsing in order to discount comments in various languages, and for
reasons unknown each format their ouput in some oddly encumbered way.
I propose a much simpler method of estimating relative sizes of projects:
unique lines of code. ULOC can be calculated with standard tools as
follows:
sort -u *.h *.c | wc -l
In my opinion, the number this produces should be a better estimate of
the complexity of a project. Compared to SLOC, not only are blank lines
discounted, but so are close-brace lines and other repetitive code such
as common includes. On the other hand, ULOC counts comments, which
require just as much maintenance as the code around them does, while
avoiding inflating the result with license headers which appear in every
file, for example.
It can also be amusing to read all of your code sorted alphabetically.
AUTHORS
C. McEnroe <june@causal.agency>
This document is produced from mdoc(7) source available from Code Toilet:
https://code.causal.agency/june/text.causal.agency
CAVEATS
Estimates such as these should not be used for decision making as if they
were data.
Causal Agency December 14, 2018 Causal Agency
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment