这是一个急三火四的年代,人们很不得一口吃下一个胖子,做软件开发的恨不得一下子就完成一个软件,然后就在家里数钞票。
心急火燎的结果呢?下面的情景是否会让你有种似曾相识的感觉:
* 费了半天努力修改的bug,仔细想来,其实已经在需求明明白白写好了,只是开发时未曾注意到。
* 好容易写好的一段代码,还没来得及向别人炫耀,却发现原来一个好好的功能出了问题,更糟糕的是,根本看不出这两段代码有什么联系。
* 这个bug让你想骂人,因为它居然是其他人修改另一个bug引入的。
* 这个地方有人改过,不过,修改的代码解决的根本不是真正的问题。
* 客户要的是一个小功能,但是对我们来说,加入它无异于重写整个系统。
……
已经有无数人用无数的事实告诉我们,在软件开发中,要付出就趁早,越晚代价越大。当然,我们能看到的大多数例子是在开发的不同阶段,比如需求比开发便宜,开发比测试便宜,测试比维护便宜等等。其实,在开发之中,也是如此,新鲜出炉的代码绝对比那些陈年旧帐更容易修改,不信的话,找一段自己几个月前写的代码理解一下试试。
前面那些似曾相识的场景,多半都是“急”出来的。可现实是,我们需要在后期用更大的精力为前面的“急”买单,所以,为了不给未来的自己挖坑,我们不妨慢一些:
* 仔细了解一下需求,分析需求是不是合理,而不要低着头就开始堆代码。
* 给出一个解决方案时,考虑一下会对已有的代码造成怎样的影响,打破窗户容易,修补难。
* 多花点时间重构,代码上的臭味越到后期显得越刺激。
* 修改bug时,停下来想想什么才是真正的问题,治标不治本的方案只会让人重回梦境。
* 写测试吧!貌似的浪费会让你在后期遇到bug时感激涕零。
……
软件开发其实是一个跟复杂度做斗争的过程,从某种程度来说,复杂度会一直在增长,我们所能做的就是尽可能降低复杂度增长的速度。我曾经和一些朋友说过,前期所做的一切是让我们在后面有更大空间挥霍。慢下来,让我们有时间思考自己的每一步是否迈得是否稳当,稳当的行进,心里才踏实。
这里的慢,实际上,还是为了快,殊途同归。
分享到:
相关推荐
通过对5152单片机Proteus仿真和源码用数码管慢速动态扫描显示数字1234这一主题的学习,我们不仅了解了单片机的基本概念及其开发工具Proteus的使用方法,还掌握了如何利用动态扫描技术实现多位数码管显示。...
python学习资源
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目
基于Andorid的音乐播放器项目设计(国外开源)实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
python学习资源
python学习资源
python学习一些项目和资源
【毕业设计】java-springboot+vue家具销售平台实现源码(完整前后端+mysql+说明文档+LunW).zip
HTML+CSS+JavaScarip开发的前端网页源代码
python学习资源
【毕业设计】java-springboot-vue健身房信息管理系统源码(完整前后端+mysql+说明文档+LunW).zip
成绩管理系统C/Go。大学生期末小作业,指针实现,C语言版本(ANSI C)和Go语言版本
1_基于大数据的智能菜品个性化推荐与点餐系统的设计与实现.docx
【毕业设计】java-springboot-vue交流互动平台实现源码(完整前后端+mysql+说明文档+LunW).zip
内容概要:本文主要探讨了在高并发情况下如何设计并优化火车票秒杀系统,确保系统的高性能与稳定性。通过对比分析三种库存管理模式(下单减库存、支付减库存、预扣库存),强调了预扣库存结合本地缓存及远程Redis统一库存的优势,同时介绍了如何利用Nginx的加权轮询策略、MQ消息队列异步处理等方式降低系统压力,保障交易完整性和数据一致性,防止超卖现象。 适用人群:具有一定互联网应用开发经验的研发人员和技术管理人员。 使用场景及目标:适用于电商、票务等行业需要处理大量瞬时并发请求的业务场景。其目标在于通过合理的架构规划,实现在高峰期保持平台的稳定运行,保证用户体验的同时最大化销售额。 其他说明:文中提及的技术细节如Epoll I/O多路复用模型以及分布式系统中的容错措施等内容,对于深入理解大规模并发系统的构建有着重要指导意义。
基于 OpenCV 和 PyTorch 的深度车牌识别
【毕业设计-java】springboot-vue教学资料管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
此数据集包含有关出租车行程的详细信息,包括乘客人数、行程距离、付款类型、车费金额和行程时长。它可用于各种数据分析和机器学习应用程序,例如票价预测和乘车模式分析。
把代码放到Word中,通过开发工具——Visual Basic——插入模块,粘贴在里在,把在硅基流动中申请的API放到VBA代码中。在Word中,选择一个问题,运行这个DeepSeekV3的宏就可以实现在线问答
【毕业设计】java-springboot+vue机动车号牌管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip