zoukankan      html  css  js  c++  java
  • 让你提前知道软件开发(41):最先到达编程的正确性,其次,考虑效率

    文章3部分 软件开发工作总结

    编程时首先达到正确性,其次考虑效率

     

            在实际的软件开发项目中。常常会遇到产品开发周期非常短的问题。也就是说,开发者须要在“质量”和“速度”之间做出权衡。详细到程序代码,就存在究竟是先考虑实现功能(即保证程序的正确性),还是要一步到位把事情做好(即保证程序的正确性的同一时候,兼顾其效率)

            在网上,有关这方面的讨论也非常的多。微软亚洲研究院研究员刘未鹏老师写过一篇文章《编程的首要原则(http://mindhacks.cn/2009/03/09/first-principles-of-programming/),在这篇文章中。作者就“你们觉得编程的首要原则是什么?”与网友展开了讨论,共给出了5种答案,包含:获得最多认同的答案,获得第二认同的答案,一些众所不一定周知的答案,一些众所非常可能周知的答案和最幽默的答案。

    当中,“KISS”挺有意思的。它要求程序要尽量简单,越简单越好

            在有关程序设计语言(像《C程序设计)和算法(像《算法设计与分析)这类书上,前辈们总结了好的算法或程序须要具备的几个特性,包含:正确性简明性效率最优性,而正确性是排在最前面的。因此,无论如何,“编程的首要原则”是要确保程序的正确性,非简单性。

            对于大部分软件开发project师来说,编程时首先达到正确性。其次考虑效率。这也是软件开发的基本原则

            在实际的软件开发项目中,有例如以下因素要求开发者首先保证程序的正确性,其次考虑效率。

            第一。市场形势千变万化。产品开发周期非常短。正所谓“天下武功,唯快不破”。对于飞速发展的IT行业来说,要想不被淘汰。就必须要先于别人推出产品。

    公司有生存的压力。就会逐级传递到员工的身上。

    在产品立项的时候,产品经理会确定一个产品的交付日期。到了研发经理这一级,为了防止产品出现返工的情况,就会在之前确定的日期上面压缩掉一些。最后分到每一个开发者身上的时候,开发时间已经非常短了。要想在这么短的时间里将程序写完。已经是相当的不easy了,就不可能进一步考虑程序的效率、简单性等。因此,非常多时候,公司的大环境不同意开发者写出非常完美的代码。

            第二,对于开发者本人来说,除了编写代码实现产品需求,还要做非常多其他的事情,包含:解决现场程序问题,參加项目会议。写开发文档。对程序进行单元測试和集成測试等。除开这些时间,只用于编写代码的时间就更少了。要想在极短的时间里编写出非常完美的代码,差点儿是不可能的,所以才会出现一个产品有好几个版本号(1.0版本号、2.0版本号等),这事实上就是在逐个版本号地修正之前版本号程序中的错误或考虑不全然的地方。因此。编程时要以正确性为首要目的。

            第三。公司做不论什么产品。都是要考虑成本的。假设产品的基本功能已经实现了,而且客户已经验收了,那么差点儿没有必要再让开发者对程序重复改动,以达到高效率和尽可能的简单。假设要这么做,须要投入相当的物力、財力和人力,而其效果也不是那么的明显。

    因此。大部分产品的程序都不过正确而已。离最优还有非常大的差距。对于那些追求完美的毕业生来说,假设刚看到程序代码,可能会觉得非常失望。但一旦在公司待久了。就会明确当中的道理。

           “质量”和“速度”之间如何权衡?想必你已经知道答案了。

     

     

     

     

    (我的微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!

    )

  • 相关阅读:
    IO 单个文件的多线程拷贝
    day30 进程 同步 异步 阻塞 非阻塞 并发 并行 创建进程 守护进程 僵尸进程与孤儿进程 互斥锁
    day31 进程间通讯,线程
    d29天 上传电影练习 UDP使用 ScketServer模块
    d28 scoket套接字 struct模块
    d27网络编程
    d24 反射,元类
    d23 多态,oop中常用的内置函数 类中常用内置函数
    d22 封装 property装饰器 接口 抽象类 鸭子类型
    d21天 继承
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4567031.html
Copyright © 2011-2022 走看看