Let’s step back and start with terms clear definition to avoid common pitfalls when using interchangeably terms like Concurrency, Multithreading, Parallel programming and Asynchronous programming.
The Concurrency term is the most generic way to express process of doing more than one thing at a time. End-user facing apps use concurrency to respond to user input while writing to a database.
Server apps use concurrency to respond to a second request while finishing the first request. You need concurrency any time you need an app to do one thing while it’s working on something else.
So, the Concurrency term is generic…
Tests naming conventions play crucial role, because they explicitly express the intent of the test. Tests additionally serve as documentation for developers and guide them how can be certain class and method used.
When naming is clear, it gives quick understanding which scenarios it covers. Otherwise vague and misleading names hinder actually what is being tested and understanding of any problems it finds.
So, the name of a test should contain following information:
//[Fact] or [Test] or etc…
The test pyramid gives a top level view how production code have to be covered by various types of tests. It emphasizes that low-level tests are fundamental and have to cover vast majority of business logic.
On the bottom of the test pyramid are located tests that should have widest coverage, they are cheaper to implement and fast to execute. The higher the test layer the narrow coverage it should have, the more expensive to implement and the slower to run.
On the top of pyramid are located UI tests, such tests should cover only user interaction aspects, normally such…
According to official documentation gRPC is a modern, open source, language agnostic, high-performance remote procedure call (RPC) framework that can run anywhere.
This technology was originally developed by Google as a open source replacement of their internal Stubby project. Widely thought that gRPC stands for Google Remote Procedure Call. However, since Google made it open source and accepting external contributions, now the ‘g’ is not officially meant Google and currently has no official meaning behind.
The gRPC provides a framework that abstracts away how these diverse technology backed applications might be able to interoperate with one another without ever having…
“The key abstraction of information in REST is a resource. Any information that can be named can be a resource: a document or image, a temporal service (e.g. “today’s weather in Los Angeles”), a collection of other resources, a non-virtual object (e.g. a person), and so on.“
Resources are the core component in any REST API modeling. The other building blocks, namely HTTP verbs, status codes…
As an architect you design for the present, with an awareness of the past, for a future which is essentially unknown.
- Norman Foster