现状:
目前从事 Linux 下的 C++后台服务开发,公司用的技术比较保守(落后),比如通信还是用的 socket 发送二进制字节流,C++还停留在 C++98 ,开发用的还是 Eclipse ,代码管理用的是 svn ,所有的代码混在一个程序里(单体应用)。
看到互联网公司使用的一大堆技术,比如 kafka 、nginx 、kong 、微服务、docker 、k8s 、服务网格等等,看到这些技术名词一脸懵,完全不知道啥意思。感觉我脱离了这个时代。
想请教各位 C++开发的老哥:
1
jmc891205 2022-02-23 20:40:39 +08:00
应该咨询 Java 老哥哈哈
|
2
passer9527 2022-02-23 20:52:50 +08:00 via iPhone
跳槽到一个 Java 的公司
|
3
lingex 2022-02-23 21:11:36 +08:00 via Android 1
同 C++开发,最有效的大概是项目驱动吧,
|
4
lingex 2022-02-23 21:22:23 +08:00 via Android
|
5
elfive 2022-02-23 21:31:35 +08:00 via iPhone 5
我所在的公司传统制造业,也是用 c99/C++98 很久了,即使呆过的项目组能够用 c++11 ,但是其他同事都是能用就行,甚至连 c++11 这种标准都不知道。
我根据我的经验,能分享给你的: 1. C++标准的演进,很大程度上是编程的演进,比如面相过程到面向对象到模板元编程,它们都是因为为了达成一些目标而自然演化而来的,不是什么凭空想象出来的,写代码的时候多思考一下为什么这么写为什么不那样写。 2. 努力写出精简的代码,精简不是简单指代码越少越好。而是你的思路要精简,抽象的流程要精简。灵活作用抽象,尤其是抽象流程,这样你就能在多变的需求中做到灵活扩展。走一步,看十步。 3. 从心底热爱写代码,兴趣是最好的老师,不一定要能自己实现,但是 stl 代码你必须要熟悉和了解,里面的代码很难看懂,但是无非就是容器类的内存管理、数据结构、算法,type_traits 等模板元编程的“概念”,这些东西可能很难用很难懂,但是一旦入了门,它就真的和日常呼吸一样自然了。 |
6
elfive 2022-02-23 21:35:02 +08:00 via iPhone 1
@elfive 常见的资源:
1. cpprefference.com 2. youtube cppcon ,里面很多大佬的 talk 都是干货满满,上下班公交上看中午午休看绝对不后悔。 3. 一些有名的开源库,及相关的资源:boost 等,不是简单的看人家的代码实现,而是要学他们的编程思路和方法方式。 |
7
feather12315 2022-02-23 21:37:23 +08:00 via Android
自己搭个网站、梯子,自己捣腾下服务器、路由器、nas ,就都接触到了
|
8
anonymousar 2022-02-23 22:13:44 +08:00 3
那些都是虚的 c98 老玩具会的才是实的 gdb systemtap bpf perf tools 这些。
|
9
anonymousar 2022-02-23 22:14:28 +08:00 1
另外想看 c11 以后的东西 我建议搞个 folly 源码读读就好了
|
10
FranzKafka95 2022-02-23 22:15:10 +08:00 via Android 1
Android Native C++源码 /Github 上的优秀 C++项目,除此之外还可以尝试不同的领域,如音、视频,蓝牙 wifiBt ,前端做做 Qt 这些
|
11
documentzhangx66 2022-02-24 02:32:19 +08:00 1
C++也是分等级的。
普通 QT 那种 C++,看一本 C++的书,再去看 QT 的例子,然后基于谷歌解决问题,感觉也够了。数据库,用各种框架加谷歌现成的 SQL 例子,网络通信有 grpc 等各类组件,当个 API 调用师,躺赢即可。 中级 C++,需要懂一些数据结构与算法。 高级 C++,需要懂 OS 、网络通信、数据库的一些基本原理。 顶级 C++,需要懂一些底层的知识,从组成原理开始,到汇编、到各种 CPU 的一些特定比如频率、指令集等等。 超纲 C++,需要学一下底层电路的知识,能加深对性能的理解。 以上这些知识,都有书籍。建议用关键字去知乎和豆瓣搜,书我就不推荐了,因为书的种类很多,我推荐的书的写作风格,不一定适合你。有些朋友甚至喜欢去看视频教程。 |
12
mingl0280 2022-02-24 05:14:46 +08:00
这些基本上都是互联网企业搞出来的需求,你没那个需求肯定用不着……要想用得着,把你的需求扩大个几万倍?
|
13
js8510 2022-02-24 07:11:11 +08:00
1.工作。。看代码写代码。另外回去看各大厂的 tech blog
2.公司自己开发的轮子。很多没开源。用到的比较出名的开源就是 thrift 了。 |
14
wellsc 2022-02-24 08:02:07 +08:00 via iPhone
跳槽
|
15
defage 2022-02-24 08:50:59 +08:00
通信还是用的 socket 发送二进制字节流,C++还停留在 C++98 ,开发用的还是 Eclipse ,代码管理用的是 svn
--------------- 这几个里面看情况的。 其中 svn 是应该需要换的,其他的都不是那么绝对。IDE 纯看习惯。 通信 socket 不是很常见,看你说的是干什么。 你说的这些 Kafka 啥的已经跟 c 不 c++不是一个维度的事,看业务和系统是干啥的 |
16
l00t 2022-02-24 08:58:38 +08:00
不要被日新月异的各种名字迷惑了,你说的那些东西不是不好,但不一定是你需要的。未必是你脱离了时代,而是可能领域就完全不同。
|
17
Kasumi20 2022-02-24 10:12:03 +08:00
Linux 下的后台服务开发,居然不知道 nginx ?
|
18
nmap 2022-02-24 10:28:16 +08:00
自己得有学习的意识,这些都是公开的东西,linux 后台开发连 nginx 都不知道,看来是活在自己的舒适圈太久了
|
19
wtfdsy 2022-02-24 10:40:34 +08:00
上边说 nginx 的,别人未必是 web 后台,都直接 socket 了
|
20
chtcrack 2022-02-24 14:49:28 +08:00
@nmap 别人用 c++的 socket 来通讯,那速度和性能比 nginx 快多了,只是功能没 nginx 那么多罢了.因为他用的 socket 功能只是为了自己公司而开发...而 nginx 是面向大众的一款轻量级的 Web 服务器..
|
21
chtcrack 2022-02-24 14:59:20 +08:00 1
@nmap 如果按照层级来比较的话,socket 相当于比 ngxin 的 http 低一个层级.
socket 和 http 的区别: Http 协议:简单的对象访问协议,对应于应用层。Http 协议是基于 TCP 链接的。 tcp 协议:对应于传输层 ip 协议:对应与网络层 TCP/IP 是传输层协议,主要解决数据如何在网络中传输;而 Http 是应用层协议,主要解决如何包装数据。 Socket 是对 TCP/IP 协议的封装,Socket 本身并不是协议,而是一个调用接口( API ),通过 Socket ,我们才能使用 TCP/IP 协议 其实你们问使用 c++ socket 的楼主怎么连 nginx 都不知道,就好像问用 c++开发嵌入式设备的人你怎么连 java 都不知道一样,人家需要知道吗?因为别人有这个水平可以开发另外一个 nginx++,等等等..完全不是一个层级的东西.. |
22
chtcrack 2022-02-24 15:04:43 +08:00
楼主,其实你要看目前他们玩高层应用的,你只需要知道 pyhton,php,java,c#,rust,,go 这类,然后这些又会分别使用数据库比如 mysql,缓存 redis,各种框架比如 laravel,sprint,vue 等等,都是由 c/c++写出来的高层应用,给那些不会写底层的程序员用的比较傻瓜化的框架..
通过这些,你就可以知道他们最近又发现了啥简单易用的框架和工具..然后内卷就开始了,35 岁就面临失业等等.. |
23
nmap 2022-02-24 15:15:52 +08:00
@chtcrack 笑死,还用你来教我这些小儿科的东西? 我是说,不管他是具体是做什么项目,但他自称是做 linux 后台 C++开发,结果连 nginx 都不知道,这本身是不可思议的事情,可能平时只专注自己的代码吧
|
24
liuguangxuan OP |
25
liuguangxuan OP @nmap #23 可能是我比较菜,但是我自己写的网关服务已经满足日常使用需求了呀。老哥能不能说一下你们公司的技术栈和架构,以及选用的原因,不能说因为人家用我也用吧。
还望老哥不吝赐教。 |
26
after1990s 2022-02-24 18:01:38 +08:00 via Android 1
|
27
neoblackcap 2022-02-24 18:04:24 +08:00 1
自定义协议,用 socket 写很正常啊,又不是每家都会做好一套序列化库的。有些就是简单定义一下。
这个真的没有什么 low 不 low ,各种 rpc 也要 socket ,只不过不用你自己封装罢了。 但是用各种 rpc 就要承受各种 rpc 带来的开销。 |
28
liuguangxuan OP @anonymousar #8 老哥,这些底层的知识,有没有推荐的书籍?
|
29
Coeus999 2022-03-04 14:05:12 +08:00
借个楼!!谢谢
各位 V2 好友们我这边有蛮多 C++的坑,可以把 JD 发给你们(可以无金融或同行业背景)如果感兴趣可以与我联系啊~ 北京上海杭州成都深圳长沙都有 [猎头职位] [微信:2318617113] [C++] 工作职责: 参与公司股票回测系统的开发与更新 负责对核心基金经理的服务与支持 负责实现研究员需求的功能 参与回测系统的架构设计与升级 任职要求: 国内外知名院校计算机专业 1 年左右 C++开发经验 编程基本功扎实,编码风格严谨,精通 C/C++开发 做事积极主动,责任心强,结果导向,有较强的沟通能力和跨团队协助能力 |
30
liuguangxuan OP @Coeus999 啊 这~,招人都这么卷了吗
|
31
Coeus999 2022-03-07 11:51:04 +08:00
@liuguangxuan hhh 没有啦!!!
|