`
deepinmind
  • 浏览: 451304 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
1dc14e59-7bdf-33ab-841a-02d087aed982
Java函数式编程
浏览量:41605
社区版块
存档分类
最新评论

软件开发的10个错误实践

阅读更多

帕雷托法则说80%的成果取决于20%的原因。这也被称为28原则,人类几乎每一个领域的尝试都和它有关。


在软件开发领域,这个原则可以总结为大多数问题都是由少数的糟糕的编码实践导致的。消除这些问题,你的工作会变得更轻松,效率也会得到提升 .

  • 代码拼写错误

  • 令人惊讶的是,这是最常见的,由于它和你的编码水平高低没有关系,因此很让人抓狂。变量名或者函数名的一个拼写错误就会给你的代码造成严重的破坏。更严重的是,它们通常不易察觉。

    那怎么解决?在一个好的IDE或者程序员专用的文本编辑中工作可以显著地减少拼写错误的问题。还可以做的一件事情是:尽量选择容易拼写的变量或函数名,这样当写错的时候就很容易能发现了。避免使用类似receive这样的单词,因为它很容易写成recieve。
  • 代码没有缩进或者格式化

  • 将代码进行缩进或者别的格式化可以使得它易于理解,因此也方便定位错误。同时由于代码的风格一致,其它人维护你的代码会变得更简单。

    如果你用的IDE没有自动进行代码缩进,可以考虑使用一个类似Uncrustify这样的代码美化器,它能根据你配置的规则进行格式化。
  • 代码没有模块化

  • 一个好的编码实践就是实现的函数做且只做一件事情。这使得函数更短因此也更易于阅读及维护。长函数会有许多可能的路径,这使得它们很难进行测试。

    一条好的经验是:一个函数应该占用不超过一屏幕的空间。还有一点是,如果它有超过10个if语句或者循环语句,那就说明它太复杂了,应该得重写。
  • 你的IDE让你误以为很安全

  • IDE以及其它提供代码补全的工具对于提高效率非常有效。它们会根据作用域以及你的输入来建议变量名或者其它东西。不过这种类型的工具有一个危险——你会因为某个选项看起来像是你所要的而选择了它,却没有确保这的确是你所想要的东西。事实上,工具只是替你去思考了,但你得自己去确保这个东西是正确的。
  • 将密码硬编码

  • 你可能会硬编码一个安全帐号及密码,这样后面你可以登录到系统里。你也知道不应该这么做——是的,这的确很方便,但对于能访问到源代码的人来说也同样很方便。

    真正的问题在于硬编码的密码最终会被比你预料中更多的人所获取到。这是一个非常巨大的安全隐患,更别提修复起来有多麻烦了。
  • 没有使用正确的加密手段来保护数据

  • 敏感数据需要在网络传输的过程中进行加密,只有这么做才不容易被截获。这不是什么好的点子,而是管制要求,尽管它还算不上是规章制度。

    这意味着你坚决不能直接发送数据。同时也不要自己去加密或者混淆。自己写安全加密系统非常困难——看一下WEP发生了什么就明白了,因此最好用一个业界证明过的标准加密库,并正确地使用它。
  • 过早地进行代码的优化

  • 传奇程序员Donald Knuth曾经说过,“程序员浪费了大量的时间在考虑或者担心他们程序的非关键部位的执行效率,而这些努力对后续调试和维护的效率起到了很大的负面作用。”

    在代码上费尽心思却只能让它运行得稍微快一点而已,但却使得它更难调试及维护了。更好的一个策略是:清晰地写好你的代码,然后如果有什么地方的确需要优化的时候才去提升它的性能。
  • 没有提前规划

  • 你的项目是做什么的,它需要扩展到多大的规模,有多少用户会使用它,它的运行速度需要有多快?这些问题可能并没有答案——不过如果你没有提前预估的话,那你如何能选择出一个合适的应用开发的框架,能让你的程序满足这些要求?

    如果你低估了未来的需求会遭遇什么问题,这个事情上Twitter是一个很好的案例。Twitter放弃了Ruby On Rails并用Scala及其它技术重写了大部分的代码,这是由于最初架构所使用的Ruby代码,它的扩展能力无法跟上Twitter快速增长的用户基数。
  • 增长人手来追赶工期

  • 许多软件项目都赶不上进度。增派人手到项目中来让进度赶上正轨听起来是个不错的主意,但这是错误的。事实上,增加新人到项目中来通常都会延误整个的开发进度。
  • 时间评估错误却仍然继续

  • 同时很重要的是,不要想像不需要给项目加人也能赶上原先的进度。如果你已经落后于时间表了,这是由于你预估的时间是错误的。这也意味着你得重新评估下整个项目的周期,而不是盲目地坚持已经被证明是错误的评估时间。


    原创文章转载请注明出处:http://it.deepinmind.com



    英文原文链接

    1
    0
    分享到:
    评论

    相关推荐

      软件开发错误日志

      下面将详细阐述“软件开发错误日志”中的几个关键知识点。 首先,错误名称添加失败通常意味着在尝试记录或保存错误信息时遇到了问题。这可能是由于日志系统自身的错误,例如日志存储空间已满,或者编程逻辑中添加...

      敏捷软件开发原则、模式与实践第19章C++源码

      在本资源中,我们主要探讨的是敏捷软件开发的原则、模式与实践,特别是在C++编程语言中的应用。这一主题源于《敏捷软件开发》一书的第19章,该章节通过一个具体的薪水支付案例来阐述敏捷开发的方法。在这个案例中,...

      系统软件开发实践实例

      在IT行业中,系统软件开发是一项复杂且至关重要的任务,它涉及到多个技术和工具的协同工作。本实例主要关注的是使用flex和...这是一个很好的课程设计,能够帮助学生从理论走向实践,提升其在系统软件开发领域的技能。

      实时软件开发的25个常见错误

      实时软件开发是一个复杂而精细的过程,它涉及到对时间约束、响应速度和系统可靠性的...以上这些错误是实时软件开发中需要特别关注的,遵循最佳实践和持续学习可以帮助开发者避免这些陷阱,实现高效、可靠的实时软件。

      哈工大软件开发实践课件

      【哈工大软件开发实践课件】是一套由摩托罗拉资深人士讲解的课程资源,旨在帮助学习者深入了解和掌握软件开发的实践过程。课程涵盖了软件工程中的关键环节,包括需求分析、设计、编码、测试以及项目管理等多个方面。...

      敏捷软件开发:原则、模式与实践 PDF电子书

      《敏捷软件开发:原则、模式与实践》是一本深度探讨敏捷开发理念和技术的权威书籍,由业界专家撰写,旨在帮助开发者、项目经理以及整个团队更好地理解和实施敏捷方法。这本书结合了软件工程的理论与实践,提供了丰富...

      2020下半年软件开发工具上机实践.doc

      软件开发工具上机实践 本文档旨在指导考生完成软件开发工具的上机实践考试,考核内容涵盖Eclipse CDT、Java JDK、MinGW的安装、配置与整合,基于Eclipse CDT环境的操作界面,C/C++和Java程序的编写、调试和运行,...

      JBuilder9软件开发项目实践

      《JBuilder9软件开发项目实践》是一篇关于利用Borland公司推出的集成开发环境(IDE)JBuilder9进行软件开发的实践经验分享。JBuilder9是一款强大的Java开发工具,以其高效、直观的特性深受开发者喜爱。在这个实践中...

      敏捷软件开发:原则、模式与实践.pdf

      敏捷软件开发是现代软件工程领域的一项重要实践,它倡导快速迭代、持续集成和对变化的迅速响应。敏捷软件开发的主要目的在于提高软件质量和交付速度,同时更好地满足客户需求和应对变化。敏捷开发的核心是一系列原则...

      敏捷软件开发:原则、模式与实践

      《敏捷软件开发:原则、模式与实践》是软件开发领域一本经典的著作,它深入探讨了敏捷开发的方法、理念以及在实际工作中的应用。本书对于新手来说,是一本极佳的入门指南,它不仅介绍了敏捷开发的基本概念,还通过...

      RUP-软件开发团队的最佳实践

      综上所述,RUP为软件开发团队提供了一个全面而灵活的框架,旨在优化开发流程,提升团队效率,减少错误,并最终交付高质量的软件产品。通过深入理解和实践RUP中的各项原则和最佳实践,软件开发团队能够更好地应对复杂...

      软件开发试验与实践ppt

      在软件开发领域,试验与实践是提升技术和优化过程的关键环节。这份名为“软件开发试验与实践”的PPT资料,显然旨在为软件开发人员提供一系列实用的指导和洞见,帮助他们在实际工作中解决问题并提高效率。以下是对这...

      软件开发标准 软件开发标准

      本压缩包文件"软件开发标准.rar"可能包含了关于这个主题的各种文档,如规范、指南、模板等,它们都是为了帮助开发者遵循最佳实践和行业标准。 首先,我们要理解“软件开发标准”这一概念。它通常包括了编程规范、...

      软件开发文档范例对软件开发比较有用

      每个文档都有其特定的目的和作用,它们共同构成了软件开发过程的脉络,使得团队协作更加有序,问题解决更加高效。因此,理解和熟练运用这些文档范例对于任何软件开发人员来说都是必不可少的专业技能。

      软件单元测试入门与实践,软件单元测试入门与实践 周立功,C,C++

      在软件开发过程中,单元测试是一项至关重要的质量保证活动,它能帮助开发者确保代码的正确性和稳定性。本资源“软件单元测试入门与实践”由周立功撰写,专注于C和C++编程语言,提供了对单元测试的基本理解及实际操作...

      《简单之美——软件开发实践者的思考》

      《简单之美——软件开发实践者的思考》这本书深入探讨了软件开发中的一个重要原则——追求简单。在信息技术日新月异的今天,简洁的设计理念已经成为高效、可持续发展的关键。本书旨在引导读者理解并应用这一原则,...

      软件开发的201个原则 -- 中文版.zip

      在软件开发领域,遵循一定的原则和最佳实践是提高效率、保证质量、确保项目成功的关键。《软件开发的201个原则》是一本为程序员、项目经理以及任何参与软件开发过程的人提供指导的宝贵资源。这本书涵盖了从设计到...

      JBUILDER9 软件开发项目实践

      总的来说,《JBUILDER9软件开发项目实践》旨在提供一个实际的平台,让你在实践中学习和掌握Java编程语言,熟练运用JBUILDER9工具,从而提升你的软件开发能力。通过这个项目,你不仅能够掌握理论知识,更能锻炼实际...

      《PowerBuilder 9.0软件开发项目实践》配套光盘

      《PowerBuilder 9.0软件开发项目实践》是一本深入探讨使用PowerBuilder 9.0进行软件开发的实践性书籍。PowerBuilder是一款强大的可视化数据库应用开发工具,以其易用性、高效性和对多种数据库的支持而受到开发者的...

    Global site tag (gtag.js) - Google Analytics