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

作者 | 郭露       责编 | 张红月

出品 | CSDN(ID:CSDNnews)

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

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

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

  • 小公司该如何应对?

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

图源自ICphoto

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

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

  • 小公司该如何应对?

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

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

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

  • 小公司该如何应对?

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

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

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

  • 小公司该如何应对?

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

【参考资料】

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

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

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

SQL 被当成代码?谷歌的理由绝了!相关推荐

  1. 防sql注入 php代码,完美的php防sql注入代码

    一款比较完美的php防sql注入代码,很多初学者都有被sql注入的经验吧,今天我们来分享你一款比较完整的sql防注入代码,有需要的同学可以参考一下: /************************ ...

  2. php 完美防sql注入,PHP 完美的防XSS 防SQL注入的代码

    PHP "完美"的防XSS 防SQL注入的代码 function gjj($str) { $farr = array( "/s+/", "/]*?)& ...

  3. 检测SQL注入式攻击代码

    (页面数据校验类)PageValidate.cs 基本通用. using System; using System.Text; using System.Web; using System.Web.U ...

  4. 日历代码 谷歌无法显示当日_在Windows日历中显示您的Google日历

    日历代码 谷歌无法显示当日 Windows Vista includes a built-in calendar application that's pretty slick, but as an ...

  5. PHP之SQL防注入代码,PHP防XSS 防SQL注入的代码

    360提示XSS漏洞?这个XSS漏洞很不好修复.....如果是PHP程序的话,可以用下面的代码来过滤... PHP防XSS 防SQL注入的代码 class protection{public stat ...

  6. 抽奖模块代码分享(数据库sql + java业务代码)

    抽奖模块代码分享(数据库sql + java业务代码) 最近进行的项目中,有个抽奖的需求,今天就把相关代码给大家分享一下. 一.DAO层 /*** 获取奖品列表* @param systemVersi ...

  7. SQL sever基础代码

    SQL sever基础代码,自己整理的,希望对萌新有用,不喜勿喷,谢谢!! 有不懂的欢迎在评论区留言一起讨论,此内容不是唯一解,仅作参考 --注:数据库语句基本不分大小写除表名 --1.创建数据库 - ...

  8. Mysql进阶学习所用到的SQL测试库代码

    Mysql进阶学习所用到的SQL测试库代码 一.`myemployees`库 二.`girls`库 一.myemployees库 /* SQLyog Ultimate v10.00 Beta1 MyS ...

  9. 注入攻击-SQL注入和代码注入

    注入攻击 OWASP将注入攻击和跨站脚本攻击(XSS)列入网络应用程序十大常见安全风险.实际上,它们会一起出现,因为 XSS 攻击依赖于注入攻击的成功.虽然这是最明显的组合关系,但是注入攻击带来的不仅 ...

最新文章

  1. Linux-CentOS 查看(监控)服务器网卡流量
  2. Wink发布Wink Hub2家庭物联网控制中心
  3. ios签名软件_如何给无法上架App Store的App做ios签名?
  4. Openstack组件部署 — Keystone Install Create service entity and API endpoints
  5. linux rm(remove) 命令详解
  6. 谷歌X实验室开源了一款像血糖仪一样的EEG识别系统
  7. Ubuntu下用devstack单节点部署Openstack
  8. 相同update语句在MySQL,Oracle的不同表现(r12笔记第30天)
  9. config.cfg.php,PHP:使用给定的结构获取变量形式的config.cfg
  10. 电脑打字学习_寒假就这样做!即不让孩子烦,还能让他有进步,开学就能迅速进入学习状态!...
  11. z变换解差分方程例题_某些常见微分方程的一般解法(工具向)
  12. 【Spark】Spark基本概念
  13. Flutter进阶—铅刀一割
  14. 华为机试HJ9:提取不重复的整数
  15. c#读取生成excel表格文件xls、xlsx格式文件
  16. pyplot gtk2 conflicts with gtk3
  17. HDU 5768 Lucky7 (中国剩余定理+容斥)
  18. 西门子300硬件升级包下载_「西门子1200PLC教程」19.S7-1200入门实例
  19. 汉字笔画动图怎么做_怎么用flash制作汉字笔顺的动画
  20. 2017年西安邮电大学第十二届数学建模竞赛B题论文

热门文章

  1. 【英语】Flying By Dream---English
  2. 可恶的Java数组下标越界检查
  3. sql server 2008 的安装
  4. struts2.2 json配置
  5. Ubuntu 安装MySQL报共享库找不到
  6. OAuth 2.0 in Web API #Reprinted
  7. 【Spark-core学习之六】 Spark资源调度和任务调度
  8. Community找不到Workspace按钮的处理方法
  9. 1415-2 计科计高 软件工程博客Github地址汇总-修正版
  10. .net|dotnet应聘人员应该掌握的知识点