摘要:
package mainimport ( "archive/zip" "fmt" "io/ioutil" "os")func main(){ zipFile,err := zip.OpenReader("test.zip") if err != nil{ panic(err) } for _,val 阅读全文
摘要:
首先需要了解一个概念: 在分布式系统中需要处理大量的http请求,其中有大量的http请求(来自不同服务器)需要访问数据库,但是我们的主数据库承载不了如此之多的连接,所以衍生出了数据缓冲的概念,也就是在多个处理http连接的服务器上创建主数据库的副本(不一定是全部副本,可能是部分,也可能是全部,根据 阅读全文
摘要:
这个函数是http里最重要的一个函数,或者说是服务端代码整合的最终灵魂。httpListenAndServe(port string, handler Handler)第一个参数是监听的端口、第二个参数是根页面的处理函数,可以为空。 接下来是它做了些什么。首先看源码吧还是func ListenAnd 阅读全文
摘要:
通道:用来发送类型化数据的管道(负责协程之间的通信)FIFO通道。 声明:var identifier chan datatype为初始化的通道的值是nil所有的类型都可以用于通道、空接口。通道时引用类型。所以也使用make()函数类给它分配内存。 var ch1 chan stringch1 = 阅读全文
摘要:
tcp服务器:Go会为每一个客户端产生一个协程用来处理请求Server端代码:func main(){ fmt.Println("Starting the server ...") listener,_ := net.Listen("tcp","localhost:50000")//使用tcp协议监 阅读全文
摘要:
进程:计算机进行资源分配调度的基本单位。且运行在自己内存空间内的独立执行体(一个应用程序就是运行在机器上的一个进程)线程:进程内部共享进程内存资源的多个执行体(当一个线程进行IO时,换另一个线程执行) 并行:同一个程序在某个时间点同时运行在多个处理器核心上。并发:同一时间段内,多个线程执行任务(提高 阅读全文
摘要:
单元测试:测试程序在各种数据下的准确性 基准测试(压力测试):测试程序的速度及弹性 testing包被专门用来进行自动化测试,日志和错误报告。并且还包含一些基准测试函数的功能 测试文件必须满足 *_test.go这种格式*代表源文件的名字(测试代码和业务代码分开了) _test程序不会被普通的Go编 阅读全文
摘要:
错误处理:当程序处于错误状态可以用os.Exit(1)来中止运行自定义错误:err := errors.New("I am error")用fmt创建错误(和print一个样,它会创建一个自定义error,字符串就是格式化后的字符串)fmt.Errorf("math: square root of 阅读全文
摘要:
序列化pa := &Address{"家","太原","中国"}wa := &Address{"工作","昆山","江苏"}vc := &VCard{"王","剑英",[]*Address{pa,wa},"啊哈哈"}js,_ := json.Marshal(vc)//编码生成js([]byte),在 阅读全文