Good old days!

My good friend Raj sent me some pic­tures he took from Chi­nese new year 2006, and real­ly brought back some nice mem­o­ries from the days gone by! As some of you may know, I per­formed on stage for Chi­nese new year in 2006 in Trafal­gar Square, in the mid­dle of the freez­ing cold in Feb! …

Good old days!Read More »

Imperative vs. Declarative Languages

Fol­low­ing my pre­vi­ous post on mul­ti-lan­guage (poly­glot) and mul­ti-par­a­digm (poly-par­a­digm) devel­op­ment, I thought I’d con­tin­ue on the same thread for a lit­tle and do some com­par­isons on some of the pop­u­lar types of pro­gram­ming lan­guages. Def­i­n­i­tion: An imper­a­tive pro­gram­ming lan­guage such as C# or Java allows you to spec­i­fy step-by-step how a prob­lem should be …

Imper­a­tive vs. Declar­a­tive Lan­guagesRead More »

Less is MORE

Just fin­ished watch­ing an inter­est­ing sem­i­nar video by the guys from Object Men­tor (a con­sul­tant com­pa­ny found­ed by Robert C Mar­tin, the father of agile devel­op­ment) at: The video is about an hour long and cov­ered a large num­ber of top­ics around using dif­fer­ent lan­guages (poly­glot) and dif­fer­ent pro­gram­ming par­a­digms (poly-par­a­digm) to sim­pli­fy and …

Less is MORERead More »

Buzzword Buster – Cross-Cutting Concern

Def­i­n­i­tion: A Cross-Cut­t­ing Con­cern is a con­cern your appli­ca­tion needs to address that is unre­lat­ed to your application’s prob­lem domain, and ‘cuts across’ oth­er con­cerns. Typ­i­cal exam­ples include: log­ging per­sis­tence secu­ri­ty error han­dling They are usu­al­ly dif­fi­cult to decom­pose from the rest of the sys­tem and result in tan­gled code. Address­ing these cross-cut­t­ing con­cerns will …

Buzz­word Buster – Cross-Cut­ting Con­cernRead More »

Buzzword Buster — DSL

Def­i­n­i­tion: A Domain Specif­ic Lan­guage (DSL) is a pro­gram­ming lan­guage that’s ded­i­cat­ed to a par­tic­u­lar prob­lem domain. DSLs are often used to sup­port domain-dri­ve design and mod­el­ling. It’s the oppo­site of gen­er­al pur­pose pro­gram­ming lan­guages such as C# or Java. Advan­tages: Code looks like domain prose. Eas­i­er to under­stand by every­one. Eas­i­er to align with …

Buzz­word Buster — DSLRead More »

Buzzword Buster — Dependency Inversion Principle

Def­i­n­i­tion: Depen­den­cy Inver­sion Prin­ci­ple refers to a spe­cif­ic form of decou­pling aimed at rend­ing high-lev­­el mod­ules inde­pen­dent of the low-lev­­el mod­ules’ imple­men­ta­tion details. Its prin­ci­ple states: High-lev­­el mod­ules should not depend on low-lev­­el mod­ules, both should depend on abstrac­tions. Abstrac­tions should not depend upon details. Details should depend upon abstrac­tions. Depen­den­cy Inver­sion Prin­ci­ple is often …

Buzz­word Buster — Depen­den­cy Inver­sion Prin­ci­pleRead More »

Buzzword Buster — Spaghetti Code

Def­i­n­i­tion: You have Spaghet­ti code when the flow in your appli­ca­tion becomes so com­plex and tan­gled it resem­bles a bowl of spaghet­ti where the dif­fer­ent exe­cu­tion paths are twist­ed and inter­twined it’s hard to make out where they start and end. In soft­ware design, this is usu­al­ly a dan­ger asso­ci­at­ed with pro­ce­dur­al pro­gram­ming or fre­quent, …

Buzz­word Buster — Spaghet­ti CodeRead More »

Buzzword Buster – Macaroni Code

Def­i­n­i­tion: You have Mac­a­roni code when your appli­ca­tion is chopped up into many lit­tle pieces and it’s dif­fi­cult to see the big pic­ture which may exist only in your (or some­one else’s!) head. In soft­ware design, you can often end up with Mac­a­roni code when you overuse/misuse/abuse abstrac­tions, and it’s one of the main dan­gers …

Buzz­word Buster – Mac­a­roni CodeRead More »

Buzzword Buster — IoC

Def­i­n­i­tion: Inver­sion of Con­trol (IoC) refers to the inver­sion of the flow of con­trol (the order in which indi­vid­ual state­ments, func­tion calls, etc. are exe­cut­ed) in a soft­ware. You’ll often hear the term Hol­ly­wood prin­ci­ple being men­tioned in the same breath as IoC, it sim­ply states “Don’t call us, we’ll call you” which more or …

Buzz­word Buster — IoCRead 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.