home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.lang.c++
- Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!saimiri.primate.wisc.edu!sdd.hp.com!elroy.jpl.nasa.gov!usc!rpi!psinntp!psinntp!uu0465!andrew
- From: andrew@tagsys.com (Andrew Gideon)
- Subject: Complexity in the eyes of the beholder?
- Message-ID: <1992Nov18.024553.24081@tagsys.com>
- Organization: TAG Systems inc.
- Date: Wed, 18 Nov 1992 02:45:53 GMT
- Lines: 51
-
- I have been having an extended discussion with a coworker.
- This is someone whom I respect, and with whom I enjoy
- working a great deal. But this discussion is disturbing
- to me. He claims that I use too many layers of abstraction.
-
- Specifics: I am of the "small class" and "mixin" school.
- I tend to write small classes, with tight functionality.
- I then combine these into classes providing greater and
- greater functionality.
-
- The purpose of this is to achieve a comprehendable
- system. If I make a single class too complex, I find
- that *I* cannot grasp the functionality of the class. I
- certainly wouldn't expect another to do so.
-
- On the other hand, I can grasp a simple class entirely:
- interface and implementation. When I "move up" a level,
- I can drop the implementation information, and need
- retain only the interface information. The class becomes
- a black box.
-
- To me, I achieve my goal (except when I violate my own
- rules - which does happen more frequently than I like {8^).
- But this coworker claims that the many levels are too
- complex to follow. In trying to understand a class, he
- is forced to recurse too frequently and too far.
-
- Unfortunately, I do understand his point. I too have been
- frustrated similarly - by my own code! But this seems an
- acceptable cost for having a system that can eventually
- be understood. Besides, I seem to be used to this form
- of reverse engineering.
-
- Am I wrong? Is he? Am I missing something obvious?
- Any comments welcome.
-
- Thanks for your attention.
-
- - Andrew Gideon
-
-
-
- ===
- -----------------------------------------------------------
- | Andrew Gideon | |
- | Consultant | |
- | | TAG Systems inc. |
- | Tel: (201) 890-7189 | D2-181 Long Hill Road |
- | Fax: (201) 890-1581 | Little Falls, N.J., 07424 |
- | andrew@tagsys.com | |
- -----------------------------------------------------------
-