从学生的C/C++水平,到生产环境水平,有什么好的建议?
- 网络资讯
- 2024-09-25 23:49:03
回答这个问题的主要目的:
现实中的一些学生的代码水平真的令人头疼,看code review看到想吐(毫不夸张),还是科普一下吧自己当年上学的时候已经代码量很大了,但是工作之前也很好奇这个问题,后来经过正经工作了N年算是找到答案了首先是摆正思想认识:
对生产环境要有足够的敬畏!不要犯错,不要犯错,不要犯错!一些学生完全是意识上不重视,看啥都觉得无所谓,说啥都觉得跟自己无关,这种我就劝你别出来工作得了。为啥要尽量避免犯错?因为你犯错了,对用户来说丢了数据可能跳楼,对公司来说丢了生意就是亏钱!充分尊重和信任你的团队合作伙伴!一些学生为啥进组代码乱写一通,因为他根本不知道什么是尊重!你代码写的烂对你来说无所谓,但是你跑路了,整个团队还是要继续给你擦屁股,维护或者删改你的旧代码!情商高一点吧,别给别人创造麻烦!然后就是技术上(操作上)的一个checklist,可以拿自己上学时候写的代码对照一下:
异常处理了吗?你不处理异常,异常就要处理你!(我建议法律部门应该立法开除)部署方式考虑了吗?拷贝到用户电脑上能用吗?有些人自以为代码写的非常牛逼,要么用户安装不起来,要么安装起来根本不能运行,一切都等于零!程序有足够的log可以追踪到错误吗?你不会天真的以为可以在用户的电脑环境上调试吧?你的每一个逻辑条件,是完备的吗?所有可能的控制路径都处理了吗?else写了吗?default写了吗?(这条我刚工作的时候也犯过很多次)你所有的代码路径,都有单元测试或者自动化测试可以覆盖吗?测试了哪些手工case?测试了几遍?有报告记录吗?(说实话,有些工业软件的代码看起来非常冗余,但是稳得不行,各种条件都考虑到了,核心组件测试覆盖率100%,这种代码看着恶心但就是好代码!记住,代码是给计算机执行的,不是给用户欣赏的)以后升级软件版本,你的代码能兼容老的调用方式吗?预留了足够的灵活性和兼容性设计吗?你的代码有对应的文档让测试者或者文档编写者获取到足够的信息吗?你的语言或者库的用法,符合这个语言或者库的最佳实践吗?(这个其实比较抽象,我的建议是在自己经验不够的时候,多听code reviewer的建议,不要把别人的意见当做攻击,要当作学习的机会,等你有足够经验了再去怼别人)你在关键路径使用的算法,理论上是否能够足够高效或者前沿,是否达到了行业中的最高水平?(注意是关键路径,非关键路径没必要强求,不过我自己的风格是能用最好的、最新的,就用,当然了,前提是避坑,有些最新的坑太大)有些领域的程序,对于错误是零容忍,这些软件几乎不允许有bug,对这些领域,就是测试测试再测试,通过所有测试用例,实现功能之前就要准备好测试集,并且对测试数据的特点足够了解(开发过程可以省力)真正高质量的软件项目,都有它的核心理念和设计思想,这些东西一定要去掌握,并且自己设计东西也要有个清晰的思想,不能写到哪算到哪,有思想才能在后续团队维护的时候,保证一个准确的脉络能延续下去团队生产环境都有高度集成的工具、流程以及制度,熟悉这些工具,按照流程工作,遵守公司制度或者团队约定,成为团队成员可以信任的一员,你才算真正融入说了这么多,估计会被很多人喷,现在很多人对工作或者编程缺乏敬畏,宁愿辞职都不愿意受一点累,写起代码各种偷工减料,叫他改的时候就各种理由推脱,确实也是不差公司这几块钱工资,那我只能说:佩服
从学生的C/C++水平,到生产环境水平,有什么好的建议?由讯客互联网络资讯栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“从学生的C/C++水平,到生产环境水平,有什么好的建议?”