Software Architecture vs. Code – by Simon Brown

Simon Brown talks to us about how, now days, we have many diagramming tools and concepts which some of us like to use, and sometimes are even imposed upon the developers by the corporations managers, who actually have no idea of technicalities and the usefulness or not of those diagrams. However, despite the tools and concepts we have, when we create a diagram of the architecture of a software program we are developing, most of the time it ends up not matching the actual code, we can not see the architecture in the code.

Continue reading “Software Architecture vs. Code – by Simon Brown”


About class naming over-simplification

Naming a class as ProductProperties, instead of simply Properties despite the namespace refer it to be in the Product namespace, does NOT defeat the purpose of the namespaces.

Namespaces are supposed to prevent clashes in class naming, to prevent ambiguity at a auto-loading level. They do not prevent ambiguity at a development level.

If at development I see a class named Properties, I will assume it to be Properties. Would any dev go look at the top of the file for the “use bladibla” to make sure about what class it is? I dont think so. However, that Properties class might actually be the ProductProperties, or the CategoryProperties, or something else. So a class name should be as accurate and unambiguous as possible, independently of the namespace.

Bottom line: If its a Properties class, name it Properties, but if it is a ProductProperties class, name it ProductProperties!

Web development environment

Here I teach how to set up a web development environment for PHP, using UBUNTU + XAMPP + Eclipse + XDebug + Phing + PHPDoc + SVN. It’s still missing PHPUnit, but some day I will do it.

You can download the used files from here (httpd.conf, php.ini, build.xml …).

  • Web Dev: 00 – Ambiente de desenvolvimento
    • XAMPP – install, configure and testing xampp in Ubuntu, with Xdebug
    • Eclipse – install and configure with Xdebug
    • Phing – Install, configure and create a build.xml file
    • PHPDocumentor – Install, configure, test and encoding correction
    • SVN (Subversion) – install, configure and usability