您当前的位置是:  首页 > 新闻 > 文章精选 >
 首页 > 新闻 > 文章精选 >

烽火前端技术在云计算领域的思考与实践

2018-02-05 12:06:51   作者:   来源:CTI论坛   评论:0  点击:


  一、前言
  近几年来,前端地位发生翻天覆地的变化,这得益于互联网产品的广泛的应用,以及用户对于用户体验提出更加人性化的要求。
  同样,在云计算领域,要想我们的产品脱颖而出,在满足用户基本功能的前提下,也要确保产品的高可用性与强易用性。
  本文立足于时下最火热的前端开发框架,结合云计算技术,深入介绍实际项目遇到的开发瓶颈,并预测未来产品的发展趋势。
  二、前端发展趋势
  一)主流前端框架设计思想
  现如今,前端领域一直在叫响一个声音,“No jQuery”。如果你是刚刚接触前端的开发人员,可能会对这一点产生疑惑。确实,早期前端的世界,jQuery的地位就如同Java在后端的地位。没有几个做前端开发的没有听过jQuery。但如今为啥我们要摒弃jQuery呢?这还得从互联网这几年的发展趋势看这个问题。
  的确,单从代码实现的角度看,只要你的团队精通这项技术,并且能够储备足够的后备开发人员,任何技术、任何框架都是不存在问题的。所以,摒弃jQuery的原因就不是技术问题了,而是市场需求的变更。
  如今的互联网开发模式也跟早期开发模式不同,尤其是移动互联网兴起的这几年。传统互联网开发通常只有两种:Web开发和桌面开发。当时应用的复杂性与多样性也不能跟现在应用相比。所以往往都是一个程序员包揽整个项目的研发。而现在的应用,没有一个“漂亮的脸蛋”和“友好的交互”,根本不会引起用户的问津。所以开发人员由此细分成前端开发和后端开发。前端主要负责页面跳转、交互、数据的展示等,而后端负责提供微服务、数据库读写等。
  再往后,各类框架的蓬勃发展,各种编程思想的不断提出。前端框架也吸取其思想精华,结合Web的具体环境,逐渐产生出Angular、React、Vue等等这些优秀的前端开发框架。
  无论哪种前端开发框架,一般都拥有类似的几个共同点:
  • 单页面应用
  • DOM双向绑定
  • 支持组件化,并能实现组建件通信
  • 支持数据流
  • 支持RESTful
  通过这些共同点,我们也不难发现试下流行前端开发框架的设计思路。那就是把每个前端应用看成是一个个分布式结点,既能维护自身逻辑,有能提供借口供其它应用调用,等应用形成一定规模,就想天上的星星,不仅相对独立,又彼此密不可分。如此,恰恰符合云计算应用的各种特性。
  二)Flux/Redux思想介绍
  前端的特性有很多,其中跟云计算结合最为紧密的,要数Flux/Redux了。
  Flux/Redux最开始是由React提出的,为满足页面结构复杂的大型应用程序所设计的。Redux设计思想很简单:
  • Web应用是一个状态机,视图与状态是一一对应的。
  • 所有的状态都保存到一个对象里。
  图 1 Redux模型
  这种状态机的思想与云计算的思想不谋而和。当云计算规模庞大时,也同样需要监控数字指标进行状态管理,而前端应用程序其实就可以看成一个简单的云计算应用子集,如此,众多的应用相互联系,就能形成庞大的云计算前端体系。
  三、Web设计原则
  一)设计师的职责
  随着前端的发展,设计师的工作也悄然发生变化。从前一个美工就能胜任的工作,如今被划分成更细致的岗位:UI设计师、交互设计师和用户体验设计师。这里不详细展开介绍设计师的具体工作,仅仅立足于前端开发的视角,谈谈设计师的工作重心。
  前面介绍了主流前端框架的设计思想,设计师不仅要能设计出漂亮的界面,也得酌情考虑编码的支持。尤其是工作经验丰富的设计师,其交付给前端开发人员的设计界面,不再是简简单单的一张图片,而应该是结构划分清晰,需求描述准确的多尺寸设计图。前端开发工程师再根据其设计好的图片,精准还原需求设计。
  二)如何做好符合云计算应用的前端设计

 
  前面简单介绍了前端发展背景下的设计师职责,那么云计算领域的设计师又该做何种技能选择呢?
  首要的一点是,设计师得根据实际项目的风格确定产品的设计基调。是走拟物风格,还是走扁平风?是暖色调为主,还是冷色居多?这是设计师首要考虑的问题。因为这个基调先定好,后面的设计工作才能有序展开。
  其次,是要以组件化的思维去设计页面,这点跟前端组建化开发思路保持一致。何为“组件化设计思维”?就是把一个个页面元素看成是一个个单独的组件,设计时,不仅仅要追求单个组件的细致,更重要的是要追求组件放入页面之后整个页面的实际效果。
  由此,设计师最终产出的成果,不仅仅是一张张漂亮的图片,还得是一整套风格统一的组件设计元素。往后的设计工作,就由重新设计一张张图,变成一个个元素的搭配,由此工作效率和可行性将得到大大提高。
  四、前后端分离思想
  一)前后端分离原理
  前面提到主流前端框架的公共特性,不仅仅是为了满足我们实际的业务需求,还有一个重要原因就是为了做前后端分离。
  前后端分离这个概念也不是什么新东西了,主要就是为了解耦开发团队的工作。
  前端开发工程师在NodeJS技术之下可以不用完全依赖后端的服务,而可以自己写数据服务。不用再等待后端接口编写好后才开始自己的开发,完全可以模拟自己的数据请求来实现完整的业务流程。由此进行开发,不仅能减少前后端联调所需的时间,更能保证彼此的开发速度不受太大的干扰,保证项目的开发速度。
  二)前后端分离实践
  国内外互联网巨头早就已经开始进行前后端分离的实践了,比较典型的就是阿里的基于NodeJS的全栈式开发。简单的说,就是在传统Java层与Browser层中间加一层NodeJS层。
  那么加了这一层效果怎样呢。淘宝双十一千万级并发访问量告诉我们,这样的解决方案是可行并且是有效的。
  图 2淘宝基于NodeJS的前后端分离分层
  五、数据可视化
  数据可视化并不是简单的把数据变成图表。而是以数据为视角,看待世界。换句话说,数据可视化的客体是数据,但我们想要的其实是——数据视觉,以数据为工具,以可视化为手段,目的是描述真实,探索世界。
  当下数据可视化工具不少,百度的eCharts,一直都很火的D3.js,开源地图Leaflet等等。运用这些控件,能让应用程序直观地向用户展示数据之间的联系和变化情况,让产品在同类产品中脱颖而出。
  作者简介
  董觅,烽火集成软件工程师,从事软件前端相关开发工作。擅长html5、css3、canvas等前端技术,尤其在数据可视化领域的前端技术实现有深入研究,了解市场主流数据可视化相关技术实现方案。
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题