阿里妹导读:面对一个完全陌生的系统,如何快速的熟悉并上手?本文将从三个方面进行总结,提供一个系统的方法,同时也可以用来review已有的系统,查漏补缺。
文末福利:附Java学习大全。
前言
开发人员经常会面临下面一些场景:
新人入职,需要学习已有系统,作为landing的一部分,如何学习?被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手?同事离职或转岗,需要把系统交接给你,怎么去接?内心os:这是一口锅吗?
这样的场景多了,就需要去梳理常见问题以及应对方法,方便后续遇到类似场景可以快速应对。本文总结熟悉系统主要分三部分:业务学习、技术学习、实战。每部分会梳理一些在学习过程中需要解答的问题,这些问题随着经验的积累需要逐步补充完善。
业务学习
业务学习就是从业务角度去学习系统,我们需要了解系统的客户是谁、使用人是谁、带来了什么价值,系统提供了哪些功能等。不清楚业务,就等于不知道系统在干什么。技术是为业务落地而服务,清楚了业务才知道怎样用技术更好地服务业务,所以业务学习是熟悉一个系统的首要任务。这块主要的学习方式有跟产品、运营、开发沟通,学习产品设计文档文档、PRD、自己使用系统,还有一些常见图,如产品功能架构图、业务流程图、功能树,用例图等。
常见问题:
系统所在行业的情况是怎样?系统的目标用户是谁?比如是给公司高层做决策用?给运营或客服用?还是互联网用户用?平均有多少人在使用?高峰期多有少人在用?系统有什么业务价值?有哪些指标可以衡量系统业务价值?系统有哪些功能模块?系统有哪些领域概念?梳理下系统的领域模型。系统的关键业务流程有哪些?关键业务流程是怎样?系统的非功能性需求有哪些?如性能、质量、扩展性、安全性等。系统未来的发展规划是怎样?
技术学习
技术学习主要学习系统的架构、如何实现、系统的运维等。描述一个系统的架构有五视图方法论,五视图分别是:逻辑架构、开发架构、运行架构、物理架构、数据架构。
逻辑架构
逻辑架构着重考虑功能需求,系统应当向用户提供什么样的服务,