What is Full Stack development?
Full Stack development involves developing both the front end and back end of the web application/website at the same time. This process includes three layers:
-
Presentation layer (frontend part responsible for user experience)
-
Business logic layer (backend part refers to the server side of the application)
-
Database layer
What is pair programming?
Pair programming (a fundamental aspect of programming) is agile software development technique in which two developer works together on the same machine (system). The developer who writes the code is called the driver and the developer who reviews (checks code, proofread, and spell checks) the code is called the navigator. The programming technique is more efficient and coding mistakes reduced to the minimum. The disadvantage of pair programming is that it increases the cost.
How to enhance a website's scalability and efficiency?
We can use the following ways to optimize the scalability and efficiency of a website:
- Reducing DNS lookup
- Avoiding URL redirects
- Avoiding duplicate codes
- Avoiding unnecessary images
- Leveraging browser caching
- Deferring parsing of JavaScript
- Avoiding inline JavaScript and CSS
- Using srcset for responsive images
- Placing all assets on a cookie-free domain, preferably using a CDN.
What is RESTful API?
The term REST stands for Representational State Transfer. It is an architectural style that is used to create Web services It uses HTTP requests to access and use the data. We can create, update, read, and delete data.
An API (Application Program Interface) for a website is the code that allows two software programs to communicate with each other. It allows us to write requesting services from an operating system or other application.
What do you mean by promise, also explain its states?
A promise is an object that can be returned synchronously from an asynchronous function. It may be in the following three states:
- Fulfilled: If a promise called the onFulfilled() method, a promise will be in fulfilled state.
- Rejected: If a promise called the onRejceted() method, a promise will be in rejected state.
- Pending: If a promise is not yet fulfilled or rejected, a promise will be in pending state.
How to reduce the load time of a web application?
There are the following ways to optimize the load time of a web application:
- Optimize image size and format
- Compress and optimize the content
- Avoid redirects
- Cache the web page
- Minimize the HTTP requests
- Optimize dependencies
- Put stylesheet reference at the top
- Place script reference at the bottom
- Put JavaScript and CSS externally
Name a few Full Stack developer tools
Some of the popular tools used by full-stack developers to make development more accessible and efficient are:
- Backbone
- Visual Studio Code
- WebStorm
- Slack
- Electron
- TypeScript
- CodePen
- GitHub
What is Inversion of Control (IoC)?
Inversion of Control (IoC) is a broad term used by software developers for defining a pattern that is used for decoupling components and layers in the system. It is mostly used in the context of object-oriented programming. Control of objects or portions of a program is transferred to a framework or container with the help of Inversion of Control. It can be achieved using various mechanisms such as service locator pattern, strategy design pattern, factory pattern, and dependency injection.
What is Dependency Injection?
Dependency Injection is a design pattern by which IoC is executed. Injecting objects or connecting objects with other objects is done by container instead of by the object themselves. It involves three types of classes.
- Client class: It depends on the service class.
- Service class: It provides service to the client class.
- Injector class: It injects service class objects into the client class.
What is multithreading and how it is used?
The main purpose of multithreading is to provide multiple threads of execution concurrently for maximum utilization of the CPU. It allows multiple threads to exist within the context of a process such that they execute individually but share their process resources.