该项目是一款标准且已上线的“网约车”应用。符合我国交通部对网约车监管的技术要求。通过了交通部对网约车线上和线下能力认定。项目原型曾在杭州上线运行。
项目中核心功能包括:
账户系统,订单系统,支付系统,地图引擎,派单引擎,消息系统等 网约车核心解决方案
。
项目中完全采用微服务架构设计,应用了成熟的接口安全设计方案,采用分布式锁保证了分布式环境中的数据同步,用分布式事务解决了分布式环境中的数据一致性等。
Git,Maven,Spring Boot,Spring Cloud,Redis,MySql ,RabbitMQ,ActiveMQ等。
项目架构图
好了,到这里,整个项目介绍的也差不多了,感兴趣的同学可以下载一波白皮书!
资源获取方法,老规矩啦!
识别下方二维码,关注后回复【111】
即可获取下载白皮书
资料1:【项目白皮书】
资料2:【网络预约出租汽车开发手册】
资料2是规定了网约车的系统架构,接口技术要求,系统安全要求,功能要求,数据交换接口协议等。
可以通过上方式二维码获得
说明:通过学习该项目,巩固大家原来学过的Spring Cloud微服务相关的知识,并学会如何在实际项目中落地应用。
01.项目概述 |
学习目标 | 对项目有整体认识。了解公司中项目管理的方式,及项目开发的整体流程。 |
学习内容 | 介绍项目当时的市场背景,及项目的特色。 |
演示项目demo:项目的乘客端和司机端,让大家对项目有个直观的认识。 |
介绍项目组织方式,人员配置,开发模式。 |
学习如何制定项目计划。 |
介绍项目整体的开发流程。 |
02.项目Kick Off |
学习目标 | 了解公司项目启动会。 |
学习内容 | 确定做什么? |
确定谁做?明确各方(产品,开发,测试,运维,运营,市场)责任。 |
确定里程碑,各方的联调时间点。 |
03.需求评审 |
学习目标 | 了解项目需求,知道我们课程最终要实现的需求有哪些? |
学习内容 | 需求宣讲。 |
需求确认。 |
明确各方开发边界(Android,iOS,H5,后端,运维)。 |
04.架构设计 |
学习目标 | 了解设计的原则,能应用原则指导软件产品的设计。 |
学习内容 | 微服务设计原则介绍,并落地应用。 |
介绍项目整体设计。 |
画整体架构图。 |
进行业务分层:业务层,能力层,基础层,通用层。 |
进行微服务拆分。 |
介绍微服务常用组件,在网约车中的应用。 |
05.接口设计 |
学习目标 | 学习如何进行好的接口设计。 |
学习内容 | 接口设计原则。 |
接口安全设计。接口遇到的安全问题,及解决方案。 |
接口功能设计。 |
画交互时序图。 |
06.工程设计 |
学习目标 | 学习如何组织项目整体结构,设计单个项目结构。 |
学习内容 | 阿里规约中对工程设计的约束。 |
包结构的组织。 |
依赖关系管理。 |
07.DB设计 |
学习目标 | 根据产品需求和网约车国家标准,设计数据结构。 |
学习内容 | 数据库设计原则。 |
数据库设计中的问题。 |
数据库设计小技巧。 |
阿里规约中对数据库设计的要求 |
数据库设计。 |
08.开发编码 |
学习目标 | 能手敲代码,完成功能实现。从源码级别学习,能按需进行自定义扩展。 |
业务内容 | 乘客注册/登录。单点登录,服务端无状态认证,JWT。 |
乘客预估价格。预估起点和终点的价格。 |
乘客叫车。根据起点和终点,进行叫车,下单。 |
系统派单。系统根据派单规则,进行订单派发。 |
司机听单。司机实时监控有没有乘客下单。 |
司机抢单。司机抢单,涉及分布式锁的实现。 |
行程状态变更。在订单行进中,订单状态的变更。 |
司机发起收款。司机向乘客发起收款请求。 |
乘客支付订单。乘客支付订单。涉及分布式事务的实现。 |
监管平台上报。将网约车业务信息,上报给国家。涉及消息队列的应用。 |
09.测试 |
学习目标 | 如何编写测试用例 |
学习内容 | 单元测试基本原则 |
单元测试覆盖率 |
junit单元测试用例编写。 |
常用测试工具的使用。 |
10.部署 |
学习目标 | 能熟练通过Docker和K8S,进行项目部署。实现微服务动态伸缩。 |
学习内容 | Docker部署集群服务。 |
| K8S实现微服务的弹性伸缩。 |
| 阿里内部开发和运维的恩怨情仇。 |
11.出师面试 |
学习目标 | 如何用项目进行面试。 |
学习内容 | 项目面试要点 |
真实面试场景回放 |
12. Spring Cloud Alibaba 改造 |
学习目标 | 将Spring Cloud Netflix 向 Spring Cloud Alibaba 迁移 |
学习内容 | 将 Netflix 技术栈 改造成 Alibaba技术栈 |
改造项目过程中的坑 |
13. 传统单体服务向微服务改造 |
学习目标 | 如何从传统服务改造成微服务 |
学习内容 | 传统服务向微服务改造的切入点 |
| 传统项目向微服务改造中的坑,及解决思路分析 |
| 实战落地填坑(原敏感信息如何安全无缝迁移,兼容老app接口等) |
|
|
13. 日常服务升级的思路 |
学习目标 | 新旧服务升级的常用方式 |
学习内容 | 介绍常用的发布方式:蓝绿发布、滚动发布、灰度发布 |
| 灰度发布的几种设计思路 |
| 手敲代码,带学生进行服务升级落地。 |
14. 第二代微服务Service Mesh |
学习目标 | 学习使用服务网格 |
学习内容 | 服务网格 Service Mesh 学习 |
服务网格 Service Mesh 和第一代微服务的异同 |
如何将传统微服务向 服务网格迁移 |
实战落地 服务网格 |
资料1:【项目白皮书】
资料2:【网络预约出租汽车开发手册】
资料2是规定了网约车的系统架构,接口技术要求,系统安全要求,功能要求,数据交换接口协议等。
可以通过以下方式获得
识别下方二维码,关注后回复【111】
点击“开发者技术前线”,选择“星标????”让一部分开发者看到未来推荐一个不错的网约车项目!!!啥也不说了,上图...项目介绍该项目是一款标准且已上线的“网约车”应用。符合我国交通部对网...
1:在运行后台项目之前,请保证拥有正常的开发环境
2:项目结构基于Maven 下的Spring SpringMvc Mybatis+mysql开源框架
3:配备Maven开发环境
4:导入群共享文件
5:正常运行
注:项目模块:
a:用户系统模块
b:车辆预定模块
c:接送机服务
d:拼车服务
e:心情说说
f:说说评论
g:轮播图片
提供相应的手机接口:
登录,注册,修改密码,修改用户资料,修改用户图像,发表说说...车辆预定,拼车,轮播图片,等完整的app接口.....
项目管理系统用于开发者进行学习,没有任何版权,开发者可以在源码的基础上,进行改版,可用于企业级项目!
设计模式(Design
pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。
设计模式的分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下:
Ensoleillén:
阿里 Weex 彻底凉了? 官方宣布从 Apache Incubator退休!
超级无敌霸王暴龙战士:
在番看付费美女直播,不想花钱,我这样做了!
qq_31077431:
为什么我强烈推荐你使用 IDEA,放弃 Eclipse?
风中的疯: