You are not clear in your article about what you mean under “perfection”, however, since you mentioned Eric Elliott’s article I believe you meant - making everything simple.
“Make it right” it the most important. If you are chasing speed instead, in result you will have many extra code with almost no architecture. In other words - it won’t be possible to reuse your code fast and adapt to business changes.
I would not recommend this advice in form it is written. Sounds like a party of jr. developers and will work only for small projects.
But I believe you were trying to say:
- Never think about perfomance and optimization ahead. You can optimize only when you will have something to optimize.
- Don’t waste time on planning a lot, just do it like it is even if you can’t find a “better” solution for now. You will find it later.
- If you are trying something and there are no any results in max 1 day — drop what are you doing right now, find a plan B, make a simplier solution.
- Don’t focus first on coding styles, how to name things and where to create new file. It will become clear later.
- Right now right here you have another small project nobody cares about, stop dreaming about Facebook and trying to implement complicated solutions from big companies, they won’t work for your case 100%.
- Stop dreaming about what is popular, you don’t need microservices or single page applications in almost 100% of cases of new projects.
- When there will be a bigger picture later, only then make a micro refactoring. If file is becoming bigger and bigger, separate it into smaller ones.
- Don’t overcomplicate things, if you need a Gorilla, just make it, not a Gorilla holding a bananna in the jungle. Seriously, I’ve seen developer was making a whole new class instead of defining a… just 2 constants.
To sum up — always start from the most lowest layer and add complexity only when there are no other solution. Software engineering is very easy, it is like a Lego where you should build a lot of small simple blocks.