アカウント名:
パスワード:
私感だけど、オブジェクト指向というのは、再利用するライブラリを作成する場合は威力を発揮するのはよく分かる。しかし、再利用しない場合は不要だし、多人数で開発する場合は他人とのインタフェース部分だけオブジェクト指向的にすれば十分だと思う。他人に見せない内部まで生真面目にオブジェクト指向で作ったら、むしろコードサイズが大きくなり。処理が分散することで、かえって可読性が落ちる。
他人に見せる部分はしっかりとオブジェクト指向的に作らなければならないと思いますよ。だから、見せる必要のない変数はちゃんとprivateにして不正な操作から防止しなけりゃならなりません。
一方、他人に見せない部分というのは、逆に言うと、自分が把握できている部分です。この部分では、そこまで厳密に防御する必要は無いと思います。スコープの管理にしても、たとえばメソッド内の自動変数とクラス変数の使い分けでかなりの規模まで対処できると思いますが。
ここでいう「他人」は数ヶ月後(場合によっては数日後)の自分を含みますよね? ね?
ここでいう他人とは、作成したクラスを使う人のことなので、自分を含まないこともありえます。私は可読性を犠牲にして良いとは書いておりません。オブジェクト指向の方が可読性が落ちる場合があるのではないかと書いております。
将来の変更に備えるのならば、コメントをしっかり書けば良いと思います。内部までオブジェクト指向にする必要は無いと思います。
単体テストをしっかり作っていれば、作成するクラスを使う人に自分が含まれるのは 100% のはずですが……?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
再利用しなけりゃオブジェクト指向は不要 (スコア:1)
私感だけど、
オブジェクト指向というのは、再利用するライブラリを作成する場合は威力を発揮するのはよく分かる。
しかし、再利用しない場合は不要だし、多人数で開発する場合は他人とのインタフェース部分だけオブジェクト指向的にすれば十分だと思う。
他人に見せない内部まで生真面目にオブジェクト指向で作ったら、むしろコードサイズが大きくなり。処理が分散することで、かえって可読性が落ちる。
Re: (スコア:0)
たとえば、変数のスコープといいますか、影響範囲を明確にすることができますし、何らかの共有変数を包みこんでやることで、想定外の変更を防止することも容易になります(Singletonとかですね)。大規模開発の現場では、えてして他チームの内部用変数を操作しようとするPGが現れたりするものなので、そういう問題に対する防御策にもなります。
また、クラスを引数に取ることは、状態と操作とをセットにして受け渡せることを意味するので、簡素なコードで柔軟な表現が可能になります(Strategyとかですね)。
Re: (スコア:1)
他人に見せる部分はしっかりとオブジェクト指向的に作らなければならないと思いますよ。だから、見せる必要のない変数はちゃんとprivateにして不正な操作から防止しなけりゃならなりません。
一方、他人に見せない部分というのは、逆に言うと、自分が把握できている部分です。この部分では、そこまで厳密に防御する必要は無いと思います。スコープの管理にしても、たとえばメソッド内の自動変数とクラス変数の使い分けでかなりの規模まで対処できると思いますが。
Re: (スコア:2, すばらしい洞察)
ここでいう「他人」は数ヶ月後(場合によっては数日後)の自分を含みますよね? ね?
Re:再利用しなけりゃオブジェクト指向は不要 (スコア:1)
ここでいう他人とは、作成したクラスを使う人のことなので、自分を含まないこともありえます。私は可読性を犠牲にして良いとは書いておりません。オブジェクト指向の方が可読性が落ちる場合があるのではないかと書いております。
将来の変更に備えるのならば、コメントをしっかり書けば良いと思います。内部までオブジェクト指向にする必要は無いと思います。
Re:再利用しなけりゃオブジェクト指向は不要 (スコア:1)
単体テストをしっかり作っていれば、作成するクラスを使う人に自分が含まれるのは 100% のはずですが……?