1関数何行? 1クラス何行?

1 :仕様書無しさん:2012/10/28(日) 15:19:45.84 .net
※ただしプロジェクト全体の行数は1万行を超えるものに限る

55 :仕様書無しさん:2012/11/23(金) 23:23:59.69 .net

>>53
>どんなプログラム作ってんのか見せてほしいわ
オレも見たい
>>54
> 出力 = 便利な関数1(関数2(関数3(入力)))
これはかなり無理してるから続かんよね。
無理せずいつも2行になるなんていうのが可能かという話なんだが

46 :仕様書無しさん:2012/11/20(火) 21:34:35.65 .net

1クラス何行(というか何メソッド)?の方の答えが見えんが
だれか言ってみて

10 :仕様書無しさん:2012/10/31(水) 22:22:07.02 .net

>>8
条件分岐の中を別ステップ数として考えるの?
それ、普通ありえないし、別にしたらダメでしょ。

関数になっていれば単体テストできるけど、
ifで分岐されてるだけじゃ単体テスト出来ないから
複雑度がifの数だけ倍増していく。

変数のスコープもifの中から外が読み書きできるから
処理を小さくまとめることができていない。

54 :仕様書無しさん:2012/11/23(金) 10:47:05.53 .net

>>53
可能。

出力 = 便利な関数1(関数2(関数3(入力)))

こんな形に持ってくれば、メソッド2行でも複雑なことが出来る。
まあ関数数個が限界で、こんな密度ばかりのコードだったら読みづらいから
数行に分けるのが普通だけどね。

58 :仕様書無しさん:2012/12/01(土) 11:59:26.76 .net

一読性を考えると80桁x20行以内

45 :仕様書無しさん:2012/11/20(火) 20:05:05.50 .net

2行のメソッドズラズラ書かれても、却ってわけ分かんなくならない?

91 :仕様書無しさん:2017/12/29(金) 21:37:08.21 .net

誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

VM3VNZ7TTI

23 :仕様書無しさん:2012/11/14(水) 23:36:02.38 .net

>>22
それで?

35 :仕様書無しさん:2012/11/17(土) 23:18:47.44 .net

これはダメあれはダメといったら
じゃあ何ならいいのかってことを聞き返されるのは分かりきったことなんだから
最初からセットで言ってくれよと
いつもの客先打ち合わせやDRみたいだ

20 :仕様書無しさん:2012/11/11(日) 11:00:34.78 .net

function hoge(){
}
これだけで2行

16 :仕様書無しさん:2012/11/05(月) 10:30:53.04 .net

私が使っている言語では、1関数=2行 くらいが最頻。
最も長くて、1関数=5行。しかしこうなることはあまりない。
そして5行にもなる場合は、推敲の余地がある場合が多い。

80 :仕様書無しさん:2013/11/10(日) 11:16:53.69 .net

階層が浅いと保守性がいいわけ、読むに疲れないというやつ。
関数->関数->関数->関数で4こ下の変数を直すんじゃなくて
関数->関数の2こ下の変数を直すほうが追うに楽
関数が細切れになっていると読むに疲れる。

85 :仕様書無しさん:2013/11/15(金) 04:56:26.37 .net

オブジェクト指向言語では1〜3行のメンバ関数を大量に作る
ExtractMethodは1番基本的なリファクタリング
2桁行になるのはgotoやswitchを使うのを躊躇わない初級者

24 :仕様書無しさん:2012/11/14(水) 23:55:07.09 .net

ショートサーキットしまくりで10行くらい。

26 :仕様書無しさん:2012/11/15(木) 21:57:04.58 .net

int f(x) { int a; while(a = ++x++) { x /= 2; } return a; }

8 :仕様書無しさん:2012/10/31(水) 08:33:20.57 .net

条件分岐が多数あるものだと、ステップ数は増える。
それらを一ブロックと考えると20〜50ステップ程度だろう

75 :仕様書無しさん:2013/08/23(金) NY:AN:NY.AN .net

最初は設計書通りに書くので、1関数50行超、1クラス10関数超とかになる。
で、プログラマテストするにあたって、
「これ、よみずらいな」ってなって、関数分けや、クラス分けが始まる。

だから、1関数がものすごく長かったり、1クラスに趣旨の違う関数が詰め込まれてたりすのは、
単純にリファクタリングがされてないだけ。
つまり、リファクタリングしてる時間がなかっただけ。

設計書の段階で関数やクラス分けが十分になされることを期待するのは馬鹿げているし、
設計書ってそういうことをするために書くものではないでしょう?

悪いのは大抵、無茶な納期を組んじゃった上流の人たちだよ。

36 :仕様書無しさん:2012/11/17(土) 23:24:14.25 .net

なにいってんだ?
ダメというのは問題があるということ。
セットで言えないのはそれに変わるいい理由が見つかってないからだ。

何も言わなかったら、ダメということも伝えられない。
いいと判断されてしまう。良くないのだから問題があるということを
言わないといけない。

ダメといって代案を提示しないのは、
いい方法を一緒に考えましょうっていう意味だ。
お前こそ、いちいち聞き返さないで
ダメといわれたら代案を自分から提案しろよ。

81 :仕様書無しさん:2013/11/11(月) 02:18:06.70 .net

メソッドを関数と呼び奴は無能

11 :仕様書無しさん:2012/11/01(木) 23:38:58.34 .net

>>1
その1万行を俺が書き直したら3千行になる。

76 :仕様書無しさん:2013/08/23(金) NY:AN:NY.AN .net

鬼のように全関数がぶち込まれた1クラスを分割終了。
これから動作テスト。

サンプルプログラムだから文句を言える立場じゃないけど、
こういう作り方はちょっと困るな…

21 :仕様書無しさん:2012/11/12(月) 23:57:59.88 .net

>>18 >>19
細かいことは口止めされているが勿論マクロではない

>>20
そういう数え方なら、
1関数=2〜3行くらいが最頻
最も長くて、1関数=6行

48 :仕様書無しさん:2012/11/21(水) 10:42:52.79 .net

>>45
>2行のメソッドズラズラ書かれても
同じことができるなら20行ズラズラよりいいよね
>>46
1関数何行の方はアプリに依存しないが1クラス何メソッドの方はアプリ依存
だから一概には言えんのじゃないか

88 :仕様書無しさん:2016/05/31(火) 01:15:42.65 .net

age

86 :仕様書無しさん:2013/11/17(日) 12:13:07.94 .net

そしてそれを突き詰めると関数型言語になる

22 :仕様書無しさん:2012/11/14(水) 15:05:06.80 .net

function hoge(int a,int b){ return a + b;}
これで1行

68 :仕様書無しさん:2013/04/01(月) 02:51:29.99 .net

設計書どおりにってのは論理的な部分であって、
内部実装を設計書に依存させてしまったら非効率的なコードばっかになるで

そもそもコーディングがプログラム設計なわけだし、考えて実装しないとだめだろう
設計書と同じ構造にする縦割りお仕事脳だとこの先どんどんつらくなってくぞ

7 :仕様書無しさん:2012/10/31(水) 02:55:45.03 .net

>>3
んなもん場合によるとしか言えないだろアホなの?

70 :仕様書無しさん:2013/04/21(日) 15:21:49.66 .net

行数で判断するのは間違ってるけど、1メソッドは20行くらいを目安としてる
それを超える場合は複雑な機能を持ってることが多いので、考え直したほうがいい場合も少なくない
ただし、ボーダーの行数を超えるのがNGだとは思ってない
単純な機能として名前が付けれるメソッドで、分岐や繰り返しが殆どないようなら、
多少長いメソッドであっても、それは妥当なものだと思う

クラスは行数で考えるものではないけど、メソッドやクラスコメント含めて1000行超えちゃうようなら少し考える
行数が多いと全体の見通しも悪くなるし、テストコードが多くなるからあまり大きなクラスは作りたくない
コミットがコンクリフトする可能性も上がるし

分けるかどうかの目安としては、プライベートメソッドの量で考える
プライベートメソッドが多数あるなら、機能を抽出した細かいクラスが作れると思う
判定と分岐を一つのクラスにいっぱいもたせると、そのクラスのテストがだるいことになるから

34 :仕様書無しさん:2012/11/17(土) 22:50:29.97 .net

>>32
>今時”ステップ”て… そんなの数えても意味がない
じゃあ何で数えるのって話。語数ではどうだ?

60 : 忍法帖【Lv=7,xxxP】(1+0:5) :2012/12/03(月) 00:34:56.98 .net

10〜30くらい。大抵20ちょい。
コルーチンとかになると200くらい行くこともある。

40 :仕様書無しさん:2012/11/18(日) 20:28:51.67 .net

よくわからないときはとりあえず「42」と答えておけ
わかる奴はわかる、とくにグーグルのエンジニアならよくわかるだろう

38 :仕様書無しさん:2012/11/17(土) 23:46:54.62 .net

いまだにステップ数で生産性があるヤツか判断するやついるよな。
よく考えてできるだけ同じような処理がないように設計しても無駄骨。

17 :仕様書無しさん:2012/11/05(月) 18:10:52.26 .net

CCを使うと1関数数万行はざら

25 :仕様書無しさん:2012/11/15(木) 14:22:51.31 .net

物理的な行数でなく論理的な行数で知りたいよね >>24

65 :仕様書無しさん:2013/03/23(土) 18:14:42.26 .net

漏れもハスケルとかでプログラム作りたい

14 :仕様書無しさん:2012/11/02(金) 16:59:38.68 .net

行数で生産性を測る

14 :仕様書無しさん:2012/11/02(金) 16:59:38.68 .net

行数で生産性を測る

15 :仕様書無しさん:2012/11/05(月) 02:01:36.95 .net

俺は出来るだけ40行以内を目指す(1画面に収まる範囲)

実際は
10行未満40%
10行以上20行未満50%
20行以上10%
という感じ

61 :仕様書無しさん:2013/03/21(木) 17:37:39.25 .net

>>54
Lispってこんな漢字だっけ?

19 :仕様書無しさん:2012/11/11(日) 08:32:36.05 .net

>>16
マクロかよw

59 :仕様書無しさん:2012/12/02(日) 08:45:30.67 .net

今北産業基準で頼む。

4 :仕様書無しさん:2012/10/28(日) 17:30:20.82 .net

だいたい26行だな

51 :仕様書無しさん:2012/11/23(金) 01:16:10.35 .net

ウンコといえば、50cmの一本糞を放りだしたことがある。

3 :仕様書無しさん:2012/10/28(日) 16:30:04.74 .net

>>2
責任を負う範囲のコードを書いたら
だいたい何行程度になる?

28 :仕様書無しさん:2012/11/15(木) 23:15:38.00 .net

論理ステップ = ; と } の数

63 :仕様書無しさん:2013/03/23(土) 17:24:06.16 .net

同意。

アセンブラ書きの人は、インデントが綺麗だし
Cコードも簡潔で美しいよね。

繰り返しを悪のように言う人がいるけど
俺はそうは思わないね。

49 :仕様書無しさん:2012/11/21(水) 23:14:43.65 .net

2行10個が20行1個ですむなら20行1個のほうがいいし、
40行1個よりは20行2個の方がいいです

67 :仕様書無しさん:2013/03/31(日) 10:43:41.54 .net

詳細設計のドキュメントなんて、パブリックなところだけでいいんじゃねえの

47 :仕様書無しさん:2012/11/20(火) 22:28:40.06 .net

>>43
主目的が1関数しか見ないならそうだろうね

参考になったらSNSでシェアお願いします!

レスを投稿する(名前省略可)

この記事を読んだ方へのおすすめ

  • プログラマーってなんで不細工で陰湿な男が多いの?

    元スレ 1 :仕様書無しさん:2017/07/22(土) 09:57:29.08.net 俺は有名私大の理工学部卒で、新卒でUターンして地方の中小IT企業に入ってしまいましたが、周りはオタクっぽい奴か、短気で不細工で陰湿…

  • cocoaに見る日本IT業界の技術力とモラルの無さ

    元スレ 1 :仕様書無しさん:2021/02/09(火) 20:47:55.17 .net 検収テストやらないのも問題だが それでも、技術者としてのプライドやモラルのかけらも感じない日本のIT業界 これで、よく内製は技術…

  • 資格は無駄なのに学位が評価されるのは何で?

    元スレ 1 :仕様書無しさん:2018/08/07(火) 12:19:11.08 .net 基本情報や応用情報みたいな資格の知識は使い物にならんと言われるのに、工学部の情報系を出てると評価されるのは何で? 65 :仕様書…

  • みずほ銀行が示す日本の外注ゴミ説

    元スレ 1 :仕様書無しさん:2021/08/24(火) 06:30:03.71 .net だから内製にしとけと 25 :仕様書無しさん:2021/08/26(木) 19:39:36.91 .net ハードウェアは決まっ…

  • 50代のプログラマーいる?Part35

    元スレ 1 :仕様書無しさん:2018/09/16(日) 12:38:28.72 .net ああリューマチで膝が痛い!腰も痛い!肩も痛い! そんなんでも頑張ろう! 前スレ 50代のプログラマーいる?Part28 http…

  • IT業界は残業代を廃止すべき

    元スレ 1 :仕様書無しさん:2020/02/16(日) 12:57:17.45 .net 全てが能力に依存するこの世界では残業代は必要ない 東京から大阪まで2時間で行ける自動車と、3日かかる自動車がある場合 3日かかる…

  • プログラマならこれだけは入れとけというツール

    元スレ 1 :仕様書無しさん:2013/08/24(土) NY:AN:NY.AN .net 教えてください 66 :仕様書無しさん:2013/09/15(日) 14:42:16.19 .net 虹のビオレッタ 212 :…

  • プログラマならミニゲーム作ったことあるだろ?

    元スレ 1 :仕様書無しさん:2014/09/06(土) 12:52:41.05 .net 作ったことがないやつは 業務系オンリー、コボラー 18 :仕様書無しさん:2014/09/08(月) 00:01:32.27 .…

  • 小6でVBとかC#とかやってるけどなんか質問ある?

    元スレ 1 :ゼリー最高ペリー来航:2021/11/18(木) 21:11:51.95 .net 小6だけどなんか質問ある? 36 :仕様書無しさん:2021/11/27(土) 13:29:22.96 .net 毎日シコ…

  • 【私の年収】2015年度勢力調査【低すぎ?】

    元スレ 1 :仕様書無しさん:2015/04/22(水) 03:59:52.40 .net 埋めたいところだけ埋めろ テンプレ更新も適当によろしく 【年収】見込/昨年00万(賞与込/手取など) 【年齢】 【性別】男女 【…

  • 長い関数名をつける奴は技術力が低い

    元スレ 1 :仕様書無しさん:2014/11/08(土) 12:28:11.13 .net 汎用的な関数は短い名前。汎用的じゃない関数名は長くなる。 そういう関数はコードの中を見ないと何やってるかわからない。 名前と簡単…

  • プログラマの老後【60歳以上】☆8

    元スレ 1 :仕様書無しさん:2021/09/18(土) 16:36:14.30 .net まだまだ、いろいろ現役ですが・・ あなたはプログラマになって 良かったと思っていますか? 年金と投資、家族、病気、趣味など、 な…

最近のコメント

匿名 : 【いちゃ部屋】株式会社SHIFT【5ch出張所】
 新入社員はわかいそう、 在宅勤務でe-ラニングうけとけ、 ... (6/18)
匿名 : 【残業代】福井 株式会社アスタ【未払い】
 プライド高いところあるけど清輝あるなら大丈夫や (5/28)
匿名 : 【残業代】福井 株式会社アスタ【未払い】
 プライド高いところあるけど清輝あるなら大丈夫か (5/07)
ページTOPへ↑