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

2023-11-11 11:10:08 +08:00
 csfreshman

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

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

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

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

2685 次点击
所在节点    C++
21 条回复
csfreshman
2023-11-11 11:44:45 +08:00
视频 付费教程都可以,电子版 实体书都行,不限任何形式。
macha
2023-11-11 12:26:17 +08:00
没有完备测试用例的项目真心不敢重构。
iOCZS
2023-11-11 12:37:18 +08:00
市面上 90%以上的书都是理论性的,来自实践经验的很少
lzgshsj
2023-11-11 13:31:40 +08:00
那就顺便学学 js 嘛,用处也多。我觉得会用 c/c++的人看 js 的语法应该是玩儿一样的。
更何况重构更多是重思想,方法都是一通百通的。第一版还是用 java 写的,后面第二版换了 js 思想也通用。
Greendays
2023-11-11 13:57:12 +08:00
这个 js 的书我看过。我觉得不用太纠结它 JS 的语言,思路是通用的。
dddys
2023-11-11 16:40:38 +08:00
思路不是相通的吗
csfreshman
2023-11-11 16:59:54 +08:00
@lzgshsj @Greendays @iOCZS @macha 今天学一天 javascript 了,哈哈哈,为了看这本书吸收的多一些,只能先学学了。
csfreshman
2023-11-11 17:00:42 +08:00
@macha 确实不敢重构,但重构与否我理解都不影响提升自己哈
csfreshman
2023-11-11 17:01:16 +08:00
@dddys 思路是相同的,但可能吸收效果没有那么好,已经看了一天 javascript 了,哈哈哈
wjx0912
2023-11-11 17:21:03 +08:00
Martin Fowler 的这本太抽象。推荐先看《大话重构》,写的通俗易懂,java 代码和 c++差不多
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
2023-11-11 20:40:19 +08:00
chatgpt
araraloren
2023-11-11 21:24:11 +08:00
c++不需要重构,需要重写
duron600
2023-11-12 00:24:16 +08:00
目前有三个版本:Java 版、Ruby 版、JavaScript 版。吃力就吃力呗,这书属于认真啃过一遍收益满满的。

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

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

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

你让项目更容易维护我不反对啊,去掉冗余代码我不反对啊,能达到这个目的就可以了没错啊,我也不反对啊。讨论了半天你有没有发现你跟我说的完全是两件事啊?用你程序员严谨的逻辑想一想。
zorchp1
2023-11-20 13:36:42 +08:00
有一本英文书好像是叫 large scale 之类的,就是 cpp 相关的,感觉可以参考
csfreshman
2023-11-25 10:21:13 +08:00
@zorchp1 你说的这个应该有中文版,名字应该是这个:大规模 C++程序设计,网上找 pdf 看了几章,翻译的略蠢,看不下去

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

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

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

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

© 2021 V2EX