百科问答小站 logo
百科问答小站 font logo



腾讯以及各大厂的 C++ 开发环境是什么样的? 第1页

  

user avatar   pansz 网友的相关建议: 
      

如果说腾讯的话,老项目svn,新项目很多都是git了,通讯环境的话用微信企业版比较多,而项目相关的工作内容有很多会基于网页。开发环境最需要统一的就是版本管理,其它倒是比较自由。

由于C++在腾讯最主要的用途是服务器后端,因此实际上你可以使用任意的编辑器,大厂员工很务实,是很少就这个问题撕逼的。

远古时代(大约十五年前)很多人用SourceInsight3.5,因为它有完美破解版。但是它的致命问题有两个:第一是只支持C语言,C++支持比较糟糕,第二是只支持GBK不支持UTF-8,这个问题在现在来说很致命,都2020年了你几乎不会还允许程序员用GBK写代码,虽然2005年用GBK写代码还挺常见。

SourceInsight4.0改进了这两个支持,能够有限程度支持UTF-8,并且C++支持比前作排版强了半分钱,但售价是天价(四位数以上)。鉴于大厂一般不允许本机装盗版,SI4.0的价格又几乎不可能购买,所以现实中除了可以申请购买SI4的公司,其它公司已经极少有人用它。

自己折腾党有用Vim跟Emacs的很多,当然也有直接用其它IDE的,比如VS,比如Eclipse(嗯,这货确实也可以写C++),比如JB,比如。。。各种选择都可以,服务器后端C++程序员们真的不会对IDE问题过于纠结,自己习惯用哪个就是哪个。

就现在而言,Eclipse原作者的新作品:Visual Studio Code 逐渐成为程序员新宠,它有技术跟历史的必然。虽然它目前还有不少问题,但已经越来越多的人开始使用它。

纠结IDE的项目大都缺乏自己的构建系统,而对于互联网项目来说,CI/CD 机制已经很流行,这意味着C++项目是必须自动构建的,能 CI/CD 也就意味着必须有可以被命令行批处理的构建,进而就脱离了任何指定的IDE。

--

所以你要说开发环境是什么?

那就是:统一的SCM管理,基于Web的问题跟踪及缺陷管理,客户端的项目组成员间通讯,后台服务CI/CD。——至于IDE,可以说并不是开发环境的一部分,只是程序员的个人爱好选择而已。


user avatar   xi-yang-86-73 网友的相关建议: 
      

我来厚着脸皮答一个:我们公司并不是大厂,一共只有11个人,主要产品是在Windows、Mac上面的桌面程序和动态库形式的插件(VST、Audio Unit、AAX)。经过几年的迭(zhe)代(teng)之后,目前是这样的局面:

  • 版本控制:收费的PlasticSCM(二进制资源太多,Git LFS糊不上墙)。所有项目、源代码库、二进制库放在一个大repo里,保证编译环境的一致性。
  • 编译控制:使用CMake。每个项目自己都可以单独作为顶层的项目进行生成(而不是整个repo做顶层,那样CMake generate步骤太长了),依赖项目用add_subdirectory(../XXX)引入。二进制库用CMake的add_library(IMPORT)那套设施包装一下。
  • 代码编写:在Windows上用CMake生成VS项目,使用VS编辑。只有我一个人在Linux上用Qt Creator。其它语言的脚本工具(主要是python)现在都用VS Code编辑(其实用啥都行,VS Code主要是好用)。
  • C++基础库:主要使用JUCE自带的(字符串功能还挺全),有时也用用C++标准库。
  • C++版本:使用C++14。更高版本的C++受到我们当前定的Mac SDK版本10.9制约(很多用户用非常老的Mac,没办法)。
  • 编译:各人本地编译。

目前来看,这个结构还算堪用。遗留的问题主要是:

  • CMake对新手难学难写;
  • CMake有分离的generate步骤,有时很麻烦;
  • JUCE的GUI框架非常古旧,大量使用虚函数继承,而不是现在更常见的listener函数。

前些日子想过把CMake换成Bazel。然而Bazel虽然看起来有很多优点,但一个是bug多,一个是从头折腾一遍代价太大,目前没有足够的动力。


user avatar   bai-ru-bing-58 网友的相关建议: 
      

Unreal默认使用的是C++14


user avatar   terry-53-70-12 网友的相关建议: 
      

克劳备忘录也好,凯南电报也好,有两大共同点。首先,都是以现实主义的眼光去分析双方的关系。然后,给出的建议都是阳谋,并不是什么不可告人的阴谋,执行起来需要的不是鸡鸣狗盗的小聪明,而是惊人的意志力。

而美国现在战略界现实主义被边缘化,我推测,布热津斯基,基辛格那帮人应该写过不少。不过没所谓,美国能执行大战略的时代过去了。现在这一代精英上半年能管下半年就已经很了不起了。一个需要两代人以上持之以恒去完成的大战略,搞出来他们也执行不了。

冷战时期,从杜鲁门艾森豪威尔到肯尼迪尼克松,最后到李根老布什,个人性格和政治偏好差距不要太大,但是都忠实地完成了他们历史任务,沿着围堵政策做下去。这种战略定力和延续性,世间少见。在中国领导集团上能看见一些相似的东西,但是我们离得距离太近,反而看不清。但在美国精英层身上完全看不到这一点。

个人愚见。


user avatar   emnkcn 网友的相关建议: 
      

克劳备忘录也好,凯南电报也好,有两大共同点。首先,都是以现实主义的眼光去分析双方的关系。然后,给出的建议都是阳谋,并不是什么不可告人的阴谋,执行起来需要的不是鸡鸣狗盗的小聪明,而是惊人的意志力。

而美国现在战略界现实主义被边缘化,我推测,布热津斯基,基辛格那帮人应该写过不少。不过没所谓,美国能执行大战略的时代过去了。现在这一代精英上半年能管下半年就已经很了不起了。一个需要两代人以上持之以恒去完成的大战略,搞出来他们也执行不了。

冷战时期,从杜鲁门艾森豪威尔到肯尼迪尼克松,最后到李根老布什,个人性格和政治偏好差距不要太大,但是都忠实地完成了他们历史任务,沿着围堵政策做下去。这种战略定力和延续性,世间少见。在中国领导集团上能看见一些相似的东西,但是我们离得距离太近,反而看不清。但在美国精英层身上完全看不到这一点。

个人愚见。




  

相关话题

  如何用 C 语言画「心形」? 
  服务器操作系统选 Debian、Ubuntu 还是 CentOS? 
  c++中超出char、int范围的整数怎么存储? 
  求问“命令行的需求,命令行的本质,命令行究竟解决什么需求,命令行究竟又能带来什么好处”,到底是什么呢? 
  你认为 Linux 最差的用户体验是什么? 
  一个程序员多年累计编写一百万行代码是什么体验? 
  传统的try-catch异常处理是否是编程语言发展中的弯路? 
  C++中 int n = 0ULL - 1; 是 UB 未定义行为吗? 
  Linux内核代码算屎山吗? 
  C/C++编程有哪些没什么用,但让人不明觉厉又不至于太奇怪的写法? 

前一个讨论
英语中什么情况下人名会使用姓在前名在后的写法?
下一个讨论
如果内燃机的热机效率达到99.99%,尾气会是什么状态?





© 2024-11-08 - tinynew.org. All Rights Reserved.
© 2024-11-08 - tinynew.org. 保留所有权利