オブジェクト指向は戦場では必要無し その3
■ このスレッドは過去ログ倉庫に格納されています
0001うつつつつ
NGNG引き続きOO厨とアンチOO厨の血で知を笑う戦いきぼ。
その1 http://pc.2ch.net/test/read.cgi/tech/1011997945/
その2 http://pc.2ch.net/test/read.cgi/tech/1013266554/
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG理論だけでは戦場には役に立たない。
戦場には”勘”というのが重要。
その”勘”を養うには繊維となっている理論が重要であるが
それだけではまだ足りない。
つまり、戦場で勝つには”勘”を作っている理論とそれ以外(実践?)を
身に付けろってこと。
ちなみに、文章をよく読むと分かるが、平常の理論は事実の急場には間に
合わないと書いてあるが役に立たないとは書いてないので勘違いしないように。
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG『知恵』と『道理』、そして人としての『道』があって初めて心は空となる…」宮本武蔵
0183デフォルトの名無しさん
NGNG板違いなような、デムパなような…
0184デフォルトの名無しさん
NGNGやっぱ理論の重要さを分かっているんだね。
さすが武蔵。
0185デフォルトの名無しさん
NGNGこのスレは
悲惨な「 」を晒すスレ
なんだけど、本人はわかってないと見える (w
で、関数ポインタはどうなったのかね?
0186デフォルトの名無しさん
NGNGファイル分け >>>>>>> クラス
なんて、わけのわからない主張してたんだよな。
もともと直交している概念を比較してどうするよ。
思うに「 」って、根本的に「インスタンス」がわかってないんじゃないかな。
こいつは(恐ろしいことに)携帯Javaのプログラマだそうだが、こいつの書く
プログラムはstaticの塊なんじゃないかと想像してみる。
0187デフォルトの名無しさん
NGNGどうせ妄想でしょ(w
0188デフォルトの名無しさん
NGNG>>186を見る限りとんでもないアフォだと見受けられる。
つーか、携帯ってi-modeだろ?
あれはOOなんて言ってたらメモリが足りないだろ。
8ビットマイコンのBASICプログラムみたいな感覚じゃないのか?
0189デフォルトの名無しさん
NGNG> あれはOOなんて言ってたらメモリが足りないだろ。
OO だと消費メモリが増えるという根拠は?
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNG変数はstaticにしといた方がメモりを食わないとか。
0192デフォルトの名無しさん
NGNGもちろん、代表的な Java VM に関する論文とか Inside the C++ Object Model
ぐらいは読んでますが。
0193デフォルトの名無しさん
NGNGそれで?
0194デフォルトの名無しさん
NGNG繰り返しになるけど
> あれはOOなんて言ってたらメモリが足りないだろ
は根拠がない、もしくは何か勘違いしてると思ったので、根拠を聞いてみた。
0195デフォルトの名無しさん
NGNG俺は勘違いしてるか?
0196デフォルトの名無しさん
NGNG- メモリが足りない
- OO だからメモリが足りない
言ってることが別ってことでしょ。
0197デフォルトの名無しさん
NGNG下らんことでつっかかるな。
そんなん説明するのはめんどくさい。
0198デフォルトの名無しさん
NGNG何でもいいけど。
0199デフォルトの名無しさん
NGNGそオブジェクト指向は基本的に、おぶ
つまり、途中で出た話のように OO言語を有効に使っていてもOOではないのと同じで
言語の機能は最大に利用しなければいけないけど、注目点は違うという事だ
0200デフォルトの名無しさん
NGNG日本語で書いてくれよ
0201199
NGNGまあそんな書き直すほどの事じゃないけど
ようするに、
それよりも優先すべき事があるんだから
そっちをoriented 出来ないって単純な話だよ
0202デフォルトの名無しさん
NGNG> あれ? 文字化けしてる?
うん。
> そオブジェクト指向は基本的に、おぶ
> つまり、
こんな感じになってるので、何が「つまり」なのか謎。
> それよりも優先すべき事があるんだから
優先も何も、そもそも OO とメモリ使用効率が相反するのかって話じゃなかったの?
0203
NGNG空のクラス1個宣言するだけで700バイト消費するんで使えません。
10K以内に納めるテクニック
http://www.atmarkit.co.jp/fmobile/rensai/doja07/doja07.html
プログラムの基本は「非オブジェクト指向」で
0204デフォルトの名無しさん
NGNG意味が無いことなんだよな。
0205デフォルトの名無しさん
NGNGなにから話がつながって「結局」なのか謎だが。
まぁ数千行程度の小規模なプログラムなら OO だろうが手続き型だろうが、設計
なんざしなくても作れるっつー気はするけど。
0206デフォルトの名無しさん
NGNG0207
NGNGOOPLでは最初にちゃんと見通しを立てて設計しておかないと、
小規模でも行き詰まります。
0208デフォルトの名無しさん
NGNGOO じゃなくて OOPL なのか?
0209デフォルトの名無しさん
NGNG0210
NGNG0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG俺、数千行どころか数万行でも最初に設計なしに作れるよ。 と言ったらどうする?
もちろんユーザから必要な帳簿のイメージのFAXは貰うけどさ
使うのは主にDelphiかVC++で、つまりはOOPLだけど
別にオブジェクト指向してるわけじゃない。
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGでも世の中のプログラマの70%は、一生OOを理解できない
脳みその持ち主だと思う。
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG0218
NGNG0219デフォルトの名無しさん
NGNG0220旅の始まりの人
NGNGパラメータとして実行時に動的に決めるものとの設計時の
切り分けがよく分かりません。後々後悔する事が多いっす。
完成してみたら、存在意義のない間抜けなクラスがあったり
無茶なパラメタライズがあったり。
どうやって設計段階で判断するんでしょうか?
0221デフォルトの名無しさん
NGNG設計とコーティングは。
そしてリファクタリングを繰り返す。
そうしないと良いプログラムはできない
0222旅の始まりの人
NGNG変更管理が面倒くさくないですか?
下位レイヤを変更したりすると、上位でそれ使ってるところを
みんな修正する羽目になるし。
0223とあるダメ社員
NGNGC言語ばかり使用していて、やっとOOの勉強を始めたばかりですので幼稚な
質問かもしれません。
|212 名前:デフォルトの名無しさん :02/02/28 23:32
|>>207
|俺、数千行どころか数万行でも最初に設計なしに作れるよ。 と言ったらどうする?
|もちろんユーザから必要な帳簿のイメージのFAXは貰うけどさ
まじめなお話で数千行(数万って…凄いなぁ)もあるプログラムを設計書も作成しな
いで、作れるというのは信じ難いです。
ま、白髪三千丈の類の冗談なんでしょうけど。
ちょうど220の人が書いているようにクラスを考えてみたりする必要もあるわけで
すよね、OOなら。
まして、合計で数千もの手続きを経なければならない機能を作り上げるのに、どうし
たら設計が手軽ですむのか、ちょっと教えて欲しいです。
個別のノウハウとか、そういうものを書いてみてください、といっている訳ではな
くて一般論で構わないので。
どうして、こういう物凄い発言が出来るのか知りたいのです。
0224デフォルトの名無しさん
NGNGその労力を極力軽減するのが OO だ。
ということらしいぞ。
0225デフォルトの名無しさん
NGNG212は1行もコード書いたことない妄想野郎だからさ
0226
NGNGDBからデータ拾ってきて表示して変更してセーブするだけで、
画面数がやたらに多いのだと軽く逝くけどね・・・。
0228デフォルトの名無しさん
NGNG(・∀・)イイ!!
0229デフォルトの名無しさん
NGNG固定概念を取り払えよ
0230旅の始まりの人
NGNGそういうのは、1画面分の処理を通せば、後はコピペ(OOPなら実装継承?)
でちょいちょいと変更したのをいっぱい作っていけばいいだけですもんね。
私も、そういうのは設計なしで3万行というのを今書いてるところですよ。
コアだけちゃんと作れば、後は単調な作業が続くんですよねー。
0232とあるダメ社員
NGNGうーん。どうにもよくわからないです。もうちょっと教えて欲しいです。
|そういうのは、1画面分の処理を通せば、後はコピペ(OOPなら実装継承?)
|でちょいちょいと変更したのをいっぱい作っていけばいいだけですもんね。
|私も、そういうのは設計なしで3万行というのを今書いてるところですよ。
あの、そういう作り方って、本当にやってらっしゃるのですか?。
似たような処理ばかりで、トータル3万行も?
継承したら、3万行にもなるわけないような気がするのですが、素人の考えなのでしょうか?
0233旅の始まりの人
NGNGインピーダンスミスマッチの吸収には、どうしても多量の
同じようなコード(あるいはパラメータ)が必要なんですよ…
RDBMSを扱うのは、もういやになりますねー。
0234デフォルトの名無しさん
NGNG俺もTemplateやら継承やら独自言語作ろうとして失敗した。
まあコードジェネレータ作るのが一番。
0235とあるダメ社員
NGNGそれは、基本的に同じだけど違う部分を手直しする、という意味ですよね、きっと。
Cでやっても同じ事ですから、その部分についてはわかります。
でも、なぜそんなに大量に同じようでちょっと違うものを作り込まなければならな
いのかわからないのです。
0236旅の始まりの人
NGNGRDBMSをなるべく使わない、というのを最近考えるんですけどね。
OODBとか、キー値でハッシュテーブルにしたXMLテキストで永続化とか。
暇な時にトライ中です。
0238デフォルトの名無しさん
NGNGモデル記述の言語からすべて生成されるような仕組みにするのが、
よく使う逃げですね。
プログラマーの持つ最大にして唯一の能力は機械に仕事をやらせることで
す。
医者の不養生といいますが、プログラマーは、お客サンのためだけでなく、
自分のためにもめんどくさがりや精神をもっと発揮すべきなんですよね。
美学からいくと、生成したものは、Artではない気がする。そこの
プログラマーの心理的な抵抗がある気がする。
きっと、生成すらしなくてよいようなフレームワークがあるんだろうな。
なんだろう?
0239
NGNG(済まないと予想される)
例えば、同じアイテムなのに、
ある画面では「氏名」
ある画面では「あなたの名前」
ある画面では「姓」「名」だったり・・・。
0240デフォルトの名無しさん
NGNG0241旅の始まりの人
NGNG高速に動作する複雑な構造化問い合わせの機能が必要なければ、
RDBMSを使用しないというのは、かなり良い解決策だと思うん
ですよ。
検索のパターンだけ洗い出しておいて、RDBMSのスキーマ定義を
単純化して(可変長バイナリのカラムを用意する)、問い合わせ結果
をプログラム側で動的に解析するというのも、メモリとCPUパワー
に余裕があるなら、いける、かな?どうでしょう?
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNGオブジェクトのストアとしてRDBMSを使っちゃえ、ということでせうか。
>>239
失礼しました。ほんとに使いごごちの良いアプリってモデル記述
言語をがんばってもそれが複雑になる一方というか、、、
モデルとビューとコントローラーは果たして分離できるのか。
それすら怪しい。。「オブジェクト」指向じゃだめなんでしょう。
なんかこう、多態で、可変で、そんな生き物みたいなもの、、
幽玄指向でいきましょう。
0244デフォルトの名無しさん
NGNG> 医者の不養生といいますが、プログラマーは、お客サンのためだけでなく、
> 自分のためにもめんどくさがりや精神をもっと発揮すべきなんですよね。
優れたプログラマは皆面倒くさがり屋である。
面倒くさがり屋であるが故に何でも自動化しようとし、プログラム技術が上達する。
しかし、面倒くさがり屋なので脳内設計が多く、上に立つ人間には向かない;->
0245デフォルトの名無しさん
NGNG↓ここのうけうりです。
See -> http://www.pragmaticprogrammer.com
邦訳は達人プログラマーね。
0246デフォルトの名無しさん
NGNG>まじめなお話で数千行(数万って…凄いなぁ)もあるプログラムを
>設計書も作成しないで、作れるというのは信じ難いです。
>ま、白髪三千丈の類の冗談なんでしょうけど。
俺、212じゃないけど、数千行程度なら「設計書」なんぞ書かなくても
楽勝で書けるよ。これぐらいなら当たり前じゃなかろうか。
別にコピペの塊じゃない。
C/C++なら、ヘッダファイルが十分「設計書」の役割を果たすと思う。
数千行程度のゴミプログラムで、それもひとりで書いてるんならね。
1関数で数千行書く奴もちょくちょくいるが(鬱 そういう話をしている
のでもない。
0247デフォルトの名無しさん
NGNGマジメに聞いてるようなんで マジメに答えましょう
好きな道具はDelphiです。
DelphiはOOPLですが設計にクラスわけなんてオブジェクト指向してる訳じゃないんで
別に最初に考えたりしません。 クラスは再利用したりしません。ただコンポーネントは
再利用出来ますが。
まあ具体的な話の方がいいでしょう
慣れれば、会計処理なんて定型ですから必要な印刷物が判れば必要な入力画面もわかります
仕事貰ったら、印刷イメージ見ながら、どんどん入力画面作ります。画面作りながら SQLのCREATE文
書いてゆきます。 画面できたら客に使わせて入力させてゆきます。
それから印刷にかかりますが、印刷はお客さんにはコダワリが必ずあるので、貰ったイメージ通りに
作ればOKとはゆきません。
簡単なテキストスクリプトを作って現場で微調整できるように用意しておきます。
入力画面の要望聞きながら1ヶ月後には印刷部も出来上がります。
それで印刷させては客先で調整します。
だいたいこれでコードは数千行です。
その後、色々細細と客の注文を聞いて便利機能を付け足します。
便利機能は手間がかかりますから、最初の状態から、だいたい2〜5倍のコードになります。
それは客の予算によってという事です
予算があれば最終的に数万行になるというだけです
0248246
NGNG(このモジュールはクラスではない。Javaならpackage相当)、
それを組み合わせて全体のプログラムを作るって感じかな。
「数千から、MAX 1万行ぐらいのモジュール」の外向けのインタフェースと、
それをどう組み合わせるかについては、さすがに文書化するけどさ。
0249デフォルトの名無しさん
NGNG映画ではヒーローだけど
戦場ではちょと迷惑ね
0250デフォルトの名無しさん
NGNG数千行程度ならあたり前のゴミプログラムとか言ってるお前、
プログラム下手すぎだな。(ワラ
上手いコードほどコード量は少なくなるはずなんだが。
0251デフォルトの名無しさん
NGNGちょっとしたスクリプト作れば簡単に数千行いくだろ
そうじゃないというなら見せて貰いたいもんだ。どうせ見せられないだろうがな(ワラ
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1004530597_1/MyDraw.pas
このコードすごいな・・・コードものすごいというかさっぱり判らんけど走らせたら・・・
0254デフォルトの名無しさん
NGNGそもそも何行かかるかなんて言語にもよるってのは置いといて、
そのちょっとしたスクリプトだかコントロールだかで
数千行かかってしまったという痴態をここで晒してみそ?
0255とあるダメ社員
NGNGどうもありがとうございます。
会計処理や事務処理分野は、私はよくわかっていませんので「定型的」と
言われてしまうと「そうなんですか」としか答えられませんが、「C/C++
なら、ヘッダファイルが十分「設計書」の役割を果たすと思う。」という
ような事が、本当にあり得るのか、わかりません。
246さんや247さんのやられている分野でも、試験の工程は必ず存在
しますよね。
設計書相当のものがなくて、どうして試験仕様が作れるのかという点と、
品質の確保をどのように行っていくのかがわかりません。
また、無理に再利用をしなくても良いとは思いますが、なんらかの修正
・機能追加を後日行わなければならなくなった時に、頼りになるのがソ
ースだけというのは、非常に効率が悪いと思いますが、OOの開発環境
では1万行にも及ぶプログラムでも大丈夫なのでしょうか?
0256John ◆0z.4Is5E
NGNGPerlで数千行・・・悪夢
0257デフォルトの名無しさん
NGNG話がかみ合わなくて当たり前。
2chでよく見る光景。
0258デフォルトの名無しさん
NGNGまずは構造化プログラミングから学習してください。
0259John ◆0z.4Is5E
NGNGちょっと24に意見を書いてみる。
ちなみに、リンク先のコードは読んでいません。
最近、3つのサーバーが相互作用するプログラムを設計しました。
(まだコーディングは終わってません)
驚いたことに、OOのメリットはほとんど出てきませんでした。
サーバーを3つに分けてること自体がOODという見方もできるかもしれませんが、
個人的にはカプセル化とポリモーフィズムこそがOOだと思っています。
そして、カプセル化とポリモーフィズムを基盤とした設計こそがOODだと思っています。
だから、サーバーを3つに分けたのは単なるモジュール化ですね。
話しがそれましたが、プログラム(のコンセプト)によってはOOのメリットが見えずらい物が
あるようです。
>ただ、元のギコBASICはこれを継承してテキストスクリプトでグラフィック描画>が出来る
>コンポーネントになっていました。
この発言はOOを勘違いしているように思えるのですが、
完成したプログラムはコンポーネントに必ず成ると思います。
OOで設計されたプログラムは、簡単にキーワード(予約語(intとかの事))を追加して
機能拡張できるといった具合になってるはずです。
最初から仕様がしっかり決まっていて、
アルゴリズムを変更する可能性が0で・・・
といった単純なプログラムであれば、どんなに大きくても
OOのメリットはあまりないですね。
でも、そんなプログラム書いてる人って
いわゆるコーダーなんですかね。
0260デフォルトの名無しさん
NGNG全部手書きすれば、予想外の分量になる事もあるかもね...
んでも、既存のクラス・ライブラリやフレームワーク探さずに
手書きしてたら、「勉強中の人」か「DIY趣味の人」て感じかな。
0261デフォルトの名無しさん
NGNG> アルゴリズムを変更する可能性が0で・・・
それは、PMやSEが余程有能ならそういうプロジェクトもあるかもしれんが、
現実にあんのか?
> でも、そんなプログラム書いてる人って
> いわゆるコーダーなんですかね。
わけわからん。
「そんな」って、上に挙げたのはプログラムの質ではなく、
プロジェクトの質では?
0262デフォルトの名無しさん
NGNGへいへい、自分のスレにお帰り
0263John ◆0z.4Is5E
NGNG程度の問題ね。
端的な表現で悪かった。
でもさ、なんでもプロジェクトで考えるのはよくないよ。
プログラムといえば、使い捨てスクリプトから複雑怪奇な人工知能とかまであるわけでしね。
0264デフォルトの名無しさん
NGNGならなんで
> いわゆるコーダーなんですかね。
こんな台詞が出てくるのか?
0265デフォルトの名無しさん
NGNG> OOのメリットはあまりないですね。
> 驚いたことに、OOのメリットはほとんど出てきませんでした。
つまり、今のあなたは単純なプログラムを書いている
> いわゆるコーダーなんですかね。
0266デフォルトの名無しさん
NGNGJohn と書いてなければ、もう少しまっとうな回答も期待できたものを…(w
0267デフォルトの名無しさん
NGNG>設計書相当のものがなくて、どうして試験仕様が作れるのかという点と、
>品質の確保をどのように行っていくのかがわかりません。
UnitTest使えば簡単。
だけど品質管理部門が許可してくれないかもしれないという罠。
設計書なんぞ飾りです。
偉い人にはそれが解らんのです。
0268デフォルトの名無しさん
NGNGちょっとしたコントロールは >>24の2 を基準にすればいいだろう
これらをまともに仕事で使えるようにしたら少なくとも倍にはなると思うぞ
それにヘタにOO設計でもすれば1桁サイズが大きくなると思うが
そうじゃないというなら書いてみたらどうだ?
0269デフォルトの名無しさん
NGNGヘッダファイルが仕様書になるように作るという事でしょう
>機能追加を後日行わなければならなくなった時でも
RADツールでの開発品だと、プロパティやイベントが解読の手助けになる事が多いですね
0270デフォルトの名無しさん
NGNG> それにヘタにOO設計でもすれば1桁サイズが大きくなると思うが
ならんて。
OO だと、確かに手続き型に比べてサイズが大きくなる傾向はある。特に C++
だとコンパイル時の依存関係を減らすために pimpl イディオムを使っったり、
メッセージの転送を行うだけのメソッドを書くことが多いから。
それでも一桁も差は出ないよ。
> そうじゃないというなら書いてみたらどうだ?
さすがに同一仕様のスクリプトを OO, 非OO で書いたことはないけど、これまで
Perl, C, C++ あたりでスクリプトを作った経験から。
一番短かったのは Perl でした。字句解析は、組み込みの正規表現パターンマッ
チングと hash で済ませて、構文解析は内部で Perl スクリプトを作って eval() で
済ませた(w
0271デフォルトの名無しさん
NGNG複数のサーバがやりとりするような場合はオブジェクトより
もっとデータ中心で考えないといけないからね
「データ指向」とか呼んでる人もいるから検索して読んでみたらどう?
0272デフォルトの名無しさん
NGNGたぶんそのコードをこのスレでさらしたら「それはオブジェクト指向じゃない」
といわれるだろうな
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG勝手にやらせたら10倍どころじゃない事に・・
0276デフォルトの名無しさん
NGNG│\
┌───┘ \
│ >
└───┐ /
│/ こんな矢印
ワラタ
0277デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています