Enforced validation doesn't guarantee code consistency. No validation in the world prevent me from typing manually "mess" instead of "msg"/"message" or "svc" instead of "srvc"/"service" (btw "svc" is more common imo).
And the fact that someone name a variable "count" instead of "cnt" doesn't make the whole project immature. -- Regards, Konstantin Orlov > On 17 Jun 2021, at 08:34, Ivan Pavlukhin <vololo...@gmail.com> wrote: > > Hi Nikolay, > > Thanks, it is rather interesting. > > Do we all agree that using different conventions for different code > packages does not break "consistency"? Or did I get something wrong? > > 2021-06-17 7:12 GMT+03:00, Николай Ижиков <nizhi...@apache.org>: >> 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 >> > > > -- > > Best regards, > Ivan Pavlukhin