アカウント名:
パスワード:
ここ何年か、オブジェクト指向分析設計やオブジェクト指向プログラミングなどを推進しているが、プロジェクトの規模が大きくなるとどうしてもうまくいかない、これはいったいなんなんだろうか?と悩んでいる。
アラン・ケイだったか、誰だったかの記事かBlogで、Smalltalkを使うとこんな感じで英語みたいになるんだよ、と書かれているものをみて、ハッ、っと思った。我々日本人ではこの感覚は英語を理解していないとできないし、これが案外オブジェクト指向のギャップではないかと。
英語圏のひとは、UMLでクラス図を描いても、そのままそれがコードになる。我々は、日本語を一旦英語にすることで、一呼吸おく必要がある。
オブジェクト指向の世界では日本語がいろいろ足かせになっていると感じている人、他にいませんか?
>僕がいままで目にしたオブジェクト指向の説明って>似たような機能や、ロジックがあれば抜き出して、別のオブジェクトにするべきだ>みたいな記述がおおかったです。
あーそれってOOPでもなんでもなく、従来(悪い意味も含めて)通りの「関数分割」の考え方ですね。
機能が似てるかどうかじゃなく、どれがその機能のレシーバ(機能の享受者とか)として似合うか?で分け方を決めるほうが、OOP的には座りがいいですね。
関数分割とは見る軸が違うというか直交な感じ、たとえば関数分割が「条」ならばOO分割は「丁目」かな。
関数分割的な視点も必要なときは多いけど、逆にそれを優先しないほうが良い場合
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生の大半の問題はスルー力で解決する -- スルー力研究専門家
オブジェクト指向と英語 (スコア:2)
ここ何年か、オブジェクト指向分析設計やオブジェクト指向プログラミングなどを推進しているが、プロジェクトの規模が大きくなるとどうしてもうまくいかない、これはいったいなんなんだろうか?と悩んでいる。
アラン・ケイだったか、誰だったかの記事かBlogで、Smalltalkを使うとこんな感じで英語みたいになるんだよ、と書かれているものをみて、ハッ、っと思った。
我々日本人ではこの感覚は英語を理解していないとできないし、これが案外オブジェクト指向のギャップではないかと。
英語圏のひとは、UMLでクラス図を描いても、そのままそれがコードになる。我々は、日本語を一旦英語にすることで、一呼吸おく必要がある。
オブジェクト指向の世界では日本語がいろいろ足かせになっていると感じている人、他にいませんか?
Re:オブジェクト指向と英語 (スコア:0)
プログラマとしてグローバルに活動するのなら必須なんでしょうねぇ。
最新の技術文書も英語だし、やっぱ英語は使えるようになりたいです。
オブジェクト指向については、
「うまくいかない」という症状の質にもよるとおもうけど、
実装するべき機能の本質や役割を無視して分割しようとしていませんかね。
英語圏と日本人による、感性の違いというのはあるかもしれませんけど
設計(デザイン)で言語が壁になるとは思えないです。
僕がいままで目にしたオブジェクト指向の説明って
似たような機能や、ロジックがあれば抜き出して、別のオブジェクトにするべきだ
みたいな記述がおおかったです。
でも、
「オブジェクト指向」って本来、似たようなことを中心に分割するのでなくて、
それが提供する機能が担うべき役割を中心にして
モジュール強度を上げることが目的なんじゃないですかね。
ということで、
僕は「処理系」(制御とかバッチ系)、「操作系」(リストや変換)、
「データ系」(メンバ変数が必要になるケース)、「インタフェース系」を
極力、分割するようにだけ注意しています。
一つのクラスは大きくなりがちだけど、
機能としてのモジュール強度をかなり強くできますよ。
逆に似たようなコーディングのクラスがちらほらと増えてみたり^^;;
でも、それはそれであるべき姿というのが、今の考えです。
Re: (スコア:0)
>僕がいままで目にしたオブジェクト指向の説明って
>似たような機能や、ロジックがあれば抜き出して、別のオブジェクトにするべきだ
>みたいな記述がおおかったです。
あーそれってOOPでもなんでもなく、
従来(悪い意味も含めて)通りの「関数分割」の考え方ですね。
機能が似てるかどうかじゃなく、
どれがその機能のレシーバ(機能の享受者とか)として似合うか?で
分け方を決めるほうが、OOP的には座りがいいですね。
関数分割とは見る軸が違うというか直交な感じ、
たとえば関数分割が「条」ならばOO分割は「丁目」かな。
関数分割的な視点も必要なときは多いけど、
逆にそれを優先しないほうが良い場合
Re: (スコア:0)
最近、/.J はいいスルー力を持っているようだ。
#de facto が何語なのかは知らないのでAC