スパゲッティはオブジェクト指向の夢を見るか
2010.11.18
雑誌 WEB-DB PRESSに連載中のコラムの記事がまた一つウェブで読める様になったので、紹介させていただく。
そもそも、単身赴任中の私が主に家族通信のために書いていたブログがこんな形のブログに変わったのは、何気なく書いた「日本語とオブジェクト指向」というエントリーがきっかけ。突然「はてなブックマーク」という不思議なサイトからのトラフィックが増え、「ブログを書く楽しさ」を教えてくれたエントリーだ。
いまさら「オブジェクト指向の本質」もなにもないとは思う人もいるだろうが、実際に現場で働いているエンジニアの中にも「オブジェクト指向プログラミング=クラスを使ってプログラムを書く事」と勘違いしている人もたくさんいるわけで、そんな人たちにぜひとも読んで欲しいと思って書いたエントリー。
そうは言っても、「粗結合」の大切さみたいなものは、何度も何度も(スパゲッティ・コードに)痛いめに合ってこそ「身につく」もので、こういう記事を読んだからと言って、すぐに実行できるほど簡単な話ではない。
ということで、今回はざっと目を通しておいていただいて、次にスパゲッティ・コードに悩まされた時に、「そう言えば、スパゲッティ・コードが出来る原因について書いた記事を読んだ覚えがあるな」と思い出していただけるだけで十分だと思う。
中島聡様、
はじめてコメントさせていただきます。私、福田と申しまして、出版プロデュース等の仕事をしております。このたび、元ソニー、前グーグル社長の辻野晃一郎さんの、「グーグルで必要なことは、みんなソニーが教えてくれた」という本の刊行にかかわりました。同書を、ぜひ中島様に読んでいただきたいのですが、送り先は日本のUIEジャパンでよろしいでしょうか。(この件で、数日前に一度、メールもさせていただきました)ちなみに、同書には、CoCoon開発の話なども書かれています。メールまたはこのコメント欄で、送り先につきましてご連絡いただけるとありがたいです。よろしくお願いします。
Posted by: Kyoko Fukuda | 2010.11.19 at 00:20
インターネットエクスプローラーとエクスプローラーは 疎結合です。(ボソ)
Posted by: kokorohamoe | 2010.11.19 at 09:12
かつて私が作り上げたもので、その記事に書かれていることが入ってないものはない。
Posted by: Kz | 2010.11.21 at 13:33
rubyの話ですが、過度の重複や過剰な抽象化の悪弊と、適切なさじ加減について書かれたスライドも面白いですよ。
http://blog.davidchelimsky.net/wp-content/uploads/2010/11/duplication.pdf
Posted by: ikm | 2010.11.21 at 22:43
昔、疎結合にしようと、サービス同士を、web-apiで繋いだことがあります。
途中、 sqlで表現すれば、「select エントリー from ブログ where 指定の日 < 書いた日」みたいな処理がしたかったが、エントリーを一件一件ずつしか取る仕組みしかなかったので、エントリーを一件一件取った上で、期日を見て、ソートしなおすみたいな処理になりました。
つまり、一行のSQLで済んだところが、何100ものSQLを走らせる処理になった。
事前に良く考えられたインターフェースなら良いのですが、インタフェースの設計が変だったり、想定していない使われ方をした場合、大変かもなって思いました。
特にインタフェースを挟んで、担当する会社が違ったりすると本当に大変だろうなって思います。
ビデオサービス用のセットトップボックスの例ですが、その後何ヶ月かして、サービスを拡張した場合、何か大変なことがありましたか?それとも機能の拡張はスムーズに行きましたか?
Posted by: hoge | 2010.12.30 at 00:58