Closed akif999 closed 1 year ago
func (d *Device) WriteConfig(cfg Config) error
で実施している各種エラーチェックは、 type Config 側で実施した方がよさそうだがうまく言語化できない。
https://github.com/akif999/drivers/pull/6#issuecomment-1427262331 Config のバリデーションをどこでどうするべきかについて検討した結果。
以下より、案 3 を採用する。
func (d *Device) WriteConfig(cfg Config) error で実施している各種エラーチェックは、 type Config 側で実施した方がよさそうだがうまく言語化できない。
validation は Config に持たせたほうが良い気もするんだけど、そうじゃない気もする。 byteTo とか toByte とかやってる分には Validation は要らんのでは?という気持ちはある。
RssiAmbient とか、パラメータ毎に個別に設定するときは validation してもいいと思うけど。 でも、メンバーに直接アクセスできる現状だとその手のチェックはできないし、わざわざメソッド化してまでやりというと。。。
https://github.com/akif999/drivers/pull/6#issuecomment-1428913615
Config のバリデーションをどこでどうするべきかについて検討した結果。 以下より、案 3 を採用する。
案 3 に基づき以下にて変更した。 7e3740a86b469889eeb5720c0f6b183979dd8c1d c998f6aee4d034e66c8abbd723a7e6cfb6fd3cdd
Config.Validation()
は export とした
Config.Validate()
が一度もコールされていないConfig.Validate()
をコールした結果、不正なパラメータはなかったConfig.Validate()
をコールした結果、不正なパラメータはあった
https://github.com/akif999/drivers/issues/2#issuecomment-1414572421