微博整理—工作篇
工作方法
- 需求分析、技术方案设计,都是为了暴露问题,并将这些问题纳入计划,提升项目的整体效率。
- 两地协作,无法当面沟通而效率低。集中时间的电话沟通最高效,同时使用邮件来跟踪。
- 分享,需要从直观到抽象,从表面到本质,先抛出实例,再深入理论。
- 彻底地消化需求,做好详细的技术方案,按功能点排期,尽可能一切有数后排期。
- 项目中感到压力大,有害怕心理,主要来自于对需求没有深入消化,没细化技术方案。
- 积极地认识 Bug,将 Bug 作为工作方法。
- 积极地认识 排期,为了项目更加可控和高效,积极地沟通和跟踪事情进展。
- 永远不要评估别人工作的复杂度与时间消耗,即使你比他更懂。这是尊重
- 技术方案要进行可行性分析,复杂度分析,可维护性分析,性能分析,安全性分析。
- 做事情要有始有终。背景和目的,预期目标,细分计划,经验与教训,实际效果如何。
- 如何做好项目管理,评估时要预留Buffer,明确什么人什么时候进行什么任务,何时开始合适结束。
- 刚开始做开发时的一些问题:
- 不做技术方案设计,没有方案的可行性和复杂度评估,细节更是没有了;
- 程序的可维护性和可扩展性不好,这是由于对业务理解浅,开发经验少,考虑得就没有预见性;
- 对知识本身不熟悉,用什么技术解决,怎么解决的基本思路不清楚
优秀代码
- 全局和局部的分离,是最重要的关注分离实践。专注于当前任务,当前 scope.
- 好代码要精准地表达代码意图。遵循一个变量干一件事情,尽可能利用代码本身来表意。
- 模块化开发,可以厘清模块间的依赖关系,减少关注点,专注于当前任务。
- API设计应遵循单一职责。复合功能的API则应该通过外观模式。
- API设计要考虑调用方的使用场景,降低调用方的出错概率,以及向前兼容。
- 严格定义API的输入输出,对于边界场景明确处理方式,对于异常场景应抛出异常。
- 封装,背后是隔离了接口和实现,接口告诉调用方程序干什么,实现告诉计算机怎么干。
- 分层架构,背后是关注隔离,每一层所考虑的问题层次是不同的,每一层都应该是可替换的。
- 适度设计与迭代重构,是一对好基友。
杂项
- 你要让他了解,他要加入的团队,同事们都大概什么情况,喜欢怎样的做事方式,简单/自在/大牛多/沟通效率高 都是加分项。
- 坚持一个月读2本书,一年就有24本。事从小做起,不定大目标,才能达成大目标。
- 集中在一两件事情上做出成绩和亮点。通过技术的力量将业务体验做到极致。
- 多跟同事、上级沟通,深入地沟通。
- 要保持积极主动,背后的关键是保持源动力。
- 要对业务\自己带的人\自己负责。
- 期望值管理,既是管理自己对自己的期望,也是管理他人对自己的期望。
- 一件事是服务于长期目标,还是应付性质。与协作方共同约定季度计划,目标共享。
- 申请材料是工程师技术能力证明的重要书面材料,包括但不限于调研/设计文档、技术文章、会议纪要、程序代码等。以业务需求为主要驱动力,其涉及到的问题往往来自于复杂的业务逻辑和功能的快速上线,其难点主要来自于对产品的理解把握和需求的快速响应能力。