代码改变世界

随笔分类 - All About Soft

初探.NET多线程

2005-09-09 18:15 by FantasySoft, 4275 阅读, 收藏, 编辑
摘要:好多天没有更新Blog了,一直都在忙着寻找如何将IronPython集成至GUI中的方法。一开始我把问题看得太简单了,因为我看了来自CodeProject的ShellControl - A console emulation control这篇文章之后,很幼稚地认为只需要把源代码中的cmd.exe换IronPythonConsole.exe 就可以大功告成了,然而事实证明我的想法... 阅读全文

IronPython编辑器 —— FantasyPython雏形的雏形

2005-09-04 23:54 by FantasySoft, 3200 阅读, 收藏, 编辑
摘要:在看了鹰翔兄写的Post以及他开发IronPython的小代码编辑器之后,我发现心有灵犀真的如此之奇妙。开发一个IronPython的代码编辑器也是我在这个月的计划之一啊,鹰翔兄已经走在了我的前面,看来我也要快步赶上了。 还记得小的时候在农村,父母都会给自己的孩子起个阿猫、阿狗这样的名字,希望孩子能够容易养活,并且茁壮成长。而爱幻想的我,在IronPython编辑器还... 阅读全文

继续探索动态代理

2005-09-02 23:30 by FantasySoft, 918 阅读, 收藏, 编辑
摘要:在昨天的Post中,三言两语把动态代理(Dynamic Proxy)大致介绍了一下并给出了一个例子,我想大家应该和我一样对Dynamic Proxy有一定认识了吧。然而Dynamic Proxy这个宝藏的底蕴是深厚的,三言两语又怎能发掘到精华呢?于是,偶带着很多疑问,对Dynamic Proxy来一次更全面的探索。 在Dynamic Proxy中,最有意思的应该是Pr... 阅读全文

三言两语话动态代理

2005-09-01 23:28 by FantasySoft, 3255 阅读, 收藏, 编辑
摘要:在之前的一篇关于Decorator模式的Post中,曾经提到了动态代理(Dynamic Proxy)简化了Decorator模式的实现。作为例子的代码很容易理解,但这个简化的背后仍包含着很多值得去发掘的内容。 首先我们来明确一下动态代理的定义:一个动态代理类在运行期implements一组interface,使得interface实现类的方法调用被分派至其他的类(另外的i... 阅读全文

关于Metaclass Programming (一)—— 动态创建Class

2005-08-30 23:53 by FantasySoft, 1155 阅读, 收藏, 编辑
摘要:前几天写Python中的Class这篇Post的时候,犯下了一个十分低级的错误,让我感觉十分惭愧。看来还是得继续努力,坚持大胆假设,细心求证的基本原则哦,呵呵~~~ 言归正传,Qiangning Hong兄的Feedback不仅纠正了我犯下的错误,也促使了我去作进一步的思考。我原本希望通过Google去搜索Python中关于函数重载的内容,却很意外地发现了这样一个与... 阅读全文

IronPython0.9中的Examples

2005-08-29 23:58 by FantasySoft, 2157 阅读, 收藏, 编辑
摘要:自从IronPython加入了与.NET 2.0一齐发展的行列之后,我的SharpDevelop就不好使了。没有办法,为了能够把IronPython0.9自带的几个Sample跑一跑,花了几天的时间,终于把Visual C# 2005 Express Edition Beta装上了。在聊聊IronPython0.9自带的Example之前,真的忍不住对Visual C# 2005赞... 阅读全文

.NET和J2EE该相互学习什么

2005-08-26 12:21 by FantasySoft, 9652 阅读, 收藏, 编辑
摘要:[前言] 写这篇Post源于我既做过.NET开发又做过J2EE开发的经历。在这样的转变过程中,我对单一平台开发所带来的思维局限性有了很多清晰却零散的想法。在看了振河兄的页面间传递变量的方法及使用范围的讨论之后,我更能体会到在不同的平台进行开发,思维方式会是如此之不同,原来那些零散的想法也随之不断在脑海中涌现,让我有了写下这篇Post的冲动。其实我一直都在宣扬一种观点:技术之间是相通... 阅读全文

Python中的Class

2005-08-25 23:06 by FantasySoft, 18925 阅读, 收藏, 编辑
摘要:尽管Python在Function Programming中有着其他语言难以企及的的优势,但是我们也不要忘了Python也是一门OO语言哦。因此我们关注Python在FP上的优势的同时,还得了解一下Python在OO方面的特性。 要讨论Python的OO特性,了解Python中的Class自然是首当其冲了。在Python中定义class和创建对象实例都很简单,具体代码... 阅读全文

让我最后罗嗦一下Visitor模式——关于双重分派

2005-08-20 13:21 by FantasySoft, 4115 阅读, 收藏, 编辑
摘要:昨天罗嗦了一下Visitor模式,idior以及Cavingdeep兄都写下了很多促使我进一步去思考的Feedback,在这里谢谢两位了!感谢的话说完了,让我们言归正传——开始罗嗦,呵呵。 在昨天的Post中我提到了Visitor模式中最重要的一点是:double-dispatch(双重分派)。说来惭愧,昨天在写post的时候,我仅仅在震宇兄的Post中对double... 阅读全文

让我再罗嗦一下Visitor模式

2005-08-19 14:13 by FantasySoft, 6226 阅读, 收藏, 编辑
摘要:昨天看了idior兄的Visitor模式全解之后,思考了很久,同时自己也摸索着写了些代码,对Vistor模式有了进一步的理解。 1、使用Vistor模式最大的好处就是增加对数据对象的操作却不需要改变数据对象本身,不需要对数据对象进行重新编译。在这里的数据对象以及所增加的操作都应该满足一定的条件的,如果你所操作的数据对象仅仅是一个或者所增加的操作仅仅作用一个数据对象集合... 阅读全文

J2EE与.NET在Transaction Scope上的比较

2005-08-17 15:03 by FantasySoft, 4351 阅读, 收藏, 编辑
摘要:在拜读了idior兄的Transaction in ADO.net 2.0之后,对J2EE与ADO.net下Tranaction Scope的定义及控制进行了比较。请点击这里阅读全文。 阅读全文

关于J2EE Tranaction的几个基本概念

2005-08-16 22:12 by FantasySoft, 4120 阅读, 收藏, 编辑
摘要:Transaction不管在J2EE还是.NET领域中都是相当重要的一个组成部分。尽管很多与Transaction相关的概念在两个不同的平台中都是相通的,但是它们在Transaction的实现方面却有着很多的不同。想对.NET下的Transaction有更深入了解的朋友,可以参考idior兄写的Transaction in ADO.net 2.0。在以下的篇幅里面,我就J2EE中与... 阅读全文

关于数据访问模式(八)—— Resource Pool模式

2005-08-12 12:01 by FantasySoft, 3192 阅读, 收藏, 编辑
摘要:Resource Pool(资源池)模式已经在上一篇Post中露过脸了,这次让我们再对其看个仔细吧。Resource Pool模式是在应用程序开发中十分常见的一种模式,如果你使用过任何一个主流的应用服务器,如Tomcat,Weblogic,Websphere,Resin等等,对连接池(Connection Pool)的配置一定都不会陌生。我们从几乎无处不在的连接池就可以知道Reso... 阅读全文

关于数据访问模式(七)—— Resource Decorator模式

2005-08-10 16:25 by FantasySoft, 1986 阅读, 收藏, 编辑
摘要:当你希望为数据库资源接口增加新功能的时候(例如调用Connection的close方法并非真的将Connection给关掉,而是将Connection放回连接池),你会打算怎么办呢? 该使用怎样的模式去实现这个功能呢?请点击这里阅读全文。 阅读全文

关于数据访问模式(六)—— 资源管理模式的重要性

2005-08-08 01:12 by FantasySoft, 1439 阅读, 收藏, 编辑
摘要:随着硬件的日新月异,现在设计软件已经不再像十年前那样对软件占用的内存、软件运行消耗的CPU斤斤计较了。如果你有在DOS下写程序的体验,那么当年经常为物理内存不够而头痛的经历或许到现在还历历在目吧。还记得十年前会有很多书籍是专门讲述如何去优化程序,使其占用更少的内存。但是到现在,恐怕都难觅这类书籍的芳踪了。硬件厂商现在似乎为我们程序员创造着一个资源永动机,为我们的软件提供永远也用不完... 阅读全文

IronPython0.9 release

2005-08-03 23:59 by FantasySoft, 1148 阅读, 收藏, 编辑
摘要:晚上上网Check Mail,很意外也很开心的发现IronPython0.9发布了!当我看到EMail的title的时候,我着实有点惊讶,怎么是0.9,而不是0.7.7或者0.8呢?原来是因为新版本的开发比预期的时间多了两个星期,而与此同时,O'Reilly Open Source Convention又临近了,因此IronPython Team决定再奋战多一个星期,直接越过0.8... 阅读全文

也说Type Inference

2005-08-02 15:12 by FantasySoft, 3701 阅读, 收藏, 编辑
摘要:看了Cavingdeep兄的Post,还有idior老大的comment,我又忍不住想说上两句了,因为Boo总能让我想起可爱的Python,还有正在茁壮成长的小小IronPython。:) 说到Type Inference,有一个概念是不得不提的,就是Dynamic Type(动态类型)和Static Type(静态类型)。静态语言就不必多说了,C++、Java和C... 阅读全文

关于数据访问模式(五)—— Layers模式

2005-07-31 23:50 by FantasySoft, 1861 阅读, 收藏, 编辑
摘要:Layers(层)模式,我想大家应该都不会陌生了。不管是硬件驱动程序、TCP/IP协议,还是J2EE应用软件的架构,层的应用几乎无所不在。我们专注到Web Application上来,三层以及多层结构的应用更是遍地开花。那么,层的强大之处在哪里呢?我们是否真的了解层的划分呢? 我们面对一个复杂问题的时候,都会想着将这个问题化整为零,分为一个个子问题,然后逐个击破。相应... 阅读全文

IronPython小事记

2005-07-28 11:55 by FantasySoft, 1205 阅读, 收藏, 编辑
摘要:前天收到IronPython Team发来的邀请函,大致内容是说:O'Reilly Open Source Convention将于8月1日至8月5日在波特兰举行。届时,Jim Hugunin将与会做两次演讲,一次是长达三个小时的IronPython Tutorial,而另一次则是不到一个小时的IronPython 1.0的简单介绍。面对这样诱人而遥远的技术盛宴,我只能看着直咽口水... 阅读全文

关于数据访问模式(四)—— Active Domain Object模式

2005-07-26 17:58 by FantasySoft, 2746 阅读, 收藏, 编辑
摘要:古人云:温故而知新。在讨论新的数据访问模式之前,我们先来回忆一下上一篇Post中提到的Data Accessor模式吧。 Data Accessor提供了一种解耦合的策略:将数据库访问的细节进行逻辑抽象并封装于单一组件中,从而降低数据访问和数据模型之间的耦合性。对于应用程序而言,它并不了解具体的数据访问操作,如建立数据库连接和执行SQL语句等,但是它仍然了解数据模型的... 阅读全文