几百个表,字段名没有意义,也没有 ERD,代码改了十几年,很多看不懂,怎么办?

2021-01-23 12:36:44 +08:00
 Rocketer
最近接了个项目,给客户的内部办公系统加一些功能。

本以为很容易,结果代码拿来一看,是十几年前的老系统,最古老的代码还是 VB 写的。十几年间改过好几次,明显不是同一拨人改的,风格各异。更痛苦的是数据库有几百个表,字段名却没有意义,还没有 ERD (事实上什么文档都没有)。

现在只能一边读源码一边猜,进度缓慢。不知大家有没有类似的经验,这种项目应该怎么做?

撂挑子已经不可能了,赔不起违约金,也不能加钱(钱其实给的不少),只能硬着头皮做。求大佬指点,这种项目如何快速上手?
3476 次点击
所在节点    程序员
22 条回复
v2webdev
2021-01-23 12:58:02 +08:00
一个项目,得有好的文档,或者清晰的代码风格和项目结构,或者能询问原作者,才能快速上手。你说的这个项目,明显不满足这些要求。
xiaomu8
2021-01-23 13:23:10 +08:00
试试看只管你要改的那部分源码加数据库。
learningman
2021-01-23 13:40:06 +08:00
再开一个表呗,勉强把要用的数据倒出来,自己的数据自己开个表存
别想着跨表查询啥的了,完工就行
fox0001
2021-01-23 13:57:09 +08:00
只能硬啃 + 记录。

另外,看看 SQL 语句、视图、存储过程、触发器等,有助于理解
Rocketer
2021-01-23 14:05:31 +08:00
@learningman #3 谢谢,这个办法不错,可以试试
Hconk
2021-01-23 14:40:01 +08:00
@learningman 可能有这么多表都是这样搞出来了,😂
learningman
2021-01-23 14:47:09 +08:00
@Hconk 屎山都是这么堆起来的
wangyanrui
2021-01-23 14:53:59 +08:00
几个需求后就上手了,历史包袱而已 —— PM

手动狗头
340244120w
2021-01-23 15:24:09 +08:00
如果是加需求的话,找个差不多的功能,debug 一步一步照着加了
annielong
2021-01-23 16:15:33 +08:00
追踪 sql 语句,对比输入数据,
HENQIGUAI
2021-01-23 16:46:57 +08:00
边猜边写,边写边猜,写着写着就会了。
Kasumi20
2021-01-23 16:50:15 +08:00
好歹有源码,比搞反编译,动态调试的好多了
ttys001
2021-01-23 20:52:12 +08:00
听上去推倒重来似乎更实际一点?包装下还能再加钱。
lihongming
2021-01-24 03:21:19 +08:00
我也在经历类似的情况,很清楚楼主的感受,但没什么好办法,只能慢慢去理解。
与纯旁观者不同的是,我还能想象到楼主看到某些回复时的感受——都说了没有 XX,也不能 XX,你还说 XX 好、XX 妙、谁用 XX 谁知道……这还用你说吗?什么都有谁会跑来问这种问题?
问题是客观的,如果你没有解决问题的思路,也请不要说风凉话。


感同身受,易怒勿怪。
jzmws
2021-01-24 09:31:47 +08:00
1. 先从页面入手,定下页面输入和对应表关系
2.结合代码再看看
jzmws
2021-01-24 09:32:31 +08:00
如果是老系统 名字先按照拼音>>英文
aguesuka
2021-01-24 10:56:15 +08:00
你也做成一坨,sql 字段取名成 o0o0OO0
sprite82
2021-01-24 16:42:34 +08:00
我很奇怪,接之前都不需要评估一下这个项目的吗?
myCupOfTea
2021-01-25 09:47:01 +08:00
以后接之前一定要评估下
smallpython
2021-01-25 10:02:07 +08:00
@aguesuka 然后每个字段名只是 0Oo 的数量和位置不同

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

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

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

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

© 2021 V2EX