• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Rocketer
V2EX  ›  程序员

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

  •  
  •   Rocketer · Jan 23, 2021 via iPhone · 4670 views
    This topic created in 2109 days ago, the information mentioned may be changed or developed.
    最近接了个项目,给客户的内部办公系统加一些功能。

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

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

    撂挑子已经不可能了,赔不起违约金,也不能加钱(钱其实给的不少),只能硬着头皮做。求大佬指点,这种项目如何快速上手?
    22 replies  •  2021-04-05 08:58:56 +08:00
    v2webdev
    v2webdev
    Jan 23, 2021 via Android
    1
    一个项目,得有好的文档,或者清晰的代码风格和项目结构,或者能询问原作者,才能快速上手。你说的这个项目,明显不满足这些要求。
    xiaomu8
    xiaomu8
    Jan 23, 2021
    2
    试试看只管你要改的那部分源码加数据库。
    learningman
    learningman
    Jan 23, 2021
    3
    再开一个表呗,勉强把要用的数据倒出来,自己的数据自己开个表存
    别想着跨表查询啥的了,完工就行
    fox0001
    fox0001
    Jan 23, 2021
    4
    只能硬啃 + 记录。

    另外,看看 SQL 语句、视图、存储过程、触发器等,有助于理解
    Rocketer
    Rocketer
    OP
    Jan 23, 2021 via iPhone
    5
    @learningman #3 谢谢,这个办法不错,可以试试
    Hconk
    Hconk
    Jan 23, 2021 via iPhone
    6
    @learningman 可能有这么多表都是这样搞出来了,😂
    learningman
    learningman
    Jan 23, 2021
    7
    @Hconk 屎山都是这么堆起来的
    wangyanrui
    wangyanrui
    Jan 23, 2021
    8
    几个需求后就上手了,历史包袱而已 —— PM

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


    感同身受,易怒勿怪。
    jzmws
    jzmws
    Jan 24, 2021
    15
    1. 先从页面入手,定下页面输入和对应表关系
    2.结合代码再看看
    jzmws
    jzmws
    Jan 24, 2021
    16
    如果是老系统 名字先按照拼音>>英文
    aguesuka
    aguesuka
    Jan 24, 2021 via Android
    17
    你也做成一坨,sql 字段取名成 o0o0OO0
    sprite82
    sprite82
    Jan 24, 2021
    18
    我很奇怪,接之前都不需要评估一下这个项目的吗?
    myCupOfTea
    myCupOfTea
    Jan 25, 2021
    19
    以后接之前一定要评估下
    smallpython
    smallpython
    Jan 25, 2021
    20
    @aguesuka 然后每个字段名只是 0Oo 的数量和位置不同
    Rocketer
    Rocketer
    OP
    Jan 25, 2021 via iPhone
    21
    @sprite82 会评估需求,毕竟得报价。但不签完合同看不到源码呀。
    buddie
    buddie
    Apr 5, 2021
    22
    顺带想问问,有没有办法能够方便看到数据库的变化呢?我想的是,监控变化,跑去页面做个操作,然后看数据库发生了什么变化,从而理解该部分的逻辑。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4227 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 04:01 · PVG 12:01 · LAX 20:01 · JFK 23:01
    ♥ Do have faith in what you're doing.