go plugin
支持将 go包
编译为共享库
的形式单独发布,主程序可以在运行时动态加载这些编译为动态共享库文件的 go plugin
,从中提取导出 变量
或 函数
的符号并在主程序的包中使用
go plugin
的这种特性为Go开发人员提供更多的灵活性,我们可以用之实现支持热插拔的插件系统。
泛型程序设计(generic programming)
是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。
各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。Ada
、Delphi
、Eiffel
、Java
、C#
、F#
、Swift
和Visual Basic
.NET
称之为泛型(generics)
;ML
、Scala
和Haskell
称之为参数多态(parametric polymorphism)
;C++
和D
称之为模板
。具有广泛影响的1994年版的《Design Patterns》
一书称之为参数化类型(parameterized type)
。
在现代 javascript
框架项目开发中,一直有一个令人都疼的问题,就是缓存问题;每次发版完之后由于浏览器缓存机制,用户端不会实时获取新的项目页面,甚至有可能出现静态文件获取报404。
把静态资源嵌入在程序里,原因无外乎以下几点:
最常见的,比如一个混编网址的后端程序,本来需要把程序与它所需要的静态资源(html模版、css、js、图片)一起上传至生产服务器,同时还需要正确配置静态资源在服务器中的路径让程序能正常访问.现在我们将这些资源全部嵌入到程序中,部署的时候只需要部署一个二进制
文件,配置也只针对这个程序本身,部署的流程大大简化.
现在项目开发有很多私有仓库,直接git clone
的方式使用,不是怎么方便。
查询go
源码发现go get
支持的协议除了https
还支持git+ssh
, bzr+ssh
, svn+ssh
, ssh
$GOSRC/cmd/go/internal/get/vsc.go
var defaultSecureScheme = map[string]bool{
"https": true,
"git+ssh": true,
"bzr+ssh": true,
"svn+ssh": true,
"ssh": true,
}
Air能够实时监听项目的代码文件,在代码发生变更之后自动重新编译并执行
在使用Go语言在本地做web开发调试的时候,经常需要在修改代码之后频繁的按下Crtl+C
停止程序并重新编译执行,这样就比较麻烦