软件设计之道:简洁

发布时间:2014-9-22 13:43    发布者:看门狗
关键词: 软件设计 , 编程
作者:areak

  提到软件设计,我们搞电子的或多或少接触了一些,应该看到社会对于软件设计类人才的需求日益增加,拿华为来说,其中可以说90%以上的工作岗位是招聘软件开发工程师的。每个人编写的代码都有自己的风格,而程序员的差别在于理解能力,差劲的程序员不理解自己做的事情,优秀的程序员则相反。如果你的程序还只是拼拼凑凑,毫无章法可言,那么这里的一些建议可能是很有帮助的。

  我们思考一下,软件设计的终极目的是什么呢?是为了帮助其他人,给其他人的生活带来方便,归根结底,是让复杂的事情变得简单。详细划分一下,归纳为以下3个目的:

  1、 确保软件能提供尽可能多的帮助

  2、 确保软件能持续提供尽可能多的帮助

  3、 设计程序员能尽可能简单地开发和维护的软件系统,这样的系统才能为用户提供尽可能多的帮助,而且能持续提供尽可能多的帮助

  我们现今使用的许多优秀软件,都是满足这样的3个条件的,软件的设计开发给人们提供了诸多的帮助,而且每一款软件都在不断地更新,在原有的基础上开发出更多人性化、更加高效的软件,而要使这样的一款软件具有可维护性,则需要程序员的编写的代码足够优秀,否则,则需要推倒重来,势必会增加开发成本和周期。

  没有东西是永恒不变的,环境在无时不刻的发生着变化,软件则需要适应这种环境,变化必然发生,所以程序员再设计时,总是希望预测未来的趋势,为了适应变化,常常会走进误区,逐一列举如下:

  1、 编写不必要的代码
  2、 代码难以修改
  3、 过分追求通用

  编写不必要的代码

  不要编写不是必需的代码,而且要删除没有用到的代码,程序员不应该在真正的需求来临之前编写那些代码,因为没有人能够预测未来,如果现在就编写代码,等到你真正用的时候,还要重新设计,而且这些不必要的代码很可能回到是“劣化”,所以应当做的是,省下重新设计的时间,等你真正需要时再去编写那些代码。

  代码难以修改

  设计程序时,应当根据你现在确切知道的需求,而不是你认为未来会出现的需求,软件项目的一大杀手就是所谓的“僵化设计”,产生的原因主要有两个:

  1、 对未来做太多假设
  2、 不仔细设计就编写代码

  过分追求通用

  代码要修改是一个事实,所以有些程序员就会想方设法做一个足够通用的办法,保证可以适应未来任何可能的形式。但结果是,无论做得怎么通用,其实都不够满足未来要面对的真实需求,而且如果你的代码真的很通用,那么它通常不能从用户的角度很好地满足需求,而且太过通用就必须写很多不需要的代码,从而背离了软件设计的简约之道。

  应对这种情况的方法就是采用渐进式的开发设计,先从最简单的部分开始,由简入深,在每一个设计阶段,下一步都只做最容易的事情,一步一步的来。

  那么,软件设计本身要遵循什么样的原则呢?其实我们一直在强调的就是简洁,如何做到,下面是一些好的建议:

  1保持一致

  要做到简单,保持一致是很重要的工作,如果你在一个地方采用了某种规则,就应当在其他地方都遵守这种规则,例如,某变量被命名为somethinglikethis,其他的变量也要这样来定义,不要定义成other_like_this。如果代码不能保持一致,会给其他程序员带来困扰。完全保持一致,可以让编程更简单。

  2可读性

  代码被阅读的次数远多于编写和修改的次数,所以,保证代码容易阅读很重要,而代码的可读性主要取决于字母和符号之间的空白排布。要把各部分拆分出来,就必须留出空白,但是空白太多也是不必要的,因为这样会很难发现事物之间的联系,那么保持留出的空白保持一致规范是必要的。

  3命名

  可读性的另一部分重要内容是为变量、函数等选择合适的名字,名字应当足够长,能够完整表达其意义或者描述其功能,但不能太长,以免影响阅读。

  这样的代码命名就很糟糕:

  Q=s(j,f,m);
  P(q);

  而下面代码则不同:

  Quarterly_total = sum(January, February, march);
  Print(quarterly_total);

  4注释

  为保证代码的可读性,好的注释也很重要,但是,代码的意图通常不应该用注释来说明,直接阅读代码就应该能够理解,如果意图不够明显,说明这段代码还不够简单,只有当你的代码实在不能再简单,其他程序员在修改时会产生困惑时,才应该写注释来说明。

  简洁:软件设计之道。


本文地址:https://www.eechina.com/thread-132994-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表