#364148 - 09/06/2015 16:18
Coding standards. Periods at end of *some* comments only?
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
At my new job, they are very particular about coding standards, and in code reviews I'll be given a comment if my code doesn't follow their standards. I think think this great actually, because their standards are clear, and all of the standards make for better code and more readable/maintainable code. But there's one standard which confuses me, and it seems counter intuitive, so I keep messing it up. Can someone explain to me the reason that someone might adopt such a coding standard, what the psychological reason might be for it?
/// <summary>
/// Removes the file.
/// </summary>
public static void RemoveFile()
{
try
{
// Check if the old file exists
if (File.Exists("file.txt"))
{
// Delete old file from disc
File.Delete("file.txt")
...
The standard is: - If you have an HTML comment for a class/method/property using the triple slash, your sentence MUST end with a period. - If you have an inline comment for miscellaneous body code, using the double slash, then your sentence MUST NOT end with a period. I keep messing this up because I like to type proper English sentences (well, as proper as we can get in America anyway). If there is a way I could wrap my brain around WHY, then maybe I'd mess it up less often. Any ideas?
|
Top
|
|
|
|
#364149 - 09/06/2015 17:14
Re: Coding standards. Periods at end of *some* comments only?
[Re: tfabris]
|
old hand
Registered: 27/02/2003
Posts: 777
Loc: Washington, DC metro
|
Without any parsing (I haven't programmed in ages), perhaps it's just an arbitrary internal check bit?
-jk
|
Top
|
|
|
|
#364150 - 09/06/2015 18:05
Re: Coding standards. Periods at end of *some* comments only?
[Re: tfabris]
|
old hand
Registered: 17/01/2003
Posts: 998
|
Maybe they have an extract program that extracts the /// and or // comments and the period is needed for /// cases. We had a documentation library program that worked in a similar fashion. You had structure the comments just right or they would not be picked up correctly by the library program.
|
Top
|
|
|
|
#364151 - 09/06/2015 21:47
Re: Coding standards. Periods at end of *some* comments only?
[Re: tfabris]
|
carpal tunnel
Registered: 08/07/1999
Posts: 5549
Loc: Ajijic, Mexico
|
"Because that's how we've always done it!"
tanstaafl.
_________________________
"There Ain't No Such Thing As A Free Lunch"
|
Top
|
|
|
|
#364153 - 10/06/2015 02:15
Re: Coding standards. Periods at end of *some* comments only?
[Re: Redrum]
|
carpal tunnel
Registered: 08/06/1999
Posts: 7868
|
Maybe they have an extract program that extracts the /// and or // comments and the period is needed for /// cases. We had a documentation library program that worked in a similar fashion. You had structure the comments just right or they would not be picked up correctly by the library program. This is my guess too, something like Doxygen in use.
|
Top
|
|
|
|
#364154 - 10/06/2015 06:28
Re: Coding standards. Periods at end of *some* comments only?
[Re: tfabris]
|
carpal tunnel
Registered: 13/07/2000
Posts: 4180
Loc: Cambridge, England
|
I hadn't really thought about it until you mentioned, but it turns out I abide by those rules too. Perhaps the way to think about it is that single-line comments are like newspaper headlines, and aren't expected to be full sentences, whereas doc-comments (or Doxygen comments or whatever) are more like the text of the newspaper article, so they're properly punctuated with full stops like running text. The usual pattern for both Doxygen comments and Git commit messages, is that the first line is a one-line "headline" summary, with no full stop, and then if any more detail is needed there's a blank line followed by a paragraph of real sentences with full stops.
Peter
|
Top
|
|
|
|
#364155 - 10/06/2015 08:29
Re: Coding standards. Periods at end of *some* comments only?
[Re: tfabris]
|
pooh-bah
Registered: 12/01/2002
Posts: 2009
Loc: Brisbane, Australia
|
Have you tried asking them why rather than us? My guess would be some kind of parser like Doxygen also. Edit: Not a fan of that first indent though.
Edited by Shonky (10/06/2015 08:30)
_________________________
Christian #40104192 120Gb (no longer in my E36 M3, won't fit the E46 M3)
|
Top
|
|
|
|
#364157 - 10/06/2015 14:12
Re: Coding standards. Periods at end of *some* comments only?
[Re: drakino]
|
carpal tunnel
Registered: 13/02/2002
Posts: 3212
Loc: Portland, OR
|
Maybe they have an extract program that extracts the /// and or // comments and the period is needed for /// cases. We had a documentation library program that worked in a similar fashion. You had structure the comments just right or they would not be picked up correctly by the library program. This is my guess too, something like Doxygen in use. I agree -- that would explain the MUST, as those comments are extracted for external documentation (otherwise, why would you write them in HTML? But it doesn't explain why internal comments MUST NOT have a full stop. If you're writing comments in full sentences, they should be punctuated as full sentences (IMO). And what if you have a more complex internal comment?
// The old file has to be removed before we can frobnicate
// the foobuzz. If it's not removed, there are two issues
// that might crop up. First, if someone has the file open,
// and it gets truncated, they're up a creek, while if it's
// simply removed first, they're fine until they close the
// file. Second, we have business processes in place external
// to this code that looks at the creation date of the
// frobnicated foobuzz files, not just the last mod time.
Do you leave the full stop off of the last sentence? Or all of the sentences? What if your comment is written in the form of a question? Can you put a question mark? Does the rule pertain only to the full stop, or is all punctuation verboten? Maybe it's just the sample Tony provided, but it feels like this sort of coding standard policy shows up when you only have short (and pointless) comments. IMO, comments such as those in the sample shouldn't even be allowed in the code, and the coding standard would address the value of comments (not just the style). But that's an argument for another thread...
|
Top
|
|
|
|
#364159 - 10/06/2015 23:42
Re: Coding standards. Periods at end of *some* comments only?
[Re: canuckInOR]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
(otherwise, why would you write them in HTML?) If you're not familiar with Visual Studio, that's a particular thing in Visual Studio. It's not only for a third party dox extractor (though it's used for that too), it's mainly useful for tooltips and IntelliSense help while you're coding. For example, you're used to to IDEs which, when you type the name of a function, will automatically guide you through all the parameters to that function, right? Well, if you add those HTML comments in a particular format to your classes and functions in a Visual Studio project, then you get the same thing for your code's own internal functions. The format is larger and more complicated than what I provided in the oversimplified example. Here's a post about it: https://msdn.microsoft.com/en-us/magazine/dd722812.aspx Regarding dox extractors like Doxygen... we're not documenting our code with any sort of automatic dox extractors that I know of. The code I'm talking about is all internal and doesn't have any formatted reference material (other than the self-referential stuff in the IDE as described above). Perhaps they're just making sure that if we ever DID use a third party dox extractor, then our code would be ready for it. Which is fine, but then, why the weird thing about no periods on inline comments? That's not part of any dox extractor that I know of. If you're writing comments in full sentences, they should be punctuated as full sentences (IMO). Exactly, that's the thing that I'm not understanding and which trips me up. The fact that my company requires it is not in question, but since I know it's not a requirement for dox extraction, then, why deliberately subvert the English language like that? I was thinking that there's possibly some psychological reason for it, such as, I dunno, maybe trying to make the code flow more readable inside functions or something? I can't fathom it, but I'm wondering if there's some weird "school of thought" which espouses that style, and what its justification is, if it exists. Like, hungarian notation. That's got a whole thing behind it, it's there for a reason. I thought maybe this did too.
|
Top
|
|
|
|
#364160 - 10/06/2015 23:50
Re: Coding standards. Periods at end of *some* comments only?
[Re: peter]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
The usual pattern for both Doxygen comments and Git commit messages, is that the first line is a one-line "headline" summary, with no full stop, and then if any more detail is needed there's a blank line followed by a paragraph of real sentences with full stops. Okay, okay, that's starting to make sense. You don't put periods at the end of a headline. That, that right there, is indeed an actual English rule that I can understand. If we were extracting out to dox, then that would mean something. However, that's not what our coding standard says. Our coding standard just says "inline comments, no period. Tripleslash comments at the tops of methods and classes, put the period." I wonder if the coding standard here came from something like that, but then the real details got diluted, and when it finally got typed into our coding standards, the original meaning was lost? Sort of like an E Plebneesta of coding standards?
|
Top
|
|
|
|
#364161 - 11/06/2015 01:19
Re: Coding standards. Periods at end of *some* comments only?
[Re: tfabris]
|
carpal tunnel
Registered: 19/01/2002
Posts: 3584
Loc: Columbus, OH
|
Larry Wall would be very disappointed in your lack of ability to self-express I hope every facet of working for your company isn't this much of a PITA. I totally understand having standards, but dictating punctuation in comments (unless there's a good reason) is a bit over the top IMHO.
_________________________
~ John
|
Top
|
|
|
|
#364162 - 11/06/2015 02:13
Re: Coding standards. Periods at end of *some* comments only?
[Re: JBjorgen]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
The company has been really great so far. And I certainly don't mind coding conventions, they make for better code. I'm not complaining that the coding convention exists, I'm just trying to understand it so that it's easier for me to follow it.
|
Top
|
|
|
|
#364225 - 22/06/2015 08:11
Re: Coding standards. Periods at end of *some* comments only?
[Re: tfabris]
|
addict
Registered: 24/07/2002
Posts: 618
Loc: South London
|
Sod the comment, that superfluous indent before the brace at the start of the function would be enough to drive me up the wall! lol
Edited by sn00p (22/06/2015 08:11)
|
Top
|
|
|
|
#364228 - 22/06/2015 10:39
Re: Coding standards. Periods at end of *some* comments only?
[Re: sn00p]
|
carpal tunnel
Registered: 18/01/2000
Posts: 5683
Loc: London, UK
|
Sod the comment, that superfluous indent before the brace at the start of the function would be enough to drive me up the wall! lol My C# coding standard basically comes down to: "do whatever ReSharper does, because it's too much hassle to fight it, and at least it's consistent."
_________________________
-- roger
|
Top
|
|
|
|
#364229 - 22/06/2015 15:04
Re: Coding standards. Periods at end of *some* comments only?
[Re: sn00p]
|
carpal tunnel
Registered: 20/12/1999
Posts: 31600
Loc: Seattle, WA
|
Sod the comment, that superfluous indent before the brace at the start of the function would be enough to drive me up the wall! lol Ah, that was a cut and paste error when I pasted the code into the message.
|
Top
|
|
|
|
#364230 - 23/06/2015 07:31
Re: Coding standards. Periods at end of *some* comments only?
[Re: peter]
|
carpal tunnel
Registered: 18/01/2000
Posts: 5683
Loc: London, UK
|
Perhaps the way to think about it is that single-line comments are like newspaper headlines Counterpoint: http://antirez.com/news/90
_________________________
-- roger
|
Top
|
|
|
|
#364231 - 23/06/2015 08:57
Re: Coding standards. Periods at end of *some* comments only?
[Re: tfabris]
|
carpal tunnel
Registered: 13/07/2000
Posts: 4180
Loc: Cambridge, England
|
As one of the commenters on that thread has already sort-of said: if he thinks a title and a one-line synopsis are two different things, then I feel sorry for readers of his newspaper. ("I changed SystemThread::activate to return a boolean. You won't believe what happened next.") Peter
|
Top
|
|
|
|
#364232 - 23/06/2015 11:56
Re: Coding standards. Periods at end of *some* comments only?
[Re: tfabris]
|
veteran
Registered: 21/03/2002
Posts: 1424
Loc: MA but Irish born
|
Agh! Clickbait headline without a link! My worst nightmare! How will I ever know what happened next????
|
Top
|
|
|
|
#364233 - 23/06/2015 12:44
Re: Coding standards. Periods at end of *some* comments only?
[Re: Phoenix42]
|
carpal tunnel
Registered: 18/01/2000
Posts: 5683
Loc: London, UK
|
Agh! Clickbait headline without a link! My worst nightmare! How will I ever know what happened next???? I took the liberty of adding a link. I hope Peter doesn't mind...
_________________________
-- roger
|
Top
|
|
|
|
#364235 - 23/06/2015 15:12
Re: Coding standards. Periods at end of *some* comments only?
[Re: Roger]
|
veteran
Registered: 21/03/2002
Posts: 1424
Loc: MA but Irish born
|
AGH!!!! Again????? How many times am I going to fall for this???
|
Top
|
|
|
|
|
|