- 浏览: 229556 次
- 性别:
- 来自: 广州
最新评论
-
thebye85:
引用 另外一个需要注意的问题,就是SessionMap和隐藏对 ...
WebWork深度探索之Session -
lanxiaoshuang:
写的真好
说的都是概念——有关编程范式 -
lhz:
grep unique wc你需要的只是这么几个小工具而已
努力做个Pragmatic Programmer
文章列表
[前言] 写这篇Post源于我既做过.NET开发又做过J2EE开发的经历。在这样的转变过程中,我对单一平台开发所带来的思维局限性有了很多清晰却零散的想法。在看了振河兄的页面间传递变量的方法及使用范围的讨论之后,我更能体会到在不同的平台进行开发,思维方式会是如此之不同,原来那些零散的想法也随之不断在脑海中涌现,让我有了写下这篇Post的冲动。其实我一直都在宣扬一种观点:技术之间是相通的,精于触类旁通,善于联想是我们程序员应有的优势。我们在专注.NET技术的时候,不妨在工作间隙休息的时候看看.NET外面的世界。
提到.NET和J2EE,一般都会想到它们之间兵戎相见,水 ...
- 2005-08-26 12:21
- 浏览 1010
- 评论(0)
尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一门OO语言哦。因此我们关注Python在FP上的优势的同时,还得了解一下Python在OO方面的特性。 要讨论Python的OO特性,了解Python中的Class自然是首当其冲了。在Python中定义class和创建对象实例都很简单,具体代码如下:
class MyClass(BaseClassA, BaseClassB): def __init__(self): self.x = 0 self.y = ...
- 2005-08-25 23:06
- 浏览 1106
- 评论(0)
昨天罗嗦了一下Visitor模式,idior以及Cavingdeep兄都写下了很多促使我进一步去思考的Feedback,在这里谢谢两位了!感谢的话说完了,让我们言归正传——开始罗嗦,呵呵。 在昨天的Post中我提到了Visitor模式中最重要的一点是:double-dispatch(双重分派)。说来惭愧,昨天在写post的时候,我仅仅在震宇兄的Post中对double-dispatch有了概念上的理解,并且认为accept方法是为了实现double-dispatch的。然而idior和Cavingdeep兄的问题让我心里没了谱:accept为什么要存在,为什么不直接 ...
- 2005-08-20 13:21
- 浏览 1536
- 评论(0)
昨天看了idior兄的Visitor模式全解之后,思考了很久,同时自己也摸索着写了些代码,对Vistor模式有了进一步的理解。 1、使用Vistor模式最大的好处就是增加对数据对象的操作却不需要改变数据对象本身,不需要对数据对象进行重新编译。在这里的数据对象以及所增加的操作都应该满足一定的条件的,如果你所操作的数据对象仅仅是一个或者所增加的操作仅仅作用一个数据对象集合中的极少数元素的话,那么使用Vistor难免就大材小用了。Visitor最适合使用的情况是:在一个拥有多个对象的多个实例集合中增加新操作;对象集合中的对象之间的联系是密切的,同时增加的新操作应该覆盖了对 ...
- 2005-08-19 14:13
- 浏览 906
- 评论(0)
在拜读了idior兄的Transaction in ADO.net 2.0之后,偶也忍不住手痒,写下了关于J2EE Tranaction的几个基本概念一文。在阅读以及总结的过程中,我发现在Transaction的支持上,ADO.net仍需继续努力的哦。也许你会认为我瞎说,那么 ...
- 2005-08-17 15:03
- 浏览 1170
- 评论(0)
Transaction不管在J2EE还是.NET领域中都是相当重要的一个组成部分。尽管很多与Transaction相关的概念在两个不同的平台中都是相通的,但是它们在Transaction的实现方面却有着很多的不同。想对.NET下的Transaction有更深入了解的朋友,可以参考idior兄写的Transaction in ADO.net 2.0。在以下的篇幅里面,我就J2EE中与Transaction相关的几个概念做些讲述。 1.什么是Transaction?所谓Transaction是指一系列不可分割的改动数据库的操作。在这个解释中,有三个关键词:一系列,不可分 ...
- 2005-08-16 22:12
- 浏览 1203
- 评论(0)
Resource Pool(资源池)模式已经在上一篇Post中露过脸了,这次让我们再对其看个仔细吧。Resource Pool模式是在应用程序开发中十分常见的一种模式,如果你使用过任何一个主流的应用服务器,如Tomcat,Weblogic,Websphere,Resin等 ...
- 2005-08-12 12:01
- 浏览 1054
- 评论(0)
在资源模式当中,Resource Decorator(资源修饰器)和Resource Pool(资源池)的使用恐怕是最为广泛的了,而两者结合使用也相当常见。我们先来看一下Resource Decorator模式吧。所谓Resource Decorator模式其实很简单,就是将Decorator模式应用于数据库资源中的一个实例。什么是Decorator模式,这样老生常谈的话题,我就不在这里赘述了,仅将Resource Decorator模式的静态结构以图示之。
BaseResourceDecorator仅仅是Resource的代理类,其中的方法都是简单的委托调用。 ...
- 2005-08-10 16:25
- 浏览 828
- 评论(0)
随着硬件的日新月异,现在设计软件已经不再像十年前那样对软件占用的内存、软件运行消耗的CPU斤斤计较了。如果你有在DOS下写程序的体验,那么当年经常为物理内存不够而头痛的经历或许到现在还历历在目吧。还记得十年前会有很多书籍是专门讲述如何去优化程序,使其占用更少的内存。但是到现在,恐怕都难觅这类书籍的芳踪了。硬件厂商现在似乎为我们程序员创造着一个资源永动机,为我们的软件提供永远也用不完的资源。程序员的精力也不会过多花在如何高效利用资源上了,有时候甚至是没有办法去想。譬如,写了那么多所谓的OO程序,你是否会考虑自己的程序里面构造了多少的对象实例,而这些对象又占用了多少内存呢?C++尚可 ...
- 2005-08-08 01:12
- 浏览 952
- 评论(0)
最喜欢Blog上精致的小日历,因为上面有着自己每天的印记,你可以翻阅自己的过去,也可以沿着小日历的脚步畅想未来。小日历是严格的,当你在今天发布了一篇Post,小日历上就会在今天对应的日期下面加上一道横线。对,是今天,而不是昨天,也不会是明天。小横线承载着一天24小时的分量,所以我会倍加珍惜它存在的意义。没有了思考的横线是脆弱的,是刺眼的,我宁愿让那个日期失去横线的支撑,让它成为思维残缺的证明,成为我努力奔跑的鞭策。 我会翻阅2005年5月份的随笔档案来自嘲,看着小日历上可怜的两道横线,就像是两只嘲笑我的眼睛,笑得很欢,还眯成了一条线。每每这样的翻阅,我的心都会隐隐作 ...
- 2005-08-06 23:15
- 浏览 732
- 评论(0)
晚上上网Check Mail,很意外也很开心的发现IronPython0.9发布了!当我看到EMail的title的时候,我着实有点惊讶,怎么是0.9,而不是0.7.7或者0.8呢?原来是因为新版本的开发比预期的时间多了两个星期,而与此同时,O'Reilly Open Source Convention又临近了,因此IronPython Team决定再奋战多一个星期,直接越过0.8发布0.9。以下是IronPython0.9的更新: * The implementation of subclassing .Net classes and method overrid ...
- 2005-08-03 23:59
- 浏览 810
- 评论(0)
看了Cavingdeep兄的Post,还有idior老大的comment,我又忍不住想说上两句了,因为Boo总能让我想起可爱的Python,还有正在茁壮成长的小小IronPython。:)
说到Type Inference,有一个概念是不得不提的,就是Dynamic Type(动态类型)和Static
Type(静态类型)。静态语言就不必多说了,C++、Java和C#都是静态语言,它们最大的特点就是变量在使用之前都必须进行类型声明。而
Python。VB则是一种动态类型语言,所谓动态,通俗点说就是变量的类型是由最后赋予它的值决定的。怎么决定呢? 就是靠着Type ...
- 2005-08-02 15:12
- 浏览 1049
- 评论(0)
Layers(层)模式,我想大家应该都不会陌生了。不管是硬件驱动程序、TCP/IP协议,还是J2EE应用软件的架构,层的应用几乎无所不在。我们专注到Web Application上来,三层以及多层结构的应用更是遍地开花。那么,层的强大之处在哪里呢?我们是否真的了解层的划分呢? 我们面对一个复杂问题的时候,都会想着将这个问题化整为零,分为一个个子问题,然后逐个击破。相应的,处理这样复杂问题的软件也会进行划分。通常我们将处理这些子问题的程序称为component(组件)。那么组件或者组件的集合是否就可以称为层呢?在回答这个问题之前,我们先来了解一个概念——Orthogo ...
- 2005-07-31 23:50
- 浏览 822
- 评论(0)
前天收到IronPython Team发来的邀请函,大致内容是说:O'Reilly Open Source Convention将于8月1日至8月5日在波特兰举行。届时,Jim Hugunin将与会做两次演讲,一次是长达三个小时的IronPython Tutorial,而另一次则是不到一个小时的Ir ...
- 2005-07-28 11:55
- 浏览 938
- 评论(0)
古人云:温故而知新。在讨论新的数据访问模式之前,我们先来回忆一下上一篇Post中提到的Data Accessor模式吧。 Data Accessor提供了一种解耦合的策略:将数据库访问的细节进行逻辑抽象并封装于单一组件中,从而降低数据访问和数据模型之间的耦合性。对于应用程序而言,它并不了解具体的数据访问操作,如建立数据库连接和执行SQL语句等,但是它仍然了解数据模型的具体结构,譬如数据表名和某一数据表的列名等。因此,应用程序虽然脱离了数据访问的烦恼,但仍然与数据模型紧密耦合在一起。如果数据模型发生改变,或者数据模型的建立并非通过静态描述即可完成的,都会令应用程序不得 ...
- 2005-07-26 17:58
- 浏览 1101
- 评论(0)