Programming Tips 💡
51.5K subscribers
67 photos
10 videos
30 files
354 links
Programming & AI:
Tips 💡
Articles 📕
Resources 👾
Design Patterns 💎
Software Principles

🇳🇱 Contact: @MoienTajik

🎯 Buy ads: https://telega.io/c/ProgrammingTip
Download Telegram
Domain Driven Design - Clear Your Concepts Before You Start

What we traditionally do when we start a business application

We read the spec and find the functionalities. We break down tasks.

We do the estimation. We distribute the works among team members. We design the database schema - sometimes by the team leader or sometimes by the respective developer. We start coding. 💻

So What’s wrong with this approachWe have been doing good❗️Don’t we

The answer is YES and NO❗️Yes we are doing good in delivering our projects. But NO❗️
We are not doing good in maintaining and extending our projects. 🤦🏻‍♂️

Think about all of the projects you have worked last few years in the traditional approach. Did you ever face any of the issues below ? 🤔

Your project has the same functionality implemented in the same way or different in different places. 👥

You have more than one object for the same item.

You have objects that have properties that are not actually attributes of that object. 🙅🏻‍♂️

You have no or very poor relationship among related items. ↔️

Looking at your objects it is not possible to understand what actually the whole application is all about. 🤷🏻‍♂️


https://t.me/pgimg/184

[ Article ] : kutt.it/ddda

〰️〰️〰️〰️〰️〰️
#DDD #Architecture
@ProgrammingTip
Learn how to design large-scale systems 🔥
Prepare for the system design interview
. ⚡️

Learning how to design scalable systems will help you become a better engineer.

System design is a broad topic. There is a vast amount of resources scattered throughout the web on system design principles. 👌🏻

This repo is an organized collection of resources to help you learn how to build systems at scale.


[ GitHub ] : kutt.it/sysdesign

〰️〰️〰️〰️〰️〰️
#SystemDesign #Design #Architecture
@ProgrammingTip
Microservice Architecture at Medium 🌈

The goal of microservice architecture is to help engineering teams ship products faster, safer, and with higher quality. ⚡️

Decoupled services allow teams to iterate quickly and with minimal impact to the rest of the system. 👌🏻

At Medium, our technical stack started with a monolithic Node.js app back in 2012. We have built a couple of satellite services, but we haven’t created a strategy to adopt the microservice architecture systematically. 🧮

As the system becomes more complex and the team grows, we moved to a microservice architecture in early 2018.

In this post, we want to share our experiences of doing it effectively and avoiding microservice syndromes. 🤷🏻‍♂️


[ Article ] : kutt.it/MicroMed

〰️〰️〰️〰️〰️〰️
#Microservice #Architecture
@ProgrammingTip
Service boundaries identification example in e-commerce

The code residing in system services might be perfect, but it doesn’t really matter if service boundaries are identified incorrectly, since there is no Business-IT alignment, that both DDD and SOA are striving for. And it means inevitable project failure ...


[ Article ] : kutt.it/BContext

〰️〰️〰️〰️〰️〰️
#DDD #BoundedContext #Architecture
@ProgrammingTip
DDD, Hexagonal, Onion, Clean, CQRS, … How I Put It All Together 🚀

I start by recalling EBI and Ports & Adapters architectures. Both of them make an explicit separation of what code is internal to the application, what is external, and what is used for connecting internal and external code.

Furthermore, Ports & Adapters architecture explicitly identifies three fundamental blocks of code in a system:

What makes it possible to run a user interface, whatever type of user interface it might be.

- The system business logic, or application core, which is used by the user interface to actually make things happen.

- Infrastructure code, that connects our application core to tools like a database, a search engine or 3rd party APIs.


[ Article ] : kutt.it/Archs

〰️〰️〰️〰️〰️〰️
#Architecture #Design
@ProgrammingTip
Awesome Software Architecture 🕶

Curated list of awesome articles and resources to learn and practice about software architecture, patterns and principles. this repository will be updated continuously, keep yourself up to date.

[ Github ] : kutt.it/awsArch

〰️〰️〰️〰️〰️〰️
#Architecture #Awesome
@ProgrammingTip
Functional architecture - The pits of success

Object-oriented architects and developers have, over the years, learned many hard lessons about successfully designing systems with object-oriented programming. This has led to a plethora of ‘best practices’ that are painfully passed on from older to younger generations via books, lectures, consulting, blog posts, etc.

Many of these ‘best practices’ must be explicitly taught, because they don’t evolve naturally from object-oriented programming. Surprisingly, many of these hard-won ‘best practices’ fall naturally into place when applying functional programming.

Instead of deliberate design, functional programming forms pits of success where you naturally fall into the same ‘best practices’ that you have to deliberately work for in object-oriented programming.

In this session, you’ll learn about a handful of such ‘best practices’, and how functional programming automatically leads you there, without your explicit effort.


[ YouTube ]: youtu.be/US8QG9I1XW0

〰️〰️〰️〰️〰️〰️
#Architecture #Functional #Paradigms
@ProgrammingTip
Diagrams - Diagram as Code for prototyping cloud system architectures 🎨

Diagrams lets you draw the cloud system architecture in Python code. It was born for prototyping a new system architecture design without any design tools.

You can also describe or visualize the existing system architecture as well. Diagrams currently supports main major providers including: AWS, Azure, GCP, Kubernetes, Alibaba Cloud, Oracle Cloud etc ...

It also supports On-Premise nodes, SaaS and major Programming frameworks and languages. 🌀


[ GitHub ] : github.com/mingrammer/diagrams

〰️〰️〰️〰️〰️〰️
#Diagram #Architecture #DiagramAsCode
@ProgrammingTip