上一页 1 ··· 13 14 15 16 17
摘要: 人们都善于用直观简单的方式来理解事物,我也坚信,所有优秀的解决方案都是直观而简单的,我喜欢直观而简单的解决方案,也许在找到直观简单的解决方案之前,我们已经尝试了用很多复杂费解的方式来解决问题。如果你不能把我们程序的解决方案用通俗易懂的方式给隔壁卖青菜的阿伯解释清楚的话,说明,这个解决方案还不够好――还不够简单和直观。宇宙够复杂了吧,可是霍金却创作《时间简史》系列的科普读物,既然是科普,它的读者就是广大的普通老百姓,不一定非要是物理学或天文学的博士。 在软件解决方案上,为了追求直观而简单的解决方案,我们发明了面向对象,之后又是N层架构、面向组件、AOP,又到现在比较热门的MDA、WebServ. 阅读全文
posted @ 2005-09-13 09:22 zhuweisky 阅读(1032) 评论(0) 推荐(1)
摘要: 所有的软件技术和思想的出现都是为了解决所在的那个年代软件开发的复杂性,对象技术和组件技术也不例外。当然还有很多其它技术,像DBC(契约式编程)、AOP、MDA等,这些思想都在影响我们设计/实现程序的方式,但无可否认的是,当今最主流的编程技术是对象技术和组件技术。 面向对象技术已经成熟的发展将近20年了,关于这方面的经典书籍和论文也随处可见。为了解决更大的系统的复杂度,组件技术应运而生,在windows平台上,组件从最初的动态链接库到COM,在到现在的中间件、.NET,就是组件思想走过的轨迹。 面向对象技术的基础是封装--接口与实现分离,面向对象的核心是多态--这是接口和实现分离的更高级升华,. 阅读全文
posted @ 2005-09-13 09:16 zhuweisky 阅读(5518) 评论(7) 推荐(1)
摘要: 相比于写代码,我更喜欢写能自动产生代码的生成器,和许多人一样,我讨厌写重复的代码,这种重复包括字面的重复和结构的重复、还有思想的重复。 在日常的开发过程中,一旦我发现一种需要经常使用的元素(类/结构/方法),我就将它整理出来,所谓整理主要是做这样的工作:重构、最大限度降低这个元素与其它元素的耦合性、 阅读全文
posted @ 2005-09-13 09:14 zhuweisky 阅读(2751) 评论(8) 推荐(2)
摘要: 一个系统不仅需要优秀的分析和设计,更需要一个良好的过程将其从蓝图转化为实现。这个过程中最重要的是对团队的管理,也就是人的管理。一个优秀的团队和一个糟糕的团队的效能是天壤之别,她们之间的比例不是1:100或1:1000这样量化的数字能够表示的。就像一个团队建造了一幢摩天大楼屹立于云霄,而另一个团队的... 阅读全文
posted @ 2005-09-12 11:50 zhuweisky 阅读(5349) 评论(14) 推荐(2)
摘要: 软件架构师的主要职责是什么?是抉择、是权衡。把软件称为艺术一点都没有夸张,可以说软件是科学、工程、与艺术的结合体。软件的艺术体现在权衡上。在这一期的《程序员》杂志上看到了一篇“鱼与熊掌--完美主义架构师的梦魇”,其中关于权衡要素的论述正切合我之所想,现将主要部分转摘如下,如果想了解更详细内容,请在本期程序员阅读全文。(1)Time or Space 时间 vs. 空间 牺牲内存换取时间或牺牲时间以节省内存是我们常用的伎俩。 (2)Elegancy or Efficiency 优雅 vs. 效率 比如,多态很优雅,却是以效率为代价,而丑陋的函数指针却正好相反。(3)Fashion or Fam. 阅读全文
posted @ 2005-09-11 10:08 zhuweisky 阅读(2015) 评论(4) 推荐(1)
摘要: 事件是面向组件开发的必要特性之一,但C++不直接支持事件,没关系,我自己实现了一个,感觉很好用,分享给大家! 最开始打算用函数指针模拟事件,但由于C++中成员函数指针不能和void*相互强转,而且typedef中不能含有模板,所以才不得已以接口继承实现。这样效果也不错 :)一. 先看看事件接口定义... 阅读全文
posted @ 2005-09-10 22:35 zhuweisky 阅读(14890) 评论(5) 推荐(2)
摘要: 1.异常处理相对于返回错误代码的一个最大优点在于,异常可以被自动传递,这样,在编程时异常更加难以被忽视。2.通常,只在最上层(一般是UI层)捕捉异常。如果要在其它层捕捉异常,除非是下列情况之一:(1)能够处理该异常,或者(2)能够忽略该异常,或者(3)需要转换该异常为其它特定异常后抛出新异常3.UI... 阅读全文
posted @ 2005-09-10 16:54 zhuweisky 阅读(8484) 评论(11) 推荐(2)
摘要: 很久以前我就考虑这样一个问题:有这样一个函数,它的功能是从一个整数集合中返回最大的那个数,如何设计这个函数的签名了?当时没有得出令自己满意的答案,所以就搁浅了。今天重新思考,终于有所悟!现在把我思索的整个过程展现于此。最直观的函数签名设计如下:intGetMaxElement(ArrayListeleList);乍看之下,很好,很直接的反映了意图。稍微深入一点就发现,如果eleList为null或者其中元素个数为0,GetMaxElement返回什么了?第一反应,修改签名为下面的形式:boolGetMaxElement(ArrayListeleList,outintresult); 我问了很多 阅读全文
posted @ 2005-09-10 11:07 zhuweisky 阅读(3864) 评论(21) 推荐(3)
摘要: 以前一直在csdn的blog上活动(http://blog.csdn.net/zhuweisky),由于种种原因,现在全面迁移到博客园来,感觉这里的氛围更好一些。借此机会先和各位博客打个招呼,多多指教!但愿我们的博客园越办越好,成为博客们温馨的家! 阅读全文
posted @ 2005-09-10 00:45 zhuweisky 阅读(1199) 评论(0) 推荐(1)
上一页 1 ··· 13 14 15 16 17