David's profileprowyh's spaceBlogLists Tools Help

Blog


    December 18

    程序语言之胡言乱语

    今天与朋友喝酒,席间谈起程序设计语言的问题,特别是C/C++,不禁唏嘘……
     
    上世纪80年代,伴随着Unix的崛起,C语言成为了软件开发的“标准”语言,Brian W. Kernighan and Dennis M. Ritche的《The C Programming Language》也随之而成为软件开发人员的经典。
     
    90年代,伴随着面向对象(Object-oriented)概念的兴起,C的后继者C++借助Visual C++而成为了Windows环境下软件开发的“王者”……
     
    然而,随着Windows平台由COM时代进入.NET时代,C/C++已然风光不再……
     
    目前存在着三条近乎平行的技术路线:
     
    1、Sun公司的Java平台
    2、Microsoft公司的.NET平台
    3、Linux平台
     
    Java平台的原生语言(也是唯一的语言)是Java语言,.NET平台的原生语言是C#(虽然.NET平台支持各种语言,但无疑C#是最“自然”的语言,而不论是Managed C++还是C++/CLI,看着总是那么别扭),而Linux平台目前尚缺乏商用的应用程序,在Linux平台上运行最多的还是LAMP(Linux + Apache + MySQL + PHP)的Web系统。
     
    由以上的简单分析,使我们不得不感叹C/C++的“美人迟暮”,令人唏嘘不已……虽然心痛,却也无可奈何……
    December 10

    匆匆厦门行

    厦门已经去过多次,这次匆匆两天的厦门之行,最突出的感受是一个字:热!
     
    考虑到厦门会比上海的温度高,行前已经尽量减少了衣装,可还没下飞机,就已经汗流浃背了!随后的两天,就只是一件衬衣,却恨不得把两只袖子也扯掉……所以,陪同的朋友在送行的路上玩笑道:你在的这两天,都是阳光灿烂的日子……
     
    除了由于阳光灿烂而经常汗流浃背之外,就只有惊叹厦门的美了。所以,席间与朋友对比上海与厦门,不禁感叹到:国际化的上海,美丽的厦门!
     
    驱车行驶在由于车辆稀少而显得幽静的环岛公路上,西边是绿草成茵、树影婆挲的半山,东面是波光粼粼、帆影点点的大海,心情也像正午灿烂的阳光一样,变得温暖、澄澈而明亮。
     
    漫步于美丽的厦大校园,看着一张张年轻如绿树青草般充满生机的面孔,也仿佛回到了青年时代……
     
    当我们坐在未来的国际码头旁边的小吃店,一边品尝美味的鲨鱼丸和新鲜的叶子鱼(一种据说是捕捞于外海的形如树叶的长不大的小鱼),一边欣赏海对面的海沧(厦门的“浦东”)的灯光夜景,畅谈着厦门的未来的时候,不觉如梦境般恍惚起来……
     
    美丽的厦门如美丽的闽南姑娘般青春而热情,我直想投入她的怀抱了……
     
    December 05

    关于DataSet对象

    1、ADO.NET中的DataSet对象与DataReader对象的关系有点类似于处理XML的DOM与SAX的关系。
     
    2、DataSet确实是个好东西,解决了两大问题:
     
    2.1 由于DataSet的非连接性,使得SQL Server对同时打开的连接数不得多于2000的限制的压力减轻了许多,因为数据可以在DataSet中处理,打开的连接可以迅速关闭,由此大大减轻对数据库的压力。
     
    2.2 由于DataSet可以序列化为XML,使得DataSet可以在应用程序的各层之间进行传输,由此可以解决LevenSite Server的一大难题:客户端软件对数据库的直接连接。这样一来,LevenSite Server客户端软件与服务器之间可以使用HTTP协议,通过传输XML化的DataSet来实现。
     
    天何言哉。四时行焉,百物生焉,天何言哉?
     

    关于数据服务层及数据访问技术

    今天花了一天的时间翻译了Dan Fox(注意,不是Dan Box!)的一篇文章《设计一个有效的数据访问体系结构》。
     
    作者在文中讨论了在设计数据访问应用程序时需要面对的两个设计决策:如何表示数据服务的外部接口,以及如何实现其内部接口。这些问题也是设计LevenSite Server新版本时需要着重考虑的问题。
     
    关于第一个问题,设计定制类可能成本太高,而数据阅读器又不合适,可选方案就是DataSet对象,由于DataSet对象可以被序列化,所以非常适合作为数据服务的外部接口。
     
    关于第二个问题,由于LevenSite Server不可能一直绑定于SQL Server,而且由于数据工厂方式高度的代码抽象,故考虑利用数据工厂方式实现其内部接口。
     
    数据工厂方式涉及到一个称为抽象工厂模式的设计模式,所以需要再仔细研究一下设计模式问题。GoF的《Design Patterns》真可以说是软件设计上的杰出贡献,哎!
     
    Microsoft的数据访问方式,经历了DB Library,DAO,ODBC,OLE DB,ADO,一直到ADO.NET,几乎为Microsoft多年研发数据访问技术的集大成之作:既有OLE DB的consumer/provider的概念,又有ADO的易用性;既有高效的连接对象DataReader,又有数据库的内存映像的非连接对象DataSet;既可以访问各种关系型数据(tabular data),又可以读写结构化的XML数据;既可以对数据表(DataTable)进行操作,又可以序列化为XML在各层间进行传输。TNND,功能已足够强大了!
     
    慢,据说M$又在鼓捣新的东西,有可能会在ADO.NET中加入Factory之类的模式。关于用Abstract Factory Pattern来解决ADO.NET中的窄域与宽域提供者的问题,有很多人写了文章。Microsoft不可能老是让人说自己在provider上的两张皮的做法。

    《于丹论语心得》

    于丹白衣白裙,坐在一张黄色的长沙发上,旁边是红衫的央视主持人柴静。我灰不溜秋地坐在她们的对面,准备提一些刁钻古怪的问题。
     
    这是2006年11月12日的下午,地点是“百家讲坛”的演播室,话题则围绕着于丹的“论语心得”展开。服装未经设计,访谈也很自由。但我看着这一对桃红李白,总不知孔老夫子见了会作何感想,便不怀好意地问:你们美女也喜欢孔子吗?在你们这些美女的心目中,孔子是什么样的?
     
    谁知于丹并不上当,应声答道:我不主张从性别的角度去看孔子。在我的心目中,孔子只有温度,没有色彩。
     
    好聪明的小妮子,好精彩的回答!……
     
    以上的文字摘自易中天《于丹论语心得》序。
     
    晚上出去觅食,在书摊上见到期待已久的《于丹论语心得》。在等店家端饭上来的间隙,翻阅着《心得》的前言后语,开篇就是以上的文字……
     
    说起来,关于《论语》的书也有了不少了,朱老夫子的《四书集注》在书架上已经躺了十几年了,然后是李泽厚的《论语今读》(第一版),然后是南怀瑾的《论语别裁》,然后是钱穆的《论语新解》,然后是李泽厚的《论语今读》(第二版)……
     
    《四书集注》之不易读自不必说,就是自以为有深度的《论语新解》和《论语今读》也是读个开头就放下了……每每以五柳先生之好读书自诩,实在汗颜……
     
    初识于丹于《百家讲坛》,于丹针对现代人的心灵困惑讲《论语》,讲夫子的温柔敦厚之美,讲夫子的君子之道——红尘中的淡定与从容,讲夫子内心的庄严——由于信仰、信念而产生的内心的庄严与快乐……
     
    再识于丹于《于丹<论语>心得》,易中天是在北京—厦门途中序《于丹》的,正好明天也要去厦门,就在上海—厦门途中读《于丹》罢……