[Bf-committers] Doxygen docs?
Ton Roosendaal
ton at blender.org
Thu Jan 6 13:50:26 CET 2005
Hi,
I completely agree with Jean-Luc here. The previous attempt to doxify
the code didn't reveil any structure nor insight in the code, and
instead just rewrote *very* readable parts of code in commented text.
Doing that in our current C code just makes it completely unworkable,
with as only benefit you can use a Doxy tool (who uses that?) to go
over code.
Since C++ "architecture" design can become extremely complex and
abstractly warped, usage of Doxy tools and class-browsers or high level
tools as CASE/Rational Rose seem to be a standard for such work. But I
think that only really works when you do that consistantly from
scratch. Applying these kind of tools - or the "engineering" habits you
learned on uni - on Blender will just fail. As I've clearly witnessed
in the NaN days.
There are many good ways to develop software, I won't dispute nor want
to discuss whether "modern" software engineering methods are good or
bad. We can simply agree on the fact that hasn't been applied on
Blender. Not on its old C code, but apparantly also not on the so much
praised Ghost, Soundsystem, Solid or the Game engine. These are typical
engineer level designed code products, and at least as hard to
understand or maintain as any ugly non-engineered part of Blender in C.
Hardly anyone maintains this beautiful documented C++, and oh yes, it's
buggy as any other part of Blender. Too often "beautiful architecture"
gets confused with proper working software.
So, for me there's only thing that counts, and that is a devoted &
competent person or team who decides to spend time on it, and maintain
and improve it.
As I said in the previous discussion on Doxygen too; it useless to work
on code docs from a bottom-up approach; mostly because the low level
code has too many polluted inconsistancies. We first need top-down
level docs, describing how it was *supposed* to work, describing what
you can do to improve it, and hopefully resulting in better modular
structure with documented APIs.
For example; I've worked on cleaning up render code - which was (still
is) highly chaotically linked and reused and abused all over Blender.
Documenting the mess how it worked before would have been a total waste
of time, since it works already much different now. With the work I did
we're heading to a much simpler and understandable render module, which
then can *finally* get a clear and understandable API and internal
structure doc.
Sometimes docs come after you do code work, especially when its about
old stuff like Blender. If anyone here likes to work on improving
Blender parts, I hope that can fit within such an approach too. Trying
to grasp how it should/could work, then cleanup/implement and document
that.
-Ton-
On 6 Jan, 2005, at 0:37, Jean-Luc Peuriere wrote:
>
> Le 5 janv. 05, à 23:29, joeedh a écrit :
>
>> I meant detailed doxygen comments. Of course I add comments to my
>> code! And I'd add doxygen comments, too, (excuse the "!" up there)
>> except that I guess not everyone likes that. And anyway in the case
>> of Blender it makes sense to just use the .h files
>
> Documentation is useful and lacks a lot in blender. Architecture
> document is not enough, true.
> Blender is a bit too big morsel to eat without it.
>
> But I find Doxygen style documentation generally worse than useless in
> procedural or abstract types code.
>
> Most of them are paraphrase of the code, where a true doc should
> present the algorithm and the boundaries
> conditions, instead of stating that the var NumberOfVertexCounter is
> indeed the counter of the number
> of vertex.
>
> What need to be documented in this case is the structs and how the API
> manipulates them.
> Which means not documenting each function but the relationships.
>
> Much better Imho to do a clear document outside of code files. And the
> best way is often nice graphs.
>
> For OOP code, the classes structure things is such ways that this kind
> of documentation is more suitable.
> But again, beware of not paraphrasing the code.
>
> --
> Jean-Luc
>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-committers
>
>
------------------------------------------------------------------------
--
Ton Roosendaal Blender Foundation ton at blender.org
http://www.blender.org
More information about the Bf-committers
mailing list