成为优秀程序员的十个Tips

理解技术债务

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

保持对原理的好奇心

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

阅读全文

如何做客户端功能模块的设计

最近大家在对通讯录相关功能进行重构, 我想拿这个做个例子跟大家讲一下如何做具体的某个功能模块设计(不了解上下文的,可以参考微信的通讯录以及聊天功能)。

理解功能需求

这个是做好设计的第一步。需要完整的理解功能需求, 包括功能的主要跳转流程,有哪些相关功能模块,有哪些类似功能,异常情况考虑是否完备等等。

拿通讯录来说,会涉及到如下模块:

  • 通讯录列表
  • 群组列表
  • 商会通讯录 (类似于通讯录的一个界面)
  • 联系人选择 (发起群聊,从联系人添加)
  • 最近聊天列表

等等。

阅读全文

Code Review最佳实践

关于Code Review的重要性,我相信好的工程师都能认识到。 参考 让Code Review称为一种习惯从Code Review谈如何做技术

同时引用一下有人对Google Code Review的描述:

The biggest thing that makes Google’s code so good is simple: code review. At Google, no code, for any product, for any project, gets checked in until it gets a positive review.

这里主要Summary 一下 如何来做Code Review. 主要参考 Code Review Best Practices,同时加上了一些自己的理解。

阅读全文

通用的iOS/Android用户行为跟踪机制

用户行为跟踪和分析对于改善产品非常重要,目前也有很多tracking服务, 比如国外的Google Analytics, Flurry 和国内的友盟等等。

让大家困扰的一个问题是,为了track用户的行为,我们需要到处”埋点”,非常不易于维护,而且容易遗漏。这里介绍一个相对通用的方式,可以在iOS和Android应用中进行用户行为跟踪。

阅读全文

本站总访问量