Skip to main content

01 Web前端工程师都在开发什么

如何在学习和实践前端技术中有所沉淀?

  1. **前端技术不只是技术。**学习 Web 前端技术的目的是将其应用于实际前端开发工作,要对自己为之工作的前端应用有更全面、立体的了解,才能更有效地总结、归纳技术点,真正成为自己的知识。
  2. **掌握技术的广度和深度一样重要。**掌握多项技术后,技术与技术之间的联系和差异,就会在你脑海中形成一张知识图谱。

前端开发工作历史​

Web 前端是一种图形用户界面,即 GUI。

  • 早期的网站或 Web 应用以静态网页加服务器端页面技术为主,如 CGI、ASP、PHP、JSP、Ruby on Rails、ASP.NET 等。
  • 2004 年,谷歌发布了一款基于 AJAX 技术开发的,标志性的 Web 应用——Gmail,从此 B/S(浏览器 - 服务器)架构,成为 C/S 架构中的主流。
  • 2010 年,Apple 创始人乔布斯公开抨击 Flash、力挺 HTML5,Web 应用迎来 HTML5 的时代。浏览器领域 Firefox 和 Chrome 先后打破 IE 的垄断,尤其是 V8 JS 引擎打消了开发者对 JS 性能的顾虑。
  • JS 框架从早期的 jQueryUI、Dojo Toolkit、ExtJS,演进到后来的 Backbone.js、Ember.js,一直到现在的 React、Vue、Angular 三大框架。

前端是界面也是接口​

用户只关注与应用界面的交互,而不需要关注界面后面对应的程序是怎么实现的。

GUI 作为接口的设计准则:

  1. 可用性:用户不需要向导或仅需极少向导即可学会如何与之交互。
  2. 一致性:单一界面标准,能够通过提高产出和减少错误,改善用户学习界面的能力和提高生产率。
  3. 遵循用户心智模型,避免实现模型:比如前端界面上有个颜色选择器,比起一个 RGB 数字值输入框,把可用的颜色块列举出来备选对普通用户更友好。
  4. 最小惊讶原则:就是编程时的那个最小惊讶原则。
  5. 及时反馈:用户点了提交按钮,需要让他知道是否成功,如果在成功前后端需要一些时间计算,需要显示一个进度条,告诉用户后端在计算中;任何场景下都要避免 GUI 冻结而无法做任何操作的情况。

领域知识:

  1. 交互设计:面向用户的交互设计中的图形化元素。
  2. Web 浏览器:前端开发者在设计开发一个 Web 应用之前,需要清楚浏览器能做什么、不能做什么、有什么限制、有什么 workaround,才能做到胸有成竹,确定需求能否实现。

前端领域的变与不变​

模版​

JSP - HTML模板

模版的条件和循环​

JSP 页面模版中的条件或者循环逻辑,可以通过混写 Java 代码来实现。JSP 可以引入标签库(JSTL) 。

Vue.js 框架模版包含了v-if 、 v-for 指令,可以在模版中实现条件和循环。

代码分层​

MVC 架构,JSP 作为纯粹的视图,Servlet 作为控制器,Java Bean 对象作为模型。

Angular 以 MVVM 架构拆分代码文件,数据模型、HTML 视图与 JSP 在概念上是相似的,View-model 视图模型则取代了上面 JSP 中控制器的地位。

软件分发​

当 JSP 项目包含 .java 源文件时,需要编译并与 JSP 文件一起打包成 .war 包,再部署到 Tomcat 里就可以提供服务了。

React、Vue.js、Angular 项目一般而言也需要先通过 Webpack、Vite 等工具构建,生成若干 bundle 后再部署到 CDN 上,即可投入使用。

项目依赖管理​

Java 可以借助第三方开源库(或闭源库)实现很多功能。JSP 项目中常会引入很多这样的依赖。在最早期,这些依赖是通过拷贝 .jar包到项目中引入。当依赖项增多,依赖关系变得复杂,Java 引入了 Maven 工具。Maven 其中一项职能就是定义、管理依赖。

前端代码 package.json 文件中的 dependencies 字段表示,在执行 npm install 的时候,会从 npm 仓库中下载对应的 NPM 包,作为项目依赖。

加载中...