On Thu, 2004-04-22 at 10:18, Paul J Stevens wrote:
> Aaron Stone wrote:
> 
> > I'm a huge fan of returning int's as status codes and using arguments to 
> > pass
> > any pointers going into or coming out of a function. Note that in these
> > prototypes, the length is just as important as the string and so having them
> > on opposite sides of the function call is, IMHO, confusing.
> 
> Personally I'm a big fan of the OO style used in libs like GLib, GMime, etc.

I have some experience coding with GLib, but can you give a short
example using a function from DBMail?
> 
> Always returning ints may look like a nice and clean policy, but it will 
> keep us from moving to a code base that will facilitate clean data 
> encapsulation and simple code reuse.
This was one of the reasons for putting all low-level database functions
into small driver files. 
If we could do the same for message handling etc that would be very
nice.
> 
> If we could start treating dbmail from a Model-View-Controller paradigm 
> (read Database, Message, Application) with *clean* interfaces the 
> long-term maintainability and hence viability of dbmail would become a 
> much more realistic possibility.

Agreed. 
> 
> But maybe that is more something for the dbmail-3.0 timeline:
> 
> - dbmail's mission and design must be clearly defined, well documented, 
> crisp and on par with the best of breed open-source libraries and 
> applications out there.
> - dbmail's performance, stability and reliability must be unsurpassed in 
> order to make dbmail a real contender in the field of email storage servers.
> - all this and more should make it fun and easy to code in, for and on 
> top of dbmail.

All agreed.

I, for one, am very keen on using the right libraries for performing
stuff we currently do ourselves. I think DBMail suffers from the Not
Invented Here (NIH) Syndrome a lot. We do our own message parsing, have
our own linked list implementation, do our own input parsing (without
using some convenient library functions). Using the right libraries can
help us reducing our own code size, whilst clearing up the code that
remains (think of all the string manipulation and searching going on
just to parse IMAP commands!)

After the release of 2.0, I want to see how much of GLib we can use. I
really like the features that that library offers, and since it is a
very common library, I don't think there's much to say against using it,
if it offers enough convenience.

Ilja


Reply via email to