Architecting Services with Design Patterns π
As the number of your services expands you're going to need to start thinking about how to organize them. π
Applying these two design patterns can help, provided you understand all their variations. β
With the current set of tools that come with the Microsoft .NET Framework, it's easy to create a service. βοΈ
But it's also easy to create what both Nayaki Nayyar and Benjamin Moreland described as a "junk drawer of services." πΎ
If you're going to avoid that as the number of services in your organization increases, then you need to think about your architecture. π€
https://t.me/pgimg/95
[ Article ] : http://bit.do/asdp
γ°γ°γ°γ°γ°γ°
#CleanCode #DesignPatterns
@ProgrammingTip
As the number of your services expands you're going to need to start thinking about how to organize them. π
Applying these two design patterns can help, provided you understand all their variations. β
With the current set of tools that come with the Microsoft .NET Framework, it's easy to create a service. βοΈ
But it's also easy to create what both Nayaki Nayyar and Benjamin Moreland described as a "junk drawer of services." πΎ
If you're going to avoid that as the number of services in your organization increases, then you need to think about your architecture. π€
https://t.me/pgimg/95
[ Article ] : http://bit.do/asdp
γ°γ°γ°γ°γ°γ°
#CleanCode #DesignPatterns
@ProgrammingTip
Telegram
Programming Tips Resources
Use T4MVC to Remove Magic Strings in ASP.NET MVC Apps π©
ASP.NET MVC has a fascination with magic strings. β
Basically any time you need to specify an action, a view, or controller, you use a magic string β¨ :
The problem with magic strings is the same problem that ViewBag has β οΈ :
1οΈβ£ There's no type checking.
2οΈβ£ The developer won't catch these errors until runtime, and sometimes not at all.
πΉπΈπΉπΈ
T4MVC aims to remove magic strings from MVC and replace them with strongly-typed ActionResults. β
It adds a bunch more overloads to methods such as ActionLink(), BeginForm(), and RedirectToAction() so that they can now accept ActionResults as parameters. π
Thereby making them strongly-typed and removing their dependency on magic strings. π
Most importantly, it means we can take the above code samples and refactor them to look like this π€π» :
https://t.me/pgimg/98
[ Article ] : http://bit.do/t4mvc
γ°γ°γ°γ°γ°γ°
#AspMvc #CleanCode #T4MVC
@ProgrammingTip
ASP.NET MVC has a fascination with magic strings. β
Basically any time you need to specify an action, a view, or controller, you use a magic string β¨ :
return RedirectToAction("Index", "Home", new { id = 4 });
return View("Details");
@Html.ActionLink("Back to details", "Detals", "User", new {id = 12}, new {@class = "backlink"});
@using (Html.BeginForm("Details", "User", FormMethod.Post))The problem with magic strings is the same problem that ViewBag has β οΈ :
1οΈβ£ There's no type checking.
2οΈβ£ The developer won't catch these errors until runtime, and sometimes not at all.
πΉπΈπΉπΈ
T4MVC aims to remove magic strings from MVC and replace them with strongly-typed ActionResults. β
It adds a bunch more overloads to methods such as ActionLink(), BeginForm(), and RedirectToAction() so that they can now accept ActionResults as parameters. π
Thereby making them strongly-typed and removing their dependency on magic strings. π
Most importantly, it means we can take the above code samples and refactor them to look like this π€π» :
return RedirectToAction(MVC.Home.Index(4));
return View(MVC.User.Views.ViewNames.Details);
@Html.ActionLink("Back to details", MVC.User.Details(12), new {@class = "backlink"});
@using (Html.BeginForm(MVC.User.Details(), FormMethod.Post))
https://t.me/pgimg/98
[ Article ] : http://bit.do/t4mvc
γ°γ°γ°γ°γ°γ°
#AspMvc #CleanCode #T4MVC
@ProgrammingTip
Telegram
Programming Tips Resources
The Clean Coder.pdf
2.8 MB
The Clean Coder : A Code of Conduct for Professional Programmersπ
Author : Robert C. Martin π
Level : Advanced π
γ°γ°γ°γ°γ°γ°
#Book #CleanCode
@ProgrammingTip
Author : Robert C. Martin π
Level : Advanced π
γ°γ°γ°γ°γ°γ°
#Book #CleanCode
@ProgrammingTip
Insidious Dependencies π€·π»ββοΈ
In the last year or so Iβve really seen the light on how to really write loosely-coupled code. π
I thought I knew something about this concept before β I mean, I knew loose coupling was good, generally speaking, and I knew data abstraction was one of the key ways to limit dependencies between classes. β
However, I didnβt realize that I was unintentionally adding all kinds of coupling into my applications despite my best efforts to the contrary. βοΈ
Letβs talk about some dependencies, including some obvious ones, as well as some insidious dependencies that lurk in most applications Iβve seen. π
Insidious dependencies β :
β’ File System
β’ Email
β’ Web Service & Requests
β’ DateTime.Now
β’ Configuration
β’ New ...
https://t.me/pgimg/139
[ Article ] : bit.do/indP
γ°γ°γ°γ°γ°γ°
#CleanCode #Dependency
@ProgrammingTip
In the last year or so Iβve really seen the light on how to really write loosely-coupled code. π
I thought I knew something about this concept before β I mean, I knew loose coupling was good, generally speaking, and I knew data abstraction was one of the key ways to limit dependencies between classes. β
However, I didnβt realize that I was unintentionally adding all kinds of coupling into my applications despite my best efforts to the contrary. βοΈ
Letβs talk about some dependencies, including some obvious ones, as well as some insidious dependencies that lurk in most applications Iβve seen. π
Insidious dependencies β :
β’ File System
β’ Email
β’ Web Service & Requests
β’ DateTime.Now
β’ Configuration
β’ New ...
https://t.me/pgimg/139
[ Article ] : bit.do/indP
γ°γ°γ°γ°γ°γ°
#CleanCode #Dependency
@ProgrammingTip
Telegram
Programming Tips Resources
How to Stop Using Callbacks and Start Living βοΈ
Javascript has two major ways of dealing with asynchronous tasks - callbacks and Promises. π€
In general Promises are considered easier to use and to maintain than callbacks. β
But in reality even Promises alone wonβt make you happy. π€¬
Asynchronous code may still be quite difficult to read and to understand. π€―
Therefore third-party libraries, e.g. co, provided means to write a synchronous-like asynchronous code. π
I personally prefer everything in the world to be as clear and beautiful as redux-saga. β¨
But not everybody is lucky to work with React and Redux to be able to use sagas. βοΈ
This article will show that in modern Javascript it is not difficult to write a well structured and easy to understand asynchronous code without using any third-party libraries.π
https://t.me/pgimg/146
[ Article ] : kutt.it/call
γ°γ°γ°γ°γ°γ°
#JavaScript #CleanCode
@ProgrammingTip
Javascript has two major ways of dealing with asynchronous tasks - callbacks and Promises. π€
In general Promises are considered easier to use and to maintain than callbacks. β
But in reality even Promises alone wonβt make you happy. π€¬
Asynchronous code may still be quite difficult to read and to understand. π€―
Therefore third-party libraries, e.g. co, provided means to write a synchronous-like asynchronous code. π
I personally prefer everything in the world to be as clear and beautiful as redux-saga. β¨
But not everybody is lucky to work with React and Redux to be able to use sagas. βοΈ
This article will show that in modern Javascript it is not difficult to write a well structured and easy to understand asynchronous code without using any third-party libraries.π
https://t.me/pgimg/146
[ Article ] : kutt.it/call
γ°γ°γ°γ°γ°γ°
#JavaScript #CleanCode
@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