reviewer

Reviewer

View the Project on GitHub

Navigation: Index Azure .NET SQL React General

General Software Engineering Concepts

SOLID Principles

These principles provide a way for developers to organize their code and create software that is flexible, easy to change, and testable. Applying SOLID principles can lead to code that is more modular, maintainable, and extensible, and it can make it easier for developers to work collaboratively on a codebase.

Design Patterns

Reusable solutions for typical software design challenges are known as design patterns. Expert object-oriented software engineers use these best practices to write more structured, manageable, and scalable code. Design patterns provide a standard terminology and are specific to particular scenarios and problems. Design patterns are not finished code but templates or blueprints only.

1. Creational Design Patterns focus on the process of object creation or problems related to object creation. They help in making a system independent of how its objects are created, composed and represented.

2. Structural Design Patterns solves problems related to how classes and objects are composed/assembled to form larger structures which are efficient and flexible in nature. Structural class patterns use inheritance to compose interfaces or implementations.

3. Behavioral Patterns are concerned with algorithms and the assignment of responsibilities between objects. Behavioral patterns describe not just patterns of objects or classes but also the patterns of communication between them. These patterns characterize complex control flow that’s difficult to follow at run-time.

Benefits of Design Patterns

Dependency Injection

Dependency injection is a programming technique in which an object or function receives other objects or functions that it requires, as opposed to creating them internally. Dependency injection aims to separate the concerns of constructing objects and using them, leading to loosely coupled programs. The pattern ensures that an object or function that wants to use a given service should not have to know how to construct those services. Instead, the receiving “client” (object or function) is provided with its dependencies by external code (an “injector”), which it is not aware of. Dependency injection makes implicit dependencies explicit and helps solve the following problems:

HTTP verbs

HTTP verbs (also known as HTTP methods) define the actions that can be performed on a resource in a RESTful API. Here are the most commonly used HTTP verbs:

1. GET

REST

Representational State Transfer (REST) is a software architecture that imposes conditions on how an API should work. REST was initially created as a guideline to manage communication on a complex network like the internet. You can use REST-based architecture to support high-performing and reliable communication at scale. You can easily implement and modify it, bringing visibility and cross-platform portability to any API system.

RESTful API

RESTful API is an interface that two computer systems use to exchange information securely over the internet. Most business applications have to communicate with other internal and third-party applications to perform various tasks. For example, to generate monthly payslips, your internal accounts system has to share data with your customer’s banking system to automate invoicing and communicate with an internal timesheet application. RESTful APIs support this information exchange because they follow secure, reliable, and efficient software communication standards.

API

An application programming interface (API) defines the rules that you must follow to communicate with other software systems. Developers expose or create APIs so that other applications can communicate with their applications programmatically. For example, the timesheet application exposes an API that asks for an employee’s full name and a range of dates. When it receives this information, it internally processes the employee’s timesheet and returns the number of hours worked in that date range.

You can think of a web API as a gateway between clients and resources on the web.

CRUD

CRUD stands for Create, Read, Update, Delete - the four basic operations of persistent storage.

CQRS

CQRS (Command Query Responsibility Segregation) is a pattern that separates read and write operations into different models.

CORS

CORS (Cross-Origin Resource Sharing) is a mechanism that allows restricted resources on a web page to be requested from another domain.

Microservices

Microservices architecture involves designing an application as a collection of loosely coupled services, each implementing a specific business capability.

OOP

Object-Oriented Programming is defined as a programming paradigm (and not a specific language) built on the concept of objects, i.e., a set of data contained in fields, and code, indicating procedures – instead of the usual logic-based system. This article explains the fundamental concepts of OOP and its most significant advantages.

The four pillars of Object-Oriented Programming (OOPS) are:

1. Encapsulation:

2. Inheritance:

3. Polymorphism:

4. Abstraction:

These principles help in creating modular, reusable, and maintainable code.

Event-Driven Architecture

Event-driven architecture involves designing systems where the flow of the program is determined by events such as user actions, sensor outputs, or messages from other programs.

Clean Architecture

Clean Architecture is a software design philosophy that emphasizes separation of concerns, making the system easier to maintain and test. It involves organizing code into layers, such as presentation, application, domain, and infrastructure.

Browser Request for a Web Page

When a browser requests a web page, it sends an HTTP request to the server, which processes the request and sends back an HTTP response containing the requested resource.

1. URL Input and DNS Resolution

2. Establishing a Connection

3. Sending an HTTP Request

4. Server Processing

5. Server Response

6. Rendering the Page

7. User Interaction and Additional Requests

This process happens in milliseconds to seconds, depending on network speed and server performance. 🚀

Caching

Caching involves storing data in memory to improve performance by reducing the need to fetch data from a slower source.

BDD and TDD in


← React | Back to Index