Does Qurrex team have its own mechanism or protocol for the documentation of the cryptocurrency exchange system source code? How does Qurrex team review and manage the code?
We use YAML schemes of messages (see question 5 answer for more details) for generating documentation; also some self-documented formats (such as Swagger definitions that are used for some APIs).
We manage our code by using Git version control system. Our team generally uses gitflow branching model.
For code review procedures we use Github web-based code review system, team leads and architects collegially review code of core services of the exchange. Also we use continuous integration instruments, such as Jenkins, which runs automatic regression tests after each build and also aids in improving code quality.
Middleware: documenting code
We document our software design, business logic and code patterns in Atlassian Confluence.
We use widely Command pattern in both middleware and presentation layer. Each command is self-describing by using standard and custom .NET attributes. Again, we use attributes for software control variables. We use attribute-based auto code generation.
Middleware administration website summarizes commands registry and provides more detailed description for the commands / Data Transfer Objects.
Middleware: reviewing code
We have included Code Review in Atlassian Jira workflow. Our software architect / lead developer performs code review. Besides, we consider Visual Studio code metrics. The most significant one for us is a Maintainability Index (Carnegie Mellon Software Engineering Institute). The worst MI among our software projects (pieces of the middleware code base) is 62 with 78 in average.