Konifar's ZATSU

私はのび太の味方じゃないわ、悪の敵よ

Simple Bankを#10までやった感想

TECH SCHOOLが提供しているBackend master classの題材であるSimple Bankをやってみた感想を書いておく。最後までやってから書こうかと考えていたが、思ったより内容が濃くて忘れちゃいそうなので途中経過を書くことにした。

github.com

全31回分のYouTubeの動画を見ながら残高管理、送金を行える簡易銀行サービスを作成する形式で、いま10回分やってみたが結構よさそう。10回でどのくらいまでいくかというと、DBスキーマの設計・作成、CRUD制御のGoのコード/テストコード作成、Postgresのデッドロックや同時実行制御の理解、GitHub ActionsによるCIの設定ができる。

対象レベル

  • ある程度開発経験のある人が対象
    • Databaseとは?Dockerとは?Git/GitHubとは?といった説明はない
    • GoはTour of GoをやっておけばOK
  • Backendの開発経験はなくてもたぶん大丈夫
    • 写経とエラーメッセージを読むことに慣れていれば、YouTubeの内容をもとにキャッチアップできる構成になっている
  • 英語はゆっくりで聞きやすいのでカンファレンス動画とか見れる人ならたぶん大丈夫
    • 英語字幕をつけてくれているのでリスニングに自信がなくても理解しやすい

よかったところ

  • 動画の長さが10~30分くらいで短め
  • ひととおり必要なツールやサービスを体験できる
    • 単にGoでコードを書きましょうではなく、DockerやPostgres、GitHub Actionsなども順番に触れる
    • 11回以降のタイトルを見ると、DBのモックやAWSへのデプロイなどもカバーされているっぽい
  • チームで働く前提の構成になっている
    • 第1回がDBスキーマを設計してdbdiagramでドキュメントとして残すという内容
    • マイグレーションスクリプトや、Makefileの書き方なども丁寧に説明している
    • 第5回がCRUD操作まわりのGoのコードのテスト、第10回がGitHub ActionsによるCIの設定
  • エラーを起こしてそれを解決するという構成になっている
    • 動画内で原因や解決方法を説明するだけではなく、そのプロセスを学べる
      • トランザクションの同時実行制御に問題のあるコードを書いておいて、次の回でテストを書く時に修正する流れとか
      • GitHub Actionsでのテスト実行も、最初にPostgres DBのセットアップがない状態でエラーにしてから、ドキュメントを見てymlに設定を追加して試して、また違うエラーが出たら調べて、という流れだった
    • エラーを解決する時に、公式のドキュメントをブラウザで調べるところを動画で見れるのはよい
  • 毎回「公式のドキュメントを見ろ」と繰り返し言ってる
    • 説明をした後で、大事なのは公式のドキュメントを読むこと、と言っている回が何回かあった
    • これは自分の経験でもとても大事なことだと思う
  • 実際に動かして体験して理解する構成になっている
    • 第9回のTransaction Isolation Levelの説明では、 READ UNCOMMITTEDREAD COMMITTEDREPEATABLE READSERIALIZABLE をそれぞれセットした上で2つのターミナルからSelectやUpdateを流して結果を確認した

注意が必要なところ

  • ちょっと古い部分もある
    • 大きな問題はないが、ツールのバージョンが古いところがある
    • 動画内でも何度も言われているとおり、公式のドキュメントをちゃんと見ることが重要
  • 技術選定はわりとさらっと話されている
    • 第4回のdb/sqlかgormかsqlxかsqlcかという話は、簡単なPros/Consが話された上でsqlcを使うことにしている
    • gormなどと比べて、その後の回でトランザクション同時制御の話を説明しやすいという観点の選定でもありそう
    • 一から作らなくてももっと楽なやり方もありそうだが、まずはそういうことは考えず言われたとおりに触って体験するのがよい

こんなコンテンツが無料で受けられるなんていい時代ですなあ。

なかなか面白いので、時間を見つけて最後まで完走したい。こういうの毎回ブクマだけしてやらずに放置するので、まずはやってみた自分を褒めたい。えらい!!