Skip to main content

Introduction for Application Frameworks.

This blog includes the principles that must be followed when designing a software and the way of
approaching and implementing the solution,before going in-depth of the designing languages.

"An application is a software library that provides a fundamental structure to
support the development of applications for a specific environment not only for
graphical user interface development but also for areas like web based applications."
S.O.L.I.D



There are 5 object oriented Principles that should be followed when designing a software.
This is know as S.O.L.I.D

I - Single responsibilities.

  • Designing a class that has only one responsibility

O - Open-Close.

  • The application must be closed for modification and open for extension.

L - Liskov Substitution.

  • Sub-classes derived from the parent class must be able to substitute the parent class.

I - Interface segregation.

  • Clients should not be forced to implement methods they do not use.These unknown methods are known as fat interfaces.

D - Dependency inversion.

  • high level modules should not depend on low level modules but abstraction.


Approaching the Solution.






  • Think throughout the problem - Make sure to understand the problem and clear the uncleared doubts by questioning before approaching the solution.
  • Divide and Conquer - divide the problem into sub parts and make it manageable and understandable and try to approach the solution through the sub solutions.
  • KISS - Keep it simple.
  • Learn from mistakes - Embrace the changes and learn specially from the mistakes.
  • Always remember the reason behind the software existence and that you are not gonna use the software.


Implementing the Solutions.





  • YAGNI -You Ain't  Gonna Need It.Do not implement methods that you do not need.If you do not need it now it wont be used in future as well.
  • DRY - Do Not Repeat Yourself. Keep the code generalized and reusable.
  • Embrace abstraction -
  • DRITW - Do not Reinvent The Wheel.If someone has resolved the problem make use of it do not waste time.
  • Write code that does one thing - do not try to overload the code,Try to implement code that do one thing correctly at one time.
  • Debugging is harder than writing - Make the code readable so it can be easily debugged by the testers. 
  • Kaizen Fix not only the bug but also the code around,hence real problem must be hidden in the designing not in the bug.


Comments

Popular posts from this blog

Basic concepts on NodeJs

Usecases of NodeJS. Walmart and ebay. Node is not the best platform for CPU intensive heavy computational applications. But it is ideal for building fast and scalable network applications.  NodeJS is capable of handling a huge number of simultaneous connections with high throughput. For each connection NodeJS does not spawn new Thread causing max out of memory instead handle all in single thread using non-blocking I/O model. Using this architecture NodeJS has achieved over 1 Million concurrent connections. Bubbling errors up to NodeJS core event loop will cause crashing the entire program. Netflix and Uber. NodeJs is best for, I/O bound applications. Data streaming applications. Data intensive real-time applications. JSON APIs based applications. Single page applications. Modules in NodeJS. In order  a design to be reliable and maintainable should avoid defining variables and functions in the global scope. Instead we can use modular...

RESTful API

Routers can be created according to REST principles such as get, post, put, delete etc..  GET  =>  get request to r etrieve data from database or data store(An array). POST  =>  post request to insert   data to database or data store(An array). PUT  =>  put request to update the data in database or data store(An array). DELETE  =>  delete request to delete data in database or data store(An array). Creation of routers. In this scenario I have created a schema call users using mongoose.  using mongoose the created users model is retrieved. GET request  using the keyword  " get"   the data can be retrieved.  retrieving all the users in the database. By giving a parameter in the url we can get information according to the given subject.  user is retrieved according to the _id. POST request  using the keyword  "pos t"   the...

Callbacks,Promises,Async Await and Closure in JavaScript.

This weeks blog will be including about callbacks and issues of it,promises which was used to overcome the issues of callbacks and closure in JavaScript. Callbacks, promises and async await All theses ways are used to deal with asynchronous data. By default, JavaScript programs run using a single thread. Though there are ways to create new threads, JavaScript is considered as single threaded language. JavaScript does not wait for I/O operations to get completed, instead it continues the execution of the program. This is called as non-blocking I/O. So that JavaScript is an asynchronous programming language because of this NIO nature. Callbacks, Promises and Async Await. As an example when a request is made to a server it will take couple of seconds to response with the relevant data, therefore you do not want to stall your program till the data is returned. You must keep on going or doing something where callbacks come in. Extra facts. until es6 => callbacks were used es...