有没有 C/C++类似重构的书 - V2EX
csfreshman
V2EX    C++

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

  •  
  •   csfreshman Nov 11, 2023 3425 views
    This topic created in 914 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

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

    你让项目更容易维护我不反对啊,去掉冗余代码我不反对啊,能达到这个目的就可以了没错啊,我也不反对啊。讨论了半天你有没有发现你跟我说的完全是两件事啊?用你程序员严谨的逻辑想一想。
    zorchp1
        19
    zorchp1  
       Nov 20, 2023 via Android
    有一本英文书好像是叫 large scale 之类的,就是 cpp 相关的,感觉可以参考
    csfreshman
        20
    csfreshman  
    OP
       Nov 25, 2023
    @zorchp1 你说的这个应该有中文版,名字应该是这个:大规模 C++程序设计,网上找 pdf 看了几章,翻译的略蠢,看不下去
    zorchp1
        21
    zorchp1  
       Nov 26, 2023 via Android
    @csfreshman 哈哈,反正 cpp 大型项目相关的书不多,我也是看一个博主的推荐书单提到了,你可以看一下,公众号叫 cppmore 。另外中文技术书肯定多少都有翻译上的问题,可以试试啃原版
    About     Help     Advertise     Blog     API     FAQ     Solana     1475 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 67ms UTC 16:51 PVG 00:51 LAX 09:51 JFK 12:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86