Interface Segregation Principle

Interface Segregation Principle

What is the Interface Segregation Principle? Definition: Many client-specific interfaces are better than one general-purpose interface. This principle is fairly straightforward. It is really just saying to keep your interfaces to a specific role, keep them small and concise. The video below gives an example. Reason: This enables code concrete classes not to have to […]

Interface Segregation Principle Read More »

Liskov substitution principle

Firstly, what is the Liskov substitution principle? Definition: Objects in an application should be replaceable with instances of their subtypes without altering the correctness of that program. To understand the Liskov substitution principle is useful to understand the concepts of Contravariance and Covariance. Contravariance Contravariance is the conversion of a class from its sub class

Liskov substitution principle Read More »

Single Responsibility Principle

Firstly, what is the Single Responsibility Principle? Definition: An object should have a single responsibility. In practice, to adhere to this principle, an object is a class and that class’s functionality is grouped around a single idea or unit of responsibility. Robert C Martin defined responsibility as a reason to change. This means that a

Single Responsibility Principle Read More »

Surviving Office Politics

Surviving Office Politics

In this article I will share what I’ve learned about surviving office politics as a developer. Over the years I have found a commonality in the way developers think, which is fundamentally different than non-technical managers. This difference has often perplexed me and I have often wondered exactly what the nature of this difference is.

Surviving Office Politics Read More »