ストップウォッチゲームを作ってみた

ストップウォッチゲームをTypeScriptの練習として作ってみました。

npx 334-stopwatch-gameで実行できます

実行するとカレントディレクトリにjsonファイルが生成されるので注意

www.npmjs.com

正直、大したこと無いゲームですが、思いの外考えることが多くて楽しかったです。 ゲームロジックが3, 4行なのに対してスコアの保存やスコアの表示、ゲームの起動などに何十倍も処理が書かれていて、 果たして自分は何を書いているんだ…。という気持ちになりましたが、そんなものでしょう。

本当はデータの永続化をaws lambdaとファイルの二種類にしてユーザが自由に選べるようにしたかったんですが、 aws lambdaがわからなすぎてモチベが無くなり、諦めました。今後の課題にします。

だいたい学んだこととしては、

  • 責務の分割
  • Interfaceを実装して動的にロジックを切り替える手法(Strategyパターン)
  • 浮動小数点同士の計算
  • staticファクトリメソッドによるオブジェクトの生成
  • JSONファイルにおける配列の保存方法
  • node.jsのエラー処理
  • TypeScriptの型の書き方
  • 軽量DDDもどきでの保存ロジック
  • node.jsのファイルシステム
  • inquirerの使い方
  • npm publishの行い方

ショボい何の目的もないアプリケーションでも作ってみたら結構勉強になりますね。

TypeScriptがかなり好きで、大分慣れてきたので、もう少しこんなふうに小さいアプリケーションを何個か作ってみたいです。