首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌下一张幻灯片中使用了什么语言?

谷歌下一张幻灯片中使用了什么语言?
EN

Stack Overflow用户
提问于 2019-12-02 11:00:03
回答 2查看 84关注 0票数 1

我正在看谷歌的下一次会议,因为我对谷歌的云和他们的围棋语言感兴趣。

开发者的生态系统/社区有他们的做事方式,文化习俗,这对于那些没有经验填补空白的局外人来说是陌生的。

所以我有几个问题:

  • 这是什么语言?
  • 在样例、Python、Go或伪代码中使用什么语言?

  • 为什么有一个对getFailedInserts()的调用,但是get的结果没有分配给任何东西?
  • 使用我所说的魔术字符串是正常的吗?"WriteMutatedRecords",作为指令,而不是将方法命名为该方法或使用枚举,或字符串consts?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-02 11:05:01

代码示例看起来像是用Scala或Java编写的。从许多指标可以看出:

代码具有Java风格的语法,在对象(例如,language

  • new BigQuerySchemaMutator() )上调用

  • 方法,这意味着它是面向对象的

  • ,是Java样式构造函数

的典型形式。

然而,这些指标并没有给出任何指示,无论是Scala还是Java。这些语言的语法非常相似,而且都是JVM语言。

在我看来,Scala最有力的指示是,代码是以函数形式编写的,它包含BigQueryIO上的两个方法调用,如果是BigQueryIO,它可以是类BigQueryIO本身的静态方法,也可以是在Scala中的object BigQueryIO上定义的方法,这是该语言中常见的设计模式。

然而,最终的;只有在Java中才是必需的。

对于阅读代码示例的人来说,这个问题实际上并不重要,因为Apache (这是这里似乎正在使用的SDK )是一个Java库,可以在Java和Scala中使用。

getFailedInserts的结果似乎是通过对其调用.apply来进一步处理的。这种风格被称为函数式编程。

这是一种完全不同的编程方法,而不是大多数其他语言中常见的过程编程模式。(例如,将某物存储在一个变量/一般变量中)

请注意,这个示例实际上并不包含任何函数编程本身(例如,高阶函数别名lambdas),但是函数式编程风格是显而易见的。

不使用神奇字符串总是被认为是最佳实践,但是对于这样的代码示例,他们可能希望保持代码尽可能简单--因为它已经是一行(尽管有换行)。

票数 1
EN

Stack Overflow用户

发布于 2020-01-03 17:42:29

代码示例是使用模型(https://beam.apache.org/)的Java。

我相信幻灯片中的完整代码在这里:https://github.com/ryanmcdowell/dataflow-dynamic-schema/blob/master/src/main/java/com/google/cloud/pso/pipeline/DynamicSchemaPipeline.java

幻灯片中的代码:

'events_table'

  • If尝试将数据插入表--它从Big返回一个临时错误(例如,“列'foo‘不存在”),它运行一个表突变,添加'foo’并再次插入数据。

它是一种将灵活的表创建到Big中的模式,这是一个预定义的模式列数据库。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59137517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档