什么是项目

在有限的资源下创造一个服务

项目过程

启动
  • 可行性分析,立项(项目背景、为什么做、HR:作为技术人员你对项目有什么更长远的考虑,做技术的也要有产品的思维)
计划阶段

进度安排,资源计划,成本估计,质量保证计划,风险,实施
“如果10号要完成,完不成怎么办?- 1加班 - 2加人 - 3功能排优先级,重要的先做保证能用,后面再迭代”

实施控制阶段

开发,测试,运维,部署等等

收尾

验收,产品验收/甲方验收/经理验收

项目的产品的区别

管理方式?矩阵式(开发1组,2组…,产品1组,2组…,项目来了,开发和产品里面各抽人组成项目组)

网约车 项目架构_h5

项目开发流程

网约车 项目架构_业务层_02

人员安排

项目管理:3(1高级项目经理,2助理)
技术总监:1
运维:2
能力层:10
业务层:12
产品:10(乘客,四级,boss,h5)
安卓:4
ios:3
h5:5
测试:20(功能,自动化测试,接口测试,安全测试)
运营,市场,大客户关系:人数未知

你在项目中的职责

组长:接口定义、工程结构设计、代码review、各方沟通(产品、测试…)、核心功能开发
组员:具体开发实现、核心功能开发

关于Kick Off

把各方参与齐聚一堂,产品、运营、测试、开发…所有人叫在一起开启动会,明确项目怎么做,做什么,里程碑…

实现的需求

乘客端:

  1. 发送验证码。
    三挡验证。技术人员防止恶意发短信。
  2. 登录/注册。
  3. 查看开通区域
    高德围栏
  4. 预估价格。
  5. 下单
  6. (司机流程)
  7. 支付(分布式事务:订单,支付,积分)
  8. 评价。

司机端

  1. 发送验证码
  2. 登录,注册
  3. 查看,改变司机状态。
  4. 司机抢单(分布式锁)
  5. 订单状态变更。
  6. 发起收款

boss

BOSS(Business & Operation Support System,BOSS)指的是业务运营支撑系统。

就是一个后台管理系统,用来设置一些规则

网约车 项目架构_业务层_03

微服务设计原则

架构,模式,拆分,隔离。目标:隔离系统的变化点

具体原则:

高内聚,低耦合。(服务之间互不干扰,不要掺杂在一起)
高度自治:服务之间独立进行 开发,测试,构建,部署,运行,发布,不会干扰其他的服务,可插拔。(无状态)
以业务为中心。
弹性设计。(容错,隔离,降级)。
自动化。持续集成,持续交付。
粒度把控:没有标准,根据实际来。任何一个服务不要因为自己的开发和维护影响其他服务。
当时是分为了 api组(业务层),service组(能力层)。

AKF 拆分原则

系统怎么扛得住高并发?

网约车 项目架构_数据_04

x轴:水平复制。A A A A A。(部署了很多个A服务,前面加一个负载均衡)
y轴:把A服务单体的大功能再拆分出来
z轴:数据分片:手机,衣服,家电。搜手机只从手机数据中搜索。杭州,北京。盘古。

数据分片的Z轴对于金融类强事务一致性的业务特点,比较难处理。