aster.cloud aster.cloud
  • /
  • Platforms
    • Public Cloud
    • On-Premise
    • Hybrid Cloud
    • Data
  • Architecture
    • Design
    • Solutions
    • Enterprise
  • Engineering
    • Automation
    • Software Engineering
    • Project Management
    • DevOps
  • Programming
    • Learning
  • Tools
  • About
  • /
  • Platforms
    • Public Cloud
    • On-Premise
    • Hybrid Cloud
    • Data
  • Architecture
    • Design
    • Solutions
    • Enterprise
  • Engineering
    • Automation
    • Software Engineering
    • Project Management
    • DevOps
  • Programming
    • Learning
  • Tools
  • About
aster.cloud aster.cloud
  • /
  • Platforms
    • Public Cloud
    • On-Premise
    • Hybrid Cloud
    • Data
  • Architecture
    • Design
    • Solutions
    • Enterprise
  • Engineering
    • Automation
    • Software Engineering
    • Project Management
    • DevOps
  • Programming
    • Learning
  • Tools
  • About
  • DevOps
  • Practices
  • Programming
  • Tools

Reasons To Flatten Your Source Code

  • Ackley Wyndam
  • February 20, 2021
  • 3 minute read

The decades pass, but we still write software in the same way as in the XX century.

Our software is a large castle, formed by several layers superimposed and mixed, in order to facilitate its own maintenance, but which, in fact, end up creating the opposite effect: a true monolith.


Partner with aster.cloud
for your next big idea.
Let us know here.



From our partners:

CITI.IO :: Business. Institutions. Society. Global Political Economy.
CYBERPOGO.COM :: For the Arts, Sciences, and Technology.
DADAHACKS.COM :: Parenting For The Rest Of Us.
ZEDISTA.COM :: Entertainment. Sports. Culture. Escape.
TAKUMAKU.COM :: For The Hearth And Home.
ASTER.CLOUD :: From The Cloud And Beyond.
LIWAIWAI.COM :: Intelligence, Inside and Outside.
GLOBALCLOUDPLATFORMS.COM :: For The World's Computing Needs.
FIREGULAMAN.COM :: For The Fire In The Belly Of The Coder.
ASTERCASTER.COM :: Supra Astra. Beyond The Stars.
BARTDAY.COM :: Prosperity For Everyone.

Whaaaattt?

Oh yes! Class structures, complex domain hierarchies and extrinsic aspects incorporated into the code make it expensive, and difficult to maintain and operate.

In this article, I want to focus only on the “extrinsic aspects” of the source code, that is, those things that shouldn’t be “embedded” within the source code.

According to Oxford Dictionary:

ex·trin·sic: not part of the essential nature of someone or something; coming or operating from outside.

 

Extrinsic factors might affect time budgets

There was a time when we started to identify these “extrinsic aspects” as just “aspects”, especially in the Java world, where Aspect-Oriented Programming techniques emerged.

“In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns. It does so by adding additional behavior to existing code (an advice) without modifying the code itself, instead separately specifying which code is modified via a “pointcut” specification, such as “log all function calls when the function’s name begins with ‘set'”. This allows behaviors that are not central to the business logic (such as logging) to be added to a program without cluttering the code core to the functionality. AOP forms a basis for aspect-oriented software development.”

Although well-intentioned, this practice only “masked” the “extrinsic aspects”, keeping them inside the source code in some way, and helping to increase the complexity of maintaining the software. While there are those who disagree with this statement, this is easily proven when trying to maintain AOP-based software from 10 years ago.

Read More  Introducing The Anthos Developer Sandbox—Free With A Google Account

 

What are we talking about? Give me examples!

Of course! Here are some examples of extrinsic aspects that are easier to identify: Security, scalability, high availability. However, there are others more “exotic” such as: Discovery and control of services.

Exemplifying the issue of high availability and scalability, we have the insistent use of multithreaded programming as a mechanism to parallelize processing.

And we can cite several examples of “extrinsic aspects” incorporated in the software, as in this list:

  • Internally controlled elasticity: When a program decides to increase or decrease the consumption of resources by scaling a number of threads or processes internally.
  • Remote service control: When a program stores a list of names or addresses of other servers, using it for load balancing or task distribution.
  • Internal workflow control: When a program controls stages of complex processing using its own internal structures.

Many bad ideas arise from good intentions

Programmers often like to solve problems themselves, without relying on other people and other tools, bringing responsibility for things they shouldn’t have into the source code.

This type of attitude is seen as “proactivity” or “agility”, a characteristic often appreciated by short-term vision managers.

 

Why is this a bad thing?

I can name a few simple reasons, but there is a very clear reason: Your software must become cloud-based, and these “extrinsic aspects” make it difficult or impossible to make the best use of this technology.

Cloud-based software does not necessarily need to be hosted by a cloud service provider, such as AWS or Google Cloud.

Techniques such as: Virtualization, Infrastructure as Code, Immutable Servers, Service Discovery, Service Choreography, and many others are becoming the standard in progressive and modern companies, and in order to be successful in their use, it is necessary that your code be the most simple and functional as possible, ie: Flat.

Read More  Sharing Is Caring: How NVIDIA GPU Sharing On GKE Saves You Money

I say simple, capisci?

Today there are tools to assist interconnection and scalability such as: Kubernetes, RabbitMQ, and Apache Zookeeper. You should let tools like these take care of the “extrinsic aspects” of your software, focusing only on the functional aspect of every program you create.

Every time you think about adding new threads to your program, you are embedding things in it that should be external, increasing its complexity and maintenance cost. Even if it seems like a good idea, think about the operation and the complexity of what you are doing now.

Letting “extrinsic aspects” be externally managed gives Devops greater freedom to provide your solution more efficiently, lowering costs and increasing the economic and operational efficiency of the software.

This article is republished from hackernoon.com


For enquiries, product placements, sponsorships, and collaborations, connect with us at [email protected]. We'd love to hear from you!

Our humans need coffee too! Your support is highly appreciated, thank you!

Ackley Wyndam

Related Topics
  • AWS
  • devops
  • Google Cloud
  • Kubernetes
  • RabbitMQ
  • Source code
You May Also Like
notta-ai-header
View Post
  • Featured
  • Tools

Notta vs Fireflies: Which AI Transcription Tool Deserves Your Attention in 2025?

  • May 16, 2025
zedreviews-Apple-iPhone-16-Pro-finish-lineup-240909
View Post
  • Featured
  • Gears
  • Tech
  • Technology
  • Tools

Apple debuts iPhone 16 Pro and iPhone 16 Pro Max

  • September 10, 2024
zedreviews-Apple-AirPods-Active-Noise-Cancellation-240909
View Post
  • Featured
  • Gears
  • Tech
  • Technology
  • Tools

Apple introduces AirPods 4 and the world’s first all-in-one hearing health experience with AirPods Pro 2

  • September 10, 2024
View Post
  • DevOps
  • Engineering
  • Platforms

How To Fail At Platform Engineering

  • March 11, 2024
Laptop | Tools
View Post
  • Computing
  • Engineering
  • Practices

Best Practices For Securing Kubernetes Deployments

  • December 22, 2023
View Post
  • Computing
  • DevOps
  • Platforms

The IBM Approach To Reliable Quantum Computing

  • November 28, 2023
Automation
View Post
  • Automation
  • Platforms
  • Tools

Automate Your Data Warehouse Migration To BigQuery With New Data Migration Tool

  • August 24, 2023
Frontier Model Security
View Post
  • Platforms
  • Practices
  • Technology

Frontier Model Security

  • August 12, 2023

Stay Connected!
LATEST
  • 1
    Just make it scale: An Aurora DSQL story
    • May 29, 2025
  • 2
    Reliance on US tech providers is making IT leaders skittish
    • May 28, 2025
  • Examine the 4 types of edge computing, with examples
    • May 28, 2025
  • AI and private cloud: 2 lessons from Dell Tech World 2025
    • May 28, 2025
  • 5
    TD Synnex named as UK distributor for Cohesity
    • May 28, 2025
  • Weigh these 6 enterprise advantages of storage as a service
    • May 28, 2025
  • 7
    Broadcom’s ‘harsh’ VMware contracts are costing customers up to 1,500% more
    • May 28, 2025
  • 8
    Pulsant targets partner diversity with new IaaS solution
    • May 23, 2025
  • 9
    Growing AI workloads are causing hybrid cloud headaches
    • May 23, 2025
  • Gemma 3n 10
    Announcing Gemma 3n preview: powerful, efficient, mobile-first AI
    • May 22, 2025
about
Hello World!

We are aster.cloud. We’re created by programmers for programmers.

Our site aims to provide guides, programming tips, reviews, and interesting materials for tech people and those who want to learn in general.

We would like to hear from you.

If you have any feedback, enquiries, or sponsorship request, kindly reach out to us at:

[email protected]
Most Popular
  • 1
    Cloud adoption isn’t all it’s cut out to be as enterprises report growing dissatisfaction
    • May 15, 2025
  • 2
    Hybrid cloud is complicated – Red Hat’s new AI assistant wants to solve that
    • May 20, 2025
  • 3
    Google is getting serious on cloud sovereignty
    • May 22, 2025
  • oracle-ibm 4
    Google Cloud and Philips Collaborate to Drive Consumer Marketing Innovation and Transform Digital Asset Management with AI
    • May 20, 2025
  • notta-ai-header 5
    Notta vs Fireflies: Which AI Transcription Tool Deserves Your Attention in 2025?
    • May 16, 2025
  • /
  • Technology
  • Tools
  • About
  • Contact Us

Input your search keywords and press Enter.