理想与现实之间

学习的最好方法就是blog

博客园 首页 新随笔 联系 订阅 管理

2008年11月22日 #

摘要: 按:这文章算是上星期与装配脑袋一起讨论到的一些东西的总结。我试图用更多一点的代码把协变和反变解释得更浅显一点。大家也可以参考Ninputer同学的文章:http://www.cnblogs.com/Ninputer/archive/2008/11/22/generic_covariant.html为什么要有协变首先来说明一下为什么会要协变。协变其实是一个相当简单的概念。我们知道在OO的语言中,可以... 阅读全文
posted @ 2008-11-22 23:00 Justin Shen 阅读(2705) 评论(13) 推荐(1) 编辑

2008年4月8日 #

摘要: 之前工作上偶尔用到WCF,都靠之前的一些知识对付过去了。现在终于下决心要来系统地学习一下。拿出先前买的O'reilly的"Programming WCF"来读。第一章对SOA做了个简单的介绍,其实这些概念之前也基本了解的,不过还是浏览一过来加深下印象,结果到也看到不少有趣的地方。比如书里提到Service的自主性,理论上讲Service除了应该有明确地边界之外,应该还是自主的,不和其它的Servi... 阅读全文
posted @ 2008-04-08 23:21 Justin Shen 阅读(816) 评论(1) 推荐(0) 编辑

2007年12月16日 #

摘要: 第一次接触C#的编译,从现在看来确实和过程化语言的编译在Symbol Table的构建上有很大的差异。MONO的C#编译器中,仿照System.Reflection以及System.Reflection.Emit中的构架,建立了自己的TypeManager,用相同的机制来完成对源代码中的类型和方法的解析以及代码生成。使用RootContext类型来统筹和驱动整个编译的过程。语法分析阶段产生的Par... 阅读全文
posted @ 2007-12-16 16:00 Justin Shen 阅读(2134) 评论(3) 推荐(0) 编辑

摘要: 从初学.NET的时候,就常常挂在嘴边的一句话是:托管程序和原生程序最大的区别是编译器在程序集中加入了大量的元数据,因此托管程序是自描述的,我们可以在运行时获得关于源程序的任何信息,从而使用反射之类的高级机制。一直以为自己对这句话的理解已经很透彻了,但自己鼓捣编译器,才豁然发现,原来编译成IL,编译器需要Emit这么多的描述类型描述方法的元数据,在代码生成阶段,我们依然要保留大量的诸如Namespa... 阅读全文
posted @ 2007-12-16 14:29 Justin Shen 阅读(1226) 评论(0) 推荐(0) 编辑

2005年11月22日 #

摘要: 工作工作的,似乎忘记了要继续充电了。当然喽,工作上的原因,SQL Server和数据库上的长进还是很大的,不过这些还不够呀。下面是一个欠债清单,要下决心,一个一个还掉了!- 阅读Rotor的源码在进公司之前,自己的.NET水准终于差不多了可以去看看Rotor源码的程度了。不过没想到,工作之后,就一点没时间来做这种阅读功课了。现在只有在地铁上有点看书的时间,考虑要不要把源代码打印出来在地铁上看,嘿嘿... 阅读全文
posted @ 2005-11-22 00:37 Justin Shen 阅读(5559) 评论(14) 推荐(0) 编辑

2005年1月3日 #

摘要: 这本书比较全面地介绍了SharpDevelop的开发原理,写得非常不错,然而中文的翻译版本实在太糟糕了...好在现在它的出版社Apress,提供了免费的电子书下载: http://www.apress.com/free/content/Dissecting_A_CSharp_Application.pdf 阅读全文
posted @ 2005-01-03 22:04 Justin Shen 阅读(5896) 评论(10) 推荐(0) 编辑

2004年12月21日 #

摘要: 还记得去年圣诞节的那一期Special Holiday Episode 吗?今年的圣诞节又快到了,所以又出了一个Speical Holiday Episode II,主要介绍了一下在Avalon里怎样自己实现一个类似FlowPanel的东东。去年节目结束的部分,两人(Don Box and Chris Anderson)自弹自唱了改编后的圣诞歌曲。今年他们再接再励,给大家献上了诗朗诵。这... 阅读全文
posted @ 2004-12-21 13:26 Justin Shen 阅读(1803) 评论(3) 推荐(0) 编辑

2004年12月17日 #

摘要: 最近在根据PSP(个体软件开发过程)的相关内容,统计我每天花在主要活动上的时间。在坚持了大概1个月之后,总算也积累了一定的数据。我发现每天浪费掉的时间还真是非常多。在统计数据里,很少有单次活动超过1个小时的记录,大部分时候总是会被各种各样的事情打断。而且很多时候,你觉得你整整工作了一个下午,但实际的有效时间可能都只有3小时,真是非常惊讶呢。 我发现做这些统计也带来了一些时间安排上的好处。如果你能够... 阅读全文
posted @ 2004-12-17 23:17 Justin Shen 阅读(1981) 评论(5) 推荐(0) 编辑

2004年12月12日 #

摘要: 看到这个消息的时候,并不觉得十分意外,因为一直觉得《csdn开发高手》的文章质量比较欠佳,买过最初几期之后,就失去了再买下去的兴趣。 然而抛开个案不谈,在《程序春秋》和《csdn开发高手》相继倒下之后,在开发类的技术杂志领域又只下了《程序员》孤军奋战。这多少是一个不怎么健康且值得思考的现象。或许国内确实比较缺乏做技术杂志的土壤,因为似乎并没有很多人是在关注技术,浏览csdn的论坛,你常常会有这样一... 阅读全文
posted @ 2004-12-12 21:58 Justin Shen 阅读(2326) 评论(16) 推荐(0) 编辑

摘要: 最近一直在用VS 2005 express,很多功能都让人爱不释手,然而总还是需要写一些必须运行在.net v1.1上的程序,被迫要去用VS 2003,觉得非常不爽。人果然是容易被宠坏的,越来越懒了  所以现在就尝试用VS 2005写代码,然后用nant来编译项目。nant有三种改变编译目标平台的方法: (1)直接在命令行中指定,例如:      ... 阅读全文
posted @ 2004-12-12 21:04 Justin Shen 阅读(3029) 评论(2) 推荐(0) 编辑

2004年12月10日 #

摘要: 有时候,你不得不佩服微软的想法!http://webmessenger.msn.com/ 阅读全文
posted @ 2004-12-10 22:39 Justin Shen 阅读(1516) 评论(7) 推荐(0) 编辑

2004年12月7日 #

摘要: 在学习.net编程时,你一定有听到过这样的说法,System.String类是不可变字符串,也就是说你不能修改一个字符串的值。 比如以下这段代码 string s = "hello"; s = "world"; 你并不是把s的值修改为world,而是生成了一个新的包含"world"的字符串... 阅读全文
posted @ 2004-12-07 22:15 Justin Shen 阅读(2429) 评论(4) 推荐(0) 编辑

2004年11月29日 #

摘要: 高中和初进大学的时候,周围总有这么一种论调:好的计算机公司都喜欢招聘数学系或者物理系的毕业生,说是数学功底比较扎实。我的一位学物理出身的长辈曾问我计算机系都学些什么,听了我的描述之后,露出一种不屑的神色,说这些有什么可学的。言下之意似乎只有物理、数学系学的那些东西才算是真正的学问。然而,既然计算机从数学和物理之中分离出来,成了一个独立的学科,总有它独到之处。那么这个独到之处是什么呢?我觉得不是数据... 阅读全文
posted @ 2004-11-29 00:06 Justin Shen 阅读(2149) 评论(14) 推荐(0) 编辑

2004年11月3日 #

摘要: 如果你不清楚VS 2005的定制Code Expansion的功能,可以看一下我的这篇文章。第一个是用来生成string,其实就是自动生成一对双引号,在中间输入好string之后,按回车可以跳到双引号之后。这个是受了eclipse的启发,不过觉得我的这个更好用,因为输入完字符串之后,不用去按方向键,嘿嘿 <?xml version="1.0" enco... 阅读全文
posted @ 2004-11-03 22:56 Justin Shen 阅读(1792) 评论(6) 推荐(0) 编辑

摘要: 我在私有新闻组里询问VC2005里是不是会有Refactoring或者Code Expansion的功能,结果得到如下的回复,真是十分遗憾:Unfortunately, we won't be able to support refactoring or code expansion in the Whidbey timeframe.  However, we will defi... 阅读全文
posted @ 2004-11-03 19:47 Justin Shen 阅读(1756) 评论(1) 推荐(0) 编辑