2020年12月第2週レポート
インプット
📝 「実践Rustプログラミング入門」を第4章まで読んだ
先週に引き続きRust本を読んでいます。第4章では逆ポーランド記法をパースして計算するCLIを作るといった内容でした。コマンドライン引数の処理、ファイルI/O、エラーハンドリング、ユニットテスト、と開発に必要な基礎を押さえてあり最初のサンプル実践としてとてもよくまとまっていると思います。ここまでの知識でGLBコンバータを作ってみようと思います。
📝 GLBの仕様を調べた
RustでglTFをGLBにコンバートするCLIツールを作る下準備として、GLBの仕様を確認しました。
大雑把に言うと、glTFのJSONとジオメトリデータ、テクスチャ画像のバイナリを全部ひとまとめにガッチャンコする、といったものかなと。ただジオメトリもテクスチャも全て一つのバイナリバッファにまとめてしまうので、glTFのJSONのbufferViewやimageあたりのプロパティは修正の必要がそうです。
📝 「単一責任原則で無責任な多目的クラスを爆殺する」を読んだ
僕はDRY原則を全面に押すのはあまり好きではなくて、その理由がまさにこの記事に書いてあることで、実装コードが同じかどうかではなくドメインにおけるコンテキストが同じかどうかで判断すべきなのに誤って伝わっているケースが結構多いからです。「Don`t repeat」なんて字面を見てしまうとコードの重複そのものが悪と捉えてしまう気持ちもわからなくもないので、だからこそDRY原則を推すのはあまり好きではありません。
そのほかにも値オブジェクトやファーストクラスコレクションについても触れられており、プログラム設計に関心が強い自分にとって参考になる記事でした。
アウトプット
🛠️ 「M1 Mac mini環境構築メモ」の記事を書いた
M1プロセッサ搭載のMac miniを購入したので、環境構築のメモを作って公開しました。
my new gear… pic.twitter.com/cwHsTzIouy
— d_yama (@dy_karous) December 7, 2020
購入して1週間ほど経過しましたが、動作は快適で懸念していた自分がよく使うアプリケーションがクラッシュするということもなく、以前使っていたMBP2017からほぼ移行できたかと思います。
先週にはIntelliJ IDEAのUniversal版のバイナリが公開されたり、Docker DesktopのM1チップ対応版のプレビューが公開されていたりするので完全移行の日も近そうです。