ontolog-forum
[Top] [All Lists]

Re: [ontolog-forum] MVC

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>, "edbark@xxxxxxxx" <edbark@xxxxxxxx>
From: Duane Nickull <dnickull@xxxxxxxxx>
Date: Tue, 23 Feb 2010 11:45:41 -0800
Message-id: <C7A97065.B8F6%dnickull@xxxxxxxxx>
MVC, like any technology or pattern,  can be used/implemented in a good way or a bad way....

If (condition){
   if (condition) {
     if (condition) {
       .....

It comes down to the fact that code is art.  There is good art and bad art but with code, there are firm metrics for what is good.

I like to pretend my code belongs on the walls of the Louvre

;-P

Duane


On 2/23/10 11:38 AM, "Jim Rhyne" <jrr@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:

Then there are all of the bad practices created during the early days of
OOD, such as overuse of inheritance.

Jim

Jim Rhyne
Software Renovation Consulting
Los Gatos, California
408 309 0353
http://www.enterprisesoftwarerenovation.com/



-----Original Message-----
From: ontolog-forum-bounces@xxxxxxxxxxxxxxxx
[mailto:ontolog-forum-bounces@xxxxxxxxxxxxxxxx] On Behalf Of Edward
Barkmeyer
Sent: Tuesday, February 23, 2010 10:48 AM
To: Duane Nickull
Cc: [ontolog-forum]
Subject: Re: [ontolog-forum] MVC

I wrote:
>> Upon reflection, I think you mean to place the emphasis on separating
>> the presentation form of information from the information content
>> itself, thus allowing multiple forms of representation for the same
>> information.  Is that right?
>>    
Duane wrote:

> DN: No.

Then I don't understand the relevance of MVC to knowledge engineering.

> My take is in alignment with clean separation of concerns.  The
> main benefits I wrote about in my recent book were maintainability and
> flexibility.
>  

A laudable endeavour.  Did you also provide guidance on how to do it?

In my experience, telling young engineers _that_ they should separate
concerns, without giving them good guidance as to how, is likely to
produce at least as many terrible designs as good ones.  In most
engineering disciplines there are well-established best practices for
separating implementation concerns in certain categories.  (MVC is
one.)  And that is all we really know how to teach.  The rest is
experience and that rare gift -- insight.

30+ years ago, Bill Plauger wrote a book on how to write software in
which he talked about "cohesion" as the principle for separating
concerns.  He then gave some 10 examples of concepts of "cohesion", half
of which were (intentionally) bad ideas.  His point was that the
principle has to be applied in terms of best practices, rather than
intuitive application.  He then elaborated on the cohesion notions that
were supported by best practices (in 1980), and he went on to talk about
tradeoff -- choosing the lesser evil.

"Clean separation of concerns" is not always possible.  Even the best of
us often find ourselves deciding what category of "dirty" we will
engineer.

I think separation of concerns is a natural behavior of knowledge
engineers in capturing domain-specific knowledge.  That occurs primarily
because the texts and the experts tend to concentrate on topics in
presenting the knowledge.  But knowledge engineering in that sense is a
purely analytical skill -- the capture of what is known.  The design
skill is in organizing that knowledge to a purpose, which has many of
the characteristics of the general engineering problem.

-Ed

--
Edward J. Barkmeyer                        Email: edbark@xxxxxxxx
National Institute of Standards & Technology
Manufacturing Systems Integration Division
100 Bureau Drive, Stop 8263                Tel: +1 301-975-3528
Gaithersburg, MD 20899-8263                FAX: +1 301-975-4694

"The opinions expressed above do not reflect consensus of NIST,
 and have not been reviewed by any Government authority."


_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx



_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx



---
Adobe LiveCycle Enterprise Architecture - http://www.adobe.com/products/livecycle/
My TV Show - http://tv.adobe.com/show/duanes-world/
My Blog – http://technoracle.blogspot.com/
My Band – http://22ndcenturyofficial.com/
Twitter – http://twitter.com/duanechaos

_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (01)

<Prev in Thread] Current Thread [Next in Thread>