
SOKRATES
Polyglot source code examination tool
HOME
INSTALL & USE
CONFIGURATION
EXAMPLES
FEATURES
ARTICLES
"Talk is expensive. Show me the code."
― Željko Obrenović
What is Sokrates?
- Sokrates is a tool built by Željko Obrenović. It implements his vision on how to document and analyze software architectures of complex systems.
- Sokrates is provides a pragmatic, inexpensive way to extract rich data from any source code repositories. No need for long interviews and workshops. Just show the code.
- Sokrates can help you to understand your code by making visible the size, complexity, and coupling of software, as well all people interactions and team topologies.
- Sokrates borrows ideas from code spelunking tool, in particular grep, adding structure on top of regex source code searches.
Examples: Sokrates Analyses of Big Projects and Whole GitHub Organizations
NOTE: If you want to perform similar landscape analyses of all repositories in a GitHub organization, take a look at this project github.com/zeljkoobrenovic/sokrates-oss-landscape-analysis
Examples: Sokrates Analyses of Individual Repositories
The Sokrates Book: A Collections of Articles on Sokrates
- I am working on a book about Sokrates: Examined Line: The Art of Source Code Analysis with Sokrates.
- You can read the draft of the book online.
- The book is about 70% complete (an not polished).
Sokrates in 5 minutes
See a 5 minutes video on using Sokrates CLI to analyze source code of Sokrates:
See a 5 minutes video on using Sokrates Explorer to analyze source code of JUnit4:
Background
Sokrates looks on the source code from a perspective of maintenance, making visible the size, complexity and coupling of software.
For more details see my O'Reilly Video Training (from my time at Software Improvement Group): Building Maintainable Software (4 hours), and O'Reilly Webcast: Building Maintainable Software (1 hour, together with Rob van der Leek).
The fragment of my training video on building maintainable software is freely avaliable at Youtube: