会员
周边
捐助
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
张伯雨
Powered by
博客园
博客园
|
首页
|
新随笔
|
联系
|
订阅
|
管理
2017年11月28日
Golang错误和异常处理的正确姿势
摘要: Golang错误和异常处理的正确姿势错误和异常是两个不同的概念,非常容易混淆。很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误。从表面上看,一切皆错误的思路更简单,而异常的引入仅仅增加了额外的复杂度。但事实并非如此。众所周知,Golang遵循“少即是多”的设计哲学,追求简洁优雅,就是说如果异常价值不大,就不会将异常加入到语言特性中...
阅读全文
posted @ 2017-11-28 17:42 张伯雨
阅读(29482)
评论(2)
推荐(1)
编辑
2017年10月31日
用beego开发服务端应用
摘要: 用beego开发服务端应用说明Quick Start安装创建应用编译运行打包发布代码生成开发文档目录结构说明使用配置文件beego默认参数路由设置路由的表述方式直接设置路由以注册handler的方式设置路由自动注册路由通过注解注册路由使用namespace管理路由需要特别注意的NSAfter()使用数据库数据库迁移(migration)beego.Controller处理http请求参考说明bee...
阅读全文
posted @ 2017-10-31 11:34 张伯雨
阅读(15474)
评论(0)
推荐(0)
编辑
2017年10月30日
SpringBoot JMS(ActiveMQ) 使用实践
摘要: ActiveMQ1. 下载windows办的activeMQ后,在以下目录可以启动: 2. 启动后会有以下提示 3. 所以我们可以通过http://localhost:8161访问管理页面,通过tcp://localhost:61616来连接消息服务器,用到的用户名和密码都在以下文件中(默认为admin=admin) springboot连接ActiveMQ1. 加入依赖: ...
阅读全文
posted @ 2017-10-30 13:44 张伯雨
阅读(9342)
评论(0)
推荐(2)
编辑
Go 延迟函数 defer 详解
摘要: Go 延迟函数 defer 详解Go 语言中延迟函数 defer 充当着 try...catch 的重任,使用起来也非常简便,然而在实际应用中,很多 gopher 并没有真正搞明白 defer、return、返回值、panic 之间的执行顺序,从而掉进坑中,今天我们就来揭开它的神秘面纱!先来运行下面两段代码:A. 匿名返回值的情况package mainimport ( "fmt")fun...
阅读全文
posted @ 2017-10-30 09:31 张伯雨
阅读(3153)
评论(0)
推荐(1)
编辑
2017年10月26日
Go语言Context(设计及分析)
摘要: context简单概述:Go服务器的每个请求都有自己的goroutine,而有的请求为了提高性能,会经常启动额外的goroutine处理请求,当该请求被取消或超时,该请求上的所有goroutines应该退出,防止资源泄露。那么context来了,它对该请求上的所有goroutines进行约束,然后进行取消信号,超时等操作。而context优点就是简洁的管理goroutines的生命周期。conte...
阅读全文
posted @ 2017-10-26 10:27 张伯雨
阅读(2151)
评论(1)
推荐(0)
编辑
2017年10月18日
Golang中使用lua进行扩展
摘要: 前言最近在项目中需要使用lua进行扩展,发现github上有一个用golang编写的lua虚拟机,名字叫做gopher-lua.使用后发现还不错,借此分享给大家.数据类型lua中的数据类型与golang中的数据类型对应关系作者已经在文档中说明,值得注意的是类型是以L开头的,类型的名称是以LT开头的.golang中的数据转换为lua中的数据就必须转换为L开头的类型:str := "hello" nu...
阅读全文
posted @ 2017-10-18 13:36 张伯雨
阅读(4883)
评论(1)
推荐(0)
编辑
2017年10月17日
Go 语言之三驾马车
摘要: interfaceGo是一门面向接口编程的语言,interface的设计自然是重中之重。Go中对于interface设计的巧妙之处就在于空的interface可以被当作“Duck”类型使用,它使得Go这样的静态语言拥有了一定的动态性,却又不损失静态语言在类型安全方面拥有的编译时检查的优势。source code从底层实现来看,interface实际上是一个结构体,包含两个成员。其中一个成员指针指向...
阅读全文
posted @ 2017-10-17 17:13 张伯雨
阅读(645)
评论(0)
推荐(0)
编辑
2017年10月5日
理解channel 工作原理以及源码
摘要: Go 的并发特性 goroutines: 独立执行每个任务,并可能并行执行channels: 用于 goroutines 之间的通讯、同步一个简单的事务处理的例子 对于下面这样的非并发的程序:func main() { tasks := getTasks() // 处理每个任务 for _, task := range tasks { process(task) }}将其转换为 Go...
阅读全文
posted @ 2017-10-05 10:27 张伯雨
阅读(3553)
评论(0)
推荐(0)
编辑
2017年10月4日
《effective Go》读后记录
摘要: 格式化让所有人都遵循一样的编码风格是一种理想,现在Go语言通过gofmt程序,让机器来处理大部分的格式化问题。gofmt程序是go标准库提供的一段程序,可以尝试运行它,它会按照标准风格缩进,对齐,保留注释,它默认使用制表符进行缩进。Go标准库的所有代码都经过gofmt程序格式化的。注释Go注释支持C风格的块注释/* */和C++风格的行注释//。块注释主要用作包的注释。Go官方提倡每个包都应包含一...
阅读全文
posted @ 2017-10-04 13:15 张伯雨
阅读(379)
评论(0)
推荐(0)
编辑
2017年10月3日
《Go in action》读后记录:Go的并发与并行
摘要: 一、使用goroutine来运行程序1.Go的并发与并行Go的并发能力,是指让某个函数独立于其他函数运行的能力。当为一个函数创建goroutine时,该函数将作为一个独立的工作单元,被 调度器 调度到可用的逻辑处理器上执行。Go的运行时调度器是个复杂的软件,它做的工作大致是:管理被创建的所有goroutine,为其分配执行时间将操作系统线程与语言运行时的逻辑处理器绑定参考The Go schedu...
阅读全文
posted @ 2017-10-03 15:00 张伯雨
阅读(522)
评论(0)
推荐(0)
编辑
下一页