在日常的 web 开发中,后端人员常基于现有的 web 框架进行开发.但单纯会用框架总感觉不太踏实,所以有空的时候还是看看这些框架是怎么实现的会比较好,万一要排查问题也快一些. 最近在学习 go 语言,也尝试学习一下 go 语言当前最流行的 web 框架 gin,于是有了这篇学习笔记.看完这篇文章应该能理解 gin 最基础的操作了,但由于 gin 是基于 go 原生的 http 服务器搭建的,所以会先从 go 网络基础库中的 http 服务器开始说起. 目录 1. 认识请求处理器 2. 服务器启…
一.概要 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具 和优化. Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处…
原文:Top 6 web frameworks for Go as of 2017 作者:Edward Marinescu 译者:roy 译者注:本文介绍截至目前(2017年)最好的6个Go语言Web框架.以下为译文: GO 语言爱好者的最佳Web框架 如果你是自己写一个小应用程序,那你可能不需要Web框架.但是如果你要做产品,那么你肯定需要一个好的框架. 如果你认为你有相应的知识和经验,你会自己编写所有的这些代码么?你有时间找到一个产品级的外部包来完成工作吗?你确定这与你应用程序的其它部分一致…
dotweb是16年正式托管到github的一个开源项目,go语言的web框架目前也有很多,出名的有bee和echo.它们都是很优秀的框架,但是我们喜欢更轻.更小的东西,经历一些之后我们更青睐微服务这个设计理念. dotweb是一个国人写的开源项目,据我所知它已经在多家公司的生产项目中使用,到目前为止它和早些年的web框架比显得很年轻,目前它还在以一种很快速的迭代速度完善.我们计划会在2017年推出1.0版本,那时候dotweb可以满足各种场景下的功能需求.我们在完善dotweb的过程中,轻巧是…
在进行后端选型的时候,实际上我们要选择的是一个框架.后端领域所使用的技术和框架已经趋于稳定,我们只需要按我们的需要选择所需要的框架.当存在多个框架适合时,我们再选择适合的语言.不得不指出的是,当我们喜爱一个语言的时候,我们可能会偏爱于在这门语言里寻找可用的方案.这自然是有好有坏,好的一点是:我们可以成为这门语言的专家,不好的一点是:我们可能选择的不是最合适的方案. 让我们先来探索一下可用的语言,以及它们对应的 Web 框架(以下内容均为个人观点): JavaScript 按照当前的流行趋势来看,…
这是我制作的编程语言科普系列视频的第二期,博客根据视频文案整理而成,提供给有需要的朋友阅读或使用. 视频地址:https://www.bilibili.com/video/av83627932/   如果感兴趣观看视频,感谢博友. 在华夏文明的历史长卷中, 曾经有一段狼烟四起,群雄逐鹿的特殊历史时期 史称春秋战国 这段时期,诸侯分裂,各自为战,哀鸿遍野,战火连天 贫苦人民生活在水深火热之中 最终秦国招贤纳士,积极变法  奋六世之余烈 席卷八荒 一统天下 最终结束了这段混乱的时期, 并且统一了文字…
工欲善其事,必先利其器.不知道还是不是记得上一篇文章中说到的,计算机本身是一个数据输入及输出的设备.所以,为了将你大脑中的各种 idea 输入到电脑,且最终生成能够执行的程序,总是要预备点什么的. 通常来说,C 语言系统应该由 3 个部分构成,分别是:程序的开发环境.C 语言和 C 语言的库. 程序的开发环境 计算机本身是一个数据的输入及输出的设备.编程这一动作,同样是一个数据的输入及输出的设备.通常是输入一些字母,然后生成可以被计算机解释的“exe”文件.所以需要一个能够允许输入的软件(文本编…
MagenTo默认支持多语言网店,不过要使用多语言功能,需要进行一些设置. 一.后台多语言支持(中文化) Magento登录后台时默认的是显示的是英文界面,在页面左下角选择语言为中文就会跳转为中文界面,如果还是显示英文,则是因为没有下载中文语言包的原因,按以下步骤操作: 1.下载中文语言包 2.上传到指定目录 3.切换语言为简体中文,并清空缓存 二.前台多语言支持(多种方案) 1.下载指定语言包2.上传到指定目录(app/local)3.登陆管理后台 并创建一个新的store view在Mana…
Go语言Web框架gwk介绍 (四)   事件 gwk支持事件系统,但并没有硬编码有哪些事件,而是采用了比较松散的定义方式. 订阅事件有两种方式: 调用On函数或者OnFunc函数 func On(moudle, name string, handler Subscriber) func OnFunc(moudle, name string, handler func(*EventContext)) 参数moudle是指订阅哪一个模块触发的事件,参数name是指订阅事件的名字,参数handler…
Go语言Web框架gwk介绍 (三)   上一篇忘了ChanResult ChanResult 可以用来模拟BigPipe,定义如下 type ChanResult struct { Wait sync.WaitGroup Chan chan string ContentType string Start []byte End []byte Timeout time.Duration } ChanResult会先输出Start,然后读取Chan中的字符串输出到客户端,最后输出End. 还忘了Co…