大家好,今天小编关注到一个比较有意思的话题,就是关于tomac起重机的问题,于是小编就整理了1个相关介绍tomac起重机的解答,让我们一起看看吧。
程序员代码量过20万行,是一种什么体验?
作为一个从业多年,编写的有效代码远超20万行的老码农,来聊聊个人的切身体验,希望能对你有所帮助。
当你开始写第一个程序的时候,目的往往只有一个,如果将能够快速的掌握这门语言,如何能将那些练习题用程序实现,如果以每道题几十行代码计,下来也写了成千上万行代码吧。
后来会接触一些开发框架,开始学习并使用这些框架,然后用它们来解决一些实际的问题,在此过程中,代码量会快速的膨胀,然后慢慢的理解了这些框架的设计思路,也发现了它们的一些缺陷与不足。于是你会根据需要解决的问题转向一些别的框架,甚至是别的编程语言。有时候为了设计一个良好的系统,你可能会使用到几种不同的编程语言;有时候因为现有框架无法解决问题,你会求助于开源社区;有时候开源社区可能也没有你需要的东西,于是你开始自行设计;或许有一天,你自己设计了一个优秀库,然后将它放到开源社区,你开始成了新手膜拜的大神,而当初你自己也曾膜拜那些提供开源项目的人!
实际上随着代码量的增长,每个人的倾向也各不相同。比如有的人会向深度发展,开始研究更高效的算法;而有些人会向高度发展,设计更灵活多变的框架;也有人会向广度发展,融合多种语言,充分利用它们的优缺点以解决实际问题……
就我个人来说,曾经在某一个阶段,也可能就是20万行代码这个阶段吧,会经常沉迷于开源社区,学习那些优秀的开源项目,后来开始自己设计一些应用框架,再后来,希望有一天自己开发的一些项目也能为开源社区做一点点贡献(不过因为需要养家糊口,一些代码会涉及到商业问题,所以无法分享,想想甚至遗憾)。
最后需要说明一下,代码量和有效代码量是有着很大区别的,如果Ctrl+C,Ctrl+V,那么有些人甚至一天就可以写出上万行代码,而这些靠***、粘贴出来代码显然是没有含金量的,它们只是代码而不是有效代码。有效代码是经过你思考并自己编写的代码,即使是参考已有代码,也是经过一定的重构以高效的融合进自己的框架。
当然每个人的悟性、兴趣与从事的行业也各不相同,体验自然也会千差万别,不能一概而论。
代码量无意义,要是纯粹为了凑20万行代码很容易,***粘贴就可以了。如果是自己码上的二十万行代码,说明你写的够多了,但是可能是最低级的程序员,面向对象的语言讲求封装继承多态,高级程序员会用最少的代码去干更多的事。所以说比拼代码量只能说是个小白。
如果是一个独立项目超过20w还是一个人维护,真的很难,可以说反反复复重构,拆模块,提取公共库,做分层处理,而且还会引入工具对代码使用lint工具。代码量过五万的时候,开始注重命名规范,文档,注释,初步划分模块,debug工具和命令熟练,但有时候使用还要去搜一下使用方法,日志写是写,还是有点随意。
代码达到十万行的时候,模块划分完整,开始做系统分层,也引入代码扫描工具,同时debu***平炉火纯青,也学会了崩溃时生成core文件,方便分析,日志已经非常标准而且完备。同时,开始做code review。各种接口说明文档也都有了。而且开始了解操作系统和虚拟机,以及编程语言和各种库的底层细节。已经是某方面的资深人士。
等到二十万行的时候,代码规范,日志规范,架构设计,性能指标,硬件需求,异常处理,数据说明,接口说明,数据流图,配置表,数据字典,历史异常总结,这些都有文档了。同时涉及到网络,文件,操作系统系统,脚本,语言也做了深入了解。到了这个阶段,维护代码,做个小修改都胆战心惊。已经算得上专家了。
20万行并不算多,但也不算少。
我曾经有一年,自己写了一个工程8万行的C++,如果统计加上第三方的代码那能到30万行。中间有一段时间被设计错误搞的逻辑混乱,小规模重构过一次。算是我一次性独立完成的最大的项目了。说实话还是蛮有成就感的,但也就那样。
完全是自己写的,超过20万行的也有,是我自己写的游戏引擎,但那是常年累月不断更新维护迭代下来的。这种感觉就不只是成就感了,而是有一种情怀。哪怕别人的比自己的更强大,我依然要用我自己的。它更是一种依赖,因为常年累月的积累迭代,其中包含了各种基础库。自己的数学库,自己的模版库,自己的网络库,等等。写个啥项目,基础库都要用自己的,上手快啊!
当年我们公司有一阵时间发明了用代码量计算工作量并以此进行考核,于是出现了五花八门的奇葩源码,比如赋值一个字符串,一个函数就搞定,只有一行,有人会一个字符一个字符的赋值,200多个字符长度的字符串要写200多行,当我不小心看到时,简直目瞪口呆,这丫太有才了。j***a里的a.b.c***,一行可以分成很多行。要写出20万行,一点也不难。
还有用bug数量评估代码的优良,后来也歇菜了,因为谁也不愿意承认是自己问题,遇到问题能推就推。测试人员要是把一些集体犯错的bug定位到自己身上,必须吵翻天。