GoでESEPIという適性検査OSSを作りました。
詳細は以下に書いたので、この記事では技術的な話しかしません。
技術的側面
- Goによるシングルバイナリ
- 試験内容と称しブラウザでアクセスさせるタイプのサーバー
- Goのhtml/templateとbootstrapでつくられた適当なフロント
- グローバル変数を直接書き換える雑な作り
学びリスト
- 試作品をきれいに作るのは高い技術力がいる
- Goはシングルバイナリだから配布が容易だろうと思ったが、クライアントOSから何度も実行を止められる
- ユーザビリティ難しい
- Mac持ってないとMacの動作確認できない
試作品をきれいに作るのは高い技術力がいる
漠然としたアイデアをメモするようにコードを書いたので、非常に雑な作りになっています。プロトタイプは保守するものでもないかな、と思うので雑は雑で良いのですが、きれいなコードを書く難しさを学びました。
グローバル変数をhttpリクエストが来るたびに排他ロックなしに書き換えるとかいうなかなかに危ない作りをしています。
(プロダクションコードでこれやったらダメだけどね)
Goはシングルバイナリだから配布が容易だろうと思ったが、クライアントOSから何度も実行を止められる
シングルバイナリがいいよね、って理由でGoを選んだのですが、Windowsで試したところ「危ないから実行するな」と幾度となくお達しをいただきました
実際、GitHubのリリースって、実行可能ファイルを直接アップロードできるのでそれは本当にソースコードと同じものなのか?という疑問はつねにつきまとうかと思います。
ユーザビリティ難しい
「ブラウザでlocalhost:8880
を開いてください」みたいな指示を試験と称して混ぜました。
実際のところ試験として導入するためには様々なハードルがあります。
詳しい人がいないと試験できないんじゃないかな……
Mac持ってないとMacの動作確認できない
当たり前だけど鬱陶しいですね、Macの制約。
Flutterアプリを作ったときにiOS用のビルドできなかった思い出が先行している気もします。
まとめ
アプリケーションを公開するのは学びが多くて楽しいですね。