人月神话札记:未雨绸缪

简介: 版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/45344605 前言:软件在设计阶段如果能够多考虑一些后续的维护工作,显然是非常棒的。
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/45344605
前言:软件在设计阶段如果能够多考虑一些后续的维护工作,显然是非常棒的。然而对于现阶段的我,或者很多程序员来说,未雨绸缪有很大难度,我们往往即使已经下雨了,也依然无法把窗户关紧,那么如果你想得到一些指导的话,请随我来,看看我能否品出一些味道来。

没有什么是永恒的,除了变化。

普遍的做法是,选择一个方案,试试看;如果失败了,没关系,再试试别的。不管怎么样,重要的是去尝试。

我觉得书中提供的这两个观点非常的棒,首先,任何事都不可能一成不变,敏捷宣言也提倡我们要拥抱变化。其次,在解决问题的时候,就是要不断的尝试,这个方案没有解决问题,就去尝试另外一个,直到你想不到别的办法,你再去求救别人。

实验性工厂和增大规模

现如今,很少有公司敢把没有经过beta测试的产品直接上线运行,那带来的后果是不可估量的。

当你完成了代码测试,就觉得程序万无一失,着急上线的话,往往打击是惨痛的。就如同诸葛亮认为马谡熟读兵法再加上跟随诸葛亮多年,派他去守街亭,结果被马谡的昏招教训的惨痛。

在好不容易开发出第一版产品后,即使它非常的差,我似乎很眷恋它,无法丢弃它。然而更好的做法是,在开发第一版产品的时候,要考虑在日后变更它,甚至丢弃它的可能性,至少能够对一些关键点留下后路。

唯一不变的就是变化本身

我个人就非常的讨厌一个方案确定下来后,再因为用户的需求变化而做出调整,从思想的源处,我似乎还没有接受这种观念,说实话, 我就是厌恶变化。

但是现实就是喜欢开玩笑,用户的需求会变化,软件的技术会变化,你的能力会变化,如果你在设计之初没有考虑到变化,那么当你不得不做出改变的时候,将会十分的痛苦。

举个例子来说,银行流水号,一般情况下,年月日时分秒+4位随机数就够用了,于是你可能把字段设计为long型,字段长度为18位。如果你这样做的话,我告诉你,你会后悔的,你最好设计为string类型的25位长度的字段,这样才能拥抱变化。

为变更计划系统

的确,变更就想小孩子的脸,如果你不准备好糖果或者奶水,那么一旦小孩子变脸,你将无法再控制他。那么对于软件设计,我们能做些什么呢?

  • 为产品迭代建立合适的周期和版本。
  • 采用更高级的软件框架和开源技术。

为变更计划组织架构

当只有一个新野的时候,刘关张没有选择的就要驻扎在一起;而当有了徐州和小沛,三人就要分开,但至少有两人还在一起;然后当有了荆州,并且了双线进军西川的时候,三人就要完全分开。而在此时,关羽要做的不仅仅是守荆州,同时还要单刀去赴会;张飞不仅仅要葭萌关大战马超,还要能使用计谋义释严颜;彼此在武力和智力上都要经得住考验。

那么在应对软件变更过程中,组织可以做些什么来应对呢?
  • 技术人员和管理人员具有互换性。(目前的我似乎已经习惯于在更多的角色定位中穿梭)
  • 在管理线和技术线上设置具有相同薪水的不同阶层,同时树立各自的威信。(每朝每代,文官和武馆都会站在不同的列队,然而层级是一致的,这样就确保文武百官各司其职,并且能够相互依赖)
当然最好的就是,每个人都能文武双全,像周瑜(三国演义是为了衬托出诸葛亮的牛,但事实上周瑜在智力和武力上都属于顶级水准)一样,这样可以使结果在面对变化的时候进行更快捷的调整。

前进两步,后退一步

对于广泛使用的程序,维护成本通常是开发成本的40%或更多。

缺陷修复总会以固定(20%-50%)的几率引入bug。

总体上能够前进一步,已经实属难得。结合我自身的经验就知道,在现实的软件开发以及维护中,每当修复一个当前问题时,总会有一定几率引入新的bug,我之前总是怪罪自己的不小心,但是后来我知道,能够快速解决问题才是王道。即使像诸葛亮也无法预知在他进行七星灯工作的时候,魏延在最后关头摆了他一刀。

前进一步,后退一步

用在修复原有设计上瑕疵的工作量越来越少,而早期维护活动本身引起的漏洞修复工作越来越多。

这个现象也普遍的发生,有些产品无论再怎么改进,他的水平也就维持在那样一个高度,不会发生质变。

那么最好的方式是什么呢,那就是重新再来一个。就如同中国的道路一样,没过一段时间,就要让人忍受马路的修修补补,然而并不能从根本上解决问题,一段时间过后,另外一处要重新打上补丁。那么如何解决呢,那就是放弃那个豆腐渣的公路吧,重新搭建一条新马路。
相关文章
|
10天前
|
人工智能 JSON 供应链
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
LucianaiB分享零成本畅用JVS Claw教程(学生认证享7个月使用权),并开源GeoMind项目——将JVS改造为科研与产业地理情报可视化AI助手,支持飞书文档解析、地理编码与腾讯地图可视化,助力产业关系图谱构建。
23452 10
畅用7个月无影 JVS Claw |手把手教你把JVS改造成「科研与产业地理情报可视化大师」
|
14天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
4818 16
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
15天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
5811 14
|
1月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
25016 65
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
3天前
|
前端开发 API 内存技术
对比claude code等编程cli工具与deepseek v4的适配情况
DeepSeek V4发布后,多家编程工具因未适配其强制要求的`reasoning_content`字段而报错。本文对比Claude Code、GitHub Copilot、Langcli、OpenCode及DeepSeek-TUI等主流工具的兼容性:Claude Code需按官方方式配置;Langcli表现最佳,开箱即用且无报错;Copilot与OpenCode暂未修复问题;DeepSeek-TUI尚处早期阶段。
801 2
对比claude code等编程cli工具与deepseek v4的适配情况

热门文章

最新文章