成为优秀程序员的十个Tips

标签: 业界观察 优秀程序员 | 发表时间:2015-08-11 14:10 | 作者:techug
出处:http://www.vaikan.com

理解技术债务

技术债务就像信用卡一样,会有很高的利息率,时间越长,修复所花的代价就越大,程序员对这个要有深刻的认识。同时团队应该培养一种保证设计质量的文化,应当鼓励重构、同时也应当鼓励其它有关代码质量的实践,在开发时间中应当专门抽出一部分以解决技术债务。如果没有合适的照料,代码会变得越来越复杂难懂,最后没人想碰它。

保持对原理的好奇心

不仅知道怎么用,还知道是什么原因。比如你做 Android,可以了解一下他的事件分发机制是什么样的,它的 Measure/Layout 是怎么 work 的,有时间读一读它的源代码,看看他的原生控件是怎么实现的。学 iOS,了解一下它的内存管理,autorelease 是怎么工作的,runtime 是怎么工作的,runloop 的原理是什么。做 Server 开发,可以了解一下 Nginx 为什么性能好,Redis 的工作原理如何,有时间也可以读读其源代码。 做前端,也可以读一读 Angular 或 React 的源代码。

专注

程序员的工作效率可以相差很大,其中区别很大的一点就是是否专注,就像线程切换一样,恢复上下文有很高的代价。建议合理安排好自己的时间,尽量在上午/下午留大块的专注时间来做设计和编程,关掉 IM/邮件/微信,把面试/会议等安排在大块时间之外,同时也建议可以尝试一下番茄工作法。

同理心

写代码时要有同理心,考虑一个有少量上下文甚至完全不了解上下文的另外一个程序员他会怎么样读这个代码,这样自然就知道怎么写出可读性好的代码,该怎么命名,什么地方该加注释。 考虑以后维护代码的这个人就是你自己,这样在偷懒做一些临时的 workaround 时就会三思。 交付给测试人员时也要有同理心,有没有做基本的质量保证,有没有跟测试沟通改动可能的影响范围,让测试人员可以更有针对性的测试。

谋定而后动

好的程序员不是拿到需求就开始写代码,而是先考虑清楚。 需求是否合理,是否能解决用户的问题,逻辑上是否有模糊或不完备的地方。 然后考虑设计的问题,流程图是什么样的,类图是什么样的,接口是什么样的,对架构和模块的影响是什么样的,考虑清楚后才开始写代码。

架构思维/全局思维

理解整体架构是什么样的,你开发的模块在架构中的层次,新增的改动会不会对架构有污染,是否需要调整架构,所开发的模块可否抽象成通用模块或者可否复用已有模块,或则重构已有模块达到可复用目的。

设计语言

掌握适当的设计语言,比如 Plantuml 或 Visio,或者是一些设计模式,知道如何以简单清晰的方式去跟其他程序员描述和沟通你的设计和架构,大家理解一致了,才能更有效率的合作。

追求代码质量

代码质量是程序员的立足之本,在这一点上,要有精益求精的“匠心”。 我看到很多普通程序员做了不少项目后水平提升仍然不明显,无它,对代码质量没有精益求精的精神。 代码规范,健壮性,可读性,可维护性,无重复代码等等,都要精益求精。

代码审查

代码审查是保证代码和工程质量的最有效手段,优秀的公司(比如 Facebook,Google)和优秀的团队(比如我们,欢迎关注团队公众号 mtydev)都非常重视代码审查。如果你还不能认识到它的重要性,可以查看这里。

自动化

好的程序员都应该有自动化思维和工具思维,都应该会一门脚本语言,有自己的工具库。我们应该通过工具及自动化来改善我们的工作效率,以及避免一些人为的失误。

相关 [程序员 tips] 推荐:

成为优秀程序员的十个Tips

- - 外刊IT评论
技术债务就像信用卡一样,会有很高的利息率,时间越长,修复所花的代价就越大,程序员对这个要有深刻的认识. 同时团队应该培养一种保证设计质量的文化,应当鼓励重构、同时也应当鼓励其它有关代码质量的实践,在开发时间中应当专门抽出一部分以解决技术债务. 如果没有合适的照料,代码会变得越来越复杂难懂,最后没人想碰它.

hive 优化 tips

- - CSDN博客推荐文章
一、     Hive join优化. 也可以显示声明进行map join:特别适用于小表join大表的时候,SELECT /*+ MAPJOIN(b) */ a.key, a.value FROM a join b on a.key = b.key. 2.     注意带表分区的join, 如:.

mysql tips两则

- - jackyrong
mysql tips两则,都可以用来查看当前执行的语句. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

Android开发Tips

- - CSDN博客推荐文章
欢迎Follow我的 GitHub, 关注我的 CSDN.. 介绍一些, 在Android开发中, 会经常使用的小知识点.. submodule与git可以保持实时同步. 导入, 路径多于一个, 前面不添加冒号(:).. 使用PackageManager.. // 检查App是否安装 private boolean appInstalledOrNot(String uri) {.

HTML 5中的tips两则

- - jackyrong
1 input type中的required属性,支持正则表达式,比如.  

数据库的优化tips

- - CSDN博客数据库推荐文章
数据库   TIPS::. 1、用于记录或者是数据分析的表创建时::使用Id作为主键,1,2,3...表示消息条数,用户账号id用于做外键,一个用户对应唯一个accountId.                                     一个accountId可以对应多条数据;. 2、创建索引::    例如需要根据注册版本号和注册游戏ID来查询另外一些字段的时候,就可以根据版本号和游戏ID来创建索引::相当于就是根据查询条件来建索引;.

tsung: 好文: PHP performance tips - Google Webmaster

- 小汐 - Planet DebianTW
Google 提供的 PHP 效能調校(Optimize performance)的幾點原則, 詳細可見此文:. 原文: Let's make the web faster - PHP performance tips. 作者: Eric Higgins, Google Webmaster. 此文內容很短, 講得都是大方向, 主題內容如下:.

OSX Lion Tips- 調校 Finder小技巧

- Jona - ApplePlan
作為整個 OSX靈魂中樞的 Finder, 身為使用者的你我當然希望他能夠協助我們將整個系統的檔案架構管理的有條有理. 剛從 OSX 10.6 Snow Leopard升級到 Lion的朋友們, 可能對於將 “Less is more"精神發揮到極致的 OSX Lion Finder有些不習慣. 今天艾瑞克探員就要和大家分享幾個調整 Finder的小技巧!.

Tips: 开启 Ubuntu 软件同步功能

- Quantum - Wow! Ubuntu
Ubuntu 11.10 Oneiric Ocelot 已于昨天正式发布,在之前的文章中我们提到过,该版本中的 Ubuntu Software Center 采用了全新的界面,并提供了一个非常实用的功能,把 OneConf 整合进了去,这样你就可以在两台电脑之间同步安装过的软件. OneConf 的原理是这样的,系统会自动记录安装过的软件信息并存储到你的 Ubuntu One 空间里面,当其它电脑需要的时候会从你的 Ubuntu One 里获取这些信息并同步安装过的软件,详细介绍见 Ubuntu Wiki.

40个良好用户界面Tips

- - 设计达人
一个良好的用户界面应具有高转换率,并且易于使用. 但要用户体验良好并不容易做到,下面我们整理了40个良好用户界面Tips,希望能对你有帮助. 1 尽量使用单列而不是多列布局. 单列布局能够让对全局有更好的掌控. 而多列而已则会有分散用户注意力的风险使你的主旨无法很好表达. 最好的做法是用一个有逻辑的叙述来引导用户并且在文末给出你的操作按钮.