从学习计算机的第一天开始,我们都学到了这样一个公式:
程序 = 数据结构 + 算法
不过有意思的是,这里的程序,究竟指的是什么呢?譬如,开发一个Web应用程序,用到了目前流行的SSH架构,那么JSP算不算是程序呢?如果算的话,它的数据结构又是怎么样的呢?
我的看法是,长期以来,我们对数据结构的认识,往往局限在用Java等书写的代码上,而对HTML,javascript这些脚本型的语言,往往会忽视他们的存在,忽视他们本身也是需要数据结构的定义和支持的,因此在系统架构中,这一部分的数据结构和算法往往被忽视掉了.
扯远了,赶紧拉回来.
在Web开发中,用户界面部分,最终传递到客户端浏览器的,一般就是HTML语法和Javascript语法.然后浏览器本身负责对HTML语句进行渲染,把他们变成一个图形界面,有文本,有编辑框,有按钮等元素,展示给最终用户来使用.在这一过程中,HTML语言本身实际上是界面的数据结构表示,只不过其中既有元素的定义,也有元素的属性,没有完全进行分离.而javascript本身是不直接可见的,浏览器需要充当它的解释器,当需要时,来解释执行javascript.
Web开发的复杂性,就在于仅仅在最终界面层,就至少涉及两种语言,HTML,Javascript,如果再加上CSS的话,就至少是三种不同的语言.而这些还仅仅是在静态的情况下,而在实际中,无论HTML,javascript,css,都可能是后台服务器动态生成的,调试需要在后台来完成.这种生产者和消费者隔离的模式,更加加剧了系统开发的复杂性.
更加要命的是,说到现在为止,后台所采用的技术架构还没有开始涉及呢,一旦加上SSH,来点缓存,再来点JSF之类的东西,架构师很快发现,系统中充斥了太多的技术名词,理解他们还来不及呢,更别提用好了.
现在的很多系统开发,简直就是一个大杂烩,把能用的全用上,其实这些技术真的需要吗,往往连考虑这个问题的时间都没有了.
往系统里面增加一个技术是很容易的,想把它拿出来就困难多了.
用户界面的数据结构表示
最新推荐文章于 2024-03-10 14:40:22 发布