Global States: Why and How to Avoid Them Global states. These words induce fear and pain in every developer’s heart who had the unfortunate experience to deal with them. Did you already fight against applications behaving unexpectedly, without knowing exactly why, like a poor knight would try to kill an Hydra with too many heads to deal with? Did you end up in the infinite loop of tries and errors, guessing 90% of the time what was happening? This could be the annoying consequences of globals: hidden variables changing their states in unknown places, depending on things you don’t yet understand.
30 Shared Principles for discussing Software Architectures Imagine a fly-by architecture review. An architect walks in, looks over, glosses over, seeing though his binoculars. He provides comments that are often too generic or out of context. Comments are often met with deafening silence or winding arguments. They rarely help anybody if ever. Every programmer dreads it; every architect dreads it too.
Mocks aren’t Stubs I want to clarify a confusion which has been on my mind lately. There is a lot of new information when you start testing for the first time and to understand how Mocks and Stubs work is really important for testing.
10 OOP Design Principles Every Programmer Should Know The Object-Oriented Design Principlesare the core of OOP programming, but I have seen most of the Java programmers chasing design patterns like Singleton pattern, Decorator pattern, or Observer pattern, and not putting enough attention on learning Object-oriented analysis and design.
SOLID Principles every Developer Should Know Object-Oriented type of programming brought a new design to software development. This enables developers to combine data with the same purpose/functionality in one class to deal with the sole purpose there, regardless of the entire application. But, this Object-oriented programming doesn’t prevent confusing or unmaintainable programs.
A Smart Programmer Understands The Problems Worth Fixing This is the story of Peter. Peter is a programmer that can do anything. He can create software as good as any of his other peers. However, there's a difference between a programmer with experience from a programmer without experience, even though both have the same technical skills.
Hand-written service containers Dependency injection is very important. Dependency injection containers are too. The trouble is with the tools, that let us define services in a meta-language, and rely on conventions to work well. This extra layer requires the "ambient information" Paul speaks about in his tweet, and easily lets us make mistakes that we wouldn't make if we'd just write out the code for instantiating our services.
Serverless case study: PrettyCI and Laravel Queues The idea is that anytime you push a commit to your GitHub repository, PrettyCI will analyze that commit using PHP CodeSniffer or PHP-CS-Fixer. Since PrettyCI integrates in GitHub's checks tab you can see the build result directly in your repository without having to leave your work.
Migrating Legacy Web Applications to Laravel There are two possible approaches to migrating your application to Laravel: a flag-day or an in-place/side-by-side migration.
Kubernetes: deploy Laravel the easy way Laravel is an excellent framework for developing PHP applications. Whether you need to prototype a new idea, develop an MVP (Minimum Viable Product) or release a full-fledged enterprise system, Laravel facilitates all of the development tasks and workflows.
Please, stop talking about Repository pattern with Eloquent I regularly see articles like "How to use Repository pattern with Eloquent". The usual contents of them: let's create PostRepositoryInterface interface, EloquentPostRepository class, bind them nicely in DI container and use them instead of the standard Eloquent save and find methods.
How to turn Laravel from Static to Dependency Injection in one Day A framework is just a tool. Each teaches you coding habits you need to use them effectively. Like Laravel gives you speed at prototyping with static "facades". But the applications grows, so does the team, so does your skill and you start to prefer constructor injection. What then? Switch framework or rewrite? But what if all you need is to switch single pattern?
PHP type hints: self and parent In PHP we can type hint function arguments since version 5.0. Over the years and with newer versions of PHP the number of possible type hints have increased. Here’s an overview:
Moving from Go to PHP again Well, after 2 years on Go, our shop applications are powered by PHP again. Why?! You already said it was probably a bad business decision, and then you spend even more time on it?! Well, yeah, several reasons actually.
11 Awesome Laravel Helper Functions (that aren't in Laravel) Let’s just jump right in and introduce the helper functions I included in the package and find uber-duber useful. We’ll go in ascending order of awesome-ness, so you’re not overwhelmed with too much 🔥out of the gate.