React – Learning path

This post is to track and record my learning of react and use it after some time.

Making some baby steps to learn react.

Here I will be document something related to it.

Basically I’m going to learn about React components, JSX syntax, Forms.

I have good amount knowledge and experience with angular. Now its time do some real learning and experiment in React. Lets do this.

For anyone who are new to React should have some basic understanding about the JavaScript and Web Development.

What is React?

React is a free and open-source front-end JavaScript library for building user interfaces or UI components. It is maintained by Facebook and a community of individual developers and companies. React can be used as a base in the development of single-page or mobile applications.

It focuses on providing rendering and event handling functionalities.

Dev Environment Setup

We need npm installed in our machine. And then we can install the create-react-app

Or if we already have nodejs installed. We can directly run following command to install the package.

npx create-react-app hello-world
cd hello-world
npm start

(npx comes with npm 5.2+ and higher)

It will install create-react-app and create a skeleton app with name hello-world.

After npm start in source folder

Its shows the following screen

Getting Started

…. to be continued

Software Quality Factors & its trade-offs

Common Factors of Software Quality

Modifiability

Efforts needed for modification, fault removal or for environmental change.

Stability

Risk of unexpected effect of modifications.

Testability

Efforts needed for validating the modified software.

Usability

Ability of the software to be easily operated by a given user in a given environment.

Performance

Response time for given throughput.

Availability

Combination of Maturity, Fault tolerance and Recoverability for certain point in time.

Main Factors and Sub Factors of Software Quality

Main FactorsSub FactorsQuality Assurance Method
MaintainabilityChangeabilityModifiability
 StabilityStability
 TestabilityTestability
UsabilityOperabilityUsability
EfficiencyTime BehaviorPerformance
ReliabilityCombination of Maturity, Fault tolerance and RecoverabilityAvailability

Trade-offs between Software Quality Factors

  • Inappropriate use of resources can reduce availability. For example, holding a particular resource for a long time without using it may cause resource starvation and an inability to handle additional concurrent user requests.
  • Lack of documentation may delay management and future upgrades in the software.
  • Increased memory consumption may result in reduced performance.
  • Increased database server processing may result in reduced throughput.
  • Complex applications with many processing permutations are not tested consistently, perhaps because automated or granular testing cannot be performed if the application has a monolithic design. Design systems to be modular to support testing.
  • If the code base is large or complex, the refactoring of the codes will be difficult.
  • Lack of tracing ability will leads to difficulty in modifiability.