我必须重构代码,但我不知道如何最好地定义我的结构。
我有一个米表[]Meter
和Meter
type Meter struct {
ID string `json:"meter_id"`
ConsoProd string `json:"conso_prod"`
OperationID string `json:"op_id"`
Measures []Measure `json :"measures"`
}
第 3 个字段将始终位于此处,但“测量”有多种变体,具体取决于过程中的步骤。
这是一般Measure结构:
// Measure is a measure from a Meter
type Measure struct {
IndexName string `json:"index_name"`
IndexValue int `json:"index_value"`
Timestamp time.Time `json:"timestamp"`
Delta float64 `json:"delta"`
Redistributed float64 `json:"redistributed,omitempty"` // We don t need the redistributed field in Raw Measure
}
首先,我们得到“原始值”
type RawMeasure struct {
IndexName string `json:"index_name"`
IndexValue int `json:"index_value"`
Timestamp time.Time `json:"timestamp"`
Delta float64 `json:"delta"`
}
然后我们将计算重新分配的值,并将其存储到字段redistributed中
该措施永远不会重新分配。
另外,我有2个数据源。如果数据来自source2,它永远不会有IndexName / IndexValue
type RawMeasureFromSource2 struct {
Timestamp time.Time `json:"timestamp"`
Delta float64 `json:"delta"`
}
在这里我们可以看到我可以创建几个结构:(RawMeasure、RawMeasureFromSource2、Measure),然后我应该创建其他 3 米变量。
由于我将管理大量数据,因此我需要小心优化内存,但这似乎会使我的代码变得更加复杂。
有没有办法既获得简单的代码又优化内存使用?
汪汪一只猫
相关分类