adtop
金财网 > 生活

刚写了一百万行代码,现在迷之自信!

www.041799.com|时间:2017-08-05 16:22|责任编辑:牧晓|来源: 搜狐   阅读量:15109   

原标题:刚写了一百万行代码,现在迷之自信!

本文不长,也就一百万行

搞程序的累计写到一百万行代码,到底是什么体验呢?我们先来简单计算一下:

假设最好的情况,一天100行高质量代码,一年36500,100/3.65=27年多。即便从20岁开始编码,要到50岁左右方可完成。

但实际上关于平均代码量的问题,即便把所有工作日都算上,大概也就是20-30行的样子;如果仅讨论集中的开发期,高峰也不会超过200行。

一百万代码就像找女朋友一样不靠谱

针对累计写到一百万行代码,看看网友们怎么说:

写得慢怎么办

我写两千行代码功能都得琢磨个两三天,一百万行真的是好多啊,最多了五年写了也就 20-30万行代码左右,还是有任务在身的情况被逼着写的。

让我写一百万行代码,恐怕这辈子得死在电脑前了...

成为专家,就得来一百万行

据说要从初学者成长为程序员,那个得需要10万行代码的积累才可以呢。

不过修炼一段时间之后再注重代码的量那就不对了,这时候肯定是注重数学还有算法思维。

按这样算的话,假如20万是修炼门槛真积累到了一百万行代码肯定代码质量越来越高了,估计是某个领域的小专家也说不定。

呵呵

如果说你一个工作写了一百万行代码,那你在公司的地位应该算资深员工了。

如果你一个项目写了一百万行,那你肯定是参与了一个比较大的项目了。

如果你一个方法写了一百万行代码的话,请问你有没有被同事打死?

一味的追求量并没有任何实际意义,通常,越核心的部分代码量越小,越容易写大量代码的,大概是没什么技术含量的 UI、业务逻辑。

而一些部分,用脚本或DSL实现可以更精简。写代码和考试一样,做题最多的不一定是成绩最好的。

关于怎么做高质量的代码,给你提供一些解决方案:

基础!基础!基础!

写出高质量代码,并不是搭建空中楼阁,需要有一定的基础。

掌握好开发语言,比如做Android就必须对Java足够熟悉。

熟悉开发平台, 不同的开发平台,有不同的API, 有不同的工作原理,同样是Java代码,在PC上写与Android上写很多地方不一样,要去熟悉Android编程的一些特性,iOS编程的一些特性,了解清楚这些,才能写出更加地道的代码,充分发挥各自平台的优势。

基础的数据结构与算法,掌握好这些在解决一些特定问题时,可以以更加优雅有效的方式处理。

基础的设计原则,无需完全掌握23种经典设计模式,只需要了解一些常用的设计原则即可,甚至你也可以只了解什么是低耦合,并在你的代码中坚持实践,也能写出很不错的代码。

代码标准

代码标准在团队合作中尤为重要,谁也不希望一个项目中代码风格各异,看得让人糟心,即便是个人开发者,现在也需要跟各种开源项目打交道。

标准怎么定是一个老生常谈的话题,我个人职业生涯中经历过很多次的代码标准讨论会议,C++, C#, Java等等,大家有时会坚持自己的习惯不肯退让。

可现如今时代不一样了,Google等大厂已经为我们制定好了各种标准,不用争了,就用这些业界标准吧。

想好再写

除非你很清楚你要怎么做,否则我不建议边做边想。

你真的搞清楚你要解决的问题是什么了吗?你的方案是否能有效?有没有更优雅简单的方案?准备怎么设计它?

必要的情况下,需要有设计文档,复杂一些的设计需要有同行评审,写代码其实是很简单的事情,前提是你得先想清楚。

代码重构

重构对于代码质量的重要性不言而喻,很难一次把代码写得让自己满意、无可挑剔,《重构》这本书作为业内经典也理应人人必读,也有其他类似的教授重构技巧的书,有些也非常不错,遗憾的是我发现很多工作多年的同学甚至都没有了解过重构的概念。

技术债务

很多问题归根结底都是技术债务,这在一些大公司尤为常见。

技术债务话题太大,但就代码质量而言,我只想提一下不要因为这些债是前人留下的你就不去管,现实是没有多少机会让你从一个清爽清新的项目开始做起,你不得不去面对这些,你也没法完全不跟这些所谓的烂代码打交道。

因此我建议各位:当你负责一个小模块时,除了把它做好之外,也要顺便将与之纠缠在一起的技术债务还掉,因为这些债务最终将是整个团队来共同承担,任何一个人都别想独善其身,如果你还对高质量代码有追求的话。

静态检查

很多代码上的问题,都可以通过一些工具来找到,某些场景下,它比人要靠谱得多,至少不会出现某些细节上的遗漏,同时也能有效帮助大家减少代码审查的工作量。

Android开发中有Lint, Find bugs, PMD等优秀静态检查工具可用,通过改进这些工具找出的问题,就能对语法的细节,规范,编程的技巧有更多直观了解。

建议最好与持续集成(CI),代码审查环境配套使用, 每次提交的代码都能自动验证是否通过了工具的代码检查,通过才允许提交。

单元测试

Android单元测试,一直备受争议,主要还是原生的测试框架不够方便,每跑一次用例需要在模拟器或者真机上运行,效率太低,也不方便在CI环境下自动构建单元测试,好在有Robolectric,能帮我们解决部分问题。

单元测试的一个非常显著的优点是,当你需要修改大量代码时,尽管放心修改,只需要保证单元测试用例通过即可,无需瞻前顾后。

充分自测

有一种说法:程序员最害怕的是他自己写的代码,尤其是准备在众人面前show自己的工作成果时,因此在写完代码后,需要至少跑一遍基本的场景,一些简单的异常流。

在把你的工作成果提交给测试或用户前,充分自测是基本的职业素养,不要总想着让测试帮你找问题,随便用几下就Crash的东西,你好意思拿给别人吗?

所以,关于代码的量,从初学者成长为程序员,需要代码的积累,而以后数学功底和编程思维的深化更加重要。

郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。

热搜: 收藏
精选
adr03