We largely follow Hadoop coding guidelines:
@authorJavadoc tag. (Be modest ! :-))
We largely follow the coding guidelines of the .NET Core open source project.
We require to add comments to generate proper JavaDoc and XMLDoc documentation. In addition to this requirement, we encourage committers to add comments (if needed) to make code easier to understand.
We strive not to break source compatibility between versions of REEF. Instead, we mark APIs as deprecated or obsolete in one version, and then remove it in the next. When marking something as deprecated:
REEF favors immutable objects over mutable ones. When you browse the code base, you see that there is an enormous number of
readonly modifiers used. The reason for this stems from the distributed and parallel nature of REEF: What cannot be changed doesn't have to be guarded with locks. Hence, immutability is an excellent tool to achieve both thread safety and performance. Following this line of thought, we arrive at the following guidelines:
finalinstance variables, consider breaking the class in two to limit the lock complexity.