Small Changes

2023年2月の振り返り


Metadata


第2領域:2月は72h(先月105h)

2月は日数が少ない分時間も減っています。

che-go開発やGo言語で対戦シューティングゲームを作る、初めてのGo言語に時間を使えました。

ラン:2月のランは12km(先月12km)

だいぶ暖かい日も増えてきましたが、まだ寒い日が多いです。太陽が出ていると暑く感じたりで体温調整が難しいですが、3月はもっと走りやすい日が多そうです。

2月の週刊ニュース

2月のハイライト

Go言語で対戦シューティングゲームを作る

オンラインで同期させる仕組みが気になったのとGo言語の題材を探していて面白そうな題材を見つけました。

約20hほど触っていましたが、途中でTypeScriptやGo言語の良い書き方のほうが気になり、元々の目的からずれた方に注力してしまっていました…

とはいえ、Go言語でいえばGinやMelody、jsonパッケージを触れたり、JavaScriptではモジュール分割やRequireJSやTypeScriptを導入したりと色々思いついたことを試しながら進めることができて楽しかったです。

途中から、他の対応ややりたいことがでてきて参考コードを見ながら自分の読みやすい形でリプレイスするところまでいけませんでしたが、なんとなくWebSocketのサーバーとフロントの流れも分かったのは良かったです。

実際にWebSocketを使うタイミングはあまりないかもしれませんが、設計した上でコーディングしないとサーバーとフロントで処理がぶつ切りになるのでコードを追うのやデバッグが辛そうだなと思いました。大規模になればなるほど設計力が試されそうだなと思いました。

時間がかかりすぎているのもあり、モチベを維持するのも難しく一旦途中でしたが終わろうと思います。

che-go開発

2月は祝日があったので、途中に有給を取り、4連休にしました。

4連休でChatGPT先生と協力しながら、che-goというGo製のコマンドラインツールを自作しました。

最初はマークダウンのテキストファイルでチートシート(自分用のよく使うメモ)を管理できたら最高だなと思っていましたが、ChatGPT先生がYamlで管理する案をだしてくださり、Yamlのほうが簡易的なデータベース的に扱いやすく今回のチートシート管理にぴったりだったのでYamlを使う形で実装を行いました。

本来ならGoはコンポジション的な形に自分でゼロからライブラリなどを選定してモジュールや関数を組み合わせて作り上げることが求められます。

今回は、最初にChatGPT先生に実装例をいくつか出して頂きました。ChatGPT先生のおかげでライブラリを探す手間やGoではどういう風にコードを書けばいいのかという問題を短時間でクリアすることができました。

コードのディレクトリやmain関数と一つのコマンド、コマンドの中で使うYamlを扱うためのUtil関数を用意するところまでは大変でしたが、一個できた後は基本的には同じ手順でコードを書けました。もちろん、コマンド毎に微妙にロジックが変わる部分は大変でしたが。

私的には一気に何かを作り上げるのは正直苦手でしたが、4連休の内に自作コマンドラインツールを作り上げるという本当にすごい体験できました。これもChatGPT先生の力を借りなかったらもっと時間がかかっていただろうなと思います。

References