1) What should a full-stack developer know?
Full-stack developer must introduce with the following:
Programming Languages: A full-stack developer must have proficient in more than one programming language like Java, Python, Ruby, C++, etc. One must familiar with different ways to structure design, implement and test the project based on the programming language.
Front End: One must familiar with the front-end technologies like HTML5, CSS3, Angular, etc. The understanding of third-party libraries like jQuery, Ajax, SASS, adds more advantages.
Frameworks: Proficiency in words that are accompanied by development frameworks like Spring, Spring Boot, MyBatis, Django, PHP, Hibernate, js, yin, and more.
Databases:One must be familiar with at least one database. If you are familiar with MySQL, Oracle, and MongoDB it is sufficient.
Design Ability:The knowledge of prototype design like UI and UX design is also necessary.
2) What are MVC and MVP and how MVC is different from MVP?
MVC and MVP both are architectural patterns that are used to develop applications.
MVC
MVC stands for Model View Controller. It is an architectural pattern that is used to develop Java Enterprise Applications. It splits an application into three logical components i.e. Model, View, and Controller. It separates the business-specific logic (Model component) from the presentation layer (View component) from each other.
The model components contain data and logic related to it. The View component is responsible for displaying model objects inside the user interface. The Controller receives the input and calls model objects based on handler mapping. It also passes model objects to views in order to display output inside the view layer.
Full-Stack Developer Interview Questions Java
MVP
MVP stands for Model View Presenter. It is derived from the MVC architectural pattern. It adds an extra layer (known as indirection) to the architectural pattern that splits the View and Controller into View and Presenter. The role of Controller is replaced with a Presenter. It exists at the same level as View in MVC. It contains UI business logic for the View. The invocations received from the View directly sends to the Presenter. It maintains the action (events) between View and Model. The Presenter does not directly communicate with the View. It communicates through an interface.
Full-Stack Developer Interview Questions Java
The major difference between MVC and MVP architectural pattern is that in MVC architectural pattern Controller does not pass the data from the Model to the View. It only notifies the View to get the data from the Model itself.
While in MVP architectural pattern the View and Model layers are connected with each other. The presenter itself receives the data from the Model and sends it to the View to show.
Another difference is that MVC is often used in web-frameworks while MVP is used in app development.
Full-Stack Developer Interview Questions Java
3) What is pair programming?
Pair programming (a fundamental aspect of programming) is an 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.
4) What is CORS in MVC and how it works?
CORS stands for Cross-Origin Resource Sharing. It is a W3C standard and HTTP-header-based mechanism. It permits a server to indicate any other origins (like domain, port, etc.) instead of the requested one. In other words, it enables one website to access the resources of another website using JavaScript.
It supports secure cross-origin requests and transfers data between servers and browsers. Advanced browsers use CORS in APIs. It is flexible and safe in comparison to JSONP (JSON with Padding). It provides better web service integration.
Full-Stack Developer Interview Questions Java
While using the MVC to enable CORS, the same CORS service can be used but we cannot use the same CORS middleware. We can use a particular CORS for a particular action, for a particular controller, and globally for all controllers.
A pre-flight check (or request) is sent by the browser to the server (hosting the cross-origin resource) which ensures that the server will permit the actual request or not. For example, invoking the URL https://example.com through https://demo.com.
Full-Stack Developer Interview Questions Java
5) What are the differences between Get and Post requests?
S.N.
Basis of Comparison
Get
Post
1
Purpose
The Get request is designed for getting data from the server.
The Post request is designed for sending the data to the server.
2
Post Mechanism
The request is sent via URL.
The request is sent via an HTTP request body.
3
Parameter Passing
The request parameters are transmitted as a query string appended to the request.
The request parameters are transmitted with the body of the request.
4
Default
It is the default method hence it implements automatically.
We need to specify manually.
5
Capacity
We can send limited data with the Get request.
We can send a large amount of data with the Post request.
6
Data Type
It always submits data as text.
We can send any type of data.
7
Security
The use of Get is safe because it is idempotent.
The use of Post unsafe because it is non-idempotent.
8
Visibility of Data
The data is visible to the user as it puts the data in the URL.
The data is not visible to the user as it puts the data in the message body.
9
Bookmark and Caching
The Get request can be bookmarked and caching.
The post request cannot be bookmarked and caching.
10
Efficiency
It is more efficient than post.
It is less efficient.
11
Example
Search is the best example of Get request.
Login is the best example of a Post request.
6) 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.
7) What is referential transparency in functional programming?
A program may have the property of referential transparency if any two expressions in the program that have the same value can be substituted for one another anywhere in the program without changing the result of the program. It is used in functional programming. For example, consider the following code snippet:
count1 = (fun(x) + y) * (fun(x) – z);
temp = fun(a);
count2 = temp + y * temp – z;
The variables count1 and count2 will be equal if the value of fun(x) is not reflected. If the variable count1 is not equal to the variable count2, the referential transparency is violated.
8) 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.
9) 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.
A promise will be settled if and only if it is not pending.
10) 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
11) What is a continuous integration and continuous delivery (CI/CD)?
CI/CD is a best practice to develop applications in which code changes more frequently and rapidly. Sometimes, it is also known as CI\CD pipeline. It is widely used in DevOps and also an agile methodology.
Continuous integration is a coding philosophy or deployment practice in which developers integrate their code in a shared repository several times a day. Because modern application requires developing code in different platforms. The goal of continuous integration is to establish an automated mechanism that builds, test, and package the application.
Continuous delivery starts where CI ends. It automatically delivers the application to the selected infrastructure. CD ensures the automated delivery of code if any changes are made in the code.
12) Which architectural designs are mostly used to design applications?
In software design, we use the following architectural design patterns:
Model View Controller
Master-Slave Pattern
Layered Pattern
Model View Presenter
Monolithic Architecture
Event-Driven Architecture Pattern
13) What is long polling?
Long polling is an effective method for creating a stable server connection without using the WebSocket or Server-Side Events protocols. It operates at the top of the conventional client-server model. Note that Node.js is using the same technique as the next development model.
In this method, the client sends the request and the server responds until the connexon is open as it contains new and unique information. As soon as the server responds, a request to the client can be submitted. When the data is available, the server will return a query. It functions when the client application stops and the server ends requests.
14) Explain semantic HTML with an example and why we should use it?
In web design, the idea of using HTML elements to indicate what they actually are. It is known as semantic HTML or semantic markup.
Leave a Reply