code-2434271_640


1: 名無しさん@涙目です。 2018/06/27(水) 13:14:49.82 ID:niXxiq2x0.net BE:422186189-PLT(12015)
http://img.5ch.net/ico/folder1_03.gif
中級者病(読み:ちゅうきゅうしゃびょう)とは、プログラミングなどを学ぶ際に、とくに中級者が陥りやすい精神疾患のことである。

概要
初級者から中級者へ昇格する時期は、ほぼどのようなソースコードでも読める程度にプログラミング言語に
精通し、また偉いプログラマーの提唱したデザインパターンも一通り理解したくらいの時期である。

すると、プログラミング言語の持つあらゆる機能と、偉いプログラマーの提唱するあらゆる技術を使わねば
ならないという思い込みが発生する。そしてHello Worldにまで崇高なオブジェクト指向や壮大なデザイン
パターンを適用しようとしだすのである。

その結果、
* 大量のクラス
* 迷路のような変数渡し
* 底なしに深いネスト

などといった凄い(ただし誰も理解できない)ものが生まれる。

また、条件分岐に多段の三項演算子を乱用するなどの症状も多く見受けられる。
最終的には第三者にとって読みにくい保守性の悪いスパゲッティコードが生成されることになる。

職業プログラマーにおいて中級者病の症状が発症すると、仕様書の作成や単体テストなどの工程を省き、
「○○日で完成させた」などと工期の短さを自慢するようになる。
さらに、そのような手抜きを前提とした見積書を作り、ライバル他社のお硬い見積書に対して
「あそこの会社ボッタクリっすねぇw」などと営業しだすことが多い。

中級者病は教育環境に依存すると言われており、とくに教育した人間が悪いと好発しやすいと言われている。
軍事や医療、金融などの世界では新入社員教育の一環として中級者病を防ぐ目的で「保守性」と「堅牢性」を第一に叩き込まれる。

なお、プログラミングしていて一番楽しい時期でもある。

http://monobook.org/wiki/%E4%B8%AD%E7%B4%9A%E8%85%E7%85

2: 名無しさん@涙目です。 2018/06/27(水) 13:15:04.60 ID:5guT7rw30.net
みずほ銀行

4: 名無しさん@涙目です。 2018/06/27(水) 13:15:47.32 ID:rFI0muMB0.net
富士通ではよくある

5: 名無しさん@涙目です。 2018/06/27(水) 13:16:46.32 ID:gbCUnFIQ0.net
言語の構文はわずかに例外が有るにしろ、
コードをシンプルで分かりやすく書くことが出来るように 作られたもので、
バージョンが上がると追加される機能っていうのはそれを更に良くするもの。

という当たり前のことから考えると、
問題ない機能を「俺が知らないから」「馬鹿が知らないから」という
理由で禁止する行為は、コードをクソコードに仕上げることになる。

もっと最悪なのが、俺がこれ以上勉強したくないから
他の人も使うの禁止!と言い出すリーダー。

9: 名無しさん@涙目です。 2018/06/27(水) 13:18:17.62 ID:hbcng3UB0.net
>>5
ラムダ式は一行限定な

15: 名無しさん@涙目です。 2018/06/27(水) 13:19:22.51 ID:Xp7SvLsN0.net
>>5
コボル最強伝説

71: 名無しさん@涙目です。 2018/06/27(水) 13:35:46.66 ID:04EwU/zl0.net
>>5
新規の開発なら確かにクソリーダー
既存の改修なら、既存部分の置換や再テストをスコープ外にするためにそういう設定することはある

6: 名無しさん@涙目です。 2018/06/27(水) 13:17:23.96 ID:muDLQhKq0.net
/* おまじない */

7: 名無しさん@涙目です。 2018/06/27(水) 13:17:40.01 ID:Me11q+0x0.net
1000行を超えるswitchを見たときは痺れた

8: 名無しさん@涙目です。 2018/06/27(水) 13:17:46.66 ID:aWrbENVC0.net
//この下の行を消すと動かなくなる//

97: 名無しさん@涙目です。 2018/06/27(水) 13:52:26.69 ID:rNNpRiaL0.net
>>8
あるある

101: 名無しさん@涙目です。 2018/06/27(水) 13:54:55.43 ID:hvqICMBS0.net
>>8
Cでよくあった
メモリ管理できてないのがげんいんってのが多い

10: 名無しさん@涙目です。 2018/06/27(水) 13:18:26.83 ID:o6UN6xsQ0.net
java で糞コードによくお目にかかる

11: 名無しさん@涙目です。 2018/06/27(水) 13:18:32.99 ID:/B0ED6/f0.net
if
 if
   if
   if
    if
     if
      if

34: 名無しさん@涙目です。 2018/06/27(水) 13:23:24.71 ID:dm0dlpcX0.net
>>11
switch文のcase内で分岐してるよりは追いやすくていい

123: 名無しさん@涙目です。 2018/06/27(水) 14:04:49.39 ID:MtAILDPq0.net
>>11
これ嫌

141: 名無しさん@涙目です。 2018/06/27(水) 14:15:59.43 ID:I2lxxRKl0.net
>>11
$test = ( $name == "hogehoge" ) ? 1 : 0;

これよりマシ

14: 名無しさん@涙目です。 2018/06/27(水) 13:19:03.01 ID:IPUI2Q3l0.net
オブジェクト多すぎw

16: 名無しさん@涙目です。 2018/06/27(水) 13:19:34.39 ID:32W6GuEb0.net
構造体名に日付が入っている

// struct Hoge_20070920{
struct Hoge_20081010{
}

36: 名無しさん@涙目です。 2018/06/27(水) 13:23:41.56 ID:muDLQhKq0.net
>>16
常にメモリ番地を直接参照してれば何とかなるな

17: 名無しさん@涙目です。 2018/06/27(水) 13:20:14.85 ID:N5XKWUmZ0.net
「AをBに代入する」とかいう訳の分からないコメントが全行に書かれてるソースコード
そんなの見りゃ分かる。なんでそうしたのかをコメントに残せよ!

68: 名無しさん@涙目です。 2018/06/27(水) 13:35:29.37 ID:ZIUumwBu0.net
>>17
これを強いられて絶望した
もうプログラムとかやりたくない

109: 名無しさん@涙目です。 2018/06/27(水) 13:59:02.39 ID:ysv6wygL0.net
>>17
逆にコメントを書くとそのメンテに工数取られるから書くなっつうレビュアーがいたな
改行空行も無駄だから省きました!レビューお願いします!ってかましたら音をあげたがw

225: 名無しさん@涙目です。 2018/06/27(水) 15:23:13.88 ID:+tnNXbPj0.net
>>17
昔の銀行のシステムだと、まず日本語で全部コメント書いてレビューして、
OKが出るとはじめてプログラムに取り掛かるとか。

18: 名無しさん@涙目です。 2018/06/27(水) 13:20:32.10 ID:8KYTzxnJ0.net
これなクラス作りすぎ

19: 名無しさん@涙目です。 2018/06/27(水) 13:20:40.50 ID:t7ICoB0F0.net
誰にでも出来るcobolで作れ

20: 名無しさん@涙目です。 2018/06/27(水) 13:20:48.84 ID:6OSw5kL10.net
逆に直接関わる案件は絶望的なのしか見たことない
海外の商用エンジンとかOSSのコードみる機会あると心が洗われる

22: 名無しさん@涙目です。 2018/06/27(水) 13:21:23.93 ID:hocDQSvd0.net
メンバ変数が複雑に絡み合いすぎてグローバル変数より収拾がつかなくなってるヤツ

23: 名無しさん@涙目です。 2018/06/27(水) 13:21:38.69 ID:UD0y2ArS0.net
空飛ぶスパゲッティモンスターコード教

25: 名無しさん@涙目です。 2018/06/27(水) 13:21:47.49 ID:IakYhrw80.net
三項演算子ってこれか
<条件式> ? <真式> : <偽式>

確かに「しね」だわ

45: 名無しさん@涙目です。 2018/06/27(水) 13:26:11.84 ID:dm0dlpcX0.net
>>25
returnする前に一度使う分には行数減るしいいだろ。三項演算子そのものが人気ないなら、エルビス演算子なんか生まれてないよ。
指摘されてるのは、それがさらに分岐するパティーン。

53: 名無しさん@涙目です。 2018/06/27(水) 13:29:01.64 ID:muDLQhKq0.net
>>25
javascriptのpromise〜thenを無名関数でとか見たら発狂しそう

79: 名無しさん@涙目です。 2018/06/27(水) 13:39:00.07 ID:4HOKcTjw0.net
>>25
書き方による
a=(b<5)?(b-2)
:(b+32)

のようにif文のように分かりやすく書く
必ず()で囲む(演算優先がおかしいため)
長くなりそうだったら諦める

うまく使うと鬼のようなif文の連続から逃げられる

28: 名無しさん@涙目です。 2018/06/27(水) 13:22:18.86 ID:Jv7Kqzt/0.net
古いシステムで言語の全くわからんのを見るとほぇ~って感じにむしろ感心する

29: 名無しさん@涙目です。 2018/06/27(水) 13:22:35.33 ID:cK3g8xdr0.net
どこにも使用していないのに削除すると誤動作を起こしてしまう謎の文字列変数

30: 名無しさん@涙目です。 2018/06/27(水) 13:22:42.02 ID:Q94ld3R00.net
クラスも上手く使えば便利極まりない道具なんだけどね。
人のプログラムだと追っかけるのが面倒だよね。

33: 名無しさん@涙目です。 2018/06/27(水) 13:23:04.37 ID:VA1H9jJf0.net
>そしてHello Worldにまで崇高なオブジェクト指向や壮大なデザイン
>パターンを適用しようとしだすのである

見てみたいw

41: 名無しさん@涙目です。 2018/06/27(水) 13:25:03.17 ID:bGIm56bo0.net
>>33
MVVM信者なんかが一時期やらかしてたな。

62: 名無しさん@涙目です。 2018/06/27(水) 13:32:13.46 ID:XPTU/7S90.net
>>33
console.stream.out(speak.greeting.hellow("world").toText())

35: 名無しさん@涙目です。 2018/06/27(水) 13:23:25.36 ID:hbcng3UB0.net
10 goto10

37: 名無しさん@涙目です。 2018/06/27(水) 13:23:43.65 ID:VCKZgJl50.net
doループのif書き

38: 名無しさん@涙目です。 2018/06/27(水) 13:24:33.36 ID:XPTU/7S90.net
10 NEW

43: 名無しさん@涙目です。 2018/06/27(水) 13:25:47.84 ID:hV0P0Bzt0.net
無駄に深いオブジェクト階層はJavaに多いよね

46: 名無しさん@涙目です。 2018/06/27(水) 13:26:42.89 ID:ZMCIO02I0.net
>ほぼどのようなソースコードでも読める程度にプログラミング言語に
>精通し、また偉いプログラマーの提唱したデザインパターンも一通り理解したくらいの時期

この時期に

>大量のクラス
>迷路のような変数渡し
>底なしに深いネスト

こんなことするわけない。もししてるとしたらデザインパターンも全く理解してないし
言語に精通もしてない。

50: 名無しさん@涙目です。 2018/06/27(水) 13:28:11.25 ID:XptDBppZ0.net
>>46
いや、多いよ
否定すると「staticおじさん〇ね」とか煽られる

52: 名無しさん@涙目です。 2018/06/27(水) 13:28:47.97 ID:mFDt2Iq00.net
>>46
デザインパターン覚えたてはマジでヤバイぞ

47: 名無しさん@涙目です。 2018/06/27(水) 13:26:59.17 ID:QwfTWR5R0.net
プロジェクトが肥大化するとオブジェクト指向の絡み合いはグローバル変数よりヤバくなる

55: 名無しさん@涙目です。 2018/06/27(水) 13:29:39.23 ID:nbCEm4TU0.net
同意過ぎてワロタ
一番楽しい時期だよな

56: 名無しさん@涙目です。 2018/06/27(水) 13:29:46.25 ID:cvcmB8u60.net
1000行程のSQLを見た時は気絶しそうになった

57: 名無しさん@涙目です。 2018/06/27(水) 13:30:33.18 ID:LSLZmvun0.net
五次元テーブル見た時はぶっ倒れそうになった
オレの脳みそでは三次元までしかイメージできん

61: 名無しさん@涙目です。 2018/06/27(水) 13:32:13.25 ID:iLrZW0dA0.net
要するに技術者の大半はこの経験あるということか
無能集団だな

74: 名無しさん@涙目です。 2018/06/27(水) 13:36:15.39 ID:Xp7SvLsN0.net
>>61
そうなんだよ、その無能が世の中のいろんなシステム作って更新してるんだよ。

63: 名無しさん@涙目です。 2018/06/27(水) 13:32:16.23 ID:WKikMHYj0.net
関数名が日本語

65: 名無しさん@涙目です。 2018/06/27(水) 13:33:04.03 ID:ezHVL6E/0.net
職業プログラマーは意固地、というか自分の考え以外を全部クソ扱いする印象ある
あんまり相手したくないな

69: 名無しさん@涙目です。 2018/06/27(水) 13:35:32.07 ID:zkZ2u4lS0.net
俺が新人時代に書いた某チェーン店のPOSレジのソース
システムリプレイスで改修する必要があったがあまりにも酷くて
既に営業に移動になっていた俺が開発に召喚されたw

72: 名無しさん@涙目です。 2018/06/27(水) 13:36:14.06 ID:W0LkSmxz0.net
Cのコードで、
変数の初期値が全部全角の2バイト文字で書いてあった時には
なんで動いてるのか本当に謎だった。

75: 名無しさん@涙目です。 2018/06/27(水) 13:36:16.24 ID:/Yvrg6yI0.net
俺の目の前の画面に毎日表示されてる

78: 名無しさん@涙目です。 2018/06/27(水) 13:38:26.62 ID:fN+mLqtQ0.net
一時期陥ったよ
ファイル小分けしすぎて結局わけわかんなくなるやつ
整頓したけりゃ一つのソースコード書くべきなんだ

82: 名無しさん@涙目です。 2018/06/27(水) 13:40:16.40 ID:xWtav5Ul0.net
長編小説のようなコードに、コメント一切なし

83: 名無しさん@涙目です。 2018/06/27(水) 13:41:37.31 ID:ERuJFuwj0.net
チューリングマシン用加算プログラム書いたことないやつは他人のコードにとやかく言う資格ないと思う
お前は「書ける」だけ。「設計」はできないんだ

84: 名無しさん@涙目です。 2018/06/27(水) 13:43:58.94 ID:q2dUpQ5B0.net
>>83
加算器と簡単な命令デコード回路ならいまでも設計してる

88: 名無しさん@涙目です。 2018/06/27(水) 13:45:20.29 ID:zkZ2u4lS0.net
>>83
自称プログラマの殆どはコーダーだから

90: 名無しさん@涙目です。 2018/06/27(水) 13:45:37.24 ID:Xp7SvLsN0.net
>>83
そうそう、そんな感じの人がいるのがフラグだよね

86: 名無しさん@涙目です。 2018/06/27(水) 13:45:04.89 ID:ZMCIO02I0.net
・名前が変
・コメントが変(ない)
は本当にきつい

89: 名無しさん@涙目です。 2018/06/27(水) 13:45:26.25 ID:TQ1V6RkP0.net
行数で金払ったのがそもそもの間違い。

91: 名無しさん@涙目です。 2018/06/27(水) 13:46:21.66 ID:XhgWuizC0.net
wordpressのソースコードとか絶望的だと思うぞ個人的には

92: 名無しさん@涙目です。 2018/06/27(水) 13:46:28.35 ID:v4aCzOu80.net
やたら長いソースに中国語のコメントは辛かった

98: 名無しさん@涙目です。 2018/06/27(水) 13:53:11.83 ID:Rd7ThyxQ0.net
大学に死ぬほど残して来たので同窓会に顔出せん

102: 名無しさん@涙目です。 2018/06/27(水) 13:55:41.55 ID:BBY/3McS0.net
同じスコープ内で大文字小文字だけが違う同じ名前の変数が複数あってそれぞれ別の使われ方をしている。
エディタ殺しだなあ。

106: 名無しさん@涙目です。 2018/06/27(水) 13:57:17.22 ID:hvqICMBS0.net
条件式の中に条件式書く奴いてめんどかった
デバッグ効率も考えて書け

119: 名無しさん@涙目です。 2018/06/27(水) 14:03:46.81 ID:hvqICMBS0.net
関数やクラス、メソッド、変数名が適当なのも困る
aaa
bbb
とか手抜きすぎだろ

121: 名無しさん@涙目です。 2018/06/27(水) 14:04:24.69 ID:BhFRkAJU0.net
デザインパターン入門読み始めは要観察期間

80: 名無しさん@涙目です。 2018/06/27(水) 13:39:43.32 ID:3DXEKnnT0.net
このスレ、なんか悲しい空気が流れてる



引用元: http://hayabusa3.2ch.sc/test/read.cgi/news/1530072889/