【发布时间】:2017-06-12 13:15:13
【问题描述】:
我正在熟悉 Vapor 2.0 服务器端 Swift 框架,而让我感到困惑的是字符串文字的广泛使用。例如,实现Model 协议,您必须像这样解析和序列化行(取自自动生成的示例项目):
// Initializes the Post from the database row
init(row: Row) throws {
content = try row.get("content")
}
// Serializes the Post to the database
func makeRow() throws -> Row {
var row = Row()
try row.set("content", content)
return row
}
如您所见,对于每个属性,您使用它的数据库名称两次作为字符串文字,仅用于此特定协议。在其他情况下还有更多——比如Database 协议、您自己的方法等。
这里使用文字字符串作为参数有静态分析器不检查它们的明显缺点(就像Objective-C中的键值参数一样),使得这种方法非常容易出错。有没有我遗漏的最佳实践?
【问题讨论】: