Is it easy to enter a front-end pit now?
I remember that when I first learned programming, I also learned some basic front-end. But when I first started learning, the teacher basically wouldn’t tell everyone how to use front-end development tools, such as (Dreamweaver, FrontPage). It can only be purely manual, and it can only be a window system. Notepad, how painful it was at that time, Notepad did not have any code prompts at all, so basically it was completely copied by pen or memorized by brain (at that time, I felt that my hair was falling very fast, and using the “bawang” doesn’t work, I guess it was almostThe Mediterranean
orThe bald head is strong
). Later, when you become proficient in manual beating, the teacher will tell you to use some tools (mainly because you are playing too slowly, the teacher wants to leave the class quickly). Of course, the tools are very helpful. For example, Dreamweaver, FrontPage, etc. Since I started to use tools, my hair is thicker, and I can sleep better. I no longer want to use a notepad to type, and then my brain is rote. The time that I can’t look back on is really horrible. However, using a variety of front-end programming tools is just an introduction. The key core is to understand the underlying logic of each language and the principles of framework architecture. In this way, no matter how they change, they can basically be used. However, if you are doing front-end development now, it is not So easy. The front-end technology stack has developed and changed so fast over the years that it will be disconnected if you are not careful. Basically, a new framework or new development tool will come out every few months. Now let’s see if How many things do you need to know before entering the business. This used to be a master every minute, but now you are just a Noob to learn these things, hey, no!
Cut Tools
In the past, front-end and art were a technical job. With the development of the Internet, they were divided into UI (User Interface Design), UED (User Experience Design), and UCD (User Interface Design). The front-end has evolved into a general term. Now that the UI designs the page, the front-end may still need to do some things. For example, cut an overall picture into small icons or picture buttons, and then Use html+css to assemble. Now css3 also supports displaying pictures with different coordinates in the same picture, so that there is no need to cut small pictures, it can also reduce the number of browser requests, and speed up rendering speed and efficiency. If you need to cut Pages will use the following tools more or less.
-
HTML+CSS: The underlying language supported by the browser, must be used.
-
Adobe PhotoShop(PS): Edit picture or picture processing.
-
Adobe Illustrator(AI): Vector graphics processing tool.
-
Adobe Dreamweaver(DW): Web code editor.
-
Cutterman: A plugin in PhotoShop that can automatically output the layers you need.
-
LanhuApp: “Lanhu” is an efficient product design collaboration platform.
-
Avocode: The main functions include designing, exporting materials, obtaining image specifications, etc.
Programming Knowledge
I used to learn front-end, basically three tricks of Html+Css+Javascript can travel all over the world. Now I don’t dare to go out (haha). Because I don’t know 3~5 scripting languages for front-end development now, I can’t say that I am a front-end programmer. If you look at the following languages, the front end will be involved, but some use more and some use less.
-
HTML+JavaScript: These two language combinations are basically most of the elements in major browsers today.
-
PHP、Python、Ruby、BashShell: Knowing how to use these languages is basically a bit of a road. It’s not how difficult the language is, but if a front-end developer can use these scripts, then he has basically begun to develop towards the full-stack development path. Great God.
-
NodeJs: JavaScript on the server side, which can run js on the server side.
-
ActionScript: Adobe’s complete object-oriented programming language, mainly used to write animations, can only run in the virtual machine in the Flash play, my first development job is to use ActionScript to independently complete a browser video playback software.
Service Deployment
If the Project is completed, you need to deploy it to the public network to test and see the effect. You can also deploy Apache\Tomcat\Jetty localy, but if you want to show it for others, but don’t want to buy a domain name or cloud server, you can Use the following Pass products to test it.
-
GAE (Google App Engine): It is a kind of Paas cloud platform mode that allows you to run your web applications on Google’s infrastructure, and can directly run web programs. It is relatively stable but cannot be accessed in China.
-
SAE (Sina App Engine): A public cloud computing platform launched by Sina R&D Center, which can run Web programs directly. It is a Paas cloud platform model, which is unstable and can support second-level domain names.
-
BAE (Baidu App Engine): It is a PaaS platform provided by Baidu Intelligent Cloud.
-
OpenShift: is the Red Hat cloud computing platform that enables developers to create, test and run their applications, and deploy them to the cloud, also the Paas cloud platform model, which has been well-received in the community.
Tech Community
.This can better improve the future iteration of technology and improve the stability of middleware, and also make information more centralized and convenient for everyone. So what are the more mature front-end communities?
-
MDN : Mozilla’s community for developers of open web technologies.
-
MSDN: Microsoft’s Technical Documentation Center.
-
StackOverflow: Q&A platform.
-
Github: The most popular code hosting service platform in the open source world.
-
Google Developer/web: Google developer community.
-
NodeParty: A community organization for Node.js enthusiasts.
-
D2 Front-end Technology Forum.
-
QCon is a comprehensive technology event hosted by InfoQ.
-
JSConf China (JS China Developers Conference).
-
YUI Developer Conference.
-
Tencent alloy team Web team.
-
W3cplus is a front-end industry technical blog.
mobile terminal
In the past, PC was the platform used by mainstream users, and many companies did not have Wap terminal. There is no unified mobile-side solution framework. Since the popularity of smartphones, mobile-side and H5-side have become mainstream, and mobile-side frameworks have sprung up. Let’s take a look at what technology stacks are needed to develop mobile-side applications now.
-
jQuery Mobile : jQuery mobile solution.
-
HTML5: HTML5 is the next-generation standard for the Internet that regulates video, audio, images, animations, and interactions with devices.
-
CSS3: The mainstream style specification standard in HTML5 today.
-
Iphone/Ipad/IOS: Use Object-C or Swift development language.
-
Android: Use Java or Kotlin .
-
Angular/React.js/Vue.js: Top-level JavaScript frameworks for building web applications.
-
Flutter/Cordova/Weex/Xamarin: Several cross-platform language solutions, one set of code runs on multiple platforms, such as Android/Ios/Web. Flutter has a future trend, and the community is more optimistic about this.
Debug Tool
Yes, because modern browsers provide diagnostic tools, which are very convenient to troubleshoot problems. See what front-end diagnostic tools are available now.
-
FireBug: Firebug is an extension under firefox that can debug all website languages.
-
Web Inspector: Chrome or Safari browsers come with associated developer tools.
-
YSlow/Smushit: YSlow is a FireFox-based plug-in released by Yahoo, and smushit is a free online image compression widget.
-
IEDeveloperToolBar/IETester: A diagnostic tool for IE browser/a tool for testing the compatibility of different versions of IE), IE is almost out of date, and the latest Microsoft browser is Microsoft Edge (I heard that it is about to die).
-
SuperPreview/JsBeautifier: SuperPreview browser compatibility test, and Jsbeautifier is a JS code beautification tool.
-
Fiddle/WireShark/Tcpdump: All three are packet capture tools. The first two can be used to directly operate operating system applications, but Tcpdump is a Linux command that captures packet results of layer 4 protocols (including layer 4).
Front-end Security
.Because they can directly request the back-end interface and bypass the browser’s judgment directly, so as to directly request the back-end interface and bypass the judgment of the front-end JS. Now let’s see what security of the front-end can be controlled?
-
SQL injection/file upload vulnerability: Some SQL keywords cannot be submitted or replaced/file suffix or whitelist, etc., to prevent uploading virus script files to the server.
-
XSS/CSRF: The full name of XSS is cross-site scripting attack (input filtering, output encoding, secure encoding, HttpOnly Cookie, etc.)/CSRF cross-site request forgery (Referer Check, HttpOnly).
-
FBML/caja/sandbox/ADsafe: All are front-end sandbox solutions, that is, how to safely embed third-party js.
Development Tools
The more are the following.
-
Visual Studio Code: Microsoft’s open source, cross-platform source code editor for writing modern web and cloud applications.
-
Sublime: SublimeText is an open source cross-platform code editor (CodeEditor) software.
-
Webstorm: WebStorm is a JavaScript development tool of jetbrains company, chargeable.
-
Dreamweaver: Adobe’s WYSIWYG web code editor that integrates web page creation and website management.
Soft Skills
If coding is our hard skill, then we also need to improve our own soft skills. Because everything has two sides, we need both soft and hard to be just right. So what soft skills do we need to cultivate? Skills, soft skills involve self-management, interpersonal communication, career development, leadership management and other aspects. Including problem-solving ability, technical summary and sharing ability, cross-team communication or development ability, understanding of needs and project management ability , There are also framework modularization ideas and branch version management, interaction design and service availability knowledge, etc. These are soft skills, which cannot be measured with a specific value with technology, and can only be determined on a case-by-case basis.
Knowledge Reserve
The knowledge reserve is not only a framework or JS library that is often used in the front end. You also need to understand the operating system principle, computer network model, several commonly used algorithms, software engineering models, software Test process, data structure, object-oriented programming, aspect programming, MVC/MVVM/SPI architecture pattern, functional programming, JS design pattern, etc. All of these must be supplemented with relevant knowledge, which is actually a general term for technical breadth.
Build Tools
Some processes can be automated, freeing up some repetitive work, allowing us to focus more on core business innovation. Then the front-end tools mainly solve project management tools, plug-in dependency management, compilation management, program entry and exit specification compression Or remove unnecessary code comments, code style checks, and custom plugin extensions.
-
JSLint/JSHint/ESLint/JSCS: A plug-in and configurable JavaScript syntax rule and code style checker, now ESLint is mainstream.
-
Grunt/Webpack/Gulp: A front-end automated development and construction tool that integrates module packaging + control management + compilation processing + process control. Grunt has some advantages, and now the more popular ones are grunt and webpack, which have different focuses , can be used in combination.
-
YUICompressor/JSMin/Tpacker-minifier: Some tools for compressing JS and CSS files.
-
JSDoc3/Doxx/YUIDoc: A set of tools used by front-end code to generate HTML version API documentation. If your JavaScript documentation conforms to the specified annotation specifications, and the commands are written correctly, then the correct JavaScript documentation will appear in front of you.
Standard Specification
Specifications, label specifications, operation specifications, etc. Then briefly introduce some of the specifications involved in the front-end.
-
HTML5/CSS3: The latest html and css specifications.
-
ECMAScript*: A standard specification for JavaScript.
-
CommonJS/NodeJS: Standard for non-browser applications that can run on different JavaScript interpreters and different host environments, similar to the Ruby and Java standard libraries.
-
HTTP1.0/HTTP1.1/HTTP1.2: One of the most widely used network protocols on the Internet.
-
w3c/Dom/Bom/Xhtml/XML/JSON/JSONP: Browser Object Specification and Model and Lightweight Data Interchange Format JSON Specification.
Front-end Framework
There are too many front-end frameworks. If you look at the community, there will be a new one every month. Is it too easy to write a front-end framework? A set of your own front-end library or component library. This actually reflects a problem, that is, each framework has many similarities, and a front-end programmer who is a little bit basic can’t understand other people’s things, so he makes his own. , and then a framework came out. In fact, this momentum is good, but if you create too much, it may not be a good thing for the students who are getting started. I don’t know where to start, so I will write a few .
-
Jquery/YUI/EXtjs: The old JS library is also very popular at present, which basically affects the development of many frameworks later.
-
Redux/MobX: React and MobX are a powerful pair, React provides a mechanism to convert application state into a renderable component tree and render it. MobX provides a mechanism to store and update application state for React to use.
-
ramda: Designed in functional programming style.
-
WeUI: A style library created by the WeChat official team for WeChat Web development, similar to Bootstrap.
-
ColorUI: is a small program component library.
-
Omi: A cross-terminal framework produced by Tencent.
-
Taro: A cross-platform framework produced by JD.com.
-
DoKit: The full name is DoraemonKit, which is a cross-platform function collection panel launched by Didi.
-
MooTools: Object-oriented JS framework.
-
prototype: is the most widely used Ajax development framework.
-
Jasmine: It is a Javascript BDD (Behavior-Driven Development) testing framework that does not depend on any other framework.
-
QUnit: jQuery unit testing framework.
Performance Tuning
Performance is very important in the front-end field. Because if the page element rendering is slow or the JS execution is too complicated or too many JS files are loaded at one time, or the image is loaded too much, these will affect the customer experience. Therefore Some tools are needed to truly verify the performance indicators of the next page, to see if they conform to the rules and strategies formulated in the previous stage, and to better reflect the real users. Then the following are the commonly used performance tools should be used.
-
WebPageTest: A front-end performance (analysis tool).
-
ShowSlow/YSlow: used to collect page performance (test tool).
-
PageSpeed Insights: It is a Google Chrome (browser plug-in) that can analyze the bottleneck of web page speed and allow web designers to develop faster websites.
-
HttpWatch: is a powerful web data analysis tool. Integrated in Internet Explore (tool).
-
dynaTrace Ajax Edition: is a powerful low-level tracing, front-end performance (analysis tool).
-
OneAPM: A service provider (commercial tool) that provides APM solutions for enterprises and developers.
Conclusion
Represents all the front-end, because the development of front-end technology on the Internet is very fast, and it is not surprising that some technologies that are currently used or popular may be eliminated or replaced by other technologies after a year. Therefore, there is only continuous learning and progress. Only then can we maintain our core competitiveness. I hope to provide some reference materials for the students who are getting into the front-end. The road to technology is long, and we should learn to encourage us to move forward!