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

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

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

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

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

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

12956 次点击
所在节点    程序员
97 条回复
whoami9894
2019-03-31 21:17:36 +08:00
@qinkangdeid 重构就不了,本来就不太喜欢 PHP,打算直接重写了。明天先探探老师口风
whoami9894
2019-03-31 21:19:05 +08:00
@vcluopeng
能不能来得及我心里也没底,我自己不会前端,感觉工作量挺大的
whoami9894
2019-03-31 21:21:35 +08:00
@encro
确实是我功力不够,而且对 PHP 那套 MVC 范式也不熟悉,
和导师没关系的,我是做 Web 安全的,Web 开发只是顺带着会一些。帖子说的老师是宣传部的老师,和我基本没什么交集
ifxo
2019-03-31 21:22:14 +08:00
不用管了,拉泡屎走人
whoami9894
2019-03-31 21:22:20 +08:00
@x7395759
重写重写走起
whoami9894
2019-03-31 21:23:10 +08:00
@Hyperion
让我改原来的可能更花时间,而且还痛苦,不如重写了
whoami9894
2019-03-31 21:24:27 +08:00
@Alpha486 木有工资的😂

@sazima 这下是明白了,年年打补丁,还提什么新功能😂
encro
2019-03-31 21:43:10 +08:00
@whoami9894
连开发都不会,还会安全了?
encro
2019-03-31 21:53:27 +08:00
整天说重构的,有几种人:
1,代码没看懂,反正要重构,潜意识已经做好走人准备;
2,代码看懂了,借重构争取更多时间;
3,代码看懂了,而且知道重构对自己来说是小 case,时间也能自己搞定和争取到,确信能写出以后更容易维护的代码来。

切莫忘记很多时候你是无法重构的,比如你面对整个淘宝的代码,你只能一点一点平滑升级,这时才是考验你的架构和能力。
就如人生不能重来,打好手上现有的牌才是最佳途径。
ytmsdy
2019-03-31 22:33:01 +08:00
如果就维护几个月,那就忍忍吧。
如果要维护几年,那就长痛不如短痛直接重构吧
vincexu
2019-03-31 22:35:28 +08:00
@CEBBCAT 笑出声
xuanyuanaosheng
2019-03-31 22:43:05 +08:00
重写吧,正好练手
siriussilen
2019-03-31 22:48:19 +08:00
如果是团委学生会之类的老师 我的教训就是千万别干. 他们拿你当苦力还不给钱 变了方法的给你提需求 一旦完不成 他们还会质疑你的能力……
notreami
2019-03-31 22:51:45 +08:00
@whoami9894 完全不需要考虑成本。。。年轻,真好~~~
learningman
2019-03-31 22:55:32 +08:00
@Hyperion 记得原来我在一个 C 项目里边藏了一个 Go 的二进制文件,至今还能用 qwq
metabot
2019-03-31 23:00:43 +08:00
易班。。这玩意儿。。令人怀念的大学生活
whoami9894
2019-03-31 23:25:58 +08:00
@encro
您这样的逻辑就有问题了,安全和开发确实联系紧密比如一些业务逻辑漏洞,但毕竟侧重点相差很远,并没有一个先行后继关系。开发要的工程能力,架构,优化等等安全是不需要涉及的,而安全我举个 bypass 的例子: `"".__class__.__mro__[-1].__subclasses__()[60].__init__.__globals__['__builtins__']['eval']('__import__("os").system("ls")')`

再有您这句"连...都不会,还会...了?"让人听起来很不是滋味
whoami9894
2019-03-31 23:26:58 +08:00
@ytmsdy
维护确实只有几个月,然后就丢给下一届做了,可是据去年的说这老师经常加需求
whoami9894
2019-03-31 23:28:20 +08:00
@siriussilen
您猜对了,党委宣传部老师,据说往届的说这老师"屁事"很多,三天两头加需求,确实像个苦力,不过也就当积累经验了
whoami9894
2019-03-31 23:29:42 +08:00
@learningman
popen 调用二进制吗,为何不编译成动态库呢

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

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

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

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

© 2021 V2EX