新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论高级C/C++编程、代码重构(Refactoring)、极限编程(XP)、泛型编程等话题
    [返回] 计算机科学论坛计算机技术与应用『 C/C++编程思想 』 → XP设计原则Zz 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 4945 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: XP设计原则Zz 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     wakanpaladin 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究汇编)
      文章:24
      积分:295
      门派:XML.ORG.CN
      注册:2005/4/1

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给wakanpaladin发送一个短消息 把wakanpaladin加入好友 查看wakanpaladin的个人资料 搜索wakanpaladin在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看wakanpaladin的博客楼主
    发贴心情 XP设计原则Zz

    1 简单是关键
    简单的设计总是花较少的时间完成复杂的任务。因此记住要总是做有可能完成的最简单的事情。如果你发现一个事情很复杂,用简单的事情替换它。与其在复杂的代码上消耗更多的时间,还不如用简单的代码替换,这样更快,而且更省事。尽可能使事情简单化,在执行计划期间,尽可能不增加新的功能。要记住保持简单的设计是长期坚持的工作。

    2 选择系统比喻
    选择系统比喻是为了通过对类和方法的一致命名,为团队提供一致的画面。你的对象名称对于系统整体设计的理解和代码重用是非常重要的。如果能取一个名字,使它容易猜出来,并且还是正确的,那么你就是一个能节约时间的人。选择一个涉及广泛的对象命名的方法而没有详细描述,很难获取对于系统的认识。
    例如克莱斯勒汽车公司薪水支付系统象生产线那样被建造了。福特汽车销售系统象材料清单那样被构造了。使用基于你本身领域的美丽的比喻,使它为人所知。但是,除非它相当简单,别选美丽的比喻。

    3 CRC 卡片
    使用CRC(Class,Responsibilities,Collaboration)卡片来作为团队的设计。CRC卡的最大价值在于允许人们从思考过程模式中脱离出来,更充分的专注于对象技术。CRC卡允许整个项目组对设计做出贡献。参与系统设计的人越多,能够收集到的好主意也就越多。
    个别的CRC卡被用来描述对象。对象的类写在卡的最上边、责任在左边下边编成表,每个责任的右边是协作的类列表。因为以前CRC会议是大家全力参与的,通常只需要很少的有类名的卡片,实际上没有写出完整的卡片,所以,我们说“要写”。这个例子显示咖啡制造商问题的一部分。
    CRC会议继续进行,一些人模拟系统和对象交流,把消息传给其他的对象。通过一步步处理弱点,问题很容易地被解决。设计选择可以通过做建议的模拟实验迅速地做出决定。
    如果你发现很多人在讲话并且移动卡片,立即简单的限制站着的人数,把卡片移到下一人。当一个人座下的时候,其它的人可以站起来。自由讨论会议这项工作,常常发生的情况就像当艰难的问题最终被解答的时候,开发组变得吵闹一样。
    CRC卡受到的最大的批评之一是缺乏有记录的设计。CRC卡使设计看上去显而易见,所以这通常不需要。应该要求永久性的记录,每一个类一张卡,每个卡作为文档详细记录和保留。一旦预想已经建立和运行,在一段时间内,设计被人记住了。

    4 道钉解决方案
    为了对技术或设计的难题的做出解答,产生道钉解决方案。道钉解决方案是一个探究潜在解决方案的非常简单的程序。构造一个系统,仅仅专注于检查出现的问题,忽略所有其它的方面大部分的道钉不会保持的足够好,所以,要打算扔掉它。使用道钉的目标是减少技术性问题的风险,或者,增加用户故事
    评估的可靠性。当技术性的困难阻碍系统开发的时候,在这个难题上配备一对开发者,给上一星期或两个星期的时间以减少潜在的危险。

    5 不要过早地增加功能
    保持系统的整洁,把你猜想的额外的素材以后加入。只有10%的额外素材得到使用,所以你在浪费90%的时间。因为我们明白怎样增加,或者我们想使系统变得更好,所以我们都被诱惑到现在增加功能而不是以后。现在增加功能,似乎更快。但是,我们需要常常提醒自己:实际上我们不需要它。额外的功能将总是使我们开发变慢,而且浪费我们的资源。把眼光放到将来的需求和额外的适应性上。只关注于今天的进度。

    6 及时地重新构造
    在软件变的不适用以后很长时间,我们的算机程序员仍然保持设计不变。我们继续使用和重用很长时间没有维护的代码,因为在某种方式下还能继续工作,我们害怕修改它。但是,这样去做真的值得吗?极端编程(XP)认为不是这样。当我们除掉冗余,删除未使用的功能,更新陈旧设计的时候,我们进行
    重新构造(refactor)。贯穿整个项目生命周期的重构工作节约了时间,保证了质量。
    为了保持设计的简单,避免不必要的混乱和复杂,及时重构。保持代码的简洁、明了,以便它更容易理解、修改和扩展。确认每件事情都被表示一次,并且只一次。结果,花更少的时间产生更好的系统。
    重构有几个要点。首先,很难,因为你必须能够放开你想象中的完美的设计,接受你通过重构偶然发现的设计。你必须认识到你想象的设计只是好向导方向,实际上马上会变得陈旧。
    为了吃到大量的树叶,毛虫是一个完美的设计,但是,它不能找到配偶,它在计划找到它的同类以前,必须把自己变成一只蝴蝶。放弃你认为系统应该是什么或不是什么的想法,试着留心在你面前出现的新的设计。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    I think,feel the world,give and accept love, therefore I am.

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/1 20:02:00
     
     pennyliang 帅哥哟,离线,有人找我吗?白羊座1979-4-7
      
      
      威望:8
      等级:大二期末(C++考了100分!)
      文章:266
      积分:1911
      门派:Lilybbs.net
      注册:2005/3/11

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给pennyliang发送一个短消息 把pennyliang加入好友 查看pennyliang的个人资料 搜索pennyliang在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看pennyliang的博客2
    发贴心情 
    赞同!重新构造是必然的,没有什么软件是生而完美,人的认识也在不断提高,不断思考,对于结构的认识也越来越准确,那么重构几乎是必然的,特别是当一个系统不能友好的支持新的变化时,重构就更加不可避免了。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2005/4/4 14:51:00
     
     GoogleAdSense白羊座1979-4-7
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 C/C++编程思想 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/26 1:41:38

    本主题贴数2,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    62.012ms