网络框架重构之路plain2.0(c++23 without module) 环境

科技资讯 投稿 5800 0 评论

网络框架重构之路plain2.0(c++23 without module) 环境

 开发环境

主开发环境

1、系统

plain因为支持跨平台,所以主要的两个操作系统是linux和windows,而linux中我选择了中小企业中常用的centos 7(centos 8 已经停止支持了,但是7还有一段时间才会停,估计之后大家可能会被迫使用centos stream)。而对于windows环境下,我选择的版本是目前比较流行的win10系统,毕竟这个系统对老的硬件兼容性强点,新的win11似乎要Intel系列的CPU在8代以后才支持。在windows下我的开发环境是直接使用Microsoft Visual Studio 2022进行开发,当然如果不喜欢它的重量级的朋友可以使用其免费的Code进行开发,不过现在Microsoft Visual Studio 2022也有个人免费版,我觉得如果想要专业一些直接使用这个重器吧,调试和各方面都支持的不错。

2、编译器

windows上的编译器主要使用Microsoft Visual Studio 2022,所以编译器是自带的,因此在这里不做过多描述。由于要使用新的特性,因此编译器必须为最新的,随着未来的情况,编译器都应该保持最新的状态。有些人会发现如果拿老的项目使用最新的编译器就会遇到一些莫名其妙的错误,就算没有错误也会遇到很多刷屏的警告信息,这都是以前编译器版本对于不规范的代码过于宽松的原因。比如我现在这家公司的这个项目就是,拿最新的编译器的话是编译不过的,而且数不清的警告让人无从下手,所以只能使用旧的指定的编译器版本。

在plain开发中,重点在于centos系统下的开发,要使用最新的编译器我所知的有两种途径:gcc-toolset、gcc源码编译。如果你的yum源支持gcc-toolset12则直接进行安装即可,否则你可能需要使用源码安装了,关于如何进行gcc-toolset的安装,以及gcc源码编译安装网上有太多的文章了,我在这里就不在重复(如果源码安装你可以尝试使用我的安装脚本,目前这个脚本我只在centos下测试过,如果是其他系统估计需要改动才能使用)。今年的gcc 13发布后,我也即将使用最新的gcc 13,可以在gcc的git版本管理中发现gcc 13已经在开发阶段,如下图:

 

3、编辑器

最后我选择的编辑器为vim、VS,至于vim和emacs之间做出了选择vim是因为个人觉得vim更轻量一些,不过你也需要使用插件。对于emacs,其实这个编辑器的功能似乎更强大,它集成的编译环境让我们的调试更加快速,不过这也看个人的喜好了。有人说为什么不用新生代的neovim?因为不少人觉得vim太慢、过时、很久没更新(吃老本),所以才有neovim的出现,可是我想说的是vim走到今天很不容易,而且现在代码的更新也很快了,作者似乎也意识到了大家所指出的那些毛病都是正确的,因此才有了更加快速的vim script等等加快编辑器速度的优化。由于习惯了使用vim,我觉得也没有必要再去尝试别的东西了,编辑器只是编写代码的辅助工具,所以在这个方面个人认为没必要做的本末倒置,只要自己认为用起来得心应手就好。

 工作环境

职业发展

1、刚工作和工作不久

我本不打算在这里说自己这方面的心得,毕竟自己从来似乎就没有做过职业规划方面的事情,所以该条款仅仅是一点点微不足道的建议(以自身的经历和经验)。想起十多年前(2011)刚毕业在北方那座不大的城市顶着火热的太阳找工作的情形,颇感毕业生想要进入社会生存是多么不易(特别是自己本专业,据我所知90%以上都是从事了和自己专业无关的工作),其实不容易的也还有许许多多的打工人。那时候我还记得在学校的毕业设计,我是用的一个网上弄下来的图书管理系统,其代码是asp写的,刚好是我学校所学,为了完成任务在上面做了一些修改,然后进行一番分析后做出论文。虽然最后通过了答辩拿到了毕业证,可是找工作的时候却四处碰壁,一方面是因为学校所处的城市相关的工作较少,另一方面出来后用asp这个语言的公司几乎没有,其实我想大部分原因是公司不愿意培养一个完全没有经验的人。经过一个多月简历石沉大海,去公司唯唯诺诺的面试毫无结果之后,我开始想要提升一下自己。既然外面生存环境需要自己掌握技能,那么我就只能去提升了,那时候我发现做网站用的比较多的是PHP,因此我在网上搜了一圈后找到了一个培训班(先听我讲完)。我还记得当时的那位授课老师姓候,似乎是一位硕士,当时给了三天免费试听的课程。我到了那里之后听了一天课,发现其实那些内容如果自己找资料同样可以掌握,而且进度会更加快,所以一天以后我没有再去,而是转向图书馆买了三百多的书,这些书有C/C++开发、PHP开发、C/C++算法速查。至于为什么想学PHP却又买了C/C++的书,忘记听那位朋友说的,是自己对该语言产生了一定兴趣的结果。

游戏开发在当下并不陌生,不过近两年发展的也是良莠不齐,以及因为本行业的高工作强度为大家所诟病(据我所知软件大部分其实都差不多,否则github上也不会有996icu这个项目了)。一开始我是作为PHP做后台开发,这个后台就是用来对接游戏接口还有就是统计游戏中数据的功能,这一做大概就做了一年。顺嘴提一句,当时那家公司同一层有一个网易著名团队出来自创的公司,在同一层楼我感觉他们的福利确实挺好,而且能看到其作品质量也很不错。在做后台开发的时候,我也兼着做了一些运维的工作,当时忙的焦头烂额,小公司没有运维真的是很难,不过在这一年我确实学习了不少知识,不仅仅学会了许多曾经不熟悉的linux相应的操作和命令、还让我学会了使用vim编辑器,就是从这里开始vim就成为我的常用开发编辑器了(手动狗头,必须带插件)。能够掌握这些知识主要还是得感谢我那位同乡的上级,他不厌其烦甚至还借了一本书给我,并不因为我不了解就嗤之以鼻。在后来新的运维加入之后,我的负担大大降低后,就开始转向了后端开发,这一转就到了现在。后来我从这家创业公司去到一家当地在页游排行前几名的公司,这次其实我是和创业公司的一些小伙伴一起出去的,原因是老板不愿意继续那个项目了。

后来我回到了内地,依旧做后端开发,所遇到的领导都是原因分享的,不过这时候我从那家页游公司的那位上级处看到了其实知识有些时候也需要自己去掌握,所以近几年我都是自己查询资料进行学习。说了自己一大段的经历,其实我想说的是对于刚工作或者工作不久的朋友,在考虑薪资的同时,如果想要职业更好的发展,那么在选择你的上级和公司时,就需要关注他们是否有open精神,如果面对的是close的人那么你需要慎重考虑。在手里有选择的余地之下,尽量选择一个open的工作环境,那样可以快速提升自己的技术实力。

2、不要觉得自己不够聪明

这句话是我从别人那里引来的,我认为这句话十分有道理,如果你觉得自己不够聪明那么你很多时候就会变得畏缩不前,对于未来的发展来说很有阻碍。就拿我自己来说,我曾经就是认为那些深入的软件设计就是高深莫测,所以刚开始的时候根本就不敢涉足。但就我的项目经历来说,我经历过由浅入深的过程,有些特别复杂的系统设计(比如游戏的战斗系统),这些我以前都没有接触过,就连自己维护都没有过,但是我参考了几个游戏的设计后,加上自己的理解,在几个类型不同的项目中仍旧能够游刃有余,那多半是多亏了自己的经验和不断学习的结果。

学历是否很重要?我就在这里说说自己的认知,当然的学历是一个人在以往学习优秀的证明,这一点上是毋庸置疑的,在某种程度上来说它是重要的。因此现在许多人大学毕业之后都选择继续深造,这一点上来说我也十分赞同。但是继续深造,还有为了更好的工作提升学历,就真的是必须的么?笔者并不认为学历是必须的,这不是我因为高考不理想的借口(差几分上本科,却不愿复读)。在这个世界上有许许多多的人,但是人活着并不是非得和学历挂钩,中国为何学历风盛行的原因追根究底其实是因为封建长久的科举制度造成的。特别是许多企业,标榜自己员工的本科率多少多少,其实这都是社会的问题,并不是我们的问题。但是说到这里,为了让自己有更好的生活,或者提升自己的知识水平,在自身条件充足的情况下,我还是比较支持去提升学历(虽然我个人比较懒,但是各位朋友只要有时间读个硕士还是可以的),特别有些知识要到了一定学历高度才会接触,一些高级的算法你没有进行相应的教育上手就比较困难。但如果自己没有条件,特别是家庭环境不好,需要自己考虑生计的事情,那么这时候学历对自己可能无法短时间去获得提升了,那么这时候可以利用零碎的时间多阅读书籍来提升自己的实力。在国外听说许多的企业不在乎学历和年龄,别人眼中就在乎你的skills,这就是他们那边的环境更加尊重人的能力,我相信有一天我们这里也会如此。

3、身体第一

本来打算写两个条目就足够,但是上面我说的都是工作上一些令人厌烦的事情,特别是学习,有些人总会觉得枯燥乏味。所以我在最后增加了这一条,一切的一切你都需要有个良好的身体,所以朋友们最需要关心自己的健康。工作是为了更好的生活,学习为了更好的工作,但一切的前提身体要健康、心里要快乐。

 写在最后

杂七杂八

1、centos开发环境镜像

2、开发环境脚本

地址:https://github.com/viticm/cpp_misc/blob/main/script

编程笔记 » 网络框架重构之路plain2.0(c++23 without module) 环境

赞同 (29) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽