5. 表现层逻辑

很多前端开发人员并不重视这部分内容,在有的公司,这部分内容根本就不属于前端开发人员的责任范畴。但是笔者认为,表现层是页面与后端程序沟通的桥梁,作为一名出色的前端开发人员必须关注它,这将有助于应用的可维护性。单纯从页面的角度来讨论前端架构是比较片面的,这也常常会造成对于前端设计人员设计的页面或风格,后端开发人员没有办法实现的局面。因此,结合表现层的逻辑来考虑整个前端架构更为合理,比如,在实体设计的时候就可以考虑到未来在页面上要如何展现这些设计,是否能够实现原型的效果。前端开发人员介入表现层开发将有助于解决原来前端开发所存在的一些问题。

在软件体系架构中,三层的结构是最常见的,通常客户端不直接访问数据库,而在它们之间加入服务层,用于处理业务逻辑及数据访问。图1-11是最常见的Java EE三层结构图。

前端开发所需掌握的技术(2)-魏星博客
(点击查看大图)图1-11? Java EE三层结构图

表现层的实现上,在Java EE领域与.NET领域,主流设计模式是MVC(Model View Controller)模型。它强制性地使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器,它们各自处理自己的任务。MVC模型具有低耦合性、高重用性、便于维护、部署成本低等优点。

业内主流的J2EE MVC框架如下所示:

Struts:Apache曾经最为流行的MVC组件,目前大量的Java EE项目仍然在使用。

Struts2 :Apache用Struts 和 WebWork组合出来的新产品,目前上升势头强劲,本书的后续章节将以该框架作为表现层逻辑的实现方案。

WebWork:老牌的MVC组件,后来组合成了Struts 2,不过自身仍在发展。

Spring MVC:SpringFramework整合自己Spring的优势推出的MVC组件,其用户也不少。

JSF:这个是一个规范,Sun、Apache、Jboss都有各自的实现,用户量很大,被众多IDE支持。

Tapestry:最彻底的MVC开发框架,有丰富的组件资源,重用性很高。

6. 兼容性技术

兼容性所引发的问题近年来逐渐引起人们的重视,其实兼容性问题一直都存在,为什么如今才这么引人关注?这是有原因的。

首先,IE正在失去一家独大的局面,曾经IE占据浏览器市场90%的日子已经一去不复返了。同时,由于IE6、IE7、IE8对于W3C标准的支持程度都不尽相同,IE体系内部已经存在了兼容性的问题,再加上FireFox、Chrome等浏览器的强势崛起,各厂商与IE间的兼容性问题逐渐显著。

其次,在Web 2.0时代,随着Ajax技术的普及与发展,时常用大量的脚本与DOM操作来实现页面上的各种特效,在DOM操作、XML解析、创建异步通信对象等常用操作上的浏览器兼容性问题就逐渐显现出来。

最后,随着3G时代的到来,手机接入互联网的速度已经有了空前的提升,3G手机用户可以直接访问普通的网页。这时,要解决手机显示屏尺寸与普通显示屏尺寸不匹配而引起的用户体验的问题,需要考虑在布局框架上做相应的调整来实现兼容,然而布局又恰恰是浏览器兼容问题的“重灾区”,在各互联网应用越发重视手机用户的今天,此类问题自然越发引人关注。

因此,作为一名前端开发人员,必须掌握以下各个主流浏览器的特性:

Mozilla Firefox

Chrome

Microsoft Internet Explorer

Opera

Apple Safari

在掌握这些浏览器特性的同时,还需要掌握一些常用的Hack技术来解决一些兼容问题。

7. 开放服务

SNS网站的兴起,带动了国内外互联网的新一轮盈利模式的变化。最早将Web应用API开放出来的应该算是Facebook,它通过开放API将自己变成了一个平台,让其他企业或者个人都能基于这个平台开发各种各样的应用。由于Facebook拥有大量的用户,每天都会产生近45个应用,每个人都能在上面找到适合自己的应用。继Facebook后,国内外互联网巨头也相继开放各自的API。

设想一下,如果明天我们将要去海南旅行,我们都需要做些什么?我们需要订机票、酒店、地图、导游,还有什么?还要有这样一个应用,打开某个网址,其网页内容中嵌入了各种需要的数据及航空公司提供的出行航班时刻信息,还能快速订票,Yahoo地图会告诉我目的地旅行线路,未来几天目的地的天气,Flickr可以展示网页旅行照片及酒店信息,等等,诸如此类的数据整合,前提是利用各大公司提供的API开发小部件应用,也称做Widget。目前国内的大多数SNS网站也纷纷提供了开放的API,这里我们只是举了几个常用的API的例子来简单地了解一下。希望在Web 2.0这样一个大环境下,能为用户提供更多的数据。不管是基于REST还是SOAP,前端技术人员都应该更深入地了解开放服务。

8. SEO

SEO(Search Engine Optimization,搜索引擎优化)是一种基于互联网的营销方式,主要作用是增强网站在搜索引擎中的曝光率,从而增加销售机会或信息共享。最直观的反应是网站信息在搜索引擎中的排名。SEO是一项技术,是遵循搜索引擎科学而全面的理论机制,对网站结构、网页文字语言和站点间的互动外交策略等进行合理规划部署来发掘网站的最大潜力,从而使其在搜索引擎中具有较强的自然排名竞争优势,对促进企业在线销售和强化网络品牌起到作用。有人认为SEO很简单,就是做个排名,其实真正的SEO是通过采用易于搜索引擎索引的合理手段,使网站对用户和搜索引擎更友好,从而更容易被搜索引擎收录及优先排序。搜索引擎优化是一种搜索引擎营销指导思想,而不仅仅是对百度和Alexa等的排名。搜索引擎优化工作贯穿于网站策划、建设、维护全过程的每个细节,值得网站设计、开发和推广的每位参与人员了解其职责对于SEO效果的意义。要做好SEO,首先要做的是什么?除了SEO技术本身外,还需要面对的是W3C的技术标准,准确地运用标签,该使用<h1>的地方不能用<h6>,该在<img>元素内增加alt属性的时候应该加上。如果能够做好设计和体验,那么做好SEO也就不是难事了。

9. 性能及安全

对于Web应用,性能与安全都是需要重点关注的问题,因此作为前端开发人员必须具备相关的知识,应该能够熟悉如何在开发高性能的Web应用程序的同时,保证应用的安全可靠,避免那些常见漏洞。

在网络安全方面,需要关注OWASP(Open Web Application Security Project)这个非营利性组织,其网址为http://www.owasp.org/。它致力于提高Web应用程序的安全可视性,帮助开发人员应对应用程序的安全风险。该网站提供了大量有价值的资料,比如一些指南性质的文档、检查表与规范以及大量针对提高应用安全性的开源项目,在这里不再赘述。

对于性能这方面,开发人员需要掌握一些基础的原则(比如Yahoo的12条性能准则),保证在开发阶段就能够提供高效的代码。同时还应该掌握多种性能检测工具,确保在应用出现性能问题的时候能够进行准确定位,提供有效的解决方案。

10. 基本素质

上述提到的都是具体的技术概念,作为一名前端开发人员还需具备一些重要的素质:团队合作能力、沟通能力和掌握正确的开发流程。

良好的团队合作能力与沟通能力是每一个开发人员都需要具备的素质。与后端的开发人员合作,设计良好的前端架构,与用户接触,得到用户需求,这些都依赖于良好的沟通能力。尤其是需求挖掘,这是一个漫长的过程,如何在与用户的沟通中获取真正的需求,如何引导用户得到他们真正想要的东西,这些都建立在与用户良好沟通与信任的基础上。

掌握正确的开发方法和开发流程也至关重要,处理事情的方式的正确性将直接决定产品的质量与流程的可控程度。

转自:http://book.51cto.com/art/201008/222600.htm