Software Engineering practices and JavaScript with application frameworks
--
Overview
· Introduction
· SOLID Principles
· Approaching the solution
· Practices
· Application framework
· JavaScript
· Version Controlling
· No SQL
Introduction
This blog is about software engineering practices and application framework. Reading this will give you a better idea about software engineering practices and JavaScript. What are these practices?. Practices are the things that software engineers use in software development. These usually handle the overall system design of the software application. These are, unit test, code quality, code review, version controlling and continuous integration. This blog also talks about SOLID principles, NO SQL databases and JavaScript framework.
S.O.L.I.D Principles
What are these SOLID Principles? SOLID principles are the five object-oriented principles used in software designing. These five principles are,
1. Single responsibility principle — “A class should have one and only one reason to change, meaning that a class should have only one job”
2. Open-close principle — “Objects or entities should be open for extension, but closed for modification.”
3. Liskov substitution principle — “Every subclass/derived class should be able to substitute their parent/base class”
4. Interface segregation principle — “Clients should not be forced to depend upon interfaces that they do not use.”
5. Dependency inversion principle — “Higher level modules should not depend on lower level modules, but they should depend on abstractions”
The above are the five principles and their definitions.
Approaching the solution
In software engineering we always look for technical solution to a business problems. How do we make the best possible solution?
It has a few things to so with it. They are listed below.
1. Think throughout the problem
2. Divide and conquer
3. Keep it simple and stupid
4. Learn, especially from mistakes
5. Always remember why software exists
6.Remember that you are not the user
Practices
The following is an excerpt from the internet as a definition of software engineering practices.
“Practice is a broad array of concepts, principles, methods, and tools that you must consider as software is planned and developed”
Although there are many software practices, we will talk about some of them.
Unit Testing
What is unit testing? Unit testing is a method of testing software. In this method the test is performed part by part. It is a test of individual parts. This unit can be a class, a function, a module. The main advantage here is the ability to check if each unit receives the relevant output. Also the developer has the ability to change or upgrade the code during the unit testing. Another key feature is the ability to detect problems in advance.
Code Quality
Code quality is a very important practices. The key here is to make the code easy to read and understand. Also the code quality should be checked regularly using tools. It also aims to improve the performance of the code. Also reducing the complexity of the code and reducing the duplication of the code will increase the quality of the code.
Code Review
This is the best way to improve code quality. The purpose here is to increase the performance of the code and find the best way to solve the problem.
Continuous Integration
This is like a repository of code distributors. Developer should check this at least two to three times a day. Each check is varied by an automated build.
Application Framework
What is an application framework?
“An application framework is a software library that provide a fundamental structure to support the development of application for a specific environment. An application framework acts as the skeletal support to build an application.”
There are a large number of frameworks to use in software development. Some of them are,
1. React
2. SpringBoot
3. Vue.js
4. Angular
5. Koa.js
Of these, react, vue.js and angular are used with Javascript and SpringBoot is used with java. React is the most widely used frontend framework today.
JavaScript
JavaScript is a scripting language that runs on a single thread. JavaScript is asynchronous. This is a object oriented programming language.
Advantages
· Speed
· Simplicit
· Popularity
· Interoperability
· Server Load
· Rich interfaces
· Versatility
· Updates
Disadvantages
· Client-Side Security
· Browser support
JavaScript Classes and Objects
In JavaScript, constructor function is used with the new keyword to create an object. Constructor function just a another function only. When a function is used with a new keyword, that function behaves like a class. Although class keyword was recently introduced, It is not currently valid for all JavaScript engines. Another way to create a object is using a object literals. It also supports JavaScript static methods and variables.
JavaScript Prototypes
Prototypes are the mechanism by which JavaScript objects inherit features from one another. Prototype is really another object instance.
Strict notation
This is restricted mode of JavaScript. The purpose here is to write secure JavaScript. This can lead to errors if not used correctly.
Closure
Closure is a function which returns another function.
Callback and Promises
JavaScript is a single thread language so input output is not retained until completed. In such cases callback and promises are used to stop the process until it is complete.
Version Controlling
This is used to manage source changes. Using a revision number identifies the changes. This allows you to see who made the change and how long it took. It is also you to restore, compare and merge changes.
Why we use Version controlling?
· Easier backups and centralized source code repository.
· Easy collaborative development.
· Overview of changes performed to a file.
· Access control.
· Conflict resolvement.
Git is most popular version control system. This is free and open source version control. This is support for multiple protocols.
GIT Commands
● Git init
● Git clone
● Git add
● Git stage
● Git commit
● Git push
No SQL
What is NoSQL database?
NoSQL databases are non-tabular and they store data differently than relational databases. NoSQL databases come in a variety of types based on their data model. Those are,
· Key-Value
· Documents
· Column Family
· Graph
MongoDB is a very popular NoSQL database. It is a NoSQL document base database. This works on javascript spider Monkey engine.Ensuring that this is readily available, protecting data integrity and meeting security and compliance standards good than others.
MongoDB Query
· Insert
· Find
· Update
· Remove
You can get some basic knowledge about JavaScript basics, Version controlling and MongoDB. In the next blog we will talk about JavaScript.
Thank you.