dotweb——go语言的一个微型web框架(一)

简介:

dotweb是16年正式托管到github的一个开源项目,go语言的web框架目前也有很多,出名的有bee和echo。它们都是很优秀的框架,但是我们喜欢更轻、更小的东西,经历一些之后我们更青睐微服务这个设计理念。

  dotweb是一个国人写的开源项目,据我所知它已经在多家公司的生产项目中使用,到目前为止它和早些年的web框架比显得很年轻,目前它还在以一种很快速的迭代速度完善。我们计划会在2017年推出1.0版本,那时候dotweb可以满足各种场景下的功能需求。我们在完善dotweb的过程中,轻巧是我们的原则,我们不是要做一个大而全的web框架(因为现在已经有这种框架了)我们要做的是一个小而精的框架,它会对扩展很友好,开发速度高效,性能良好。

  dotweb的githun地址是:https://github.com/devfeel/dotweb,我们欢迎您提出建议或者贡献代码,我们也欢迎您加入官方QQ群,群号可以在github上找到。

  dotweb和springmvc或者asp.net一样吗?它们是有不同的,springmvc和asp.net都是非常优秀的web框架,它们功能强大、性能良好、有着很高的开发效率,但是除此之外dotweb还有一个很迷人的特性——自宿主。有些朋友可能会疑惑什么叫做自宿主?如果您了解asp.net core您应该知道asp.net core可以脱离iis启动,iis作为一个web服务器它就是web程序的宿主,自宿主就是可以脱离传统web服务器自己启动运行。所以说dotweb既是一个web框架又是一个web服务器,自宿主也不可能脱离web服务器,只不过它脱离了传统的web服务器在内部集成了一个微型的web服务器。

  oh,my god!它不使用传统web服务器,它性能会不会很差?我如何相信它的性能呢?事实上您不需要对性能太担心,go语言本身性能就很高,dotweb是用原生的go语言实现,dotweb性能就算不让人惊艳也不会差。在已上线的项目中,dotweb表现很令人满意,它在高并发的场景中占用的服务器资源却很少,这和go语言的特性是密不可分的。在今后的版本迭代中,性能是我们最关注的事情,我们会不遗余力的优化性能。

  dotweb还有一个优点就是它很简单,如果您懂得go语言,那么读懂dotweb的源码是件很容易的事情。我们追求的就是精简,我们不会为了炫耀一些技巧就把代码写得不那么易懂,我们只会用最简洁的代码,您随时可以根据自己的需求修改dotweb的源码,这完全是可以的,dotweb不是一成不变的。

  dotweb天生对分布式友好,你会发现它的session支持redis存储,未来版本支持基于cookie存储的session实现,更别说cache这类本身就需要分离的模块了。所以对未来业务扩展或是集群架设,dotweb都有着很好的支持。

  dotweb对长连接和websocket也有着很好的支持,实测单机百万长连接。

  dotweb内置了一个监控服务,通过它您可以查询dotweb的运行状态,这个服务我们计划在以后的时间里增强功能,方便用户掌握dotweb的状态。

  更多的dotweb特性您可以登录github的dotweb项目地址查看,地址已经在上方贴出。您也可以加入官方QQ群咨询关于dotweb问题,我们会提供答疑。本篇文章将是dotweb系列文章第一篇,在接下来的文章中我会给大家详细介绍dotweb使用方法。重申以便,我们欢迎您对dotweb提出建议或者贡献代码,并且我们也感谢您提出建议或贡献源码,dotweb是一个开源、免费的项目,我们希望它能给您带来便利。

  思来想去还是写个hello,world吧,仿佛不写就不像是编程技术博客一样。

  第一步:您可以执行go get -u github.com/devfeel/dotweb 命令安装dotweb。

  第二步:在您的go源文件中添加import "github.com/devfeel/dotweb"引用。

  第三步:

复制代码
复制代码
func main(){
   dotapp := dotweb.New()
   dotapp.SetLogPath("/home/logs/wwwroot/")
   dotapp.HttpServer.Router().Get("/index",func(ctx *dotweb.HttpContext){
      ctx.WriteString("Hello,World!")
   })
   dotapp.StartServer(8080)
}
复制代码
复制代码

博客园竟然不支持GO语言代码块,囧,在以后的文章我会使用截图,不过幸好js的风格可以伪装下Go语言代码块。

目录
相关文章
|
19天前
|
前端开发 JavaScript 开发者
JavaScript:无处不在的Web语言
JavaScript:无处不在的Web语言
|
3月前
|
人工智能 测试技术 Go
Go 语言的主流框架
本文全面解析了 Go 语言主流技术生态,涵盖 Web 框架、微服务、数据库工具、测试与部署等多个领域。重点介绍了 Gin、Echo、Beego 等高性能框架,以及 gRPC-Go、Go-Micro 等微服务组件。同时分析了 GORM、Ent 等 ORM 工具与测试部署方案,并结合场景提供选型建议,助力开发者构建高效稳定的 Go 应用。
800 0
|
26天前
|
消息中间件 缓存 NoSQL
Redis各类数据结构详细介绍及其在Go语言Gin框架下实践应用
这只是利用Go语言和Gin框架与Redis交互最基础部分展示;根据具体业务需求可能需要更复杂查询、事务处理或订阅发布功能实现更多高级特性应用场景。
162 86
|
2月前
|
数据采集 Go API
Go语言实战案例:多协程并发下载网页内容
本文是《Go语言100个实战案例 · 网络与并发篇》第6篇,讲解如何使用 Goroutine 和 Channel 实现多协程并发抓取网页内容,提升网络请求效率。通过实战掌握高并发编程技巧,构建爬虫、内容聚合器等工具,涵盖 WaitGroup、超时控制、错误处理等核心知识点。
|
2月前
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。
|
3月前
|
JSON 前端开发 Go
Go语言实战:创建一个简单的 HTTP 服务器
本篇是《Go语言101实战》系列之一,讲解如何使用Go构建基础HTTP服务器。涵盖Go语言并发优势、HTTP服务搭建、路由处理、日志记录及测试方法,助你掌握高性能Web服务开发核心技能。
|
3月前
|
Go
如何在Go语言的HTTP请求中设置使用代理服务器
当使用特定的代理时,在某些情况下可能需要认证信息,认证信息可以在代理URL中提供,格式通常是:
265 0
|
4月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
|
4月前
|
开发框架 安全 前端开发
Go Web开发框架实践:模板渲染与静态资源服务
Gin 是一个功能强大的 Go Web 框架,不仅适用于构建 API 服务,还支持 HTML 模板渲染和静态资源托管。它可以帮助开发者快速搭建中小型网站,并提供灵活的模板语法、自定义函数、静态文件映射等功能,同时兼容 Go 的 html/template 引擎,具备高效且安全的页面渲染能力。
|
4月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。

热门文章

最新文章