> For the complete documentation index, see [llms.txt](https://coffe1891.gitbook.io/frontend-hard-mode-interview/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://coffe1891.gitbook.io/frontend-hard-mode-interview/id-7/2.-ruan-jian-gong-cheng-jia-gou/7.2.1.md).

# 柒.2.1 MVC的前世今生

如果要理解MVC，得先知道MVC是解决软件工程范畴内的问题。那么什么是软件工程？援引百度百科的解释：

> 软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。&#x20;

因此，前面讲的十四种设计模式，也是属于软件工程范畴内的；更进一步，本书似乎也是在尝试尽可能多地讲软件工程。

严格来讲，MVC不属于设计模式，它比设计模式的粒度更粗，层级更高一些，更专注于“解决构建、维护”等软件工程领域的问题。

至于MVC的起源，由谁发明的，由谁率先应用的，由谁发扬光大……记住这些没有卵用，并不会让你在实践中把MVC用的更好。那本篇为什么要用“前世今生”来命题呢？这里的“前世今生”，不是简单的基于历史时间线做记录，而是想从软件的构建与维护的角度，来剖析MVC出现之前的和之后带来的改变，方便读者更深入的理解MVC。

## 柒.2.1.1 MVC出现之前

//todo

## 柒.2.1.2 MVC出现之后

//todo
