NYCPHP Meetup

NYPHP.org

[nycphp-talk] How many of you guys are "down" with Java/OO - likeprogramming concepts?

Brent Baisley brent at landover.com
Thu Feb 19 08:39:22 EST 2004


I just want to thank you privately for your excellent response. After 
reading it, I almost feel like I've been through therapy. I've read a 
lot about OO programming, design patterns and conceptual stuff, but 
never sat down and gave OO programming my full effort. I feel I have a 
firm grasp on the concepts of OO, but every time I toyed around with 
it, it seemed more work than it should be, and certainly more work than 
procedural coding.

"Almost all the documentation... complicates the issue." Now I feel 
I've been just overthinking things. I've been looking for the bright 
light and angelic music, when I should have been looking for the cold 
beer next to the keyboard.

Many Thanks.


On Feb 18, 2004, at 6:21 PM, Chris Hubbard wrote:

> Heh.  You sound like where I have been. I spent a bunch of time trying 
> to figure out OO, making myself crazy. Then it dawned on me that I 
> hadn't had a need that OO would solve.
> Most of my code used functions.   Most of my code used the same 
> functions. So I started moving the functions into an included file. 
> Then I had two files; one a bunch of functions, and then the code 
> file. Then I started organizing the functions into different included 
> files. So I had 6 or so possible files and one code file. Then it 
> dawned on me that I was creating the effect of OO. So I rewrote the 
> files that contained the functions, so each file became a single 
> class, with a collection of methods instead of a single file with a 
> collection of functions.  (note, as far as I can tell there's no real 
> difference between a method and a function in php)  I had to go 
> through and change some stuff, like using $this-> all over the place. 
> When I was done I had a bunch of different classes that were a bit 
> harder to use than the different include files.  After grumbling for a 
> while, someone suggested creating a single error handling method that 
> all the methods within a class would use. So now each class has 
> integrated error handling (error reporting), instead of every method. 
> Then I could add in things like a timer, debugging information.  
> Refactoring the code across all the class-methods is easier than if 
> they're just functions.
> So:
> procedural -> OO is pointless unless:
> 1.  it makes it easier to maintain the code
> 2.  it makes it easier to improve the code
> 3.  it makes it easier to debug the code
> 4.  it makes it easier to pick up girls
> 5.  it makes it easier to show off at the users group (see #5)
>
> Almost all the documentation about OO complicates the issue.  It's 
> really not that difficult.  If you're not understanding it, it's not 
> because you're missing the OO bone/gene/hair.  It's because whoever is 
> explaining it to you doesn't understand it well enough to explain.
>
> Relax, drink a beer.  It's not that complex.  If you're thinking hard 
> about OO, you're doing the wrong thinking.  Save your hard thinking to 
> solve the problem.  Once you've groked the problem the OO stuff will 
> flow easily.
>
> Where to start:  take any single function and convert it to a class:
> function print_array($array)
> {
>    print_r($array);
> }
>
> becomes
> class print_array
> {
>    function print_array($array)
>    {
>       print_r($array);
>    }
> }
>
> Both produce the same output.
>
> Hopefully this is clear and helpful.  Rather than obscure and annoying.
> Chris
>
>
> bpang at bpang.com wrote:
>
>> I've been "trying" to cross over, or at least start writing OO code, 
>> for a
>> long time, but I never can seem to fully catch on.
>> I am pretty sure I could identify many instances where my code would
>> benefit from OO, and I've been told that my procedural code is 
>> written in
>> OO format, just without the use of objects.
>>
>> This may be near impossible to answer, but, what would you say is the 
>> key
>> to "grasp the concepts behind OO" and to put it to use?
>>
>> I suppose if I forced myself to use it, I would probably figure it 
>> out,
>> and I always feel a little "learning-disabled" for not having picked 
>> it up
>> yet, even after some tutorials, etc, but then Felix comes along and 
>> makes
>> me feel better about it...
>>
>> Felix said:
>> "For most simple web based stuff you will almost never need to code
>> objects yourself."
>>
>>
>>
>>
>>
>>> I think it is more than possible, though personally I prefer PHP to
>>> Java, and for anything web-related I would almost certainly use PHP
>>> rather than Java, purely because it is so flexible and easy to use.  
>>> As
>>> for crossing over into OO, just take things one step at a time, once 
>>> you
>>> grasp the concepts behind OO you will see plenty of situations where 
>>> you
>>> could use OO design methods.  For example there are countless 
>>> situations
>>> where you can encapsulate functionality into a generic object, then 
>>> use
>>> inheritance to specialise that object for your particular needs.
>>>
>>
>> _______________________________________________
>> talk mailing list
>> talk at lists.nyphp.org
>> http://lists.nyphp.org/mailman/listinfo/talk
>>
> _______________________________________________
> talk mailing list
> talk at lists.nyphp.org
> http://lists.nyphp.org/mailman/listinfo/talk
>
>
-- 
Brent Baisley
Systems Architect
Landover Associates, Inc.
Search & Advisory Services for Advanced Technology Environments
p: 212.759.6400/800.759.0577




More information about the talk mailing list