IVY DOM


 

人生就像一副复杂拼图
每个人总有属於自己的记忆碎片
优质美国空间-老薛主机|IVY DOM|Flowline|

联系我

RSS




三月 13, 2017

重新发现客户端编程的力量

互联网已经占领世界,B/S架构取代了C/S架构,人们无时无刻都在享受服务端海量数据编程带来的便捷。而JavaScript作为一门互联网语言,让人们逐渐又发现了客户端编程的力量。

传统上讲的B/S架构,往往指通过一个网页与后端程序交互。这种交互最大的优点就是轻便,速度快,不臃肿。而其缺点也很明显,即浪费了客户机大量的计算资源,在传统的B/S架构下,客户机计算资源仅仅用来渲染DOM执行动画,而服务端几乎承载了所有计算,这在大流量下对服务器是一个灾难。

Google是那个时代下最耀眼的产物,Google搜索只有一个搜索框和一个按钮,但其后端的服务器达到了100多万台,他们把B/S架构发挥到了极致。而在2004年,Gmail率先使用AJAX技术极大丰富了B/S架构的理念,使浏览器复杂人际交互变为可能,从此拉开了B/S架构的新篇章。到了2017年,可以看到,Google开发者中心里,所有的客户端服务都是基于JavaScript编写而成的。

HTML5是对B/S架构最好的补充,HTML5的推进,让在浏览器里玩3D游戏、体验VR、做APP成为可能。而更进一步要说明的是,更多基于浏览器的开发、设计工具也如雨后春笋中冒出。比如,verold 性能很好的3d编辑器,在线图片滤镜处理 Polarr Photo Editor ,非常强大的在线3d建模+ 渲染 Clara.io,开源webgl编辑器 WebGLStudio,所见所得网页编辑器 webflow,在线集成开发环境 c9.io,数不胜数。

遗憾的是,所有这些强大,将JavaScript发挥到极致的工具,多数起源于美国,中国在这条路上仍然道阻且长。

B/S架构不再是网页-服务端交互,而是变成了Web应用程序,重复一遍,Web应用程序(划重点),这意味着,在浏览器中运行的程序,可以做和桌面应用程序一样的事情,而这一切,不用分Windows、Linux、OSX,也不用分.NET、MFC、WPF,你只需要会HTML就能画出界面。更让人激动的是,随着技术的进步,你可能连HTML和CSS也不用写,只要依靠强大的工具就可以配置出想要的页面和效果,比如 Gospel-福音计划 提供的所见即所得HTML5网站编辑器。

现代B/S编程对编程人员的要求提高了很多,在传统B/S下,开发者不需要将JavaScript组织的很好,甚至只需要到处复制粘贴几个动画特效即可交差。而现在,如果在面试的时候你不能使用webpack、gulp、npm、yeoman等工具,没有学过ES6,没有Angularjs、Reacjs或Vuejs的使用经验,不懂JavaScript的语言特性,你可能连工作都找不到。而如果你不懂设计模式、面向对象、响应式编程,你可能根本融入不到高级前端工程师的圈子中。

以上是工具层面的要求,编程的核心是数据,根据数据编程。如果你的数据分析能力不强,数据结构基础薄弱,也很难满足现代客户端的设计需求,因为你会发现,只会用递归的你严重拖慢了界面的渲染速度和交互的流畅度。

如果想要发挥浏览器客户端编程的极限,需要开发者拥有如下能力:

一、工程开发

1)框架:backbone、jQuery、Angular、React、Vue

2)构建工具:webpack、browserify、gulp

3)预编译工具:babel、sass、less

4)自动化测试:mocha、jasmin、jest

5)安全问题:XSS、CSRF、HTTP协议详细内容

二、编程思想

1)编程范式:面向对象、响应式编程、函数式编程

2)架构模式:MVC、MVVM、组件式开发

3)算法、设计模式、数据结构

三、拓展技术

1、二维图形编程(SVG、Canvas)

2、三维图形编程(Canvas,three.js)

3、WebGL编程

4、WebSocket网络编程

5、WebRTC音视频编程

6、Nodejs编程

7、CSS3动画使用

8、浏览器原理及兼容性处理

四、核心技术

HTML5、CSS3、ES6

一旦你掌握以上技能,你就可以做到以下这些事情:

一、应用层面

1)跨平台移动APP开发

2)跨平台桌面应用程序开发

3)物联网应用开发

4)网站/网页应用程序开发

5)操作系统开发

二、工具层面

1)三维建模工具开发

2)游戏引擎开发

3)二维图像处理软件开发

4)软件开发工具开发

三、前沿科技

1)人工智能(参考17岁少年在浏览器上模拟自动驾驶)

2)自然语言处理

3)语音识别

一切能用JavaScript写成的,终将用JavaScript写成,当然,这还得建立在你有良好的审美上。客户端直接面向终端用户,终端用户的视觉体验对产品的成功有着不可小觑的影响。

加入JavaScript,重新发现客户端编程的力量。

总而言之,客户端正在帮服务端分担计算;)

相关文章

返回
  1. 暂无评论。

  1. 暂无 Trackback

You must be logged in to post a comment.