V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
blahblahblah
V2EX  ›  程序员

现在有点明白什么是技术债了

  •  
  •   blahblahblah · 25 天前 · 6025 次点击
    之前没有从头开始做过项目,现在这个项目是跟几个家伙真真从头开始做的。一开始的时候是多快好省,大跃进似得把 demo 先做出来。也没进行过什么几轮框架结构上的设计和 review ,能省的地方就省,能跳的地方就跳。结果后边需求一值变,先是 TI 的 Linux ,然后是 sumsung 的 linux ,然后又 TI QNX + TIOVX, 后边又回到了 TI LINUX + TIOVX, 还要支持 X86 LINUX 。整天都在打补丁,现在真的到处都是答辩了。欠的债,早晚都是要还的。
    29 条回复    2024-10-15 20:22:20 +08:00
    justdoit123
        1
    justdoit123  
       25 天前   ❤️ 5
    “让我从头写,我保证不会有屎山代码” 狗头~
    Cheons
        2
    Cheons  
       25 天前 via Android
    重构( doge
    IvanLi127
        3
    IvanLi127  
       25 天前
    技术高利贷😣
    blahblahblah
        4
    blahblahblah  
    OP
       25 天前
    @justdoit123 之前只搞过 CRUD ,没啥经验,这个感觉太吃经验了
    blahblahblah
        5
    blahblahblah  
    OP
       25 天前
    @Cheons 我想着其他 title 比我高的人会看不下去然后重构呢,但是他们也只是默默地在屎山上耕耘
    catamaran
        6
    catamaran  
       25 天前
    主要还是看对需求的预测,做少了欠债,做多了过度设计,没有最好,只有更好
    BeautifulSoap
        7
    BeautifulSoap  
       25 天前 via Android
    放心,就 lz 这项目需求的变动频率和变动规模
    就算一开始好好设计最终成品也不过是精致的屎山
    8355
        8
    8355  
       25 天前   ❤️ 7
    所有的项目都是这样的
    1.要么你有能力在开发的时候就把技术债务解决(成本最高)
    2.要么你就是用最快的速度做出来(省钱省时间,当下成本最优解)
    3.要么你就是过一段时间项目稳定阶段利用前期积累的经验做一次重构(中长期项目,最优解)

    前一个阶段为什么流行中台,最核心的目的就是把老旧系统有价值的功能摘出来,重新组建一个系统找人重新维护开发,进行代码重构和文档补充,同时进行性能优化和架构升级。

    没有技术债务的项目就像是在上帝视角看问题,能对需求方向有绝对的管控权利,不然的话是不可避免,只是有经验的人会减少技术债务,但绝对不会没有。
    raphaelsoul
        9
    raphaelsoul  
       25 天前
    这个世界上没有绝对完美的东西 都是各种因素妥协的产物,软件工程亦是如此。能支撑好业务 就是好系统 重构优化这是底线,你的开发体验的优先级并不会很高。
    ZZ74
        10
    ZZ74  
       25 天前
    就这一句 结果后边需求一值变 怎么搞都是债
    blahblahblah
        11
    blahblahblah  
    OP
       25 天前
    @ZZ74 一开始是给了要支持好几个平台的暗示的,但没想到是这个月交付这个平台的,下个月交付另一个平台的,下个月再换一个,但是需求是正常推进的
    min
        12
    min  
       25 天前
    八成本来也没钱没资源从头开始搞成精品...
    yuLiong
        13
    yuLiong  
       25 天前
    放弃完美主义情结,人类发展了几百万年,还到处是纷争。
    微软 windows 已经不惑 了,还在更新。
    springz
        14
    springz  
       25 天前
    看看 yocto
    connection
        15
    connection  
       25 天前
    我们之前也是类似,追快,产出了很多不可名状的功能代码,奇怪的拼接。
    zhuangzhuang1988
        16
    zhuangzhuang1988  
       25 天前
    都一样的哪怕是牛逼的
    Jetbrains 重做 ide 也是麻烦。
    ConquerZ
        17
    ConquerZ  
       25 天前
    buffzty
        18
    buffzty  
       25 天前
    @zhuangzhuang1988 jb 他们修复 ide 输入中文问题修了十几年了 还没修好. 产品经理发誓都好几次了, 说了几次 这个版本绝对修好了.
    xuanbg
        19
    xuanbg  
       25 天前
    没有经验的话,基本就是这样的啦。能在没有经验的前提下做好结构设计,为以后的扩展和局部重构建立基础的人万中无一。
    nyxsonsleep
        20
    nyxsonsleep  
       25 天前
    局部最优解不一定是全局最优解。

    最佳的设计实践就是在迭代的过程中重构。
    kneo
        21
    kneo  
       25 天前 via Android
    技术债就是自己技术不行赖管理。
    xujinkai
        22
    xujinkai  
       25 天前 via Android
    随着项目发展,总会有新需求,不可能一开始就想完整。
    所以我觉得不断重构是长期项目的唯一解。不过这样仍然会遇到瓶颈,总会有局部重构也解决不了的问题,这时候就只能整体重来了。
    dearmymy
        23
    dearmymy  
       24 天前   ❤️ 1
    我最近也是在重构之前一个项目,我的理解是,局部代码可以省,架构绝对不能凑合。
    架构好后面都能修修补补,架构初期凑合,后面真是恐怖,每天都在屎山雕花。另一个项目就是初期架构好,现在都可以局部重构,至少每天都在变得更好
    clemente
        24
    clemente  
       24 天前
    @nyxsonsleep 没有全局最优解 你没有 10000 次随机迭代的机会
    qwerty12345
        25
    qwerty12345  
       24 天前
    技术债就是项目管理不行赖技术,哈哈
    kapaseker
        26
    kapaseker  
       24 天前
    @blahblahblah 除了问题怕负责
    nyxsonsleep
        27
    nyxsonsleep  
       24 天前
    @clemente #23 那就是管理能力的差异体现了。
    c3de3f21
        28
    c3de3f21  
       24 天前
    我个人的理解就是:

    1. 甲方爹且乙方软
    2. 缺乏理论知识(架构方面
    reea
        29
    reea  
       24 天前 via Android
    接触的用了 10 年的老旧系统,编码五花八门没个标准,应用性能极差,老板舍得花二十几万堆硬件但就是不愿推进项目重构。重构就面临着风险和放权,不是技术型公司太难推进了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2717 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:58 · PVG 22:58 · LAX 06:58 · JFK 09:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.