Web开发框架推导

假设我们的「特定环境 」如下:

技术层面

使用Java语言进行开发

通过Maven构建

基于SpringBoot

使用IntellijIDEA作为IDE

使用Mybatis作为持久层框架

前后端分离

非技术层面

新项目,变化较频繁

快速迭代

开发人员资历较浅

人员流动性较大

我们的 「期望 」是:

快速上手:鉴于人员流动性较大、开发人员的资历较浅和项目的快速迭代需求,期望开发框架易于开发人员开发。易于入门,易于部署。

符合行业规约:尽量不定义私有规范,使用行业标准,进一步降低学习难度

快速开发:尽可能复用代码,尽可能自动化生成模板代码

独立性:应用能独立运行,不过多的依赖其它应用或中间件。边界清晰,有利于理解、开发、测试和部署。反例:就是没有规划的RPC调用。

易于测试:能方便的进行单元/集成测试,不影响真实数据

易于部署:能方便的进行部署,便于快速的扩容

异常可追踪:对异常,可快速定位到具体是哪个应用,哪个类,哪行代码的问题

  
本文从一个空框架开始,逐步加入上面的约束,最终推导出符合期望的Web框架!
本文提供的是一种思路!如有纰漏、或不同意见,欢迎讨论指正!

从「空框架」开始

我们从一个「空框架」开始我们的框架推导!所谓「空框架」是一个没有任何约束的接收HTTP的可运行代码,比如对任何请求都只返回Hello World的servlet!
这里我们基于Maven和SpringBoot快速搭建一个「空框架」!

代码结构如下(Maven构建约束): 

intellijweb2 src/main java com.ivaneye.intellijweb2 TestController resources application.properties logback-spring.xml

 
代码如下:

package com.ivaneye.intellijweb2;   import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.ResponseBody;   @Controller @EnableAutoConfiguration public class TestController {       @RequestMapping("http://www.likecs.com/")     @ResponseBody     public String home() {         return "Hello World!";     }       public static void main(String[] args) throws Exception {         SpringApplication.run(Main.class, args);     } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgggsp.html