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

Reply via email to