Raul Junco Profile picture
Jul 7, 2023 9 tweets 3 min read Read on X
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.

Follow me @RaulJuncoV if you like to hear more. 👊

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Raul Junco

Raul Junco Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @RaulJuncoV

Nov 1, 2023
Code Problems will cause Data Problems.

Even the smallest bugs will result in an unpredictable state for the data.
You validate data in front-ends and back-ends.

Yet, you need database-level constraints.

PRIMARY Key Constraint

This means that the column’s values are both not null and unique as well.

Each table in the database should have a primary key to identify its records.

FOREIGN Key Constraint

This means the column’s values must match those in another table column, which is usually a primary key.

Establishes a relationship between two tables using a column or set of columns.

UNIQUE Constraint

This means that the column cannot have duplicate values across the whole table.

Great for a username or email field on a User's table.

CHECK Constraint

The data must meet a custom expression for acceptance.

For example, if you have a Score percentage column whose values have to be between 0 and 100, you can use a check constraint to enforce that.

NOT NULL Constraint

Ensures that a column does not contain NULL values. The column must have a value for each row.

Define NOT NULL columns when your application assumes the existence of a value.

DEFAULT Constraint

If you don't provide an explicit value, the system assigns a default value to the column.

It is Useful when you want to provide a default value instead of leaving it NULL.

Are you protecting your Data?
Image
PRIMARY Key Constraint Image
FOREIGN Key Constraint Image
Read 7 tweets
Aug 11, 2023
Finding the data we need is an age-old problem.

But without the right search algorithms, you might be lost in the jungle.

Here are 7 Search Algorithms you need to know!

1. Linear Search: This is the simplest searching algorithm.

Elements are searched one by one in a linear… https://t.co/9aaEbIxQdFtwitter.com/i/web/status/1…



Image
Image
Image
Image
Interpolation Search: https://t.co/RTYYolHbQEtwitter.com/i/web/status/1…
Image
Jump Search: https://t.co/PDi2CA3FAYtwitter.com/i/web/status/1…
Image
Read 5 tweets
Aug 7, 2023
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. Image
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! Image
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. Image
Read 7 tweets
Aug 5, 2023
Everybody who writes tests knows the hard part is getting started.

Here are 5 steps to help you start writing tests like a Real Software Developer.
Write Your First Test

Start small and simple! Pick an isolated function—it doesn’t have dependencies, that is.

Set your test framework, and run your first test.

If you can test all the isolated functions, you’ll be a thousand times better off than without any tests. Image
Understand the Testing Pyramid

The testing pyramid categorizes tests into three layers:

- Unit, focus on testing individual components in isolation

- Integration, verify the interactions between different components

- End-to-End, ensure the entire system functions correctly Image
Read 8 tweets
Jul 24, 2023
Technical interviews are hard.

5 Do's and Don'ts

Do: Ask questions; the requirements are never complete; clarify them.
Don't: Assume requirements.

Do: Justify your trade-offs. Explain why you left that line there.
Don't: Assume your interviewer understands your solution.

Do:… https://t.co/FrkLnGbukxtwitter.com/i/web/status/1…
Technical interviews are hard, 5 Do's and Don'ts
Every week I write about my experiences and challenges as Software Engineer.

Threads break down complex tech into simple terms.

Share if you liked it.
Deisbel added a really good point here. 👇
Read 4 tweets
Jul 18, 2023
HashMap is a Data Structure every SWE should know.

They provide an efficient way to store and retrieve data by mapping keys to values.

Here are 6 things you need to know about Hashmaps: Image
A hashmap is a collection of key-value pairs where each key is unique.

It uses a hashing function to convert the key into an index (hash code) that maps to a location in an underlying array.

In simple terms, they map keys to values. Image
Hashing

Hashing is the process of converting a key into a hash code.

The hash code is an integer representing the key and is used to compute the index in the hashmap's underlying array.

A good hashing function should distribute the keys uniformly to minimize collisions. Image
Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(