Home

Egoless Programming

Egoless Programming

The term was coined by Jerry Weinberg in The Psychology of Computer Programming. He described a development environment that involved heavy use of peer code reviews. Programmers developed the egoless programming mind-set after working in this environment. The idea behind this philosophy was that a system of formal code review would catch bugs earlier in…

Continue reading →
Top 10 PHP Design Patterns

Top 10 PHP Design Patterns

Design patterns are reusable solutions to common software development problems. A design pattern is not a copy and paste solution. It’s like a template on how to solve a problem for various situations. Using design patterns can improve development speed but using a proven method, and not having to “re-invent the wheel” time and time…

Continue reading →
Code Smells

Code Smells

Code smells are usually not bugs and won’t prevent the program from functioning. Instead, they indicate a weakness in design that may slow down development and increase the risk of bugs in the future. Some code smells can be tolerated, but others should be fixed. You could think of a code smell like messy hand…

Continue reading →
PHP Abstraction and Interfaces

PHP Abstraction and Interfaces

Due to popular request, I’ve expanded the short example from this page and posted it on github: github.com/hiphiparray/PHP-Abstraction-and-Interfaces This should make it easier for you to understand how abstraction and interfaces are different, and how they work in PHP. Feel free to download the code from the link above and let playtime begin! Classes defined…

Continue reading →
PHP Visibility – public, protected or private

PHP Visibility – public, protected or private

Defining the visibility of a class member (ie. property or method) is useful if you want to apply Object Oriented Programming (OOP) practices such as Information Hiding (Encapsulation). When declaring class members as private, they cannot be accessed from code outside of the class. Internal methods need to be created to access the private members….

Continue reading →
PHP Object-Oriented Fundamentals

PHP Object-Oriented Fundamentals

Object-oriented programming (OOP) is a programming language model organized around objects rather than “actions” and data rather than logic. Historically, a program has been viewed as a logical procedure that takes input data, processes it, and produces output data. Object-oriented programming takes the view that what we really care about are the objects we want…

Continue reading →
Agile Manifesto and Software Craftsmanship

Agile Manifesto and Software Craftsmanship

In February 2001, 17 well known and respected software developers discussed improving development methods. They published a Manifesto and defined agile software development. Agile software development is a collection of software development methods based on iterative and incremental development. Most promote development, teamwork, collaboration, and process adaptability throughout the life-cycle of the project. Agile methods…

Continue reading →
Multi Language Hip Hip Arrays

Multi Language Hip Hip Arrays

Arrays offer us an opportunity to organise a set of variables as a collective. An array can be thought of as a list, with a key and a value. Hip hip hooray is initiated by one person who says “Three cheers for [something] “, then calling out “hip hip” (three times) – each time responded…

Continue reading →