Skip to main content

Common Design Principles

There are number of common design principles that, like design patterns, best practice over the years to build maintainable software.

I'm up to describe some widely used design principles though out the post.

Following common principle are extracted by the same book that I mentioned before (Professional ASP.Net Design Patterns - Scott Millet).

Principles are as follows:

Keep It Simple Stupid (KISS)
One common issue in software programming is over-complicating a solution. So main concern of this principle is keep the code simple but not simplistic. Eventually this will avoid unnecessary complexities.

Don't Repeat yourself (DRY)
Main concern of this principle is to avoid the repetition. In other words this is all about abstracting out the common functionalities into a single place.
Ex: If there is a price calculation method in a system. It should lay in a single place there.

Tell Don't Ask
The Tell, Don’t Ask principle is closely aligned with encapsulation and the assigning
of responsibilities to their correct classes. This principle state that you should tell the
object to what actions that you want to perform instead of checking the state of an object and performing the action by yourself. This avoids the tight coupling between classes.

You Ain’t Gonna Need It (YAGNI)
This is about putting of any features that are going to add having the idea in mind, that you gonna need this later. A design methodology that adheres to YAGNI is test-driven development (TDD). In brief TDD is all about righting the code only to pass the test.

Separation of Concerns (SoC)
SoC is the process of dissecting a piece of software into distinct features that encapsulate unique behavior and data that can be used by other classes. Generally, a concern represents a feature or behavior of a class. The act of separating a program into discrete responsibilities significantly increases code reuse, maintenance, and testability.

So this is it.


Comments

vajirajay said…
Good to learn and implement these principals. Grate work Oshadha!

Popular posts from this blog

How to use DataBinder.Eval in HyperLink NavigationUrl - ASP.net

I wanted to append page Url with DataBinder.Eval value in ASP.NET hyperlink control on ASP.NET HTML source. I was trying it using many ways and also search for resources on web but I could not find any useful thing. I thought this will help u guys to get an idea about appending two strings. Solution as follows. <asp:HyperLink ID="customerHyperLink" runat="server" Text= ' ' NavigateUrl=' ' ></asp:HyperLink> You can see how I have appended these two value in NavigateUrl property. Hope some one will get the advantage of this post.

How to configure SQL Server Session State with Custom Database

There are two steps got to follow to enable the SQL Server Session state to work 1. Configuring the database to support the SQL Server Session state. 2. Configuring your application to use SQL Server Session state. 1. Configuring the database to support the SQL Server Session state. .Net framework has a tool aspnet_regsql which you can use to add the table and stored procedure to support SQL Server Session state. You can find this tool in the following folder. C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ aspnet_regsql.exe You can run this exe from window command prompt or you can directly run from SDK Command prompt. Executing the following command enables SQL Server Session state for a database server named local and store it in a custom database called CustomSessionDB. aspnet_regsql -C "Data Source=local;User Id=sa; Password=Sql2005" -ssadd -sstype c -d CustomSessionDB Executing this command creates a new database named CustomSessionDB that contains bot...