TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
プログラマの雑談部屋 ★83
【偽装請負】SEは結婚難孤独死が多数【多重派遣】
損保ジャパンがCOBOL一掃を決意
teratailもりあがっtail? 42問目
Java、Android開発の職業訓練について Part.7
おまえら通勤カバンに何入れてんの?w
派遣の大半が氷河期世代だろ?
プログラマの仕事着=私服。スーツ?ありえないw
IT業界の悲哀をジブリ風に語るスレ
プログラマー雇うお金がないけどプログラマーと組んで世界を変えたい。

関数の長さ 上級者10行後、中級者100行前後


1 :2014/10/12 〜 最終レス :2020/03/28
初心者、数百行〜数千行
(コメント行、空行、括弧だけの行除く)
これ、だいたいあってる

2 :
マジか?初心者が数百行も書けるのか

3 :
>>2
時間をかけて少しずつ長くしていくんだよ。
どんどん複雑になって破綻する。
それでも、うんうん唸りながら
長いコードを眺めてるw

4 :
初心者なら100行に達する前にプログラミングを諦めそうな気がするがな

5 :
>>4
それは初心者未満だね。

6 :
こんな話が出るってことは、OOでも地獄は変わってないのか

7 :
そりゃ変わるわけ無いだろ。
OOっていうのは上級者が使ってこそ便利な道具で
初心者はその便利な機能を使いこなせない。

8 :
結局はgoto大量ソースの保守を経験して、構造化プログラミングの有り難味を知り、
グローバル変数の害を知り・・・とやってかないと理解できないんだろう、この手のバカは

9 :
 かなりOOを極めないと10行ぐらいにはならない感じ。
で、相当優秀な人でもOOをマスターしている人はそんなにいない(言語やジャンルによる?)
ちなみにJDKやAndroidのソースコードもメソッド200行とかあるよ。

10 :
そら、別に1つ2つ極端に長いのがあっても不思議ではないでしょ
大量の条件分岐があったりとか嫌でも長くなる。
でも最低処理単位がそれならば仕方がないこと。

11 :
分からんなぁ
ひと続きの処理が長いと1000行とか2000行とかになる
行を減らす目的で関数に切り分けると、
あの変数も使うから引数に追加して、これも使うから引数に追加して、ってなって
結局ここは分けない方が楽、って結論になる
だいたいメイン処理の一部を関数にしても一回しか使わないし、
処理があっちこっち飛ぶと追いかけるのがめんどくなる

12 :
>>10
> 大量の条件分岐があったりとか
大量の条件分岐が発生する場合で、
関数テーブルに置き換えられないことなんてないでしょ。

13 :
コード記述の話題は一般化し過ぎる傾向にあるよね。
目的と状況に応じた長さ、粒度に設計できるのが中級者だべ

14 :
コードの長さっていうか複雑度のほうが重要かな。
長くても条件分岐やループがなければ全然構わない。
処理が上から下に流れただけだから。
大量の条件分岐などがはいるとだめ。

15 :
>>14
しかも条件が相互に絡み合うケースは最悪ね
ま、これが大体業務系では現れるわけだがw

16 :
>>15
作ってる本人が、そういう書き方しかできないと思い込んでるのか
シンプルに書くことができない。
なんでなんだろうな。
動くコードを書くことで、いっぱいおっぱいか?

17 :
>>16
プログラムに対する哲学や美的センスがなく、コーディング規約という名の糞宗教を頑なに信仰しているから。

18 :
初心者はこういうかんじ
http://ideone.com/P06RoT

19 :
>>18
ひどすぎワロタw
まず読む前に改行を直すな。

20 :
改行を直すだけで、コードが半分以下になるなw

21 :
>>18
だれに習ったんだろう?
この改行センスはw
でも、ifも深いわぁ・・・俺の知っているプログラムで最高の深度は23w
肯定ifしか書けない人だったわぁ・・・
否定で考えればスッキリするのに・・・。。

22 :
>>4
それ初心者にすらなれなかった人だろ
>>18
とてつもない個性的なコードだな
ある意味一貫していて美しい
しかし、とんでもなく読みにくい
>>21
深度23・・・凄すぎる
俺はifの深度が3になると気分悪くなるから最悪でも2に抑えたい

23 :
正しい形になっているか、というチェックでやろうとすると深くなるんだよな
全体から正しくない形を除いて行って、残ったのは正しい形というチェック方法にするだけで、浅く。しかも漏れなく作れるのに。

24 :
>>23
おれは、複雑なやつはそのロジックだな。
ちなみに勝手にその手法を「フィルタif」と呼んでいるww

25 :
速度を優先する場合、500行くらいになることない?

26 :
>>25
ない。
それは速度を優先してる気になっているだけのコードだろう。
つまりベンチマーク(比較)すらしてない。

27 :
>>23
業務系保守やってるから激しく同意。
あと、やたら同じような条件分岐があるような処理とかは、分岐したい状態を前提に持ったクラス設計にしてればインスタンス生成のタイミングに集約できることもしばしば

28 :
お前らみんな頭良さそう

29 :
>>27
うーんどゆこと?
例えばプロパティに持ってたとして、やっぱりifは必要になると思うけど
別のクラスとして作るってこと?

30 :
無名クラス使いまくると破綻するよソレ

31 :
無名クラス、無名関数は、その場限りでは便利そうだが、保守性は低そう

32 :
○ 無名クラス使いまくると破綻するよ、馬鹿がやると
まあ、馬鹿がやれば何使っても
破綻してますわw

33 :
>>31
お前が、使い方をしらんだけ。

34 :
Java8のラムダなんて使い方わからんし

35 :
わからんで終わってるあたりが無能っぽい

36 :
わからんのは難しいということ
難しい物は、だめ。
シンプルに使えない道具は役に立たない。
スイッチひとつで飛行機も空を飛ぶ

37 :
ゆとりは我慢することを知らない。
すぐに道具に頼ろうとする。
プロはつまらない仕事でも同じことをずっと繰り返しできる。
ループなんか使わない。同じことを間違わずに何十回
何百回、何千回と繰り返せるのがプロ。
LSIに半田付けをする職人を見習え

38 :
何の分野でも何の業界でも一部の有能しか扱えないものなんて一部の有能しか使ってないやろ
世の中、何の分野でも何の業界でも無能が8割以上で構成されてんだから

39 :
パイロットも自分で運転できないのが8割なんだぞ。

40 :
お前らみんな有能そう

41 :
>>36
ラムダ式に関しては食わず嫌いじゃないかな
どう考えてもラムダ式の方がシンプルだよ
List<Integer> list = new ArrayList<>();
// 無名内部クラス
list.sort(new Comparator<Integer>() {
 @Override
 public int compare(Integer a, Integer b) {
  return a.compareTo(b);
 }
});
// ラムダ式
list.sort((a, b) -> {
 return a.compareTo(b);
});

42 :
>>41
複雑じゃないか。
そんな機能を学習する時間のほうがかかる。

43 :
>>42
じゃあしょうがない

44 :
面白いのが客先に開発メンバー全員で挨拶に行くとき。
ここにいるのが熟練したプロの技術者ですって
紹介するんだが、実際はプログラムできない奴が8割www

45 :
開発メンバーの8割が無能って事実は
客には言えないなwww

46 :
ラムダ式のaとbのクラスはListのジェネリクスに従うのか?

47 :
>>45
客の会社も8割が無能だから

48 :
体感的にまともなコンビニ店員とか1割もいない気がするが

49 :
類は友を呼ぶってやつだな。

50 :
数列・行列、逆・裏・対偶、集合のキソ概念を一切使わず
ひたすらIF文を言われるがままベタ打ちする40代のオヤヂ
を想像して寒気がした

51 :
40代って独学の時代の世代?

52 :
ネットが普及した今は簡単に色々調べられるけど
ネット普及前のプログラミング世代は大変だったろうな

53 :
>>46
見てくださいこれが世に言われる無能です。

54 :
【速報/プロレス】長州力 自己破産していたかも 負債総額4億円 [東スポweb]
http://kanae.2ch.sc/test/read.cgi/wr%65s/1409028427/

55 :
10行後なんなの

56 :
爆発する

57 :
>>50
業界によるけども
リフレクション使いまくれてスタックトレース見ないと呼び出し元分からないようなものを作られると困る(立場なんで)
3ヶ月後に作った本人が分かってりゃいいが

58 :
>>18
http://ideone.com/wfU0tA

59 :
ひねりが足らんな

60 :
ひねれないのは初心者
ひねって有害なのは中級者
ひねって有益なのは上級者

61 :
>>58
C言語をdefineで別の言語風に仕立て上げてて笑った
それはCOBOL風なのかな?

62 :
普段からメソッドを短くするぞ!するぞ!って特別意識はしないなぁ
xUnit系でtestableなコードを意識すると自然と短くなるって感じ
あと、メソッドの役割そのものズバリの命名をつけるようすると、
自然とシンプルになるって感じ

63 :
しまった
「命名をつける」って何か変だw

64 :
オブジェクティブ思考でやればよろし

65 :
>>18を最低限インデントと改行、悪魔のstd省略とかだけ直した
改行は宗教的色合いが濃そうだ
http://ideone.com/Q8pLau

66 :
関数の長さじゃー行数か関数名かわかんねーだろ、この初心者が!!
関数の行数と言え

67 :
いやいや関数名100行前後とかだったら
萎えるわwww

68 :
その発想はなかった

69 :
あんなもん適当なフォーマッタにぶっこめば一発で直るやろ

70 :
switch文がめちゃくちゃ長くて
コンパイラがバグったの見たことある

71 :
2000行くらいcase文書いた初心者見たときはある意味すげーと思った

72 :
caseって規格上は上限があったような気がする
gccではいくつ書いても平気だった、みたいな実験結果をみたような

73 :
>>71
我慢強い奴はプログラマーに向いてないよな

74 :
いかに楽して作るか、いかに楽して目的を達成するか、
何の業種・職種においても要領の良さってのは大事

75 :
ファイルの行数ってどのくらいまで許されるのかな。
うちのばあい7000行とかざらにあるけど。 ちなみに、C言語です。

76 :
エディタなりIDEなりがうまく見やすく表示してくれりゃ行数なんて問題ないんじゃねえの?

77 :
Cだと関数が300行ほどあってちとなげーなと思ったら、途中に何カ所もincludeがあるのをメンテしたことが。

78 :
循環的複雑度
上級者、10未満
中級者、数十
初心者、数百

79 :
>>73 コード以外のドキュメント書かせても誰も読まないと思う。

80 :
>>78
わかる…

81 :
オブジェクト指向エクササイズは毛嫌いせずにやった方がいいな。

82 :
>>81
あんなのやらないとコツつかめない時点で適性ない

83 :
>>82
何やればコツをつかめる?

84 :
http://d.hatena.ne.jp/asakichy/20090612/1244769857
これか、筆者が実際のプロジェクトにも使ってるというけど、何を作るか次第だよな

85 :
>>84
 業界で有名な方々のBlogや記事をいろいろ読んだけど、オブジェクト指向に習熟していくと自然
とそういう書き方になるみたいね。俺も最近そういう書き方になってきている。
 後、クラス分割の粒度が細かくなると、ソースコードは自然とオブジェクト間のメッセージ
パッシングを表現するようになるからな。

86 :
>>84
ルール1〜5はオブジェクト指向と関係なくね?

87 :
> インスタンス変数は2つまで
Map<String, Object> hensuu
hensuu.get("value1")
hensuu.get("value2")
hensuu.get("value3")
とかやれば
1変数で複数の値が持てるし簡単に突破できるな

88 :
目的が変わってしまっているじゃないかw

89 :
http://www.oreilly.co.jp/books/9784873113890/
この本だな
サンプルコードはロハでゲットできるのか

90 :
> 1 行につきドットは1 つまでにすること
これも一時変数量産するだけで突破できちゃうな

こりゃちゃんと本に書いてある解説を読まず
このルール項目だけを見てエクササイズするととんでもないことになりそうだな

91 :
50行までってのも
改行文字が空白文字同等の言語だと複数行を1行に並べるだけにするとかしたり

92 :
オブジェクト指向うんぬんってより
ただ単に読みやすいコードの書き方の指南って感じじゃね
オブジェクト指向は実コーディングではなく設計思想だと思うのだが

93 :
>>87
ゲッターとコレクションクラスを直接使うのは禁止項目になっている。
>>90
リファクタリングもそうだけど、原本の趣旨を理解せずに行うととんでもないことになるな。

94 :
JavaScriptならどんなコードも1行にできるしな
これで上級者の仲間入りだ

95 :
それを言ったらSmalltalkは。。。

96 :
>>84 >>89
GJ
これ面白いね
既に会得してるものだと、読んでる最中に「あ〜これ、知らない間に俺やってるわw」ってなる
また、その概念に名前付けして整理できるからなお嬉しい
非言語依存なのもいい
原書読んでみようかしら

97 :
>>92
 データ変換を行うプログラムにこれを適用するには辛いかな。
逆にいうそれ以外は、いろいろ勉強すれば、この形に自然に準
拠するように書けるようになる。

98 :
>>92
>>84

99 :
>>95
参考までに調べてみた。
Smalltalk(の特に、VisualWorks とか Squeak/Pharo などの Smalltalk-80 直系子孫)は
35年近く蓄積されたコードで動いているんだけど、メソッドの多くは実際に短く書かれていて
たとえば、手元の Pharo Smalltalk http://pharo.org/ の最新リリース
(のIDEを記述した全ソース)について集計した場合、
(CompiledMethod allInstances collect: [:method | method getSource lineCount]) average asFloat
"=> 7.12162415603901 "
…とコメントを込みでも平均で7行程度しかなかった。

100 :
>>84
このエクササイズ程、やった事ない人とやった人の間で評価がわかるものはないな。
前者はいろいろdisりまくり、後者は2度と以前のやり方に戻れないと言う。


100〜のスレッドの続きを読む
teratailもりあがっtail? 45問目
50代のプログラマーいる?Part46
無能に進捗を合わせなければならない風潮
ショック!ryokoたんは実は男!4
正社員のことを知ったような口で語る派遣いるけどさ
上級プログラマの雑談部屋☆2
Java、Android開発の職業訓練について Part.7
こういうエンドユーザーが相手だとやる気が出る
プログラマー雇うお金がないけどプログラマーと組んで世界を変えたい。
【相談】プログラミングを独学でやろうと思うんだが
--------------------
花組スレ(本スレ) Part179
街の自転車屋専用スレ 119店目
粉の恥ずかしい書き込みを転載するスレ 17
【津田大介について】つるの剛士「近所でも無料でも夏休みでも、自国ヘイト作品を展示するアート展なんかに子供連れて行くわけない」★3
素人には 8÷2(2+2) を16と答える馬鹿が居るらしい
【悲報】韓国さん、米国防総省に「文在寅政権に強い懸念と失望を表明する」とハッキリ言われてしまう
Google検索に引っかかってほしい文字を貼るスレ
どうやったら日本は冬季メダル大国になれるか
☆中村壱太郎【成駒家】二幕目★
☆一文字リレー小説 Part113★
☆☆★バルクショップでお得にサプリライフ♪★☆★
めぐり研究所 ブッダかずひさ 3
ファゴットスレ5
【韓国】「女性を見ながらズボン下してオナニー」〜光州のネットカフェ(写真)[10/05]
【RO】RagnarokOnline 配信者・ニコ生主晒スレ
ドラクエ モンスタースキャンバトラーズ Part9
後藤真希「10歳から彼氏いました」
パナマ文書OFF【3】
【Steam】なんJ PCゲーム部★26
【頑張る】40代以上MRのスレその5【悠悠自適】
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼