1 :今北産業! 2018/06/27(水) 13:14:49 ID:niXxiq2x0.net

中級者病(読み:ちゅうきゅうしゃびょう)とは、プログラミングなどを学ぶ際に、とくに中級者が陥りやすい精神疾患のことである。

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

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

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

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

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

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

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

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

http://monobook.org/wiki/%E4%B8%AD%E7%B4%9A%E8%80%85%E7%97%85
2 :今北産業! 2018/06/27(水) 13:15:04 ID:5guT7rw30.net
みずほ銀行
3 :今北産業! 2018/06/27(水) 13:15:22 ID:mrXoNJm30.net
オムロンの血圧計
4 :今北産業! 2018/06/27(水) 13:15:47 ID:rFI0muMB0.net
富士通ではよくある
21 :今北産業! 2018/06/27(水) 13:21:03 ID:Q94ld3R00.net
>>4 ww
富士通の方ですか?
5 :今北産業! 2018/06/27(水) 13:16:46 ID:gbCUnFIQ0.net
言語の構文はわずかに例外が有るにしろ、
コードをシンプルで分かりやすく書くことが出来るように 作られたもので、
バージョンが上がると追加される機能っていうのはそれを更に良くするもの。

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

もっと最悪なのが、俺がこれ以上勉強したくないから
他の人も使うの禁止!と言い出すリーダー。
9 :今北産業! 2018/06/27(水) 13:18:17 ID:hbcng3UB0.net
>>5
ラムダ式は一行限定な
200 :今北産業! 2018/06/27(水) 15:01:40 ID:ZMCIO02I0.net
単純な三項演算子は俺も慣れてるからいいよ。
多段は無理。素直にif使ってくれ
209 :今北産業! 2018/06/27(水) 15:10:35 ID:muDLQhKq0.net
>>205
Webはテキストフォーム入力の世界だからPHPが正しいわ
6 :今北産業! 2018/06/27(水) 13:17:23 ID:muDLQhKq0.net
/* おまじない */
7 :今北産業! 2018/06/27(水) 13:17:40 ID:Me11q+0x0.net
1000行を超えるswitchを見たときは痺れた
26 :今北産業! 2018/06/27(水) 13:22:02 ID:CIzfYs0eO.net
>>7
「他に方法が無い」のが更にな
8 :今北産業! 2018/06/27(水) 13:17:46 ID:aWrbENVC0.net
//この下の行を消すと動かなくなる//
97 :今北産業! 2018/06/27(水) 13:53:11 ID:Rd7ThyxQ0.net
大学に死ぬほど残して来たので同窓会に顔出せん
101 :今北産業! 2018/06/27(水) 13:55:41 ID:BBY/3McS0.net
同じスコープ内で大文字小文字だけが違う同じ名前の変数が複数あってそれぞれ別の使われ方をしている。
エディタ殺しだなあ。
10 :今北産業! 2018/06/27(水) 13:18:26 ID:o6UN6xsQ0.net
java で糞コードによくお目にかかる
11 :今北産業! 2018/06/27(水) 13:18:32 ID:/B0ED6/f0.net
if
 if
   if
   if
    if
     if
      if
34 :今北産業! 2018/06/27(水) 13:23:25 ID:hbcng3UB0.net
10 goto10
51 :今北産業! 2018/06/27(水) 13:28:47 ID:mFDt2Iq00.net
>>46
デザインパターン覚えたてはマジでヤバイぞ
123 :今北産業! 2018/06/27(水) 14:04:56 ID:LIyqr1j90.net
全部グローバル変数のCソースで絶望してたが、ただのJavaScriptと思うようにした
141 :今北産業! 2018/06/27(水) 14:16:04 ID:jRjrSLDP0.net
アノテーション地獄
143 :今北産業! 2018/06/27(水) 14:18:35 ID:xWcqdgHk0.net
>>30
>人のプログラムだと追っかけるのが面倒だよね。

クラスは要件に対してその人がどのような世界観を持っているかを現してるからな。
感動する時もある。
クラスは楽器とか鉛筆やな。センスというか、深い人間に描かせたら芸術になるな。
尤も、大規模なシステムではそういうのは無いけど。
定数クラス、ビジネスロジッククラス、デービークラス、画面クラスとかそんなん。
そっからオリジナルの派生クラスを作っても俺だけ目立つしな。
だいいち、そのオリジナルクラスの名前付けルールが無いから作れんしな。
150 :今北産業! 2018/06/27(水) 14:24:24 ID:XhgWuizC0.net
>>150
まぁ規約で禁止されてる場合が多いな
趣味で組む時は使うが仕事で禁止されてる場合は流石にやらんわ
151 :今北産業! 2018/06/27(水) 14:28:08 ID:xWcqdgHk0.net
年数と共に仕様変更が入りまくって
変更前のソースはコメントにして残すから
膨大なコメントアウトした過去ソースの合間に本ソースがチラホラあって
それがさらにif文ネストの中の奴とかで、コメントアウトしました仕様変更番号もネストしててスクロール何度も上下して
うわーー!結局何してんのか今自分が何処に居るのかすら全く分からんとかはあるな。
161 :今北産業! 2018/06/27(水) 14:34:59 ID:XhgWuizC0.net
>>159
VB由来の設計思想引きずったシステムだとよくあるよなそれ
168 :今北産業! 2018/06/27(水) 14:39:29 ID:jBfUQcGD0.net
可読性の高いプログラムを組めるようになるのが、中級者だろ
176 :今北産業! 2018/06/27(水) 14:44:14 ID:o84K7cAt0.net
あれ、三項演算子みんな嫌いなの?

数値代入くらいならifelseより簡潔でいいと思うんだけど
183 :今北産業! 2018/06/27(水) 14:47:10 ID:o84K7cAt0.net
>>170
静的解析ツールだとtrueとの比較は怒られちゃうね
でも人間的にはこっちの方が理解しやすいんだもの
14 :今北産業! 2018/06/27(水) 13:19:03 ID:IPUI2Q3l0.net
オブジェクト多すぎw
16 :今北産業! 2018/06/27(水) 13:19:34 ID:32W6GuEb0.net
構造体名に日付が入っている

// struct Hoge_20070920{
struct Hoge_20081010{
}
36 :今北産業! 2018/06/27(水) 13:23:43 ID:VCKZgJl50.net
doループのif書き
17 :今北産業! 2018/06/27(水) 13:20:14 ID:N5XKWUmZ0.net
「AをBに代入する」とかいう訳の分からないコメントが全行に書かれてるソースコード
そんなの見りゃ分かる。なんでそうしたのかをコメントに残せよ!
32 :今北産業! 2018/06/27(水) 13:23:04 ID:VA1H9jJf0.net
>そしてHello Worldにまで崇高なオブジェクト指向や壮大なデザイン
>パターンを適用しようとしだすのである

見てみたいw
68 :今北産業! 2018/06/27(水) 13:35:32 ID:zkZ2u4lS0.net
俺が新人時代に書いた某チェーン店のPOSレジのソース
システムリプレイスで改修する必要があったがあまりにも酷くて
既に営業に移動になっていた俺が開発に召喚されたw
109 :今北産業! 2018/06/27(水) 13:59:43 ID:8+5wivcL0.net
いま見てる死にたい
225 :今北産業! 2018/06/27(水) 15:24:36 ID:abK1PVDm0.net
>>94
これ
18 :今北産業! 2018/06/27(水) 13:20:32 ID:8KYTzxnJ0.net
これなクラス作りすぎ
19 :今北産業! 2018/06/27(水) 13:20:40 ID:t7ICoB0F0.net
誰にでも出来るcobolで作れ
20 :今北産業! 2018/06/27(水) 13:20:48 ID:6OSw5kL10.net
逆に直接関わる案件は絶望的なのしか見たことない
海外の商用エンジンとかOSSのコードみる機会あると心が洗われる
22 :今北産業! 2018/06/27(水) 13:21:23 ID:hocDQSvd0.net
メンバ変数が複雑に絡み合いすぎてグローバル変数より収拾がつかなくなってるヤツ
23 :今北産業! 2018/06/27(水) 13:21:38 ID:UD0y2ArS0.net
空飛ぶスパゲッティモンスターコード教
24 :今北産業! 2018/06/27(水) 13:21:46 ID:bGIm56bo0.net
NTTデータ案件
25 :今北産業! 2018/06/27(水) 13:21:47 ID:IakYhrw80.net
三項演算子ってこれか
<条件式> ? <真式> : <偽式>

確かに「しね」だわ
45 :今北産業! 2018/06/27(水) 13:26:42 ID:ZMCIO02I0.net
>ほぼどのようなソースコードでも読める程度にプログラミング言語に
>精通し、また偉いプログラマーの提唱したデザインパターンも一通り理解したくらいの時期

この時期に

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

こんなことするわけない。もししてるとしたらデザインパターンも全く理解してないし
言語に精通もしてない。
53 :今北産業! 2018/06/27(水) 13:29:34 ID:bg6VuWKl0.net
>>50
staticおじさんいるよねw
79 :今北産業! 2018/06/27(水) 13:39:43 ID:3DXEKnnT0.net
このスレ、なんか悲しい空気が流れてる
94 :今北産業! 2018/06/27(水) 13:51:11 ID:3n4CNSrk0.net
templateにハマって地獄を見る
C11のtemplateで更に地獄
157 :今北産業! 2018/06/27(水) 14:32:52 ID:St83LSVf0.net
c→javaとやってきて
pythonはなんか気持ち悪く感じる
165 :今北産業! 2018/06/27(水) 14:38:28 ID:xWcqdgHk0.net
>>162
マジかw
せめてxmlにすれば良いのにw
そういう問題ちゃうけど
27 :今北産業! 2018/06/27(水) 13:22:18 ID:Jv7Kqzt/0.net
古いシステムで言語の全くわからんのを見るとほぇ~って感じにむしろ感心する
28 :今北産業! 2018/06/27(水) 13:22:35 ID:cK3g8xdr0.net
どこにも使用していないのに削除すると誤動作を起こしてしまう謎の文字列変数
29 :今北産業! 2018/06/27(水) 13:22:42 ID:Q94ld3R00.net
クラスも上手く使えば便利極まりない道具なんだけどね。
人のプログラムだと追っかけるのが面倒だよね。
30 :今北産業! 2018/06/27(水) 13:22:53 ID:XPTU/7S90.net
ジャンプアドレス直書き
144 :今北産業! 2018/06/27(水) 14:18:54 ID:I2lxxRKl0.net
>>125
育てても3年で辞めていくなら、教えても無駄と気付いてる
31 :今北産業! 2018/06/27(水) 13:23:02 ID:z7gzCkpU0.net
>>17
33 :今北産業! 2018/06/27(水) 13:23:24 ID:dm0dlpcX0.net
>>11
switch文のcase内で分岐してるよりは追いやすくていい
41 :今北産業! 2018/06/27(水) 13:25:06 ID:zKsUwUOv0.net
ネストはまだいい
gotoでスパゲッティーは死ぬぞ、追ってたら
62 :今北産業! 2018/06/27(水) 13:32:16 ID:WKikMHYj0.net
関数名が日本語
67 :今北産業! 2018/06/27(水) 13:35:29 ID:ZIUumwBu0.net
>>17
これを強いられて絶望した
もうプログラムとかやりたくない
76 :今北産業! 2018/06/27(水) 13:36:31 ID:ERuJFuwj0.net
変数名関数名を
dotoとかgogoとか
全部dtgoの組み合わせに置換してから引き継ごう
35 :今北産業! 2018/06/27(水) 13:23:41 ID:muDLQhKq0.net
>>16
常にメモリ番地を直接参照してれば何とかなるな