Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

ソフトウェア工学

オブジェクトの変換にコンストラクタを使ったときの問題

背景 MyBatisのSqlSession#selectOne()で、クラスAのオブジェクトaを取得している。SELECTの結果が0件だった場合はnullが返る。 オブジェクトaを、別のクラスBのオブジェクトbへ変換したい。 問題となる設計 クラスBのコンストラクタが、引数にクラスAのオブ…

2 つの MVC

http://www.rubyist.net/~matz/20061014.html#p01 これって、研究室のボスが「みんな一緒くたにして言ってるけど違うんだって!」といつも力説していたアレですね。 古くからある MVC は「Excel のセルの数字を書き換えたら円グラフと棒グラフと線グラフが一…

「トランザクション」という言葉

旧二種とかの勉強をしていると、やたら「トランザクション処理」とかいう言葉が出てくるんですが、さて「トランザクション」って何よ? データベースへのアクセスを含む、一連の処理のことをトランザクションと言う? データベースに対して変更を加えるよう…

ハードリンクと OS に根付く文化の話

思ったことをつらつらと。 Windows のファイルシステムには、ハードリンクという概念がないので不便だ。 デジカメで撮った写真が大量にある。同じシーンが 2 枚 3 枚とあったりする。 同じシーンのものは、一番よく撮れているものだけを残してあとは削除。 …

Javaとピザとデザインパターン

先生が I 戸野君に勧めていた「Java とピザとデザインパターン」って、原著は "The Little Lisper" とか "The Little Schemer" の Java 版だったのね。 その割には Amazon の評価が低い、というのは「独習 C」→「独習 Java」の流れみたいなモンなのか、それ…

定常業務が消費する時間の話

id:jkondo:20060206:1139179922 より。 定常業務は仕事時間を全部使い果たそうとする性格がありますので(ありますよね、何でなんでしょう?) これ誰か研究しないかなぁ。 google:定常業務 でググると「定常業務の効率化」とかの文字列がたくさん上がってる…

増補改訂版 Java 言語で学ぶデザインパターン入門

「『増補改訂版Java言語で学ぶデザインパターン入門』無料プレゼント」に応募させていただきますよ。当たればいいな。クラス図とかは直ってるのかな?

GoF のデザインパターンの本 日本語版の翻訳

GoF のデザインパターンの本に改めて目を通しているのだけれど、もしかして「もっといい訳ができそう」という場所が結構あるのかも。以下の例は、 ISBN:0201633612 (原著)と ISBN:4797311126 (日本語訳)から。 例えば、日本語版の p.79, 原著だと p.70 …

データソースが変化する話

SpamAssassin 3.0.x のドキュメントを日本語訳をひとまず終えて、 id:satob:20051001:p5 こういう考えから「もっとこなれた日本語にした方がいいな」と改訂版を作っていたわけですが、そんな最中に SpamAssassin 3.1.0 リリース。やる気無くすね! moving ta…

Martin Fowler 先生の書いたものを訳してみよう

http://martinfowler.com/bliki/C-Refactory.html 死にそう。 1 段落目 "dozen" と同じで、 "couple" には別に一組という意味はないっぽくて、単純に 2 つ、という意味 "All this despite ..." の文には主語がありません 2 段落目 the + [adj] は "the [adj]…

要求獲得の際に相手側に矛盾があったら?

ソフトウェアを作成する際に、そのソフトウェアを使うことになる人とか、そのソフトウェアが対象とする分野の専門家とかにインタビューをするということがある。どんな使い方をしそうか聞いてみたり、その分野の勉強みたいなことをする。 でも、その人の言っ…

モデリングって何?から教える話、または SPP

SPP とか何とかいうイベントで、時習館高校の皆さんがうちの研究室にやってくるという話。ソフトウェアのモデリング・設計の話をすることになっているんだけど、ボスが作った資料はコンピュータを専攻している人向けすぎるような…… モデリングって何? モデ…

ユースケースで書きにくいもの

一連のインタラクションのどこででも使える機能(例えば、ウィンドウの「最小化」ボタンとか、「ボスが来た」機能とか)ってユースケースに書きづらいなぁ、と。まぁ、ユースケースのスタイルとして「必ずこれを使いなさい」というものはないから、備考欄で…

続・人数と生産性の話

id:satob:20050504:p2 の話をもう一度考えてみると「一人とコミュニケーションをするのに最低でもこれだけの時間は話さないといけない」という下限があるんじゃないか、ということに気付いた。例えば下限が 30 分だとすると、O(n^2) のモデルではたぶん 40 …

UML で関連をまとめて書く

James Rumbaugh, Ivar Jacobson, Grady Booch, "Unified Modeling Language Reference Manual, The 2nd Edition" (Addison-Wesley, 2004) (ISBN:0321245628) によると、 id:satob:20040605:p2 みたいな書き方もできるらしい。 どうでもいいが、Amazon に書い…

duck typing

オブジェクト指向における Liskov Substitution Principle は「置き換え対象のオブジェクトのクラスに親子関係があるとき……」という条件だったが、それを緩和して、同じ interface なら(public な (?) interface の signature が全て同じなら)置き換えても…

deadbeef

http://cclub.cc.tut.ac.jp/~hachi/cgi-bin/diary/diary.cgi#20041019 babeface ってのもありますな。何で使われてたんだっけ?

アドバイス

アスペクト指向の「アドバイス」って Emacs Lisp のアドバイスと似てるのかな? いや、アスペクト指向も Emacs Lisp も知らないに等しいんですが。

ネスペ

元ネットワークスペシャリスト(今は「テクニカルエンジニア(ネットワーク)」)の試験を受けようかと思って模擬試験問題を見てみたんだけど…… 仮想記憶機構において、プロセッサ内に位置してページフォールトを検出する役割を果たすものはどれか。 A. 外部…

read or die

http://cclub.cc.tut.ac.jp/~ossan/diary/04-06.html#20040615 open(FH, $ARGV[1]) or die("can't read $ARGV[1]\n"); みたいなのを式のショートサーキット評価、と言うらしい。ショートサーキットってのは直訳すれば短絡回路。この場合は回路の途中のライン…

UML で線をまとめる

UML(特にクラス図)で線をまとめることってできないのかな? uses > a --------- c1 | uses > +---------- c2 を次のように書けたらラク。 uses > a --------+---- c1 | +---- c2 まぁ、口頭での説明が加えられるなら下でもいいんだけどね。けっこう厳密な…

命名規則

単語の頭を大文字にするタイプの命名規則の総称は "Camel Case"。 GetHogeURL, URLFoobar みたいなのは "Upper Camel Case"。 getHogeURL, urlFoobar みたいなのは "Lower Camel Case"。

ツリーのトラバース

ツリーを走査するときの順序の呼びかた。 行きがけ順・前順・先行順 (pre-order traversal) 通りがけ順・間順・中間順 (in-order traversal) 帰りがけ順・後順・後行順 (post-order traversal) 多分木の場合の通りがけ順走査は、長男-親-次男-三男-……の順。

"default value" の訳

前に日経 BYTE だったか何かに「放値」って訳が出てた。ちょっと好き。