海月玲二
2017-01-27(金)

無題

SKK辞書の闇という話を読んだので,AndroidSKKでもなんとなく(concat "hogehoge")的な辞書エントリに対応してみようかなと思ってあれこれ試している.正直,Javaの文字列操作関係の正確な仕様を覚えてないので,substringで最後の文字が入るか入らないかとか,バックスラッシュは何個エスケープすればいいのかとか,いちいち調べるので大変だ.

それはともかく,スラッシュはいいけどセミコロンはちょっと扱いに困るね.セミコロンの入ったものの登録を許そうとしたら,辞書登録をするときに「そのセミコロンが注釈の始めなのかそういう登録をしたいのか形式的に区別できない」という問題につきあたった.内容を理解しないと判定できないのだ.うーんどうしたもんだろう.単純に「登録のときはセミコロンを許さない」とすると「(^o^;)/」とか登録できなくなるし,なんかわざわざ対応する意味がない気がする.まあ辞書ツールで読みこめとかいう話だろうか.

あと数値変換は興味深いが,かなりめんどうそうだ.しかもフリックキーボードでどういう操作体系にすべきかわからない(現状だと,日本語モードで数字を入力する方法がない).

2017-01-30(月)

無題

ふと思い立ち,AndroidSKKの,長大なswitch-caseが何度も出てくるわかりにくいコードをなんとかしようと,いろいろ試してみている.予想通りなかなかうまくいかない.

オブジェクト指向ではStateパターンとか言って,状態をそれぞれオブジェクトで表して,状態ごとに挙動が変わるメソッドをそれぞれ実装するやりかたがあるとか聞いた.これって,一部の状態においてメソッドが全く同じになる場合が出てきたら,同じコードを複数書くのが普通なんだろうか? 「状態そのものはA,B,……Gぐらいまであって,処理xはちゃんとそれぞれ違うから状態を分ける必要はあるんだけど,処理yはA,B,GとC〜Fでそれぞれ同じになる」みたいな場合はどうするんだろう? どれかに実装してあとは委譲するってのもなんか不自然な気がするし.

プログラミング師匠的な人がいないと,詰まったらさっぱり進まんな.金払う気のない奴は進歩が遅い.全くやむを得ないことである.