Hello 我是方才,后端研发leader、4年团队管理&架构经验。 文末,方才送你一份25年最新的架构师备考资料,记得领取哟!
上个周末,方才用了1.5天时间为博客新增了一个“刷题模块”。
今天方才简单做个分享:
刷题模块功能本身是比较简单的,但分析和设计的思路,是可以复用到企业级项目的设计过程,我相信对大家还是会有所帮助的。
首先,关于该需求,方才做了个简单的思考:
然后使用到了面向对象的分析方法,以用例为驱动,绘制用例视图如下:
ps:这个用例视图是参考UML规范绘制的,在实际的开发中,一般没必要花这个时间(方才当时就直接用xmind进行梳理的)。
前置概念理解:
其中UML 的4+1 视图,是可以很好的描述最终设计的结果:
在刷题模块的设计中,就用到了【用例视图】,因为整体比较简单,其他视图就没必要了。
关于用例视图,我们也简单了解下:用例图是静态图,展现的是一组用例、参与者以及它们之间的关系。
关于要素和关系的图例,方才简单解释下:
把刚才的用例视图,标记上各个要素,如下图,我相信大家都能理解了:
有了需求和用例,接下来就进入了研发设计阶段,今天方才就先分享下关于数据库的设计。
直接参考下软考架构师的官方书籍,步骤如下。
ps:刷题模块作为一个很小很小的需求,所以概念设计+逻辑结构设计就一起做了,物理结构设计直接省略掉,就是个单机版mysql足矣。
(1) 需求分析:即分析数据存储的要求,产出物有数据流图、数据字典、需求说明书。获得用户对系统的三个要求:信息要求、处理要求、系统要求。
(2) 概念结构设计:就是设计 E-R 图,也即实体 - 联系图。工作步骤包括:选择局部应用、逐一设计分 E-R 图、E-R 图合并。
(3) 逻辑结构设计:将 E-R 图,转换成关系模式。工作步骤包括:确定数据模型、将 E-R 图转换成为指定的数据模型、确定完整性约束和确定用户视图。
(4) 物理设计:步骤包括确定数据分布、存储结构和访问方式。
(5) 数据库实施阶段:根据逻辑设计和物理设计阶段的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
(6) 数据库运行和维护阶段:数据库应用系统经过试运行即可投入运行,但该阶段需要不断地对系统进行评价、调整与修改。
简单解释下概念:
回到刷题模块的设计,基于用例分析部分,设计如下:
这部分在实战中,可参考阅读:表结构设计实战版。
同时方才更习惯把用例场景转化为对象的行为(面向对象设计+数据库设计的综合使用了)。
到此,后端的设计基本上就完成了,表结构、API功能等都有了。
整个博客系统采用的是前后端分离的架构。
ps:关于前后端分离架构,指的并不是前后端由不同的岗位人员开发就是前后端分离的架构了。本质是边界的划分:
交互逻辑,通过前面的用例视图,已经能大概理解。
那剩下的就是UI布局了,关于UI,方才思考如下:整体UI风格和布局和当前保持一致,尽量复用现有的布局基础组件。
ps:目前已经录入了软考架构师历年的案例和论文真题,以及案例的参考答案。
今年计划备考的小伙伴都可以用一用,后续方才也会补充更多有价值的深度解析资料,助力备考,体验地址:https://fangcaicoding.cn/papers。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有