2020年12月第2週レポート

インプット

📝 「実践Rustプログラミング入門」を第4章まで読んだ

先週に引き続きRust本を読んでいます。第4章では逆ポーランド記法をパースして計算するCLIを作るといった内容でした。コマンドライン引数の処理、ファイルI/O、エラーハンドリング、ユニットテスト、と開発に必要な基礎を押さえてあり最初のサンプル実践としてとてもよくまとまっていると思います。ここまでの知識でGLBコンバータを作ってみようと思います。

📝 GLBの仕様を調べた

RustでglTFをGLBにコンバートするCLIツールを作る下準備として、GLBの仕様を確認しました。

GLB File Format Specification

大雑把に言うと、glTFのJSONとジオメトリデータ、テクスチャ画像のバイナリを全部ひとまとめにガッチャンコする、といったものかなと。ただジオメトリもテクスチャも全て一つのバイナリバッファにまとめてしまうので、glTFのJSONのbufferViewやimageあたりのプロパティは修正の必要がそうです。

📝 「単一責任原則で無責任な多目的クラスを爆殺する」を読んだ

単一責任原則で無責任な多目的クラスを爆殺する

僕はDRY原則を全面に押すのはあまり好きではなくて、その理由がまさにこの記事に書いてあることで、実装コードが同じかどうかではなくドメインにおけるコンテキストが同じかどうかで判断すべきなのに誤って伝わっているケースが結構多いからです。「Don`t repeat」なんて字面を見てしまうとコードの重複そのものが悪と捉えてしまう気持ちもわからなくもないので、だからこそDRY原則を推すのはあまり好きではありません。

そのほかにも値オブジェクトやファーストクラスコレクションについても触れられており、プログラム設計に関心が強い自分にとって参考になる記事でした。

アウトプット

🛠️ 「M1 Mac mini環境構築メモ」の記事を書いた

M1プロセッサ搭載のMac miniを購入したので、環境構築のメモを作って公開しました。

M1 Mac mini環境構築メモ

購入して1週間ほど経過しましたが、動作は快適で懸念していた自分がよく使うアプリケーションがクラッシュするということもなく、以前使っていたMBP2017からほぼ移行できたかと思います。

先週にはIntelliJ IDEAのUniversal版のバイナリが公開されたり、Docker DesktopのM1チップ対応版のプレビューが公開されていたりするので完全移行の日も近そうです。

Profile
d_yama
元Microsoft MVP for Windows Development(2018-2020)
Sub-category : Windows Mixed Reality
Search