Changes for page Software Quality
Last modified by Benjamin Fischer on 2025/09/23 15:46
From version 1.4
edited by Benjamin Fischer
on 2025/09/23 15:21
on 2025/09/23 15:21
Change comment:
There is no comment for this version
To version 2.1
edited by Benjamin Fischer
on 2025/09/23 15:46
on 2025/09/23 15:46
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,7 +1,33 @@ 1 1 There are several tools that can assist developers to increase the quality of the software produced, some of which are outlined here for introduction purposes. 2 2 3 3 = Python = 4 +== Linters == 5 +* [[Pylint>>https://www.pylint.org]] is the classic tool and has been around for a long time. It’s very thorough, can be configured and customised in many ways if needed and is straightforward to use. It has a reputation for being quite verbose in its outputs. 6 +* [[Ruff>>https://docs.astral.sh/ruff/]] is much newer and is gaining in popularity because it runs very quickly and is a bit simpler. It is probably a bit less thorough and configurable than Pylint, but it’s a popular and proven tool. 7 +* [[Radon>>https://radon.readthedocs.io]] is more specialist but is a very good metrics tool specifically for Python. Many projects add use of Radon alongside Pylint or Ruff. 8 +* There are a number of others too including Flake8 and Black that are quite widely used. But starting with Pylint or Ruff is probably the right thing to do. 4 4 5 -* [[pylint>>https://www.pylint.org/]]: a classic, very thorough, reputation for verbose output 6 -* Ruff: 7 -** 10 +== Commercial IDEs == 11 +Commercially there are also Python specific IDEs (development environments) like [[Pycharm>>https://www.jetbrains.com/pycharm/]] that integrate these tools via plugins and also provide their own sophisticated code quality checks and automated remediation in many cases. People with academic email addresses can generally get [[Pycharm for free subject>>https://www.jetbrains.com/academy/student-pack/]] to certain conditions on how it is used. 12 + 13 += C++ = 14 +== Linters == 15 +* [[Clang-tidy>>https://clang.llvm.org/extra/clang-tidy/]]: part of the “clang” compiler suite, which checks for code quality and C++ conventions in the code 16 +* [[Clang-format>>https://clang.llvm.org/docs/ClangFormat.html]] which formats C++ into the standard format (and can be tailored for site specific preferences). 17 +* [[Cppcheck>>http://cppcheck.net/]], which is independent of Clang and very good at finding C++ specific bugs (memory problems, null pointers, …). (Commercial version available too). 18 +* [[OCLint>>https://oclint.org/]], which is again independent and is very good at checking for design level code quality (long functions, complexity, maintainability problems, ….). 19 + 20 +=== Commercial === 21 +* [[PVS-Studio>>https://pvs-studio.com/]], a long standing commercial static analyser. 22 +* [[CppCheck>>https://www.cppcheck.com/]]’s commercial version 23 +* [[SonarQube C++>>https://www.sonarsource.com/knowledge/languages/cpp/]], a very comprehensive, and potentially expensive, C++ analysis suite. 24 + 25 +== Commercial IDEs == 26 +Again, you have commercial IDEs including CLion, which is part of the [[JetBrains Student Pack>>https://www.jetbrains.com/academy/student-pack/]] linked above, and Microsoft Visual Studio, that they might well use already. 27 + 28 + 29 + 30 + 31 + 32 += Credits = 33 +The majority of this list was made possible thanks to the extensive input of [[Eoin Woods>>https://www.eoinwoods.info/]].