An introduction to parameterised types

This article is about parameterised types, which are also known as generics or parametric polymorphism.  I first came across them in the functional programming language ML, but they have spread beyond the functional programming world, to languages like Java, C#, and TypeScript. Parameterised types let you define a family of similar but different types What … Continue reading An introduction to parameterised types

Modularisation – coupling and cohesion

This is related to the second of the things requested by Jesper, which was encapsulation.  Encapsulation is a tool to use when designing software.  It’s a bit abstract, and I don’t think people always agree on what it means.  To me, encapsulation is part of the bigger term modularisation, which doesn’t immediately help because it’s … Continue reading Modularisation – coupling and cohesion

Exceptions 3: Where to put catch blocks and handle exceptions

This is the third article in a series about exceptions: BasicsTypes and filteringWhere to put catch blocks and handle exceptionsFinishing up Where your catch blocks are and where exceptions are dealt with matters - probably best to avoid sticking a pin into your code randomly to choose the spot.Image credit The location of catch blocks … Continue reading Exceptions 3: Where to put catch blocks and handle exceptions