29. August 2011

Pexeso – Flex-like framework for PHP

Switching between different languages during development of server-client application is daunting task.

Jan Volf wrote Pexeso framework. Pexeso is component based, event driven PHP View-Controller framework similar to Adobe Flex framework.

Developer can reuse patterns and Flex style of writing code even when coding in PHP.

You can find this project at SourceForge: pexeso-php.sourceforge.net

17. August 2011

Problem with jQueryMobile application in Internet Explorer

I was building application based on jQueryMobile.

It worked correctly in all modern browsers except Internet Explorer. Application was displayed incorrectly and it was not functioning at all.

Solution to this problem was quite easy. I forgot to specify following line in the beginning of document:

<!DOCTYPE html>

Application started to work correctly also in IE after this small fix.

29. March 2011

Cloc – how big is your software project?

Do you want to know how big is your software project?

There are several tools that could give you the answer.

Here is the example how to use cloc tool.

Usage: cloc <directory>

For more information pay a visit to cloc.sf.net.

7. March 2011

Spaghetti, lasagna and raviolli code

Code smells or anti-patterns are a common classification of source code quality. There is also classification based on food which you can find on Wikipedia.

Spaghetti code

Spaghetti code is a pejorative term for source code that has a complex and tangled control structure, especially one using many GOTOs, exceptions, threads, or other “unstructured” branching constructs. It is named such because program flow tends to look like a bowl of spaghetti, i.e. twisted and tangled. Spaghetti code can be caused by several factors, including inexperienced programmers and a complex program which has been continuously modified over a long life cycle. Structured programming greatly decreased the incidence of spaghetti code.

Ravioli code

Ravioli code is a type of computer program structure, characterized by a number of small and (ideally) loosely-coupled software components. The term is in comparison with spaghetti code, comparing program structure to pasta; with ravioli (small pasta pouches containing cheese, meat, or vegetables) being analogous to objects (which ideally are encapsulated modules consisting of both code and data).

Lasagna code

Lasagna code is a type of program structure, characterized by several well-defined and separable layers, where each layer of code accesses services in the layers below through well-defined interfaces. The term is in comparison with spaghetti code, comparing program structure to pasta.

Spaghetti with meatballs

The term “spaghetti with meatballs” is a pejorative term used in computer science to describe loosely constructed object-oriented programming (OOP) that remains dependent on procedural code. It may be the result of a system whose development has transitioned over a long life-cycle, language constraints, micro-optimization theatre, or a lack of coherent coding standards.

Do you know about other interesting source code classification?