044d7b8c4a359987bdcddb4efa1d049f.gif

【CSDN 编者按】SQL即结构化查询语言(Structured Query Language),是一种可用于存取数据以及查询和管理关系数据库的编程语言。和面向对象编程相同的是,SQL语言的编写很费时间,并且调试的难度也很大,因此必须要能够进行维护。但谷歌却将SQL视为代码并受益颇多。这究竟是怎么回事呢?

作者 | 郭露       责编 | 张红月

出品 | CSDN(ID:CSDNnews)

63952e433e922c133694caed8939f371.png

SQL作为查询语言,谷歌为何会将其视为代码?

而从谷歌的角度来看,SQL还能用于创建数据管道。一旦数据管道发生故障,就需要用SQL修复。考虑到这些因素,代码集中化在数据策略中无疑非常重要。

使用代码管理工具的好处在于,开发者能够更快的知道谁在更改或维护SQL脚本,并了解他对于其他相关查询中的更改。代码管理工具能够第一时间发现提交失败的地方并且进行恢复。提交SQL代码之后,代码能够立刻部署到开发环境中。之后开发者可以执行开发管道,并立即识别和修复故障。同时需要定期更新测试环境和代码,以确保代码能够推出生产版本。一旦成功,所有版本的SQL都能够顺利执行。

  • 小公司该如何应对?

对于小公司而言,需要了解公司的软件工程文化。这种文化要更为成熟,因此公司需要熟悉他们可能会使用到的工具,例如Git和IDE等等。公司需要将所有代码放在索引位置上,并将脚本从本地迁移到全局,并取消视图和存储的过程。

239e5b2b256eaf1d42ee87e76fe35664.png

图源自ICphoto

65986dcf87ea56a62d73d195b29308c2.png

谷歌如何使用工具管理SQL代码?

谷歌几乎将所有代码都集中在一个单一的代码存储库中。若需要对任何SQL进行更改,或是需要创建新脚本时,就会创建更改列表,这本质上和拉取请求是相类似的。随后通道要在经过测试后由另一位开发者批准。经审阅者签字后,作者就可将代码更改提交到代码存储库中。尽管许多公司都使用变更控制系统,谷歌和他们不一样,非常重视代码的格式,谷歌不会自动拒绝不符合编码标准的更改。

  • 小公司该如何应对?

有了谷歌的参考,小公司应当坚持使用一个代码存储库。代码存储库应在部门间共享,并将所有 SQL代码集中在一个存储库中。这其中应当包括所有数据功能,例如数据工程、数据分析以及数据商业智能。公司需要采用代码格式标准,使用开源代码格式工具。这种工具能够大大地提高代码的可读性和可维护性。公司可以花一定的时间通过工具优化先前的代码,并且保证之后的代码能够符合格式标准。这样能使SQL更容易编写和理解。

3ca236c041f0044a4179b58a6a6c1c62.png

为何版本和开发环境的统一可以节省时间?

由于代码经常会进行更改,如果不对版本进行控制,我们很难撤回或重置。如果公司能够使用版本控制,一旦提交的代码更改破坏了管道并产生了不可执行的命令时,可以精确地进行撤回。这一原则和谷歌的代码集成方法相同。若开发环境中出现了不好的更改,业务依旧不会受到影响。SQL更改在提交时会对开发环境产生影响,并且能够第一时间发现故障。若开发代码的过程失败了,谷歌可以通过开发环境变量来进行管理。

  • 小公司该如何应对?

对于小公司来说,实现一个开发环境非常必要。在组织数据基础架构内测试代码可以将影响降到最低。通过DBT等开源工具添加抽象层后能够使这一过程更加简单。所有的表能够使用两次:一次是作为开发表,第二次是作为生产表。在发布计划时,所有提交的代码都能够加入到生产环境中。

bd28b802d1d06a1285f417149aaeaf54.png

广泛访问代码的好处有哪些?

众所周知,谷歌只采用了一个代码存储库来存储所有代码,因此有时很难知道某个产品的消费者都用哪些。例如,软件开发者可能在更新生产应用程序,如果不使用集中式代码库,他们无法了解更改后会有什么后果。通过代码的集中化,开发者可以搜索合适的脚本、查询和其他应用程序,并通知相应的开发者进行同步更改。

  • 小公司该如何应对?

小公司应当更加信赖使用的代码库和存储库。工程的角度来看,公司的项目并不需要那么保密,只需要雇用信得过的开发者管理代码库就行。除此之外,公司还应该鼓励软件工程和数据工程间进行协作。在代码投入生产之前完成下游的内置流程和程序。

【参考资料】

https://blog.devgenius.io/why-google-treats-sql-like-code-and-you-should-too-53f97925037e

f8749128fd4e11c60c4ebde7b78221f2.gif

《新程序员003》正式上市,50余位技术专家共同创作,云原生和数字化的开发者们的一本技术精选图书。内容既有发展趋势及方法论结构,华为、阿里、字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司云原生和数字化一手实战经验!

bcd33e04bc7c06afb1c749169484fa82.png

c77b009cea27c73478b572671bc93e65.gif

 
 
☞微信、支付宝个人收款码可继续使用;苹果或将推出7款新Mac;Swift之父正式退出Swift核心团队|极客头条
☞PHP 没“死”、Vue 依旧是“巨头”之一!2022全栈开发报告你看过了吗?
☞专访小米崔宝秋:云原生与大数据、AIoT、开源的碰撞之路
Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐