Good old days!

My good friend Raj sent me some pictures he took from Chinese new year 2006, and really brought back some nice memories from the days gone by! As some of you may know, I performed on stage for Chinese new year in 2006 in Trafalgar Square, in the middle of the freezing cold in Feb! …

Good old days! Read More »

Imperative vs. Declarative Languages

Following my previous post on multi-language (polyglot) and multi-paradigm (poly-paradigm) development, I thought I’d continue on the same thread for a little and do some comparisons on some of the popular types of programming languages. Definition: An imperative programming language such as C# or Java allows you to specify step-by-step how a problem should be …

Imperative vs. Declarative Languages Read More »

Less is MORE

Just finished watching an interesting seminar video by the guys from Object Mentor (a consultant company founded by Robert C Martin, the father of agile development) at: http://www.infoq.com/presentations/polyglot-polyparadigm-programming The video is about an hour long and covered a large number of topics around using different languages (polyglot) and different programming paradigms (poly-paradigm) to simplify and …

Less is MORE Read More »

Buzzword Buster – Cross-Cutting Concern

Definition: A Cross-Cutting Concern is a concern your application needs to address that is unrelated to your application’s problem domain, and ‘cuts across’ other concerns. Typical examples include: logging persistence security error handling They are usually difficult to decompose from the rest of the system and result in tangled code. Addressing these cross-cutting concerns will …

Buzzword Buster – Cross-Cutting Concern Read More »

Buzzword Buster – DSL

Definition: A Domain Specific Language (DSL) is a programming language that’s dedicated to a particular problem domain. DSLs are often used to support domain-drive design and modelling. It’s the opposite of general purpose programming languages such as C# or Java. Advantages: Code looks like domain prose. Easier to understand by everyone. Easier to align with …

Buzzword Buster – DSL Read More »

Buzzword Buster – Dependency Inversion Principle

Definition: Dependency Inversion Principle refers to a specific form of decoupling aimed at rending high-level modules independent of the low-level modules’ implementation details. Its principle states: High-level modules should not depend on low-level modules, both should depend on abstractions. Abstractions should not depend upon details. Details should depend upon abstractions. Dependency Inversion Principle is often …

Buzzword Buster – Dependency Inversion Principle Read More »

Buzzword Buster – Spaghetti Code

Definition: You have Spaghetti code when the flow in your application becomes so complex and tangled it resembles a bowl of spaghetti where the different execution paths are twisted and intertwined it’s hard to make out where they start and end. In software design, this is usually a danger associated with procedural programming or frequent, …

Buzzword Buster – Spaghetti Code Read More »

Buzzword Buster – Macaroni Code

Definition: You have Macaroni code when your application is chopped up into many little pieces and it’s difficult to see the big picture which may exist only in your (or someone else’s!) head. In software design, you can often end up with Macaroni code when you overuse/misuse/abuse abstractions, and it’s one of the main dangers …

Buzzword Buster – Macaroni Code Read More »

Buzzword Buster – IoC

Definition: Inversion of Control (IoC) refers to the inversion of the flow of control (the order in which individual statements, function calls, etc. are executed) in a software. You’ll often hear the term Hollywood principle being mentioned in the same breath as IoC, it simply states "Don’t call us, we’ll call you" which more or …

Buzzword Buster – IoC Read More »

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close