文章末尾给大家留下了大量的福利

前言

大家都知道我们新入职一家公司,经常会面临下面一些场景:

  • 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习?
  • 被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手?
  • 同事离职或转岗,需要把系统交接给你,怎么去接? 内心 os:这是一口锅吗?

这样的场景多了,就需要去梳理常见问题以及应对方法,方便后续遇到类似场景可以快速应对。本文总结熟悉系统主要分为:业务学习、技术学习。每部分会梳理一些在学习过程中需要解答的问题,这些问题随着经验的积累需要逐步补充完善。

一、业务学习

业务学习就是从业务角度去学习系统,我们需要了解系统的客户是谁、使用人是谁、带来了什么价值,系统提供了哪些功能等。不清楚业务,就等于不知道系统在干什么。技术是为业务落地而服务,清楚了业务才知道怎样用技术更好地服务业务,所以业务学习是熟悉一个系统的首要任务。这块主要的学习方式有跟产品、运营、开发沟通,学习产品设计文档文档、PRD、自己使用系统,还有一些常见图,如产品功能架构图、业务流程图、功能树,用例图等。

常见问题:

  • 系统所在行业的情况是怎样?
  • 系统的目标用户是谁?比如是给公司高层做决策用?给运营或客服用?还是互联网用户用?
  • 平均有多少人在使用?高峰期有多少人在用?
  • 系统有什么业务价值?有哪些指标可以衡量系统业务价值?
  • 系统有哪些功能模块?
  • 系统有哪些领域概念?梳理下系统的领域模型;
  • 系统的关键业务流程有哪些?关键业务流程是怎样?
  • 系统的非功能性需求有哪些?如性能、质量、扩展性、安全性等;
  • 系统未来的发展规划是怎样?

二、技术学习

技术学习主要学习系统的架构、如何实现、系统的运维等。描述一个系统的架构有五视图方法论。

五视图分别是:

  • 逻辑架构
  • 开发架构
  • 运行架构
  • 物理架构
  • 数据架构

2.1、逻辑架构

逻辑架构着重考虑功能需求,系统应当向用户提供什么样的服务,关注点主要是行为或职责的划分。常用表达图形,静态图有包图、类图、对象图;动态图有序列图、协作图、状态图、活动图。逻辑架构的核心设计任务是模块划分、接口定义、领域模型细化。

常见问题:

  • 有哪些子系统或模块?系统之间是什么样的关系?
  • 对外上下游接口有哪些?对接人是谁?
  • 关键业务流程怎么实现的?用类图、序列图等方式表达出来。

2.2、开发架构

开发架构关主要关注系统源代码、第三方 SDK、使用的框架、中间件、工具包。

常见问题:

  • 代码在哪?
  • 包怎么划分的?怎么分层?如 mvc、controller-service-dao;
  • 用了什么框架,如 ssh、dubbo;
  • 用了哪些工具包?如 apache commons、guava;
  • 用了哪些中间件?如 metaq、tair、schedulerX、Diamond;
  • 依赖哪些平台?如权限平台、流程引擎等。

2.3、运行架构

运行架构的着重考虑运行期质量属性,关注点是系统的并发、同步、通信等问题,这势必涉及到进程、线程、对象等运行时概念,以及相关的并发、同步、通信等。

常见问题:

  • 系统能支撑多少 qps?峰值 qps 多少?
  • 与上下游系统怎么交互的?rpc?http?同步还是异步?

2.4、物理架构

物理架构的设计着重考虑安装和部署需求,关注点是目标程序及其依赖的运行库和系统软件最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性、持续可用性、性能和安全性等要求。

常见问题:

  • 系统如何发布部署?有哪些部署环境?
  • 系统有多少台机器?
  • 系统部署怎么部署的?关注接入层,部署方式,如集群部署、分布式部署等
  • 有没有容器化?
  • 有没有多机房部署?

2.5、数据架构

数据架构的设计着重考虑数据需求,关注点是持久化数据的存储方案,不仅包括实体及实体关系数据存储格式,还可能包括数据传递、数据复制、数据同步等策略。

常见问题:

  • 数据存储在哪?用了什么数据库,如 oracle、mysql;
  • 梳理 E-R 图;
  • 数据量有多少?是否有分库分表?
  • 用了哪些 nosql 库?
  • 有哪些数据同步任务?
  • 大数据框架的使用情况如何?

2.6、系统运维

系统运维重点关注什么时候会出问题,出了问题怎么解决。

常见问题:

  • 什么时间容易出问题?比如电商 双11,对系统的压力很大,这时候很容易出问题;
  • 对关键功能是否有监控?需要看系统有配置了哪些报警项,监控了哪些方面;
  • 出了问题怎么解决?日志在哪?是否有全链路跟踪?是否有一些紧急操作,比如开关配置、降级、限流配置;
  • 系统有哪些坑?找开发同学回顾历史问题,以免踩坑。通过同事总结的 case,或者与负责的产品、运营、技术与了解。系统总会有一些坑,需要把这些坑填上。历史代码经过多次迭代总会导致复杂度高(分支、嵌套、循环很多),存在设计漏洞,性能隐患等,很难维护,这些就需要我们去重构了。记住有一句话:填的坑越大,能力越大;
  • 运营、客服反馈的常见问题有哪些?

总结

今天的文章就到这里了,希望这篇文章能够让小伙伴们更好的融入到新的公司哟,在新的公司顺风顺水哟,喜欢的小伙伴记得点赞收藏评论加关注哟。

下面是我给大家留下的一些福利,有需要的小伙伴可以私信关键字“资料”获取哟。

项目实战

app项目,银行项目,医药项目,电商,金融

大型电商项目

全套软件测试自动化测试教学视频

300G教程资料下载【视频教程+PPT+项目源码】

全套软件测试自动化测试大厂面经

python自动化测试++全套模板+性能测试

入职新公司,如何快速熟悉一个系统相关推荐

  1. 测试员入职新公司如何快速熟悉新业务?

    身处职场,学习新业务在所难免,尤其是测试人员,具备良好的业务知识是我们做好质量保障的前提,不管是职场「新人」还是「老人」,快速熟悉业务的能力都是不可或缺的,这是我们安身立命的根本. 但,这样的能力并不 ...

  2. 分享:新入职时,如何快速熟悉一个项目的代码

    一.总体思路 昨晚是深夜撰文的阿菌,希望通过这篇文章和大家分享一下,初入职场时,如何才能快速地熟悉一个项目的代码. 说实话,感觉自己去年入职时上手项目的速度是比较慢的,可能是没有一些系统的方法论参考吧 ...

  3. 入职新公司,如何快速凸显个人价值

    如果你初入职场,你是否对职场充满好奇与期待:如果你刚刚跳槽,你是否迫切地希望展示自己的才华!当你进入新公司之后,如何能够快速上手工作.融入团队,展现能力,凸显价值? 如果你对新职场存有困惑,以下八个方 ...

  4. 刚入职新公司上班需要注意的点有哪些

    新人刚入职,对一切还不熟悉.又怕犯错又怕别人觉得你太冷漠.不知道自己该怎么做,手足无措.那么刚入职新公司上班需要注意的点有哪些?博士后招聘整理了如下的内容供大家做参考. 1.不要试着既快速又完美地融入 ...

  5. 入职新公司-如何更快的适应节奏(第二周要干活)

    刚入职新公司的第一周应该是比较紧张的,因为第一周算是我们熟悉的时间,到第二周有可能就要开始做项目了,甚至有的节奏快的公司也就让你熟悉个两三天后就开始干活了.那么在这短短的几天的时间里,我们应该重点熟悉 ...

  6. 刚入职新公司做一些什么贡献_如果您有全职工作,如何为Kubernetes做贡献

    刚入职新公司做一些什么贡献 当我在IBM产品安全事件响应团队工作时,我于2018年10月开始为Kubernetes (K8s)做出贡献. 我被分布式系统所吸引,但在日常工作中无法与它们合作,因此我的导 ...

  7. 入职新公司第一周的感受

    0.刚参加工作的实习生 1.经过n轮面试,终于进入了大厂 2.入职新公司第一周的感受 3.勤劳的我被工作干扰师打断了 4.摸鱼大王 5.产品经理低头是在想需求吗? 6.好家伙我还以为是作秀,原来是现实 ...

  8. 一年前被恶意裁员,最近入职新公司背调到上家HR,HR竟主动说我坏话,我可以起诉他恶意诽谤吗?...

    背调被上家公司说坏话并不少见,但还没等人家背调公司开口问,就主动说候选人坏话,这样的HR可不多见! 一位网友就遭遇了这样的奇葩: 一年前上家恶意裁员!跟HR僵持过,最近入职新公司需要背调,背调到上家, ...

  9. 入职新公司,如何快速上手公司业务?

    最近很多小伙伴入职新公司,问我入职好如何快速上手自己负责的产品,这里说一下自己的看法: 1.了解一下公司的业务逻辑 可以通过请教别人的方式,了解一下公司的业务,请教的时候可以给别人买一杯咖啡啥的,谁都 ...

最新文章

  1. SIFT特征及特征匹配:SIFT and feature matching
  2. 十五个实用的mysql语句分享_分享MySQL中实用的几种SQL语句
  3. yum安装最新的 LNMP
  4. [2021.4.7多校省选模拟33]A,B,C
  5. 知识图谱应用实战案例100篇(二)-以知识图谱的方式打开预训练语言模型
  6. 一、创建Assetbundle 在unity3d开发的游戏中,无论模型,音频,还是图片等,我们都做成Prefab,然后打包成Assetbundle,方便我们后面的使用,来达到资源的更新。
  7. C语言注释与C++注释的相互转换
  8. java删除csv一行_如何删除两个CSV之间的不常见行?
  9. P2Psim分析笔记(5)-EventGenerator and Observer
  10. asp.net core系列 40 Web 应用MVC 介绍与详细示例
  11. 如何用while循环输出十行十列变色★☆
  12. 搭上信息化火箭,文档管理也要跟上潮流
  13. Vue系列:通过vue-router如何传递参数
  14. serlvet配置xml和@WebServlet
  15. SpringBoot番外篇-微服务架构【1.起源与定义】
  16. 警惕!这5种“脸色”在暗示你这些健康问题!
  17. [No00002D] “大学生还不如农民工”背后的“身份教育”困境
  18. 计算机软件专业搞腾讯地图,腾讯地图电脑离线版
  19. 用Python弹奏周董的《菊花台》是什么效果
  20. java查找图片_用java查找图片中的图片?

热门文章

  1. 无传感器磁场定向控制(FOC)风机控制原理
  2. mobiscroll 三级联动DIV 数据库
  3. Git配置生成密钥连接Github
  4. vulnhub靶机:DMV
  5. 二维矩阵保存为灰度图像
  6. android开发游记:APP内部调启百度、高德、web地图导航
  7. 欧空局10米土地利用数据下载教程
  8. 全方位揭秘!大数据从0到1的完美落地之Hive分区
  9. pyqt5在图像上绘制矩形框
  10. yii框架下的后台管理员登录操作