学Web前端,可选择的职业发展方向有哪些?

近几年前端领域不断地涌现出新的技术,旧的技术也不断地进行更新换代。随着技术的不断进步,前端开发涉及的领域,也变得越来越广,接下来了解一下前端几个重要的领域吧。

PC

PC (Personal Computer) 即个人电脑。目前电脑端仍是前端一个主要的领域,主要分为面向大众的各类网站,如新闻媒体、社交、电商、论坛等和面向管理员的各种 CMS (内容管理系统)和其它的后台管理系统。
其实早期并没有 "前端工程师" 的称号,那时候一般叫做 "网页设计师" 或 "美工"。记得最早接触到的网页设计软件是微软开发的 "Frontpage",后面才接触到 "网页三剑客" (Dreamweaver、Fireworks、Flash) 中的 Dreamweaver,直到现在的各种 IDE (集成开发环境),如 Sublime Text、WebStorm、Visual Studio Code 、Atom 等。
对于前端工程师来说,开发 PC 端项目,最痛苦的事情莫过于解决浏览器兼容性问题,特别是 IE 浏览器不同版本的问题。值得高兴的是,针对现代浏览器不同特性的兼容问题,可以借助构建工具的插件来实现自动添加不同浏览器的特性前缀,比如 Post CSS 的 Autoprefixer 插件。
接下来我们来看一下,PC 端第一个网页长啥样:

Web App

Web App 是指使用 Web 开发技术,实现的有较好用户体验的 Web 应用程序。它是运行在手机和桌面端浏览中,随着移动端网络速度的提升,Web App 为我们提供了很大的便利。此外近两年 Google 提出了一种新的 Web App 形态,即 PWA(渐进增强 Web APP) 。
PWA 意图让 Web 在保留其本质(开放平台、易于访问、可索引)的同时, 在离线、交互、通知等方面达到类似 App 的用户体验。PWA 其具体技术包括 Service worker、 Web App Manifest、 Cache API、 Fetch API、 Push API、 Web Push Protocol、 Notification 等等。
Web App 的主要优点:
开发成本低
内容更新快
升级无需通知用户,自动升级
能够跨多个平台和终端
Web App 的主要缺点:
用户体验短期内还无法超越原生应用
离线工作的能力较弱
消息推送不够及时
无法获取系统级别的通知,提醒,动效等等

WeChat

WeChat (微信) 这个平台,拥有大量的用户群体,因此它也是我们前端开发另一个重要的领域。微信的公众号与订阅号为市场营销和自媒体从业者,打造了一个新的天地。我们以微信公众号为例,来分析一下微信公众号的主要作用:
信息推送
用户服务
用户互动
此外除了公众号与订阅号外,微信又推出了微信小程序。微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
微信小程序的主要优势:
不用安装,即开即用
相比于 App 开发来说,小程序开发成本更低
UI 和操作流程比较统一,降低用户的使用难度
基于微信平台,推广更容易、更简单


Hybrid App

Hybrid App (混合应用) 是指介于 Web App、原生 App (主要是 Android 或 iOS )之间的 App,它兼具原生 App 良好用户交互体验的优势和 Web App 跨平台开发的优势。
混合应用功能按网页语言与程序语言的混合,通常分为三种类型:多View混合型,单View混合型,Web主体型。最早的混合应用开发技术,是基于 Phonegap/Cordova 技术。Cordova 为开发者提供了一组设备相关的 API,通过这组 API,移动应用能够以 JavaScript 访问原生的设备功能,如摄像头、麦克风等。
目前主流的混合应用开发框架有:React Native、Onsen UI、Ionic、Framework 7、Native Script 和 Weex 等。这里就不详细展开,对各个框架进行详细对比和分析,有兴趣的读者可以自行查阅一下相关资料。接下来我们来了解一下混合应用的优缺点。
混合应用的主要优点:
开发成本低
节省跨平台的时间和成本
可以访问硬件设备的功能
可以打包成 App,发布到 App Store 或各大安卓应用平台
混合应用的主要缺点:
用户体验不如原生 App
应用性能也不如原生 App
技术还未成熟

Game

HTML5 游戏从 2014 年 Egret 引擎开发的神经猫引爆朋友圈之后,就开始一发不可收拾。不过现在游戏开发变得越来越复杂,需要制作各种炫丽炫丽的效果,还要制作各炫丽于 2D 或者 3D 的场景。为了降低游戏的开发难度,加快游戏的开发进度,国内外不同厂商推出了众多游戏开发引擎。
HTML 5 主要的开源游戏引擎:
phaser
pixi.js
Babylon.js
whs.js
egret
cocos2d-html5

Desktop

桌面应用软件,就是我们日常生活中电脑中安装的各类软件。早期要开发桌面应用程序,就需要有专门的语言 UI (界面) 库支持,如 C++ 中的 Qt 库、MFC 库,Java 的 Swing、Python 的 PyQT 等,否则语言是没办法进行快速界面开发。
随着 Web 技术的不断发展,目前借助 NW.js、Electron 等开发框架,前端也可以开发桌面应用了。其中口碑不错的开源 IDE - Visual Studio Code 就是使用 Electron 开发的。使用 Web 技术,主要的优势是它的跨平台能力和开发效率。但也有它对应的缺点,就是运行效率不如使用专门语言开发的桌面应用。

Server

Node.js 一发布,立刻在前端工程师中引起了轩然大波,前端工程师们几乎立刻对这一项技术表露出了相当大的热情和期待。看到 Node.js 这个名字,初学者可能会误以为这是一个 Javascript 应用,事实上,Node.js 采用 C++ 语言编写而成,是一个 Javascript 的运行环境。
Node.js 让 JavaScript 能够运行在服务端,这个想法简直太棒了。这使得前端开发人员不用再去学服务端开发语言,如 PHP、Java、Ruby 和 C# 等,也可以进入服务端的开发领域。当然学习的过程可能对于大多数纯前端开发人员来说,会比较痛苦和漫长。
Node.js 主要的 Web 开发框架:
Express
Koa
Egg
Nodal
Sails
Loopback


小编是一个多年开发经验的程序员,今年年初整理了一批WEB前端学习资料作为粉丝福利,不论你是计算机专业想往WEB前端方向发展,还是零基础想要转行学习WEB前端,这份资料都能帮助到你。只要关注我,私信我【前端】,即可领取粉丝福利。
当然前端涉及的领域,还不止这些。较新的领域还有,数据可视化、IOT (物联网)、机器学习等。网上也有大神专门整理了前端开发人员的技能图谱,有兴趣的读者可以参考一下,但一定要做好心理准备,不要被吓到哦。里面介绍的是综合的技能,对于初学者的话,只要先学 HTML/HTML5、CSS/CSS3 和 JavaScript 的基础知识,等入门后在参考技能图谱,好好规划一下学习或进阶线路哟。

posted @ 2020-04-15 10:38  巴山红月  阅读(708)  评论(0编辑  收藏  举报