
方法论
indexchen
这个作者很懒,什么都没留下…
展开
-
基于重用的软件设计
"不要重新发明轮子"--这是在软件设计中经常听到的一句话。其根本含义就是提倡使用已经存在的可用的成果,不要为满足个人成就感而进行低水平的重复开发。牛顿曾经说过,他之所以看得比别人远,那是因为他站在巨人肩膀上的缘故。不管是微积分还是万有引力定律,决不是牛顿凭空从头想象出来的,之前已有了哥白尼、布鲁诺、伽利略、开普勒等先人大量知识的发现,牛顿能够在此基础上进行总结并加入自己的创造,终于让自己成为了原创 2006-04-05 15:24:00 · 1861 阅读 · 0 评论 -
24小时CTU使用的软件系统
在美国连续剧中,CTU所使用的软件系统功能极其强大,下面列出第5季中出现过的系统,由于还没有看完,有新的系统将及时补充。 实时卫星红外图像显示,并可下载到PDA,jack在煤气站用这个方法定位恐怖分子的位置,基本一枪一个搞定。 可随时获取各种建筑物的结构图,并且可将纸面图纸扫描后与数据库中已有的结构图进行比对,识别出建筑物实际名称和地理位置。jack利用该系统在机场和医院原创 2006-04-12 12:39:00 · 3817 阅读 · 1 评论 -
论软件的复杂性
目前软件所采用的体系结构相对要解决的问题来说,不管要解决的问题本身是简单还是复杂,软件给出的解决方案通常都不会简单,尤其是一些企业级解决方案。软件是用来解决问题的,如果问题域本身已经很复杂,再使用一个更加复杂的工具去解决它,其成功的概率为0。关于问题域的复杂性可以参阅布鲁克斯那篇“没有银弹”的经典文章,本文关注的是软件的复杂性。从软件的发展历程看,复杂系统通常都会失败,不过失败后都通常会衍原创 2006-05-31 11:54:00 · 3512 阅读 · 0 评论 -
论面向对象方法中的对象、职责、协作
面向对象方法的主要任务就是处理对象、职责、协作三者的各种关系,使构造出的系统能解决特定的问题。对象是完成任务的载体,系统的要完成的任务都是分配给一个或多个对象来承载,也就是对象的职责。当一个任务由多个对象来完成时,对象间必须要进行分工协作,以实现对象内的紧耦合和对象间的松耦合,保证系统的可扩展能力。使用面向对象方法时,首要任务是找出系统中和要解决的问题相关的对象,为每个对象分配职责。当一个任务原创 2006-06-05 16:15:00 · 3163 阅读 · 3 评论 -
从AOP到AOD,AOA
先解释名词,AOP是面向方面编程(Aspect-Oriented Programming),AOD是面向方面设计(Aspect-Oriented Design),AOA是面向方面分析(Aspect-Oriented Analysis)。AOP可以认为是面向对象编程的一种补充,如果面向对象是对系统的纵向划分,AOP则可以看成是对系统的横向划分。AOP关注的是系统中全部类或大部分类中都涉及的某一原创 2006-06-07 10:33:00 · 2827 阅读 · 0 评论 -
记法的功效
这里的记法是指用字符串表达式来描述要实现功能,比较典型的例子就是C语言中的格式化输出字符串,如%s表示输出字符串,%d表示输出整数,%6.2f表示输出小数位为2,最多6位的浮点数。在java1.5之前,要格式化输出数据,需要创建相应对象,然后调用方法才能实现,代码要比C语言中的记法复杂得多。将记法用于简化操作非常成功的例子是jQuery, jQuery将选择HTML元素从DOM的繁复操作中解放原创 2012-02-10 11:13:59 · 1065 阅读 · 0 评论 -
提升系统在运行时的可见性
系统开发好上线后,其运行状况能否方便获得对系统的维护和问题诊断具有重要意义。在设计系统时如果没有把系统运行轨迹记录下来,当出现问题需要查找时就比较尴尬了,尤其是大型系统。记录系统运行轨迹需要满足几方面的要求:首先应尽可能减少对系统本身性能的影响,因为记录附加信息总是要消耗资源的,这种情况下对运行轨迹的记录可采用异步方式,为了保证轨迹的顺序性,需要将轨迹信息放入一个消息队列,该队列实现先原创 2012-02-14 10:03:15 · 1049 阅读 · 0 评论 -
在spring中配置多数据库读取
在应对大量用户读取的系统中,对数据库的操作通常采用读写分离方式,往一个数据库写入,然后通过复制将数据同步到另外的多个数据库中,读操作都从这些数据库中操作,在采用spring来配置多数据库时,并不能直接支持从多个DataSource中获得数据库连接,为此需要开发一个DataSource的代理,代理实现javax.sql.DataSource接口。该代理根据一定的策略从已有的多个DataSource中原创 2012-03-01 10:49:36 · 7751 阅读 · 1 评论