Dear all,

Over the last year, much of the NaviServer source code basis was 
changed. Part of the changes were to extend functionality, improve 
performance, reduce the number of bugs, but most of the changes were 
actually to remove code smells/issues for on the NaviServer code bases. 
In the last years, the quality of static analysis tools (such as 
cppcheck, clang static checker, pclint, ...) has improved, finding more 
potential issues. However, getting these tools installed, and run the
code-bases on it, keeping track of fixed/new issues is a substantial 
amount of work.

Thankfully, Maurizio Martignano set up a website 
( based on SonarQube, which collects the 
results of various tools and provides means to locate certain code 
smells efficiently. Based on the results on sonarsrv, we could reduce 
the number of issues/code smells from several thousand to serval 
hundreds. We started out with more than 10.000 issues about two years 
ago, which was more than in AOLserver (due to a more differentiated 
typing, trying to use posix-style types internally). By using the code 
static code checkers, the code basis can be made more strict and to make 
certain properties of the code  explicit (e.g. adding "const" 
declarations, adding assertions, reducing the number of implicit 
conversions). By making assumptions explicit, the code bears less 
surprises in boundary cases. Other changes were done to improve 
maintainability (e.g. reducing the scope of variables) and to ease code 
comprehension (e.g. reducing the number of return statements per 
functions, ideally to 1; improving comment ratio, reducing deprecated 
code, etc.).

If one checks the results on sonarsrv, one can see that there are still 
many open issue. Furthermore, one can expect that the number of reported 
issues will rise even without code changes, when the static checkers 
improve. But altogether, i would expect, that the number of changes 
between releases will reduce.

All the best

-gustaf neumann

4.99.11 -> 4.99.12:  195 files changed, 20265 insertions(+), 13421 deletions(-)
4.99.10 -> 4.99.11:  156 files changed,  8613 insertions(+),  3142 deletions(-)
4.99.9  -> 4.99.10:   32 files changed,   404 insertions(+),   123 deletions(-)
4.99.8  -> 4.99.9:   146 files changed,  5595 insertions(+),  4389 deletions(-)
4.99.7  -> 4.99.8:    55 files changed,  1088 insertions(+),   527 deletions(-)
4.99.6  -> 4.99.7:   216 files changed, 20967 insertions(+), 13287 deletions(-)
4.99.5  -> 4.99.6:   198 files changed,  4972 insertions(+),  2657 deletions(-)

naviserver-devel mailing list

Reply via email to