请教各位 C++的老哥,你们都是从哪儿获取知识的?

2022-02-23 20:36:30 +08:00
 liuguangxuan

现状:

目前从事 Linux 下的 C++后台服务开发,公司用的技术比较保守(落后),比如通信还是用的 socket 发送二进制字节流,C++还停留在 C++98 ,开发用的还是 Eclipse ,代码管理用的是 svn ,所有的代码混在一个程序里(单体应用)。

看到互联网公司使用的一大堆技术,比如 kafka 、nginx 、kong 、微服务、docker 、k8s 、服务网格等等,看到这些技术名词一脸懵,完全不知道啥意思。感觉我脱离了这个时代。

想请教各位 C++开发的老哥:

  1. 是从那儿获取、学习行业内流行的技术的?
  2. 你们现在用 C++做后台服务开发都用的什么技术栈、技术架构呀?
4123 次点击
所在节点    C++
31 条回复
jmc891205
2022-02-23 20:40:39 +08:00
应该咨询 Java 老哥哈哈
passer9527
2022-02-23 20:52:50 +08:00
跳槽到一个 Java 的公司
lingex
2022-02-23 21:11:36 +08:00
同 C++开发,最有效的大概是项目驱动吧,
lingex
2022-02-23 21:22:23 +08:00
@lingex 点快了,,
我这里新一点,用 VS + C11 ,线上是跑在 docker 里的,所以开发时候也得玩。
确实也感觉技能挺单一的。
短时接手过一个 asp.net 项目,业余 DIY 的时候玩过 C#,Python…没有项目驱动,可能都忘的差不多了

你要是自己搭个梯子,大概就会玩到 NGINX 和 docker 了
elfive
2022-02-23 21:31:35 +08:00
我所在的公司传统制造业,也是用 c99/C++98 很久了,即使呆过的项目组能够用 c++11 ,但是其他同事都是能用就行,甚至连 c++11 这种标准都不知道。
我根据我的经验,能分享给你的:
1. C++标准的演进,很大程度上是编程的演进,比如面相过程到面向对象到模板元编程,它们都是因为为了达成一些目标而自然演化而来的,不是什么凭空想象出来的,写代码的时候多思考一下为什么这么写为什么不那样写。

2. 努力写出精简的代码,精简不是简单指代码越少越好。而是你的思路要精简,抽象的流程要精简。灵活作用抽象,尤其是抽象流程,这样你就能在多变的需求中做到灵活扩展。走一步,看十步。

3. 从心底热爱写代码,兴趣是最好的老师,不一定要能自己实现,但是 stl 代码你必须要熟悉和了解,里面的代码很难看懂,但是无非就是容器类的内存管理、数据结构、算法,type_traits 等模板元编程的“概念”,这些东西可能很难用很难懂,但是一旦入了门,它就真的和日常呼吸一样自然了。
elfive
2022-02-23 21:35:02 +08:00
@elfive 常见的资源:
1. cpprefference.com
2. youtube cppcon ,里面很多大佬的 talk 都是干货满满,上下班公交上看中午午休看绝对不后悔。
3. 一些有名的开源库,及相关的资源:boost 等,不是简单的看人家的代码实现,而是要学他们的编程思路和方法方式。
feather12315
2022-02-23 21:37:23 +08:00
自己搭个网站、梯子,自己捣腾下服务器、路由器、nas ,就都接触到了
anonymousar
2022-02-23 22:13:44 +08:00
那些都是虚的 c98 老玩具会的才是实的 gdb systemtap bpf perf tools 这些。
anonymousar
2022-02-23 22:14:28 +08:00
另外想看 c11 以后的东西 我建议搞个 folly 源码读读就好了
FranzKafka95
2022-02-23 22:15:10 +08:00
Android Native C++源码 /Github 上的优秀 C++项目,除此之外还可以尝试不同的领域,如音、视频,蓝牙 wifiBt ,前端做做 Qt 这些
documentzhangx66
2022-02-24 02:32:19 +08:00
C++也是分等级的。

普通 QT 那种 C++,看一本 C++的书,再去看 QT 的例子,然后基于谷歌解决问题,感觉也够了。数据库,用各种框架加谷歌现成的 SQL 例子,网络通信有 grpc 等各类组件,当个 API 调用师,躺赢即可。

中级 C++,需要懂一些数据结构与算法。

高级 C++,需要懂 OS 、网络通信、数据库的一些基本原理。

顶级 C++,需要懂一些底层的知识,从组成原理开始,到汇编、到各种 CPU 的一些特定比如频率、指令集等等。

超纲 C++,需要学一下底层电路的知识,能加深对性能的理解。

以上这些知识,都有书籍。建议用关键字去知乎和豆瓣搜,书我就不推荐了,因为书的种类很多,我推荐的书的写作风格,不一定适合你。有些朋友甚至喜欢去看视频教程。
mingl0280
2022-02-24 05:14:46 +08:00
这些基本上都是互联网企业搞出来的需求,你没那个需求肯定用不着……要想用得着,把你的需求扩大个几万倍?
js8510
2022-02-24 07:11:11 +08:00
1.工作。。看代码写代码。另外回去看各大厂的 tech blog
2.公司自己开发的轮子。很多没开源。用到的比较出名的开源就是 thrift 了。
wellsc
2022-02-24 08:02:07 +08:00
跳槽
defage
2022-02-24 08:50:59 +08:00
通信还是用的 socket 发送二进制字节流,C++还停留在 C++98 ,开发用的还是 Eclipse ,代码管理用的是 svn

---------------
这几个里面看情况的。 其中 svn 是应该需要换的,其他的都不是那么绝对。IDE 纯看习惯。 通信 socket 不是很常见,看你说的是干什么。

你说的这些 Kafka 啥的已经跟 c 不 c++不是一个维度的事,看业务和系统是干啥的
l00t
2022-02-24 08:58:38 +08:00
不要被日新月异的各种名字迷惑了,你说的那些东西不是不好,但不一定是你需要的。未必是你脱离了时代,而是可能领域就完全不同。
Kasumi20
2022-02-24 10:12:03 +08:00
Linux 下的后台服务开发,居然不知道 nginx ?
nmap
2022-02-24 10:28:16 +08:00
自己得有学习的意识,这些都是公开的东西,linux 后台开发连 nginx 都不知道,看来是活在自己的舒适圈太久了
wtfdsy
2022-02-24 10:40:34 +08:00
上边说 nginx 的,别人未必是 web 后台,都直接 socket 了
chtcrack
2022-02-24 14:49:28 +08:00
@nmap 别人用 c++的 socket 来通讯,那速度和性能比 nginx 快多了,只是功能没 nginx 那么多罢了.因为他用的 socket 功能只是为了自己公司而开发...而 nginx 是面向大众的一款轻量级的 Web 服务器..

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

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

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

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

© 2021 V2EX