目录
一、关于合生元的面试题的架构分析的问题
1. 陈述两种方案的优劣
- 方案一缺点:订单,支付其实属于通用逻辑,业务冗余,需要维护多份,不利用后续扩展。
- 方案一缺点:系统都独立的,需要不同人员维护,人员成本增加,服务器成本也会增加
- 方案一优点:系统都独立的,并不会因为别的系统的宕机而受到影响和波及。互相不影响。
- 方案二优点:订单,支付其实属于通用逻辑,解决冗余的问题,集中统一管理,方便后续的修改和扩展。
- 方案二优点:节约公司的人员成本,和相对来说节约的服务器的运行成本和资源。
- 方案二缺点:系统全部的压力全部集中古来,并发压力很大,要求系统的容错性,集群部署等问题都随之增大
- 方案二缺点:对技术人员的要求也越来越高。学习也很高
2. 在那些条件下,会选择哪一个方案
- 项目如果在初期的或者系统相对独立的情况下,可以考虑使用第一种方案,为什么呢?
-
- 因为项目在初期一定去追求速度和周期,以及节约公司的预算和成本
- 项目的架构一定是慢慢随着公司的业务的发展和不断演进的过程,而不是一蹴而就的过程
- 因为有方案一项目的架构,可以得到很多的技术的沉淀以及业务的得以实现,从技术架构的层面来分析,为后续架构封装和抽离成为的核心基础。
- 也可以快速的推进公司的各个业务。
- 方案二:一般建议公司的业务已经很稳定,或者要追求更高的并发或服务后续公司业务的扩张和进展,这个可以考虑使用方案二
-
- 达到业务的集中集中化处理
- 形成公共业务模块,减少重复造轮子的过程。
- 也可以节约很多的人力成本
3. 你倾向那一种?
根据公司业务在那个阶段,具体去选择那个方案,但是成熟的架构师他一定会有完整的架构解决方案,
而不是等着问题出现以后在去思考。而是提前预判和以及公司团队人员的建设以及技能提升都会有一个整体的解决方案。
4. 如果要实施方案二的,准备步骤和流程
- 进行整体架构的产品白皮书的说明文档。有一个整体的架构逻辑
- 要组织和协调部门召开产品的架构调整会议,然后进行架构的说明和规范以及每个系统的需求分析
- 同时要召开是否要招聘相关开发人员进行人才的补充
- 确定的整体架构中会出现的问题和难点,以及如何公开,如何设计,牵涉技术栈是什么等都要进行细化。
- 然后开始进行整体架构的规范文档,需求文档,表设计文档,框架设计,测试文档等,项目进度管理、版本控制、安全性、服务器配置文档等等
- 协调和组织开发人员进行业务的确认和开发工作
- 产品经理接入管理项目进度,产品的沟通和确认对接,UI的设计和确认,前端的设计和确认,
- 等等