[JDEV] Technical Documentation

Colin Putney cputney at whistler.net
Fri Mar 31 13:44:06 CST 2000


-- Kimmo P Hamalainen <kphamala at cs.Helsinki.FI> wrote:

> What about some implementation docs about the Jabber server and
> etherx? Those are needed because the system is open-source and
> people who use the system as a start for their own projects would
> appreciate some docs like that. Implementation docs are usually
> included in software project life cycle anyway, so that programmer
> himself too (and others) remember the structure and implementation
> of the system.. I would like to see more comments on the code too,
> especially in the beginning of every function - that is considered
> normally quite important. So that before every function is told
> what the function does and what those arguments mean.

Agreed, though I'll put a different twist on it. I think general "white
paper" type documentation should be the priority here. In reading
through the sources, I've found that all those trees make it really
difficult to see the forest. It's usually not to tough to figure out
what a particular function does, but building a picture of the overall
structure requires a lot of back and forth between different libraries
and source files.

I'd like to see a short document describing the following:

* The overall architecture of the server
* The execution model (threads, events and synchronization issues)
* The major data stuctures and memory management
* Modules and services: the roles they play and the differences between
them
* The life cycle of a session
* The organization of the code

<introduction>
I stumbled across Jabber recently while thinking/reading about
distributed protocols. I really like the whole model (and HATE the
other IM options available) so I'd like to put my shoulder to the wheel
and help out. 

Eventually I'd like to write a good Mac client, but at the moment I
don't have the necessary tools. I'm also interested in the server side,
so I going to concentrate on the core and server for now. 
</introduction>

I've read through the docs on the web site pretty thoroughly and now
I'm on to the source code for the 0.9 release. I've been thinking I'd
get my feet wet by fixing bugs and adding comments to the sources, but
I'm open to suggestions. What's on the agenda now that 0.9 is out? What
needs to be done the most?

BTW congratulations to the Jabber Team for the work done so far. The
whole architecture seems VERY well thought out. Way cool!

Colin


---------------------------------------------
Colin Putney         cputney at whistler.net
Whistler Networks    http://www.whistler.net/




More information about the JDev mailing list