Here it stands, the monolith that has grown for decades, and is becoming increasingly difficult to maintain and expand. An undifferentiated rewrite would be too expensive and no guarantee that it would be better this time. In order to tame the monolith, we can refactor it on a large scale, i. e. maintain its behaviour but improve its structure. This can be done, for example, by extracting microservices - and preferably in small steps.
Quality code is highly valued in the PHP community. You’ll rarely find untested libraries on GitHub. Two problems that developers encounter again and again during testing are the handling of file operations, as well as testing built-in PHP functions such as time() or exec() on certain expectations. In this article, Tommy Mühle explains a few solutions for such cases.
Developers usually take their programming language of choice very seriously. Which makes sense since it’s probably the tool they spend the most time using. We get attached to our languages, and debating the merits of various languages can get… passionate.
You might have heard about it before: Most of the time it doesn't make any sense to write software from scratch. Instead, existing software should be refactored – especially when there's no one who understands anymore what exactly some piece of code actually does. Refactoring refers to changing the internal structures of code without diminishing its funtcionality. What is the best way to achieve this goal, especially in large applications?
RabbitMQ is an open source message broker, useful in almost any technology stack. It's built in Erlang and has a reputation for being a robust and reliable technology. However, in this article we'll look at what happens when things are not going smoothly, and how to handle retries when processing RabbitMQ messages.
Backups are one of those things in the IT world that aren't debatable. You should have'em! End of discussion. Statistically speaking, if you never needed one, every day forward you are more likely to actually need a backup.
Continuous Integration is the first step of a Continuous Delivery Chain and can be used as a standalone solution. It reduces the team's workload in the field of quality management by automation and helps to make sure software quality is maintained in the long run.
Zend\Expressive has been the new dynamo in the Zend Framework universe for quite some time now. As a PSR-7 middleware microframework it promises the creation of lightweight web applications within minutes. Let’s take a look at current and past developments concerning Zend/Expressive.