20150425 Gopher China 2015 上海 大会的收获

清醒疯子 发布于 2015年04月25日
梦中醒不过来 等1人欣赏。

1、

真有趣的陈明达分享了《Go语言游戏项目应用情况汇报》。

其中对通讯层、业务层、数据层的分别处理,让人印象深刻。总体上的原则是,实现通讯层、数据层的代码自动生成,让业务开发把精力集中在业务层。

通讯层通过可视化编辑的JS,映射成Go代码。

业务层除了在文件读写、RPC调用等注意屏蔽阻塞以外,还有一些技巧,比如数据离CPU越近越好,避免数据复制和大集合遍历,注册接口防止循环引用。

数据层通过数据库切片缩小查询时的集合,支持内存事务,以事务为单位同步到数据库,实现支持Redo/Undo以及数据的同步日志,保证了数据的稳定。

对数据库的访问进行封装,使外部调用不直接访问字段。

事务日志同步前先写入本地日志,再写入MySQL。

事务日志采用JSON格式,方便分布式分析。

2、

七牛的许式伟分享了《七牛如何做HPPT服务测试》。

七牛并没有使用RPC,而是使用已经非常成熟的HTTP服务。七年希望在HTTP服务测试上,更专注于服务逻辑本身,做到跟客户端无关。

七牛在Go的基础上,引入自己的HTTPTest DSL文法,使得测试更接近基于HttpClient写测试案例的思路,努力让代码更直白体现测试用意。

HTTPTest DSL语法结构为命令行+参数开关的方式,引入了类型系统,并且有提高测试开发效率的缩写模式。

其中作为重点设计的是match命令,当match命令中必须包含的全部,超出部分将进行赋值操作。

通过测试环境参数化的方式,屏蔽了测试脚本的环境依赖,让脚本更易于入库复用。

HTTPTest DSL包含命令行解释器和支持变量定义的JSON解释器。

3、

富麦的余军分享了《动态资源管理和容器技术在金融行业的架构探索和明天》。

与大家的一般印象不同的是,金融行业因为最有钱,它们的IT系统一直是最先进的,也经常做一些非常前沿的激进的改革尝试。

但是,因为业务形态复杂和高管控需求的约束,才导致了大家对金融业不愿意尝试流行新技术的误解。

金融业的IT系统,不同于互联网公司纵向浅、横向多,相反是纵向深,横向小的特点。甚至很多时候根本不考虑解耦,反而根据业务需要纵向完全耦合死。90%以上的银行系统是很老的架构,当前也没有改的必要。

金融业非常重视Staging环境的测试,甚至有些涉及范围的新业务会直接跑在Staging上,在推广到Production环境尽可能排查掉所有可能出现的问题。

金融业对IT的需求,归根结底是要构造一个高效的资源管控模型。

IT界给出了很多金融系统方案,包括PBS、Condor、Hadoop YARN、Apache Mesos、Google Kubemeles等等,但因为都是不考虑服务特性的资源配比方案,并没有真正解决金融业面临的具体业务场景问题。

余军有一个比喻,简明又形象,互联网的业务场景像Cattle Farm,而金融业更像是Zoo。

富麦有自己的一个解决方案:SWF。

虽然作为iOS开发,对Go的很多东西都傻傻听不懂,但思维上还是有很多可以借鉴的地方,感觉不但值回票价,完全是绝对超值:)

共5条回复
cnsoft 回复于 2015年04月27日

Go 光环么. Gopher 莫非是古老的那种 Gopher 服务

yangjie6020 回复于 2015年04月27日

1楼 @cnsoft Gopher是go语言的吉祥物的名字 应该和那种古老的服务是没什么关系的

netdigger 回复于 2015年04月27日

楼主总结的不错,我也去听了。可惜看不大清楚,光听了。

cnsoft 回复于 2015年04月27日

2楼 @yangjie6020 原来. 最近还接触了JS一下. 没想象的那么困难.

guoweihong 回复于 2015年05月07日

golang开发一些应用程序还是蛮不错的。

登录 或者 注册
相关帖子