0

0

新接手一个业务系统,我是这么熟悉的

王林

王林

发布时间:2024-02-19 13:45:02

|

492人浏览过

|

来源于每日运维

转载

新接手一个业务系统,我是这么熟悉的

故事

小猫连续承担责任,让他的内心受到了巨大打击,这在他的职业生涯中是首次。如果对小猫的处境感兴趣,可以了解“幂等事件”和“缓存击穿事件”。

这天组长找小猫来到了一间会议室。

在这么短的时间里发生了这么多事故,我理解这对你来说也很不容易,毕竟你刚接手这个项目。或许项目本身就存在一些问题。现在责任落到你头上,希望你不要泄气……”,组长在一旁继续说道。

小猫看着小鸡点头,感到放心了。心想:“看来组长不会批评我的绩效。”

然而,问题已经出现,系统可能存在其他问题,包括业务、代码或设计方面。请抽出时间进行整理,并准备一份项目文档分析。我们期待您在下次月会上与大家分享系统的现状。

小猫连连点头,心里琢磨“这应该算是变相抓典型吧,罢了罢了,可是,这样的一份文档该怎么写呢”

此时小猫的内心又开始不安起来。

聊聊熟悉新项目

当接手到一个新的系统的时候,大家是如何进行熟悉的呢?其实老猫在上一篇“缓存击穿事件”的文末就问过大家了,不晓得大家还有印象不?

现在我们来谈谈老猫对一个新系统的熟悉过程。希望这些经验对你有所帮助,也欢迎分享你自己的方法。主要步骤如下:

项目熟悉

1.尝试画一下用例图

当接受到一个新的业务系统之后,首先咱们至少需要知道当前这个系统是干什么的,所以有时候就需要抽时间找到相关的产品经理了解一下业务,此时产品经理可能会和你聊一下现有的业务现状和背景,但是有可能也会直接丢给你一份V0-Vn版本的产品需求方案,并告诉你他没空。如果是后者记住千万得忍住,不要用显示器砸产品的脸,因为你们的合作尚未开始……开个玩笑,言归正传。

我们先了解一下什么是用例图。

用例图简析

用例是系统中的一个功能单元,可以被描述为执行者与主体之间的一次交互行为。执行者是与系统、子系统或类发生交互作用的外部用户、进程或其他系统的理想化角色。

用途:能够列出系统中的用例和执行者,并显示哪个执行者参与了哪个用例的执行。

针对之前小猫遇到的“下单付款的业务点”,咱们来画个用例图说明一下。如下图:

用例

如上图其实就是一个简单的用例图。我们需要搞清楚的是各种线条的含义。

  • a线条表示的是关联即执行者与其参与的用例之间的通信路径。用实线表示。
  • b线条表示包含,在基用例上插入附加的行为,并且显式地描述了该插入。
  • c线条表示扩展,在基用例上插入附加的行为,基用例并不知道。
  • d线条表示用例泛化,一般用例和特殊用例之间地关系,其中特殊用例继承了一般用例的特征并增加了新的特性。

这样我们就可以很清晰地了解当前的业务现状。

2.后端模型梳理

当梳理完当前的系统功能点以及业务形态的时候,我们就可以介入去看一下现有系统的模型了即DB数据库的表。这样我们就能知道当前设计的系统是如何对业务进行抽象的。那么在看相关表的时候,其实我们就可以慢慢地将ER图进行绘制出来了。

沙之丘企业网站程序3.5
沙之丘企业网站程序3.5

沙之丘企业网站程序是一个以asp.net(C#) 4.0 +access进行开发的企业网站源码。主要功能:1、产品、设备、新闻系统2、留言信息直接发邮件到相关部门3、所有链接都以一级目录显示更好的权重4、其他信息扩展,可以增加如:人事招聘,公司介绍,地图,联系我们等5、带有商品和设备的搜索功能6、模板动态化方便扩展模板7、简体繁体选择显示运行环境:windows 2003或者更高windows服务

下载

什么是ER图

E-R图即全称实体-联系图(Entity Relationship Diagram),它提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

通过其定义其实我们就知道了在ER图里面有三个比较重要的点,分别是实体类,属性,联系。当我们在整理DB表的时候其实对应的就是我们的表、表字段以及对应的表和表之间的关系。

看个例子,下面老猫绘制一下一般商城系统底层的商品逻辑。

ER例子

解释一下每一块图的含义:

  • 方块表示一个模型即一个表,当然这个也是ER图中的实体类。
  • 椭圆形表示实体类包含的属性。
  • 菱形就表示两个类之间的动作行为关系,比如上图中商品上架到货架上。日常中老师给学生上课,那么菱形中可能就是上课。
  • 线条上的1和n就更清晰了,就是一对多,多对一,一对一的关系。

上图中其实我们就可以比较清晰地看到,在当前的这个系统中存在三个比较重要的实体概念,分别是商品、商品池、以及货架。从图中我们也可以大概地看到他们之间的关系。

当咱们梳理完ER图之后,其实上述的用例业务图如何在现有系统中的抽象大概就清楚了。

聊到这里,咱们从上帝视角去看一下,我们给当前这个系统赋予了骨架,接下来得让它的开始心脏跳动,血液奔腾起来,让整个系统赋予灵魂。那么接下来,我们就把模型通过流程的方式串起来。

3.核心流程以及状态机流转

咱们直接看一下例子,其实老猫觉得流程图的梳理可能比较简单,但是难的是如何去把控整个流程中的环节。如果在绘制的时候想的比较细致,可能每一步的落库环节都会去记录。这样的话对于业务的专注度就会少一些。如果画粗了,模型的对应关系可能又把控不好。所以这个地方老猫觉得还是比较考验程序员的概括能力以及业务的理解能力的。

流程图

上述图中,老猫简单画了一个流程图,当然流程图中可能会存在纰漏,大家不要太过较真,在此是说明这么一个事情,咱们暂且不谈里面业务流程的准确度。上面流程中我们看到有以下图形内容:

  • 起始节点,咱们用圆圈表示,当然可以选择自己喜欢的颜色,没有太多标准。
  • 流程进行流转的时候,我们用了相关的箭头线表示,涉及到核心业务操作的时候就是方块。
  • 遇到分支节点的时候,咱们用菱形去做路由。
  • 遇到一些异步操作的时候,老猫喜欢用虚线去表示。

上述这种流程的表示其实是比较简单的,我们不用去在意系统边界。只管绘制即可。

但是现在的开发体系咱们往往都是微服务化的,那么此时我们可能就要考虑到不同系统之间的交互流程。由此,咱们可能机会引入泳道的概念。见下图。

泳道流程

上述图中我们就可以看到各个系统应用之间的交互,每一个泳道就代表着其中的一个微服务系统。这是老猫日常熟悉业务中真实绘制的一张图,再次强调一下大家要看的是绘图的一些思路,不要太过纠结业务。

那么再细节一点,比如讨论到订单状态的一些流转的时候,此时我们为了更好的把控,会使用一些状态的流转图去梳理。

状态流转

上述主要是阐述整个状态在流程中的流转,当然很多时候状态位比较简单的时候,咱们也可以不用画,可能当状态比较复杂多样的时候才会去考虑到画状态机。

相关专题

更多
数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

352

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2076

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

348

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

255

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

324

2023.10.09

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

411

2023.10.16

vb连接access数据库的方法
vb连接access数据库的方法

vb连接access数据库方法:1、使用ADO连接,首先导入System.Data.OleDb模块,然后定义一个连接字符串,接着创建一个OleDbConnection对象并使用Open() 方法打开连接;2、使用DAO连接,首先导入 Microsoft.Jet.OLEDB模块,然后定义一个连接字符串,接着创建一个JetConnection对象并使用Open()方法打开连接即可。

406

2023.10.16

vb连接数据库的方法
vb连接数据库的方法

vb连接数据库的方法有使用ADO对象库、使用OLEDB数据提供程序、使用ODBC数据源等。详细介绍:1、使用ADO对象库方法,ADO是一种用于访问数据库的COM组件,可以通过ADO连接数据库并执行SQL语句。可以使用ADODB.Connection对象来建立与数据库的连接,然后使用ADODB.Recordset对象来执行查询和操作数据;2、使用OLEDB数据提供程序方法等等。

221

2023.10.19

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

4

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.4万人学习

C# 教程
C# 教程

共94课时 | 7.3万人学习

Java 教程
Java 教程

共578课时 | 49.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号