摘要: IPad和IPhone真是太热了,以至于Steve Jobs走了,也成了一件大事件,如果在联合国表决一下给Jobs下个半旗什么的,估计八成是一致通过,即便是卡扎菲/金正日这类牛人多半也不会投反对票吧。看着媒体上那些怀念Jobs的人们,就不由自主地想,那里面会有几个人是或曾经是程序员呢?个人感觉不会有多少程序员会觉得IPad/IPhone,甚至Jobs有多么伟大。因为我相信,程序员多有“打破砂锅问到底”的习惯,人云亦云的情况少。IPad/IPhone的过人之处,按流行的说法大致概括为时尚+商业模式,这二个词涉及的话题太玄,太多困惑,还是谈点实实在在的东西比较靠谱。在程序员眼里,IPad/IPho 阅读全文
posted @ 2011-10-29 11:32 James Leng 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 近日阅读一篇Roger Sessions关于Enterprise Architecture的文章,其中关于Zachman Framework的叙述令人感慨良多。在EA领域漫步也颇有些年头了,所谓Zachman Framework是老早就知道了的,印象中一只觉得平淡无奇。然而在Roger看来,却显然不是这样的,下面是Roger的叙述:“...in due course, you will discover that the Framework exists in everything you do, not only IT projects. When you thoroughly unders 阅读全文
posted @ 2012-03-13 12:50 James Leng 阅读(1926) 评论(2) 推荐(1) 编辑
摘要: "A machine with C++ or COBOL as its machine language would be complex indeed but could easily be built in today's technolody." Andrew S. Tanenbaum, <<Structured Computer Organization>> 4th edition, 1.1.1按Andrew的说法,Intel等公司很容易就可以制造出一部直接执行C++或COBOL语句的CPU,并不需要Compiling和Assembl 阅读全文
posted @ 2011-12-11 16:32 James Leng 阅读(922) 评论(2) 推荐(0) 编辑
摘要: “Write Programs for People First, Machine second” Steve McConnell, <<Code Complete>> 2th edition, 34.3所谓“People First”,Steve说的是程序的可读性最重要。Steve就此阐述的认证要点主要是程序的维护成本较高这一点。对Steve的这个观点,我是很认同的。不过,我觉得Steve的观点较狭隘,我想顺着其内在逻辑扩展一下:一个程序应该优先考虑程序员的感受,其次考虑机器的。而提高程序的可读性无非是体贴程序员的具体途径之一而已。另外,除了Steve所提到的“Peo 阅读全文
posted @ 2011-12-05 10:23 James Leng 阅读(1392) 评论(0) 推荐(2) 编辑
摘要: 21 Craig Larman - Applying UML and Patterns (3rd Edition) 感言: RUP/UML如日中天那阵子,备受名家推崇的OOAD经典之一。UP/UML/Design Pattern溶于一体,贴近实战,所用的例子也均是常规企业应用。文笔平平无奇,特点是细节上无微不至,将OOAD如何落地交代得清清楚楚。作者是敏捷开发重量级人物,近几年兴趣已经由UP转向Scrum了。我猜测,现在Craig鼓吹Scrum的时候,不太可能宣称UP的那些知识是多余的吧。无论具体项目如何敏捷,总有孙悟空跳不出如来手掌的味道。换句话来说,高手可以敏捷,高手带着也可以敏捷,其它. 阅读全文
posted @ 2011-11-12 13:49 James Leng 阅读(2227) 评论(3) 推荐(0) 编辑
摘要: 早几天,笼统地就经典感慨了一番,接着来个逐一点评,算是有始有终了。经典是用来阅读而非膜拜的道理,自然是明白的,虽然我是属于比较推崇经典那一类的。阅读大致就是一个和作者交流的过程,有兴致时无妨感慨点评一番,算是对作者的一种致敬吧。1 Steve McConnell - Code Complete: A Practical Handbook of Software Construction 感言:二获Jolt Awards,算得上众望所归了,印象中,国内书商有炒作过第二版。作者主持过SWEBOK工作,所以写起书来也明显带有百科全书式的味道。我对SWEBOK一类百科全书式的东西,一般是不太感冒的,. 阅读全文
posted @ 2011-11-08 08:31 James Leng 阅读(3112) 评论(16) 推荐(4) 编辑
摘要: 和很多同行一样,刚入行的时候极兴奋,忙着Coding,也没多少时间去读那些所谓的经典,有点年头后,也为前途问题着实迷茫了一阵子。多年来,隔三差五,媒体就会正儿八经地议论一下程序员啥时候消失的问题,而比较滋润的职业在咱们拆那国又怎么也排不上程序员,记得读过一个比较拆那国程序员和性工作者的贴子,结论着实令人心酸。终究还是坚持着往前走,慢慢读了一些经典后,居然意外地发现关于程序员啥时候消失云云,压根就是那些媒体在那胡扯……至于滋不滋润的问题就顺其自然吧,既然Coding总是要人来搞定的,还是好好修炼修炼自己的功夫要紧,相信总是会有用武之地的。我觉得程序员修炼之道和武侠小说里面的武功修炼之道颇有些相似 阅读全文
posted @ 2011-11-04 17:41 James Leng 阅读(2952) 评论(15) 推荐(3) 编辑
摘要: 说的是Framework如何体贴程序员,而非C#。这是Framework对Concurrency相关下的细微功夫: using System.Runtime.CompilerServices; public class MyClass { [MethodImpl(MethodImplOptions.Synchronized)] //体贴不? public void DoSomething( ) { /* Method code */ } //Class members }这段代码通过[M... 阅读全文
posted @ 2011-11-01 08:01 James Leng 阅读(378) 评论(0) 推荐(1) 编辑
摘要: 说的是Framework如何体贴程序员,而非C#语言。这是Framework对Concurrency相关下的细微功夫: using System.Runtime.Remoting.Contexts; [Synchronization] //体贴不? public class MyClass : ContextBoundObject { public MyClass( ) {} public void DoSomething( ) {} //Other methods and data membe... 阅读全文
posted @ 2011-10-31 08:00 James Leng 阅读(322) 评论(2) 推荐(0) 编辑
摘要: 此图以一个具体的Linq Query为例,对IEnumerable<T>和IQuerable<T>进行了比较性剖析。如果users支持IQuerable<T>,则走右边分支,如果仅支持IEnumerable<T>则走左边分支。玄机尽在图中,尤其是expression tree作为众多Linq Provider变戏法的关键性支撑作用,可谓不言而喻。此图和一图胜千言 – Linq2Ojects vs Linq2?相得益彰,前者是具体的实例,后者是抽象的机理。而IEnumerable<T>对应的是Linq2Objects,IQuerable 阅读全文
posted @ 2011-10-28 07:49 James Leng 阅读(870) 评论(6) 推荐(1) 编辑