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  AWS Announces AWS BugBust—The World’s First Global Competition To Find And Fix 1 Million Software Bugs

 

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  Ensuring Scale And Compliance Of Your Terraform Deployment With Cloud Build

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
aster-cloud-sms-pexels-tim-samuel-6697306
View Post
  • Programming
  • Software

Send SMS texts with Amazon’s SNS simple notification service

  • July 1, 2025
aster-cloud-website-pexels-goumbik-574069
View Post
  • Programming
  • Software

Host a static website on AWS with Amazon S3 and Route 53

  • June 27, 2025
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

Stay Connected!
LATEST
  • How to create an AWS free tier account
    • July 10, 2025
  • How to configure multiple AWS CLI authentication credentials
    • July 10, 2025
  • 3
    Formula E accelerates its work with Google Cloud Storage and Google Workspace
    • July 9, 2025
  • What is database as a service (DBaaS)?
    • July 7, 2025
  • The cloud’s role in PQC migration
    • July 7, 2025
  • 6
    Hybrid cloud has hit the mainstream – but firms are still confused about costs
    • July 7, 2025
  • 7
    Building secure, scalable AI in the cloud with Microsoft Azure
    • July 5, 2025
  • 8
    Turns out OpenAI is the customer behind Oracle’s mysterious $30 billion cloud deal
    • July 3, 2025
  • aster-cloud-erp-bill_of_materials_2 9
    What is an SBOM (software bill of materials)?
    • July 2, 2025
  • aster-cloud-sms-pexels-tim-samuel-6697306 10
    Send SMS texts with Amazon’s SNS simple notification service
    • July 1, 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
    A looming hyperscaler exodus? UK IT leaders are thinking of ditching US cloud providers – here’s why
    • June 26, 2025
  • Genome 2
    AlphaGenome: AI for better understanding the genome
    • June 25, 2025
  • aster-cloud-website-pexels-goumbik-574069 3
    Host a static website on AWS with Amazon S3 and Route 53
    • June 27, 2025
  • Camping 4
    The Summer Adventures : Camping Essentials
    • June 27, 2025
  • 6 edge monitoring best practices in the cloud
    • June 25, 2025
  • /
  • Technology
  • Tools
  • About
  • Contact Us

Input your search keywords and press Enter.