Skip to main content

Why Naming Matters: Tips for Effective Naming Conventions


 In the world of IT, there’s a saying you often hear:

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

While this may be a joke, it also holds a kernel of truth. Naming things in software design often sparks heated debates, and there’s a reason for that. Good naming conventions can significantly impact the readability, maintainability, and overall quality of the code.

Recently, I organized workshops to define our new platform API specification. Defining good names for the endpoints and parameters was a major part of these discussions. Establishing a few conventions and best practices upfront and referring back to them when in doubt helped remove subjectivity and emotion from the discussion, facilitating a more objective and productive dialogue.

So here are some typical best practices for naming variables, endpoints, parameters, classes, attributes, tables, etc.:

  • Clear: A name should be self-explanatory and clearly describe its intent. If you need a comment to explain a name, the name is probably not clear enough. This means that clarity should be preferred over brevity and acronyms should be avoided as much as possible.

  • Concise: A name should be concise, as long names are also hard to read. This means avoiding repetition and stating the obvious, but as mentioned above if choice needs to be made between brevity and clarity, choose for clarity.

  • Pronounceable: A name should be easily pronounceable, as the reader with internally vocalize the name. A pronounceable name can therefore significantly improve code readability and maintainability.

  • Professional: A name should be professional, as you never know who might read it in the future. This means avoiding inside jokes, offensive names, memes, temporary labels…​

  • Consistent: Be as consistent as possible, i.e.

    • Use the same terminology everywhere and do not use synonyms (e.g. when using begin/end in one place, don’t use start/finish in another).

    • Ensure consistency in language, i.e. all names should be in the same language (preferably English), while also agreeing on US versus UK english (e.g. colour versus color).

    • If you use specific prefixes or suffixes for specific names, apply them always for the same types of names.

  • Unique: Duplicate names should be avoided as much as possible. Ideally, each name should be sufficiently distinct from others to prevent confusion. Prefixes can help achieve this, and ideally, these prefixes can form a logical hierarchy, indicating relationships between different elements.

But defining just the name is not enough. Defining the style in which names are written is another area that can spark debates. Consistency in style is crucial, and once agreed upon, it should be adhered to rigorously.
Here are some common naming styles:

  • Camel Case (camelCase): The first letter of the first word is lowercase, and the first letter of each subsequent concatenated word starts with an uppercase letter.
    Example: userProfile, calculateTotalAmount

  • Pascal Case (PascalCase): Similar to camel case, but the first letter of the first word is also uppercase.
    Example: UserProfile, CalculateTotalAmount

  • Snake Case (snake_case): Words are separated by underscores and all letters are lowercase.
    Example: user_profile, calculate_total_amount

  • Kebab Case (kebab-case): Words are separated by hyphens.
    Example: user-profile, calculate-total-amount

  • Space Case: Words are separated by spaces
    Example: User Profile, Calculate Total Amount

  • Screaming Snake Case (SCREAMING_SNAKE_CASE): Like snake case, but all letters are uppercase.
    Example: USER_PROFILE, CALCULATE_TOTAL_AMOUNT

  • Studly Caps: Alternating capitalization, usually starting with an uppercase letter. This isn’t standard and can vary.
    Example: UsErPrOfIlE, CaLcUlAtEtOtAlAmOuNt

  • Train Case (Train-Case): Similar to Pascal Case, but words are separated by hyphens. It is like a combination of Pascal Case and Kebab Case.
    Example: User-Profile, Calculate-Total-Amount

  • Start Case (Start Case): All words are capitalized and separated by spaces. Commonly used in titles or headers.
    Example: User Profile, Calculate Total Amount

  • Lower case (lowercase): All characters are lowercase without any separation for multiple words.
    Example: userprofile, calculatetotalamount

  • Upper case (UPPERCASE): All characters are uppercase without any separation for multiple words.
    Example: USERPROFILE, CALCULATETOTALAMOUNT

Naming is a crucial aspect of software design and development, and it’s often the source of strong opinions. By setting clear, consistent rules upfront, you can make the naming process more objective and reduce the potential for disagreement. Just as marketing departments have style guides, IT departments should have naming guides to ensure clarity and consistency across their deliverables. This will ultimately lead to more readable, maintainable, and professional software.

Comments

Popular posts from this blog

Transforming the insurance sector to an Open API Ecosystem

1. Introduction "Open" has recently become a new buzzword in the financial services industry, i.e.   open data, open APIs, Open Banking, Open Insurance …​, but what does this new buzzword really mean? "Open" refers to the capability of companies to expose their services to the outside world, so that   external partners or even competitors   can use these services to bring added value to their customers. This trend is made possible by the technological evolution of   open APIs (Application Programming Interfaces), which are the   digital ports making this communication possible. Together companies, interconnected through open APIs, form a true   API ecosystem , offering best-of-breed customer experience, by combining the digital services offered by multiple companies. In the   technology sector   this evolution has been ongoing for multiple years (think about the travelling sector, allowing you to book any hotel online). An excellent example of this

Are product silos in a bank inevitable?

Silo thinking   is often frowned upon in the industry. It is often a synonym for bureaucratic processes and politics and in almost every article describing the threats of new innovative Fintech players on the banking industry, the strong bank product silos are put forward as one of the main blockages why incumbent banks are not able to (quickly) react to the changing customer expectations. Customers want solutions to their problems   and do not want to be bothered about the internal organisation of their bank. Most banks are however organized by product domain (daily banking, investments and lending) and by customer segmentation (retail banking, private banking, SMEs and corporates). This division is reflected both at business and IT side and almost automatically leads to the creation of silos. It is however difficult to reorganize a bank without creating new silos or introducing other types of issues and inefficiencies. An organization is never ideal and needs to take a number of cons

RPA - The miracle solution for incumbent banks to bridge the automation gap with neo-banks?

Hypes and marketing buzz words are strongly present in the IT landscape. Often these are existing concepts, which have evolved technologically and are then renamed to a new term, as if it were a brand new technology or concept. If you want to understand and assess these new trends, it is important to   reduce the concepts to their essence and compare them with existing technologies , e.g. Integration (middleware) software   ensures that 2 separate applications or components can be integrated in an easy way. Of course, there is a huge evolution in the protocols, volumes of exchanged data, scalability, performance…​, but in essence the problem remains the same. Nonetheless, there have been multiple terms for integration software such as ETL, ESB, EAI, SOA, Service Mesh…​ Data storage software   ensures that data is stored in such a way that data is not lost and that there is some kind guaranteed consistency, maximum availability and scalability, easy retrieval and searching

IoT - Revolution or Evolution in the Financial Services Industry

1. The IoT hype We have all heard about the   "Internet of Things" (IoT)   as this revolutionary new technology, which will radically change our lives. But is it really such a revolution and will it really have an impact on the Financial Services Industry? To refresh our memory, the Internet of Things (IoT) refers to any   object , which is able to   collect data and communicate and share this information (like condition, geolocation…​)   over the internet . This communication will often occur between 2 objects (i.e. not involving any human), which is often referred to as Machine-to-Machine (M2M) communication. Well known examples are home thermostats, home security systems, fitness and health monitors, wearables…​ This all seems futuristic, but   smartphones, tablets and smartwatches   can also be considered as IoT devices. More importantly, beside these futuristic visions of IoT, the smartphone will most likely continue to be the center of the connected devi

PSD3: The Next Phase in Europe’s Payment Services Regulation

With the successful rollout of PSD2, the European Union (EU) continues to advance innovation in the payments domain through the anticipated introduction of the   Payment Services Directive 3 (PSD3) . On June 28, 2023, the European Commission published a draft proposal for PSD3 and the   Payment Services Regulation (PSR) . The finalized versions of this directive and associated regulation are expected to be available by late 2024, although some predictions suggest a more likely timeline of Q2 or Q3 2025. Given that member states are typically granted an 18-month transition period, PSD3 is expected to come into effect sometime in 2026. Notably, the Commission has introduced a regulation (PSR) alongside the PSD3 directive, ensuring more harmonization across member states as regulations are immediately effective and do not require national implementation, unlike directives. PSD3 shares the same objectives as PSD2, i.e.   increasing competition in the payments landscape and enhancing consum

Trade-offs Are Inevitable in Software Delivery - Remember the CAP Theorem

In the world of financial services, the integrity of data systems is fundamentally reliant on   non-functional requirements (NFRs)   such as reliability and security. Despite their importance, NFRs often receive secondary consideration during project scoping, typically being reduced to a generic checklist aimed more at compliance than at genuine functionality. Regrettably, these initial NFRs are seldom met after delivery, which does not usually prevent deployment to production due to the vague and unrealistic nature of the original specifications. This common scenario results in significant end-user frustration as the system does not perform as expected, often being less stable or slower than anticipated. This situation underscores the need for   better education on how to articulate and define NFRs , i.e. demanding only what is truly necessary and feasible within the given budget. Early and transparent discussions can lead to system architecture being tailored more closely to realisti

An overview of 1-year blogging

Last week I published my   60th post   on my blog called   Bankloch   (a reference to "Banking" and my family name). The past year, I have published a blog on a weekly basis, providing my humble personal vision on the topics of Fintech, IT software delivery and mobility. This blogging has mainly been a   personal enrichment , as it forced me to dive deep into a number of different topics, not only in researching for content, but also in trying to identify trends, innovations and patterns into these topics. Furthermore it allowed me to have several very interesting conversations and discussions with passionate colleagues in the financial industry and to get more insights into the wonderful world of blogging and more general of digital marketing, exploring subjects and tools like: Search Engine Optimization (SEO) LinkedIn post optimization Google Search Console Google AdWorks Google Blogger Thinker360 Finextra …​ Clearly it is   not easy to get the necessary attention . With th

Low- and No-code platforms - Will IT developers soon be out of a job?

“ The future of coding is no coding at all ” - Chris Wanstrath (CEO at GitHub). Mid May I posted a blog on RPA (Robotic Process Automation -   https://bankloch.blogspot.com/2020/05/rpa-miracle-solution-for-incumbent.html ) on how this technology, promises the world to companies. A very similar story is found with low- and no-code platforms, which also promise that business people, with limited to no knowledge of IT, can create complex business applications. These   platforms originate , just as RPA tools,   from the growing demand for IT developments , while IT cannot keep up with the available capacity. As a result, an enormous gap between IT teams and business demands is created, which is often filled by shadow-IT departments, which extend the IT workforce and create business tools in Excel, Access, WordPress…​ Unfortunately these tools built in shadow-IT departments arrive very soon at their limits, as they don’t support the required non-functional requirements (like high availabili

Deals as a competitive differentiator in the financial sector

In my blog " Customer acquisition cost: probably the most valuable metric for Fintechs " ( https://bankloch.blogspot.com/2020/06/customer-acquisition-cost-probably-most.html ) I described how a customer acquisition strategy can make or break a Fintech. In the traditional Retail sector, focused on selling different types of products for personal usage to end-customers,   customer acquisition  is just as important. No wonder that the advertisement sector is a multi-billion dollar industry. However in recent years due to the digitalization and consequently the rise of   Digital Marketing , customer acquisition has become much more focused on   delivering the right message via the right channel to the right person on the right time . Big tech players like Google and Facebook are specialized in this kind of targeted marketing, which is a key factor for their success and multi-billion valuations. Their exponential growth in marketing revenues seems however coming to a halt, as digi

AI in Financial Services - A buzzword that is here to stay!

In a few of my most recent blogs I tried to   demystify some of the buzzwords   (like blockchain, Low- and No-Code platforms, RPA…​), which are commonly used in the financial services industry. These buzzwords often entail interesting innovations, but contrary to their promise, they are not silver bullets solving any problem. Another such buzzword is   AI   (or also referred to as Machine Learning, Deep Learning, Enforced Learning…​ - the difference between those terms put aside). Again this term is also seriously hyped, creating unrealistic expectations, but contrary to many other buzzwords, this is something I truly believe will have a much larger impact on the financial services industry than many other buzzwords. This opinion is backed by a study of McKinsey and PWC indicating that 72% of company leaders consider that AI will be the most competitive advantage of the future and that this technology will be the most disruptive force in the decades to come. Deep Learning (= DL) is a s