从 PHP 到 C++太痛苦了

2021-08-24 16:35:38 +08:00
 xiaotianhu

小白一个,接手两个『挺大』的 C++项目

看懂到是能看懂,但是调试也太麻烦了啊。

没有 var_dump,数据结构只能硬猜,一个 RPC 请求回来的数据是啥得分析半年,本来 var_dump 就解决的事儿可能得看一上午

改一行代码编译要几分钟,一大堆依赖

GDB 还没空学怎么用。

一定是有什么大家都知道我不知道的调试开发技巧吧,球球各位指点如何提升效率

8608 次点击
所在节点    程序员
72 条回复
gBurnX
2021-08-24 21:05:24 +08:00
PHP 的优点是开发效率极高,缺点是运行效率极低、动态类型容易出错。

C++的优缺点正好相反。

问题是,你现在的情况,刚好踩了 C++的缺点,却又没感受到 C++的优点,所以你才会有这种抱怨。

1.C++调试是否麻烦,要看 IDE 。
C++开发与调试的正确姿势是:宇宙最强 IDE:VS,8 个显示器铺开。VS 有 4 个 debug 面板,每个显示一个。2 个显示器写代码,1 个显示器查资料,一个显示器跑 IM 。

所以,你要观察什么变量,直接把变量丢 debug 面板里。

至于改一行代码编译要几分钟,一大堆依赖,这是为了运行性能而设计的过程。

你初学,一上手就用非常麻烦的 GDB,所以才麻烦。

PHPer 调试依赖 var_dump,其实是个不好的习惯。应该要多用 IDE 的 debug 面板。
BrettD
2021-08-24 21:21:22 +08:00
我觉得你的问题是你在用 PHP 的习惯搞 C++
cabing
2021-08-24 22:19:24 +08:00
日志和 debug 结合一起哦
ioschina1
2021-08-24 23:06:32 +08:00
从 php 到 c++的话,会感觉失去了自由
LxExExl
2021-08-25 02:09:36 +08:00
我也是从 php 到 c++干了一段时间,实在受不了 c++的一堆桎梏,直接删库跑路,换组了。这辈子再也不碰 c++了。
gesse
2021-08-25 06:23:40 +08:00
Phper 的职业能力能写 c++?🐶🐶🐶
yEhwG10ZJa83067x
2021-08-25 08:25:05 +08:00
@gBurnX 8 个显示器铺开,不知情的还以为你炒股的呢
raysonlu
2021-08-25 08:54:55 +08:00
或者外包出去干?
seakingii
2021-08-25 08:55:58 +08:00
@gBurnX 8 个显示器?这门槛有点高啊....你平时是用几个显示器的....?
fiypig
2021-08-25 08:59:51 +08:00
哈哈哈 用 PHP 也不打断点的吗
mirage13
2021-08-25 09:02:50 +08:00
下断点调试啊,先把语法看明白了再搞
encro
2021-08-25 09:09:47 +08:00
我从 PHP 写到 C++的最大痛点是:

1,包管理不好用;
2,一大堆人居然都对 std 不熟悉;
3,多字节转换判断;
4,结构体和指针随意乱用;
5,变量类型需要强大的记忆;
6, 编译等待的时间长;
7,语法特性太多;
freemon
2021-08-25 09:24:34 +08:00
问题最大的还是内存管理吧,越界读写之后不依赖 valgrind 这些第三方工具都不知道哪里写错了
QlanQ
2021-08-25 09:29:03 +08:00
感觉 PHP 转啥 都难受,PHP 的函数太方便了,其他 的 语言很多 都只能循环。。。。。
gBurnX
2021-08-25 09:33:03 +08:00
@justrand

建议你试试,试一次,你就回不去了。效率提高不知多少。
sxfscool
2021-08-25 09:34:34 +08:00
var_dump 这种基于 print 开发也只能动态语言用用了,需要编译的用这个,时间全都在编译上了
gBurnX
2021-08-25 09:35:01 +08:00
@seakingii

门槛不高。

首先,编程用的入门显示器,600-700 元一个,甚至二手的有点瑕疵的大概 400 元。

上下双层显示器支架不到百元。

4 显示输出的显卡 GTX 750 以上也在 5 百元左右。

USB 显卡大概 1 百元一个,但只能拿来写代码,不能看视频与打游戏。
sxfscool
2021-08-25 09:35:56 +08:00
xdebug 安装也稍显麻烦,导致很多 php 开发不会端点 debug
LPeJuN6lLsS9
2021-08-25 09:37:52 +08:00
ide 里断点调试断下之后都有查看结构体内容的功能,我写 python 都经常用这个功能,比 print 好用
yEhwG10ZJa83067x
2021-08-25 09:40:19 +08:00
@gBurnX
缺的是没有那么大的空间放八个显示器啊!

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

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

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

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

© 2021 V2EX