分享一个去年就在知乎看到的一个问题:
当时还关注了这个问题,因为相比 Java、Go 等语言来说,C++ 生态以及开发环境工具链都没有那么标准化,以至于大家学习时用的工具链,一般都和入职后公司的不一样。
其实我想写的一下的,但正好下面有一位腾讯员工的回答(不是我写的,强调下!!!),分享一下
原文链接:https://www.zhihu.com/question/265829202/answer/1081457634
简单介绍下腾讯微信事业群后台开发环境。
微信事业群比较特殊,喜欢自己搞一套东西自己用,有些基础设施跟腾讯其他事业群的不太一样。
微信后台开发的一天(理想情况Orz):
其他一些碎碎念:
原文分享结束
看作者回答的日期是 2020年,正好 3 年过去了,其实编译构建工具链也在不断改进,比如现在有了本地编译(这里本地指云开发机,背景是后台代码依赖一些特定的内部 Linux 版本,所以一般的 Linux上、Mac上都没法进行完全的本地编译),本地编译之后可以缓存编译结果,做增量编译,第一次编译稍慢一点(大概几分钟),后续改动代码后重新编译基本上一两分钟搞定。
然后大家现在基本也都用 VSCode,CLion 这样现代化的编辑器/IDE,至于文中说的“大家写代码的环境都是没有精确的跳转和补齐能力的”,现在基本也有统一的解决方案了。
VSCode 可以采用 vscode + ccls 或者 vscode + clangd 这样的插件,因为它们依赖的 compile_commands.json 文件目前可以用 patchbuild(远程编译工具) 生成。
还有用 Clion,CMake 构建的。
文中作者还提到一句:“普通的业务代码需要什么功能基本都可以找到,完全就是堆积木,对普通的业务部门来说,面试造火箭入职拧螺丝一点都不夸张。”
深表认同,相信其它大公司也基本是这样,基础组件非常完善,大家平常学的那些网络、操作系统知识往往只有在排查问题的时候起作用,平常都是堆业务逻辑,相比“纯技术”来说,对业务的理解,业务流程的串联反而更重要一些。
欢迎大家也来评论区分享下自己所在公司/部门的一些工具链情况~