2003-12-15

Finding Nemo

泣けるという前評判とは裏腹に、まったくそれっぽい感じがしなかった。むしろアメリカっぽい、からっとした明るさがすごく目についた。というか単純に面白かったって感じだ。ほのぼのとした明るい話だと思う。「かわいい子には旅をさせよ」ということですな。

OKI MINI KEYBOARD 続き

やっぱりポインタの動作が実に半端になってしまう。標準のドライバで使うのでマウスを使う場合は軽すぎ、ポインタだと重すぎる。特にピクセル単位の動きに慣れた TrackPoint 使いにはこの半端な動きはけっこうつらい。ウィンドウ位置の微妙な調整にはほとんど使い物にならない。

Home, End が邪魔。カーソルキーの辺りが急に狭くなりすぎるので余計にそう感じる。通常のキーがフルキーボード並みなのにここだけ急に小さいので、指が戸惑う。慣れるだろうが、ちょっと差がでかすぎる気がする。

レビューどうしようかな

plat online に書こうと思ったら会員にならないと書けないことが判明。まー当然か。

急に面倒くさくなってきたので説教講座の方に載せようかななどと思い始める。最近また説教講座の改修を進めているのだが、いつになるのかメドが立ってないのでちょっとつらいかなぁと思わなくもない。ついでに Space Saver のレビューも書いちゃおうか、などと構想だけが膨らんでいく。

クラス設計のノウハウ

がほしい。処理を書きながらクラスに行ったり戻ってきたりするやり方でとりあえず書けたが、できあがって嬉しいってだけでかなり効率は悪かった。

で、今度はクラスをもっと楽に作れないかな、と考えたわけです。UML のツールの Dia は Win32 だとバシバシ死ぬのでこれまた困りもの。X の設定なんか分かんねーし。本を読むかなぁ。開発と UML の本は一応持ってはいるんだが。でもちょっとこれ読んでる余裕は今ないしなぁ。

うーん。

自分の考えていることをインスピや文書で整理するノウハウは身についていると思っているが、開発系の設計能力はかなり貧弱ですなぁ。

[2007-07-31 追記]あとから検索で飛んできた人と昔の自分のためにツッコミ。

「設計」能力だけ抜き出して磨くのはたぶん無理だと思う。少なくとも上で書いているような「クラス」は実装レベルのクラスであり、これは実装してみないと分からない部分がまず間違いなく残る。設計上はこっちの方がきれいなように見える1が、実装上は言語の機能やパフォーマンスなど様々な制約でこっちの方がよい、という事態はよく起きる。2

図を書く練習で図の扱いはうまくなると思うが、実際の設計は結局のところ動くものをどれだけ書くか、うまくできているコードやドキュメントをどれだけ読むかという泥臭い方法で学ぶのがいちばん確実だと思う。あるいは先輩などに教えてもらったりすることは可能だが、文章も絵も自分でかいてみることなしにうまくなることがないように、プログラムもシステム設計も自分でやってみて失敗することなしには恐らく上達しない。

プログラム言語がどれだけ楽に習得できますよと言われても、UML がどれだけ共通語としてコミュニケーションを促進しますよと言われても、それだけで出来上がるものがよくなることはないので、安心してダメクラスを作って怒られたり反省したりすればいい。

もう一つ。自分でコード「も」書く人間にとっては、恐らく設計のノウハウよりも変更に強いコードの書き方のノウハウの方が大切である。3だからまずコードを変更するテクニックを学ぶべきである。wrapper を書いてインターフェイスを変更する、あるいはインターフェイスを変えずにリファクタリングする、長いブロックを短くする、分かりにくい変数名を付け替える、これらの地道な積み重ねはのちに効いてくるはずである。そして小さいコード、オブジェクト指向、テストの自動化とリファクタリングについて学び、絶対にこれらを実践すべきだ4。ダメなコードは勇気を持って捨てることも大切。

  1. 変に複雑じゃないとか 

  2. もちろん設計通りにならなかったことがコーディングの力不足によるものでないことは前提としておく。逆に言うと、設計と実装のズレはまず間違いなく生じるが、それは仕方ない場合もあるがコーディングの力不足によるものもある。 

  3. 図しか書かない人には無用かもしれない 

  4. もちろんコードの変更が許される範囲でやってね 

About

例によって個人のなんちゃらです