もう年明けたけどまぁ...えぇか...ということで振り返りをします。
開発振り返り
今年は平日の趣味開発が出来なくなってしまったので、大幅に開発のスピードが落ちました。 その代わり、業務でC#(Unity)を触りはじめたのでUnityの知見は大分!増え!たはず!!
新規作成されたレポジトリ
- https://github.com/Cj-bc/rmcache
手元のPCで使われてる各種ツールのキャッシュ削除を一括でするためのやつ
- https://github.com/Cj-bc/xr-devcomfy
XR開発中のデバッグ用途にInspectorを増やしたりするやつ。実質凍結中
- https://github.com/Cj-bc/ob-typst
typst用のOrg babel(Emacsのorg-mode内のコードブロックを実行するやつ)
Unity
元々Unityは基本的な所以外は触っていなかったため、結構色々目新しいものでした。
Cysharp/UniTask: Provides an efficient allocation free async/await integration for Unity.
AnnulusGames/LitMotion: Lightning-fast and Zero Allocation Tween Library for Unity.
あたりを新たに触るなどしました。又、
あたりは軽く触っていたものの、しっかりとは使っていなかったのですが、大 分触れるようになりました。
設計論など
1からUnityプロジェクトを作る仕事と既存のプロジェクトを引き継ぐ仕事とど
ちらもありましたが、それぞれで考えることが違っていて面白かったです。
引き継ぎは大変だったけど
1から作る場合は主に「クリーンアーキテクチャ」と「package by feature」 「async/await」を意識して設計しました。引き継ぐものは、元のプロジェク トはなるべく触らないようにしつつ、必要に応じてリファクタリングして asmdefを切ったりして整えました。
今扱っているプロダクトは、長期間動くものというよりはワンオフなものが多 いです。しかし、「前作ったものを改修してまた使いたい」みたいな話がチラ ホラあったため、拡張性・メンテナンス性をきちんと考えた設計が組みたいな と考えていました。(あとそもそも私自身設計をするのがすきです)
そういった時に、やっぱり目に付いたのがクリーンアーキテクチャでした。 Unityでは「そもそもUnityがフレームワーク」であり、ユーザーの入力が主で 稼動するためクリーンアーキテクチャそのままではあまり上手く嵌らない部分 があると思います。なので、あくまでも「Unityの部分はUnityのまま、切り出 せる部分は Pure C# で書く」といった切り分けをして運用しています。
ADR (Architecture Decision Record)の作成
「プロジェクトを引き継ぐ」という体験をした時に強く思ったのは、「このコー ドベースがどういった意図で設計されているのかが分からない」ということで した。特に、前任者が既に辞めてしまっていたりするともうどうも出来ません。 とりあえずプロジェクト全体のクラスを読んでみて、なんとなく設計を推測し ていく作業がある程度必要となりました。
というわけで、この苦労を後世に引き摺らないようにするために「どういう思 想で設計されているか」というドキュメントの作成は必要不可欠であると感じ てADRを取り入れました。
ADRは「設計の意図をドキュメントで残す」ことを目的とした文書です。特に、 「どういった設計をしたか」だけでなく「どういった背景からこうしたのか」 「何故他の代替案をとらなかったのか」といった内容も記載することで、後々 の設計変更の参考にも出来るようになっています。
ただ、そこまで厳格に運用するのではなく、ふわっとした状態で運用していま す。「背景」「どういう設計をしたか」は必ず書くようにして、代替案等は出 なければ書き込んでいません。
今は基本的に1プロジェクト1人みたいな配置になっているので自分勝手に色々 出来ていますが、これをうまくチームにも還元していきたいなぁというのが今 後の目標です。
Coroutine→UniTaskへの切り替え
コードベースを引き継いだ時、Coroutineが主体で書かれていることが多くあ りました。元々Unityではこれが非同期処理のやり方だし、別に動くのであれ ば問題はないのですが、個人的には以下のようなデメリットを感じています:
キャンセル処理がしづらい
例外を補足出来ない
わざわざ内部にステートマシン的なのを組んで順次実行しないといけない
これを解消するために、一部ずつUniTaskを用いたasync/awaitに置き換えてい きました。
時系列出来事振り返り
Apple Vision Pro体験
Resonite.loveのmisskeyコミュニティでの縁で、Apple Vision Proの体験をさ せていただきました。や~~~~~本当にすごかった。あまりに自然で付けている ことを忘れるくらい、という言葉が適切なくらい。
手をあまり上げずに操作出来ること、視線での操作が出来ることなどは本当に 体験しないと分からない良さがあるなぁと感じました。まぁ、個人で買うかと いうと未だかなぁ...という感じではありましたけどね。高いし...(主にはそ のせい)
最推し夜桜みあちゃんの卒業
あ゛!!!!!!!今世紀最大のトピックすぎるんですが、最推しの引退です。 や~~~~~~~~~~~今はまぁ立ち直った(大分)けどもまぁ、ねぇ、大分引き摺っていますとも、えぇ...
...んまぁ、引退といっても稀に顔を覗かせてくれたりするのでまだダメージ は少ないのですが...元気に幸せにしてってくれ、マジ。いつまでもラヴ
名取さなバースデーライブ現地
2024年は!!!チッタに!!!いっちった!!!!ケハ!!!!
ってことで今年は現地で鑑賞してきました。2023の内容が良すぎて思わず現地 に行ったわけですが、や~~~、今年もよかった。あとせんせえ方多すぎてやっ ぱすげぇな...となっていました。
正直な所、私は(勿論名取さなさんもすきなんですが)みあちゃんせんせえのオ タクで、「推しが見にいっているのと同じ場所にいきたい」とかいう凄く不純 な動機も割とあって見ている節があります。...ので、そんな身分で現地チケッ ト当ててしまったのは若干申し訳無いな...という気持ちもありつつ、当選し たからには全力で楽しむぞ!!!という気概で乗り込みました。
なんか就職できた
なんか...できました。拾ってもらえました!!わ~~い!!! 制作物を見て面白そ うと思って声をかけてくださって、会社の方も面白いことをやっていたのでそ のまま就職という流れになりました。(これめちゃうれしい)
しかも、仕方なく一般職になるとかではなく希望通りエンジニア(的な役割)と して...!!正味「社会に役立つ技術力」という観点で自信がなさすぎたのでエ ンジニアになるのは無理かなぁ~~~と思っていたのですが、無事なれてよかっ たです。
EmacsLispとかHaskellとかそこら辺を趣味レベル(=業務知識のない低い習熟度)で 書いている人間のための新卒枠なんてないのでね...多分...ガチで書ける人は ポストあるでしょうけども(Haskellなら国内ではHERPさん等がHaskell使って いますね)。
それまでは自分は就職に関しては絶望していたため就活を全然しておらず、
「まぁワンチャンプログラミングを仕事に出来たらいいな、多分だめだから事
務とかそういうやつになるんだろうな」と思っていたんですよね。将来設計が
ガバすぎる(そもそもあんまり生きていると思っていなかった節もある)。
なので就活の際も、「やっていることが面白そう」とかではなく「プログラム がかける」という観点のみで、基本的にSIerさんや派遣・常駐で使用言語は Java、みたいな範囲まで探していました。仕事内容に興味がないまま探してい るので志望動機とかで悩む日々...まぁもう11月12月とかから始めてて選べな かったのは自分が悪い、みたいな所はあります。
なので、業務内容が面白そう&自分に興味を持ってくれている会社に出会えた のは思わぬ救い船でした。
あと、普通に事務職に失礼すぎる書き方に見えそうなので補足ですが、私は人 間力とかコミュニケーション力とか社会人的素養的なのが大分ないので事務と か営業とかは多分できません。事務作業してくれる人も仕事取ってきてくれる 人も本当にたすかっています。ありがとう...今の自分だけでは仕事は回せません...
(そのうちにきちんと仕事を自分で取れるようにもなりたいですね)
自作キーボードデビュー
前々から欲しかった自作キーボードを就職祝いに買ってもらいました。ありがてぇはなし...
https://x.com/Cj_bc_sd/status/1782774148500177124/photo/1
スプリットキーボードで、親指の辺りにキーが豊富にあります。これでレイヤー 切り替えとかしたかってん...
ちなみに、現在は端子が壊れてしまって今動かないです。ドウシテ...
初本格カメラ(社用のα7-3)
唐突ですが、私は写真を撮るのが割とすきです。すきなんですが、本格的なカ メラではなくスマホのカメラでの撮影しかしたことがありませんでした。しか し、会社に社用のα7-3があり、同僚に映像屋がいたので教えてもらって初めて 使うなどしました。
や~~~~~~、楽しいね!!!カメラ!!!! ISOの設定だとかシャッタースピードの設 定だとか、そこら辺は触ったことなかったので結構新鮮でした。まぁ最近は使 えていないので若干忘れかけている所はありますが...また撮りにいきたいな。
ちなみに、 Unity のカメラの Physical Properties の設定項目が読めるよう にもなったので一石二鳥!
XRKaigi 2024
XR Kaigiに参加(客側)してきました。詳しくはレポートを別に書いているので それを参照ということで... 新しいハードに触れたり、weaverseLabさんの Resoniteを用いたコンテンツ体験したり出来てとてもうれしい。
2件ほどgithubにPR/issueが来た
made hosc 0.20 compatible by sss-create · Pull Request #4 · Cj-bc/hVMCP
Syntax highlighting in Org mode source blocks · Issue #1 · Cj-bc/ob-typst
うれ!!!しい!!!!何が嬉しいかというと、誰かが使っているということが嬉しい!!!!!!!!
私は基本的に「自分が作りたいから作った」民なので誰にも使われないのが普 通と思っています。ですが、なんか知らんけど誰かの役に立ったみたいでとて もうれしい...!!!
こういうことがあるとメンテするかぁ...って気になりますね。
2025年の抱負など
Meta Spatial SDK触ってみたい
Resoniteもうちょい復帰したい
友人関係増やしたい
仕事と生活のバランスを整えたい
残業毎日1.5hくらい以下にしたい
技術者との交流を増やしたい(イベントとかしっかり参加したい!)