Skip to content

Latest commit

 

History

History
59 lines (26 loc) · 1.82 KB

File metadata and controls

59 lines (26 loc) · 1.82 KB

软件工程

[TOC]

软件开发模式

敏捷开发:小步快跑

瀑布流开发:需求分析 —> 设计 —> 开发 —> 测试(每一个步骤以前一个步骤为前提)

image-20220223141212890

思想定律

  • 康威定律

    设计系统的架构受制于产生这些设计的组织的沟通结构。

    比如公司内有两个独立的小组,那整个系统设计肯定会划分出两个独立的模块,相互之间有明确的界限。

  • 计科:abstraction

    数学:formalization

    设计:design is how it works

    软工:indirection - "All problems in computer science can be solved by another level of indirection"

人月神话

《人月神话》

所有软件活动包括: 根本任务 -- 打造构成抽象软件实体的复杂概念结构。 次要任务 -- 使用编程语言表达这些抽象实体,在空间和时间限制内将它们映射成机器语言。

举个例子,比如要实现一款发工资的软件,里面涉及到如何计算所得税,那就得实现个人所得税的计算方法,用什么语言实现这个算法属于「次要任务」,而这个算法本身属于「根本任务」,无论用什么方式实现,你都不可能降低这个算法复杂度,比如个人所得税有 7 个层级,那就一定在某个地方有 7 个 if 语句。

低代码平台主要解决的是「次要任务」,用更简化的方式来实现同样的功能。

架构

  • web 接口的设计模式

    • 强类型模式:强类型模式指的是查询接口返回的是POJO对象,每一个查询结果对应POJO中的一个明确的具有特定业务含义的字段。
    • 弱类型模式:弱类型模式指的是查询结果以K-V或JSON模式返回,没有明确的静态字段。例如 GraphQL