Java 中的最佳做法是先声明变量再将它们作为参数
Is it a best practice in Java to declare variables before give them as parameters
假设这段代码:
public static Dataset<Row> getData(SparkSession sparkSession,
StructType schema, String delimiter, String pathToData) {
final Dataset<Row> dataset = sparkSession
.read()
.option("delimiter", "\t")
.csv(pathToData);
StructType nSchema= newSchema(schema, schema.size(), dataset.columns().length);
...
}
在将变量提供给 newSchema 方法之前声明变量并使它们成为最终变量是否是最佳实践,就像这样?
public static Dataset<Row> getData(SparkSession sparkSession,
StructType schema, String delimiter, String pathToData) {
final Dataset<Row> dataset = sparkSession
.read()
.option("delimiter", "\t")
.csv(pathToData);
final int dataSize = dataset.columns().length;
final int schemaSize = schema.size();
StructType nSchema = newSchema(schema, schemaSize, dataSize);
...
}
谢谢
这是一个品味问题。
引入局部变量可以让你命名概念。有更简单的陈述。简化内部循环。可能会在不引入新功能的情况下删除通用代码。
另一方面。命名很难。如果将所有代码都塞在一行中,代码会更短。如果代码不依赖于太多局部变量,可能更容易提取代码。
final
对于本地人来说可能有点过头了,除非代码已经一团糟。
视情况而定,假设您有一个像 func(list.get(0).getName.toString())
这样的调用
将其分配给一个变量并将其插入会更具可读性。有些人可能不喜欢额外的代码行,但对我来说值得分配给一个变量。
假设这段代码:
public static Dataset<Row> getData(SparkSession sparkSession,
StructType schema, String delimiter, String pathToData) {
final Dataset<Row> dataset = sparkSession
.read()
.option("delimiter", "\t")
.csv(pathToData);
StructType nSchema= newSchema(schema, schema.size(), dataset.columns().length);
...
}
在将变量提供给 newSchema 方法之前声明变量并使它们成为最终变量是否是最佳实践,就像这样?
public static Dataset<Row> getData(SparkSession sparkSession,
StructType schema, String delimiter, String pathToData) {
final Dataset<Row> dataset = sparkSession
.read()
.option("delimiter", "\t")
.csv(pathToData);
final int dataSize = dataset.columns().length;
final int schemaSize = schema.size();
StructType nSchema = newSchema(schema, schemaSize, dataSize);
...
}
谢谢
这是一个品味问题。
引入局部变量可以让你命名概念。有更简单的陈述。简化内部循环。可能会在不引入新功能的情况下删除通用代码。
另一方面。命名很难。如果将所有代码都塞在一行中,代码会更短。如果代码不依赖于太多局部变量,可能更容易提取代码。
final
对于本地人来说可能有点过头了,除非代码已经一团糟。
视情况而定,假设您有一个像 func(list.get(0).getName.toString())
这样的调用将其分配给一个变量并将其插入会更具可读性。有些人可能不喜欢额外的代码行,但对我来说值得分配给一个变量。