[Libreoffice] Using Doxygen for API documentation
Lubos Lunak
l.lunak at suse.cz
Thu Nov 3 07:09:25 PDT 2011
Hello,
as a followup to the discussion during my talk at the LibreOffice conference,
I have created a wiki page describing how to use Doxygen to document code in
LibreOffice. A draft is at
https://wiki.documentfoundation.org/User:Llunak/Doxygen , if it's ok, I will
move it to Development/Doxygen and link from Development/ .
For those who weren't there (or try to pretend they don't remember :) ) : In
my talk I pointed out various problems that make it harder to develop
LibreOffice that it should be (taken mostly from experience, as I'm
relatively new to the codebase). One of the obvious problems is that a lot of
classes, functions, etc. are not documented at all or very poorly, which
causes a lot of problems, primarily that one has to spend a lot of time just
finding out how to actually use a class or even what the class is for, which
in turn means:
- developers cannot just look at a list of classes and see what they do,
because it's often not possible to instantly find out the purpose
- developers waste time finding out how to use a class instead of simply using
it
- or, they just do not use the class and duplicate the functionality, because
they either couldn't figure it out or didn't find it
- developers break design of classes by extending them in a way that does not
fit, because they do not know the exact purpose of the class (for example, we
have a class which can represent both a wall clock time and a duration)
Many of these could have been saved by somebody spending few minutes at most
and writting very short docs explaining this. Morever, whenever you "save"
time this way, it's usually wasted rather soon when you get back to the class
and need to spend even a little time to recall how to use it. As soon as
somebody else needs to use it too, they'll need even more time and so by not
spending that little time you actually waste much more time for the project
as a whole (had I somehow magically known everything about the code I've used
since I joined LO, in the time that I wasted trying to figure it out I could
have written very nice docs for all of it, still have quite some time left,
and that is only counting my time).
So, whenever you use a class or function that does not have any documentation
and you know or figure out the purpose, please spend a minute and write
something short. The same applies whenever you write something new of course.
Now that you know how, there's no real excuse.
--
Lubos Lunak
l.lunak at suse.cz
More information about the LibreOffice
mailing list