「どうせ使い捨てるし」と思っていたら延々と使われる…ソースコードを綺麗に書く理由に共感の声

まとめました。
73
先日、こんなことが話題になりましたが
Ph.D.rita @rita0222

「どうせ使い捨てるコードだし」→延々と使われる 「ここでしか使わないから」→いつのまにかありとあらゆる場所で使われる 「何かあったら自分ですぐ直すから」→お前がいつもいつまでも現場にいると思うなよ 以上の理由により、業務でも!ソースコードは!!常に分かりやすく!!!綺麗に!!!!!

2019-04-25 10:54:33
Ph.D.rita @rita0222

とーちゃん。博士(メディアサイエンス)。在宅ワーカー初段。C++とC#がメイン武器。RPG・音ゲー・格ゲー・紳士ゲー・ラーメンズ・FM音源・お馬さんが大好物。F/R/Bはご自由に。フォロバは不定期で適当。空リプより@付きが嬉しい。まとめや転載は事前に一報を。アイコンは@hasu2010さん画。

https://t.co/877nEBdNX4

共感の声
磯野@限界定年退職エンジニアと繋がりたい @aidaho__3

もうかれこれ15年くらいコード書いてるけどホントこれなので、人類は学ばないなぁという気持ち twitter.com/rita0222/statu…

2019-04-25 19:01:06
イマージ @imaaji100

@rita0222 70年代エンジニア「こんなコード21世紀まで使われねえだろ。西暦は2桁にしてメモリ節約したろ!」

2019-04-25 20:02:19
Ph.D.rita @rita0222

@image422 2038年問題が火を噴かないといいですね、本当に……

2019-04-25 22:10:32
fjのYog教祖様 @fjs_kyousosama

@rita0222 実験用のプロトタイプだったはずの実装がいつの間にやら売られていた私としては、身につまされる (T.T) ただし3番は「自分が現場から移動した」のではなく「現場が自分の付近じゃない所に移動してしまった」のだが…

2019-04-25 16:16:28
イサカ @IthacaM37

@rita0222 見本として作ったコードがコピペで本番まで行くし、コピぺで使い回される・・・

2019-04-25 22:54:23
Tao Sasaki @tao_s

時間ないし、どうせ俺しかメンテしないしって思って書き殴ったコードがその後10年間使われ続けて後任を苦しませ続けてるという… twitter.com/rita0222/statu…

2019-04-25 19:07:50
murasaki.exe @MURASAKIexe

@rita0222 1番目のやつが原因でバグ発生したときの死にたさ………

2019-04-25 12:48:59
酔いどれポーラ@岩川 @alcoholic_pola

@rita0222 「変更加えたけど、変更理由とか履歴更新してないよ。大丈夫、後で設計書は更新しとくから」 →放置

2019-04-25 15:39:48
月読 @poorinvester

@rita0222 @osaka_seventeen 自分のコードも、数ヶ月後に見ると、何だっけってなるので、心に染みるお言葉です。

2019-04-25 23:08:47
あかのはいつき @AkanohaCircle

あったなぁ。 そしてその場しのぎの対応が積み重なった結果、超こんがらがったスパゲッティが出来上がる・・・(; ̄^ ̄) twitter.com/rita0222/statu…

2019-04-26 06:39:09
Kapapoo-F X @kp_fx

「後で使われそうなのでリファインしておこう」→リファイン前のが使い回される とか言う地獄もあったりすから困るのだよな… twitter.com/rita0222/statu…

2019-04-26 07:38:29
Nakamura @ma_naka

まさにこの使い回されたコードの解析と改修に巻き込まれ一ヶ月を費やした…。(他のことやりながらだけど) twitter.com/rita0222/statu…

2019-04-25 19:02:44
Shinnosuke @x18008fxxkoff

これ、社内システムにもいえる。 「一時的に権限与えるだけだから」→延々と使われる 「このロケだけだから」→いつの間にか非公認であらゆるロケで使われる 「何かあったら自分ですぐ直すから」→退職や移動で引き継ぎや仕様書がなく往々にして当の本人もどうしてこんな設定にしたのか分からない。 twitter.com/rita0222/statu…

2019-04-25 22:00:49
鳥貧民 @ARRcoholicLumpe

担当じゃないけどお困りの様子だったから暇つぶしに作ったクソコードが10年も延々使われて、規則に従っていないし仕様もない謎の機能として受け継がれていくハメになったりするからの、あの業界 twitter.com/rita0222/statu…

2019-04-26 00:08:17
レターラ@メカバレ垢 @180_retara

わかりみ。「こんな事になるならもうちょっとしっかりした設計書作るべきだったし、いっそのことリファクタリングしたい!」しかし、無情にもプロジェクトから外されたから、修正できないし、事あるごとに質問がやってくるというダブルパンチ。 twitter.com/rita0222/statu…

2019-04-25 12:21:52
極限生命体しいたけNA @yuroyoro

ソースコードの美しさへのこだわりが強い人です pic.twitter.com/XnWYW8xFnu

2019-04-25 10:10:03
拡大
拡大
ohNussy@個人開発者 @ohNussy

「美しいソースコードは求められてません、動けばOK♪」ってのは、「私は掃除しないし二度とこの部屋来ないから汚してもOK♪」とほぼ同義 twitter.com/matsun_researc…

2019-04-25 10:11:33

コメント

Yamamaya @yamamaya3 2019年4月26日
自分もテキトーに書いたコードが回り回って色々な所で10年後も使われててビビったことある。ソースコードはちゃんと後から読めるように書こうと改めて思ったわ。
8
gori.sh/aoki/140コロニー/comitia @gori_sh 2019年4月26日
「分かりやすく」は大正義だけど、「綺麗に」はそうでもないと思う、汚くても分かりやすければそれでいい
2
きさら@繁忙期が来た @m_kisara 2019年4月26日
テストする側だけど、出したバグの原因が「●年前のバグ対応からの潜在バグでした」なんてザラにあるからなぁ。
19
北邑直希 @naoki_ng08 2019年4月26日
gori_sh 「汚いけどわかりやすいコード」って、かえって難易度高いのでは……(見たことない)。
18
washeagle @washeagle 2019年4月26日
きれいに書こうとしてムダにテクいコードになるよりかは、泥臭いけどわかりやすいコードを心がけたほうがいい、と言う意味でなら多少は理解できる。泥臭い=きれいじゃない、というわけじゃないけど
2
むう @nyal1999 2019年4月26日
naoki_ng08 汚部屋の住人と同じで「俺にはわかりやすい」って言ってる馬鹿ならいっぱい見たことあります
14
むう @nyal1999 2019年4月26日
「美しい」とか「きれい」っていうから伝わらんのよね。可読性を意識して「整理された」コード
10
たし @punimuchiya 2019年4月26日
naoki_ng08 リテラルのベタ書きとかは汚いけどわかりやすい
1
むう @nyal1999 2019年4月26日
punimuchiya 改修案件が地獄めくので勘弁してください…(逆にマクロで一義に置かれた中に「これとこれは同じだけど意味が違うんだ」が混じってて地獄ったこともあるけど。誰だ「Ex」traと「Ex」tremeと「Ex」posure全部同じマクロでくくったの)
6
3Dポーズ集 @3dpose 2019年4月26日
今日の自分にはわかっても明日の自分は理解できない。っていうか昨日の自分を殴りたい。誰だこのクソコードを書いたのは(おまえや
23
海◆eoxyl9RE @umi_eoxyl9RE 2019年4月26日
拝啓開発様。平成32年の入力及び自動変換を受け付けないアップデートありがとうございます。おかげでご愛顧いただいてるお客様のサンドバッグになっております。
8
VRAM01K @VRAM01K 2019年4月26日
サンプルコードだからと例外処理書かなかったらそのまんま拡散したりとかね…
0
mocchi @n_mocchi 2019年4月26日
オブジェクト名がスペルミスのままその後色んな所にコピペ流用されまくって、見るたびにウギャァァってなった事はある
15
よず:フロサポ兼投擲系システムエンジニア @sp1185 2019年4月26日
おまけで作ったプログラムがいつの間にかメインになることは良くある。おまけといいながら担当者と話をしながら痒いところに手が届くようにしているからなんだろうな~。1そして昔のプログラムは変に難読化しようとしているものもあったりするのが…
0
Yeme @yer_meme 2019年4月26日
n_mocchi スペルミスのまま広がって最終的に「スペルミス(だけど仕様だから)」とRFCに書かれたrefererさん……
11
個人の感想です @Charlie3_y 2019年4月26日
昔々(20年前くらい?)はまだ、リソースの節約という大義名分で可読性の低さが許されたような気がする。その頃から時計の針が止まってる自称詳しい人たちが頓珍漢なことを言うんだろうな。
5
セマフォ @NoMoreLivesOne 2019年4月26日
・読みやすい、意味が解る書き方をしなさい。 ・可能な限り処理能力を求めなさい。 その二つだけで良いはずだ。 そして、これだけでは、どこの誰にも合意は取れない。なぜなら、そんなものは、このまとめにあるように、無いからだ。
1
gori.sh/aoki/140コロニー/comitia @gori_sh 2019年4月26日
[c6224439] 同じことを三回やるのに、その言語のforを理解した上で、まず変数に1(もしくはゼロ)を入れ、一回やったらそこに1を加え、三以下(か四未満、もしくは二以下か三未満)だったらもう一度やる、どの書き方はコーディング規約に基づく。って本当に分かりやすいですかね…?
0
むう @nyal1999 2019年4月26日
[c6224439] 古い組み込み系だと深いループネスト作れないというのはたまにあります。あと(無計画に積み重ねた)Aという処理とBという処理とCと言う処理が、「ぶっちゃけ同じじゃねえのこれ?」ってなったうえで、試験工程の兼ね合い上改修の許可が下りないままはんぱに放置されてるというケースもまれによくあります
0
たし @punimuchiya 2019年4月26日
DIのお作法でif-impl形式で作るやつとかも、そっちのがもちろん綺麗だし開発もやりやすいけど、よみやすくはないよなぁ
1
rambda @rambda2 2019年4月26日
Charlie3_y 20年前って1999年だぞ? 既に可読性の低いコードが許されるような時代じゃないわ。(それでも氾濫してたけど)
5
北邑直希 @naoki_ng08 2019年4月26日
[c6224439] それを「わかりやすい」という扱いにしてよいのだろうか……。
0
胡桃澤 奈波 @nowkogami 2019年4月26日
プログラマーは自分がいなくなっても大丈夫なものを作らされたうえで実際にいなくなってもいい扱いを受ける因果な職業
7
Yeme @yer_meme 2019年4月26日
gori_sh そもそもfor文自体が判りづらいんスよ。foreachだの高階関数だのを積極的に使うべきっス(過激派)
4
gori.sh/aoki/140コロニー/comitia @gori_sh 2019年4月26日
yer_meme foreach的なのは歓迎ですわw。各言語なんでloop(i,1 to 3){}的なのを用意しないのか不思議です。スクリプト言語だと時々ありますが
1
ぱんどら @kopandacco 2019年4月26日
私が電電公社時代にパッチあてたプログラムはさすがになんぼなんでも使われていないはず・・・っ(N88BASICなんか流石に使ってないよね??
0
ぱんどら @kopandacco 2019年4月26日
ところで自分で書いても5年も間が空くと忘れるんでコメントは他人が読んでも判るように書いておかないと自分でも判らなくなります
3
山吹色のかすてーら @sir_manmos 2019年4月26日
2038年問題は、コードが正しければ64bitでコンパイルすればいいはず。ってそんなことあるかーい。
0
sako @SSako86 2019年4月26日
コードを評価する際の判断基準として、「美しい」のようにあいまいなもので表現するのがそもそも的外れ。
0
NTB006 @NTB006 2019年4月26日
sir_manmos コンパイラに妙なものを組み込んで大惨事になる未来が・・・w
1
さたびー@ちえりすと @satavy 2019年4月26日
わかりやすいコードを書くのは大事ってのはわかるのだが、それを「美しい」と表現されるのはなんか苦手だ。
1
ぱたゆみ@いつも心に音楽を @papanda_san 2019年4月26日
十数年間に作ったユーティリティプログラムをまだ使ってると聞いた時の申し訳なさったらもう… とっくに辞めてるし´д` ;
1
あずいち@私は肉とビールを愛す @lovely_fishes 2019年4月26日
この手の話で怖ろしいのは、いつ誰が作ったかよく分からないシェルスクリプトをブラックボックスとして、ひたすら外側にスクリプトくっつけて使い続けてるって聞いた時かなー
6
鹿 @a_hind 2019年4月26日
糞の塊になってしまったものに後から関わってしまった人はどうにかしたい、治したい…というか全部棄てて作り直したいくらいの気持ちはある訳。 でも、その状態で何年、下手すりゃもっと長い間放置されて稼働してきてしまった実績があるからもう治せないんだよ。言ったところで俺は慣れた。お前も慣れろ。とか言われたりさ。 だから、今綺麗に丁寧にやれることは今やっとけ。後でやろうとか思ってるとそんな後では二度とこないから。 グダグダに慣れたら丁寧になんてできないし。
1
akavei @R2Deisui2 2019年4月26日
可読性ではなく、美しいコーティングとはなんだろう。 プリントアウトして1メートル離れて見たら、風景が浮かび上がるとかだろうか?
1
鹿 @a_hind 2019年4月26日
自分がいついなくなってもいいように、って準備してる事に限っていつまでたっても自分の手を離れず、いつでもできるから後でいいやとか思ってると急に担当外れたり異動になったりして手が届かない所にいってしまう現象はなんなんだろうな。そしてもう縁が無くなったから大丈夫だ、と思っていた過去の仕様に復讐される日が来たりもする。いや、ほんと可読性高める努力だけは怠っちゃいけない。
1
鹿 @a_hind 2019年4月26日
可読性高める方向での丁寧さはアリだけど美しい、っていうのは余計な事している可能性もあるから要注意だなー。 やたら美しい仕様書だのプログラムだの、ってやたら連呼してた奴の仕事後からみると自分の美意識優先して要件全然汲み取れておらず仕様変更の嵐となり、継ぎ接ぎだらけのゴミクズとしか言いようが無い物作ってた奴もいたしなぁ。
0
yuki🌾㊗️5さい🎉⚔ @yuki_obana 2019年4月26日
ゼロベースに仕事発注しない奴が悪い(´・ω・`)だから知ったことではないので気にしなくていい。
0
フルバ @furubakou1 2019年4月26日
a_hind マーフィーの法則じゃね?
0
ビッター @domtrop0083 2019年4月27日
「読めるけど汚いコード」ってどんなんなんだろ? 関数によってインデントの規則が違うとか?
0
🚮 @recyclebin5385 2019年4月27日
もうcreat関数は許してやれよ
0
鹿 @a_hind 2019年4月27日
furubakou1 それだ!平成の終わりに懐かしい言葉聞けましたありがとうございます。
0
星川まさお @HKMS0 2019年4月27日
Cにもあるけど、COBOLやFORTRANやPL/1なんかの各社拡張で「アセンブラ直接記述」や「数値記号で実行」とかあって、あれは機械語や中間言語知らないと、どんなにエレガントに書かれていてもわからない…wwww で、アホがベンダー提供のソース(コメント付き)を行単価ペース計算でコメント全部捨てさせて可読性喪失ってのがありましてな。
0
jpnemp @jpnemp 2019年4月27日
「IT業界では車輪の再発明は避ける」という習慣がこれらの悲劇を生むのだ……
0
Daregada @daichi14657 2019年4月27日
gori_sh 今時のプログラミング言語なら、「単にN回繰り返したいだけ(インデックス用の変数は不要)」を明示した書き方(rubyの「N.times do ... end」など)が用意されているので、forではなくそちらを使えばいい
2
南家宇塞斎 a.k.a. かん @kan143 2019年5月2日
容易に再発明できる車輪は何度でも再発明すればいいのよ。その過程で学ぶことも多かれ少なかれあるしね
0
@wanwanbawbaw 2019年9月24日
謎ファイルとして上がってきたのが大昔に自社で使ってた業務システムの入力オペレーター練習用プログラム(N88-Basicで作られwin-basicに移植されたもの)だった。なんで今も業務システムに転がってるのだろう
0
alan smithy @alansmithy2010 2019年10月19日
[c6224439] 納品時の金額が1行いくら単位だった時代の呪いだな
0