永远的MVC

MVC 是对软件软件系统三个基础部分的描述, 就好像冯·诺伊曼结构 或者哈佛结构对计算机体系结构的定义. MVC 是客观存在的, 是事实.

  • 无论你的代码中是否显示的使用了 MVC 的方法, 她都存在.
  • 无论你的代码是否显示的遵循 MVC 的方法, 她都存在.
  • 无论你的代码是否违背了公认的 MVC 方法, 她都存在.

总之只要你写代码, 无论你怎么写, 她都存在.
对于一个运算表达式:

  1. a := b + c

又或者对于一个函数:

  1. func Foo(b,c interface{})(a interface{}){
  2. // 函数主体, 完成的就是控制了
  3. }
  • a 就是 view
  • “+” 就是 controller
  • b,c 就是model

MVC 就在那里.

常见的做法

软件开发者通常会这么做来, 显示使用 MVC.

  • 类型声明, 包含 Controller 这个词
  • 文件名, 包含 Controller 这个词
  • 目录名, 包含 Controller 这个词

都是好方法. 这增强了代码可读性.
当然如果目录名已经用了Controller了, 目录之下的文件或者类型声明是否有必要再加上 Controller, 语言不同, 习惯不同, 并没有定式. Go 语言一向提倡 能省则省.

目录规划

依据 MVC 那么比较具有可读性的目录看起来是这个样子

  1. ├───conf
  2. ├───controllers
  3. ├───models
  4. └───views
  5. ├───login
  6. └───signup

这同样增强了代码可读性.
随项目的进行会新增或者调整目录, 需要就随时改动. 不要担心目录结构的改变和已有代码不兼容.
如果不能迅速调整解决问题. 那说明代码写的不够好.

还有很多目录这里没有规划, 不必担心. 随时用随时调整.