JSON API .NET Core ✨
A framework for building json:api compliant web APIs. 💎
The ultimate goal of this library is to eliminate as much boilerplate as possible by offering out-of-the-box features such as sorting, filtering and pagination. 🗂
You just need to focus on defining the resources and implementing your custom business logic. 👌🏻
This library has been designed around dependency injection making extensibility incredibly easy. 💉
[ Github ] : kutt.it/JsonApiCore
[ Documentation ] : json-api-dotnet.github.io
〰️〰️〰️〰️〰️〰️
#AspMvc #AspCore #DotNet
@ProgrammingTip
A framework for building json:api compliant web APIs. 💎
The ultimate goal of this library is to eliminate as much boilerplate as possible by offering out-of-the-box features such as sorting, filtering and pagination. 🗂
You just need to focus on defining the resources and implementing your custom business logic. 👌🏻
This library has been designed around dependency injection making extensibility incredibly easy. 💉
[ Github ] : kutt.it/JsonApiCore
[ Documentation ] : json-api-dotnet.github.io
〰️〰️〰️〰️〰️〰️
#AspMvc #AspCore #DotNet
@ProgrammingTip
Telegram
Programming Tips Resources
The Difference Between SHA-1, SHA-2 and SHA-256 Hash Algorithms 🔐
If you have heard about “SHA” in its many forms, but are not totally sure what it’s an acronym for or why it’s important, we’re going to try to shine a little bit of light on that here today. 🌈
Before we can get to SHA itself though, we need to run through what a hash is, and then we’ll get into how SSL certificates use hashes to form digital signatures. 🌐
These are critical concepts to understand before you’ll be able to follow what SHA-1 and SHA-2 are. ☝🏻
[ Article ] : kutt.it/sha256
〰️〰️〰️〰️〰️〰️
#Hash #Encryption #Cryptography
@ProgrammingTip
If you have heard about “SHA” in its many forms, but are not totally sure what it’s an acronym for or why it’s important, we’re going to try to shine a little bit of light on that here today. 🌈
Before we can get to SHA itself though, we need to run through what a hash is, and then we’ll get into how SSL certificates use hashes to form digital signatures. 🌐
These are critical concepts to understand before you’ll be able to follow what SHA-1 and SHA-2 are. ☝🏻
[ Article ] : kutt.it/sha256
〰️〰️〰️〰️〰️〰️
#Hash #Encryption #Cryptography
@ProgrammingTip
Telegram
Programming Tips Resources
Superstruct 🔥
A simple and composable way to validate data in Javascript. ✨
Superstruct makes it easy to define interfaces and then validate JavaScript data against them. ⚠️
Its type annotation API was inspired by Typescript, Flow, Go, and GraphQL, giving it a familiar and easy to understand API. 🧠
But Superstruct is designed for validating data at runtime, so it throws (or returns) detailed runtime errors for you or your end users. 👥
This is especially useful in situations like accepting arbitrary input in a REST or GraphQL API, but it can even be used to validate internal data structures at runtime when needed. ✅
[ Github ] : kutt.it/SprStr
〰️〰️〰️〰️〰️〰️
#JavaScript #Validation
@ProgrammingTip
A simple and composable way to validate data in Javascript. ✨
Superstruct makes it easy to define interfaces and then validate JavaScript data against them. ⚠️
Its type annotation API was inspired by Typescript, Flow, Go, and GraphQL, giving it a familiar and easy to understand API. 🧠
But Superstruct is designed for validating data at runtime, so it throws (or returns) detailed runtime errors for you or your end users. 👥
This is especially useful in situations like accepting arbitrary input in a REST or GraphQL API, but it can even be used to validate internal data structures at runtime when needed. ✅
[ Github ] : kutt.it/SprStr
〰️〰️〰️〰️〰️〰️
#JavaScript #Validation
@ProgrammingTip
Telegram
Programming Tips Resources
Elasticlunr.js ⚡️
Elasticlunr.js is a lightweight full-text search engine developed in JavaScript for browser search and offline search. 🔍
Elasticlunr.js is developed based on Lunr.js, but more flexible than Lunr.js. 🔥
Elasticlunr.js provides Query-Time boosting, field search, more rational scoring/ranking methodology, fast computation speed and so on. 💎
Elasticlunr.js is a bit like Solr, but much smaller and not as bright, but also provide flexible configuration. ✨
[ Website ] : elasticlunr.com
[ Github ] : github.com/weixsong/elasticlunr.js
〰️〰️〰️〰️〰️〰️
#JavaScript #Search
@ProgrammingTip
Elasticlunr.js is a lightweight full-text search engine developed in JavaScript for browser search and offline search. 🔍
Elasticlunr.js is developed based on Lunr.js, but more flexible than Lunr.js. 🔥
Elasticlunr.js provides Query-Time boosting, field search, more rational scoring/ranking methodology, fast computation speed and so on. 💎
Elasticlunr.js is a bit like Solr, but much smaller and not as bright, but also provide flexible configuration. ✨
[ Website ] : elasticlunr.com
[ Github ] : github.com/weixsong/elasticlunr.js
〰️〰️〰️〰️〰️〰️
#JavaScript #Search
@ProgrammingTip
Telegram
Programming Tips Resources
To DDD or not to DDD❓What to do if your domain is boring❓
But what exactly does a complex domain look like❓
When does a domain become complex enough to justify the extra cost of applying DDD❓
And why does DDD have to be so expensive❓
In this talk, I'll challenge some of the DDD common myths, ask a few hard questions and explore what is possible when you stop blindly following what is deemed "the best practice". ✨
I'll share with you a few patterns that you can apply even to projects that are not DDD all the way just yet. You'll walk away with practical knowledge that you can start using right away. 💎
[ YouTube ] : youtu.be/h6WvetICeo4
〰️〰️〰️〰️〰️〰️
#DDD #DomainDrivenDesign #Conference
@ProgrammingTip
"DDD should only be applied to complex domains!" - you've probably heard that over and over again.But what exactly does a complex domain look like❓
When does a domain become complex enough to justify the extra cost of applying DDD❓
And why does DDD have to be so expensive❓
In this talk, I'll challenge some of the DDD common myths, ask a few hard questions and explore what is possible when you stop blindly following what is deemed "the best practice". ✨
I'll share with you a few patterns that you can apply even to projects that are not DDD all the way just yet. You'll walk away with practical knowledge that you can start using right away. 💎
[ YouTube ] : youtu.be/h6WvetICeo4
〰️〰️〰️〰️〰️〰️
#DDD #DomainDrivenDesign #Conference
@ProgrammingTip
Telegram
Programming Tips Resources
Kubernetes for .NET Developers ☸️
Have you started building containerized application and struggled with scaling across multiple hosts❓
Would you like to simplify DevOps tasks such as deployment and configuration❓
Have you heard about Kubernetes and would like to learn more❓
Then this presentation is for you. 💎
Kubernetes is an open source system for managing containerized applications across multiple hosts; providing basic mechanisms for deployment, maintenance, and scaling of applications. 🔥
In this presentation, I will walk you through Kubernetes fundamentals, the high level architecture, how would you deploy an ASP.NET Core application to Kubernetes and finally how would you configure and launch auto-scaling, self-healing Kubernetes cluster. ⚡️
[ YouTube ] : youtu.be/uh4V2IjSrlI
[ Github ] : kutt.it/KubeAsp
〰️〰️〰️〰️〰️〰️
#Kubernetes #DotNet #Core #AspMvc #AspCore
@ProgrammingTip
Have you started building containerized application and struggled with scaling across multiple hosts❓
Would you like to simplify DevOps tasks such as deployment and configuration❓
Have you heard about Kubernetes and would like to learn more❓
Then this presentation is for you. 💎
Kubernetes is an open source system for managing containerized applications across multiple hosts; providing basic mechanisms for deployment, maintenance, and scaling of applications. 🔥
In this presentation, I will walk you through Kubernetes fundamentals, the high level architecture, how would you deploy an ASP.NET Core application to Kubernetes and finally how would you configure and launch auto-scaling, self-healing Kubernetes cluster. ⚡️
[ YouTube ] : youtu.be/uh4V2IjSrlI
[ Github ] : kutt.it/KubeAsp
〰️〰️〰️〰️〰️〰️
#Kubernetes #DotNet #Core #AspMvc #AspCore
@ProgrammingTip
Telegram
Programming Tips Resources
BloomRPC 🌷
The missing GUI Client for GRPC services. 🌸
Inspired by Postman and GraphQL Playground. ✨
BloomRPC aim to give the simplest and efficient developer experience for exploring and querying your GRPC services. 💎
Install the client, select your protobuf files and start making requests ! ⚡️
No extra steps or configuration needed. ✌🏻
[ Github ] : github.com/uw-labs/bloomrpc
〰️〰️〰️〰️〰️〰️
#gRPC #Protobuf #GUI
@ProgrammingTip
The missing GUI Client for GRPC services. 🌸
Inspired by Postman and GraphQL Playground. ✨
BloomRPC aim to give the simplest and efficient developer experience for exploring and querying your GRPC services. 💎
Install the client, select your protobuf files and start making requests ! ⚡️
No extra steps or configuration needed. ✌🏻
[ Github ] : github.com/uw-labs/bloomrpc
〰️〰️〰️〰️〰️〰️
#gRPC #Protobuf #GUI
@ProgrammingTip
Telegram
Programming Tips Resources
Empower Your Microservices with Istio Service Mesh 💎
Microservices popularity has grown as a lot of organizations are moving their applications to microservices which enables their teams to autonomously own and operate their own microservices. ✅
The microservices have to communicate with each other so how do you efficiently connect, secure, and monitor those services❓
Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. 📊
In this session, we will cover what is service mesh and why it is important for you, what are the core components of Istio, how to empower your microservices to leverage the features that Istio provides on top of Kubernetes such as service discovery, load balancing, resiliency, observability, and security. ⚡️
[ YouTube ] : kutt.it/istio
〰️〰️〰️〰️〰️〰️
#Microservice #Kubernetes #Istio
@ProgrammingTip
Microservices popularity has grown as a lot of organizations are moving their applications to microservices which enables their teams to autonomously own and operate their own microservices. ✅
The microservices have to communicate with each other so how do you efficiently connect, secure, and monitor those services❓
Istio is an open platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. 📊
In this session, we will cover what is service mesh and why it is important for you, what are the core components of Istio, how to empower your microservices to leverage the features that Istio provides on top of Kubernetes such as service discovery, load balancing, resiliency, observability, and security. ⚡️
[ YouTube ] : kutt.it/istio
〰️〰️〰️〰️〰️〰️
#Microservice #Kubernetes #Istio
@ProgrammingTip
Telegram
Programming Tips Resources
C# 8 Interfaces: Dangerous Assumptions in Default Implementation ⚠️
One of the features that is being promoted about C# 8 interfaces is that we can add members to an interface without breaking existing implementers. ✅
But we can cause a lot of pain if we aren't careful. 🤷🏻♂️
Let's look at some code that makes bad assumptions so that we can understand the importance of avoiding these problems. ⛔️
[ Article ] : kutt.it/csdif
〰️〰️〰️〰️〰️〰️
#CSharp #Interfaces
@ProgrammingTip
One of the features that is being promoted about C# 8 interfaces is that we can add members to an interface without breaking existing implementers. ✅
But we can cause a lot of pain if we aren't careful. 🤷🏻♂️
Let's look at some code that makes bad assumptions so that we can understand the importance of avoiding these problems. ⛔️
[ Article ] : kutt.it/csdif
〰️〰️〰️〰️〰️〰️
#CSharp #Interfaces
@ProgrammingTip
Telegram
Programming Tips Resources
Don't Create Objects That End With -ER ❌
Manager, Controller, Helper, Handler, Writer, Reader, Converter, Validator, Router, Dispatcher, Observer, Listener, Sorter, Encoder, Decoder. 🤯
This is the class names hall of shame. 🤷🏻♂️
Have you seen them in your code❔
In open source libraries you’re using❔
In pattern books❔
They are all wrong. ⚠️
What do they have in common❔
They all end in “-er.”
And what’s wrong with that ⁉️
They are not "classes", and the objects they instantiate are not objects. Instead, they are collections of procedures pretending to be classes. 🤦🏻♂️
[ Article ] : kutt.it/erobj
〰️〰️〰️〰️〰️〰️
#Objects #ObjectThinking
@ProgrammingTip
Manager, Controller, Helper, Handler, Writer, Reader, Converter, Validator, Router, Dispatcher, Observer, Listener, Sorter, Encoder, Decoder. 🤯
This is the class names hall of shame. 🤷🏻♂️
Have you seen them in your code❔
In open source libraries you’re using❔
In pattern books❔
They are all wrong. ⚠️
What do they have in common❔
They all end in “-er.”
And what’s wrong with that ⁉️
They are not "classes", and the objects they instantiate are not objects. Instead, they are collections of procedures pretending to be classes. 🤦🏻♂️
[ Article ] : kutt.it/erobj
〰️〰️〰️〰️〰️〰️
#Objects #ObjectThinking
@ProgrammingTip
Telegram
Programming Tips Resources
Using the ReferenceAssemblies NuGet package to build .NET Framework libraries on Linux, without installing Mono 💎
In this post I show how you can build .NET projects that target .NET Framework versions on Linux, without using Mono! 🤷🏻♂️
By using the new Microsoft.NETFramework.ReferenceAssemblies NuGet packages from Microsoft you don't need to install anything more than the .NET Core SDK! 🔥
[ Article ] : kutt.it/coremono
〰️〰️〰️〰️〰️〰️
#CSharp #DotNet #AspCore #NetCore
@ProgrammingTip
In this post I show how you can build .NET projects that target .NET Framework versions on Linux, without using Mono! 🤷🏻♂️
By using the new Microsoft.NETFramework.ReferenceAssemblies NuGet packages from Microsoft you don't need to install anything more than the .NET Core SDK! 🔥
[ Article ] : kutt.it/coremono
〰️〰️〰️〰️〰️〰️
#CSharp #DotNet #AspCore #NetCore
@ProgrammingTip
Telegram
Programming Tips Resources
Don't Let the Internet Dupe You, Event Sourcing is Hard 🌈
I'm going to give it to you straight: Event Sourcing actually comes with drawbacks. 🤷🏻♂️
If you've read anything about the topic on the internet this will surely shock you. 🤨
After all, it's commonly sold as one big fat bag of sunshine and rainbows. ✨
You got some kind of a problem❓
Turns out its actually solved by event sourcing ❗️
In fact, most of your life troubles up till now were probably directly caused by your lack of event sourcing.
You, having been seduced by the internet, are probably off to start your event sourcing journey and begin living the good life. ✅
Well, before you do that, I'm here to ruin it for you and tell you that event sourcing is not actually a bag filled with pure joy, but instead a bag filled with mines designed to blow your legs off and leave you to a crippled life filled with pain. ♿️
Event Sourcing is Hard ‼️
[ Article ] : kutt.it/ESHard
〰️〰️〰️〰️〰️〰️
#EventSourcing #EventStore #Event
@ProgrammingTip
I'm going to give it to you straight: Event Sourcing actually comes with drawbacks. 🤷🏻♂️
If you've read anything about the topic on the internet this will surely shock you. 🤨
After all, it's commonly sold as one big fat bag of sunshine and rainbows. ✨
You got some kind of a problem❓
Turns out its actually solved by event sourcing ❗️
In fact, most of your life troubles up till now were probably directly caused by your lack of event sourcing.
You, having been seduced by the internet, are probably off to start your event sourcing journey and begin living the good life. ✅
Well, before you do that, I'm here to ruin it for you and tell you that event sourcing is not actually a bag filled with pure joy, but instead a bag filled with mines designed to blow your legs off and leave you to a crippled life filled with pain. ♿️
Event Sourcing is Hard ‼️
[ Article ] : kutt.it/ESHard
〰️〰️〰️〰️〰️〰️
#EventSourcing #EventStore #Event
@ProgrammingTip
Telegram
Programming Tips Resources
Running async tasks on app startup in ASP.NET Core 3.0 ⚡️
In this post, I describe how a small change in the ASP.NET Core 3.0 WebHost makes it easier to run asynchronous tasks on app startup using IHostedService. ✅
Unfortunately, in 2.x it wasn't possible to use any of the built-in ASP.NET Core primitives to achieve this ❌ :
• IStartupFilter has a synchronous API, so would require doing sync over async. 🤦🏻♂️
• IApplicationLifetime has a synchronous API and raises the ApplicationStarted event after the server starts handling requests. 🤷🏻♂️
• IHostedService has an asynchronous API, but is executed after the server is started and starts handling requests. 👍🏻
With ASP.NET Core 3.0, a small change in the WebHost code makes a big difference - we no longer need these solutions, and can use IHostedService without the previous concerns❗️
[ Article ] : kutt.it/asphost
〰️〰️〰️〰️〰️〰️
#AspNet #AspMvc #AspCore
@ProgrammingTip
In this post, I describe how a small change in the ASP.NET Core 3.0 WebHost makes it easier to run asynchronous tasks on app startup using IHostedService. ✅
Unfortunately, in 2.x it wasn't possible to use any of the built-in ASP.NET Core primitives to achieve this ❌ :
• IStartupFilter has a synchronous API, so would require doing sync over async. 🤦🏻♂️
• IApplicationLifetime has a synchronous API and raises the ApplicationStarted event after the server starts handling requests. 🤷🏻♂️
• IHostedService has an asynchronous API, but is executed after the server is started and starts handling requests. 👍🏻
With ASP.NET Core 3.0, a small change in the WebHost code makes a big difference - we no longer need these solutions, and can use IHostedService without the previous concerns❗️
[ Article ] : kutt.it/asphost
〰️〰️〰️〰️〰️〰️
#AspNet #AspMvc #AspCore
@ProgrammingTip
Telegram
Programming Tips Resources
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
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
Telegram
Programming Tips Resources
Why Do You Need To Know Package Cohesion Fundamentals? 🔊
Packages exist anywhere, and it's your job to organize them. ✅
It's pretty common to find projects where files are separated by the language they're written. 🗂
Without thinking about common reuse, it's hard for you to look at the contents of a package and know which related files can be reused together. ⚠️
[ Article ] : kutt.it/pckgCohesion
〰️〰️〰️〰️〰️〰️
#Packaging #Principles #Cohesion
@ProgrammingTip
Packages exist anywhere, and it's your job to organize them. ✅
It's pretty common to find projects where files are separated by the language they're written. 🗂
Without thinking about common reuse, it's hard for you to look at the contents of a package and know which related files can be reused together. ⚠️
[ Article ] : kutt.it/pckgCohesion
〰️〰️〰️〰️〰️〰️
#Packaging #Principles #Cohesion
@ProgrammingTip
Telegram
Programming Tips Resources
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
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
Telegram
Programming Tips Resources
Event Modeling: What is it❓
Story telling is something that enables humans to pass knowledge on to subsequent generations and relies heavily on how we store memories - whether logical, visual, auditory or other. This is important because there is a parallel with how information systems were constructed. There is a “memory” of all your visits to the doctor. It’s the ledger of the forms that are filled in with each visit. 🧠
Specifications by example are a way to show how something is supposed to work. This can be seen in successful practices in software such as Behaviour Driven Development. This works well because we communicate by stories more effectively. It ties back to story telling as a way to keep information in society. Our brains are built for it more than they are built for flow-charts and other formats. ✅
[ Article ] : kutt.it/EventModel
〰️〰️〰️〰️〰️〰️
#EventModeling #EventStorming
@ProgrammingTip
Story telling is something that enables humans to pass knowledge on to subsequent generations and relies heavily on how we store memories - whether logical, visual, auditory or other. This is important because there is a parallel with how information systems were constructed. There is a “memory” of all your visits to the doctor. It’s the ledger of the forms that are filled in with each visit. 🧠
Specifications by example are a way to show how something is supposed to work. This can be seen in successful practices in software such as Behaviour Driven Development. This works well because we communicate by stories more effectively. It ties back to story telling as a way to keep information in society. Our brains are built for it more than they are built for flow-charts and other formats. ✅
[ Article ] : kutt.it/EventModel
〰️〰️〰️〰️〰️〰️
#EventModeling #EventStorming
@ProgrammingTip
Telegram
Programming Tips Resources
Understanding The Mindset of Event Sourcing 🧠
As Event Sourcing (ES) becomes more and more mainstream, usually bundled with DDD and CQRS, it's important for domain modellers, application architects and etc to understand the paradigm behind the recipe. ✅
In the 'classical' approach, the domain state is seen as a data structure or a collection of data structures (entities data). 🗂
In ES we see the domain state as a collection of changes. ♻️
You may wonder how we've got here and why this is the preferred way of working for many DDD practitioners ⁉️
[ Article ] : kutt.it/Es
〰️〰️〰️〰️〰️〰️
#EventSourcing
@ProgrammingTip
As Event Sourcing (ES) becomes more and more mainstream, usually bundled with DDD and CQRS, it's important for domain modellers, application architects and etc to understand the paradigm behind the recipe. ✅
In the 'classical' approach, the domain state is seen as a data structure or a collection of data structures (entities data). 🗂
In ES we see the domain state as a collection of changes. ♻️
You may wonder how we've got here and why this is the preferred way of working for many DDD practitioners ⁉️
[ Article ] : kutt.it/Es
〰️〰️〰️〰️〰️〰️
#EventSourcing
@ProgrammingTip
Telegram
Programming Tips Resources
Never Serve Raw Chicken! 🍗
The issue with raw chicken is that you might get sick from eating it. Chefs serving raw chicken are generally considered unprofessional. 🤷🏻♂️
That’s why professional chefs don’t deliver raw chicken. Professional chefs don’t want to harm their customers and their business. Professional chefs take pride in what they do! ✅
If the restaurant was a Scrum Team, the owner would be the Product Owner, the chefs would be the Development Team and the businesswoman would be their user.
The raw chicken burger would be an Increment of a product that isn’t done. Development Teams delivering Increments that aren’t “Done” are generally considered unprofessional.
[ Read More ] : kutt.it/raw-chicken
〰️〰️〰️〰️〰️〰️
#Scrum #Agile #DoD
@ProgrammingTip
The issue with raw chicken is that you might get sick from eating it. Chefs serving raw chicken are generally considered unprofessional. 🤷🏻♂️
That’s why professional chefs don’t deliver raw chicken. Professional chefs don’t want to harm their customers and their business. Professional chefs take pride in what they do! ✅
If the restaurant was a Scrum Team, the owner would be the Product Owner, the chefs would be the Development Team and the businesswoman would be their user.
The raw chicken burger would be an Increment of a product that isn’t done. Development Teams delivering Increments that aren’t “Done” are generally considered unprofessional.
[ Read More ] : kutt.it/raw-chicken
〰️〰️〰️〰️〰️〰️
#Scrum #Agile #DoD
@ProgrammingTip
Telegram
Programming Tips Resources
Bounded Context Canvas V3: Simplifications and Additions ✅
How do we break a large system into smaller, more manageable modular components? This article describing a workshop recipe you can use. 🗂
In Domain-Driven Design, a large system is decomposed into bounded contexts, which become natural boundaries in code as microservices and as teams in the organisation. 🏢
There is no shortcut to identifying good boundaries. Both a wide and deep knowledge of the business and domain is essential.
[ Article ] : kutt.it/bc-canvas
〰️〰️〰️〰️〰️〰️
#DDD #BoundedContext
@ProgrammingTip
How do we break a large system into smaller, more manageable modular components? This article describing a workshop recipe you can use. 🗂
In Domain-Driven Design, a large system is decomposed into bounded contexts, which become natural boundaries in code as microservices and as teams in the organisation. 🏢
There is no shortcut to identifying good boundaries. Both a wide and deep knowledge of the business and domain is essential.
[ Article ] : kutt.it/bc-canvas
〰️〰️〰️〰️〰️〰️
#DDD #BoundedContext
@ProgrammingTip
Telegram
Programming Tips Resources
EasyCompressor 📦
EasyCompressor is an open-source compression abstraction library that supports and implements many compression algorithms such as Zstd, LZMA, LZ4, Snappy, Brotli, GZip and Deflate. 🗂
It is very useful for using along with Distributed Caching or storing files in database. ✅
[ GitHub ] : github.com/mjebrahimi/EasyCompressor
〰️〰️〰️〰️〰️〰️
#Compression #CSharp #DotNet
@ProgrammingTip
EasyCompressor is an open-source compression abstraction library that supports and implements many compression algorithms such as Zstd, LZMA, LZ4, Snappy, Brotli, GZip and Deflate. 🗂
It is very useful for using along with Distributed Caching or storing files in database. ✅
[ GitHub ] : github.com/mjebrahimi/EasyCompressor
〰️〰️〰️〰️〰️〰️
#Compression #CSharp #DotNet
@ProgrammingTip
Telegram
Programming Tips Resources