capsctrldays

2003-09-12 (金) ぐはぁ人生に疲れてきた [長年日記]

[脱出] オブジェクト指向やってるんだが?

つられて行ったら「やりたいという意味だ」と言われ、ガーン。

[WORK] 有給明けで帰ってきたら

現実が待ち受けているのでした。

今ごろ印刷物への直しって……おいッ!月曜日は休みだぞ。もう無理だッ! 申し訳ございません。

[脱出] コミュニケーション力、業務知識

ありますか?

面接でよく聞かれるんだが、なんて答えればよいのかね。後者に関しては素直に「ありません」と言ってるが(そして落ちるの巻)、前者に関しては「あります」としか答えられないじゃないか。どうして「ありません」なんて言うかッ。んなこと言うわきゃない。そもそも先天的にコミュニケーション力がない奴って、果たして居るのかと疑問に思う。

業務知識って何やねん?っていうのもいずれ考えるべきなんだろうが、今日はコミュニケーション力について物申す。

今回の脱出に関してボスに「脱出したいんだが何か?」と初めて言ったとき「なんで事前に言ってくれなかったんだ」と言われた。いやいや、脱出の事前って「今」話してることなんだがなぁ……と思って苦笑いした。

まあ、常識的に考えれば、彼が言いたかったのは「小さな不平でも愚痴でもいいから大きくなる前に言ってくれればよかったのに。コミュニケーションとってくれればよかったのに」ということなんだろう。

この言葉を聞いたとき「ぜってー脱出しよう」と思った。

脱出がツラいのは、それを「事前に言い出せない環境」に置かれていることなのだ。小さな愚痴を抵抗も無く言えるような環境だったら、いきなり「脱出したいんですが?」なんて絶対に言わない。「なんで事前に言ってくれなかったんだ?」脱出しようとしている奴が、まともに答えるとでも思っているのか? その理由それ自体がイヤになったからです。

でも、ぼくが逆の立場だったら「知るかよ。言わなきゃわかんねーよ」と思っちゃうかもしれないなあ。気をつけよう。

[Agile] MF Bliki: EtymologyOfRefactoring

これを取り上げると、かくたにさんがリンクを張ってくれるようなので(w。今回も翻訳じゃなくて要約(そして脚色)。

リファクタリングの語源って何やねん?というお話。

数学における因数分解(ファクタリング)から来てるのは明らか。

x^2 + 5x + 6
= (x+2)(x+3)

ほら。扱いやすくなるじゃん。

あともういっこ。Bill Opdyke という人物が Ralph Johnson と散歩中に

「ねえ、ソフトウェア開発ってさあ、製造するっていうより」
「なに?」
「なんつーか、設計するって感じじゃない?」
「そーかも」
「だったら、Software Refactory って呼んだほうが……可愛くない?」
「可愛い」
「ヤバくない?」
「ヤバい」
「可愛い可愛いチョー可愛い♪(続く)」

っていう話をしたらしいのだ。

こうしてRefactoryは、彼らのコンサル組織の名前になるのでした。

surmise
【自他動】 (〜を)推量{すいりょう}する、推測{すいそく}する、憶測{おくそく}する

[Agile]MF Bliki: Seedwork

またしても要約(てきとー):

俺レベルになると、ずーっと前から「再利用」について言及していたわけだ……がぁ、個々のクラスは思ったほど再利用できないことに気づいてしまった。そこで、フレームワークに鞍替えしてみた。

これは技術的には成功。Javaとか.NETとかでの大きなライブラリー群をみれば分かるよね(OOじゃなけどクパンもイイ!)。でもビジネス側ではあまり芽が出なかった。あ、技術側でも、多くの技術者は「frameworkって難しいよー」って感じてるみたいだなぁ。この難しさがフレームワークの便利さを損なっているようだ。

再利用に関する議論から、framework の代替案が出てきた。seedworkである。seedworkは最低限の機能を提供してくれる。必要であれば、改造して使うことができる。いちど改造してしまうともうアップデートは効かない。これはある種のコピペコーディング(みんなが笑っちゃうやつ)っぽい。

frameworkはすんごいけど、ちと使いにくい。対してseedworkはすんごくないだろうけど、使いやすい。問題は、どっちが便利かっつーことなり。

よく使われたライブラリが問題にならないこともなくて、DLL地獄を見よ!それぞれのライブラリが別々にアップデートされたときの悲惨さったら! 今週、RedHatでやってしまったよ。バージョニングシステムって、.NETだったら解決してくれるかもしれないけどさ、まだまだ使いにくいことには違いない。

アプリケーション内で再利用するのは重要なことだけど、アプリケーション間での再利用はすんげー面倒。そもそもアプリケーションの境界はsocial constructionなんだから。完璧なframeworkを求めるのはまだ早いのかもしれない。完璧じゃないけど(でもまあ使える)seedwareみたいなのを使うのもありなのかもね。