Draft Hubを構成する技術


バックエンド技術

バックエンドには Go言語、ORマッパーとしてGorm、WebフレームワークとしてEchoを採用しました。理由はGolangを使ってみたからです笑。使ってみた感想としては、すごく良かったです。感覚的に書けるGo言語の良さ、Echoの良い感じのオートマ、マニュアル感が気に入っています。特にエラー処理部分が気に入っています。その辺、上手く書けないかなと思っている方はGolangおすすめだと思います。

func MaybeThrowError() (string, error) {
  abc, err := MayThrowError()
  if err != nil {
    return  "", err
  }
    return abc, nil
}

クラウド技術

個人開発かつOS周りの知識が充実している訳ではないので、アプリのホスティングはクラウドです。クラウドはGoogle Cloudを採用しました。GCPを選んだ一番大きな理由は以下の通りです。

  • 無料枠が残っていた

  • Golangとの相性が良さそう(Go言語はGoogleが開発したため)

  • 心躍ったから

ちなみにウェブアプリは、Cloud Runで動かしています(特に理由はない)。データベースはCloud SQL(MySQL)を使っています。その際に、Gormとの接続で困ったことがあったので、ここにまとめています。

ついでにメール配信にはGmail APIを採用しました。メールサーバーは、結構高かったり、個人利用を認めていない場合が多かったという消極的な理由での採用です。ただ、使用感はすごく気に入っています。

フロントエンド技術

フロントエンドにはTypescriptを採用しました。フレームワークとしてはもはやデファクトスタンダードになりつつあるReact。Typescriptは最近、仕事でも触っていますが、すごく書いてて心地が良い言語だと思います。Reactは前に使ったときに、すごく感触が良くて使い続けています。もともとJQueryを使っていましたが、個人的にはReactの方が好みですね。

CloudFlare

WAFなどを兼ねてCloudFlareを採用しています。使ってみて感じていますが、無料でこんなに出来て良いの?、といつも驚いています。まだまだ勉強中ですが、面白い設定があったので、有効化しています。個人的には、クラウドにあるWAFのサービスより、CloudFlareを使った方がスッキリする感覚があるので好きです。

終わりに

浅いですが、これで終わります。ここではTech関係だけでなく、普通にドラフトの話も発信しようと思うので是非。

この記事が気に入ったらサポートをしてみませんか?