美文网首页
系统设计的一般步骤

系统设计的一般步骤

作者: classtag | 来源:发表于2017-04-21 18:03 被阅读309次

本文仅为本人总结之用,高手略过。

我们屁颠颠地从老板(产品)那边拿到一个需求,公司马上要搞促销,所以要为这次活动新建一个秒杀系统。拿到这样的需求,你会怎么入手?接下来我不会告诉你怎么做一个秒杀系统,只会介绍系统设计的一般性步骤,不知道是哪位高人总结的叫着SNAKE分析法。

Scenario 场景

这是每个系统设计的第一步,搞清楚我们的系统场景,为什么服务。我们的业务场景是什么样子的,都有哪些角色,怎么个流程?其实在这一阶段就是列出系统需要实现的功能有哪些。
接着我们把功能根据优先级和核心功能进行排序。比较互联网很快,我们先搞一个Version1.0上去,再来优化。

Needs 需求

很多人被这个中文翻译搞懵逼了,你不是在第一阶段就讲过需求吗?这里的needs是说咱们系统设计出来要满足什么样的用户量,需要咱们设计一个多么吊&牛X的系统。最好这个时候能拿出纸和笔来计算一下,咱们的DAU、并发量、QPS、TPS、峰值。Pls,remember:我们需要的是一个合适的系统,绝对不是一个可以满足100年都可用的巨牛逼的系统。

Application 应用

这一阶段,我们要做的是将我们的功能进行划分,分组成不同的模块。这样后边我们就可以团队分工开发,团队协作。
接着我们需要考虑的是关键的一些算法。比如缓存算法、分库算法等。
Service + Algorithm

Kilobyte 数据

  • 关系型数据库SQL Database
    • 小调查:Twitter的哪些信息适合放在关系型数据库中?
    • 用户信息 User Table
  • 非关系型数据库 NoSQL Database
    • 小调查:Twitter的哪些信息适合放在非关系型数据库中?
    • 推文 Tweets
    • 社交图谱Social Graph(followers)
  • 文件系统File System
    • 小调查:Twitter的哪些信息适合放在文件系统中?
    • 图片、视频Media Files

讲到这个地方其实我想总结一句:

  • 程序 = 算法 + 数据结构
  • 系统 = 服务 + 数据存储

Evolve 改进

这个阶段就是做优化和维护工作了,我们最好根据实际的需要去优化系统,满足系统不远将来的增长。选择一个最合适的方案而不是一个最好的方案。

相关文章

  • 系统设计的一般步骤

    本文仅为本人总结之用,高手略过。 我们屁颠颠地从老板(产品)那边拿到一个需求,公司马上要搞促销,所以要为这次活动新...

  • UML--系统设计

    系统设计过程 系统设计步骤 步骤一:评估性能 常见的架构风格

  • 设计一个液压系统一般应有哪些步骤?要明确哪些要求?

    液压系统的设计并无严格的顺序,各步骤之间往往要相互穿插进行。一般来说,在明确设计要求之后,大致按如下步骤进行。 第...

  • 20小时入门中如何分解细化技能

    主题 (如液压) step1: 1、目前的需求及呈现方式etc (设计胀缩置液压系统)→(一般设计步骤)→(接线图...

  • 1.1 什么是设计

    1.国外设计理论界对“设计”定义 给一个事物、一个系统制订演绎基础的计划过程就是设计。 2.设计一般有以下步骤: ...

  • 论文研读 一 A Joint Model of Intent D

    由于个人习惯,系统设计、nlp任务,会从 `五个步骤、四个组件`来分析: 系统设计五个步骤: 1. 数据预处理 2...

  • 09_编程概述

    软件开发的一般步骤 参考一般的软件开发有一下几步: 项目启动 需求阶段 设计阶段 开发阶段 测试阶段 系统上线 详...

  • 2018-08-10 系统化教学设计简述以及确定教学目标

    进行教学设计的一般步骤和建议 教学过程本身可以视为一个系统。系统的目的是引发和促进学习。这一系统中的成分包括学习者...

  • 一、用Project编制进度计划

    一、例子 要作一下开发工程,分为如下关键步骤:需求分析、原型设计、系统设计、系统编码、系统测试、系统试运行、项目结...

  • NLP学习-03.基础-分词-维特比算法

    上节简单学习了问答系统的一般步骤,这节主要学习问答系统的数据清洗步骤,包含以下知识点: word segmenta...

网友评论

      本文标题:系统设计的一般步骤

      本文链接:https://www.haomeiwen.com/subject/kszdzttx.html