前端开发

前端开发的工作领域 #

本文实践评分

原创实践过编写完成

在国内前端工程师的工作范围主要是使用 JavaScript、CSS、HTML 来编写能够运行在以下几个平台、端上的应用。

主要包括以下几个平台

  • PC 端浏览器
  • 移动端浏览器
  • Android 和 iOS 的 WebView
  • React Native
  • 桌面端应用 Electron、Tauri 等
  • VSCode 扩展

运行的平台 #

PC 端浏览器 #

PC Web 页面开发

即在 Chrome、Safari、Firefox 等浏览器中运行的页面。像淘宝、京东的商城、百度谷歌等的页面都可以在 PC 的浏览器中打开。

浏览器扩展程序(Browser Extensions)

这里指发布到 Chrome 应用商店的应用:插件、PWA 应用。

浏览器扩展程序(Browser Extensions)是一种特殊的软件组件,它们能够增强和扩展 Web 浏览器的功能。这些扩展程序通过使用 Web 技术(如 HTML、JavaScript 和 CSS)编写,可以与浏览器紧密集成,提供更加个性化的浏览体验。扩展程序可以在多种浏览器上运行,如 Google Chrome、Mozilla Firefox、Microsoft Edge 等。

VSCode 扩展 #

Visual Studio Code(VSCode)扩展是用来增强和扩展 VSCode 编辑器功能的插件。通过安装不同的扩展,用户可以根据自己的需求定制 VSCode 的功能,包括代码编辑、调试、版本控制、语言支持、主题更换等方面。VSCode 扩展使得 VSCode 成为一个高度可定制和多功能的开发环境。

Node.js #

Node.js 是一个开源的、跨平台的 JavaScript 运行环境,它使得开发者可以使用 JavaScript 来编写服务器端的代码。Node.js 不是一种编程语言,而是一个让 JavaScript 在服务器端运行的环境。

Node.js 的特点主要有:

  1. 事件驱动和非阻塞 I/O:Node.js 是基于事件循环的,这意味着所有的 I/O 操作(如读写文件、网络通信等)都是异步的。这样可以提高性能,因为服务器在等待 I/O 操作完成时,可以处理其他任务。

  2. 单线程:虽然 Node.js 在内部使用多线程,但对于开发者来说,Node.js 应用运行在单个线程上。这简化了开发,因为不需要担心多线程编程中常见的问题(如线程同步)。

  3. NPM(Node Package Manager):Node.js 拥有一个庞大的生态系统,通过 NPM,开发者可以很方便地安装和管理第三方库。

Node.js 的常见用途包括但不限于:

  • Web 服务器后台
  • API 开发
  • 实时通讯应用
  • 网络应用
  • 数据流应用
  • 工具和实用程序

由于 Node.js 使用 JavaScript,因此对于已经熟悉前端 JavaScript 的开发者来说,学习 Node.js 会更加容易。通过 Node.js,可以使用统一的语言进行全栈开发。

混合 App / Webview #

俗称套壳应用。即在原生的『壳』里面载入 H5 应用,然后通过 JsBridge 等方式来实现原生跟 H5 代码之间的通讯。

混合 App(Hybrid App)是一种移动应用程序,它结合了原生应用和 Web 应用的特点。在混合 App 中,Webview 是一个核心组件,用于显示 Web 内容。Webview 实际上是一个内嵌的浏览器,它允许开发者在原生应用中加载和显示 Web 页面。

这里的技术重点是 JsBridge、原生和 H5 之间的路由控制、离线缓存、资源升级能力

鸿蒙 App #

华为研发的鸿蒙系统中开发应用。

鸿蒙 App 是指专门为华为的鸿蒙操作系统(HarmonyOS)开发的应用程序。鸿蒙操作系统是由华为推出的一个全新的、基于微内核的操作系统,它旨在提供跨多种设备的统一和无缝的体验,包括智能手机、平板电脑、智能手表、智能家居设备等。

小程序开发 #

例如微信小程序,微信小程序的特点是运行在另一个 App 中,其框架、架构、语法等都是微信自己定义的。相当于在手机操作系统之上再造了一个微信专属的应用市场。

跨端框架 #

随着小程序平台的不断涌现,有人思考是否可以在 H5 和原生 App 之间共享代码。

因此有了两种实现流派:运行时兼容和编译时兼容。

侧重运行时兼容的有 Taro。通过增加一层运行时兼容层,可以让开发者使用 React 的语法开发,代码运行在小程序平台中。

小结 #

本章从各个维度来介绍前端的工作内容。总的来说前端是以 JavaScript 语言为主,通过各种工具将写的代码部署并运行在上述的平台中。这些平台有些是开放的,有些则不那么透明。

诚然不同的平台的实现原理、程序运行原理各有区别,但是编程语言仍然是 JavaScript,仍然有 css、js,那么这些平台在应用编写的维度上差异是比较小的。