コードの行数を減らすと生産性があがりバグも減る

26

1仕様書無しさん2015/09/12(土) 10:34:48.38 .net

この事実を発見してから我が社では既存のコードを修正し、
行数(正確にはステップ数)を極限までに減らす修正をすることで
バグを大幅に減らして生産性も大きく上げる事に成功した。






Share on Google+


2仕様書無しさん2015/09/12(土) 11:41:44.60 .net

>>1
可読性まで犠牲にして逆にバグが発見でき無いコードにならんようにな。

3仕様書無しさん2015/09/12(土) 14:50:35.49 .net

縦スパゲッティか横スパゲッティの違いじゃないの?

4仕様書無しさん2015/09/12(土) 14:56:15.81 .net

できるだけ改行しなければいいのか。

そんなソースコードとは関わりたくないが。

5仕様書無しさん2015/09/12(土) 15:09:44.46 .net

全部1行で書けば良いんだな。

6仕様書無しさん2015/09/12(土) 16:24:51.96 .net

アホやw

行数よりも
コードの見やすさとコメント量の方が大事

誰が見てもわかりやすいコーディング

メンテで差がつく

7仕様書無しさん2015/09/12(土) 16:30:30.70 .net

でもコードの行数がすくなければ
メンテする量も減るんですよ。

8仕様書無しさん2015/09/12(土) 17:00:07.26 .net

>>7
そりゃ、処理、機能がないんだからそうなるなw

9仕様書無しさん2015/09/12(土) 18:01:10.45 .net

コメントも多すぎると、そのコメントのメンテナンスも
必要になるから、コメントも少ないほうがいい。

10仕様書無しさん2015/09/12(土) 18:06:43.59 .net

>>9
おまえが文章書くのが苦手なのは分かった。

11仕様書無しさん2015/09/12(土) 18:10:05.58 .net

>>10
どこかまずい所があったら直しますんで、
具体的に指摘してみてください。




14仕様書無しさん2015/09/12(土) 18:54:26.57 .net

こんなん当たり前の話とちがうん?

昔のエライ人が言ってだろう?

「シンプル・イズ・ベスト」

簡単なモノは壊れにくい。複雑なモノほど壊れやすい。
これはプログラムコードにも当てはまるんよ。

俺はもう設計屋だから、コード書かせるときに必ず若いもんにこれ言うわ。

15仕様書無しさん2015/09/12(土) 19:50:30.60 .net

>>14
その当たり前のことが出来ないんだよね。
ソフトウェアの難しいのは、
バージョンアップしていく所。

大きい物と小さい物は作り方が違うんだけど、
小さく作って大きくしていく時に、
既存の部分を大きい作り方に直さないといけないんだけど、
「既存の部分に手を付けるな」とかいう馬鹿な奴が
指揮をとると、どんどん複雑になって手がつけられなくなる。

既存の部分を修正すれば、1.1の量で済むことが、
手を付けれないからコピーして、2になる。

16仕様書無しさん2015/09/12(土) 21:44:56.56 .net

本当に手を付けられないコードは、ある。

コードに手を入れればコード増加は少ないだろうが、リグレッションテストの工数が増えるだろ?

どっちの工数が少ないか秤にかけ、コードに手を入れない事は、フツウにあるだろ?


どっちがいいかは、プログラマには関係ないことだ。

18仕様書無しさん2015/09/12(土) 23:42:51.35 .net

>>16
> どっちがいいかは、プログラマには関係ないことだ。
いや、プログラマが判断することだろ。

17仕様書無しさん2015/09/12(土) 22:05:13.11 .net

> リグレッションテストの工数が増えるだろ?

そうならないように自動化すればいい。

結局オレが言ってることと一緒で、
手を入れるから増えるのではなく、
手遅れになってるから増えるんだよ。

21仕様書無しさん2015/09/13(日) 01:01:54.35 .net

自動化なんかしたら工数減るだろ!

22仕様書無しさん2015/09/13(日) 04:20:58.66 .net

シンプルなソースと行数は相関関係がないと思うんだが
一行に纏めて読みづらいif文よか5行でも読みやすい方が
保守工数は減るんでね

24仕様書無しさん2015/09/13(日) 18:00:38.85 .net

>>22
共通関数用意してるのに使えないから誰も使わなくて至る所で同じような処理が行われてるとか、
しかもそれが微妙に違うから各モジュールでデータをやり取りするときに変換かけないといけないとか
そういうのは?

28仕様書無しさん2015/09/13(日) 21:06:13.85 .net

行数が問題なんじゃねえよ

instructionが少なくなるように書けっつってっだろ?

29仕様書無しさん2015/09/13(日) 23:10:18.70 .net

>>28

>>1の
> 行数(正確にはステップ数)を
を読んでますか?

31仕様書無しさん2015/09/14(月) 07:09:08.63 .net

>>29
はあ?
instructionだよアホ

頭ん中で簡単なアセンブリしながら書けっての

32仕様書無しさん2015/09/15(火) 02:02:28.77 .net

if文に関数コール埋め込んだりすると行数は減るがデバッガで追いにくくなるんだが

34仕様書無しさん2015/09/15(火) 12:33:59.71 .net

>>32
最近はデバッガで追うようなことはしなくなってるよ。
まずはテストコードが書けるようなシンプルな関数を作る。
テストコードがあればデバッガはほとんど必要ない。

36仕様書無しさん2015/09/15(火) 22:26:56.30 .net

>>34
いいこと言うなあ
その通りだよな

38仕様書無しさん2015/09/16(水) 01:38:23.18 .net

>>34
テストが通らないときはどうするの?




39仕様書無しさん2015/09/16(水) 04:29:24.38 .net

>>38
ソースコードを眺めて(セルフレビュー)して
間違いを見つける。

これができない=コードが複雑 ということ

40仕様書無しさん2015/09/16(水) 06:56:26.57 .net

>>39
のんびりとした開発してるんだね

43仕様書無しさん2015/09/16(水) 10:38:38.57 .net

>>40
コード読むとのんびり?
あんた、他人がコードレビューしてないの?
読むのに時間がかかるコードだから?
終わってるねw

45仕様書無しさん2015/09/16(水) 13:12:44.83 .net

>>43
レビューはデバッグの時間じゃないぜ

46仕様書無しさん2015/09/16(水) 13:39:49.39 .net

>>45
そうだよ?

レビューとデバッグは両方やるし、その両方でコードを読む。
だからコードはスムーズに読めるに、なっていなければならない。
コードは解析するものじゃない。

デバッグで解析は楽ですーっていっても、
レビューでコードを読むわけで、コードを読む=のんびり。であるなら
まずその問題を解決しなければならないよね?

で、その問題が解決できれば、コードを読んでバグの修正もできる。

47仕様書無しさん2015/09/16(水) 15:00:27.70 .net

>>46
問題にしているのは、コードを読む時間ではない。
バグの修正にデバッガを使わないことで無駄になる時間を問題にしている。
あるバグを修正するのに、デバッガを使えば1分で原因が特定できたのに
使わなかったために原因の特定に10分かかった場合は、9分間給料泥棒
やってたことになる。
30分コード見ても原因が特定できずに、結局デバッガ使うことになったら
30分まるまる給料泥棒だ。

48仕様書無しさん2015/09/16(水) 15:13:17.77 .net

>>47
そもそも、デバッガを使っても
時間は短くならない。

49仕様書無しさん2015/09/16(水) 15:17:56.63 .net

>>48
そりゃ酷いコードだ

50仕様書無しさん2015/09/16(水) 15:31:48.72 .net

>>49
逆w

酷いコードだと
中で何やってるかわからないから
デバッガ使って動かしてみないとわからない。

ちなみに基本的にコードレビューというのは
実行しないで行う。

33仕様書無しさん2015/09/15(火) 08:42:35.42 .net

三項演算子とかも二重三重にまとめ書きして行数減らすのが推奨?
解読困難になるけど

35仕様書無しさん2015/09/15(火) 20:55:41.82 .net

コーディングスタイルで行数を減らすって話じゃないだろ
その機能を実現するのに最適なロジックを選択したら行数も減るってことの裏返しを言ったんだよな?>>1

52仕様書無しさん2015/09/18(金) 21:01:01.79 .net

同じコードを2度書くな
大切なことだからもう一度書いとくよ
同じコードを2度書くな

コードの行数は減ることが多い
単体レベルのテストは減る
同等のコードなので生産性は上がらない
コードが分散しないのでバグは減る

同じコードを2度書くな(大切なのでry
違和感があるときはリファクタリングのタイミング

53仕様書無しさん2015/09/19(土) 10:38:44.77 .net

>>52
二度以上書かないとならない数行のコードなんて普通にあるから。
おまいの書いた内容程度の行数なら何回でも同じコードを書いてもいいよw

56仕様書無しさん2015/09/19(土) 11:58:18.51 .net

>>52
大切なことだから何度も同じコードを書いてるってこと?

54仕様書無しさん2015/09/19(土) 11:09:54.23 .net

類似性のある複数のコードは、相違点だけを引数とかで吸収するようにして纏めてしまえ、てことなんでしょ

纏め方も、サイズ重視か速度重視かで関数なのかマクロなのか変わるだろうけど

58仕様書無しさん2015/09/19(土) 15:37:44.61 .net

>>54
似てるからまとめました
は後でメンテするときに非常に迷惑。


注目記事

ツイッターの反応

コメントありがとうございます

最新のコメントへ(26)
1001 学名ナナシ 2015-12-22 06:18:01 ID:Y2ZhNmQz  *この発言に返信
こんな猿共がコード書いてるのが現状です
1002 学名ナナシ 2015-12-22 06:19:26 ID:ZWQxM2Fh  *この発言に返信
なにを言ってるのかさっぱりだが、この1が教育係に向いてないのは分かる
1003 学名ナナシ 2015-12-22 06:25:45 ID:ODhhNDdm  *この発言に返信
わいも何を言ってるかさっぱりだが、実践して結果が見えた1と
実践もせず、個人の感想だけのやつがいるな。
1004 学名ナナシ 2015-12-22 06:29:07 ID:MTM3NTZm  *この発言に返信
こういうお題目だけ
プワーポイントで並べて
人の成果持ち逃げするやつが
迷惑なんだよね。
1005 学名ナナシ 2015-12-22 06:29:17 ID:ODQ4NTQ0  *この発言に返信
できない人が書いたものほど長くなりがち
1006 学名ナナシ 2015-12-22 06:31:11 ID:MjVjYzli  *この発言に返信
Cobolerが他言語覚えて拗らせるとこんなんになるよね
1007 学名ナナシ 2015-12-22 06:41:40 ID:MjhiOGRh  *この発言に返信
言葉の意味はわからんが とにかくすごい自信だぁ
1008 学名ナナシ 2015-12-22 06:54:19 ID:ZDk0ZGNj  *この発言に返信
# ↓止まるから消すな
1009 学名ナナシ 2015-12-22 06:56:07 ID:NTI3ODVk  *この発言に返信
専門的な事はわからんが、
一人が担当しつづけることで速いプログラムより、
誰が担当しても分かるプログラムで遅い方が
リスク回避にはなると思うけどな。
1010 学名ナナシ 2015-12-22 07:01:34 ID:ZWFhZTI0  *この発言に返信
大手SIer()にいそうな口だけは達者だけどやることなす事全てがマヌケな奴からよく頂戴するお言葉集か?
1011 学名ナナシ 2015-12-22 07:11:46 ID:YWE0YzQx  *この発言に返信
/* 何故か動く */
1012 学名ナナシ 2015-12-22 07:13:39 ID:NGJiMWI4  *この発言に返信
なんていうかこの本スレの流れだけ見るとプログラマーってアホっぽいんだが。
こんなアホ連中が偉そうにドヤ顔で仕事してるわけ?
1013 学名ナナシ 2015-12-22 07:18:37 ID:NmU0MzI0  *この発言に返信
※1010
大手は未だにステップ数で工数求めて
ステップ数に応じてテスト項目や障害件数の閾値決まってて
それに満たない場合は検収受けてくれなかったりするから
ステップ数減らせば生産性が上がるってのは強ち間違いでもない
1014 学名ナナシ 2015-12-22 07:42:57 ID:MDdjOWZk  *この発言に返信
喧嘩はやめてよ…新人PGの僕はどれを参考にしていいのか分からなくなる(´・_・`)
1015 学名ナナシ 2015-12-22 07:48:06 ID:OTI0OTkx  *この発言に返信
設計書通りに実装するよ。その方がメンテナンス楽だし。
1016 学名ナナシ 2015-12-22 07:59:05 ID:MDBjOTBi  *この発言に返信
プログラムは天才が作れんからなぁ
合理的かつ、処理を極限にまで複雑に簡略化すると
他の人が理解出来んくなって困る

結局誰もがわかる普通のコードになって、長ったらしくなる
1017 学名ナナシ 2015-12-22 08:08:26 ID:Y2U0ZDRl  *この発言に返信
11が読解力なさすぎて草
1018 学名ナナシ 2015-12-22 08:20:53 ID:ZDY4YTIy  *この発言に返信
バグはないけど、想定外のデータが入力されると発狂するんだ
1019 学名ナナシ 2015-12-22 08:26:28 ID:Nzc1ZjQ0  *この発言に返信
>>1012
一般のプログラマーに頭はさほど求められないよ
基本的に仕様書に沿って、今ある材料で構築していくようなもの
特別、新しいものを創造したりする事はあまりない

ただ、その材料では出来ないものを作れとか、3日で一軒家建ててねとか、2階建ての家屋作ってたらやっぱ3階建てにしてとか、地下に部屋作って明日迄にとか、仕様変更の無茶難題が飛んできて酷い目にあう
そんな感じの事をプログラムでやってるだけ
難しい事をやる仕事、じゃなくて、酷い目にあわされることが多い仕事

1020 学名ナナシ 2015-12-22 08:27:52 ID:ZmM2MTky  *この発言に返信
#バグを発見したので修正
#動かないので戻します
#条件分岐対応
#やっぱり戻す
1021 学名ナナシ 2015-12-22 08:32:35 ID:OTg5Nzcw  *この発言に返信
>1が初心者向けの本の受売りで草
分かり易いコードは前提だけどどういう構成にするかはケースバイケースよ
1022 学名ナナシ 2015-12-22 08:33:42 ID:MjAyYzhl  *この発言に返信
逆に汚いソースコードでポンコツOSを作って消費者を苦しめてきたのがWindows

パクリと手抜きでぼったくってきたと開発してる社員が言ってた
1023 学名ナナシ 2015-12-22 09:21:42 ID:MjljNjk2  *この発言に返信
※1021
初心者向けの本の内容だとしても、実践して結果を出したのならば凄いことじゃないか。
「ケースバイケース」って便利な言葉だね。
1024 学名ナナシ 2015-12-22 09:25:47 ID:YzE1ZDkx  *この発言に返信
>>1の言ってることもまあまあ正しいが、それって
「この事実を発見してからというもの」なんてドヤ顔で言うものじゃなくて
どちらかと言うと原理原則であって、実際の経験を経て
この原理原則に従いすぎてもいかんなあとか修正されていくものじゃないか?
1025 学名ナナシ 2015-12-22 09:29:48 ID:MTk0MmY4  *この発言に返信
汎用的に作りすぎると機能拡張の際に例外を入れることになり結局いびつになる
かといって現在想定してない部分も想定した汎用化を考慮すると様々な工数が増大する
1026 学名ナナシ 2015-12-22 09:38:21 ID:NzdlMTQz  *この発言に返信
理解しやすい簡潔なロジックで書けってだけでしょ。
当たり前のこと。
そういうロジックで設計とコーディングが出来るかは、本人の能力次第だが。
お気軽に一言お願いします。   最新のコメントへ(26)
名前:
 
 

コメントが反映されるまで時間が掛かる場合があります。
URLの記入はhttpのhを抜いて下さい(宣伝対策です)。
26