微博整理—工作篇

工作方法

  • 需求分析、技术方案设计,都是为了暴露问题,并将这些问题纳入计划,提升项目的整体效率。
  • 两地协作,无法当面沟通而效率低。集中时间的电话沟通最高效,同时使用邮件来跟踪。
  • 分享,需要从直观到抽象,从表面到本质,先抛出实例,再深入理论。
  • 彻底地消化需求,做好详细的技术方案,按功能点排期,尽可能一切有数后排期。
  • 项目中感到压力大,有害怕心理,主要来自于对需求没有深入消化,没细化技术方案。
  • 积极地认识 Bug,将 Bug 作为工作方法。
  • 积极地认识 排期,为了项目更加可控和高效,积极地沟通和跟踪事情进展。
  • 永远不要评估别人工作的复杂度与时间消耗,即使你比他更懂。这是尊重
  • 技术方案要进行可行性分析,复杂度分析,可维护性分析,性能分析,安全性分析。
  • 做事情要有始有终。背景和目的,预期目标,细分计划,经验与教训,实际效果如何。
  • 如何做好项目管理,评估时要预留Buffer,明确什么人什么时候进行什么任务,何时开始合适结束。
  • 刚开始做开发时的一些问题:
    • 不做技术方案设计,没有方案的可行性和复杂度评估,细节更是没有了;
    • 程序的可维护性和可扩展性不好,这是由于对业务理解浅,开发经验少,考虑得就没有预见性;
    • 对知识本身不熟悉,用什么技术解决,怎么解决的基本思路不清楚

优秀代码

  • 全局和局部的分离,是最重要的关注分离实践。专注于当前任务,当前 scope.
  • 好代码要精准地表达代码意图。遵循一个变量干一件事情,尽可能利用代码本身来表意。
  • 模块化开发,可以厘清模块间的依赖关系,减少关注点,专注于当前任务。
  • API设计应遵循单一职责。复合功能的API则应该通过外观模式。
  • API设计要考虑调用方的使用场景,降低调用方的出错概率,以及向前兼容。
  • 严格定义API的输入输出,对于边界场景明确处理方式,对于异常场景应抛出异常。
  • 封装,背后是隔离了接口和实现,接口告诉调用方程序干什么,实现告诉计算机怎么干。
  • 分层架构,背后是关注隔离,每一层所考虑的问题层次是不同的,每一层都应该是可替换的。
  • 适度设计与迭代重构,是一对好基友。

杂项

  • 你要让他了解,他要加入的团队,同事们都大概什么情况,喜欢怎样的做事方式,简单/自在/大牛多/沟通效率高 都是加分项。
  • 坚持一个月读2本书,一年就有24本。事从小做起,不定大目标,才能达成大目标
  • 集中在一两件事情上做出成绩和亮点。通过技术的力量将业务体验做到极致。
  • 多跟同事、上级沟通,深入地沟通。
  • 要保持积极主动,背后的关键是保持源动力。
  • 要对业务\自己带的人\自己负责。
  • 期望值管理,既是管理自己对自己的期望,也是管理他人对自己的期望。
  • 一件事是服务于长期目标,还是应付性质。与协作方共同约定季度计划,目标共享。
  • 申请材料是工程师技术能力证明的重要书面材料,包括但不限于调研/设计文档、技术文章、会议纪要、程序代码等。以业务需求为主要驱动力,其涉及到的问题往往来自于复杂的业务逻辑和功能的快速上线,其难点主要来自于对产品的理解把握和需求的快速响应能力。