Front-End Development
Learn about important front-end development concepts and practices to keep in mind
We'll cover the following...
Earlier in this course, I spoke about my view of front-end development; it seems slightly behind the backend’s maturity from an architectural standpoint. This phenomenon happens partly because on the front-end, there are such elements as styling and web design. These areas require specialized knowledge, which automatically puts qualified designers above experienced engineers. Because of such a shift of focus, the best coding and development practices do not get close to the front-end. I respect those designers who help us build beautiful and responsive user experiences, but naturally, they cannot cover all exposed fronts. As a result, coding, development, and architectural patterns are not so popular on the front-end.
One proof of the above statements is an observation that most front-end engineers are not good at JavaScript programming, but they feel very comfortable with HTML markup and CSS. While I acknowledge the necessity of web design, I think JavaScript programming is an essential part of front-end development. Therefore, we need to solve this shortage.
In my mind, there are two possible ways out of the described issue:
-
Front-end engineers get better at coding and architectural patterns, which would allow these specialists to cover the mentioned gap.
-
Front-end development as a practice emerges into two branches: web design and JavaScript engineering, which would enable respective specialists to focus on separate areas of work. Due to front-end frameworks, these two groups can join their deliveries via binding designed and stylized views to coded JavaScript models.
If we can accomplish one of the above objectives, we can maximize ROI from front-end engineering by tapping into techniques, such as:
- Applying best coding practices to the front-end. Design patterns and structures were never meant to be limited to a backend; thus, this breakthrough would be quite logical.
- Evolving front-end architectures for complex applications by introducing layers, domain models, and other advanced structures necessary for