Hey,
The entire concept of OOP was based on the data and not the processing :)

But, no one has yet addressed the core of my question. How can I make any
application plugable? I am trying to create a standard which will work with
every other language. A simple example of what I am attempting to do is :
I have a guestbook A. I have features in it
a. allow public viewing of records
b. dont allow publiv viewing of records

Now, this is very simply, I could just store the on/off value and then
validate agianst that. But when it comes to bigger applications, and more
complex situations, where you have to make choices like, allowing the data
to be written to a dbase or no, wether it should get processed or no. How
does one handle such situations?

Regards,
Kunal Jhunjhunwala

"Minds think with ideas, not information. No amount of data, bandwidth, or
processing power can substitute for inspired thought." - Clifford Stoll
----- Original Message -----
From: "DL Neil" <[EMAIL PROTECTED]>
To: "Kunal Jhunjhunwala" <[EMAIL PROTECTED]>; "Steven Walker"
<[EMAIL PROTECTED]>
Cc: "php-list" <[EMAIL PROTECTED]>
Sent: Saturday, February 16, 2002 4:10 PM
Subject: Re: [PHP] modular programming


> Dear Steven and Kunal,
> Agreed with what you had to say.
>
> > In my experience, 'modular coding' is entirely a process of evolution.
> > It's impossible to sit down and design software on paper. Every piece of
> > code I write is under constant evaluation. Each time a weakness is
> > exposed, I rethink my strategy. Often there is no 'perfect' solution,
> > since each presents a different set of compromises. Devoting yourself to
> > endlessly rewriting and structuring your code will, in the long term,
> > yield better code than anyone can advise in a book or paper.
>
> This para gives an impression that modular programming is an iterative
process (maybe not Steven's intention).
> An iterative approach would certainly enable you to improve the quality of
your code - at some expense to
> rethink/re-implement, and such improvements may well occur through changes
to the modularisation/interfaces
> between modules. Modular programming as a philosophy though, starts at the
program design stage, not at version
> two!
>
> 'Modular programming' as a concept is quite old (in computer/doggie
years). Then there was the whole
> confusion/absortption/improvement of philosoophies into 'structured
programming' - which some will argue is the
> same and others maintain a difference (I... - who cares!?). The real
'excitement' was stirred up by a paper
> (which became very famous) called 'GOTO statement considered harmful' and
a massive debate erupted as to whether
> one could write programs without using GOTOs - is there a GOTO command in
PHP? The guru at the time was
> "Jackson", and if you plug "Jackson structured programming" into Google
(or your favorite SE) you will be
> inundated with 'stuff'.
>
> He wrote a fairly thin and most readable book on the subject, but I doubt
it is still in print (check Amazon
> etc). In those days it was also known as JSP. Unfortunately that acronym
has been also taken for something else
> more recently. The design process, and if you want them, the pretty
diagrams, have been refined and 'improved'
> over the years, so there's plenty of material about. Most likely it is
built into every 'introduction to
> programming' text (that is, programming as a process, not learning a
specific language!)
>
> These days of course, much of the philosophy of splitting up a monolithic
program into a series of smaller,
> inter-communicating modules has been absorbed into the object-oriented
approach (and various other 'bits'
> grafted on to make it bigger, brighter, and better - as they have become
implemented (and made practical to use)
> in various programming languages/systems). Unfortunately PHP is designed
to output HTML and that is a very
> procedural process, so PHP has limited OO facilities. Reading up about
classes and encapsulation will pretty
> much take you through modular/structured design theory and if you use
other 'modern' (programming) languages
> then that might be a good move for you (us 'old dogs' can handle the
concepts, but seem to have fundamental
> difficulties with the mechanics of the 'new tricks').
>
> Which brings us back to Steven's third point - that such things can be
overdone. Structure (of whichever flavor)
> is designed to make the coding/debugging/come back and extend/'improve' it
later, processes of development more
> efficient. This is quite separate from execution efficiency. However there
is no way one can improve one, and
> neglect the other - nor should vice-versa be allowed to become an excuse
for slapdash coding practices!
>
> Some people associate the word 'module' with (in PHP) 'function'. So they
think of modular programming as a code
> that is divided up into a series of subroutines, ie functions/calls. This
is overly simplistic. Each WHILE loop
> (for example) is also a 'module'. It has a particular purpose, contains a
set/module of functionality, and has
> definable beginning and end-points/conditions.
>
> Deciding how to best structure your code to suit the process is a question
that appears here quite often - how
> often are we asked something like: 'I have a database listing a series of
... and I want to copy these out to an
> HTML table with n-columns across the screen' and the neophyte coder is
quite confused and wants to know how to
> handle the (exceptions of) situation? The problem is one of 'structure':
the database yields a one-dimensional
> list of 'whatevers', but the output screen is a table divided into
n-columns - and worse, the complication is
> (handling the exception conditions, for example) that we don't know if the
number of db-rows divides evenly
> between the number of screen-columns. So most start coding and take their
'structure' from the database call, ie
> a list, and then try to 'share out' the rows across the screen - and get
into trouble when it doesn't all fit
> together neatly (without 'exceptions').
>
> Structured programming suggests that one examines (diagramming) the
structure of the input and compare that with
> the structure of the output format. These two structures should then be
'aligned'. In doing this it comes down
> to a choice: do I take the list and split it up into m number of table
rows, n-pieces/columns at a time (and
> handle non-uniformity at the end); or do I output all the HTML for a
column, within a row, within a table - and
> when I need it, call for the next db-row data from the source db (if there
is any).
>
> So when you look at 'structured programming' you can see that it has more
to do with 'data' than with code - at
> first. When you get to the code, you will see that the structure of the
code looks somewhat like the structure
> of the data - and that the way to process splits up quite 'naturally' into
'modules', ie HTML table processing
> begins on line X1 and proceeds to line Y1, within that row processing is
between lines X2 and Y2, and within
> that item/column processing fits between X3 and Y3 - and finding the input
data from the database is handled in
> a procedure off to this side, which in turn grabs data from a resultset
that was retrieved from the DB by
> function ABC...
>
> Reading other people's code is a good idea to learn about techniques and
the programming language. However, as a
> means of absorbing style and design decisions the maxim most often heard
is 'do as I say, not as I do'! So I
> recommend a bit of background reading and then 'finding your own
way/style' as you gather experience/fit in with
> corporate requirements.
>
> Regards,
> =dn
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to