V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cralison
V2EX  ›  程序员

20150425 Gopher China 2015 上海 大会的收获

  •  
  •   cralison · 2015-04-25 23:48:39 +08:00 · 1565 次点击
    这是一个创建于 3354 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1、

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

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

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

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

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

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

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

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

    2、

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

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

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

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

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

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

    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的很多东西都傻傻听不懂,但思维上还是有很多可以借鉴的地方,感觉不但值回票价,完全是绝对超值:)
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5057 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:47 · PVG 14:47 · LAX 23:47 · JFK 02:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.