It is not that hard to explain why I've decided to write this book. The main reason is very simple: I want people to start learning writing clean, clear and smart code. On the other hand (in complement to the main reason), I also wanted to make developers aware of what they can achieve if they will think out of the box and not following rigorously some current working habits which tend to 'standardize' everything around.
This book started from a very strong desire of mine after seeing everywhere a lot of 'bad' use of HTML and CSS. I say 'bad' because I do not claim what I will expose in this book is the shiniest and coolest thing around. The approach I take is somehow opinionated, but it served me very well during the last two years so I'm really into sharing this knowledge with you. And after all, the rules that you are imposing on everything you do take you to an opinionated state of mind anyway, just like discipline is something that you attain after a lot of dedicated time, perseverance and hard work.
The book is for those of you who are sick and tired of working on a project that is taking a lot of time because you either start with no code base at all, you change very often new libraries and frameworks on the promise they will solve all your problems, or you simply find it difficult to wire up and organise your code in a smart and lucrative way, so you can focus on the project itself instead of worrying about your tools.
You will learn the following things:
- write clean code - you will learn how to write clear, semantic and concise code that will make sense to you and your co-workers
- better organisation of your projects - having things sorted out in a visible manner will bring you big benefits when you're searching for something and know where to find it or when you want to move things around without breaking anything else
- creating modularized and reusable components - learn to create reusable components, modify and extend them easily
- code faster and smarter (improve your workflow) - the time you spend on projects is very important, so if you will develop on a good code base, your coding speed will fasten up, but not only this, you will write code in a very semantic and understandable way, not only to you, but to others too
- get a grasp of web components - every day the web technologies are immersing and it seems the future of web developing will be centered around web components, so basically a web component will serve you everything you need from it, it will act as a sole unit that communicates with other components
- tailor your own web framework - creating your own framework that suits your needs and can be used in the best possible way to get things done
- take it to a minimum - you will also learn how to grab out only the things you need on a particular project, and not overwhelming your code base with unnecessary stuff; this way you will make your clients Internet bandwidth happy and speed up response times