ツーリング中止

台風が近づいてるのでツーリングは中止になりました。残念。ということで、コードをガリガリ書いてます。以下ざっくりと、やったこと。

  • CFRunLoopRunInMode を走らせるクラスの追加
  • それに合わせて *MessageReceiver を修正
  • 返事が不要な場合には、CFMessagePortSendRequest を非同期で呼ぶように修正
  • *.h から、内部 include や import をざっくり撤去
  • それに合わせて各ソースでは、適切なヘッダファイルを include するように修正
  • 不要な汎用化を減らすように修正
  • 不要なソースを除去
  • ビルドオプションの変更

この対応で安定してくれればいいんですけどねぇ。

修正しながら思ったんですが、AquaSKK のコードは継承されることを意識して書かれている部分が多く、大変お行儀が良い感じです。ただ、「ここは絶対継承されないだろう」という場面でも virtual が使われているなど、ちょっと画一的に過ぎる面もあります。

また、汎用的に作った結果、「デッドコード」になっている部分も見受けられます。今後はこういった部分をシェイプアップしてコンパクトにしたいなぁと感じました。コードサイズの削減が目的ではなくて、人間が理解しやすい構造にする、というところが狙いです。

また、個人的には、継承よりも合成のほうがわかりやすくて好みなので、機能的に問題がなければ、徐々に継承を減らす形にシフトしていきたいです。あとは、Effective C++ に書かれている内容の実践などですかね。

機能的な改善としては、複数辞書への対応とか、自動ダイナミック補完などができればいいなぁと考えていますが、ASCII モード問題を解決しないことには着手できませんから、まだまだ先の話です。

さて、明日はのんびりしよーっと。