トップページ⇒tech
854コメント333KB

オブジェクト指向は戦場では必要無し その3

■ このスレッドは過去ログ倉庫に格納されています
0001うつつつつNGNG
前スレがめでたく止まったようなので、その3
引き続きOO厨とアンチOO厨の血で知を笑う戦いきぼ。

その1 http://pc.2ch.net/test/read.cgi/tech/1011997945/
その2 http://pc.2ch.net/test/read.cgi/tech/1013266554/

0693デフォルトの名無しさんNGNG
>>692
CもC++もJavaもPerlもAwkもPrologも使う漏れって・・・
0694デフォルトの名無しさんNGNG
* C#  よらば大樹の陰
* Delphi 独立独歩
0695デフォルトの名無しさんNGNG
>>693
他人のプログラムは決して信じずまわりに流されやすい俗物。おたく、変態で地に足がついていない。
0696デフォルトの名無しさんNGNG
>>693
他人のプログラムは決して信じず、まわりに流されやすい俗物。
複雑な仕事には向かず、おたく、変態で地に足がついていない。

awkが入ってなかったヨ。
0697デフォルトの名無しさんNGNG
というか 全てのコンパイラは アセンブラの高級マクロだ
0698 NGNG
C# 一発狙いの詐欺師だが、時代を読む能がない。
0699デフォルトの名無しさんNGNG
* DQN C#を「C#」と全角英数で書いてしまう。
0700デフォルトの名無しさんNGNG
>* BASIC
>
>間違った基礎教育を受けた。もうやり直しがきかない。

これは性格診断か?(w
0701デフォルトの名無しさんNGNG
* 妄想君 どうでも良い事を既成のルールだと主張してしまう。
0702デフォルトの名無しさんNGNG
* 顔が真っ赤なDQN 「DQN」と全角で書いて欲しかったらしい。
0703デフォルトの名無しさんNGNG
>>692-702
asmが無いYO!
0704デフォルトの名無しさんNGNG
>>692
ここがマ板とム板に別れた頃にそんなスレッドあったよ。
0705デフォルトの名無しさんNGNG
asm
すべてを把握しないと気がすまない超管理主義者。付き合う人間は一苦労。
0706デフォルトの名無しさんNGNG
>>705
俺アセンブラ使いだけどOO的設計 管理が面倒だから
行き当たりばったりで思いついたところからかけるアセンブラが好き
0707デフォルトの名無しさんNGNG
>>706
>行き当たりばったりで思いついたところからかける

アセンブラなら許されるってもんじゃないと思うぞ。
OOPLだって行き当たりばったりにクラスを書くことは出来る。
0708デフォルトの名無しさんNGNG
行き当たりばったりプログラミングといえばXPだな。
0709デフォルトの名無しさんNGNG
その分テストファーストを徹底しますが、何か?
0710デフォルトの名無しさんNGNG
テストファーストを盾に行き当たりばったりを正当化されちゃったあ
0711デフォルトの名無しさんNGNG
リファクタリングも当然やりますが、何か?
0712デフォルトの名無しさんNGNG
テストファースト・リファクタリングを盾に行き当たりばったりを正当化されちゃったあ
0713デフォルトの名無しさんNGNG
過不足の無いプログラムが出来上がりますが、何か?
0714デフォルトの名無しさんNGNG
糞仕様でサッパリ使えないオナニー丸出しの
るーちん・くらす・こんぽーねんと
がでてきたあ
0715デフォルトの名無しさんNGNG
過不足の無いプログラムを盾に行き当たりばったりを正当化されちゃったあ… あら??
0716デフォルトの名無しさんNGNG
>>714
方法論ばっかやってる連中にありがちだねえ。
俺も一度見たことあるけど、全部捨てさせた。
0717デフォルトの名無しさんNGNG
>>715
藁
0718デフォルトの名無しさんNGNG
プロが一人でやったいきあがりばったりは なかなかバカに出来ませんて

最悪なのは複数人とか クロス開発でテスト環境がしっかりしてないとかで
 「この部分をブラックボックスとして」 
いきあたりばったりでやった場合だね。
0719デフォルトの名無しさんNGNG
二人で作業してくれとプログラム依頼されて、
一人がチンタラとクラス設計してるうちに俺がコーディング
始めて、結局おれがクラス設計が終わってないうちに
100%コーディングを済ませたことがある。
0720デフォルトの名無しさんNGNG
>>719

相方は719が作ったコードのクラス設計を理解した?
0721デフォルトの名無しさんNGNG
>>720
漏れのはクラスじゃない。
数千行程度のプログラムならサクサク書いたほうが
早いってことよ。
0722デフォルトの名無しさんNGNG
714の心配が現実のものになったわけか
0723デフォルトの名無しさんNGNG
>>721

今はそれで良くても仕様変更があったら719しかそのコードいじれなくなるよ。
そんなにサクサク作れるスキルがあるならペアプロとまでは言わないけど、相方に
設計を説明しながら作ればよかったのに。
0724デフォルトの名無しさんNGNG
>>721みたいなのは、ちょっとした使い捨てのツールを作らすのに、社内に1人くらい
いると便利。けど、よそ様にはお見せ出来ない。
作ってる暇があったら、先に仕様書書けゴルァ。
0725デフォルトの名無しさんNGNG
>>723 そんなもん仕様変更があったらまたサクサク作ればいいだろ?
  俺はこれ作ればそれで終わり。
  管理まで頼まれてねえや
0726デフォルトの名無しさんNGNG
>>692
SmallTalkじゃなくてSmalltalkね。

ところでSmalltalkもCもJavaもやる俺の場合は一体
俗物なのか理想主義者なのか、はっきりしてくれい。
0727デフォルトの名無しさんNGNG
>>726
> ところでSmalltalkもCもJavaもやる
ふつー、多言語を使う。
0728デフォルトの名無しさんNGNG
>>725

ところで、719がサクサクと作ってるのはどんな分野のプログラム?
0729デフォルトの名無しさんNGNG
SmalltalkとCとLispをやる俺は…
ただのプログラミング言語好きなだけじゃん
0730デフォルトの名無しさんNGNG
お答えします。
>>726
他人のプログラムは決して信じない俗物。
現実を認めようとせず、箱庭に楽しみを求める。

>>729
他人のプログラムは決して信じない変人。
協調性がなく、箱庭に楽しみを求める。
0731デフォルトの名無しさんNGNG
んで719が作るプログラムと同じように719自身も使い捨てられると。
0732デフォルトの名無しさんNGNG
一般的には731に同意。ちょっとましなマネージャなら使わないからね。
ただ、昔ファミコンのころのゲームのプログラムなんかは(今は知らないが)
売っちまったら二度と手入れられないので、中身はめちゃくちゃ。
とにかく納期に間に合わせてパッチ当てまくればよかった。
その時代なら719も生きる場所があったかも。
ちなみに開発はアセンブラ。
0733デフォルトの名無しさんNGNG
719じゃないけど、
まあ内容にもよるけど数千行ならクラス設計してやるような規模じゃないと思うが?

普通に構造化設計しながらコメント入れてはサクサクコード書いていけば
数千行ならデバックしながら7日もあれば書けるよ。
もちろんOOPL使えば構造化設計としてクラスも作るけどさ
0734デフォルトの名無しさんNGNG
行数だけでカタってる時点でアウト。
0735デフォルトの名無しさんNGNG
>>732
今だとプログラムの規模がでかくなっていて、プログラマだけでも最低 3 人、
多いと二桁って世界になってるから、

 中身めちゃくちゃ
 本人も把握してない

だと話にならんよ。
0736デフォルトの名無しさんNGNG
hello, worldを作るときに設計から始める奴はいないように、
数千行程度の小さなプログラムで設計をするのはどうかと思う。

まぁ新人ならば数千行程度の小さなプログラムでも
設計しといた方がいいと思うけど

0737デフォルトの名無しさんNGNG
>>733
数千行を仮に 5 千行としておくが、それで 7 日? 内容にもよるが、一日に
間違いのないコードを 700 行きっちり書き連ねていくのは、かなり辛いぞ。

設計を適当にすませるってことは、ある程度の行き戻りは覚悟することに
なるから、実質的に書くコードはもっと増えるし。

> 行数だけでカタってる時点でアウト。
全くその通りなんだが、まぁ、おおざっぱな話をするときには使える指標では
あるよな。(勤務評定で使ってはダメだが)

アプリケーションよりのコードで、同期やらなにやらが込み入ってない部分だ
と、俺は平均して一日 300 行(コメント、空行込み、修正や削減分は差し引い
て)ぐらいだよ。これがスレッドの同期が絡んだり、ハードウェアよりのプログラ
ムだと、さらに少なくなる。
0738デフォルトの名無しさんNGNG
>>733の「普通に構造化設計しながら」には、あるていど納得できる。
だけど、>>719のやり方とは、大きな差があると思う。
0739デフォルトの名無しさんNGNG
設計しないでダラダラ書いたら数千行になっちゃったプログラムと、
さらっとでも、しっかりした設計が出来てるから、数千行でコンパクトに
収まったプログラムの差、くらい大きな差かも。
0740733NGNG
まあ5千行だと7日は厳しいな。
千〜9千って事だから√(1000*9999) でおよそ3千行程度を考えてたよ

俺の場合は1日に、だいたい2千行くらい書いて、3/4捨てるような感じかな
関数・クラス単位にデバックして、動かなかったらさっさと捨てては作り直してるし
0741733NGNG
あ! でも俺の場合 1日って労働時間15〜6時間だった・・・鬱
0742737NGNG
>>741
納期直前はともかく、私は基本的に1日8時間しかコードは書かないなぁ。
それ以上は集中力が続かなくて、1 時間よけいにコードを書くと、翌日に
2 時間デバックする羽目になる(w

あまった時間は集中力のいらない書類整理とか、Web やメールを読んで
技術動向をチェック、なんて方に回してます。

> 関数・クラス単位にデバックして、動かなかったらさっさと捨てては作り直してるし
何が問題なのかをつきとめないと、また同じミスを繰り返すぞ。人が書いた
コードを回収しているような場合には

 「腐ったモジュールは丸ごと捨てて、作り直しちまえ」

とすることはあるが、自分が書いたコードではさすがに無いよ。
0743デフォルトの名無しさんNGNG
>>742
> 私は基本的に1日8時間しかコードは書かないなぁ。
え?デバッグする時間は?
コードを書く時間ってそんなに必要ないでしょう。

プログラムを書く場合に必要な時間って多くの場合、
設計とデバッグ。
0744737NGNG
>>743
ああ、設計・実装・テスト・デバッグ含めての時間だよ。

最近は実装・テスト・デバッグはスパイラルにやってるから、個々の時間は
記録に残してないです。
0745デフォルトの名無しさんNGNG
1分で5行しかタイプしないとして 300行 は1時間もあれば
書けるんだから、そんなもんじゃないの?
0746デフォルトの名無しさんNGNG
まあ色んな方法があるよな 他人の仕事みてたらさ

デバッカで延々トレースしたり悩んでるの見たら さっさと作り直した方が楽だろうにと思うし
こんだけ動いてるなら作り直すよりデバックした方が速いだろうにと思うし
0747デフォルトの名無しさんNGNG
あ、おれ、腐ってなくても捨てるコード、いっぱいあるなぁ。
でも、捨てる前に、ちゃんと動作することを確認してるけど。
0748デフォルトの名無しさんNGNG
抽象度の低い言語=アセンブラに近いほど デバックするよりコメント残して再構成する方が効率良くなるな

0749デフォルトの名無しさんNGNG
>>748
データフローを中心に考えるプログラムならば再構成でなんとかなる。
で、短いプログラムにはデータフロー中心で考えるものが多い。
0750デフォルトの名無しさんNGNG
>>745
実際にプログラミングして、作業記録をつけてみ。
0751デフォルトの名無しさんNGNG
>>745
タイピストとプログラマの仕事をごっちゃにしてないか?
0752デフォルトの名無しさんNGNG
漏れはアセンブラである程度の大きさの関数書くときは、途中で一息ついて
そこまでの条件書くようにしてる。たとえば、
# ここまででax,bxはフリー cxは処理済みのビット数 es:[di-1]までは処理済み
# ds:[si+bx]は全ビット処理済みでないことに注意
とか。
で、書きなおすときは、一息ごと(w にやるようにしてる。
0753デフォルトの名無しさんNGNG
> で、書きなおすときは、一息ごと(w にやるようにしてる。
その感覚は同感。

俺の場合は1日かけて完成できないクラスは
なんか間違っているということで、破棄することにしている。
0754デフォルトの名無しさんNGNG
俺は、インラインでないアセンブラで書く時はマクロで書くから、マクロ単位に一挙に書いてるな
0755デフォルトの名無しさんNGNG
>>753
俺は一日にはこだわってないけど、数日かけて1つのクラス実装してると、
たいがい途中で、「あ、これは別のクラスにしなくちゃだな」って思う。
思ってもそのまま実装しちゃうことも、よくあるけど。
0756デフォルトの名無しさんNGNG
>736
あんたがいなくなった後、メンテするやつにその数千行だけを読ませるの?
なんかドキュメント書くだろ。それって設計書を読ませるんでないの?
規模によって、設計書のレベルは変わるかもしれんが。
0757デフォルトの名無しさんNGNG
>>756
なんかタイトルと離れた話題だけど、
数千行(3千行程度)のプログラムとしての設計書はソース自身になるように作るのが普通では?
仕様書ならともかく、設計書を別に作らされてるってかわいそうとしか思えないのだが
0758デフォルトの名無しさんNGNG
「ソースが仕様書」は、作ったやつの一人よがりの場合が多い。
きちんとした書式の設計書でなくていいから、どんな作りになってるのか、メモくらいのこせ。
0759デフォルトの名無しさんNGNG
>>758
コメントで十分では? :)
0760デフォルトの名無しさんNGNG
十分だよなあ いったい何が欲しいの?
0761デフォルトの名無しさんNGNG
設計の概念の無いやつのコメントなんて、信用できるかよ(w
そんなやつのなら、だらだら書いてたら数千行になっちゃったようなクソコードだろ。

せめて、「どんな作りになってるのか」くらい書いとけ、ソースの先頭でもいいから。
それも必要無いようなのは、コメントもいらん。
一目でクソだとわかるほうが、捨てる判断もしやすいからな。
0762デフォルトの名無しさんNGNG
>>761 たった3千行なら、どんな作りになってるかくらい見たら判るだろ?
 どんな言語で開発してるんだ? もしかして素のbasicか?

そんなキミにいいこと教えてやろう アセンブラなら ':' をgrepしろ
pascal なら procedure / function で grepすればいい
cなら一度コンパイルしてマップファイルを見ればいい
0763デフォルトの名無しさんNGNG
>>762
数千行程度なら、いわゆる紙の仕様書は要らんと思うなぁ。

構造体とグローバル変数、それに関数の頭に簡単なコメントがつけてあれば
間に合う。それでは間に合わない腐ったコードもあるけど、それはコメントが
あってもやっぱりダメだし(w
0764デフォルトの名無しさんNGNG
>>761 設計の概念が無いって変な言葉だね

結局 自分のスタイルと違う設計は解読し難いというだけだろ。それは結局勉強不足さ。
0765デフォルトの名無しさんNGNG
そして新人が育たないっ、と。
0766デフォルトの名無しさんNGNG
つか、設計についてのコメント残さないと、手離れ悪いから、いや。
参考になるURLだけ書いとく事もあるけど、勉強しろゴルァって
言うよりも、ソースの先頭に全部書いてあるから読めゴルァ
のほうが、手離れがいい。
勉強不足なやつに、いちいち聞かれるの、うざいし。
0767デフォルトの名無しさんNGNG
>>765-766
別に新人教育のためにプログラム書くわけじゃないし。
0768.NGNG
コメントなんて無くてもわかるようなプログラムを書け。
0769デフォルトの名無しさんNGNG
>>768 でも、ちょっと普通じゃない使い方してたらコメントは欲しいな
0770デフォルトの名無しさんNGNG
>>761
> 設計の概念の無いやつのコメントなんて、信用できるかよ(w
> そんなやつのなら、だらだら書いてたら数千行になっちゃったようなクソコードだろ。
設計書を書かない奴と設計書を書けない奴を混同する奴の方が信用できない。
常に設計書を書かなければ気が済まない強迫観念をもったキチガイの方が信用できない。

設計書なんてエレベータみたいなもの。
 3階建ての民家にあるのは馬鹿
 5階建てくらいのマンションにはあれば便利だが、無くとも何とかなる。
20階建て以上もある高層建築にないのも馬鹿

3000行ほどの小さなプログラムも組んだことのない
新人君 or 学生君ならば設計しといたほうがいいと忠告しておく。
0771デフォルトの名無しさんNGNG
設計書書けなんて言ってないんだけどなぁ。
どんな作りになってるかのメモくらい残せよって言ってるんだが。
物作りするとき、走り書きくらいするだろ。
それがあとでコード読む手がかりになるなら、残さない理由が知りたい。

あ、もしかして、3000行程度のプログラムが脳内設計で書ける自慢?
ならしょうがないな。
おれがわるかったよ。

0772デフォルトの名無しさんNGNG
>>771
行数で語るから、話が混乱するんだと思うが。

べつに 1 万行でも単純なプログラムなら要らんし、百行でも複雑な
アルゴリズムを使ってるなら参考文献なり具体的な説明なりを残さ
ないと、後で自分が困る。

それだけだろ?
0773デフォルトの名無しさんNGNG
たとえば円を描くルーチンがあったとして、円を描くアルゴリズムまで説明を書くか?
0774デフォルトの名無しさんNGNG
3000行の円を描くルーチンなら、説明いるかも(w
0775デフォルトの名無しさんNGNG
>>773
Win32 あたりで既存の API を呼び出すだけなら書かない。

そうではなく、整数中点円スキャン変換アルゴリズムを自前で実装してる
なら、関数の解説(これは引数で指定された点を中心とする半径 n の円
を描く、云々)と、アルゴリズムに関する参考文献か解説を書いておく。
0776デフォルトの名無しさんNGNG
>>770-771
記憶力が良いか頭がイーかたなんでしょう。
私は1月前に書いた自分のコードが
コメント無しでは読めません。
0777デフォルトの名無しさんNGNG
上の方にドキュソな奴がいると、やれ「全ての関数について」関数仕様書を
書けだの、その関数仕様書には「処理概要」とかいって、ソース見ればわかる
制御構造とか、下手すりゃフロチャートまで書けとか、そのくせ関数名は
命名規則で8文字以内とか、そんな経験があると、「ドキュメントなんかいらん!!」
と言いたくなるよな(藁

だけど、ここで出てるのは、そういう定型的なドキュメントじゃなく、
どこがどうなっているかの概略を説明する簡単な文書だろ?

もちろんどんなプログラムかによるけど、3000行なら、A4 1〜2枚くらいは
説明書があったほうがいいと思う。

コメントでいいという意見もあるようだけど、コメントはソースの
「その場所」に関する説明だから、全体を概観する文書は、やっぱ別に要るよ。


0778デフォルトの名無しさんNGNG
例え3000行程度の小さいプログラムであっても、例えばどこにトイレがあって
どこが居間でどこが台所なのか、台所から今に行くにはどうすればいいのか
という事くらいは、(後でメンテナンスするつもりなら)書いておいたほうが
いいと思われ。

その3000行を、クラスなりなんなりで分割したそれぞれが、ちゃんと「居間」
であったり「トイレ」であったりするなら、それ以上の詳細を説明する文章
までは要らないと思うが。

3000行がmain関数一本と言うアホなプログラムじゃなければ、そういった
メモには価値があると思われ。
0779デフォルトの名無しさんNGNG
>>776
これって結構本当。
詳細設計がちがちでなければ、書きながら
考えてるし。
0780デフォルトの名無しさんNGNG
777のいう「概略を説明する簡単な文書」はなんと呼べばいいんでしょう?このまま?
自分は大昔からこれを書くようにしているので、馴染み深いのですが、
他の人はそうでもないようです。
0781デフォルトの名無しさんNGNG
>>780
設計概要説明書。
0782デフォルトの名無しさんNGNG
3000行で文書が必要という人は、どの程度の文書を書いてるのか興味あるなぁ。
ソースと一緒に公開してくれる人はいないかな。。。
0783 NGNG
オブジェクト指向は結局何も超えられなかった。
これに尽きる。
この方向でさらに突つきまわしても何も出てこないだろう。
OOブームを冷たい視線で眺めていた開発者達は今こそ見えてきた
頂上を目指す。
0784デフォルトの名無しさんNGNG
勉強始めた頃はメモを書いてからコードを書いていた
そのうちコードを書きながらメモを書くようになった
今は、行分割エディタでコメント部にメモを書きながらコードを書く
0785デフォルトの名無しさんNGNG
> 物作りするとき、走り書きくらいするだろ。
> それがあとでコード読む手がかりになるなら、残さない理由が知りたい。
C言語のプログラムだという前提で言うと
ディレクトリ構成でシステムの構成と階層を示している。
ファイルでモジュールを示している。
ヘッダコメントでそのモジュールの役割を示している。
includeで各モジュール間の依存関係を示している。
関数名で機能を示している。
ややこしい場所にはコメントを入れる

他に何が必要?GNUではこれで数万行を超えるプログラムが
何の問題もなく作られている。

もちろん、大規模なプロジェクトの場合、ドキュメントが一切ないのは
太平洋を横断するのに地図を持たずに航海するのと同じくらい無謀

だが、近所を散歩するのに地図を持って散歩する馬鹿はいまい
0786デフォルトの名無しさんNGNG
(´-`).。oO(そんなに必死に自慢しなくても…)
0787デフォルトの名無しさんNGNG
(´-`).。oO(>>786はなにをどんな自慢だと思ったんだろう…)
0788デフォルトの名無しさんNGNG
(´-`).。oO(設計のメモ残す必要無しって自慢してるやつが1名、自作自演ごくろうさま…)
0789デフォルトの名無しさんNGNG
ついに論理的な発言ができなくなって
感情的な1行煽りしかできなくなった約1名に捧げる

「なんでこのスレにしがみついてるの?」
「なんでこのスレにしがみついてるの?」
0790788NGNG
(´-`).。oO(まさに、オマエモナー)
0791788NGNG
俺は設計書が必要だとは一度も言ってないんだがなぁ。
作り始めに簡単なメモくらい書くだろ、それを残さない理由が知りたいって言ってるんだが。
無くても大丈夫とか、GNUでは大丈夫、は理由にならんだろ。
だから脳内設計で物作りが出来る自慢にしかならないのに…

ま、いいや、「あったほうがいい」っていう意見がいくつか出てるから。
0792789NGNG
>>788
小さなプログラムの設計のメモって何のために残すの?
読みにくいソースとコメント書いてしまった罰ゲーム?
■ このスレッドは過去ログ倉庫に格納されています