胶水代码

各个国家的铁路系统是割裂的(Broken),而G2Rail其实是要把各个铁路系统的出票系统黏连起来,下一步甚至把铁路系统与各种目的地的景点、旅游产品无缝黏连起来。而随着G2Rail系统的不断演化、生长,数据量越来越大,子系统也越来越多。与很多叫得出名字的子系统相比,许多叫不出名字的脚本、代码、小工具其实为我们的整个业务的运行和发展承担了很关键的作用,帮我们干脏活、提高效率、纠错、数据清洗、数据适配、数据Migration等。我们称之为胶水代码(Glue Code),尽管每一段代码叫不出名字,但是那是整个AHA的有机组成部分。

一些例子

阿里巴巴有一个全球地理信息系统,G2Rail为阿里巴巴提供52个国家十万个火车站的订票,这必须需要用胶水代码在阿里地理信息的数据(国家、城市、村镇)和车站直接做映射。

不同的铁路公司提供的车站编码和GPS数据格式不尽相同,而且不同铁路公司系统的车站数据有相当的重复,而为了对外提供统一的格式以及去重,也需要胶水代码对数据进行处理。

正在开发的Serendipity – Travel Inspired App有全球超过五万个城市的五百万的地方,比如酒店、博物馆、购物、海滩等等,而很重要的工作是把这一部分系统与已有的铁路车站数据结合,这同样也是需要胶水代码。

特点

这类胶水代码的特征包括:

  • 通常我们会用Ruby、Go等语言,因为实现起来很多时候很简洁
  • 快速实现、快速调整,通常是复制黏贴一些已有的胶水代码,然后细微调整
  • 一般函数较小,但是需要长时间运行,比如几分钟、几小时甚至几天
  • 通常我们并不会太在意代码质量,因为很多只是单次运行而且代码量不大
Share