11 Replies - 3519 Views - Last Post: 17 March 2012 - 07:15 AM

#1 Choscura  Icon User is offline

  • D.I.C Lover


Reputation: 466
  • View blog
  • Posts: 2,227
  • Joined: 18-October 08

What do you use for documentation?

Post icon  Posted 14 March 2012 - 11:48 AM

I'm working on a big project (relative term: couple thousand lines of code so far, probably 3-4 times this much before anything is ready to be released) across a few different languages (right now, C# and python), and I'm curious how people here keep track of documentation. I've been keeping stuff in a notepad document, but it's getting a bit too big for that, and I was hoping somebody here would be able to recommend something perhaps more useful than a wiki?
Is This A Good Question/Topic? 0
  • +

Replies To: What do you use for documentation?

#2 Kilorn  Icon User is offline

  • XNArchitect
  • member icon



Reputation: 1356
  • View blog
  • Posts: 3,528
  • Joined: 03-May 10

Re: What do you use for documentation?

Posted 14 March 2012 - 11:49 AM

I usually use Microsoft Word if it's a solo project, or Google Docs for team projects.
Was This Post Helpful? 0
  • +
  • -

#3 SpartanGuy07  Icon User is offline

  • D.I.C Head

Reputation: 33
  • View blog
  • Posts: 149
  • Joined: 08-September 11

Re: What do you use for documentation?

Posted 14 March 2012 - 12:02 PM

For my work I use LaTeX, however my position is specifically the technical writer for the project and it does take some getting used to. It does create very nice PDFs though.
Was This Post Helpful? 0
  • +
  • -

#4 tlhIn`toq  Icon User is online

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5595
  • View blog
  • Posts: 11,970
  • Joined: 02-June 10

Re: What do you use for documentation?

Posted 14 March 2012 - 12:41 PM

I like documentation that goes with the class/project/solution.

Extensive use of in-code comments. Decently named objects/methods/variables/properties.
private ResultsObject SomeMethod(string blah)
{
   // Step 1.  We do blah blah blah
   // Step 2.  We invert those results
   // Step 3.  We filter those results
   // Step 4.  We return results as "halb (3 times)"

   #region Step 1
   {
   }
   #endregion Step 1
}



XML comments on every method and property so intellisense works for everyone. (/// comments at each method)
    /// <summary>No GUI code here.  This is an object to work the camera device, not directly interact with the user
    /// 
    /// </summary>
    public class CameraGoPro : CameraBase
    {


        /// <summary>NO EFFECT: Inherited from CameraBase, but no such property in THIS camera model.
        /// </summary>
        [Browsable(false)]
        [EditorBrowsable(EditorBrowsableState.Never)]
        [XmlIgnore]
        public new string ISO
        {

        /// <summary>The CurrentUser's AppData directory. 
        /// We always have security permissions for this and is the preferred location for storing Application specific data
        /// </summary>
        public static string AppData
        {




and txt documents in each project or subfolder.

I'm not sure why you would use Notepad and documents elsewhere, when you can create a textfile IN the project and use VS to write it: In the very folder it applies to. There is no chance of documenation getting separated from the project if you use the tools built in to the IDE. If I write a custom control for example, there is a text document in the folder that describes its theory of operation as well as a ChangeLog.txt file.

This post has been edited by tlhIn`toq: 14 March 2012 - 12:42 PM

Was This Post Helpful? 0
  • +
  • -

#5 anonymouscodder  Icon User is offline

  • member icon

Reputation: 126
  • View blog
  • Posts: 710
  • Joined: 01-January 10

Re: What do you use for documentation?

Posted 14 March 2012 - 12:46 PM

Doxygen

This post has been edited by anonymouscodder: 14 March 2012 - 12:48 PM

Was This Post Helpful? 0
  • +
  • -

#6 Curtis Rutland  Icon User is online

  • (╯□)╯︵ (~ .o.)~
  • member icon


Reputation: 4537
  • View blog
  • Posts: 7,916
  • Joined: 08-June 10

Re: What do you use for documentation?

Posted 14 March 2012 - 04:37 PM

If you're using C#, use the XML comments, and use Doxygen. Doxygen will read the xml comments and generate a javadoc-style webpage for you, which is awesome.
Was This Post Helpful? 1
  • +
  • -

#7 calvinthedestroyer  Icon User is offline

  • D.I.C Lover

Reputation: 167
  • View blog
  • Posts: 1,911
  • Joined: 13-October 07

Re: What do you use for documentation?

Posted 14 March 2012 - 04:47 PM

We use "share point" at work.
All the documents start off in MS ACCESS. Once the document gets approved it shows up in share point with a nice digital signature.

I don't like it, it does not allow for multi users. I constantly run into issues where I can't edit a doc because some one else left it open.
Half the time you don't have the right permissions to make changes.
And the MS ACCESS Gods are old and always on vacation.
Was This Post Helpful? 0
  • +
  • -

#8 Core  Icon User is offline

  • using System.Linq;
  • member icon

Reputation: 774
  • View blog
  • Posts: 5,097
  • Joined: 08-December 08

Re: What do you use for documentation?

Posted 15 March 2012 - 12:18 PM

Really don't think code comments is where documentation should go. Clutters the space a lot. For most of my projects (hosted either on CodePlex or GitHub) I am using the integrated Wiki system.
Was This Post Helpful? 0
  • +
  • -

#9 jon.kiparsky  Icon User is offline

  • Pancakes!
  • member icon


Reputation: 7895
  • View blog
  • Posts: 13,424
  • Joined: 19-March 11

Re: What do you use for documentation?

Posted 15 March 2012 - 10:45 PM

Depends what it is you're trying to document. Doxygen is a great tool. I've got a thing I've been playing with (mentioned it in a recent thread) where I use svn hoooks to tell doxygen to regenerate its documentation, so the autogen docs are always current. It's a little tricky, since there's a ton of projects in a ton of languages in the work repo, but fortunately they're mostly categorized by language, so it's not too hard. If you've got multiple projects in one repo, you need to make sure you're not generating documentation for all of them each time, that would be a nuisance.


For design documents, an authoring tool like Oxygen is handy. Oxygen is a DocBook editor, so it's easy to generate html and PDF from the same document - this keeps your documentation versions constant. Also, it's plain text, so it plays nice with svn. (keep the docs in the repo, for the same reason you eep the code in the repo). Oxygen is not a free product, either as speech or beer, but it's reasonably cheap and well supported. I understand that eclipse can be used as a DocBook editor as well, but I haven't done anything with that.
The down side of DocBook is that it takes some work to make it look good. If that's important, use something else or get Bob Stayton's book on DocBook XSL and be ready to spend some time at it.


For user-facing documentation, a DocBook tool is again handy, but you could use something like OpenOffice if you'd rather.

For developer-facing docs, just make your commits self-documenting. Always work from a bug list, and tie every commit to a bug and log the revision that fixes the bug in the bug report. If I'm trying to work out why a piece of code was added, it really helps to see the bug that motivated it. Make your changes small and incremental, and the commit history will tell the story better than a lot of text.

View Postcalvinthedestroyer, on 14 March 2012 - 06:47 PM, said:

We use "share point" at work.


That's just horrible. I'm sorry to hear it.
Was This Post Helpful? 1
  • +
  • -

#10 Raynes  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 611
  • View blog
  • Posts: 2,815
  • Joined: 05-January 09

Re: What do you use for documentation?

Posted 16 March 2012 - 08:51 PM

Some languages like Clojure and Python have a concept of 'docstrings' which are strings of documentation attached to functions and such. Those are a big part of my documentation cycle. When in the mood, I tend to write code in a half-assed literate programming style. I'm not a big fan of full on three-chapters-per-block-of-code literate programming, but I like a paragraph here and there to complement pieces of code and explain why they exist and what part they play. For the literate part of things, Marginalia is an excellent Clojure tool. For API reference documentation which tends to make use of docstrings rather than comments, codox or autodoc are excellent tools.
Was This Post Helpful? 0
  • +
  • -

#11 Curtis Rutland  Icon User is online

  • (╯□)╯︵ (~ .o.)~
  • member icon


Reputation: 4537
  • View blog
  • Posts: 7,916
  • Joined: 08-June 10

Re: What do you use for documentation?

Posted 16 March 2012 - 11:21 PM

C# has the same thing. Start a comment above a method/class/interface/etc...with three slashes, and it'll generate a set of (commented out) xml, that attaches documentation to your components. That's actually how IntelliSense works when it shows descriptions of classes/methods.
Was This Post Helpful? 0
  • +
  • -

#12 tlhIn`toq  Icon User is online

  • Please show what you have already tried when asking a question.
  • member icon

Reputation: 5595
  • View blog
  • Posts: 11,970
  • Joined: 02-June 10

Re: What do you use for documentation?

Posted 17 March 2012 - 07:15 AM

See post #4 above, where I posted an example of the /// XML comments.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1