According to Moore’s law the number of transistors
in an integrated circuit doubles approximately every two years. However, the exponential
processor transistor growth does not always translate into exponentially greater practical CPU
performance. Processor manufacturers for years delivered processors with higher clock rates and
instruction parallelism. As a result, single-threaded code executed faster on newer generations of
processors. Of course, it is impossible to speed up clock rates infinitely and processors like
AMD FX-9590 with turbo clock speed at 5 GHz are rather unique.
Today, processor manufacturers favour multi-core processors.
It is common to have a quad-core CPU in smartphones, not to mention laptops or even desktop PCs.
Consequently, software has to be written in a multi-threaded manner to take full advantage of the
hardware. Thread pools can help programmers
harness multi-core CPUs.
In this post I would like to show you how to add a resource programatically in Jersey
container. We start from a business use case that needs to be implemented. What we are
trying to achieve is to allow external clients to use some resources of internal
microservices. I am aware of the fact that the solution we are going to discuss is not
the best way to solve the problem. Choosing the best solution lies outside the scope
of this post. What is covered in this post are the steps and solutions we tried to use
in order to solve the problem.
This post is an introduction to the mysterious and alien world of aspect-oriented programming, or aspects for short.
At first sight it is difficult to understand why to use aspects and how a project can benefit from this technology.
The simplest use case where we can use an aspect is logging. I believe that everyone saw, or even wrote on their own,
a piece of code where the business logic was interweaving with infrastructure code:
Piotr is a software engineer interested in both concurrent and functional programming. He is a big fan of high-quality code and clean architecure. At Allegro, he works in a team which develops solutions for the financial department.