The PHP ecosystem is full of frameworks: Symfony, Laravel, Yii, Zend, Phalcon, and so many, many, many more... All of them built by professionals and supported by big communities. So why on earth would a junior developer, who has just started his first job, try his hand in building yet another one?

I’ve lived in three countries so far, and I got some official documents from all of them (Germans definitely spam way more than the others). I think it’s interesting to compare, how different approaches they have to the design of those documents.

There is a website I’ve created many years ago, Stosłowia (Polish only), which collects stories of up to a hundred words. It never got any users, but I didn’t really care to promote it in any way either.

Last week I’ve decided to rewrite it from scratch, because so many things were wrong about it – from an ancient backend in plain PHP with hardcoded credentials and no separation of concerns, to login with Facebook (and only Facebook) that stopped working... Now it’s a fresh Symfony 4.1 with Encore with some new features (like automatic screenshot generation, seen for instance on Twitter).

But what I’d like to show you, is how a couple of pretty small design changes have made the whole website way nicer visually (IMHO).

I had to learn Git as a programmer. If you want to easily collaborate on a codebase, you really need either Git or something similar. But as a non-programmer, you’ve probably never even heard that name, have you? Then why would you ever need it?

The story I described in here finally has a bittersweet ending – I finally got my computer back! After over two months, after lots of stress and fighting, and after having paid them 130€ (only 25% of what they first requested, but still 100% more than I should have paid)...

I’ve bought my laptop from mySN.de / Schenker Technologies. It seemed like a good idea at the time. But it definitely was not. I feel scammed by them, I feel treated like trash by them. Their customer service is unprofessional, their hardware is crap and they don’t even seem to know what they have in storage and how much do their parts cost. Seriously!

Keeping your classes immutable and stateless makes your code way less prone to bugs. Yet somehow this clean code rule isn’t as popular and as often invoked as
SRP,
YAGNI,
DRY,
KISS
and others... Maybe it’s because of the lack of a catchy acronym?

Anyways, I’d like to take a look at two examples of when sticking to this rule could save your ass (or at least save you some time debugging).

Having 100% of LOC covered by unit tests certainly feels like a great achievement. But beware – that doesn’t necessarily mean your code is perfectly covered. Lines of code coverage is a really nice indicator of your app’s stability, but is can also hide some risks.

Programming isn’t that hard. Really. With enough time and determination, almost everybody could write some useful code. The Internet is full of tutorials that teach you programming from scratch, full of people who faced the same problems you do, full of people who solved those problems and shared their solutions for you to use, and finally full of free libraries that you can just use. All you need to do is learn some tools, google your problems and put together pieces of code that you find.

But if it’s not a black magic, not a secret knowledge, then why are software developers so well paid?