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 approach❓We 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
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 approach❓We 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
Telegram
Programming Tips Resources
Tilt.js ✨
A tiny requestAnimationFrame powered 60+fps lightweight parallax hover tilt effect for jQuery. 💎
Alternatives :
• Vanilla JS
• React
• Polymer
https://t.me/pgimg/185
[ Github ] : github.com/gijsroge/tilt.js
[ Demo ] : gijsroge.github.io/tilt.js/
〰️〰️〰️〰️〰️〰️
#JavaScript #jQuery #Parallax #React
@ProgrammingTip
A tiny requestAnimationFrame powered 60+fps lightweight parallax hover tilt effect for jQuery. 💎
Alternatives :
• Vanilla JS
• React
• Polymer
https://t.me/pgimg/185
[ Github ] : github.com/gijsroge/tilt.js
[ Demo ] : gijsroge.github.io/tilt.js/
〰️〰️〰️〰️〰️〰️
#JavaScript #jQuery #Parallax #React
@ProgrammingTip
Telegram
Programming Tips Resources
THE JAVASCRIPT EVENT LOOP ⚡️
The Event Loop is one of the most important aspects to understand about JavaScript. ✨
This post explains it in simple terms. 💎
https://t.me/pgimg/186
[ Article ] : kutt.it/jel
〰️〰️〰️〰️〰️〰️
#JavaScript #EventLoop
@ProgrammingTip
The Event Loop is one of the most important aspects to understand about JavaScript. ✨
This post explains it in simple terms. 💎
https://t.me/pgimg/186
[ Article ] : kutt.it/jel
〰️〰️〰️〰️〰️〰️
#JavaScript #EventLoop
@ProgrammingTip
Telegram
Programming Tips Resources
Auto Rest ✨
OpenAPI (f.k.a Swagger) Specification code generator. 💎
Supports C#, Go, Java, Node.js, TypeScript, Python, Ruby and PHP. 🔥
The AutoRest tool generates client libraries for accessing RESTful web services. ⚡️
Input to AutoRest is a spec that describes the REST API using the OpenAPI Specification format. ✅
https://t.me/pgimg/187
[ Introduction ] : kutt.it/ares
[ Github ] : github.com/Azure/autorest
〰️〰️〰️〰️〰️〰️
#Rest #API #OpenAPI #Swagger
@ProgrammingTip
OpenAPI (f.k.a Swagger) Specification code generator. 💎
Supports C#, Go, Java, Node.js, TypeScript, Python, Ruby and PHP. 🔥
The AutoRest tool generates client libraries for accessing RESTful web services. ⚡️
Input to AutoRest is a spec that describes the REST API using the OpenAPI Specification format. ✅
https://t.me/pgimg/187
[ Introduction ] : kutt.it/ares
[ Github ] : github.com/Azure/autorest
〰️〰️〰️〰️〰️〰️
#Rest #API #OpenAPI #Swagger
@ProgrammingTip
Telegram
Programming Tips Resources
Reinforced.Typings ⚡️
Converts C# classes to TypeScript interfaces (and many more) within project build. 💎
Examples ✨ :
C# ♥️ :
[ Github ] : kutt.it/csts
〰️〰️〰️〰️〰️〰️
#CSharp #TypeScript
@ProgrammingTip
Converts C# classes to TypeScript interfaces (and many more) within project build. 💎
Examples ✨ :
C# ♥️ :
[TsInterface]
public class Order
{
public string ItemName { get; set; }
public int Quantity { get; set; }
public double Subtotal { get; set; }
public bool IsPaid { get; set; }
public string ClientName { get; set; }
public string Address { get; set; }
}
[TsClass]
public class User
{
public string FirstName { get; set; }
public string Email { get; set; }
public UserType Type { get; set; }
}
[TsEnum]
public enum UserType { One, Two }
Result => TypeScript 💙 :export interface IOrder
{
ItemName: string;
Quantity: number;
Subtotal: number;
IsPaid: boolean;
ClientName: string;
Address: string;
}
export class User
{
public FirstName: string;
public Email: string;
public Type: MyApp.UserType;
}
export enum UserType {
One = 0,
Two = 1,
}
https://t.me/pgimg/188[ Github ] : kutt.it/csts
〰️〰️〰️〰️〰️〰️
#CSharp #TypeScript
@ProgrammingTip
Telegram
Programming Tips Resources
New horizons in CSS: Houdini and the Paint API 🌈
The way we write CSS is about to change. No, I don’t mean you have to change how you write your styles, but we as developers are about to get a lot more control. 💪🏻
What am I talking about❓That would be the CSS Houdini spec and the new browser APIs that are coming out as a part of it. ✅
https://t.me/pgimg/189
[ Article ] : kutt.it/papi
〰️〰️〰️〰️〰️〰️
#CSS #PaintAPI
@ProgrammingTip
The way we write CSS is about to change. No, I don’t mean you have to change how you write your styles, but we as developers are about to get a lot more control. 💪🏻
What am I talking about❓That would be the CSS Houdini spec and the new browser APIs that are coming out as a part of it. ✅
https://t.me/pgimg/189
[ Article ] : kutt.it/papi
〰️〰️〰️〰️〰️〰️
#CSS #PaintAPI
@ProgrammingTip
Telegram
Programming Tips Resources
“You know nothing , Engineers” — HTTP [Patch] 🤷🏻♂️
I believe, HTTP Patch is completely misunderstood by us ( At least by some of us ). 🤔
A PATCH request is one of the lesser-known HTTP methods, but I'm including it this high in the list since it is similar to POST and PUT. ↔️
The difference with PATCH is that you only apply partial modifications to the resource. ⚡️
The difference between PATCH and PUT, is that a PATCH request is non-idempotent (like a POST request). ✅
https://t.me/pgimg/190
[ Article ] : kutt.it/ptch
〰️〰️〰️〰️〰️〰️
#HTTP #PATCH
@ProgrammingTip
I believe, HTTP Patch is completely misunderstood by us ( At least by some of us ). 🤔
A PATCH request is one of the lesser-known HTTP methods, but I'm including it this high in the list since it is similar to POST and PUT. ↔️
The difference with PATCH is that you only apply partial modifications to the resource. ⚡️
The difference between PATCH and PUT, is that a PATCH request is non-idempotent (like a POST request). ✅
https://t.me/pgimg/190
[ Article ] : kutt.it/ptch
〰️〰️〰️〰️〰️〰️
#HTTP #PATCH
@ProgrammingTip
Telegram
Programming Tips Resources
ddd_first_15_years.pdf
26.6 MB
Domain-Driven Design: The First 15 Years ⚡️
Fifteen years after the publication of "Domain-Driven Design: Tackling Complexity in the Heart of Software" by Eric Evans, DDD is gaining more adoption than ever. 🔥
To celebrate the anniversary, we've asked prominent authors in the software design world to contribute old and new essays. 💎
〰️〰️〰️〰️〰️〰️
#DDD #DomainDrivenDesign
@ProgrammingTip
Fifteen years after the publication of "Domain-Driven Design: Tackling Complexity in the Heart of Software" by Eric Evans, DDD is gaining more adoption than ever. 🔥
To celebrate the anniversary, we've asked prominent authors in the software design world to contribute old and new essays. 💎
〰️〰️〰️〰️〰️〰️
#DDD #DomainDrivenDesign
@ProgrammingTip
ASP.NET Core Developer RoadMap in 2019 🔥
Below you can find a chart demonstrating the paths that you can take and the libraries that you would want to learn to become a ASP.NET Core developer. ✨
I made this chart as a tip for everyone who asks me, " What should I learn next as a ASP.NET Core developer❓" ✅
If you like or are using this project to learn or start your solution, please give it a star. ⭐️ Thanks❗️
https://t.me/pgimg/191
[ Github ] : kutt.it/AspNetCore
〰️〰️〰️〰️〰️〰️
#AspNetCore #Roadmap
@ProgrammingTip
Below you can find a chart demonstrating the paths that you can take and the libraries that you would want to learn to become a ASP.NET Core developer. ✨
I made this chart as a tip for everyone who asks me, " What should I learn next as a ASP.NET Core developer❓" ✅
If you like or are using this project to learn or start your solution, please give it a star. ⭐️ Thanks❗️
https://t.me/pgimg/191
[ Github ] : kutt.it/AspNetCore
〰️〰️〰️〰️〰️〰️
#AspNetCore #Roadmap
@ProgrammingTip
Telegram
Programming Tips Resources
Mapster 🔥
A fast, fun and stimulating object to object .NET Mapper. ⚡️
Don't let other libraries slow you down, raw Mapster performance is at least 2.5 times faster❗️
https://t.me/pgimg/192
[ Github ] : kutt.it/mapster
[ Performance Benchmark ] : kutt.it/mapbnch
〰️〰️〰️〰️〰️〰️
#Mapper #Mapster #CSharp
@ProgrammingTip
A fast, fun and stimulating object to object .NET Mapper. ⚡️
Don't let other libraries slow you down, raw Mapster performance is at least 2.5 times faster❗️
https://t.me/pgimg/192
[ Github ] : kutt.it/mapster
[ Performance Benchmark ] : kutt.it/mapbnch
〰️〰️〰️〰️〰️〰️
#Mapper #Mapster #CSharp
@ProgrammingTip
Telegram
Programming Tips Resources
Dark GitHub Style 🌙
Your eyes will ♥️ you.
[ GitHub ] : kutt.it/git-dark
〰️〰️〰️〰️〰️〰️
#GitHub #Theme
@ProgrammingTip
Your eyes will ♥️ you.
[ GitHub ] : kutt.it/git-dark
〰️〰️〰️〰️〰️〰️
#GitHub #Theme
@ProgrammingTip
NGXS ✨
NGXS is a state management pattern + library for Angular. 🅰️
It acts as a single source of truth for your application's state, providing simple rules for predictable state mutations. ⚡️
NGXS is modeled after the CQRS pattern popularly implemented in libraries like Redux and NgRx but reduces boilerplate by using modern TypeScript features such as classes and decorators. 🔥
NGXS tries to make things as simple and accessible as possible. 🧩
There can be a lot of boilerplate code in state management, thus a main goal of NGXS is to reduce boilerplate allowing you to do more things with less. 💎
https://t.me/pgimg/193
[ GitHub ] : github.com/ngxs/store
[ Website ] : ngxs.gitbook.io
〰️〰️〰️〰️〰️〰️
#Angular #StateManagement #FrontEnd
@ProgrammingTip
NGXS is a state management pattern + library for Angular. 🅰️
It acts as a single source of truth for your application's state, providing simple rules for predictable state mutations. ⚡️
NGXS is modeled after the CQRS pattern popularly implemented in libraries like Redux and NgRx but reduces boilerplate by using modern TypeScript features such as classes and decorators. 🔥
NGXS tries to make things as simple and accessible as possible. 🧩
There can be a lot of boilerplate code in state management, thus a main goal of NGXS is to reduce boilerplate allowing you to do more things with less. 💎
https://t.me/pgimg/193
[ GitHub ] : github.com/ngxs/store
[ Website ] : ngxs.gitbook.io
〰️〰️〰️〰️〰️〰️
#Angular #StateManagement #FrontEnd
@ProgrammingTip
Telegram
Programming Tips Resources
LowDB is a small local JSON database for Node, Electron and the browser powered by Lodash.⚡️
Sample 💎 :
[ GitHub ] : github.com/typicode/lowdb
〰️〰️〰️〰️〰️〰️
#JavaScript #Database
@ProgrammingTip
Sample 💎 :
const low = require('lowdb')
const FileSync = require('lowdb/adapters/FileSync')
const adapter = new FileSync('db.json')
const db = low(adapter)
// Set some defaults (required if your JSON file is empty)
db.defaults({ posts: [], user: {}, count: 0 })
.write()
// Add a post
db.get('posts')
.push({ id: 1, title: 'lowdb is awesome'})
.write()
// Set a user using Lodash shorthand syntax
db.set('user.name', 'typicode')
.write()
// Increment count
db.update('count', n => n + 1)
.write()
Result 🔥:{
"posts": [
{ "id": 1, "title": "lowdb is awesome"}
],
"user": {
"name": "typicode"
},
"count": 1
}
https://t.me/pgimg/194[ GitHub ] : github.com/typicode/lowdb
〰️〰️〰️〰️〰️〰️
#JavaScript #Database
@ProgrammingTip
Telegram
Programming Tips Resources
Code Server 🔥
Easily run it with Docker 🐳 :
• Code on your Chromebook, tablet, and laptop with a consistent dev environment.
• Take advantage of large cloud servers to speed up tests, compilations, downloads, and more.
• Preserve battery life when you're on the go.
https://t.me/pgimg/195
[ GitHub ] : github.com/codercom/code-server
〰️〰️〰️〰️〰️〰️
#CodeServer #VSCode
@ProgrammingTip
code-server is VS Code running on a remote server, accessible through the browser.Easily run it with Docker 🐳 :
docker run -p localhost:8443:8443 -v "${PWD}:/root/project" codercom/code-server code-server --allow-http --no-auth
Features⚡️:• Code on your Chromebook, tablet, and laptop with a consistent dev environment.
• Take advantage of large cloud servers to speed up tests, compilations, downloads, and more.
• Preserve battery life when you're on the go.
https://t.me/pgimg/195
[ GitHub ] : github.com/codercom/code-server
〰️〰️〰️〰️〰️〰️
#CodeServer #VSCode
@ProgrammingTip
Telegram
Programming Tips Resources
Static Site Generators: Gatsby, Hugo, Jekyll 💎
Websites rule the web, be they static or dynamic.⚡️ While a lot of sites are dynamic today, the static ones are still quite popular. In fact, there is a rise in the use of static sites. 🌚
In this article, you will see a comparison of three of the best static site generators out there, their strengths, weakness and why you should use them.🔥
Static site generators make building static sites a piece of cake. 🍰
Imagine having to do little or no complex work and still have sites that ✨:
• Are amazingly fast
• Require less maintenance
• Have a high level of security
• Are perfect for simple websites such as portfolios
https://t.me/pgimg/196
[ Article ] : kutt.it/ssg
〰️〰️〰️〰️〰️〰️
#Hugo #Gatsby #Jekyll
@ProgrammingTip
Websites rule the web, be they static or dynamic.⚡️ While a lot of sites are dynamic today, the static ones are still quite popular. In fact, there is a rise in the use of static sites. 🌚
In this article, you will see a comparison of three of the best static site generators out there, their strengths, weakness and why you should use them.🔥
Static site generators make building static sites a piece of cake. 🍰
Imagine having to do little or no complex work and still have sites that ✨:
• Are amazingly fast
• Require less maintenance
• Have a high level of security
• Are perfect for simple websites such as portfolios
https://t.me/pgimg/196
[ Article ] : kutt.it/ssg
〰️〰️〰️〰️〰️〰️
#Hugo #Gatsby #Jekyll
@ProgrammingTip
Telegram
Programming Tips Resources
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
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
Telegram
Programming Tips Resources
Design Patterns for Humans 🤷🏻♂️
Design patterns are solutions to recurring problems; guidelines on how to tackle certain problems. ✅
They are not classes, packages or libraries that you can plug into your application and wait for the magic to happen. ❌
These are, rather, guidelines on how to tackle certain problems in certain situations. ✨
[ C# Version ] : kutt.it/dp-cs
[ PHP Version ] : kutt.it/dp-php
〰️〰️〰️〰️〰️〰️
#DesignPatterns #Patterns
@ProgrammingTip
Design patterns are solutions to recurring problems; guidelines on how to tackle certain problems. ✅
They are not classes, packages or libraries that you can plug into your application and wait for the magic to happen. ❌
These are, rather, guidelines on how to tackle certain problems in certain situations. ✨
[ C# Version ] : kutt.it/dp-cs
[ PHP Version ] : kutt.it/dp-php
〰️〰️〰️〰️〰️〰️
#DesignPatterns #Patterns
@ProgrammingTip
Telegram
Programming Tips Resources
“Sorry JAVA, I am done with you. I have fallen in love with Kotlin.” - Sad Love Story 💔Google started supporting Kotlin as an official language for Android development. ✅
On that day I decided, If Google somehow exclude JAVA then I am gonna leave Android development to continue my relation with JAVA. ❌
I was very egoistic that no any other language can took place in my heart. 💙
One day, One of my friends suggest me to give at least one chance to Kotlin. Because JAVA does not value my relationship. 🙅🏻♂️
Since we have been together from last 6 years sometimes I got angry and scolding on JAVA that It can not do some simple things by itself. 🤷🏻♂️
Every time I need to write boilerplate code again and again, but still I was appreciating JAVA in front of everyone. 🌍
[ Article ] : kutt.it/ktjv
〰️〰️〰️〰️〰️〰️
#Kotlin #Android #Java
@ProgrammingTip
Telegram
Programming Tips Resources
Learn Webpack in 15 Minutes ⚡️
Build tools have become an integral part of web development, mainly due to the ever-increasing complexity of JavaScript apps. 🛠
Bundlers allow us to package, compile, and organize the many assets and libraries needed for a modern web project. 📦
In this tutorial we will take a look at Webpack, a powerful open-source bundler and preprocessor that can handle a huge variety of different tasks.💎
[ Article ] : kutt.it/webpck15
〰️〰️〰️〰️〰️〰️
#JavaScript #Webpack #Bundler
@ProgrammingTip
Build tools have become an integral part of web development, mainly due to the ever-increasing complexity of JavaScript apps. 🛠
Bundlers allow us to package, compile, and organize the many assets and libraries needed for a modern web project. 📦
In this tutorial we will take a look at Webpack, a powerful open-source bundler and preprocessor that can handle a huge variety of different tasks.💎
[ Article ] : kutt.it/webpck15
〰️〰️〰️〰️〰️〰️
#JavaScript #Webpack #Bundler
@ProgrammingTip
Telegram
Programming Tips Resources