外表在项目开发或追求女孩子都很类似,内涵固然重要,但如果没有好的第一印象,很难吸引对方进一步了解你的内在。一个项目团队里会有管理人员、分析人员、设计人员及美工人员等,美工人员主要的工作就是将后端处理好的的数据,美美的呈现给客户看。
开发软件也是一样的,在客户面前就算你说破嘴来解释你所用到的技术有多好多先进,用了多少的 Design Pattern ,来帮客户解决了多大的风险问题,有时候往往不如展示一个美美的画面,直接打动客户的心。
对于 Web Application 来说,除了最后展现的网页必需是令人赏心悦目之外,通常在项目开发的前期,网页也是用来沟通需求的一个重要工具。用网页来呈现整套系统所需要的功能,以及所有的操作流程,应该是最直觉不过的了。所以对于 Web Application 的开发过程,往往会有个 UI Prototyping 的工作里程碑 (Milestone) ,客户及开发人员用来确认彼此的认知是否正确,确认过后才开始进行真正的系统设计的部份。
问题来了, UI Prototyping 如果只是用来确认所有的功能及操作流程,通常只是很随性的用制作网页的工具 ( 例如 Dreamweaver) 把网页给做出来,而美工人员还得为系统制作一份美美的网页出来。如果 UI Prototyping 的网页可以直接使用,对于美工人员来说是最好的,因为不用在重新制作一份。不论是哪一种方式,最后所要面临的问题是,要将真正的数据塞进网页之中,也就是将原本静态的 HTML 网页,改成动态的 JSP 网页。
美工人员势必不懂 java 和 JSP 的语法,所以这项工作一定是程序人员来做,可是网页中常常会有一些基本的组件需要微调的,像是 javaScript 或是窗体,因此程序人员除了要会 java 之外,还得懂得 HTML 、 CSS 、 javaScript 等网页相关的技术,这样才能将资料正确的展现在网页上。
好不容易把 JSP 网页给做出来了,到这里美工人员已经完全无法插手网页的修改了,里面塞了一堆的 java 语法、 Scriptlet 、 Expression 、 JSTL 等。 这时候你得祈祷客户不会再去更动网页上的内容,否则一个改版的动作,可是会忙坏程序人员 。
现在大家在设计 Web Application 时,已经很努力地用 MVC ( model-view-controller )的模式,把 Viewer 的部份跟后端的 Business Logic 切的很干净,但在 JSP 的网页中免不了还是会有许多 java 程序设计师才看得懂的 JSP 相关语法。 这些 JSP 的语法成了日后网页维护的最大障碍 ,因为美工人员再也无法使用网页制作工具来修改网页上的内容,而程序人员又必需俱备十八般武艺在一堆 HTML 与 JSP 语法中穿梭。
有两个方向可以来解决这个问题,一是将后端 Business Layer 所处理好要呈现在网页上的数据组件化,让这个数据组件能够跟网页编辑工具结合,直接透过拖拉放的方式,将数据给放在网页上。这有点像在 IDE 工具中加上 javaBeans 组件,不过难度上高出了许多,因为 IDE 工具毕竟还是用 java 所撰写的,用 javaBeans 也是理所当然的组合。
但网页编辑工具跟数据组件该如何沟通,这得订定出一些标准出来。看起来目前最有可能达到这个目标的,只有 Sun java Studio Creator ,只是 JSC 的网页编辑能力,当然无法跟 Dreamwaver 相比, JSC 还有许多进步的空间。
另外一种解决的方法是,简化 JSP 网页的语法,用最简单的标签来取出所要呈现在网页上的数据。 JSP 2.0 里有项新的技术,叫 Expression Language( 以下简称 EL) ,它的出现可以大大的降低 JSP 网页的复杂度,除了截取数据的法简单外,其语法也让你的网页符合 XML 的规范,换句话说,就是 JSP 网页也能被一般的网页编辑程序来存取,不因为里面的 JSP 组件造成网页画面的错乱。又或者,你可以用 XML 处理程序分析你的 JSP 网页,进而做修改的动作。
EL 的使用方法非常的简单,网页的美工人员可以很容易的学会如何从数据对象中取得所要的数据,这些语法只是一个简单的字符串而已,并不会影响网页画面的呈现。只要美工人员跟程序人员彼此沟通好取得数据的接口,美工人员可以很容易的制做出 JSP 网页,而不在只是塞满假数据的静态 HTML 网页。
不过这里又有个鸡生蛋,蛋生鸡的问题。如果要让美工人员利用 EL 来制作 JSP 网页,势必程序人员必需先把数据沟通的接口给定义好,也就是说系统开发得进行到 SD (系统设计)的阶段。可是前面说过,系统的功能需求确认通常靠网页作为沟通的媒介,在功能需求未确认前,是不会进行到 SD 阶段的,那到底谁该来写 JSP 网页呢?其实并没有冲突, UI Prototyping 还是可以请美工人员先在网页里塞进假的资料,等到 SD 阶段做完之后,再利用 EL 的语法跟真的数据做介接,还是可以让整个系统的开发顺利的进行。
HTML 在展现动态的数据处理上,原本就有其先天上的限制,使用者往往需要浏览了好几个网页后,才能完成某一项的功能步骤。因此最近有一项新的观念慢慢的成型 -RIA (Rich Internet Applications) ,使用者能够透过 RIA 得到更快速、更直觉、更丰富的作方式。
目前 Macromedia 在 RIA 的研究上已有了相当的成果。 Flash 几乎是所有浏览器都会拥有的 Plugin 组件, Macromedia 结合了前端的 Flash 和后端的 J2EE(.Net 版本也在研发中 ) ,推出了名为 Flex 的的技术。个人觉得这是个非常有趣的技术,相信它应该可以带给大家相当大的震撼。碍于篇幅的关系,关于 Flex 的详细数据,你可以到 Macromedia 的网站上去瞧一瞧 (http://www.macromedia.com/tw/software/flex/) 。