How to get from legacy software to a modern, event-driven system? A presentation with deep insights into challenges and solutions from the viewpoint of a consultant with many years of experience in the field.
The past, present, and future of PHP 7. Insights into state-of-the-art system architectures with PHP 7, nginx, and PHP-FPM. A detailed look into migration concepts, and sound advice on selling the move to PHP 7.
This ebook explains why the release of PHP 7 opened a new chapter in the future development of the PHP programming language. Learn how to get your code ready for PHP 7, and how to work around the features that are gone.
Software needs to be maintained, just like buildings need to be refurbished and renovated. The enormous benefits of PHP 7 come at the cost of removed features. Is this appropriate or just annoying for every developer?
Objects must never enter an invalid state. This article shows how self-validating objects can make validator methods and classes largely superfluous. The result are small and meaningful objects that are easy to reuse.
First rule of dependencies: avoid them. Second rule of dependencies: make them explicit, if you cannot avoid them. Passing around a service container is an antipattern called dependency disguise.
As PHP evolves, new possibilites open up. Using annotations to test for exceptions, which used to be the best practice for long, is no longer the best choice. A new approach offers much better IDE support when refactoring.
PHP does not have built-in collections. There is no need to sacrifice type safety, though. Tim Bezhashvyly shows a neat trick to work around PHP's limitations. His post also nicely shows how to introduce elements of functional programming into PHP.
MVC is still a predominant pattern that many consider an application architecture (which it is not). This presentation shows what is wrong with MVC, and what needs to be done to write SOLID and maintainable code using MVC.
Originating from a Code as Craft presentation at Etsy in New York, this presentation condenses Software Craftsmanship into five principles. Following these principles will help to write better software, and greatly increase job satisfaction.
Developers know that bad code is hard to maintain. To make the case for writing better code, the time wasted due to bad code must be made visible. This presentation makes an impressive statement based on almost real numbers.
What happens if you combine the ideas of Test-Driven Development with a Domain-Driven Design approach? Done right, the result is an executable specification of your business rules that non-technical people can understand.
Everybody has to deal with legacy code. Does this prevent us from writing clean, new code? This presentation gives a very hands-on explanation of how to add new components on to legacy code using results-producing bridge technologies.