アカウント名:
パスワード:
1クラス3000行のプログラムとか・・・JavaでもC++でも、都市伝説では聞いたことがある。1クラス1000行のプログラムは、見たことがある。
上流や、マネージャ/チーフアーキテクトがオブジェクト指向、わかってないんだろうねぇ。私は・・・わかっている範囲で使っています(こういう奴が、一番チーフアーキテクトになってはいけない)。
iPhoneアプリがらみでObjective-C勉強していますが・・・まだまだ修行の身ですね、オブジェクト指向。
5年くらい前、サーフレットクラス一個当たりのソースコードが8000~12000行くらいあるWebアプリケーションの保守に関わっていました。
私が主に担当したのが、全体12000行のうち10000行をdoPostメソッドが占めていて、古いコードはコメント化、ロジック的(全くロジカルでないけど)にはサブルーチンと言う概念すら無い状態でした。
最初からクソな状態で書かれていたアプリケーションの保守を営業が取ってきたものでしたが、オブジェクト指向の理解以前に論理的思考能力が怪しい感じがします。
# メソッドが10000行にもなると、ローカル変数がグローバル変数のようになったり、
それ、どうやっても別クラスにできないんでしょうか…一個30行の30個ぐらいには分割できそう。まあ、それがどうやってもクラス固有で、他で再利用するメリットの無いプログラムならしかたありません。
>それ、どうやっても別クラスにできないんでしょうか…
動いていたりすると、それが「動いているモノには触るな」「触るにしても最小限」みたいな鉄則が出来ていたりしますね。でもって、そういったソースがおかしいとか、コードレビューとかちゃんとやっていないと、終盤土壇場でみつかったりして、「終盤まで動いていたから」みたいな言い訳が実績として前述の鉄則がでてきちゃったりする。
>それがどうやってもクラス固有で、他で再利用するメリットの無いプログラムならしかたありません。
再利用するためもあるけど、可読性のためにも、それが可能であれば、そうするべきだと思います。が、前述の鉄則に阻まれることがあります。また、運用系のエンジニアやPMクラスが阻むこともありますね。
>それ、どうやっても別クラスにできないんでしょうか…いいから黙って言われた事だけやるんだ
それ、どうやっても別クラスにできないんでしょうか…
技術的にはできるでしょう。やらない理由の大半は政治的理由ですよ。
Q1.コードが長いからクラス/メソッド分割しようよA1.クラス設計書/関数I/F仕様書が増えるからダメ
Q2.(C開発で)1つのファイルにコード全部書くと見づらいからファイル分割しようよA2.開発規約で「Cソース:ヘッダファイル:実行ファイル=1:1:1」と決まっているからダメ
たしかに大幅に少なかったかもしれません;;数は本当に適当です。エディタで30行を見直してみて、これは小さすぎるなと思いました。要は分割できそうといいたかっただけなので、30行はいらぬ発言でしたね。まあ、コメントや宣言などを除いた実コードで、>#昔1メソッド一画面(24行)は目安というのはすごく参考にすべき目安だと思いました。
まあ、コメントや宣言などを除いた実コードで、 <#昔1メソッド一画面(24行)は目安 というのはすごく参考にすべき目安だと思いました。
Java だとどうかなっていうのはありますが、今だと「実コードで」ではなく「処理本体で」かな、という感じでしょうか。 パラメーターチェックだけでなく、離脱時 (return や例外のスロー) での終了におけるオブジェクトの状態チェックや戻り値のオブジェクトに対する検証処理なども含めると、ちょっと「一メソッド一画面」は無理がありますから。
1クラス3000行のプログラムとか・・・JavaでもC++でも、都市伝説では聞いたことがある。
後先考えずにコピペしてれば、それくらい逝くのでは。 保守性なんて知らん。最後にclassで括ればグローバル変数じゃないでしょ。 …そんな考えで書き殴られたと仮定しないと、目の前の現実がありえません。夢なら覚めてくれ。
あぁ、それは夢だよ。後先考えるどころか、それ以外の書き方を知らない連中が多いのが現実。
オブジェクト指向以前の話なんだけど、
昔Windows3.1でMSC5だったかな?のころ、職場の先輩に「コンパイルできんのだけど」と言われて見たら、ソースファイルがでかすぎてメモリ不足になっていた。分割コンパイルにすればいいじゃん、と思って関数毎にファイル分けしようと思ったら全てmain関数でした。何千行あったんだったかな?
玉手箱を開けた気分でしたよ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
どこまでが笑い話・都市伝説なのか… (スコア:1, 興味深い)
究極的には 「// でコメントアウトできる C」みたいな…
Re:どこまでが笑い話・都市伝説なのか… (スコア:2)
1クラス3000行のプログラムとか・・・JavaでもC++でも、都市伝説では聞いたことがある。
1クラス1000行のプログラムは、見たことがある。
上流や、マネージャ/チーフアーキテクトがオブジェクト指向、わかってないんだろうねぇ。
私は・・・わかっている範囲で使っています(こういう奴が、一番チーフアーキテクトになってはいけない)。
iPhoneアプリがらみでObjective-C勉強していますが・・・まだまだ修行の身ですね、オブジェクト指向。
-- gonta --
"May Macintosh be with you"
Re: (スコア:0)
5年くらい前、サーフレットクラス一個当たりのソースコードが8000~12000行くらいある
Webアプリケーションの保守に関わっていました。
私が主に担当したのが、全体12000行のうち10000行をdoPostメソッドが占めていて、
古いコードはコメント化、ロジック的(全くロジカルでないけど)にはサブルーチンと言う
概念すら無い状態でした。
最初からクソな状態で書かれていたアプリケーションの保守を営業が取ってきたもの
でしたが、オブジェクト指向の理解以前に論理的思考能力が怪しい感じがします。
# メソッドが10000行にもなると、ローカル変数がグローバル変数のようになったり、
Re: (スコア:0)
基底クラス、インターフェース、実装に別けてても。
C++のように多重継承がないから理解しやすいですし、
javaにはjavadocという物もありますしね。
Re:どこまでが笑い話・都市伝説なのか… (スコア:1)
それ、どうやっても別クラスにできないんでしょうか…
一個30行の30個ぐらいには分割できそう。
まあ、それがどうやってもクラス固有で、他で再利用するメリットの無いプログラムならしかたありません。
新人。プログラマレベルをポケモンで言うと、コラッタぐらい
Re:どこまでが笑い話・都市伝説なのか… (スコア:2, 興味深い)
>それ、どうやっても別クラスにできないんでしょうか…
動いていたりすると、それが「動いているモノには触るな」
「触るにしても最小限」みたいな鉄則が出来ていたりしますね。
でもって、そういったソースがおかしいとか、コードレビューとか
ちゃんとやっていないと、終盤土壇場でみつかったりして、「終盤
まで動いていたから」みたいな言い訳が実績として前述の鉄則がでてきちゃったりする。
>それがどうやってもクラス固有で、他で再利用するメリットの無いプログラムならしかたありません。
再利用するためもあるけど、可読性のためにも、それが可能であれば、
そうするべきだと思います。が、前述の鉄則に阻まれることがあります。
また、運用系のエンジニアやPMクラスが阻むこともありますね。
Re:どこまでが笑い話・都市伝説なのか… (スコア:2, おもしろおかしい)
>それ、どうやっても別クラスにできないんでしょうか…
いいから黙って言われた事だけやるんだ
Re:どこまでが笑い話・都市伝説なのか… (スコア:1, すばらしい洞察)
技術的にはできるでしょう。
やらない理由の大半は政治的理由ですよ。
Q1.コードが長いからクラス/メソッド分割しようよ
A1.クラス設計書/関数I/F仕様書が増えるからダメ
Q2.(C開発で)1つのファイルにコード全部書くと見づらいからファイル分割しようよ
A2.開発規約で「Cソース:ヘッダファイル:実行ファイル=1:1:1」と決まっているからダメ
Re: (スコア:0)
1クラス30行だと単純なメソッド数個くらいしかクラスに入れられそうに無いんですが。
複雑な処理だと一つ入れるのも大変そう。
#昔1メソッド一画面(24行)は目安にしてたけど、1クラス1画面は目安にしたこと無いなぁ。
Re:どこまでが笑い話・都市伝説なのか… (スコア:1)
たしかに大幅に少なかったかもしれません;;数は本当に適当です。
エディタで30行を見直してみて、これは小さすぎるなと思いました。
要は分割できそうといいたかっただけなので、30行はいらぬ発言でしたね。
まあ、コメントや宣言などを除いた実コードで、
>#昔1メソッド一画面(24行)は目安
というのはすごく参考にすべき目安だと思いました。
新人。プログラマレベルをポケモンで言うと、コラッタぐらい
Re:どこまでが笑い話・都市伝説なのか… (スコア:1)
Java だとどうかなっていうのはありますが、今だと「実コードで」ではなく「処理本体で」かな、という感じでしょうか。
パラメーターチェックだけでなく、離脱時 (return や例外のスロー) での終了におけるオブジェクトの状態チェックや戻り値のオブジェクトに対する検証処理なども含めると、ちょっと「一メソッド一画面」は無理がありますから。
Re: (スコア:0)
まぁ3分の1ぐらいはコメントですけど
Re: (スコア:0)
1クラス3000行のプログラムとか・・・JavaでもC++でも、都市伝説では聞いたことがある。
後先考えずにコピペしてれば、それくらい逝くのでは。
保守性なんて知らん。最後にclassで括ればグローバル変数じゃないでしょ。
…そんな考えで書き殴られたと仮定しないと、目の前の現実がありえません。夢なら覚めてくれ。
Re: (スコア:0)
あぁ、それは夢だよ。
後先考えるどころか、それ以外の書き方を知らない連中が多いのが現実。
Re: (スコア:0)
オブジェクト指向以前の話なんだけど、
昔Windows3.1でMSC5だったかな?のころ、職場の先輩に「コンパイルできんのだけど」と言われて見たら、ソースファイルがでかすぎてメモリ不足になっていた。
分割コンパイルにすればいいじゃん、と思って関数毎にファイル分けしようと思ったら全てmain関数でした。何千行あったんだったかな?
玉手箱を開けた気分でしたよ。
Re: (スコア:0)