常常在问自己这样一个问题,也听到很多人都说“先实现功能”,也许在某种意义上不得不如此,但我认为这不是真正意义上的软件开发,实现功能重要,软件的维护更重要,如果以后要实现一个新的功能我们是重新写一遍快还是在原来的基础上扩展快?如果有人要用这个软件是看源码快还是看设计书快?
大家或许要说了:别人写的代码要我来修改还不如我自己重新写,看哪些无用的设计书还不如直接看源码。问题的根源在哪里呢?
别人的代码(其实就是你写的代码,我来看)为什么很难修改?因为看不懂,代码不规范,没有详细的注释说明,设计不合理无法扩展... 这样的代码我也建议你不要修改了,直接重写吧。于是我们的软件开发就这样“重复又重复”的写下去,我们做软件确实很累,但回过头去看别人的那些代码,忍不住心里要骂:谁写的代码这么垃圾?!但是被骂的人(这个人可能就是你自己)却很委屈:哪有那么多时间写好代码做好设计?“功能实现第一”啊!
先不要埋怨了,一切从我们自己做起,反复重构你的代码吧,把注释写详细,把代码写规范,把设计更新一下(很多人的设计都是应付,最终的代码跟设计相差很远,所以导致设计文档没有人看)。
“四象限图”程序是我为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. 「AI初识境」为了围剿SGD大家这些年想过的那十几招
  2. 同时查找数组中最大和最小值
  3. VC++ 监控指定目录改变
  4. zTree菜单的排序
  5. eureka-7-多网卡下的ip选择
  6. mysql 全局不重复_php uniqid() 通过MYSQL实现全局不重复的唯一ID
  7. android权限允许,android – 允许多次运行时权限
  8. 如何用python爬取公众号文章搜狗微信搜索_python抓取搜狗微信公众号文章
  9. 用JAVA使用mysql命令操作导入SQL脚本
  10. 985 211 PHP,你们要的985、211高校官方报录比汇总来了
  11. 观察者模式:推模型与拉模型
  12. 计算机组成原理自测题,计算机组成原理自测练习题
  13. List Navision Security setting, 列出Navision相关账户的权限
  14. mac下Charles https抓包乱码,手机不能上网解决
  15. iOS 自定义页面的切换动画与交互动画 By Swift
  16. 小米 13和iQOO 11区别 参数对比评测
  17. DocArray 0.21.0版本发布!新增OpenSearch后端存储,支持Redis后端存储的多语言文本搜索!...
  18. Promise.resolve几种情况
  19. 外贸外链发布渠道有哪些?
  20. 项目章程和项目管理计划

热门文章

  1. 438. Find All Anagrams in a String
  2. java 面试题汇总
  3. Python的dict字典结构操作方法学习笔记
  4. 二叉树最近公共祖先节点
  5. 拖拽插入Table的列(I.E. ONLY)
  6. Windows核心编程的官方网站
  7. 数值选择器(NumberPicker)的功能与用法
  8. android 网络广播 类似QQ动态检查网络
  9. Java学习笔记23
  10. 清除应用数据后,应用对应的widget的数据无法刷新