设计系统的步骤(方法论)
系统设计过程
把所有需要的东西聚集在一起,审视问题。不停的提问,以至于我们可以明确使用场景和约束。讨论假设。(这也就是需求分析其中的一步)
用户数量
- 根据用户数量所谓依据之一推断QPS,TPS
- 再着根据TPS,QPS对机器的选型
- 也是对业务架构的设计的依据之一,是否需要限流等。
使用方式
- 他们会怎样使用它?是通过移动端还是通过web页面呢?还是通过APP,或者小程序呢?
- 以及用户的使用APP的习惯,
用户使用人群
- 选择正确的UI界面。大概率的符合用户的审美。
系统的作用
- 根据系统的作用,选择合适的架构方式。现如今有的如,简单的业务逻辑如就简单的增删改查选择MVC架构,复杂的业务逻辑且有很多拓展需求的使用DDD架构等。
- 还有就是根据业务的作用选择合适的数据库。如一个文档系统那就选择mongoDB,如你的系统有大量的增删改查,那就得用一个拥有事务的数据库MYSQL+ innoDB引擎
- 在这就是根据系统的作用设计我们的业务流程图,和业务架构图,以及表设计。使用面向对象分析(OOA),面向对象设计(OOD) ,面向对象编程(OOP)
系统安全
- 先根据用户的使用人群来判断是否需要进行环境隔离。比如是否对系统进行
- 网关的设计,根据流量的大小以及内部系统的保护对网管进行设计。
- 负载均衡的设计,机器集群的负载均衡策略,集群心跳检查等,防止机器挂掉导致服务偶尔不可用
业务设计
- 业务流程图
http://www.woshipm.com/pd/675174.html - 系统架构图
- UML图
- 领域对象的划分
- 抽象业务为对象和类
- 将业务流程进行层级划分和接口设计
程序的开发。
系统的扩展性
- 负载均衡
- 水平扩展
- 缓存
- 数据库分片
总结
- 我对系统设计目前能想到的东西的描述
- 很多同学包括我有时候对于面试官给你一个需求让你去设计给去曲解了。
- 面试管并不是希望你立马给出一个方案。而是想看到到你的思考过程。包括给你说一个系统故障让你去排查。
参考
https://github.com/donnemartin/system-design-primer/blob/master/README-zh-Hans.md#%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E4%B8%BB%E9%A2%98%E7%9A%84%E7%B4%A2%E5%BC%95
设计系统的步骤(方法论)相关推荐
- 设计一个算法的方法论
设计一个算法的方法论 引言 多年来本人在研发团队里担任算法设计工程师,设计过的算法包括:电能计量.复杂控制.无线通信和系统架构等.蓦然回首,顿悟算法设计有很多共性,抽取出来大致为6个步骤,结合近段时间 ...
- 1、数据库设计的基本步骤
本节主要介绍数据库设计的基本步骤. 在了解数据库设计步骤之前,我们先来了解一下软件项目的开发周期,如下: 需求分析 概要设计 逻辑设计/详细设计 代码编写 软件测试 安装部署 其中,项目开始的第一步都 ...
- figma设计_Figma中简单,可重复使用的设计系统
figma设计 Putting together a design system may seem like an unnecessary hassle. It's often easier to j ...
- 设计模式 日志系统设计_模式:我们设计系统的故事
设计模式 日志系统设计 Design Patterns are some of the most over-used concepts in design today. And we all know ...
- 屏幕广播系统_如何设计系统,而不是屏幕
屏幕广播系统 重点 (Top highlight) Over the past several decades, rapid advances in technology have dramatica ...
- 74ls90设计十进制计数器电路图_PLC控制系统的设计与调试步骤你知多少?
作为电气工程技术人员我们在平时工作中常常要对PLC控制系统进行设计与调试,下面给各位朋友分享一下PLC控制系统的设计与调试步骤.PLC控制系统的设计与调试过程是这样的: 第一点需要我们深入了解被控制系 ...
- 基于android的课程画图设计,基于Android的智能终端通信勘察设计系统绘图模块的设计与实现...
摘要: 随着通信行业甲方对设计勘察要求的提高,设计院的工作人员在外勘察的任务也越来越重.而传统勘察绘图使用纸质介质进行信息采集并在整理后进行计算机制图的的方式效率过于低下,不能满足当前勘察对效率和成本 ...
- 根号 巴比伦_建立巴比伦卫生设计系统
根号 巴比伦 重点 (Top highlight) In this post I'll explain the first phase of creating our Babylon DNA, the ...
- 数据库设计的基本步骤
一.数据库设计的特点 1. 数据库建设的基本规律 "三分技术,七分管理,十二分基础数据"是数据库设计的特点之一. "十二分基础数据" 则强调了数据的收集.整理. ...
- 计算机反求设计的一般步骤,逆向设计的概念和基本步骤
一.逆向设计的概念: 讲逆向设计前,先来看下传统产品开发的流程:构思-设计-产品原型.顾名思义,所谓逆向设计理念恰好与正向设计相反. 逆向设计,又反求设计,逆向工程,是一种基于逆向推理的设计,通过对现 ...
最新文章
- GNU/LINUX(KaliUbuntu)安装chrome浏览器
- 计算机网络体系结构作业题整理-第十章答案
- 在win10下安装自带的linux,并进行相应的配置
- rabbitmq java集群_RabbitMQ集群整合SpringBoot2.x
- WingIDE中文乱码问题解决方法
- memcache使用方法测试 # 转自 简单--生活 #
- MATLAB经纬度转化
- 极点五笔特殊符号输入方法
- 博图安装msi失败_西门子软件WIN7系统安装须知
- 英语四级词汇量测试软件,大学英语四级词汇量要求及自测卷
- 电脑上传,如何查看电脑上传速度
- qiankun 出现[import-html-entry]: error occurs while executing normal script
- 海康摄像头4G内网连接方案
- 我的世界java版tp_神奇的tp指令 我的世界tp指令的用法
- ArcEngine编辑模块——将线段按距离、按比例分割成N条线段
- 开机启动计算机时 屏幕无显示桌面,开机时电脑黑屏没有出现桌面怎么处理
- 减震透气的清爽跑鞋,让跑步更轻松,咕咚10K悦弹体验
- a链接刷新页面与js刷新页面总结
- 单片机复习知识点总结
- 全球及中国同步电容器行业研究及十四五规划分析报告(2022)
热门文章
- 微商开始洗牌,怎么样你的团队才能活下来?
- 正心,修身,方能齐家,治国,平天下
- 移动端H5页面设计知识
- 十则:程序员“笑话”据说只有真正的程序员才看得懂
- 端口输出报错**Error** test5.ASM(60) Constant too large
- OnTime pro for mac(多功能时钟工具)
- 体育会项目查询程序C语言,中考资讯:各地区2021年中考体育会取消吗
- Ubuntu 20.04 + mysql 8.0.27 用户名和密码修改(非常实用)
- plsql 快捷键 设置 字母大小写
- 计算机里的wps云盘和网盘怎么删除,电脑里的wps网盘图标怎么删除?让你的云端文档更安全!...