On Thu, Aug 18, 2016 at 03:38:03PM +0000, Chris via Digitalmars-d wrote:
> On Thursday, 18 August 2016 at 15:12:52 UTC, H. S. Teoh wrote:
> > Nah, this kind of so-called "documentation" is no better than
> > reading the code itself. It's just like code comments that basically
> > repeat what the code does, which is useless because you can already
> > read the code.
> > 
> > What you want are comments / docs that explain things that are *not*
> > immediately obvious from the code, such as:
> > - High-level discussion of *why* this code does what it does;
> > - Relevant examples of *how* to use it, in the context of what it was
> >   intended for (i.e., not just a dumb `auto x = myFunc(123);` which says
> >   nothing about how to use it in real life).
> > - *When* to use this code, and when not to use it.
> > - Any gotchas to watch out for (e.g. this function may return the wrong
> >   result if the input is poorly-conditioned)
> > - What algorithm(s) are used to compute the result, and why said
> >   algorithms were chosen, their advantages / disadvantages, etc.
> > 
> > Even more obvious parts of the docs also need proper explanation. For
> > example, compare:
> > 
> >     /**
> >      * Repeats a string.
> >      * Params:
> >      *      x = a string
> >      *      y = an int
> >      * Returns: a string.
> >      */
> >     string repeat(string x, int y) { ... }
> 
> However, this would be very useful as a stub. To write "Repeats a
> string by the specified number of times." is trivial. Often a function
> can be explained in one or two sentences, like "Saves output as WAV
> file. Returns true on success, otherwise false.". The rest is a real
> pita. All that boilerplate for
> 
> bool saveWAV(string path)
> {
>   // ...
>   if (...)
>     return true;
>   return false
> }
> 
> That's the real killer. Hey, if dmd can generate files with code
> coverage, it could generate files with doc stubs.
[...]

Shouldn't that be the job of the IDE?  If the IDE always generated doc
stubs for non-private functions, that could be good encouragement for
the coder to actually fill it in! Esp. if the stub reads:

        /**
         * THE PROGRAMMER WAS TOO LAZY TO FILL THIS IN
         * Params:
         *      x = THE PROGRAMMER WAS TOO LAZY TO FILL THIS IN
         *      y = THE PROGRAMMER WAS TOO LAZY TO FILL THIS IN
         * Returns: THE PROGRAMMER WAS TOO LAZY TO FILL THIS IN
         */
        int myFunc(int x, int y) { ... }

:-P


T

-- 
"Holy war is an oxymoron." -- Lazarus Long

Reply via email to