常常在问自己这样一个问题,也听到很多人都说“先实现功能”,也许在某种意义上不得不如此,但我认为这不是真正意义上的软件开发,实现功能重要,软件的维护更重要,如果以后要实现一个新的功能我们是重新写一遍快还是在原来的基础上扩展快?如果有人要用这个软件是看源码快还是看设计书快?
大家或许要说了:别人写的代码要我来修改还不如我自己重新写,看哪些无用的设计书还不如直接看源码。问题的根源在哪里呢?
别人的代码(其实就是你写的代码,我来看)为什么很难修改?因为看不懂,代码不规范,没有详细的注释说明,设计不合理无法扩展... 这样的代码我也建议你不要修改了,直接重写吧。于是我们的软件开发就这样“重复又重复”的写下去,我们做软件确实很累,但回过头去看别人的那些代码,忍不住心里要骂:谁写的代码这么垃圾?!但是被骂的人(这个人可能就是你自己)却很委屈:哪有那么多时间写好代码做好设计?“功能实现第一”啊!
先不要埋怨了,一切从我们自己做起,反复重构你的代码吧,把注释写详细,把代码写规范,把设计更新一下(很多人的设计都是应付,最终的代码跟设计相差很远,所以导致设计文档没有人看)。
“四象限图”程序是我为FT深圳中行三期写的一个组件,如果按照“先实现功能”来做我只需要花一天就完成了,但是为了让它成为真正的“组件”,我需要反复优化接口,优化设计,优化算法,编写详细的注释说明,编写示例程序,编写设计文档,这些工作花了我一天半的时间,之所以这么做,是为了让同事拿到这个组件,看看说明就能够使用,看看代码自己就能够修改,而不是继续“重写”。
我想,如果我们要开发一个真正好的软件,不能够强调“功能实现第一”了,当前的“功能实现”只是暂时的,以后的“功能变化”才是永远的,我们不要天天写功能重复的代码,不要做那只玉米田里面的“猴子”, 做那种客户“只想运行一次”的软件,如果这样的话,我们做软件还有什么意义呢?

转载于:https://www.cnblogs.com/bluedoctor/archive/2012/01/20/2327966.html

功能实现了软件就做好了吗?相关推荐

  1. Briefings in Bioinformatics:微生物基因组学和功能基因组学相关软件和数据库的研究进展

    文章目录 微生物基因组学和功能基因组学相关软件和数据库的研究进展 微生物比较基因组 代谢途径 致病机制 次级代谢产物 噬菌体 操纵子/复制起点预测 基因组可视化 宏基因组 多序列比对 Referenc ...

  2. 多功能嵌入式解码软件(2)

    多功能嵌入式解码软件(2) 验证类库 通信协议 下面进行一个示例: 下位机需要向上位机发送3中数据帧,数据帧以功能码来识别,每种数据帧的协议如下3个表格所示,上位机需要把这些数据按照协议解码出来,并进 ...

  3. 怎么实现抢票软件_怎么样在windows上实现文件预览功能?一个软件搞定,提高效率...

    相信用过mac系统的朋友应该都知道,在mac系统中文本.图片或者视频等文件后,直接按空格就能进行文件内容的预览.在找文本.图片.视频或者音频的时候,这个功能是非常的方便实用的.不需要打开文件就能看到文 ...

  4. 随想录(功能安全和软件开发)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 要说现在汽车软件开发,最火的安全概念就是功能安全.至于标准,那就是ISO26262.当然标准只 ...

  5. mac 文字识别软件ocr_Mac平台上一款免费的OCR文字识别功能的屏幕截图软件Screen OCR...

    今天小编为大家带来Mac平台上一款免费的OCR文字识别功能的屏幕截图软件Screen OCR for Mac(屏幕截图OCR工具)​www.macdown.com .使用这款截图ocr识别工具可以帮助 ...

  6. 东方木教你如何用WINDOWS自带的压缩功能去压缩软件

    {原创编辑}:东方木 语言:中文 地点:武汉 时间:2020年2月12日 版权声明:本文为CSDN博主「东方木」的原创文章 下午东方木来教大家如何做压缩包,教你如何用WINDOWS自带的压缩功能去压缩 ...

  7. mobaxterm多屏操作_全功能的终端软件MobaXterm推荐配置

    MobaXterm是一款豪华.全功能的终端软件.它不仅可以像PuTTY一样通过SSH连接Raspberry Pi等开源硬件,并且还能: 直接的便携版 内建多标签和多终端分屏 内建SFTP文件传输 内建 ...

  8. ABViewer Crack,功能丰富的软件支持 60 多种流行格式

    ABViewer Crack,功能丰富的软件支持 60 多种流行格式 功能丰富的软件支持 60 多种流行格式,包括 DWG.DXF.HPGL.CGM.SVG.PDF.STEP.IGES.STL. AB ...

  9. 企业维生素XTools从不是“脱离理念,只谈功能”的办公软件

    企业维生素XTools官方咨询中心(www.yunwins.com)分享:     当企业维生素XTools(www.yunwins.com)一路走到现在,我们不得不开始考虑,他的软件功能的先进强硬我 ...

最新文章

  1. php集成paypal付款流程,在PHP中集成PayPal标准支付
  2. POJ - 2549 Sumsets
  3. 【Python】青少年蓝桥杯_每日一题_10.11_小球反弹
  4. ***客户端出现“无法完成连接尝试”的解决方法
  5. 网络请求中常见的加密机制和加密算法理解
  6. 干货:用Python进行数据清洗,这7种方法你一定要掌握
  7. java 创建本地文件、写入文本内容、调用IE浏览器打开
  8. vs编译调试遇到问题
  9. SpringBoot整合Swagger生成接口文档
  10. 中国银联全渠道系统商户接入 测试指引-银联网关支付产品
  11. 一元非线性方程求根的算法——二分法/牛顿迭代法
  12. 从Thompson Sampling到增强学习, 再谈多臂老虎机问题
  13. Python入门如何给自己写一个文字小游戏?一只小白的Python游戏
  14. K8S 集群部署(快速部署一个 K8S 集群)
  15. HISI3518ev300视频抗频闪功能
  16. 定义Mat类型显示未定义
  17. 错误总结关于单片机课程设计——温度语音(基础模块)
  18. 压力测试工具ab介绍
  19. 鼠标右键新建菜单没了怎么办
  20. 创建一个长度为30的数组,每五个一组求平均数

热门文章

  1. An Edge-Guided Image Interpolation Algorithm via Directional Filtering and Data Fusion【翻译】
  2. MATLAB垂直搜索图片中的白段
  3. java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
  4. Android 探究 LayoutInflater setFactory
  5. 多线程总结-JUC中常用的工具类
  6. Handler消息机制(一):Linux的epoll机制
  7. 第四周项目四-程序分析(4)
  8. DOM对象和内置对象(中)
  9. 使用Storm实现WordSum
  10. Swfit Array 遍历 map flatMap filter reduce