Learning F# – Part 2

Disclaimer: I do not claim credit for the code examples and much of the contents here, these are mostly extracts from the book by Chris Smith, Programming F#: A comprehensive guide for writing simple code to solve complex problems. In fact, if you’re thinking of learning F# and like what you read here, you should buy …

Learning F# – Part 2 Read More »

Buzzword Buster – AOP

Definition: Aspect Oriented Programming (AOP) is a programming paradigm where each application can focus on its primary functions and core concerns by encouraging greater modularity and increasing separation of cross-cutting concerns (such as logging and authentication). Purpose: In any real-world applications, when you’re writing code to address the problem domain (say, booking an order) you …

Buzzword Buster – AOP 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: 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 »

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.