12 第1页 | 共2 页下一页
返回列表 发新帖
查看: 4147|回复: 11

[经验分享] 我是程序员,如果你也是我想你应该看一看

[复制链接]

1

主题

1

听众

91

积分

设计初学者

Rank: 1

纳金币
9
精华
0
发表于 2016-5-4 17:32:25 |显示全部楼层
今天在这里逛了好多帖子,看了很多 发现好多大神的东西都沉下去了,我是一个刚刚走上untiy3d道路的人,我不知道今后的自己会发展成什么样子,我只想做自己喜欢的东西,在程序方面我看到一篇文章是这样写的:


《很长一段时间以来,我都在关注如何提高代码质量,也为此做过一些尝试,我想这个[color=rgb(85, 85, 85) !important]话题可能大家会比较感兴趣,在这里分享一下我关于如何提高代码质量的一些体会。1. 打好基础
写出高质量代码,并不是搭建空中楼阁,需要有一定的基础,这里我重点强调与代码质量密切相关的几点:
·掌握好开发语言,比如做Android就必须对Java足够熟悉,《Effective Java》一书就是教授大家如何更好得掌握Java, 写出高质量Java代码。
·熟悉开发平台, 不同的开发平台,有不同的API, 有不同的工作原理,同样是Java代码,在PC上写与Android上写很多地方不一样,要去熟悉Android编程的一些特性,iOS编程的一些特性,了解清楚这些,才能写出更加地道的代码,充分发挥各自平台的优势。
·基础的数据结构与算法,掌握好这些在解决一些特定[color=rgb(85, 85, 85) !important]问题时,可以以更加优雅有效的方式处理。
·基础的设计原则,无需完全掌握23种经典设计模式,只需要了解一些常用的设计原则即可,甚至你也可以只了解什么是低耦合,并在你的代码中坚持实践,也能写出很不错的代码。

2. 代码标准
代码标准在团队合作中尤为重要,谁也不希望一个项目中代码风格各异,看得让人糟心,即便是个人开发者,现在也需要跟各种开源项目打交道。标准怎么定是一个老生常谈的话题,我个人职业生涯中经历过很多次的代码标准讨论会议,C++, C#, Java等等,大家有时会坚持自己的习惯不肯退让。可现如今时代不一样了,Google等大厂已经为我们制定好了各种标准,不用争了,就用这些业界标准吧。

3. 想好再写
除非你很清楚你要怎么做,否则我不建议边做边想。
你真的搞清楚你要解决的问题是什么了吗?你的方案是否能有效?有没有更优雅简单的方案?准备怎么设计它,必要的情况下,需要有设计文档,复杂一些的设计需要有同行评审,写代码其实是很简单的事情,前提是你得先想清楚。

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

5. 技术债务
知乎上最近有个热门问题《为什么有些大公司技术弱爆了?》,其实里面提到的很多归根结底都是技术债务问题,这在一些大公司尤为常见。技术债务话题太大,但就代码质量而言,我只想提一下不要因为这些债是前人留下的你就不去管,现实是没有多少机会让你从一个清爽清新的项目开始做起,你不得不去面对这些,你也没法完全不跟这些所谓的烂代码打交道。
因此我建议各位:当你负责一个小模块时,除了把它做好之外,也要顺便将与之纠缠在一起的技术债务还掉,因为这些债务最终将是整个团队来共同承担,任何一个人都别想独善其身,如果你还对高质量代码有追求的话。
作为团队的技术负责人,也要顶住压力,鼓励大家勇于做出尝试,引导大家不断改进代码质量,不要总是畏手畏脚,停滞不前,真要背锅也得上,要有担当。

6. 代码审查
我曾经听过一些较高级别的技术分享,竟然还不时听到一些呼吁大家要做代码审查的主题,我以为在这个级别的技术会议上,不应再讨论代码审查有什么好,为什么要做代码审查之类的问题。同时我接触过相当多所谓国内一线互联网公司,竟有许多是不做代码审查的,这一度让我颇为意外。
这里也不想多谈如何做好代码审查,只是就代码质量这点,不客气地说:没有过代码审查经历的同学,往往很难写出高质量的代码,尤其是在各种追求速度的糙快猛创业公司。

7. 静态检查
很多代码上的问题,都可以通过一些工具来找到,某些场景下,它比人要靠谱得多,至少不会出现某些细节上的遗漏,同时也能有效帮助大家减少代码审查的工作量。
Android开发中有Lint, Find bugs, PMD等优秀静态检查工具可用,通过改进这些工具找出的问题,就能对语法的细节,规范,编程的技巧有更多直观了解。
建议最好与持续集成(CI),代码审查环境配套使用, 每次提交的代码都能自动验证是否通过了工具的代码检查,通过才允许提交。

8. 单元测试
Android单元测试,一直备受争议,主要还是原生的测试框架不够方便,每跑一次用例需要在模拟器或者真机上运行,效率太低,也不方便在CI环境下自动构建单元测试,好在有Robolectric,能帮我们解决部分问题。
单元测试的一个非常显著的优点是,当你需要修改大量代码时,尽管放心修改,只需要保证单元测试用例通过即可,无需瞻前顾后。

9. 充分自测
有一种说法:程序员最害怕的是他自己写的代码,尤其是准备在众人面前show自己的工作成果时,因此在写完代码后,需要至少跑一遍基本的场景,一些简单的异常流。在把你的工作成果提交给测试或用户前,充分自测是基本的职业素养,不要总想着让测试帮你找问题,随便用几下就Crash的东西,你好意思拿给别人吗?

10. 善用开源
并非开源的东西,质量就高,但至少关注度较高,使用人数较多,口碑较好的开源项目,质量是有一定保证的,这其中的道理很简单。即便存在一些问题,也可以通过提交反馈,不断改进。最重要的是,你自己花时间造的轮子,需要很多精力维护,而充分利用开源项目,能帮助你节省很多时间,把精力专注在最需要你关心的问题上。
从另一个方面来说,开源项目中的一些知名项目,往往是领域内的翘楚所写,学习这些高手的代码,能让你了解到好的代码应该是怎样的,培养出更灵敏的嗅觉,识别代码中的各种味道》

这篇文章对我的帮助很大,可是没有一个人评论过,我评论了,可是我知道它已经沉下去了。我希望在这里得到更多大神的帮助,我也会把我做的东西分类分享给这个平台,因为现在这个平台给了我很大的帮助。

谢谢你,纳金。
已有 1 人评分纳金币 收起 理由
艾西格亚 + 5 很给力!

总评分: 纳金币 + 5   查看全部评分

回复

使用道具 举报

1

主题

7

听众

4274

积分

中级设计师

Rank: 5Rank: 5

纳金币
462
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

发表于 2016-5-5 10:03:04 |显示全部楼层
先顶一个再说
回复

使用道具 举报

0

主题

2

听众

2465

积分

中级设计师

Rank: 5Rank: 5

纳金币
814
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

发表于 2016-5-5 10:11:02 |显示全部楼层
顶一个很好的文章!受教了!
回复

使用道具 举报

1

主题

4

听众

2286

积分

中级设计师

Rank: 5Rank: 5

纳金币
11
精华
0
发表于 2016-5-5 16:08:22 |显示全部楼层
资深程序员顶一个!
回复

使用道具 举报

0

主题

1

听众

151

积分

设计实习生

Rank: 2

纳金币
45
精华
0

最佳新人

发表于 2016-5-8 09:37:57 |显示全部楼层
技术债务这些深有同感啊!
回复

使用道具 举报

8

主题

4

听众

1237

积分

助理设计师

Rank: 4

纳金币
61
精华
0
发表于 2016-5-9 18:18:47 |显示全部楼层
国内的公司只管圈钱,不会管别的
回复

使用道具 举报

2

主题

1

听众

75

积分

设计初学者

Rank: 1

纳金币
8
精华
0
发表于 2016-5-24 12:13:50 |显示全部楼层
                                                                                    受教了!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
回复

使用道具 举报

5

主题

3

听众

2545

积分

中级设计师

Rank: 5Rank: 5

纳金币
1001
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

发表于 2016-6-12 09:17:10 |显示全部楼层
受教了!
回复

使用道具 举报

sain    

0

主题

1

听众

124

积分

设计实习生

Rank: 2

纳金币
12
精华
0
发表于 2016-6-13 10:11:05 |显示全部楼层
这个说的很好,感同身受啊,做个程序猿不容易啊
回复

使用道具 举报

0

主题

0

听众

176

积分

设计实习生

Rank: 2

纳金币
274
精华
0

最佳新人

发表于 2016-8-2 10:18:42 |显示全部楼层
非常中肯,先顶一个
回复

使用道具 举报

12 第1页 | 共2 页下一页
返回列表 发新帖
您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-3-29 20:48 , Processed in 0.097499 second(s), 33 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部