RE: [PEAR-DEV] New XSLT class for PEAR
| From: | LIMBOURG Arnaud | Date: | Mon, 24 Feb 2003 17:39:33 +0000 |
| Subject: | RE: [PEAR-DEV] New XSLT class for PEAR | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-13782@lists.php.net to get a copy of this message | ||
I'll keep that mail and reread more carefully ;))
Thanks for the exlanation, i'll dig into that.
Arnaud.
> I'll have a go. Flames to /dev/null please ;-)
>
> A stateful object is basically an object with memory. An
> object where you
> get/set values that are stored within the object. This is
> fine (imho) when
> your object is encapsulating a piece of data - such as a
> string, a file, a
> XML document, and so on. Can't really have it any other way.
>
> On the other hand, another type of object is one that *does*
> something to
> datatypes. A XSLT Processor is an excellent example. The
> processor takes
> two (sometimes three ;-) inputs - XML, XSLT, and an optional set of
> parameters - does something - and produces an output. You'd
> expect to be
> able to use and re-use the processor over and over again.
> This type of
> object (imho) has no need whatsoever to be stateful. I'd go as far as
> saying that it's poor quality engineering.
>
> The reason I'm not comfortable with objects being unnecessary
> stateful has
> to do with quality. Stateful code - of any description - is
> non-deterministic, and more prone to bugs. This is
> especially true over
> time when many engineers work on the code. Non-stateful
> code, on the other
> hand, is deterministic. Same input - same output. You can
> write unit tests
> that are more simple, and require less maintenance over time.
> Given that
> any comprehensive set of unit tests will take up between 30%
> and 50% of
> total development time, that's very important ;-)
>
> That's what I mean.
>
> Best regards,
> Stu
> --
>
>