架构|吴涛:互联网产品研发流程概论(下)

本文由36氪企服点评专家团吴涛原创。
架构|吴涛:互联网产品研发流程概论(下)
文章插图
36氪企服点评专家团——吴涛
————正文————
本文接上篇:【专家干货】互联网产品研发流程概论(上)
5、架构设计架构设计是架构师对各个子系统关系的抽象模型,用于指导大型系统的开发和运维。
架构设计主要包括三项工作:系统架构设计、软件架构设计、网络架构设计三个部分。
系统架构设计一般都会采用MVC(Model-View-Controller)模型,将业务逻辑模型、软件界面、控制器逻辑层进行分层处理,然后通过控制器逻辑层确保业务逻辑层和软件界面层的同步。MVC模型的好处是在优化界面及用户交互的同时,无需重新编写业务逻辑。同时也有助于管理复杂的应用程序,可以在不依赖业务逻辑的情况下专注于视图设计,不同开发人员可以同时开发界面、控制器逻辑和业务逻辑,同时也让测试变得更加容易。
(1)系统架构设计如果整个系统研发是从零开始的,架构设计则需要从概况图开始梳理,然后再补充各个模块的架构图。这部分一般由首席架构师牵头,属于整个产品技术架构的总纲。
架构|吴涛:互联网产品研发流程概论(下)
文章插图
支付宝平台系统架构概况图
一般而言,子系统名称都会与产品概念保持一致。子系统不论是应用前台还是后台,通过公共服务层、业务逻辑层、基础业务逻辑层关联到一起。这种对象化的架构设计方法,会让整个团队使用同一种语言在沟通, 相互理解起来更容易,有利于提高协作效率 。
架构|吴涛:互联网产品研发流程概论(下)
文章插图
支付宝财会系统架构图
(2)软件架构设计软件架构设计一般采用分层架构设计模型。
软件首先分为两个大层次:前端和后台。前端应用负责提供与用户交互的软件,分成Web应用,PC客户端应用、移动APP应用等场景;后台负责实现所有业务相关的操作和服务,分成接口层、业务逻辑层、基础逻辑层。
软件架构设计时,需要主要做到以下几点:支持模块化、高内聚、低耦合、可伸缩性,同时也要防止过度设计。已上线软件如果要新增某个功能,则需要针对该功能进行软件架构设计,并最终形成软件架构设计图。
架构|吴涛:互联网产品研发流程概论(下)
文章插图
腾讯视频邮件推荐功能软件架构设计图
然后针对这个软件架构图进行细化,先明确系统涉及的所有基础逻辑层模块(对象),以及该模块的输入和输出项,并明确模块内部的基本处理逻辑。这些模块有的有可能已经存在,则无需再开发,单独标注出来即可;还没有开发的模块,则可以交给软件项目经理指派给工程师开发。
架构|吴涛:互联网产品研发流程概论(下)
文章插图
所有基础逻辑层模块
然后明确界面上可以直接调用的各个业务逻辑层模块(对象)名称,以及对应接口、属性、方法。
架构|吴涛:互联网产品研发流程概论(下)
文章插图
所有基础逻辑层模块
对于还未开发的接口,如果涉及到数据调用,则需要梳理相关的数据结构,并确定算法。
架构|吴涛:互联网产品研发流程概论(下)
文章插图
所有基础逻辑层模块
上面介绍的只是最基础的软件架构设计流程,为了保证软件的柔性可用,经常还会RPC服务组件(让网络分布式应用开发变得更容易)、消息中间件(将模块之间的交互异步化)等方案。
(3)网络架构设计A)运维架构