瘦子与胖子的故事 
                ——WEB程序员的编程环境与任务





                                          
  
       冯骥才曾经译过一篇故事,曰一城有一对朋友。一个胖得出奇,一个瘦得惊人。一开始胖子走俏。人曰胖子块头足,身壮力不亏,显男人气。一时间人皆趋胖,鼓腮挺肚、假装胖子不乏其人;某日胖子找老友瘦子。见瘦子依旧细骨伶仃,便说:“现人人学我,你何不学?” 瘦子淡淡一笑:“等尔过劲,即到吾。” 

        过年有新说:人胖,发喘,出汗,行动不便,脂肪多,易患血管病,有百害而无一利。瘦子摇身变成“当代人最佳体重”,“最符合时代要求的体重”,“典型形象”云云。这日两友相遇。胖子感慨:“早听你言,提早变瘦,如今一下难瘦下去尔!” 瘦子听后摇头:“非也!不知何日又兴胖子!”    


                                       

■  WEB系统工作原理 - 叫外卖
        “Hello 来必宰,给我一份白骨精套餐,地址是东新路123号”,老燕对着电话嚷嚷一通,1分钟后所要的东西出现在电脑屏幕,“OK,您老慢吃!”,昏倒……
 
         如果客户端请求的是HTML,那整个过程就非常简单,来必宰要作的事就是将现菜直接打包原样发送回客户。“静”指的是服务器在接到请求后不对页面内容进行加工。
 
      如果客户请求的是动态页面( PHP / ASP / ASP.NET / JSP),来必宰接收客户的请求及数据后,按指定流程临时产生HTML页面,并将此发送回客户端。
 
       前两天在新浪科技看到一文,横加指责DELL销售模式存在问题,而大肆鼓吹联*科学地将传统模式与直接模式结合,大有世界IT巨人之风彩云云,一想当初该品牌主板上的电容在我和朋友眼前炸成两段的情境,一阵阵泛呕。DELL接到定单后生产的“零库存”模式自有其出彩之处(中国的终端销售商不爽),联*的传统销售网络也一样支撑着自身一步步壮大。要是这个世界都一个样,那乏味得很!但世界永远不会一个样,老马很早告诉过我们。

■  WEB程序员 - 十项全能运动员 

       “最终,我们认识到,一个性能良好的、交互式高效web应用程序就是动态服务器端代码和客户端代码、以及静态内容的混合体。”

      此要求正是WEB程序员的苦衷所在,要有美术功底,又要熟悉静态语言(HTML)和客户端脚本语言(javascript,Java applet等),又要熟悉服务器端语言(Java、C#等),当然数据库更是必不可少了,唉,跑跳投,一样不能少。当然会有人说可以进行团队合作,哈,哈哈,中国有几个老板肯花钱养这么多人呀,可怜的人,包括我。
      
       客户端程序主要的目的是让浏览器响应部份界面操作,并可代为向服务器请求数据,其作用在于减轻网络流量和服务器端压力,但很遗憾的是,有些不法分子在黑暗中大搞破坏,不知觉地在你的机器上种下罪恶的种子,有如372*,所以有部份用户是如此讨厌客户端程序,居然禁用!
 
       服务器端程序是根据用户请求,提取数据,生成HTML页面,当然,也可以生成客户端程序(早期时我总为VBScript与javascript之间的数据交换发愁),发送给客户端。

        胖子和瘦子是分布式计算永恒的话题,合理安排客户端和服务器端的功能分配是系统性能优良的重要保证。B / S的优点是无需操心客户端;C / S的优点在于强大的界面交互表达能力;RIA(Rich Internet Application)融合这两种结构优点的一种技术,在客户端一次性安装一个通用解释器之后即获得强大的界面交互表达能力和无需部署具体客户端的方便性。例如微软的SmartClient,Avalon、Macromedia的Flex;以JS为基础的Bindows;Ajax等等很多。客户端程序就似本文开头之潮流,今儿流行瘦子,明儿流行胖子 。       

      在传统ASP代码文件中,程序员要熟练地运用三种语言来完成工作,用DW时我快成色弱,花花草草的。因此高喊页面与代码分离就不足为奇,于是网络上出现了N种页面代码分离方法,于是DotNET在新出时一重大卖点是真正实现该功能,于是,大家就认为DotNET真是好先进呀,于是,国内的每一本DotNet教材开篇第一句话就是,先进,技术飞跃……看起来真象MS的托。

■  ASP.NET应用程序构架 - 掀起你的盖头来
      终于,DotNET出现了,看起来有一些变化,我发现最主要的变化是,它的扩展名从.asp变成的.aspx,哈……