オブジェクト指向は戦場では必要無し
■ このスレッドは過去ログ倉庫に格納されています
0001あたたたた
NGNGクラスを理解する労力が大きく、目的まで達成するのに
時間がかかる。他人のソースを見るにも複雑でときほぐしにくい。
ちゃんと整備されたドキュメントがなければ粗大ゴミソース。
またオブジェクト指向が○○に優れているとかいう話も、あくまで
ちゃんと設計され、ちゃんと実装されたクラスがあるという前提での話。
実際は世の中にどれだけの糞SEや糞PGがいることか。。。
よってオブジェクト指向は戦場では使いものになりません。
0685デフォルトの名無しさん
NGNGあと多分岐選択を忘れてるよ
http://hpcgi1.nifty.com/mizukix/text/textdisplay.pl?file=6-5.txt
【構造化プログラミング】
ダイクストラ(E.W.Dijkstra)らによって提唱された.
プログラムの基本制御構造の5つのものだけを用いてプログラミング
せよという指針を持つ。
【基本制御構造】
連接,選択,多分岐選択,前判定繰返し,後判定繰返し
【構造化定理】
入り口ひとつ、出口ひとつのプログラムは3つの制御構造の組み合わせで
すべて表現できるという定理。3つの制御構造とは、以下のものである。
>>684 とりあえず >>683は関数としか言っていないんだから
関数型プログラミングパラダイムの事かもしれんと
0686デフォルトの名無しさん
NGNG「入り口ひとつ、出口ひとつのプログラム」 じゃイヤンという事じゃないのかな
その面では構造化プログラミングと対立する概念の部分もあるかもね
0687デフォルトの名無しさん
NGNGそもそも構造化プログラミングとオブジェクト指向じゃ、語ってる対象が違う。
構造化プログラミングは、関数/手続きに分解が終わった段階で、その中を
どう記述するかという話
オブジェクト指向は、問題をどのようにモデリングするかという話
別に OO で分析/設計して、個々のメソッドは構造化プログラミングにしたがって
書くことは不可能じゃないよ。厳密にやると例外も投げられなくなるからアレだが。
自由度の大きさとOOとは関係ないと思われ。
むしろ、OOは制限の多いパラダイムだと思われ。
0689デフォルトの名無しさん
NGNG1)開発サイクルにおいて分析により多くの労力を費やす事=実コーデング時間の不足
2)スパイラルモデルやラウンドトリップモデル = 最初の設計が疎かになり易い また工程管理が難しい
3)問題領域の分析から入るため、実装仕様の肥大を招き易い
0690デフォルトの名無しさん
NGNG1 と 2 は矛盾してると思われ。
3 はありがちな話だが、それを防ぐためのスパイラルモデルでもある。汎用性は
そこそこに、適宜リファクタリングせよ、っつーのも小/中規模だとわりと実用的。
0691デフォルトの名無しさん
NGNG設計なんぞやらせると、設計を盾に変更に難色を示すプログラマー例が多いので
私は設計なぞさせません。
0692デフォルトの名無しさん
NGNG変更の可能性のあるポイントを事前に示唆しないお前が悪いんじゃん。
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG「日本はまだまだ平和だ」
0695デフォルトの名無しさん
NGNGあれのダメな方だろ。
0696デフォルトの名無しさん
NGNG長年SEやってて実戦OOはいつ習得したんだ?
そういうSEでまともなOO設計できる奴なんか見たこと無いぞ。
0697デフォルトの名無しさん
NGNG仕事は根性だ!
0698デフォルトの名無しさん
NGNGたぶんそれは691の口癖だろうな。
設計のマズさを突っ込まれるとつい出るという。
0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG文系だよね。
理系だったら理屈より他のものを優先させたりしないでね。
0701デフォルトの名無しさん
NGNG黙れリア厨。
社会に出れば理屈や道理なんか優先順位の下から数えた方が早いんだよ。
0702デフォルトの名無しさん
NGNGそうでもないぞ。
もちろん組織の間の力関係とかで道理が通らないこともあるが、こと開発に
関しては
無理を通すとデスマーチ
になるだけだから。分かってるところは、あまり無理をしない。
0703デフォルトの名無しさん
NGNGじゃあ聞くが、デスマーチが一向に減らないのは何でだ?
691みたいな糞SEがのさばってる証拠だろ。
0704デフォルトの名無しさん
NGNGそりゃ、あなたの立ってる位置が悪すぎ。
デスマーチに関わらなくても食っていける程度には、まっとうな仕事はあるぞ。
0705デフォルトの名無しさん
NGNGいまどき食えるだけで満足なの?
とか言ってみるテスト。
0706デフォルトの名無しさん
NGNGむしろ、デスマーチにはまってるときこそ「食えるだけ」っつー気がするな。
起きて、食って、コード書いて、仕様変更に泣いて、飯を食って、コード書いて、
テストして、家に帰ると午前様。
本を読む時間はおろか、2ちゃんねるで遊んでる暇もありゃしない。
0708デフォルトの名無しさん
NGNG嬉しそうにさしいれもってくるなっつーの…
0709デフォルトの名無しさん
NGNG矛盾していない
分析に時間をかけるが最初の設計に時間をかけないのはよくある話し
分析と称してはグダグダ会議を繰り返し時間を潰し
スパイラルだといいながらまだ動きもしていない状態で仕様変更
0710デフォルトの名無しさん
NGNG>たとえば、>>581が出した短いサンプルコードを見た >>588 の
>>メソッド4つ位で、順次実行べた書きと対して変わらないし。
短いサンプルコードって1Kstep以上あるじゃん。
こんなのクラスライブラリで3行だよ。
0711デフォルトの名無しさん
NGNGそれって、OO分析・設計が駄目な理由というよりは、
駄目な分析・設計したらこーなった、
って話にしか聞こえないんだけど。
例えば構造化分析・設計でも、
ヘッポコな分析・設計すれば
同じような戦場が簡単に発生するわな。
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNGだめなやつはなにをやってもだめ。
従来の非OOの設計のほうが危険度が少ないつーだけ。
で、よろしいか?
0714デフォルトの名無しさん
NGNGよろしいが、だめなやつを減らす努力をしないと何も変わらん。
0715デフォルトの名無しさん
NGNGOOPは使わないと損。
OO分析(OOAだよね)が簡単という話はあまり聞かない気がする。
(でもOO分析とスパイラルアプローチは関係無いよね)
0716デフォルトの名無しさん
NGNGつーことは、優秀なSEが低脳なPG使えばいいってことか?
0717デフォルトの名無しさん
NGNG楽なまま終わったんじゃなくて、機能の積み上げが激しくなったね。
もうOOP駆使してもう古い言語やクラスライブラリの無い世界には戻れないって感じ。
その世界にSヨは入れないよ。
Web系はちょっと違うかもしれないけど。
0718デフォルトの名無しさん
NGNGで非OO設計とは何かというと 画面と印刷物の希望だけ渡されて あとは口頭で聞いて仕上げると
0719デフォルトの名無しさん
NGNG10年前のようなコーダーはもう生き残れないね。
SEも口先だけではどうにもならなくなってきたんじゃないか。
0720デフォルトの名無しさん
NGNGオブジェクトの関連は考えてないとトンデモクラスがイパーイできるからそうだね。
オープンソースとの共存を考えると、膨大なコードを読む能力がこれから必要になるね。
膨大なコードとOOPのカプセル化はピッタリなんだけど、オープンソースはC言語かな。
0721デフォルトの名無しさん
NGNGWEB系ってASPとかJSPも含めて
ファイルのサイズはそれなりの大きさになるけど
それを大規模あるいは中規模と勘違いして
OOは大規模には向かないとか言ってたりして・・・
昨今はWEB系が流行りだけどさ。
JSPを例にあげたOO的設計では、
仕様が変わらないTOMCAT以下は、インターフェースでラップして
.jspは使い捨て、という認識で・・・
ejbもフレームワークができてるんで
ejb使ったり、作ったりするのが
OOかどうかは怪しいよ。
そんな勘違い君がいない事を願う。
0722デフォルトの名無しさん
NGNG甘いと思う
OOPでオープンソースを作ったとすると問題はクラスライブラリの互換性
特にGUIにクラスライブラリを使われてしまうと 合成が出来なくなる。
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGあるクラスライブラリを派生したもの同志なら出来るけど。
0725デフォルトの名無しさん
NGNG具体例をあげてくれよ
どういうケースで問題があるのか。
クラスライブラリ同士を合成するってどういう意味だ?
フレームークを合成するだったらネタだとしか思えないけど。
WEB系はコーダーって言うんだよ。
プログラマーとは言わない。
0726デフォルトの名無しさん
NGNGなんかそうみたいだね。WEB系って最先端のイメージだったのに。
これからのWEB系はどうなるんだろう。
0727デフォルトの名無しさん
NGNGそうなん?
おれんとこじゃコーダーって聞いたことないぞ。
0728デフォルトの名無しさん
NGNGだから、BCBのTComboBox->ItemsをSTLのVectorに移したり出来ないよね。
BCB同志だったら、TComboBox->ItemsをTStringGrid->Cols[0]に代入とか出来るじゃない。
0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNGなーんだ、自分のコーディングの技術がないだけじゃん(w
調てこい、ボケ!!
0734デフォルトの名無しさん
NGNG大いにウケタ(w
>>732
いまだと .net なのか?
一昔前は IIS + VBScript, JSP とか Apache + Perl が流行ってたけど、あれは面
白いかっつーとそうでもない気がする。全体像を設計するのは楽しいけど、コーディ
ングは単調だし。
0735デフォルトの名無しさん
NGNG超お願い。技術教えて下さい。
今までVCLばっかりやっててSTLに挑戦しているところだ。
0736デフォルトの名無しさん
NGNGまずはプログラミング言語 C++ と Effective STL 読みましょう。
0737デフォルトの名無しさん
NGNGおまえ728か?
STLとか言って言い訳してんじゃねーよ。
まずOOわかれ。
それからSTLだよ。
何でSTLが必要(便利)なのかわかってから使え。
0738デフォルトの名無しさん
NGNGSTL は OO じゃないと思うけど。あれは Generic Programming でしょ。
(仮想関数を一切使わんし)
0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNGどうも勘違いしてるみたいだけどSTLは使えるよ。
728に書いたのは、VCL同志では、TStringsから派生した文字列セットは、
まとめて移動できるけど、STLには移動できずにループでまわしてセットしなきゃ
ならんのじゃないの?ってこと。
0741デフォルトの名無しさん
NGNGSTLでできることは全てOOでできる。
でもSTLで書くと、うまくかけるケースがある。
それが何かわからないまま、STLを乱用するのはよくない。
Javaが最初にSTLを実装しなかったのはそのためだと「思う」。
Javaでgenericsが使えるようになるのはいつだっけか?
楽しみだ。
0742デフォルトの名無しさん
NGNG今はJavaはSTL使えるのでしょうか?
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNGまだ。Generics のサポートは Java 1.4 で入る予定だったが、間に合わず次に
持ち越しになってる。
0745高校生
NGNGわざわざ作る必要ないだろ!gccが使える環境なら
%cpp -P foo.java > temp ; mv temp foo.java
でCのプリプロセッサが使えるだろ。。。誰か、本番で
使ってみるチャレンジャーおらんかな?
0746デフォルトの名無しさん
NGNG0747デフォルトの名無しさん
NGNGhttp://staff.aist.go.jp/y-ichisugi/epp/j-index.html
0748
NGNGプリプロセッサの数だけJavaの方言が出来てしまう。
0749デフォルトの名無しさん
NGNG一緒に配布したら誰でも使うようになるだろうが。
0750デフォルトの名無しさん
NGNG確かCプログラミングの「教科書」でとんでもないマクロを使いまくって
いたのがあったと記憶している.
Java処理系と一緒に配布しないのは正解.
0751
NGNGはあ?
0752デフォルトの名無しさん
NGNGプリプロセッサが入っちゃうとヘッダーファイルが出来ちゃう。
0753
NGNGgccがなくてもVCがインストールされてればCL.EXEで行けることが判明。
0754
NGNG0755
NGNG0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGに導入するほうがずっといい.だから次期Javaまで待て.待てなければGJや
Pizzaを使うと幸せになれる.
0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNG0760デフォルトの名無しさん
NGNG関数型言語にどっぷりつかってきたのでPizzaがいい
0761デフォルトの名無しさん
NGNGそれ、危険な考え方じゃない?
0762
NGNGよくわからんが、正確にはVCじゃなくてVC++を使用。>CL
0763デフォルトの名無しさん
NGNG> プリプロセッサが入っちゃうとヘッダーファイルが出来ちゃう。
おいおい…
0764デフォルトの名無しさん
NGNG自作のジェネリックライブラリを作った場合は、何らかの方法でソースで指定する必要が出るでしょ?
0765デフォルトの名無しさん
NGNG何が言いたいやらさっぱりわからん。
俺がアホなのか?
0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNGだから、自作のテンプレート関数を書いたとするよ。
それをいちいちコピペするんじゃ テンプレート関数にする意味ないでしょ?
テンプレート関数がどこにあるか指定する必要が最低あるでしょ?
それはJAVAの文法だと先頭に宣言する必要があって、やっぱりヘッダーファイルと呼ぶんじゃないの?
0769デフォルトの名無しさん
NGNGそれって、上にいくつか出てる Java の Generics の実装を見た上で言ってるのか?
0771デフォルトの名無しさん
NGNGSTLがヘッダーファイルだから、
テンプレートが入ると必ずincludeしなきゃならない、
と思ってるんだNE!
0772デフォルトの名無しさん
NGNGコンパイラも新しいのが必要になるんだから、
-templatepathとかオプション追加すれば
いいんじゃないの?
0773デフォルトの名無しさん
NGNGもういいから JavaWorld の特集読んで出直してきてよ
0774デフォルトの名無しさん
NGNG768じゃないけど、そういう言い方は嫌だな。
0775768
NGNGimport で、テンプレートを指定するか、別の宣言になるか判らないけど、インポート宣言が必要になるだろうし
STL程強力なライブラリを実現するためには、
そのインポートされるライブラリは完全にはコンパイルされない状態でないと難しい筈
つまり、ライブラリだけを差し替えて動かすためには どこかで再コンパイルが必要になる筈だと
思ったわけです。 それが解決されているならいいです
0776高校生
NGNG#define BEGIN {
#define END }
#define IF if (
#define THEN ) {
#define ELSE } else {
...
誰か草案まとめてくれ。。。
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNGだから俺 Java 始めたときテンプレートなくても変な気しなかったけど。
# 使うと作るはまた別か。あの頃に STL があったら使ってたかも
# しれんが。
0780デフォルトの名無しさん
NGNGtemplateキーワード自体はめったに使わない(w
がSTLなんかは頻繁に使う。
0781デフォルトの名無しさん
NGNGいや、むしろよく使うようになるけど。
「作る」方にはアルゴリズムなどを自分で書く機会は少ないけど、Mixin を書いたり
Facade には使うけどな。template 使った Facade は、こんな感じね。
template<
class TWindow,
class TDisplay,
class TSoundDev,
class TScript
>
class DemoPlayerBase
{
// 中身実装いろいろ
};
typedef DemoPlayerBase<MainWindow, DirectX7Display,
NullSoundDev, DemoScript> DemoPlayer;
もちろん template 使わずに WindowBase, DisplayBase, SoundDevBase みたいな
抽象基底クラスを作ってそれを継承してやってもいいんだが、こっちの方が潰しが
効く。
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNGDemoPlayerBase のサイズによるけど、ふつーは
- Facade 部分は、各モジュールをつなぐ接着剤のように使う
メッセージの転送が中心の、小さなコードの断片
- Facade でまとめる各モジュールの実装は *.cpp に書いておいて、Facade
をコンパイルするときに見るのはヘッダだけ
としておくから、大して問題にならんよ。それに最近のマシンは十分に速いし。
0784デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています