kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

「Go言語によるWebアプリケーション開発」7章 ランダムなおすすめを提示するWebサービス

Go言語によるWebアプリケーション開発

Go言語によるWebアプリケーション開発

7章は「ランダムなおすすめを提示するWebサービス」で、公開されているAPIを利用して、独自APIとして利用されています。

いままでの章をやっていれば、かなり理解しやすい内容になっていると思います。

応用編になった感じですかね。

constの列挙子の部分はすごく学びになりました。

列挙子

列挙子を用いて定数を設定する方法と、文字列への変換を行う方法については感心しました。

やっぱり定数値のファイルは分割しておきたいですね。

type Cost int8

const (
    _ Cost = iota
    Cost1
    Cost2
    Cost3
    Cost4
    Cost5
)

var constString = map[string]Cost{
    "$": Cost1,
    "$$": Cost2,
    "$$$" : Cost3,
    "$$$$" : Cost4,
    "$$$$$" : Cost5,
}

func (l Cost) String() string {
    for s, v := range constString {
        if l == v {
            return s
        }
    }
    return "不正な値です"
}

func ParseCost(s string) Cost {
    return constString[s]
}

いままでmapで定数値に合ったstringを書いていたのに不満があり、いい方法がないか考えていました。このソースを見ると感心しますね。

気づきがあるのは、ありがたいです。

次は「ファイルシステムのバックアップ」です。