跳转至

两个重要阶段

  • 20-30岁。努力学习阶段。把时间花在解决问题上。一定要练就的技能:解决大多数人不能解决的问题。蛮干没有前途
  • 30-40岁。中坚力量。

三条路

  • 职场。去顶尖公司。真正的创业公司(技术体系已经形成)
  • 经历
  • 自由。

重要的标志-Leadership

  • 两个能力。
  • 高效学习能力。基础扎实,英文,前沿思考,问题和技术本质,善于思辨,独立思考
  • 解决问题的能力。犯过很多错误,能够防火而不是救火

  • 两个标志

  • 帮人解问题。你能告诉大家这件事该怎么办?
  • 被人依赖。大多人在关键决定找你咨询

学习金字塔

教授他人是吸收率最高的学习方式

学无止境

基础非常重要,一通百通。

如何让自己有竞争力

特长、兴趣、勤奋、环境

软件工程三个核心

  • 服务SLA。高可用系统;自动化运维
  • 能力和资源重用。软件模块的重用;运行环境和资源的重用
  • 过程自动化。软件生产流水线;软件运维自动化

提高性能

  • 加缓存。缓存系统:缓存分区;更新;命中
  • 负载均衡。网关系统:负载均衡;服务路由;服务发现
  • 异步调用。异步系统:消息队列;消息持久;异步事务
  • 数据镜像。数据镜像: 数据同步;读写分离;数据一致性
  • 数据分区。分区策略;数据访问层;数据一致性

稳定性

  • 服务拆分。服务治理:调用;依赖;隔离
  • 服务冗余。服务调度:弹性伸缩;故障迁移;服务发现
  • 限流降级。限流降级:异步队列;降级控制;服务熔断
  • 高可用架构。多租户系统;灾备多活;高可用服务
  • 高可用运维。全栈监控;DevOps;自动化运维

软件和能力重用

  • 业务抽象。软件抽象:模型抽象;流程抽象;数据抽象;
  • 单一简化。简化系统:KISS原则;单一职责;高内聚
  • 解耦合。微服务化;标准协议;反转控制
  • 平台化。PaaS平台:中间件;中台系统;API 接口
  • 标准化。系统标准:协议方法;规则约定;取舍原则

状态/数据调度

Google IO 《Transaction Across DataCenter》

服务划分原则

《领域驱动设计》限界上下文。有明显边界限定的特定职责,大家不会超过这个边界干涉对方。

  • 单一职责。相同原因变化的东西放到一起,因为不同原因变化的分离开
  • 自治性。一个微服务可以无依赖地对外提供服务
  • 隔离关键和重要业务。关键和重要业务和不重要的隔离,有利用系统稳定性
  • 事务和数据一致性边界。把需要完整事务或者有数据一致性耦合的功能据合在一起
  • 隔离变化。把一些高度变化不可控的拆分出去,保证关键业务稳定性
  • 与组织结构相匹配。服务边界和组织结构应该是匹配的
  • 按团队大小。8-16 人团队维护一个系统

14 条 Leadership Principle

  • 客户第一
  • 主人翁精神
  • 创新和简化
  • 做正确的决定
  • 好奇求知
  • 招最好的人
  • 坚持高标准
  • 富有大局观
  • 行动派
  • 节俭
  • 赢得他人信任
  • 关注细节
  • 敢于谏言,服从大局
  • 结果驱动

更多企业文化

  • 信条文化(Tenets Culture)

  • 工程师文化 - 自动化和简化

  • 至少减少 20% 支持性工作和人员
  • 小团队全栈工程师文化
  • Principle Talk
  • 强大的员工调查表
  • 大量自动化工具

  • 产品文化

  • Happy Case
  • Working Backwards
  • Web Service Everything
  • T-Shirt Size Estimation

  • 员工内部转岗文化

Amazon 企业文化

  • Eat your own Dog Food
  • Celebrate the Simplification and Automation
  • Operational Excellence - No ” Kitchen Sink” Approach
  • Tenets Culture - Every team, product, department has the its tenets
  • Focus on SLA - define the key metrics of each services
  • Working Backwards
  • Write 3 Docs - Press Release, User Manual, FAQ
  • NO pictures or diagrams, limited to two pages.

技术研发

  • 全栈文化。技术团队按照产品功能分工(开发做所有事,包括测试和运维)
  • 单分支开发
  • 服务化和运维优先
  • 自动化和简化
  • On Call 文化
  • 每年工作计划一半以上是技术需求