Programming Tips π‘
Photo
Object Thinking.pdf
3.7 MB
Object Thinking π
Author : David West π
Level : Advanced π
γ°γ°γ°γ°γ°γ°
#Book #DesignPatterns #OOP
@ProgrammingTip
Author : David West π
Level : Advanced π
γ°γ°γ°γ°γ°γ°
#Book #DesignPatterns #OOP
@ProgrammingTip
PrimeNG π
°οΈ
PrimeNG is a collection of rich UI components for Angular. π
All widgets are open source and free to use under MIT License. πΈ
Features π :
β’ 80+ Components
β’ Open Source
β’ Productivity
β’ Themes
β’ Templates
β’ Mobile
https://t.me/pgimg/174
[ Website ] : kutt.it/pmng
[ Github ] : kutt.it/pmngi
γ°γ°γ°γ°γ°γ°
#Angular #UIKit
@ProgrammingTip
PrimeNG is a collection of rich UI components for Angular. π
All widgets are open source and free to use under MIT License. πΈ
Features π :
β’ 80+ Components
β’ Open Source
β’ Productivity
β’ Themes
β’ Templates
β’ Mobile
https://t.me/pgimg/174
[ Website ] : kutt.it/pmng
[ Github ] : kutt.it/pmngi
γ°γ°γ°γ°γ°γ°
#Angular #UIKit
@ProgrammingTip
Telegram
Programming Tips Resources
Crontab Guru β±
Cron format is a simple, yet powerful and flexible way to define time and frequency of various actions. π
This is a quick and simple editor for Cron schedule expressions by Cronitor. β‘οΈ
https://t.me/pgimg/175
[ Website ] : crontab.guru
γ°γ°γ°γ°γ°γ°
#Cron #Timing
@ProgrammingTip
Cron format is a simple, yet powerful and flexible way to define time and frequency of various actions. π
This is a quick and simple editor for Cron schedule expressions by Cronitor. β‘οΈ
https://t.me/pgimg/175
[ Website ] : crontab.guru
γ°γ°γ°γ°γ°γ°
#Cron #Timing
@ProgrammingTip
Telegram
Programming Tips Resources
How DNS works β
A fun and colorful explanation of how DNS works.β¨
Hey thereβοΈThis comic explains what happens when you type a website address in your browser. π
https://t.me/pgimg/176
[ Website ] : howdns.works
γ°γ°γ°γ°γ°γ°
#DNS #Comic
@ProgrammingTip
A fun and colorful explanation of how DNS works.β¨
Hey thereβοΈThis comic explains what happens when you type a website address in your browser. π
https://t.me/pgimg/176
[ Website ] : howdns.works
γ°γ°γ°γ°γ°γ°
#DNS #Comic
@ProgrammingTip
Telegram
Programming Tips Resources
Framevuerk β¨
Fast, Responsive, Without Dependencies, Both Direction Support and Configurable UI Framework based on Vue.js. π
Features β‘οΈ :
β’ Configurable
β’ No Dependency
β’ Multi Direction
β’ Responsive
β’ SSR Ready
β’ Fast
https://t.me/pgimg/177
[ Website ] : framevuerk.com
[ Github ] : kutt.it/frvuerk
γ°γ°γ°γ°γ°γ°
#Vue #UI #Framework
@ProgrammingTip
Fast, Responsive, Without Dependencies, Both Direction Support and Configurable UI Framework based on Vue.js. π
Features β‘οΈ :
β’ Configurable
β’ No Dependency
β’ Multi Direction
β’ Responsive
β’ SSR Ready
β’ Fast
https://t.me/pgimg/177
[ Website ] : framevuerk.com
[ Github ] : kutt.it/frvuerk
γ°γ°γ°γ°γ°γ°
#Vue #UI #Framework
@ProgrammingTip
Telegram
Programming Tips Resources
Objects Should Be Immutable π€«
In object-oriented programming, an object is immutable if its state canβt be modified after it is created. π€π»
In Java/C#, a good example of an immutable object is String.β
Once created, we canβt modify its state. We can request that it creates new strings, but its own state will never change. β
However, there are not so many immutable classes in JDK. Take, for example, class Date. It is possible to modify its state using setTime(). π
This is an incomplete list of arguments in favor of immutability β‘οΈ:
β’ Immutable objects are simpler to construct, test, and use
β’ Truly immutable objects are always thread-safe
β’ They help to avoid temporal coupling
β’ Their usage is side-effect free (no defensive copies)
β’ Identity mutability problem is avoided
β’ They always have failure atomicity
β’ They are much easier to cache
β’ They prevent NULL references, which are bad
Letβs discuss the most important arguments one by one. π
https://t.me/pgimg/178
[ Article ] : kutt.it/immtb
γ°γ°γ°γ°γ°γ°
#BestPractices #DesignPatterns
@ProgrammingTip
In object-oriented programming, an object is immutable if its state canβt be modified after it is created. π€π»
In Java/C#, a good example of an immutable object is String.β
Once created, we canβt modify its state. We can request that it creates new strings, but its own state will never change. β
However, there are not so many immutable classes in JDK. Take, for example, class Date. It is possible to modify its state using setTime(). π
This is an incomplete list of arguments in favor of immutability β‘οΈ:
β’ Immutable objects are simpler to construct, test, and use
β’ Truly immutable objects are always thread-safe
β’ They help to avoid temporal coupling
β’ Their usage is side-effect free (no defensive copies)
β’ Identity mutability problem is avoided
β’ They always have failure atomicity
β’ They are much easier to cache
β’ They prevent NULL references, which are bad
Letβs discuss the most important arguments one by one. π
https://t.me/pgimg/178
[ Article ] : kutt.it/immtb
γ°γ°γ°γ°γ°γ°
#BestPractices #DesignPatterns
@ProgrammingTip
Telegram
Programming Tips Resources
Pose π₯
Replace any .NET method (including static and non-virtual) with a delegate. π
It is similar to Microsoft Fakes but unlike it Pose is implemented entirely in managed code (Reflection Emit API).β¨
Everything occurs at runtime and in-memory, no unmanaged Profiling APIs and no file system pollution with re-written assemblies.β‘οΈ
Example Usage π₯:
Shim static property getter β±:
[ Github ] : github.com/tonerdo/pose
γ°γ°γ°γ°γ°γ°
#CSharp #DotNet #Fake
@ProgrammingTip
Replace any .NET method (including static and non-virtual) with a delegate. π
It is similar to Microsoft Fakes but unlike it Pose is implemented entirely in managed code (Reflection Emit API).β¨
Everything occurs at runtime and in-memory, no unmanaged Profiling APIs and no file system pollution with re-written assemblies.β‘οΈ
Example Usage π₯:
Shim static property getter β±:
Shim dateTimeShim = Shim.Replace(() => DateTime.Now).With(() => new DateTime(2004, 4, 4));
Usage πΎ:// This block executes immediately
PoseContext.Isolate(() =>
{
// All code that executes within this block
// is isolated and shimmed methods are replaced
// Outputs "4/4/04 12:00:00 AM"
Console.WriteLine(DateTime.Now);
}, dateTimeShim);
https://t.me/pgimg/179[ Github ] : github.com/tonerdo/pose
γ°γ°γ°γ°γ°γ°
#CSharp #DotNet #Fake
@ProgrammingTip
Telegram
Programming Tips Resources
Clean Architecture with ASP.NET Core 2.1 π¦
The explosive growth of web frameworks and the demands of users have changed the approach to building web applications. π
Many challenges exist, and getting started can be a daunting prospect. Let's change that now. β
This talk provides practical guidance and recommendations. π
This video will cover architecture, technologies, tools, and frameworks. We will examine strategies for organizing your projects, folders and files. β‘οΈ
We will design a system that is simple to build and maintain - all the way from development to production. You leave this talk inspired and prepared to take your enterprise application development to the next level. π₯
https://t.me/pgimg/180
[ Video ] : kutt.it/cav
[ Source Code ] : kutt.it/cag
γ°γ°γ°γ°γ°γ°
#AspNet #Core #CleanCode
@ProgrammingTip
The explosive growth of web frameworks and the demands of users have changed the approach to building web applications. π
Many challenges exist, and getting started can be a daunting prospect. Let's change that now. β
This talk provides practical guidance and recommendations. π
This video will cover architecture, technologies, tools, and frameworks. We will examine strategies for organizing your projects, folders and files. β‘οΈ
We will design a system that is simple to build and maintain - all the way from development to production. You leave this talk inspired and prepared to take your enterprise application development to the next level. π₯
https://t.me/pgimg/180
[ Video ] : kutt.it/cav
[ Source Code ] : kutt.it/cag
γ°γ°γ°γ°γ°γ°
#AspNet #Core #CleanCode
@ProgrammingTip
Telegram
Programming Tips Resources
ββNotify Your Angular App Using SignalR π₯
In this small article we'll walk you through how to create a notification service using .NET Core 2.0 Web Api, .NET Core SignalR & Angular. π
Letβs get into business. β¨
[ Article ] : kutt.it/ngnoti
γ°γ°γ°γ°γ°γ°
#AspMvc #Core #Angular #SignalR
@ProgrammingTip
In this small article we'll walk you through how to create a notification service using .NET Core 2.0 Web Api, .NET Core SignalR & Angular. π
Letβs get into business. β¨
[ Article ] : kutt.it/ngnoti
γ°γ°γ°γ°γ°γ°
#AspMvc #Core #Angular #SignalR
@ProgrammingTip
Splitting.js β¨
Splitting creates elements and adds CSS variables to unlock amazing possibilities for animating text, grids, and moreβοΈ
https://t.me/pgimg/181
[ Website ] : splitting.js.org
[ Github ] : kutt.it/splt
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #Animation
@ProgrammingTip
Splitting creates elements and adds CSS variables to unlock amazing possibilities for animating text, grids, and moreβοΈ
https://t.me/pgimg/181
[ Website ] : splitting.js.org
[ Github ] : kutt.it/splt
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#JavaScript #Animation
@ProgrammingTip
Telegram
Programming Tips Resources
Boost Your Vue.js Workflow With Vue CLI 3 β‘οΈ
We can hardly imagine modern web development without the help of Command-Line Interface (CLI) tools. π»
They tremendously facilitate and speed up the development workflow by reducing the amount of repetitive and tedious tasks. β
Setting up a project manually, with all the linting, building, testing, preprocessing, optimizing, and dependency tracking features, doesn't sound like a fun job, does itβ
That's why all modern client-side development frameworks (such as Angular, React, etc.) offer their own version of CLI tools, and Vue.js is no exception. π
But with its latest third version, Vue CLI is going one step ahead of the others. β¨
It's now not only highly powerful and flexible, but also comes with a full-blown GUI. π
Yeah, you heard right. Vue CLI 3 offers a full graphical user interface out of the box. π
https://t.me/pgimg/182
[ Article ] : kutt.it/vcli
[ Website ] : cli.vuejs.org
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Vue #JavaScript #CLI
@ProgrammingTip
We can hardly imagine modern web development without the help of Command-Line Interface (CLI) tools. π»
They tremendously facilitate and speed up the development workflow by reducing the amount of repetitive and tedious tasks. β
Setting up a project manually, with all the linting, building, testing, preprocessing, optimizing, and dependency tracking features, doesn't sound like a fun job, does itβ
That's why all modern client-side development frameworks (such as Angular, React, etc.) offer their own version of CLI tools, and Vue.js is no exception. π
But with its latest third version, Vue CLI is going one step ahead of the others. β¨
It's now not only highly powerful and flexible, but also comes with a full-blown GUI. π
Yeah, you heard right. Vue CLI 3 offers a full graphical user interface out of the box. π
https://t.me/pgimg/182
[ Article ] : kutt.it/vcli
[ Website ] : cli.vuejs.org
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Vue #JavaScript #CLI
@ProgrammingTip
Telegram
Programming Tips Resources
FAQGURU π
A list of interview questions. βοΈ
This repository is everything you need to prepare for your technical interview. β
A collection of super-popular Interview questions, along with answers, and some code-snippets that will help you to prepare for technical interviews. β¨
Many of these questions a real questions from real interviews. π€π»
https://t.me/pgimg/183
[ Github ] : kutt.it/faqg
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Interview #Job
@ProgrammingTip
A list of interview questions. βοΈ
This repository is everything you need to prepare for your technical interview. β
A collection of super-popular Interview questions, along with answers, and some code-snippets that will help you to prepare for technical interviews. β¨
Many of these questions a real questions from real interviews. π€π»
https://t.me/pgimg/183
[ Github ] : kutt.it/faqg
γ°οΈγ°οΈγ°οΈγ°οΈγ°οΈγ°οΈ
#Interview #Job
@ProgrammingTip
Telegram
Programming Tips Resources
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