+1 On Fri, 3 Jun 2022 at 12:26, Derek Chen-Becker <de...@chen-becker.org> wrote:
> +1 to publishing. We should consider it a living document, not something > that we need to necessarily set in stone :) > > Cheers, > > Derek > > On Fri, Jun 3, 2022 at 10:05 AM bened...@apache.org <bened...@apache.org> > wrote: > >> I always ask if we’re ready, get a few acks, then one or two new queries >> come out of the woodwork. >> >> >> >> Perhaps I will just publish, and we can start addressing these queries in >> a follow-up process. >> >> >> >> *From: *Dinesh Joshi <djo...@apache.org> >> *Date: *Friday, 3 June 2022 at 16:57 >> *To: *dev@cassandra.apache.org <dev@cassandra.apache.org> >> *Subject: *Re: [DISCUSS] Change code style guide WRT to @Override in >> subclasses / interface implementations >> >> I don’t think the guide has yet been published to the official website, >> has it? Maybe we should just get it out there. >> >> On Jun 3, 2022, at 8:54 AM, bened...@apache.org wrote: >> >> >> >> Somebody hasn’t looked at the new style guide*, the conversation for >> which keeps rolling on and so it never quite gets promoted to the wiki. It >> says: >> >> >> >> Always use @Override annotations when implementing abstract or interface >> methods or overriding a parent method. >> >> >> >> * >> https://docs.google.com/document/d/1sjw0crb0clQin2tMgZLt_ob4hYfLJYaU4lRX722htTo >> >> >> >> >> >> *From: *Josh McKenzie <jmcken...@apache.org> >> *Date: *Friday, 3 June 2022 at 16:14 >> *To: *dev@cassandra.apache.org <dev@cassandra.apache.org> >> *Subject: *Re: [DISCUSS] Change code style guide WRT to @Override in >> subclasses / interface implementations >> >> > Avoid redundant @Override annotations when implementing abstract or >> interface methods. >> >> I'd argue they're not redundant. We're humans and infinitely fallible. :) >> >> >> >> +1 to changing this to just always annotate for all the reasons you >> enumerate. >> >> >> >> On Fri, Jun 3, 2022, at 10:16 AM, Alex Petrov wrote: >> >> Right, my thinking matches what David has mentioned: >> >> >> >> https://issues.apache.org/jira/browse/CASSANDRA-16096 >> >> https://lists.apache.org/thread/mkskwxn921t5bkfmnog032qvnyjk82t7 >> >> >> >> I'll make sure to update the style guide itself, too, since it looks like >> there was a vote, and intellij file is updated, just need to fixup the >> website. >> >> >> >> >> >> On Fri, Jun 3, 2022, at 4:02 PM, Dinesh Joshi wrote: >> >> So your proposal is to always add override annotation? Or are there >> situations where you don’t want to add them? >> >> >> >> >> >> On Jun 3, 2022, at 6:53 AM, Alex Petrov <al...@coffeenco.de> wrote: >> >> >> >> Hi everyone, >> >> >> >> In our style guide [1], we have a following statement: >> >> >> >> > Avoid redundant @Override annotations when implementing abstract or >> interface methods. >> >> >> >> I'd like to suggest we change this. >> >> >> >> @Override annotation in subclasses might be annoying when you're writing >> the code for the first time, or reading already familiar code, but when >> you're working on large changes and have complex class hierarchies, or >> multiple overloads for the method, it's easy to overlook methods that were >> not marked as overrides, and leave a wrong method in the code, or >> misinterpret the call chain. >> >> >> >> I think @Override annotations are extremely useful and serve their >> purpose, especially when refactoring: I can change the interface, and will >> not only be pointed to all classes that do not implement the new version >> (which compiler will do anyways), but also will be pointed to the classes >> that, to the human eye, may look like they're overriding the method, but in >> fact they do not. >> >> >> >> More concrete example: there is an abstract class between the interface >> and a concrete implementation: you change the interface, modify the method >> in the abstract class, but then forget to change the signature in the >> overriden implementation of the concrete class, and get a behaviour from >> the abstract class rather then concrete implementation. >> >> >> >> The question is not about taste or code aesthetics, but about making >> maintaining a large codebase that has a lot of complexity and that was >> evolving over many years simpler. If you could provide an example where >> @Override would be counter-productive or overly burdensome, we could >> compare this cost of maintenance with the cost of potential errors. >> >> >> >> Thank you, >> >> --Alex >> >> >> >> [1] https://cassandra.apache.org/_/development/code_style.html >> >> >> >> >> >> > > -- > +---------------------------------------------------------------+ > | Derek Chen-Becker | > | GPG Key available at https://keybase.io/dchenbecker and | > | https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org | > | Fngrprnt: EB8A 6480 F0A3 C8EB C1E7 7F42 AFC5 AFEE 96E4 6ACC | > +---------------------------------------------------------------+ > >