近几年前端领域不断地涌现出新的技术, 旧的技术也不断地进行更新换代. 随着技术的不断进步, 前端开发涉及的领域, 也变得越来越广, 接下来跟小编一起来了解一下前端几个重要的领域吧.
在学习过程中有什么不懂得可以加我的 web 前端学习交流扣扣 qun, 前面是 133, 中间 868, 后面是 702. 群里有不错的学习教程与开发工具, 项目源码分享, 专业的老师解答问题. 与你分享 Web 前端企业当下人才需求及怎么从零基础学习好 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 (微信) 这个平台, 拥有大量的用户群体, 因此它也是我们前端开发另一个重要的领域. 微信的公众号与订阅号为市场营销和自媒体从业者, 打造了一个新的天地. 我们以微信公众号为例, 来分析一下微信公众号的主要作用:
信息推送
用户服务
用户互动
此外除了公众号与订阅号外, 微信又推出了微信小程序. 微信小程序是一种全新的连接用户与服务的方式, 它可以在微信内被便捷地获取和传播, 同时具有出色的使用体验.
微信小程序的主要优势:
不用安装, 即开即用
相比于 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
当然前端涉及的领域, 还不止这些. 较新的领域还有, 数据可视化, IOT (物联网), 机器学习等. 网上也有大神专门整理了前端开发人员的技能图谱, 有兴趣的读者可以参考一下, 但一定要做好心理准备, 不要被吓到哦. 里面介绍的是综合的技能, 对于初学者的话, 只要先学 HTML/HTML5,CSS/CSS3 和 JavaScript 的基础知识, 等入门后在参考技能图谱, 好好规划一下学习或进阶线路哟.
最后, 这篇文章的目的不是为了炫耀前端开发有多牛逼, 只是想作为有意向入行前端或刚入门前端人员的参考资料. 俗话说得好, 术业有专攻, 希望新时代的前端开发者, 能先专攻某个领域, 然后再扩展其它领域, 即先有深度再有广度.
来源: http://www.jianshu.com/p/6c549e9d45f2