Naming — one of the hardest things in Software development

Leena
Leena
Dec 29, 2018 · 2 min read

There are only two hard things in Computer Science: cache invalidation and naming things.

– Phil Karlton

Image for post
Image for post
http://agileinaflash.blogspot.com/2009/02/meaningful-names.html

I prefer to leave interfaces unadorned. The preceding I, so common in today’s legacy wads, is a distraction at best and too much information at worst. I don’t want my users knowing that I’m handing them an interface.

Clean Code, Uncle Bob Martin

We all struggle with naming on a day to day basis. What should we call a class, a function, a field or a table in the database? The fact that it is costly to change later. And the wrong namings add to the complexity because of the confusion it creates over time.

Ubiquitous Language

Ubiquitous Language is a technique to help you arrive at a common, shared language. A language that the developers and the domain experts/users use to communicate.

And, the common language helps the team to arrive at better names. The way to arrive at such a common language is through conversation.

Domain-Driven Design

Ubiquitous Language is one of the critical parts of Domain-Driven Design (DDD). The premise of DDD is initiating a creative collaboration between technical and domain experts. DDD helps to refine the models addressing the problems of a particular domain.

It is much deeper. The following mindmap should give you a quick overview and depth of this.

Image for post
Image for post

If done well Domain-driven design helps you move to Microservice Architecture.

Further reading

Ubiquitous Language — By James Shore

Domain Driven Design: Tackling Complexity Software in the Heart of Software

Pluralsight Course — Domain Driven Design Fundamentals

Pluralsight course — Domain Driven Design In Practice

Domain Driven Design By Eric Evans

Hunting for great names in programming by DHH

An updated version of an earlier post published at www.multunus.com.

Continuous Delivery

Tidbits about Continuous Delivery

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store