体会到那种维护"屎山"的感觉了

2019-03-31 11:24:06 +08:00
 whoami9894

楼主本科生,这周接手了校宣传部一个比赛网站的开发任务,代码是好几年前祖传下来的 PHP Yii 框架开发,之后每年这个比赛都会加一些新需求,然后每年学生都得修修补补

今年新加了几个分项,发现整个库表结构都得改,加上架构逻辑看起来很分散(不知道是框架的范式还是设计的问题),某个功能变了五六个文件得连带着改,还有不知道为什么某些表单结构和路由也放在数据库....。

部署到服务器后上传图片的接口崩了,半天也没定位到 Bug,易班认证的 OAuth2 接口也崩了,(说因为要推广易班所以需要先易班认证才能在本站注册),发现整个代码很多补丁的痕迹...头大 orz

老师本来告诉我有个功能前面几届都没给她实现,我当时没看项目代码,想着不是多复杂的功能,拍胸脯我今年肯定给她搞定...现在我明白为什么前几年没有实现了

12984 次点击
所在节点    程序员
97 条回复
qinkangdeid
2019-03-31 14:27:17 +08:00
就像楼上一位兄台说的
每一位接收者在看代码之后 心里都想着重构
重构了几个方法后 放弃的概率越来越大
重构好了 表面上看和以前一样 老板(老师)又不看代码 觉得有什么区别
你说以前的版本在这个地方有个 bug 老板说你不能修复这个 bug 吗 怎么要重做 还要那么多时间
你说我这次重构为了以后应对新需求上有更多的灵活性
老板可能心里还没有任何需求 .......

总之 领导不挑头的事情 很难重做
团队团结还好 不团结 重构导致新问题了 锅就是你的了
大家都说:以前的又不是不能用 的时候就非常尴尬了

题主倒是可以提一提 看看老师的支持程度
学习实践的话 题主可以自己私下有时间自己重构 一部分模块 别动老版本就行
qinkangdeid
2019-03-31 14:34:07 +08:00
@blackmirror 太真实了 真实得不行 每个接手者刚看到代码都会指点一遍前任 这个地方怎么这么写?这里怎么不抽出来 这里多此一举啊 要是我我就不这么做 这代码不能看 垃圾 我来改 改完几个方法后 最后 大都默默的 Ctrl+z......
xiaomingVTEX
2019-03-31 14:47:37 +08:00
@qinkangdeid 太真实了
kindjeff
2019-03-31 14:56:29 +08:00
vcluopeng
2019-03-31 15:01:36 +08:00
如果你的代码可读性高,并能留下详细的开发注释和文档.那么就整个项目重构吧.
当然也要有信心在老师规定的时间内完成.
不然就继续舔砖加瓦,毕竟有句古话:没有金刚钻,不揽瓷器活.
还有记住 霍夫斯塔特定律
cz5424
2019-03-31 15:25:20 +08:00
新开个项目写新功能,旧的他被慢慢的抛弃
deepkolos
2019-03-31 15:34:37 +08:00
我比较幸运,上来就重写
farseeraliens
2019-03-31 15:48:30 +08:00
@CEBBCAT 不明白重构跟 git 什么关系?
yuhr123
2019-03-31 15:50:04 +08:00
把需求梳理一遍,用 python 重写。
e2c
2019-03-31 16:03:49 +08:00
新三年,旧三年,缝缝补补又三年

看你的了啦
CEBBCAT
2019-03-31 16:25:11 +08:00
@farseeraliens 一来可以快速回到原来的状态,二来正式开发也需要 git 不是
encro
2019-03-31 19:14:27 +08:00
最厉害的程序员就是能将一堆垃圾代码理出条例来。
我以十多年的经验告诉你。
encro
2019-03-31 19:20:46 +08:00
我的经验还告诉我,要舍得删除代码,看不懂的都删,直到程序跑不通了再去看(前提是有版本控制),可能你就能看明白以前的代码了。
明显感觉你是开发功力还不够,需求不了解,不敢去问 boss,不愿意深入思考最有效的解决问题的办法,潜意识找理由放弃。
如果你把这个任务当做是你毕业前最好的一个练手机会,那么相信你能成为导师最看重的学生,也能在毕业时超过大部分同学。
x7395759
2019-03-31 19:29:37 +08:00
就一个建议,重写!!!
Hyperion
2019-03-31 19:33:23 +08:00
当然是偷梁换柱釜底抽薪,写一套寄生代码附加在原来的代码上(在前端还是后端动手脚都可以),然后另外开一个目录跑新写的程序,来提供新的接口啦。

你说要在页面上新加两行分数?原始模板上直接对着结构写 Vue 的结构和标记,对着主体容器直接一个 new Vue,然后该怎么请求新结构就怎么请求。

重构这种事情,说说当然是容易的,但上学阶段根本不可能嘛,一没动力二没精力,最后还是吃力不讨好。这种东西刚开始很有热情,但你社团活动不搞了嘛?四六级单词不要背嘛?什么晨跑锻炼不要搞了嘛?
Alpha486
2019-03-31 19:45:35 +08:00
这不接手则已,一接手就明白为啥前人连简单的功能都做不好!😂
sazima
2019-03-31 20:39:42 +08:00
给工资吗
whoami9894
2019-03-31 21:15:45 +08:00
@scukmh 没酬劳,团队的任务哈哈
whoami9894
2019-03-31 21:16:18 +08:00
@notreami
按需求修修补补感觉头大,比重写还累
whoami9894
2019-03-31 21:16:39 +08:00
@reus
感谢您的建议,决定重写了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/550456

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX