摘要: “险恶的问题”就是那种只能通过解决或部分解决才能明确的问题。犯错正是设计的关键所在--在设计阶段犯错并加以改正,其代价要比在编码后才发现同样的错误并彻底修改低得多。设计永无止境--到你没有时间再做了为止。精心设计的对象关系使关注点相互分离,从而使你在每个时刻只专注于一件事情。理想设计特征:1、最小的复杂度2、易于维护3、松散耦合4、可扩展性5、可重用性6、高扇入7、低扇出8、可移植性9、精简性10... 阅读全文
posted @ 2006-05-14 20:41 Think 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 人类的思维以语言为载体,语言决定思维,没有语言就没有思维。深入语言去编程。 阅读全文
posted @ 2006-05-14 12:21 Think 阅读(418) 评论(0) 推荐(0) 编辑
摘要: 架构师吃掉需求,设计师吃掉架构,程序员消化设计。就如同你做这个项目的时间越长,对这个项目的理解也就越深入一样,客户参与项目的时间越长,他们对项目的理解也就越深入。开发过程能帮助客户更好的地理解需求,这是需求变更的主要来源。如果你的需求不够好,那就停止工作,退回去,先把它做好,再继续前进。确保每个人都知道需求变更的代价,建立一套变更控件程序,使用能适应变更的开发方法,放弃这个项目,注意项目的商业案例... 阅读全文
posted @ 2006-05-14 12:17 Think 阅读(707) 评论(0) 推荐(0) 编辑
摘要: 隐喻是什么?人们常常利用隐喻来利用了解的事物理解不了解的事物,如,我们在用鸡蛋来理解地球的结构,认为它由地壳(蛋壳),地幔(蛋白),地心(蛋黄)组成。在软件开发中,隐喻是一种启发,而不是一种算法。比如人们用传统建筑业来比喻软件开发,于是发现了可用于软件构建的设计模式。常用的软件隐喻:“种植庄稼”“牡蛎培植珍珠”“建筑” 阅读全文
posted @ 2006-05-14 11:57 Think 阅读(467) 评论(0) 推荐(0) 编辑
摘要: 软件开发过程中的活动:定义问题需求分析规划构建软件架构详细设计编码与调试单元测试集成测试集成系统测试保障维护 阅读全文
posted @ 2006-05-14 11:47 Think 阅读(440) 评论(0) 推荐(0) 编辑
摘要: 本文源于维生素C.net的一篇文章利用数学方法来大大降低一个逻辑判断实现的难度的例子 阅读全文
posted @ 2006-05-14 11:07 Think 阅读(5587) 评论(6) 推荐(0) 编辑