相互RSS


絶望的なソースコード、みたことある?

シェアする

スポンサーリンク
1: 名無しさん@涙目です。(北海道) [US] 2018/06/27(水) 13:14:49.82 ID:niXxiq2x0 BE:422186189-PLT(12015)

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

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

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

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

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

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

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

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

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

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

475: 名無しさん@涙目です。(新疆ウイグル自治区) [US] 2018/06/28(木) 10:39:01.90 ID:j8+IeV/S0

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

↑この状況になるのにオブジェクト指向もデザインパターンも一切関係がない
単に馬鹿なだけ

OJTなどと言ってまともに新人教育をしない企業で働く素人に毛が生えた程度の底辺のやることであって、中級者ですらない

勝手に中級者病などと勘違いも甚だしい言葉を作るな

148: 名無しさん@涙目です。(東京都) [ニダ] 2018/06/27(水) 14:21:03.79 ID:flhGLzze0
10 DEFINT A-Z
20 PRINT”お好きな飲み物をどうぞ。”
30 INPUT”1.お茶 2.コーヒー 3.ビール 4.高原の岩清水&レモン”;A
40 IF A<1 OR A>>4 GOTO 30
50 FOR I=0 TO 3
60 IF A=0 THEN PRINT MID$(“それで?だから?ふうん。あっそ。”,1+I*4,4):END
70 A=A-1
80 NEXT

421: 名無しさん@涙目です。(アメリカ合衆国) [DE] 2018/06/27(水) 22:50:39.11 ID:iX+5T3d/0
>>4
同志よ!

446: 名無しさん@涙目です。(空) [ヌコ] 2018/06/28(木) 05:22:08.80 ID:AZM4Fdu50
>>4
これ

5: 名無しさん@涙目です。(北海道) [ニダ] 2018/06/27(水) 13:16:46.32 ID:gbCUnFIQ0

言語の構文はわずかに例外が有るにしろ、
コードをシンプルで分かりやすく書くことが出来るように 作られたもので、
バージョンが上がると追加される機能っていうのはそれを更に良くするもの。

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

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

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

200: 名無しさん@涙目です。(大阪府) [IT] 2018/06/27(水) 15:00:35.03 ID:eNoTACIi0

>>9
int a = b < c ? c : b;

三項演算子?をリーダーに禁止された
「俺が知らないから」

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

327: 名無しさん@涙目です。(茸) [EU] 2018/06/27(水) 19:59:17.29 ID:uE+w8DXC0
>>5
「XMLは分かりにくいからiniにしろ!」
と言い出したリーダーがマジで面倒くさい。

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

26: 名無しさん@涙目です。(広西チワン族自治区) [US] 2018/06/27(水) 13:22:02.21 ID:CIzfYs0eO
>>7
「他に方法が無い」のが更にな

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

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

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

11: 名無しさん@涙目です。(茸) [ニダ] 2018/06/27(水) 13:18:32.99 ID:/B0ED6/f0
if
if
if
if
if
if
if

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

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

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

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

25: 名無しさん@涙目です。(兵庫県) [US] 2018/06/27(水) 13:21:47.49 ID:IakYhrw80

三項演算子ってこれか
<条件式> ? <真式> : <偽式>

確かに「しね」だわ

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

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

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

42: 名無しさん@涙目です。(空) [US] 2018/06/27(水) 13:25:06.45 ID:zKsUwUOv0
ネストはまだいい
gotoでスパゲッティーは死ぬぞ、追ってたら

453: 名無しさん@涙目です。(大阪府) [NL] 2018/06/28(木) 08:23:09.98 ID:Xvh1/q7S0
>>42
gotoなんかvbaですら書くやつは少ないだろ。
ただresume nextが欲しいと思う時はある。

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

60: 名無しさん@涙目です。(東京都) [KR] 2018/06/27(水) 13:31:06.22 ID:dm0dlpcX0
>>47
名前空間分ける意味がわからなくなるよな…
でも、今はIntelliJとその仲間達が全部追ってくれるんやで。

49: 名無しさん@涙目です。(静岡県) [US] 2018/06/27(水) 13:27:34.76 ID:Q94ld3R00
gotoで一気に抜ければ楽なのに、Cの初心者は意地でも goto を使わないので余計見づらくなる。

440: 名無しさん@涙目です。(茸) [US] 2018/06/28(木) 04:23:06.52 ID:YveFTY4Q0
>>49
aとかbとかいうローカルフラグやめてほしい

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

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

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

74: 名無しさん@涙目です。(新疆ウイグル自治区) [US] 2018/06/27(水) 13:36:15.39 ID:Xp7SvLsN0
>>61
そうなんだよ、その無能が世の中のいろんなシステム作って更新してるんだよ。

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

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

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

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

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

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

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

451: 名無しさん@涙目です。(チベット自治区) [ニダ] 2018/06/28(木) 07:49:55.33 ID:IYEkE9Es0
>>89
それな
1ステップ何円、とか言ってたの思い出したわ

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

104: 名無しさん@涙目です。(千葉県) [JP] 2018/06/27(水) 13:56:42.11 ID:4FvOhIc30
>>91
前にちょっと見たことがある、で、そっと閉じた。

115: 名無しさん@涙目です。(庭) [SE] 2018/06/27(水) 14:01:49.53 ID:XhgWuizC0

>>104
汚い(スコープが広い)なりに、一応思想的に統一はされてるんだけどね
あれのメリットは、globalに各種apiクラスのインスタンスが載ってるって安心感
デメリットは、globalが超汚染されてるって絶望感

まぁプラグインとかです組む時は、おもいっきりモダンな構成にすれば溜飲は下げられるw

100: 名無しさん@涙目です。(大阪府) [US] 2018/06/27(水) 13:53:35.20 ID:FfKI8dEB0

>絶望的なソースコード、みたことある?

いま書いてるよ

103: 名無しさん@涙目です。(庭) [SE] 2018/06/27(水) 13:56:28.22 ID:XhgWuizC0
>>102
一応それ規約あるんだよな…
あるよな?

124: 名無しさん@涙目です。(茸) [US] 2018/06/27(水) 14:04:56.78 ID:LIyqr1j90
全部グローバル変数のCソースで絶望してたが、ただのJavaScriptと思うようにした

125: 名無しさん@涙目です。(やわらか銀行) [GB] 2018/06/27(水) 14:05:30.29 ID:K3fQkz/Q0
もう30年は経つのに未だに人材育成のノウハウ無いって
プログラマー業界ってヤバくね?

129: 名無しさん@涙目です。(滋賀県) [TT] 2018/06/27(水) 14:06:55.25 ID:BhFRkAJU0
>>125
日本のソフト業界の現状しって転職する人が多いですからねぇ(´・ω・`)私もメーカーやめて個人塾やってます

12: 名無しさん@涙目です。(茸) [CN] 2018/06/27(水) 13:18:39.10 ID:xSnVPys60
このスレを見ると不幸になる

引用元

http://hayabusa9.5ch.net/test/read.cgi/news/1530072889

管理人からひと言

過去の自分が書いたコードみて、絶望するときはある