Hello, Ivan. We can create checkstyle rule to enforce usage of abbreviations. Internal/public code differs by package.
PoC of rule [1] [1] https://github.com/apache/ignite/pull/9153 > 17 июня 2021 г., в 07:01, Ivan Pavlukhin <vololo...@gmail.com> написал(а): > > Nikita, > > Do you have a plan in your mind how to make Ignite codebase consistent? > > AFAIR, we had it intentionally inconsistent for a long time at least > for one sake: for internal code we used special conventions (e.g. > abbreviations, shorten getters) and common Java conventions for public > API and examples (e.g. no abbreviations and usual getters). > > 2021-06-16 23:37 GMT+03:00, Nikita Ivanov <niva...@gridgain.com>: >> Consistency is what makes it easier to contribute to the project and >> attract new members. Consistency implies strong, well defined and >> universally enforced rules. Just because we have some individuals who >> are lazy or inexperienced - it does not mean that the entire project >> should relax the basic-level engineering discipline. >> >> On a personal node - nothing screams "immaturity" louder that a code >> that uses inconsistent naming, commenting, code style & organization, >> etc. >> -- >> Nikita Ivanov >> >>> On Wed, Jun 16, 2021 at 5:56 AM Andrey Gura <ag...@apache.org> wrote: >>> >>> Hi, >>> >>> I understand that this rule seems too strict or may be weird. But >>> removing the rule could lead to review comments like "use future >>> instead of fut". So my proposal is to change rule from "required" to >>> "recommended". >>> >>> On Wed, Jun 16, 2021 at 2:49 PM Valentin Kulichenko >>> <valentin.kuliche...@gmail.com> wrote: >>>> >>>> Konstantin, thanks for chiming in. >>>> >>>> That's exactly my concern. Overformalization is generally not a good >>>> thing. >>>> Someone used "mess" to abbreviate "message"? That is surely not a good >>>> coding style, but that's what code reviews are for. I believe that our >>>> committers are more than capable of identifying such issues. >>>> >>>> At the same time, with the current rules, we are *forced* to use >>>> abbreviations like "locAddrGrpMgr", whether we like it or not. All it >>>> does >>>> is makes it harder to contribute to Ignite, without providing any clear >>>> value. >>>> >>>> -Val >>>> >>>> On Thu, Jun 10, 2021 at 9:46 AM Konstantin Orlov <kor...@gridgain.com> >>>> wrote: >>>> >>>>> +1 for making this optional >>>>> >>>>> Common abbreviation rules is good for sure, but sometimes I getting >>>>> sick >>>>> of all those locAddrGrpMgr. >>>>> >>>>> >>>>> -- >>>>> Regards, >>>>> Konstantin Orlov >>>>> >>>>> >>>>> >>>>> >>>>>> On 7 Jun 2021, at 14:31, Nikolay Izhikov <nizhi...@apache.org> >>>>>> wrote: >>>>>> >>>>>> Hello, Anton, Alexei. >>>>>> >>>>>> Thanks for the feedback. >>>>>> >>>>>> Personally, I’m pretty happy current abbreviation rules too. >>>>>> Let see what we can do to make our codebase even more consistent. >>>>>> >>>>>>> 7 июня 2021 г., в 13:23, Alexei Scherbakov < >>>>> alexey.scherbak...@gmail.com> написал(а): >>>>>>> >>>>>>> -1 >>>>>>> Common abbrevs add quality to the code. >>>>>>> >>>>>>> пн, 7 июн. 2021 г. в 12:38, Anton Vinogradov <a...@apache.org>: >>>>>>> >>>>>>>> -1 here. >>>>>>>> We can fix the code and set up the rule. >>>>>>>> >>>>>>>> This will help to prevent having a weird abbreviation like "mess" >>>>>>>> (from >>>>>>>> "message") or "ign" (from "Ignite"). >>>>>>>> Also, the abbreviations list (hardcoded at IDEA plugin) allows to >>>>>>>> have >>>>> same >>>>>>>> names across the whole code, this should simplify the reading. >>>>>>>> >>>>>>>> On Sat, Jun 5, 2021 at 10:49 PM Valentin Kulichenko < >>>>>>>> valentin.kuliche...@gmail.com> wrote: >>>>>>>> >>>>>>>>> I also support removing this requirement. It’s not the first >>>>>>>>> time >>>>> someone >>>>>>>>> brings this up, and so far we haven’t been able to fix it. Not >>>>>>>>> worth >>>>> it >>>>>>>> in >>>>>>>>> my view. >>>>>>>>> >>>>>>>>> -Val >>>>>>>>> >>>>>>>>> On Sat, Jun 5, 2021 at 11:54 AM Nikolay Izhikov >>>>>>>>> <nizhi...@apache.org> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hello, guys. >>>>>>>>>> >>>>>>>>>> Thanks for the feedback. >>>>>>>>>> >>>>>>>>>> Dmitry, >>>>>>>>>> >>>>>>>>>>> Manual rule enforcement saves a couple of symbols in code >>>>>>>>>> >>>>>>>>>> I’m talking about automatic check. >>>>>>>>>> We can implement it easily. >>>>>>>>>> So, if we decide to keep this rule all we need is to fix >>>>>>>>>> current >>>>>>>>>> violations (several thousand!). >>>>>>>>>> After it, checkstyle will automatically enforce this rule. >>>>>>>>>> As you may know, currently, any PR checked according to our >>>>> checkstyle >>>>>>>>>> rules. >>>>>>>>>> Please, take a look at little green check sign after PR name. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> 5 июня 2021 г., в 00:57, Dmitry Pavlov <dpav...@apache.org> >>>>>>>>> написал(а): >>>>>>>>>>> >>>>>>>>>>> +1 for removal. Cnt and count both seem to be fine. >>>>>>>>>>> >>>>>>>>>>> Manual rule enforcement saves a couple of symbols in code, but >>>>>>>> requires >>>>>>>>>> some time from both contributor and reviewer. >>>>>>>>>>> >>>>>>>>>>> Sincerely, >>>>>>>>>>> Dmitriy Pavlov >>>>>>>>>>> >>>>>>>>>>> On 2021/06/04 19:18:37, Pavel Tupitsyn <ptupit...@apache.org> >>>>> wrote: >>>>>>>>>>>> In my opinion, we should remove this rule. >>>>>>>>>>>> Looks like a waste of time. freq or frequency, cnt or count, >>>>>>>>>>>> it is >>>>>>>>> fine >>>>>>>>>>>> either way. >>>>>>>>>>>> >>>>>>>>>>>> On Fri, Jun 4, 2021 at 7:39 PM Nikolay Izhikov < >>>>> nizhi...@apache.org >>>>>>>>> >>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hello, Igniters. >>>>>>>>>>>>> >>>>>>>>>>>>> Right now, we have the rule to use some predefined list of >>>>>>>>> abbrevation >>>>>>>>>> for >>>>>>>>>>>>> variable names [1]. >>>>>>>>>>>>> Some of the reviewers ask to follow this rule strictly. >>>>>>>>>>>>> >>>>>>>>>>>>>> It is required to use abbreviated form for code >>>>>>>>>>>>>> consistency. >>>>>>>>>>>>> >>>>>>>>>>>>> I tried to implement this rule in form of checkstyle check >>>>>>>>>>>>> [2] and >>>>>>>> it >>>>>>>>>>>>> seems like many of use doesn’t follow this requirement. >>>>>>>>>>>>> My check found 4124 violation in core module. >>>>>>>>>>>>> >>>>>>>>>>>>> Should we make this rule optional in documentation or should >>>>>>>>>>>>> we >>>>>>>>> remove >>>>>>>>>> it >>>>>>>>>>>>> completely? >>>>>>>>>>>>> Or should someone proceed and fix all the violations? >>>>>>>>>>>>> >>>>>>>>>>>>> WDYT? >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Example of output: >>>>>>>>>>>>> ``` >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java:94: >>>>>>>>>>>>> Abbrevation should be used for CACHE_NAME_LOCAL_ATOMIC! >>>>>>>>>>>>> Please, >>>>> use >>>>>>>>>> loc, >>>>>>>>>>>>> instead of LOCAL [IgniteAbbrevationsRule] >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java:97: >>>>>>>>>>>>> Abbrevation should be used for CACHE_NAME_LOCAL_TX! Please, >>>>>>>>>>>>> use >>>>>>>> loc, >>>>>>>>>>>>> instead of LOCAL [IgniteAbbrevationsRule] >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java:264: >>>>>>>>>>>>> Abbrevation should be used for checkpointManager! Please, use >>>>>>>>>>>>> mgr, >>>>>>>>>> instead >>>>>>>>>>>>> of Manager [IgniteAbbrevationsRule] >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsPartitionPreloadTest.java:63: >>>>>>>>>>>>> Abbrevation should be used for DEFAULT_REGION! Please, use >>>>>>>>>>>>> dflt, >>>>>>>>>> instead of >>>>>>>>>>>>> DEFAULT [IgniteAbbrevationsRule] >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWholeClusterRestartTest.java:47: >>>>>>>>>>>>> Abbrevation should be used for ENTRIES_COUNT! Please, use >>>>>>>>>>>>> cnt, >>>>>>>>> instead >>>>>>>>>> of >>>>>>>>>>>>> COUNT [IgniteAbbrevationsRule] >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsRebalancingOnNotStableTopologyTest.java:49: >>>>>>>>>>>>> Abbrevation should be used for CHECKPOINT_FREQUENCY! Please, >>>>>>>>>>>>> use >>>>>>>>> freq, >>>>>>>>>>>>> instead of FREQUENCY [IgniteAbbrevationsRule] >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsTransactionsHangTest.java:75: >>>>>>>>>>>>> Abbrevation should be used for MAX_KEY_COUNT! Please, use >>>>>>>>>>>>> cnt, >>>>>>>>> instead >>>>>>>>>> of >>>>>>>>>>>>> COUNT [IgniteAbbrevationsRule] >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsTransactionsHangTest.java:78: >>>>>>>>>>>>> Abbrevation should be used for CHECKPOINT_FREQUENCY! Please, >>>>>>>>>>>>> use >>>>>>>>> freq, >>>>>>>>>>>>> instead of FREQUENCY [IgniteAbbrevationsRule] >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/SlowHistoricalRebalanceSmallHistoryTest.java:57: >>>>>>>>>>>>> Abbrevation should be used for SUPPLY_MESSAGE_LATCH! Please, >>>>>>>>>>>>> use >>>>>>>> msg, >>>>>>>>>>>>> instead of MESSAGE [IgniteAbbrevationsRule] >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteLogicalRecoveryTest.java:74: >>>>>>>>>>>>> Abbrevation should be used for SHARED_GROUP_NAME! Please, use >>>>>>>>>>>>> grp, >>>>>>>>>> instead >>>>>>>>>>>>> of GROUP [IgniteAbbrevationsRule] >>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteLogicalRecoveryTest.java:200: >>>>>>>>>>>>> Abbrevation should be used for cacheLoader! Please, use ldr, >>>>>>>> instead >>>>>>>>> of >>>>>>>>>>>>> Loader [IgniteAbbrevationsRule] >>>>>>>>>>>>> ``` >>>>>>>>>>>>> >>>>>>>>>>>>> [1] >>>>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>> https://cwiki.apache.org/confluence/display/IGNITE/Abbreviation+Rules#AbbreviationRules-VariableAbbreviation >>>>>>>>>>>>> [2] https://github.com/apache/ignite/pull/9153 >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> Best regards, >>>>>>> Alexei Scherbakov >>>>>> >>>>> >>>>> >> > > > -- > > Best regards, > Ivan Pavlukhin