Ten years ago, you only needed to know GoF patterns, and you could call yourself a good developer.
That's not true anymore. If you want to build Hight Quality software, you need architectural knowledge.
4 basic architecture to start.
N-Layered Architecture
This architecture organizes applications into horizontal layers, each responsible for specific tasks.
- Presentation
- Business logic
- Data access
These layers promote separation of concerns and modularity.
Hexagonal Architecture
Also known as Ports and Adapters, Hexagonal Architecture isolates the core application from external dependencies.
The core defines ports/interfaces, while adapters implement them.
This architecture promotes flexibility and testability by decoupling the application from frameworks and technologies.
Onion Architecture
Building on the principles of Hexagonal Architecture, Onion Architecture establishes a clear separation between the core/domain and infrastructure.
Layers wrap around the core, with the inner layers representing abstract business concerns and the outer layers dealing with technical details and frameworks.
Clean Architecture
Proposed by Uncle Bob, Clean Architecture emphasizes the separation of concerns and the independence of business rules from external frameworks.
A clear boundary between layers ensures scalability, maintainability, and alignment with the project's needs.
These architectures provide different approaches to designing software systems, each with strengths and weaknesses.
But ultimately, the choice of architecture depends on your project's specific requirements!
Have you used any of these?
Every week I write about my experiences and challenges as Software Engineer.
Tweets and threads break down complex tech into simple terms.
Talking to a Junior developer, I was stunned at how confused he was about 3 primary concepts.
But also remembered nobody explained these concepts back in my college days.
I hope this helps some young engineers out there.
1. Hashing: this is a one-way process used for data integrity verification.
It converts input data (plaintext) into a fixed-length string (hash value) using a hash function.
Hashing helps ensure data hasn't been tampered with, but it's irreversible!
2. Encryption: this is the real deal when it comes to data security.
It transforms data into an unreadable format (ciphertext) using an algorithm and a secret key. The ciphertext can be decrypted back to the original data with the right key.