我正在看谷歌的下一次会议,因为我对谷歌的云和他们的围棋语言感兴趣。
开发者的生态系统/社区有他们的做事方式,文化习俗,这对于那些没有经验填补空白的局外人来说是陌生的。
所以我有几个问题:

getFailedInserts()的调用,但是get的结果没有分配给任何东西?。
发布于 2019-12-02 11:05:01
代码示例看起来像是用Scala或Java编写的。从许多指标可以看出:
代码具有Java风格的语法,在对象(例如,language
new BigQuerySchemaMutator() )上调用
的典型形式。
然而,这些指标并没有给出任何指示,无论是Scala还是Java。这些语言的语法非常相似,而且都是JVM语言。
在我看来,Scala最有力的指示是,代码是以函数形式编写的,它包含BigQueryIO上的两个方法调用,如果是BigQueryIO,它可以是类BigQueryIO本身的静态方法,也可以是在Scala中的object BigQueryIO上定义的方法,这是该语言中常见的设计模式。
然而,最终的;只有在Java中才是必需的。
对于阅读代码示例的人来说,这个问题实际上并不重要,因为Apache (这是这里似乎正在使用的SDK )是一个Java库,可以在Java和Scala中使用。
getFailedInserts的结果似乎是通过对其调用.apply来进一步处理的。这种风格被称为函数式编程。
这是一种完全不同的编程方法,而不是大多数其他语言中常见的过程编程模式。(例如,将某物存储在一个变量/一般变量中)
请注意,这个示例实际上并不包含任何函数编程本身(例如,高阶函数别名lambdas),但是函数式编程风格是显而易见的。
不使用神奇字符串总是被认为是最佳实践,但是对于这样的代码示例,他们可能希望保持代码尽可能简单--因为它已经是一行(尽管有换行)。
发布于 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'
它是一种将灵活的表创建到Big中的模式,这是一个预定义的模式列数据库。
https://stackoverflow.com/questions/59137517
复制相似问题