foreword
This type of book should be quite few, analyze excellent third-party libraries to learn. This issue recommends the new work "Front-end Cross-border Development Guide: Analysis and Practice of JavaScript Tool Library Principles" from ByteDance @SHI Wenqiang
Book introduction starts here
Author: @SHI Wenqiang
brief introduction
This book is the hard work of a senior front-end engineer of ByteDance, and it is also a rare technical book on the market that deeply analyzes the classic tool library in the JavaScript ecosystem from principles to actual combat.
There are 6 chapters in the book, namely basic chapters, graphics chapters, multimedia chapters, cross-end development chapters, game development chapters and cross-border practice chapters. The book not only introduces in detail the different application scenarios of the JavaScript language outside of browser pages, From the perspectives of practical skills, design concepts, principle source code, etc., it analyzes more than 30 carefully selected tool libraries in an all-round way. I hope readers can broaden their technical vision while enjoying the beauty of JavaScript code.
In order to help readers better understand the content of the book, a large number of runnable source code are provided in the code repository with the book, including a simplified version of the library rewrite and complete code examples.
Why this book - Preface
Many newcomers consult the community on how to accumulate personal technologies or break through bottlenecks. Experienced engineers will recommend newcomers to read classic books in the JavaScript field to accumulate basic knowledge when they encounter bottlenecks. Some newcomers do not understand this, or they just think that the basics are very important. After all, after each industry reaches the top, the competition is all about basic skills, and it is always good to consolidate basic knowledge. As a result, they spend a lot of time on the basics of JavaScript, but in doing so, aside from their growing awareness of the language, their personal abilities don't seem to change. Objectively speaking, whether or not you clearly understand the program you write, the value you provide to the user hardly changes, even if you refactor the team's "heirloom code" using popular new technologies such as React or Vue. , which improves maintainability and does not become a reason for users to pay. When I first came into programming in 2014, I only learned basic JavaScript syntax, and it took me just over 2 months to learn and independently develop an app with instant messaging function using the development framework and third-party services. Delivered successfully. At that time, Angularjs1 was just starting in China, and there were very few Chinese materials. This is the possibility that the framework brings, even if you have little programming experience, you can still write a deliverable program with an elegant interface. From this perspective, spending a lot of time building up the basics seems like a personal pursuit.
We often hear the words "technical depth" and "technical breadth". The accumulation of basic knowledge belongs to the category of strengthening "technical depth". It improves the developer's problem-solving ability. This technical ability is used in interviews, Value is only shown when technical solutions are reviewed or when problems are located and resolved. If you want to take on more complex work outside of regular business development, you need to continuously increase the "technical depth". The route to improve "technical depth" in the front-end field is relatively clear, that is, to constantly read the excellent source code and go deep into the principles, from the basic knowledge of the JavaScript language to overcoming the "three mountains" - design patterns, data structures, basic algorithms, and then to Develop the design ideas, core principles and best practices of the framework, and finally apply what you have learned in engineering or more comprehensive scenarios. This is a long and torturous process, and it is a practice that every senior front-end engineer who wants to keep going in the industry must go through. It is often said in the industry that "there are no intermediate engineers at the front end. If you think you are not a senior engineer, you can only be considered a newcomer". The knowledge in the front-end field is very complex. In the process of accumulating "technical depth", the value you can create may be the same as before, but please be patient.
When it comes to "technical breadth", many developers are very keen on the concept of "full-stack engineer", thinking that it is a more advanced professional form than a simple front-end. After having 1-2 years of development experience, many front-end engineers turn the route of technical improvement to the fields of back-end, database and operation and maintenance, dreaming that one day they will be able to independently write various components of a project, and then transfer to become a "full-service engineer". Stack engineer" or "architect", to the pinnacle of life. However, the reality is cruel. You will find that most developers who are rushing to improve the technical breadth will eventually become "full stack developers" because they have to switch back and forth between various development roles, but most people can only do Some low-tech work of a "brick-moving" nature. It is true that we should learn and understand some of the work done by other development roles and broaden our knowledge base, but this is not to grab someone's job, but to learn from and exchange different ideas and experiences, and also to better collaborate.
For front-end engineers, there is actually another way to broaden the technical breadth, which is the route the author will show in this book, that is, by learning and applying excellent third-party libraries to understand what JavaScript can do other than writing pages . Many times, what we lack is not knowledge related to a particular language, but knowledge of ideas and domains outside of programming languages. You must know that it is not only possible to become a back-end engineer by learning Java or Go first, nor is it impossible to get involved in the field of artificial intelligence without understanding Python. Through this book, you will find that front-end engineers around the world are doing all kinds of interesting and vivid experiments with JavaScript. Even if you only know JavaScript, you can still understand any field you want to know and do a lot of interesting things. After learning step by step the infinite possibilities that JavaScript brings and the imaginative space it brings to your career planning and life choices, you will definitely like the identity of "front-end engineer", which is why the author wrote this book. .
audience
This book is suitable for JavaScript developers with 0 to 3 years of development experience, front-end engineers, Node.js engineers, and all readers who are curious or interested in front-end.
Readers who are interested in this book can scan the QR code below or read the original text in the lower left corner to learn more.
Other front-end books
[Book] Principles of the Engineer World - Effective Engineers