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

有没有 C/C++类似重构的书

  •  
  •   csfreshman · 2023-11-11 11:10:08 +08:00 · 2662 次点击
    这是一个创建于 385 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虽然说重构的思路、理念都是一样的,但是看朋友送的 《重构改善既有代码的设计(第二版)》这本书,由于对 javascript 不熟悉,看起来有些吃力,可能要先花点时间专门学习学习 js 。想请教广告技术大佬 V 友:

    1.有没有类似重构的书籍,使用 c/c++

    2.不限于书籍,任何形式,可以是专栏 视频教程 付费免费的都行

    3.学历 c/c++的语法,想通过 抛出问题---》尝试优化---》看书中的优化方法,来提高自己

    21 条回复    2023-11-26 08:11:13 +08:00
    csfreshman
        1
    csfreshman  
    OP
       2023-11-11 11:44:45 +08:00
    视频 付费教程都可以,电子版 实体书都行,不限任何形式。
    macha
        2
    macha  
       2023-11-11 12:26:17 +08:00
    没有完备测试用例的项目真心不敢重构。
    iOCZS
        3
    iOCZS  
       2023-11-11 12:37:18 +08:00
    市面上 90%以上的书都是理论性的,来自实践经验的很少
    lzgshsj
        4
    lzgshsj  
       2023-11-11 13:31:40 +08:00
    那就顺便学学 js 嘛,用处也多。我觉得会用 c/c++的人看 js 的语法应该是玩儿一样的。
    更何况重构更多是重思想,方法都是一通百通的。第一版还是用 java 写的,后面第二版换了 js 思想也通用。
    Greendays
        5
    Greendays  
       2023-11-11 13:57:12 +08:00
    这个 js 的书我看过。我觉得不用太纠结它 JS 的语言,思路是通用的。
    dddys
        6
    dddys  
       2023-11-11 16:40:38 +08:00
    思路不是相通的吗
    csfreshman
        7
    csfreshman  
    OP
       2023-11-11 16:59:54 +08:00
    @lzgshsj @Greendays @iOCZS @macha 今天学一天 javascript 了,哈哈哈,为了看这本书吸收的多一些,只能先学学了。
    csfreshman
        8
    csfreshman  
    OP
       2023-11-11 17:00:42 +08:00
    @macha 确实不敢重构,但重构与否我理解都不影响提升自己哈
    csfreshman
        9
    csfreshman  
    OP
       2023-11-11 17:01:16 +08:00
    @dddys 思路是相同的,但可能吸收效果没有那么好,已经看了一天 javascript 了,哈哈哈
    wjx0912
        10
    wjx0912  
       2023-11-11 17:21:03 +08:00
    Martin Fowler 的这本太抽象。推荐先看《大话重构》,写的通俗易懂,java 代码和 c++差不多
    artnowben
        11
    artnowben  
       2023-11-11 18:48:54 +08:00
    要写出易于重构代码,遵循一些好的原则,例如:
    1. 设计上 kiss: keep it simple and stupid
    2. 变量、函数好的命名
    3. 函数高内聚低耦合

    多看看一些优秀的 C 开源项目,例如 nginx 、dperf https://dperf.org/
    owen800q
        12
    owen800q  
       2023-11-11 20:40:19 +08:00
    chatgpt
    araraloren
        13
    araraloren  
       2023-11-11 21:24:11 +08:00   ❤️ 3
    c++不需要重构,需要重写
    duron600
        14
    duron600  
       2023-11-12 00:24:16 +08:00
    目前有三个版本:Java 版、Ruby 版、JavaScript 版。吃力就吃力呗,这书属于认真啃过一遍收益满满的。

    可惜无论是工作中还是网络上,一旦谈起“重构”,95% 以上的人给我的感觉是这书只翻了前面几页,然后看了一下“提炼函数”、“内联函数”、“提炼变量”,大概就把书扔一边了。

    然后他们一旦谈起重构,就是“很费时间”、“没时间重构”、“会把代码改出 bug”、“能运行的代码就不要动”,我就觉得很搞笑。

    无论他们在谈“重构”还是“重写”,谈的其实都是“重写”。
    jones2000
        15
    jones2000  
       2023-11-13 09:43:13 +08:00
    @duron600 没有完备的自动化测试, 就算重构了, 也不敢上线, 出问题了谁背锅。代码能跑就不要动。除非你是老板,你能扛锅。
    duron600
        16
    duron600  
       2023-11-13 10:21:28 +08:00
    @jones2000 所以说你们说的重构不是重构。请回顾一下重构的定义,以及重构名录里那些细碎的步骤。要是真的重构过代码,根本不会说出这些名言。所以说大家说的所谓的“重构”,其实都是在重写。
    jones2000
        17
    jones2000  
       2023-11-13 13:29:26 +08:00
    @duron600 重构需要有场景和资源提供给你, 光说定义什么意义,最终的目的就不是让整个项目更容易维护,扩展, 去掉冗余的代码。能达到这个目的不就可以了。
    duron600
        18
    duron600  
       2023-11-13 14:04:21 +08:00
    @jones2000 所以你们就说重写好了,别扯什么重构嘛。干的是重写的事,整天吓唬人说不要重构,搞得这么好的技能都没几个人掌握。

    你让项目更容易维护我不反对啊,去掉冗余代码我不反对啊,能达到这个目的就可以了没错啊,我也不反对啊。讨论了半天你有没有发现你跟我说的完全是两件事啊?用你程序员严谨的逻辑想一想。
    zorchp1
        19
    zorchp1  
       2023-11-20 13:36:42 +08:00 via Android
    有一本英文书好像是叫 large scale 之类的,就是 cpp 相关的,感觉可以参考
    csfreshman
        20
    csfreshman  
    OP
       2023-11-25 10:21:13 +08:00
    @zorchp1 你说的这个应该有中文版,名字应该是这个:大规模 C++程序设计,网上找 pdf 看了几章,翻译的略蠢,看不下去
    zorchp1
        21
    zorchp1  
       2023-11-26 08:11:13 +08:00 via Android
    @csfreshman 哈哈,反正 cpp 大型项目相关的书不多,我也是看一个博主的推荐书单提到了,你可以看一下,公众号叫 cppmore 。另外中文技术书肯定多少都有翻译上的问题,可以试试啃原版
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2350 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:58 · PVG 09:58 · LAX 17:58 · JFK 20:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.