× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



> From: Paul Holm
> 
> You are right, we have wondered off the thread of concurrency into OO
> application design so I'll stop with these thoughts.

Well, before you stop, you might want to address the point I've made
repeatedly, which is that your design does not support multiple
independent field groups.  What will you do to fix that?


> I think you may have made some premature assumptions.  Multi table
Rows
> can
> be updatable.   A JoinedRow has fields from multiple tables and the
same
> process applies for each table.  We require primary keys for all files
be
> present in the JoinedRow.

I haven't made ANY assumptions, because I'm talking basic application
design.  You're the one who keeps talking about your product.  That
might be why we get hung up, because I'm talking about basic
architecture while you're defending your design decisions.

My issues are based on my experience over the years.  For example, I can
immediately see that your system doesn't support multi-row edits.  For
example, a bill of materials may require that based on the item class,
one and only one ingredient must be defined as a co-product.  A
row-level validation doesn't work here.  There are dozens of other
examples in the real world that just don't fit nicely into a simple
field- and row-level edit paradigm.

Again, that being said, OO frameworks can be designed for applications
with less demanding editing requirements, and I'm sure you do that fine.


> Validation typically falls into generic and custom validation.
Generic
> validation is done automatically and custom validation  (multi table
cross
> validation) is accomplished using subclassing and overriding the Row's
> validate method as is commonly done in frameworks.  This frees the
> programmer of all the reoccurring validation and they only need to
code
> for custom validation.  This has been a huge time savings for us and
> scales from small simple applications to large complex applications.

Again, as with any framework, the applicability of the solution depends
directly upon the designer.  With a static problem set like HTML
generation, OO is quite handy.  However, business is more about
exceptions than rules, and in the OO world exceptions tend to be very
hard to handle.  You talk about subclassing, but that only works if the
parent class was smart enough to allow a given task to be subclassed.
If the framework designer didn't foresee some business need, then the
framework won't be any good without serious changes.

That's why I prefer procedural languages for implementing real world
business logic.  Since real world conditions are messy, and complex, and
often change from day to day, the rigid nature of strict OO hierarchies
tend to work against them in reacting to real business environments.


> I agree performance needs to be designed in as well.  In addition,
> internally and also from a customer point of view, time is money, so
we
> have to develop with designs that yield high productivity, perhaps
that
> is where our opinions differ.  We will take productivity and
> flexibility and good performance over a cycle here or there.

I wasn't talking about a cycle here and there.  I was talking about
orders of magnitude in code executed.  If you have just 10 50-character
Strings, you are talking about 500 times the amount of code to compare
two records (not to mention all the overhead of iterating through the
field list, checking the class, and so on).  This is on every update.
Hardly chicken feed.  If you conside this "a cycle here or there", and
if you're willing to make design decisions that result in 500 times the
code executed, then you're going to end up with some pretty poorly
performing programs.

On the other side of the coin, a good skeleton with a decent programmer
is can code quite quickly.  We're talking about perhaps costing a few
hours of developer time as opposed to adding huge amounts of unnecessary
overhead to the runtime.  Ask any end user which way they would want you
to decide.

Joe


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.