</> realdeveloper

Software engineering concepts

Original sourced explanations and practice questions.

How to read an HTTP request

The client sends a method, address and optional body. The server returns a status, headers and optional body. Diagnose API errors by inspecting both messages.

REST APIs and resource design

REST is an architectural approach. Consistent resource addresses, HTTP semantics and self-contained requests make an API understandable. Using JSON alone does not establish REST compliance.

Repeated requests and idempotency

An idempotent operation does not further change the intended server state when repeated. Responses need not be identical. POST is not automatically idempotent.

CLR: what runs C# code?

The Common Language Runtime manages execution of .NET code, providing services such as memory management, type safety and exception handling. C#, .NET libraries and the CLR have different responsibilities.

What does Domain-Driven Design model?

DDD addresses complex business rules through shared language and models with explicit boundaries, developed with domain experts. A term has consistent meaning within a bounded context but can mean something else elsewhere.

DDL: changing database structure

Data Definition Language defines database objects such as tables and constraints. CREATE, ALTER and DROP belong here. Schema changes serve a different purpose from reading or changing rows.

SQL indexes and their costs

An index can speed up locating rows. It uses storage and must be maintained on writes. Inspect actual queries, data distribution and query plans instead of indexing every column.

Transactions and consistent data

A transaction commits a group of database changes together or rolls them back. When supported by the provider, EF Core applies a single SaveChanges call transactionally. Design boundaries explicitly for multiple calls.

Asynchronous JavaScript and await

Asynchronous work lets the program do other work while waiting. A Promise represents a future outcome. await suspends the continuation of its async function, not the entire application.

Docker: images, containers and data

An image is an executable template; a container is a running instance. Data in a deleted container’s writable layer should not be treated as persistent. Databases need persistence such as volumes.

Kubernetes and desired state

Kubernetes manages containerized workloads. You declare a desired state and controllers reconcile actual state toward it. A Pod is the smallest deployable unit. Deployments manage replicas; Services provide access.

CI/CD and GitHub Actions

Continuous integration combines changes frequently with automated checks. Continuous delivery keeps a releasable version ready; continuous deployment automatically releases eligible changes. GitHub Actions workflows contain event-triggered jobs and steps.

Put it into practice

Public pages are open to everyone. Sign in to save answers and follow a personal practice route.

Open practice topics →