Hi, Val. This is an extremely welcome change, thank you! On Fri, Aug 20, 2021 at 12:17 AM Valentin Kulichenko < valentin.kuliche...@gmail.com> wrote:
> Igniters, > > I would like to discuss a potential change to the coding guidelines for > Ignite 3. Currently, we're using the existing guidelines inherited from > Ignite 2, which are described here: > https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines > > Current guidelines, however, exist for many years and have several issues. > They are cumbersome, carry a lot of legacy stuff, and can't be automated. > Every now and then, they seem to cause questions and confusion. > > While it's hard to make drastic changes in Ignite 2, we still have a great > opportunity to update the guidelines in Ignite 3. I would identify two > major goals here: > > 1. Simplification. Having too many rules and restrictions tend to > complicate development rather than providing any value. We should come > up > with a minimum set of rules and then make amends one by one if needed. > 2. The ability for automation. I hold a strong belief that code style > checking has to become a part of the build. Therefore, we need to make > sure > that any rule that ends up in the guideline can be automatically > verified. > > I propose the following process to define the new guideline: > > 1. Use Google code style as the starting point: > https://google.github.io/styleguide/javaguide.html > 2. Replace the 100 column limit with 140. The latter is the value we > already use in Ignite 2, and it seems to be more reasonable, in my > opinion. > 3. Use 4 spaces block indentation and 8 spaces for continuation (as > opposed to 2 and 4). Nothing wrong with 2 spaces, in my view, but 4 > spaces > should provide a smoother transition, as we're really used to this > style. > 4. For any other changes, initiate separate discussions going forward. > > Several reasons why I specifically propose Google style: > > 1. This is essentially the standard for many projects. I don't think > there is a need for us to reinvent the wheel. > 2. It's minimalistic and developer-friendly. No overcomplication. > 3. (probably the most important) It comes with all the required tools > and configurations for automation (e.g., here is the config for IDEA: > https://github.com/google/error-prone/blob/master/.idea/GoogleStyle.xml > ) > > Please let me know what you think. If there are no objections, I will start > the process. > > -Val > -- With regards, Aleksandr Polovtcev