Yagni : You Arent Gonna Need It πΎ
Never Add Functionality Early π‘
Even if you're totally, totally, totally sure that you'll need a feature later on, don't implement it now. β³
Usually, what you actually need is quite different from what you foresaw needing earlier. π π»ββοΈ
This doesn't mean you should avoid building flexibility into your code. β
It means you shouldn't overengineer something based on what you think you might need later on. β
πΉπΈπΉπΈπΉπΈ
There are two main reasons to practise YagNi :
1οΈβ£ You save time, because you avoid writing code that you turn out not to need.
2οΈβ£ Your code is better, because you avoid polluting it with 'guesses' that turn out to be more or less wrong but stick around anyway.
This also follows the KISS theorem:
https://t.me/pgimg/13
γ°γ°γ°γ°γ°γ°
#CleanCode #Principles #Tips
@ProgrammingTip
Never Add Functionality Early π‘
"Always implement things when you actually need them, never when you just foresee that you need them."
Even if you're totally, totally, totally sure that you'll need a feature later on, don't implement it now. β³
Usually, what you actually need is quite different from what you foresaw needing earlier. π π»ββοΈ
This doesn't mean you should avoid building flexibility into your code. β
It means you shouldn't overengineer something based on what you think you might need later on. β
πΉπΈπΉπΈπΉπΈ
There are two main reasons to practise YagNi :
1οΈβ£ You save time, because you avoid writing code that you turn out not to need.
2οΈβ£ Your code is better, because you avoid polluting it with 'guesses' that turn out to be more or less wrong but stick around anyway.
This also follows the KISS theorem:
Keep it simple, stupid!
https://t.me/pgimg/13
γ°γ°γ°γ°γ°γ°
#CleanCode #Principles #Tips
@ProgrammingTip
Telegram
Programming Tips Resources
CLion : A cross-platform IDE for C and C++ π¦
Thanks to native C and C++ support, including C++11 and C++14, libc++ and Boost, CLion knows your code through and through and takes care of the routine while you focus on the important things.
https://t.me/pgimg/14
[ Website ]: https://www.jetbrains.com/clion
γ°γ°γ°γ°γ°γ°
#ide #c #cpp
@ProgrammingTip
Thanks to native C and C++ support, including C++11 and C++14, libc++ and Boost, CLion knows your code through and through and takes care of the routine while you focus on the important things.
https://t.me/pgimg/14
[ Website ]: https://www.jetbrains.com/clion
γ°γ°γ°γ°γ°γ°
#ide #c #cpp
@ProgrammingTip
Telegram
Programming Tips Resources
LiteDB π¦
Embedded NoSQL database for .NET β
An open source MongoDB-like database with zero configuration - mobile ready π±
πΉπΈπΉπΈπΉ
Features π :
β’ Standalone database - LiteDB is serverless database delivered in a single DLL ( Less than 250KB )
β’ Fast & Lightweight - LiteDB is a simple and fast NoSQL database solution. π¨
β’ LINQ Support
β’ Fluent API for custom mapping
β’ Free πΈ
πΉπΈπΉπΈπΉ
Ideal for :
β’ Mobile Apps
β’ Desktop/local small applications
β’ Application file format
β’ Small web applications
β’ One database per account/user data store
https://t.me/pgimg/15
[ Website ] : http://www.litedb.org/
γ°γ°γ°γ°γ°γ°
#Database #LiteDB
@ProgrammingTip
Embedded NoSQL database for .NET β
An open source MongoDB-like database with zero configuration - mobile ready π±
πΉπΈπΉπΈπΉ
Features π :
β’ Standalone database - LiteDB is serverless database delivered in a single DLL ( Less than 250KB )
β’ Fast & Lightweight - LiteDB is a simple and fast NoSQL database solution. π¨
β’ LINQ Support
β’ Fluent API for custom mapping
β’ Free πΈ
πΉπΈπΉπΈπΉ
Ideal for :
β’ Mobile Apps
β’ Desktop/local small applications
β’ Application file format
β’ Small web applications
β’ One database per account/user data store
https://t.me/pgimg/15
[ Website ] : http://www.litedb.org/
γ°γ°γ°γ°γ°γ°
#Database #LiteDB
@ProgrammingTip
Telegram
Programming Tips Resources
Difference between \n and \r π
In Unix and all Unix-like systems, \n is the code for end-of-line, \r means nothing special. π€·π»ββοΈ
As a consequence, in C and most languages that somehow copy it (even remotely), \n is the standard escape sequence for end of line (translated to/from OS-specific sequences as needed)
in old Mac systems (pre-OS X), \r was the code for end-of-line instead. π₯
As a (surprising) consequence (harking back to OSs much older than Windows), \r\n is the standard line-termination for text formats on the Internet. π
For electromechanical teletype-like "terminals", \r commands the carriage to go back leftwards until it hits the leftmost stop (a slow operation), \n commands the roller to roll up one line (a much faster operation) β that's the reason you always have \r before \n, so that the roller can move while the carriage is still going leftwards!.
For character-mode terminals (typically emulating even-older printing ones as above), in raw mode, \r and \n act similarly (except both in terms of the cursor, as there is no carriage or roller) π
γ°γ°γ°γ°γ°γ°
#scape_secuence
@ProgrammingTip
In Unix and all Unix-like systems, \n is the code for end-of-line, \r means nothing special. π€·π»ββοΈ
As a consequence, in C and most languages that somehow copy it (even remotely), \n is the standard escape sequence for end of line (translated to/from OS-specific sequences as needed)
in old Mac systems (pre-OS X), \r was the code for end-of-line instead. π₯
As a (surprising) consequence (harking back to OSs much older than Windows), \r\n is the standard line-termination for text formats on the Internet. π
For electromechanical teletype-like "terminals", \r commands the carriage to go back leftwards until it hits the leftmost stop (a slow operation), \n commands the roller to roll up one line (a much faster operation) β that's the reason you always have \r before \n, so that the roller can move while the carriage is still going leftwards!.
For character-mode terminals (typically emulating even-older printing ones as above), in raw mode, \r and \n act similarly (except both in terms of the cursor, as there is no carriage or roller) π
γ°γ°γ°γ°γ°γ°
#scape_secuence
@ProgrammingTip
14 Hot Chrome Extensions for Geeks π₯
β’ Similar Web
β’ Vimium
β’ Grammarly
β’ Image Size Info
β’ Google Analytics Debugger
β’ Tabstop
β’ Session Buddy
β’ Octotree
β’ Ratings Preview for YouTubeβ’
β’ The Greate Suspender
β’ Papier
β’ Fontface Ninja
β’ Marmoset
β’ Lighthouse
https://t.me/pgimg/16
[ Website ] : http://bit.do/cext
γ°γ°γ°γ°γ°γ°
#Chrome #Extension
@ProgrammingTip
β’ Similar Web
β’ Vimium
β’ Grammarly
β’ Image Size Info
β’ Google Analytics Debugger
β’ Tabstop
β’ Session Buddy
β’ Octotree
β’ Ratings Preview for YouTubeβ’
β’ The Greate Suspender
β’ Papier
β’ Fontface Ninja
β’ Marmoset
β’ Lighthouse
https://t.me/pgimg/16
[ Website ] : http://bit.do/cext
γ°γ°γ°γ°γ°γ°
#Chrome #Extension
@ProgrammingTip
Telegram
Programming Tips Resources
C# 7.1 - Everything You Need To Know β¨
Visual Studio 2017.3 brought with it the first minor update to the C# language, C# 7.1 π
This update adds 4 new features to C# :
1οΈβ£ Async Main Method
2οΈβ£ Default Literal Expressions
3οΈβ£ Inferred Tuple Element Names
4οΈβ£ Generic Support For Pattern-Matching
πΈπΉπΈπΉ
In this post, you'll learn :
β’ How to enable the new C# 7.1 language features in your projects
β’ Everything you need to know to start using all four of the new features
β’ Some gotchas with using C# 7.1 in razor views.
https://t.me/pgimg/17
[ Website ] : http://bit.do/csnfe
γ°γ°γ°γ°γ°γ°
#CSharp
@ProgrammingTip
Visual Studio 2017.3 brought with it the first minor update to the C# language, C# 7.1 π
This update adds 4 new features to C# :
1οΈβ£ Async Main Method
2οΈβ£ Default Literal Expressions
3οΈβ£ Inferred Tuple Element Names
4οΈβ£ Generic Support For Pattern-Matching
πΈπΉπΈπΉ
In this post, you'll learn :
β’ How to enable the new C# 7.1 language features in your projects
β’ Everything you need to know to start using all four of the new features
β’ Some gotchas with using C# 7.1 in razor views.
https://t.me/pgimg/17
[ Website ] : http://bit.do/csnfe
γ°γ°γ°γ°γ°γ°
#CSharp
@ProgrammingTip
Telegram
Programming Tips Resources
C# 7.1 - What's New Quick Start eBook.pdf
544.7 KB
C# 7.1 - What's New Quick Start eBook π
Author : Jason Robert π
γ°γ°γ°γ°γ°γ°
#Book #CSharp
@ProgrammingTip
Author : Jason Robert π
γ°γ°γ°γ°γ°γ°
#Book #CSharp
@ProgrammingTip
Modern JavaScript Cheatsheet π
This document is a cheatsheet for JavaScript you will frequently encounter in modern projects and most contemporary sample code. π¨π»βπ»
https://t.me/pgimg/18
[ Github ] : http://bit.do/mosc
γ°γ°γ°γ°γ°γ°
#JavaScript #CheatSheet
@ProgrammingTip
This document is a cheatsheet for JavaScript you will frequently encounter in modern projects and most contemporary sample code. π¨π»βπ»
https://t.me/pgimg/18
[ Github ] : http://bit.do/mosc
γ°γ°γ°γ°γ°γ°
#JavaScript #CheatSheet
@ProgrammingTip
Telegram
Programming Tips Resources
DRY - Dont Repeat Yourself π
π»ββοΈ
Duplication can lead to maintenance nightmares, poor factoring, and logical contradictions. β
The DRY Principle states :
πΉπΈπΉπΈ
Duplication, and the strong possibility of eventual contradiction, can arise anywhere in :
β’ Architecture
β’ Requirements
β’ Code
β’ Documentation
The effects can range from mis-implemented code and developer confusion to complete system failure.
πΊπΉπΊπΉ
Advantages of DRY π :
β’ Maintainability
β’ Readability
β’ Reuse
β’ Testing
[ Website ] : http://bit.do/drypp
https://t.me/pgimg/19
γ°γ°γ°γ°γ°γ°
#DRY #Principle
@ProgrammingTip
Duplication can lead to maintenance nightmares, poor factoring, and logical contradictions. β
The DRY Principle states :
"Every piece of knowledge must have a single, unambiguous, authoritative representation within a system."
πΉπΈπΉπΈ
Duplication, and the strong possibility of eventual contradiction, can arise anywhere in :
β’ Architecture
β’ Requirements
β’ Code
β’ Documentation
The effects can range from mis-implemented code and developer confusion to complete system failure.
πΊπΉπΊπΉ
Advantages of DRY π :
β’ Maintainability
β’ Readability
β’ Reuse
β’ Testing
[ Website ] : http://bit.do/drypp
https://t.me/pgimg/19
γ°γ°γ°γ°γ°γ°
#DRY #Principle
@ProgrammingTip
Telegram
Programming Tips Resources
Flat Icons π«
The largest database of free icons available in PNG, SVG, EPS, PSD and BASE 64 formats and change color of them before download in Flat Icon. π
[ Website ] : https://flaticon.com
γ°γ°γ°γ°γ°γ°γ°
#Icon #Tools
@ProgrammingTip
The largest database of free icons available in PNG, SVG, EPS, PSD and BASE 64 formats and change color of them before download in Flat Icon. π
[ Website ] : https://flaticon.com
γ°γ°γ°γ°γ°γ°γ°
#Icon #Tools
@ProgrammingTip
Flaticon
Free Icons and Stickers - Millions of resources to download
Download Free Icons and Stickers for your projects. Resources made by and for designers. PNG, SVG, EPS, PSD and CSS formats
Do You Know Where Your TempData is β
TempData is a bucket where you can dump data that is only needed for the following request. π¦
That is, anything you put into TempData is discarded after the next request completes. β
This is useful for one-time messages, such as form validation errorsβοΈ
If you need something more persistent, Session is likely what youβre looking for. π₯
By default, TempData is stored in the session.
πΉπΈπΉπΈ
In this article you see how TempData works and how you can use another provider instead of Session to store the data. π
https://t.me/pgimg/20
[ Article ] : http://bit.do/tmpdt
γ°γ°γ°γ°γ°γ°
#AspMvc #TempData #Deep
@ProgrammingTip
TempData is a bucket where you can dump data that is only needed for the following request. π¦
That is, anything you put into TempData is discarded after the next request completes. β
This is useful for one-time messages, such as form validation errorsβοΈ
If you need something more persistent, Session is likely what youβre looking for. π₯
By default, TempData is stored in the session.
πΉπΈπΉπΈ
In this article you see how TempData works and how you can use another provider instead of Session to store the data. π
https://t.me/pgimg/20
[ Article ] : http://bit.do/tmpdt
γ°γ°γ°γ°γ°γ°
#AspMvc #TempData #Deep
@ProgrammingTip
Telegram
Programming Tips Resources
Programming Tips π‘
Photo
Design Patterns - Explained Simply.pdf
1.2 MB
Design Patterns - Explained Simply π
Author : Alexander Shvets π
γ°γ°γ°γ°γ°γ°
#Book #DesignPatterns
@ProgrammingTip
Author : Alexander Shvets π
γ°γ°γ°γ°γ°γ°
#Book #DesignPatterns
@ProgrammingTip
SOLID Principles : Simply Explained β¨
β’ Single Responsibility
β’ Open / Closed
β’ Liskov Subsitution
β’ Interface Segregation
β’ Dependency Inversion
γ°γ°γ°γ°γ°γ°
#OOP #Principle #Solid
@ProgrammingTip
β’ Single Responsibility
β’ Open / Closed
β’ Liskov Subsitution
β’ Interface Segregation
β’ Dependency Inversion
γ°γ°γ°γ°γ°γ°
#OOP #Principle #Solid
@ProgrammingTip
Learn JavaScript: Logical AND / OR / NOT πΎ
JavaScript has 3 logical operators.
They can be used with boolean or non-boolean values.
In this article weβll be exploring logical operators when they are used with boolean values.
β’ And &&
β’ Or ||
β’ Not !
https://t.me/pgimg/21
[ Article ] : http://bit.do/jsopr
γ°γ°γ°γ°γ°γ°
#JavaScript #Operators
@ProgrammingTip
JavaScript has 3 logical operators.
They can be used with boolean or non-boolean values.
In this article weβll be exploring logical operators when they are used with boolean values.
β’ And &&
β’ Or ||
β’ Not !
https://t.me/pgimg/21
[ Article ] : http://bit.do/jsopr
γ°γ°γ°γ°γ°γ°
#JavaScript #Operators
@ProgrammingTip
Telegram
Programming Tips Resources
Cdnjs π
Cdnjs host all popular web related libraries like JavaScript libraries, CSS Frameworks, ... to speed up your website. β¨
Supports :
β’ HTTP 2.0
β’ HTTP
β’ HTTPS
β’ SPDY
πΉπΈπΉπΈ
Currently, Cdnjs is one of the most famous free and public web front-end CDN services which is used by ~2,380,000 websites.
[ Website ] : https://cdnjs.com
γ°γ°γ°γ°γ°γ°γ°
#JavaScript #Tools #Web
@ProgrammingTip
Cdnjs host all popular web related libraries like JavaScript libraries, CSS Frameworks, ... to speed up your website. β¨
Supports :
β’ HTTP 2.0
β’ HTTP
β’ HTTPS
β’ SPDY
πΉπΈπΉπΈ
Currently, Cdnjs is one of the most famous free and public web front-end CDN services which is used by ~2,380,000 websites.
[ Website ] : https://cdnjs.com
γ°γ°γ°γ°γ°γ°γ°
#JavaScript #Tools #Web
@ProgrammingTip
cdnjs
cdnjs - The #1 free and open source CDN built to make life easier for developers
Simple. Fast. Reliable. Content delivery at its finest. cdnjs is a free and open-source CDN service trusted by over 12.5% of all websites, serving over 200 billion requests each month, powered by Cloudflare. We make it faster and easier to load library filesβ¦
Gitignore β¨
Create useful .gitignore files for your project. π€π»
Tell gitignore.io about your operating system, development environment and programming language of choice, and itβll generate a .gitignore file. πΎ
https://t.me/pgimg/22
[ Website ] : gitignore.io
γ°γ°γ°γ°γ°γ°
#Git #Gitignore
@ProgrammingTip
Create useful .gitignore files for your project. π€π»
Tell gitignore.io about your operating system, development environment and programming language of choice, and itβll generate a .gitignore file. πΎ
https://t.me/pgimg/22
[ Website ] : gitignore.io
γ°γ°γ°γ°γ°γ°
#Git #Gitignore
@ProgrammingTip
Telegram
Programming Tips Resources
MVC TempData β Peek vs Keep π€π»
Most of the MVC developer knows that TempData is used to preserve data for a single request but reality is that TempData can pass data for next request also. π€·π»ββοΈ
In this article we will discuss how to persist data with TempData using Keep and Peek method.
As well we will also see the difference between Keep and Peek method. π€
https://t.me/pgimg/23
[ Article ] : http://bit.do/tmpkp
γ°γ°γ°γ°γ°γ°
#AspMvc #TempData
@ProgrammingTip
Most of the MVC developer knows that TempData is used to preserve data for a single request but reality is that TempData can pass data for next request also. π€·π»ββοΈ
In this article we will discuss how to persist data with TempData using Keep and Peek method.
As well we will also see the difference between Keep and Peek method. π€
https://t.me/pgimg/23
[ Article ] : http://bit.do/tmpkp
γ°γ°γ°γ°γ°γ°
#AspMvc #TempData
@ProgrammingTip
Telegram
Programming Tips Resources
What is Unit Testing & Why You Need to Lean It βοΈ
Unit testing is the practice of writing code to test your code and then run those tests in an automated fashion. β
πΉπΈπΉπΈ
Here is an example. π¨π»βπ»
Imagine you have this function somewhere in your code.
Itβs a basic calculate function that takes an input and depending on some conditions, it returns different values.
If you want to test this function manually :
1οΈβ£ You have to run your application
2οΈβ£ Perhaps you have to login
3οΈβ£ Maybe do a few clicks here
4οΈβ£ There to get to a page where this function is used.
5οΈβ£ You have to fill out a form
6οΈβ£ Submit it
7οΈβ£ Verify if this function returned the right result.
And then you have to repeat all these steps, each time using different values in your form. π€¦π»ββοΈ
πΈπΉπΈπΉ
Manual testing is expensive πΈ
As you can see, this is very time-consuming. βοΈ
This workflow to test this function may take several minutes every timeβοΈ
Now to make matters worse, this is not the only function in your application. π
In a real application, you have tens or hundreds of functions like this βοΈ
As your application grows in size and complexity, the time required to manually test all the different bits and pieces increases exponentially. β±
So, thatβs why we use Automated Testing. β»οΈ
πΊπΉπΊπΉ
https://t.me/pgimg/24
[ Full Article ] : http://bit.do/utdd
γ°γ°γ°γ°γ°γ°
#CleanCode #UnitTest #TDD
@ProgrammingTip
Unit testing is the practice of writing code to test your code and then run those tests in an automated fashion. β
πΉπΈπΉπΈ
Here is an example. π¨π»βπ»
Imagine you have this function somewhere in your code.
Itβs a basic calculate function that takes an input and depending on some conditions, it returns different values.
public float CalculateTax(int input)
{
if (x) return ...;
if (y) return ...;
return ...;
}
If you want to test this function manually :
1οΈβ£ You have to run your application
2οΈβ£ Perhaps you have to login
3οΈβ£ Maybe do a few clicks here
4οΈβ£ There to get to a page where this function is used.
5οΈβ£ You have to fill out a form
6οΈβ£ Submit it
7οΈβ£ Verify if this function returned the right result.
And then you have to repeat all these steps, each time using different values in your form. π€¦π»ββοΈ
πΈπΉπΈπΉ
Manual testing is expensive πΈ
As you can see, this is very time-consuming. βοΈ
This workflow to test this function may take several minutes every timeβοΈ
Now to make matters worse, this is not the only function in your application. π
In a real application, you have tens or hundreds of functions like this βοΈ
As your application grows in size and complexity, the time required to manually test all the different bits and pieces increases exponentially. β±
So, thatβs why we use Automated Testing. β»οΈ
πΊπΉπΊπΉ
https://t.me/pgimg/24
[ Full Article ] : http://bit.do/utdd
γ°γ°γ°γ°γ°γ°
#CleanCode #UnitTest #TDD
@ProgrammingTip
Telegram
Programming Tips Resources