yamori

有給休暇計算を主目的とした簡易勤怠管理システム

Commits at master

  1. 87be8e69 proto: ログアウト RPC Shota FUJI authored at Shota FUJI comitted at
  2. c433adc6 proto: ログイン RPC Event Sourcing をするにしろ通常の CRUD SQL にするにしろ、 まずこれが必要になる。このあとのユーザ周りの設計にも必要 になってくる。 Shota FUJI authored at Shota FUJI comitted at
  3. b24ca3f0 backend: connectrpc を使ったサーバ リクエストを受けると Go -> Zig (WASM) -> Go という順番で処理を 行う。 connectrpc のデザイン制約上 binary -> Go struct -> binary -> Zig struct -> binary -> Go struct -> binary と非常に非効率な シリアライズ・デシリアライズをしてしまっている。ただ、現状 Zig で まともな gRPC ライブラリがないこと、自前の HTTP2/3 をベースにした 実装だとプロファイルやテストで実装コストが膨らむことから当面は この非効率実装を妥協点とする。 長期的には独自の protobuf 用 RPC + rate limit 付きの (非効率な) 現状と同じ connectrpc 経由の外部向け gRPC というのが無難そうか。 Shota FUJI authored at Shota FUJI comitted at
  4. 75d721c8 backend: Wazero を使った Go からのコア呼び出し gRPC やらサーバ周りは Go が充実しているため。 また、サンドボックスで実行されることにより I/O を限定でき、 安全にコアを実行できる。 Shota FUJI authored at Shota FUJI comitted at
  5. f5eafc11 backend: WASM バックエンド DB とかはない。そもそもどんな DB アクセスにするのかとか 設計とか考えてないし。 Shota FUJI authored at Shota FUJI comitted at
  6. 62a6766e backend_core: Zig から protobuf を利用する 使っている Gremlin というコード生成ライブラリと Zig という言語の 仕様上、 proto でライブラリを出力、というのはハックになってしまう。 そのため、多少効率は悪くなるが利用側で都度出力する形にした。 Protobuf は .proto 毎にソースファイルを生成、という形だが Zig は 配布形態に合わせたパッケージングとなる。つまり、静的・動的な ライブラリや実行ファイルがモジュールの単位となる。そのため「複数 ファイル群をモジュールとして公開」ということはできない。 このコミットでは protobuf の wkt (well-known types) の追加も 含まれている。これは Gremlin が protoc に対応しておらず wkt が 含まれていないため。このベンダリングに伴うライセンス周りの変更も 入っているため少し変更ファイル数が多くなっている。 Shota FUJI authored at Shota FUJI comitted at
  7. e551c6fc proto: 単一ワークスペース向け構成 RPC 現実的な運用としてマルチワークスペースはなさそうということが判明。 自分の組織だけのデプロイなのにワークスペース選択やらがあるのは不便なので 単一ワークスペース向けのフローを考えそれに必要な RPC を実装した。 Shota FUJI authored at Shota FUJI comitted at
  8. 90396a7f proto: 疎通確認RPC 実装初期やテスト、ステータス確認などいろいろ便利なため。 Shota FUJI authored at Shota FUJI comitted at
  9. 25753283 test_go_consumer: サンプルパッケージの削除 Shota FUJI authored at Shota FUJI comitted at
  10. 1fcfa4b3 proto: Go バインディングの出力 サンプル用にテストのパッケージも追加している。 Shota FUJI authored at Shota FUJI comitted at
  11. 24c1c392 docs: アーキテクチャ図を更新 "ship fast" を優先するため使いやすい技術スタックにした。 また、 web ホスティングが優先要件となったためそこも含めた。 Shota FUJI authored at Shota FUJI comitted at
  12. 5a71f21c react_ui: 勤怠記録編集ダイアログ ショートカットキーだけでは半日の入力に無理があるため。 半日の記録の頻度などを考え、一先ずこれでどうにかなるのでは?と いうことで実装した。 Shota FUJI authored at Shota FUJI comitted at
  13. 7d060f01 react_ui: 改善された勤怠履歴のフィールドへ移行 ひとまずバックエンド、そしてスキーマから旧フィールドを削除するために 旧フィールドの利用を消した。 UI 上での変更はまだ。 Shota FUJI authored at Shota FUJI comitted at
  14. 029baa80 idb_backend: 改善された一日未満へのデータモデルへ移行 Shota FUJI authored at Shota FUJI comitted at
  15. 72e12b4e idb_backend: 改善された一日未満のデータのストレージ移行 Protobuf メッセージの移行もしてしまうと変更がかなり大きくなって しまうため、内部のストレージ設計のみ変更した。 Shota FUJI authored at Shota FUJI comitted at
  16. 9bc9de45 idb_backend: 解消済みのTODOコメントを削除 Shota FUJI authored at Shota FUJI comitted at
  17. 6a2e0bb6 proto: 一日未満の勤怠記録のデータ設計を改善 以前のままでは半日公休+半日出勤&時間単位年休といった記録が つけられなかった。オフラインで議論を重ねてこの形なら汎用性 とシンプル性が保てるという結論に達したものをコードにした。 Shota FUJI authored at Shota FUJI comitted at
  18. 4e25a2f1 idb_backend: マイグレーションを個別のファイルに分割 大きくなりすぎて書いたり読んだりするのが大変になってきたため。 Shota FUJI authored at Shota FUJI comitted at
  19. 427faaf9 react_ui: CSV/TSVダウンロード Shota FUJI authored at Shota FUJI comitted at
  20. 8689f7f2 react_ui: 集計画面に未入力日数を表示する Shota FUJI authored at Shota FUJI comitted at
  21. eeffc205 react_ui: 勤怠記録書き込み成功時にトーストを出さない 複数日に纏めて書き込む場合は問題ないが、キーボードショートカット で一日ずつ書き込む場合は非常に邪魔で仕方ない。 Shota FUJI authored at Shota FUJI comitted at
  22. 538052dd react_ui: サマリ画面のタイトルを変更 わかりやすいタイトルはないか意見を聞いたところ、このデータは 集計データであり月次集計などが適当であるという意見をもらった ため。ページとしては期間は任意のため、月次・年次という装飾は つけずに集計表とぼかした。 Shota FUJI authored at Shota FUJI comitted at
  23. 3afd26fe react_ui: ワークスペースサマリ画面 Shota FUJI authored at Shota FUJI comitted at
  24. 4f8e1c68 README の実装状況を更新 Shota FUJI authored at Shota FUJI comitted at
  25. b4deadf5 react_ui: 勤怠記録編集のキーボードショートカット Shota FUJI authored at Shota FUJI comitted at
  26. c808f6cc react_ui: 勤怠記録編集処理をモジュールに切り出し メニュー以外からも呼び出したかったので。リファクタだけでもボリュームが あるため個別のコミットにした。 Shota FUJI authored at Shota FUJI comitted at
  27. 30b9a80d react_ui: 省略表記 Shota FUJI authored at Shota FUJI comitted at
  28. cbca2b2c idb_backend: 省略表記 Shota FUJI authored at Shota FUJI comitted at
  29. 7f34578c proto: 省略表記フィールド カレンダーで詰めて表示する際に、この設定がないと一文字しかでなかったり わかりづらい省略になったりで不便なため。 Shota FUJI authored at Shota FUJI comitted at
  30. d9413a5d react_ui: カレンダーの行ヘッダを労働者詳細へのリンクにする 使っていてジャンプできないのは不便だと感じたため。 Shota FUJI authored at Shota FUJI comitted at