もしくはやって欲しくないこと
先輩方のアドバイスをください
前スレ
これからコードを書く人に絶対やって欲しいこと★2
http://kohada.2ch.net/test/read.cgi/prog/1365269189/
探検
これからコードを書く人に絶対やって欲しいこと★3
■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
2013/06/04(火) 22:43:46.92341仕様書無しさん
2013/06/15(土) 11:38:10.09 できるプログラマーはこんなスレで人間性的な物を語ったりはしない、かな
342仕様書無しさん
2013/06/15(土) 12:53:32.67343仕様書無しさん
2013/06/15(土) 15:02:16.18 スレタイくらい読み解ける日本語力を身につけて欲しい。
344仕様書無しさん
2013/06/15(土) 20:57:16.84 >>339
これはまさに天才だったころの俺。
飽きっぽく見えるというか実際飽きる。
> なので普通の人には付き合いにくいイメージがある。
上手に付き合えばいいのに仲間内だけでしか付き合わないからそう見えるんだよな。
>>340
>>176
> レベルが低い奴は、レベルが低いということすら自覚できない。
> 循環的複雑度を計測するのは簡単だから、とりあえずやってみろと言うしか無い。
> 自分らのレベルが低いとか高いとかどうでもいい、とりあえずやってみて、その結果を受け入れろ。
循環的複雑度を計測した結果を受け入れろとか意味わからんし。
機械語レベルの命令を組み合わせれば長くなるけど
高機能な言語では短くなる。
だから言語やライブラリが違うのに単純比較はできないはずだが。
これはまさに天才だったころの俺。
飽きっぽく見えるというか実際飽きる。
> なので普通の人には付き合いにくいイメージがある。
上手に付き合えばいいのに仲間内だけでしか付き合わないからそう見えるんだよな。
>>340
>>176
> レベルが低い奴は、レベルが低いということすら自覚できない。
> 循環的複雑度を計測するのは簡単だから、とりあえずやってみろと言うしか無い。
> 自分らのレベルが低いとか高いとかどうでもいい、とりあえずやってみて、その結果を受け入れろ。
循環的複雑度を計測した結果を受け入れろとか意味わからんし。
機械語レベルの命令を組み合わせれば長くなるけど
高機能な言語では短くなる。
だから言語やライブラリが違うのに単純比較はできないはずだが。
345仕様書無しさん
2013/06/15(土) 21:10:43.52 >>344
お前のほうが意味わからん。
誰も機械語の話なんかしていないし、
言語やライブラリが違う場合の話もしていない。
仮に機械語や言語やライブラリが違っていたとしても一緒。
単純比較できる。
なぜなら、「言語によってシンプルに書ける」ということは実際にありえる話だし、
「ライブラリを使った結果シンプルになる」というのも実際にありえる。
最終的には複雑なのをシンプルにする=テストが簡単になるようにすることが目的なので
ライブラリを使って、シンプルにしてテストが簡単になるのは卑怯でもなんでもない。
それが現実的な開発で用いられている手段。
お前のほうが意味わからん。
誰も機械語の話なんかしていないし、
言語やライブラリが違う場合の話もしていない。
仮に機械語や言語やライブラリが違っていたとしても一緒。
単純比較できる。
なぜなら、「言語によってシンプルに書ける」ということは実際にありえる話だし、
「ライブラリを使った結果シンプルになる」というのも実際にありえる。
最終的には複雑なのをシンプルにする=テストが簡単になるようにすることが目的なので
ライブラリを使って、シンプルにしてテストが簡単になるのは卑怯でもなんでもない。
それが現実的な開発で用いられている手段。
346仕様書無しさん
2013/06/15(土) 21:11:08.74 飽きるのが悪いかというと、そんな悪いことでもない。
無駄に頭を使わないことは重要だ。
頭の悪いやつに頭のことを言っても分からないから運動で例えるといい。
早く走れるからと言って一日中走っていられるのかと。
がんばればいくらでも早く走れるのかと。
短距離で走れる速さで長距離は走れない。
だけど、使う筋肉の違う運動なら続けて出来る。
今朝の番組でボディビルダーが出てた。
週5で鍛えていると言ってた。
筋肉をつけるには程よい運動と養生が必要だ。
無駄に負荷をかけ続けても壊れるだけ。
だから睡眠時間を削らせてまで働かせるやつは殺人鬼。
無駄に頭を使わないことは重要だ。
頭の悪いやつに頭のことを言っても分からないから運動で例えるといい。
早く走れるからと言って一日中走っていられるのかと。
がんばればいくらでも早く走れるのかと。
短距離で走れる速さで長距離は走れない。
だけど、使う筋肉の違う運動なら続けて出来る。
今朝の番組でボディビルダーが出てた。
週5で鍛えていると言ってた。
筋肉をつけるには程よい運動と養生が必要だ。
無駄に負荷をかけ続けても壊れるだけ。
だから睡眠時間を削らせてまで働かせるやつは殺人鬼。
347仕様書無しさん
2013/06/15(土) 21:13:01.18 循環的複雑度が低くても、テストしやすいとは限らないよ。
って、何回言わせるんだよ。
って、何回言わせるんだよ。
348仕様書無しさん
2013/06/15(土) 21:22:10.27349仕様書無しさん
2013/06/15(土) 21:29:04.13 複雑度が高い関数ってのは
一つの関数で複数の仕事をしているから。
例えば二つの仕事(n、m)をしている関数では、
そのテストの組み合わせはn×mになる。
これを単純な二つの関数nと関数mに分けることで
テストの数もn+mになる。
一つの関数で複数の仕事をしているから。
例えば二つの仕事(n、m)をしている関数では、
そのテストの組み合わせはn×mになる。
これを単純な二つの関数nと関数mに分けることで
テストの数もn+mになる。
350仕様書無しさん
2013/06/15(土) 21:48:52.16 同一の値に対し境界値の異なるメソッドを副作用を含む形で呼んでるとか、
複雑度の低いメソッドが複雑度が高い外部のメソッドを呼んでる場合とか、
そういう事情でテストの複雑さがメソッドの複雑さに比例しない事はあるかな。
ただ、比例しないからといって相関がないわけではない。
循環的複雑度が高いコード⊆テストが複雑なコード。
そもそも、循環的複雑度は悪いコードを見つける一助であって、
テストの複雑さを推定する指標でもなければ、
良いコードを規定する唯一の指標でもない。
複雑度の低いメソッドが複雑度が高い外部のメソッドを呼んでる場合とか、
そういう事情でテストの複雑さがメソッドの複雑さに比例しない事はあるかな。
ただ、比例しないからといって相関がないわけではない。
循環的複雑度が高いコード⊆テストが複雑なコード。
そもそも、循環的複雑度は悪いコードを見つける一助であって、
テストの複雑さを推定する指標でもなければ、
良いコードを規定する唯一の指標でもない。
351仕様書無しさん
2013/06/15(土) 21:55:19.89 まだ具体的なコード出てないな。
やっぱり逃げたか。
やっぱり逃げたか。
352仕様書無しさん
2013/06/15(土) 22:11:56.16353仕様書無しさん
2013/06/15(土) 22:13:43.20 戻って参りました!
354仕様書無しさん
2013/06/15(土) 22:17:09.35 循環的複雑度の計測っていうのは、
これからコードを書く人に絶対やってほしいことだもんな。
このスレであってるよ。
これからコードを書く人に絶対やってほしいことだもんな。
このスレであってるよ。
355仕様書無しさん
2013/06/15(土) 22:20:22.62 計測することにデメリットはないしな。
確固たる自信があって数値のほうが間違ってるといえるのなら
そうなんじゃない?
でも高い数値を出す人は、たいてい技術力が低いから
そんな自信は勘違い以外ではありえない。
まあ、いいからとりあえず計測しな。
話はそれからだ。
その数値とコードを示せば、正しい解釈をしてあげよう。
まあ殆どがコードが汚いという結果だろうけどね。
確固たる自信があって数値のほうが間違ってるといえるのなら
そうなんじゃない?
でも高い数値を出す人は、たいてい技術力が低いから
そんな自信は勘違い以外ではありえない。
まあ、いいからとりあえず計測しな。
話はそれからだ。
その数値とコードを示せば、正しい解釈をしてあげよう。
まあ殆どがコードが汚いという結果だろうけどね。
356仕様書無しさん
2013/06/15(土) 22:21:23.90 計測してどうすんの?
無理やり行単位で分割すんの?
無理やり行単位で分割すんの?
358仕様書無しさん
2013/06/15(土) 22:29:28.69 >>357
正しい方法って何を基準にするの? 循環的複雑度?
正しい方法って何を基準にするの? 循環的複雑度?
359仕様書無しさん
2013/06/15(土) 22:39:10.96 >>358
えーとね。循環的複雑度は単に複雑度を図るだけ。
正しい方法ってのは、コードがやってることをの意味を考え
正しい場所にコードを配置すること。
何が正しいかは設計によるが、処理の責務を考えれば答えが出る。
計測して高い数値が出た=一つの関数で複数の責務を持っているってことだから
正しい所にコードを配置する=複数の責務を分割するから
自ずと循環的複雑度は下がる。
えーとね。循環的複雑度は単に複雑度を図るだけ。
正しい方法ってのは、コードがやってることをの意味を考え
正しい場所にコードを配置すること。
何が正しいかは設計によるが、処理の責務を考えれば答えが出る。
計測して高い数値が出た=一つの関数で複数の責務を持っているってことだから
正しい所にコードを配置する=複数の責務を分割するから
自ずと循環的複雑度は下がる。
360仕様書無しさん
2013/06/15(土) 22:41:05.19361仕様書無しさん
2013/06/15(土) 23:08:10.00362仕様書無しさん
2013/06/15(土) 23:18:00.39 よくあるのが
function foo() {
// ○○の処理
:
// △△の処理
:
// □□の処理
:
}
みたいなもの。
コメントからわかるように、処理が内部で分かれているのに
それを一つの関数でやろうとしている。
こういうのが、ひとつの関数で複数の責務を持っているし、
もちろん複雑度はそれぞれの処理の合算になるから計測して高い値が出る。
こっからは、なんとかの処理をするなんてコメントを書きたくなったら、
それは関数にすべきと考えたほうがいい。
function foo() {
// ○○の処理
:
// △△の処理
:
// □□の処理
:
}
みたいなもの。
コメントからわかるように、処理が内部で分かれているのに
それを一つの関数でやろうとしている。
こういうのが、ひとつの関数で複数の責務を持っているし、
もちろん複雑度はそれぞれの処理の合算になるから計測して高い値が出る。
こっからは、なんとかの処理をするなんてコメントを書きたくなったら、
それは関数にすべきと考えたほうがいい。
363仕様書無しさん
2013/06/15(土) 23:28:49.07 >>362
こうやれば関数増やす必要なくね?
再利用できない関数はこれでよくね?
function foo() {
// ○○の処理
do{
:
} while( false )
// △△の処理
do{
:
} while( false )
// □□の処理
do{
:
} while( false )
}
こうやれば関数増やす必要なくね?
再利用できない関数はこれでよくね?
function foo() {
// ○○の処理
do{
:
} while( false )
// △△の処理
do{
:
} while( false )
// □□の処理
do{
:
} while( false )
}
364仕様書無しさん
2013/06/15(土) 23:32:20.68 >>348
テストしづらい例:
・メソッド内で直接現在時刻を取得し、その時刻に基づいて判断している場合
・メソッド内で直接物理デバイスをオープンしている
・メソッド内でConcrete Classをインスタンス化している
・マルチスレッドのテスト
等々。
循環的複雑度が高いコードをリファクタリングすれば以前よりテストはしやすなるのは
その通りだが、必要十分条件のように言われると、それは違うと言わざるを得ない。
テストしづらい例:
・メソッド内で直接現在時刻を取得し、その時刻に基づいて判断している場合
・メソッド内で直接物理デバイスをオープンしている
・メソッド内でConcrete Classをインスタンス化している
・マルチスレッドのテスト
等々。
循環的複雑度が高いコードをリファクタリングすれば以前よりテストはしやすなるのは
その通りだが、必要十分条件のように言われると、それは違うと言わざるを得ない。
365仕様書無しさん
2013/06/15(土) 23:40:17.41 > 必要十分条件のように言われると
誰もそんなこと言っていない。
だが概ね正解だろうな。
循環的複雑度が高いのはクソコード。
誰もそんなこと言っていない。
だが概ね正解だろうな。
循環的複雑度が高いのはクソコード。
366仕様書無しさん
2013/06/15(土) 23:44:38.22367仕様書無しさん
2013/06/15(土) 23:49:31.55 >>363
変数と引数と戻り値、そしてテストコードを忘れている。
たしかにその例には書かなかったが、実際には変数と引数と戻り値がある。
関数は普通シンプルなものから少しづつ処理を付け加えて複雑になる。
最初は○○の処理しかなかったものにたいして、△△、□□を付け足す。
その時、たいていは○○で計算した結果を△△、□□で使う。
結果、グローバル変数と同じように、どこで何を触っているかわからなくなる。
次第に変数の使い方はごちゃまぜになり、分けようと思った時に簡単に分けられなくなる。
分けようと思ったときに、君に言うように都合よく分けられることは少ない。
修正の影響を避けてまた少しコードを追加する。ということを繰り返す。
最初のうちに、関数に分けておくという習慣を持っていれば、このような歴史を辿らなくて済む。
そして重要なのがテスト、関数の中で小さく分けられていても、その単位ではテストできない。
単純に呼び出せないというものもあるし、doなんて使ったやり方では関数のインターフェースである
引数と戻り値が明確にならない。
変数と引数と戻り値、そしてテストコードを忘れている。
たしかにその例には書かなかったが、実際には変数と引数と戻り値がある。
関数は普通シンプルなものから少しづつ処理を付け加えて複雑になる。
最初は○○の処理しかなかったものにたいして、△△、□□を付け足す。
その時、たいていは○○で計算した結果を△△、□□で使う。
結果、グローバル変数と同じように、どこで何を触っているかわからなくなる。
次第に変数の使い方はごちゃまぜになり、分けようと思った時に簡単に分けられなくなる。
分けようと思ったときに、君に言うように都合よく分けられることは少ない。
修正の影響を避けてまた少しコードを追加する。ということを繰り返す。
最初のうちに、関数に分けておくという習慣を持っていれば、このような歴史を辿らなくて済む。
そして重要なのがテスト、関数の中で小さく分けられていても、その単位ではテストできない。
単純に呼び出せないというものもあるし、doなんて使ったやり方では関数のインターフェースである
引数と戻り値が明確にならない。
368仕様書無しさん
2013/06/15(土) 23:50:32.90370仕様書無しさん
2013/06/15(土) 23:56:51.11372仕様書無しさん
2013/06/16(日) 00:01:50.42 >>364
http://kohada.2ch.net/test/read.cgi/prog/1370760670/6
6 名前:仕様書無しさん[sage] 投稿日:2013/06/15(土) 21:37:15.97
なかなかレスが来ないから先に書いておくわ。
それは「テストがしにくい処理」であって
「テストがしにくいコード」じゃねぇよ。
http://kohada.2ch.net/test/read.cgi/prog/1370760670/6
6 名前:仕様書無しさん[sage] 投稿日:2013/06/15(土) 21:37:15.97
なかなかレスが来ないから先に書いておくわ。
それは「テストがしにくい処理」であって
「テストがしにくいコード」じゃねぇよ。
373仕様書無しさん
2013/06/16(日) 00:03:12.30 >>369
http://kohada.2ch.net/test/read.cgi/prog/1370760670/6
テストがしにくい処理と
テストがしにくいコードを
ごっちゃにしている人いるよね。
だからコード出せって言ってるのに。
http://kohada.2ch.net/test/read.cgi/prog/1370760670/6
テストがしにくい処理と
テストがしにくいコードを
ごっちゃにしている人いるよね。
だからコード出せって言ってるのに。
374仕様書無しさん
2013/06/16(日) 00:23:12.22 例えば
bool foo()
{
now = systemtime(); // systemtime()はマシンの時刻を戻す
return now.hour < 9;
}
みたいなことなんだが、これがテストしづらい処理なのかテストしづらいコードなのかに
カテゴライズすることに何の意味があるんだろうか。
bool foo()
{
now = systemtime(); // systemtime()はマシンの時刻を戻す
return now.hour < 9;
}
みたいなことなんだが、これがテストしづらい処理なのかテストしづらいコードなのかに
カテゴライズすることに何の意味があるんだろうか。
375仕様書無しさん
2013/06/16(日) 00:23:30.83376仕様書無しさん
2013/06/16(日) 00:24:33.01 理由が書いてない(納得出来ない)
コーディング規約はゴミだ。作るな。従うな。
初心者のためのコーディング規約は糞だ。
(難しくてわからないから)○○機能は使わないこと。
糞な規約の例として
三項演算子は使わない。
クラスは作らない。
継承は使わない。
等がある。
コーディング規約はゴミだ。作るな。従うな。
初心者のためのコーディング規約は糞だ。
(難しくてわからないから)○○機能は使わないこと。
糞な規約の例として
三項演算子は使わない。
クラスは作らない。
継承は使わない。
等がある。
377仕様書無しさん
2013/06/16(日) 00:42:53.30 >>374
> カテゴライズすることに何の意味があるんだろうか。
すごく重要。
テストしにくいコードは、リファクタリングで直すことが出来る。
リファクタリング=処理の内容は変わらない。
処理の内容がどうこうではない。処理はやらなきゃいけないんだからやるしか無い。
同じ事を実現する処理ならば、複雑ではない書き方(コード)にした方がいいだろ。
処理ではなくコードが重要。
http://kohada.2ch.net/test/read.cgi/prog/1331998580/27 (当時日時に注意)
> 27 名前:仕様書無しさん[sage] 投稿日:2013/06/15(土) 21:39:58.61
> そのコードがテストしにくいかしやすいかが焦点なんじゃねーかよ。
> だから具体的なコードを出せと言ってるのに
> 処理だけ言ってコード出さないとか、頭悪いな。
>>375
> だけど変数をできるだけ狭いスコープ内で宣言するようにしたらいいんじゃないかな。
普通に関数でいいじゃねーか。
なんでテストしにくい方法にこだわる?
> カテゴライズすることに何の意味があるんだろうか。
すごく重要。
テストしにくいコードは、リファクタリングで直すことが出来る。
リファクタリング=処理の内容は変わらない。
処理の内容がどうこうではない。処理はやらなきゃいけないんだからやるしか無い。
同じ事を実現する処理ならば、複雑ではない書き方(コード)にした方がいいだろ。
処理ではなくコードが重要。
http://kohada.2ch.net/test/read.cgi/prog/1331998580/27 (当時日時に注意)
> 27 名前:仕様書無しさん[sage] 投稿日:2013/06/15(土) 21:39:58.61
> そのコードがテストしにくいかしやすいかが焦点なんじゃねーかよ。
> だから具体的なコードを出せと言ってるのに
> 処理だけ言ってコード出さないとか、頭悪いな。
>>375
> だけど変数をできるだけ狭いスコープ内で宣言するようにしたらいいんじゃないかな。
普通に関数でいいじゃねーか。
なんでテストしにくい方法にこだわる?
378仕様書無しさん
2013/06/16(日) 00:47:20.96 他人に見せるコードでタブ文字を使って桁合わせすると、タブ幅不一致の時に表示が崩れる。
インデントはスペースでもタブでも良いが、どちらか片方に統一しておかないと以下同文。
なので、桁あわせはスペース、インデントはタブ文字またはスペースのどちらか一方が良い。
読みやすいインデント幅が人による事を考えるとタブ文字インデントが望ましい。
但し、人に読ませる気のないコードや文法的にインデントルールが決まっている場合は除く。
最悪フォーマッタ通せば問題ないしね。
インデントはスペースでもタブでも良いが、どちらか片方に統一しておかないと以下同文。
なので、桁あわせはスペース、インデントはタブ文字またはスペースのどちらか一方が良い。
読みやすいインデント幅が人による事を考えるとタブ文字インデントが望ましい。
但し、人に読ませる気のないコードや文法的にインデントルールが決まっている場合は除く。
最悪フォーマッタ通せば問題ないしね。
379仕様書無しさん
2013/06/16(日) 00:49:43.69380仕様書無しさん
2013/06/16(日) 00:54:49.07381仕様書無しさん
2013/06/16(日) 01:00:40.78 >>380
しにくいな。
○○、△△、□□
それぞれでテストが出来ない。
これだと必要なテストの数が
○○の数 × △△の数 × □□の数に
膨れ上がってしまう。
それぞれでテストしていれば、
○○の数 + △△の数 + □□の数 で十分なのに。
しにくいな。
○○、△△、□□
それぞれでテストが出来ない。
これだと必要なテストの数が
○○の数 × △△の数 × □□の数に
膨れ上がってしまう。
それぞれでテストしていれば、
○○の数 + △△の数 + □□の数 で十分なのに。
382仕様書無しさん
2013/06/16(日) 01:09:20.07383仕様書無しさん
2013/06/16(日) 01:13:15.34 なんか一人だけ、複雑度が低くてもテストがしにくいって
話をしている人がいるな。
循環的複雑度を計測した時、複雑度が低いものを見るか?
普通は高いものを見て、落ち込むものだろ?w
話をしている人がいるな。
循環的複雑度を計測した時、複雑度が低いものを見るか?
普通は高いものを見て、落ち込むものだろ?w
384 忍法帖【Lv=9,xxxP】(1+0:5)
2013/06/16(日) 01:16:07.25 オブ指が理解できない俺はプログラマ向いてないのかな
388仕様書無しさん
2013/06/16(日) 01:27:50.35 間違っているという自分の意見を言っただろ。
間違ってないという自分の意見を言っただろ。
間違ってないという自分の意見を言っただろ。
389仕様書無しさん
2013/06/16(日) 01:28:06.50 ここまでスレタイすら読めない馬鹿がお送りしました
390仕様書無しさん
2013/06/16(日) 01:36:02.69 ここからはご覧の馬鹿の提供でお送りします
391循環的複雑度
2013/06/16(日) 02:02:03.25 このスレからの派生スレっていくつあったっけ
一文字変数は覚えてる
一文字変数は覚えてる
392仕様書無しさん
2013/06/16(日) 02:02:07.49 じゃあ、話を戻して、
コードを書く人に絶対循環的複雑度の計測をやって欲しい
コードを書く人に絶対循環的複雑度の計測をやって欲しい
393仕様書無しさん
2013/06/16(日) 02:08:16.22 コード書いてる本人はそんなの計測しなくても複雑かどうかわかるだろ。
いらんわ。
いらんわ。
394仕様書無しさん
2013/06/16(日) 02:17:49.44 >>386
コードカバレッジ(コード網羅率)のC2網羅(条件網羅、経路網羅)って試験をするとそうなるよ。
だから、循環的複雑度が高いコード⊆テストが複雑なコード、となる。
C2網羅でないとチェック漏れしうる現象というのはあるにはあるがC1のそれより少ないし、
C2網羅でも完璧ではないしC2コストも高いことからC2自体省略されることも少なくなかったり。
しかし循環的複雑度が低いならばC2のコストも下がるわけで、それでC2すれば品質に繋がる。
363の様なコードがC1網羅で十分かを一々考えて合理的にC2除外を決めるのもナンセンスだしな。
>>393
「計測しなくても複雑かどうかわかる」は同感だが、意識に留めておくとかプロジェクト管理の一助にするのはアリだと思う。
「それを問題とも思わない奴の書いた無意味に複雑度の高いコード」が見つけやすくなるだろうから。
コードカバレッジ(コード網羅率)のC2網羅(条件網羅、経路網羅)って試験をするとそうなるよ。
だから、循環的複雑度が高いコード⊆テストが複雑なコード、となる。
C2網羅でないとチェック漏れしうる現象というのはあるにはあるがC1のそれより少ないし、
C2網羅でも完璧ではないしC2コストも高いことからC2自体省略されることも少なくなかったり。
しかし循環的複雑度が低いならばC2のコストも下がるわけで、それでC2すれば品質に繋がる。
363の様なコードがC1網羅で十分かを一々考えて合理的にC2除外を決めるのもナンセンスだしな。
>>393
「計測しなくても複雑かどうかわかる」は同感だが、意識に留めておくとかプロジェクト管理の一助にするのはアリだと思う。
「それを問題とも思わない奴の書いた無意味に複雑度の高いコード」が見つけやすくなるだろうから。
395仕様書無しさん
2013/06/16(日) 06:15:53.38 このスレの奴らとスタンドアップミーティングしたら、いつまで経っても終わらなさそうw
場をわきまえていない議論だとしても、相手が言い返してくる限りこちらの反論も許される、みたいな
オレオレルールを勝手に作ってそれ基準で行動する様は、まさに昨今のゆとり
場をわきまえていない議論だとしても、相手が言い返してくる限りこちらの反論も許される、みたいな
オレオレルールを勝手に作ってそれ基準で行動する様は、まさに昨今のゆとり
396仕様書無しさん
2013/06/16(日) 06:25:17.26 ほんと見苦しいスレ
こいつらバグってんじゃね?
こいつらバグってんじゃね?
397仕様書無しさん
2013/06/16(日) 08:15:14.80 循環的複雑度君が言ってるテストや規模って、俺の考えてたテストと微妙に違う気がする
なんつーか、えらく低水準な領域のコードについて書いてるような
サンプル出さないから未だ平行線だけど
何にせよいい加減ウザイので別スレだな
循環的複雑度
http://kohada.2ch.net/test/read.cgi/prog/1371301844/
なんつーか、えらく低水準な領域のコードについて書いてるような
サンプル出さないから未だ平行線だけど
何にせよいい加減ウザイので別スレだな
循環的複雑度
http://kohada.2ch.net/test/read.cgi/prog/1371301844/
399仕様書無しさん
2013/06/16(日) 09:01:30.12 結局どのくらいの数値だと高いの?
400仕様書無しさん
2013/06/16(日) 09:29:14.58 平均より上が高い
401仕様書無しさん
2013/06/16(日) 09:31:06.38 平均バカ
402仕様書無しさん
2013/06/16(日) 10:49:55.21 >>399
http://www.slideshare.net/MoriharuOhzu/ss-9224836
5以下 単純な構造
10以下 良い構造
30以上 構造に疑問
50以上 テスト、デバッグ困難
75以上 変更時に誤修正を生む原因を作る
32を超えているとバグを含んでいる確率が高くなる by IBM
http://www.slideshare.net/MoriharuOhzu/ss-9224836
5以下 単純な構造
10以下 良い構造
30以上 構造に疑問
50以上 テスト、デバッグ困難
75以上 変更時に誤修正を生む原因を作る
32を超えているとバグを含んでいる確率が高くなる by IBM
403仕様書無しさん
2013/06/16(日) 10:54:19.63 Javaだとこんなツールもあるんだね。
http://www.ibm.com/developerworks/jp/java/library/j-eaed6/
> 循環的複雑度に関してよくある質問には、「自分が作成したコードを
> 他のコードと比較するにはどうすればよいのか?」、「ある特定のクラスに
> 望ましい数値は何か?」というものがあります。これらの質問に答えるのが、
> iPlasma プロジェクトです (「参考文献」を参照)。
> 数値は比率を示し、色は、その比率が業界の標準範囲 (多数のオープンソース・
> プロジェクトを基に算出された範囲) のどのあたりに収まるかを示します。
> 各比率の色は、緑 (範囲内)、青 (範囲未満)、赤 (範囲超過) のいずれかとなります。
http://www.ibm.com/developerworks/jp/java/library/j-eaed6/
> 循環的複雑度に関してよくある質問には、「自分が作成したコードを
> 他のコードと比較するにはどうすればよいのか?」、「ある特定のクラスに
> 望ましい数値は何か?」というものがあります。これらの質問に答えるのが、
> iPlasma プロジェクトです (「参考文献」を参照)。
> 数値は比率を示し、色は、その比率が業界の標準範囲 (多数のオープンソース・
> プロジェクトを基に算出された範囲) のどのあたりに収まるかを示します。
> 各比率の色は、緑 (範囲内)、青 (範囲未満)、赤 (範囲超過) のいずれかとなります。
404仕様書無しさん
2013/06/16(日) 11:05:38.49 > 11 名前:仕様書無しさん[sage] 投稿日:2013/06/16(日) 09:47:31.39
> 分割が適当でテストしやすいメソッドなら、意識する必要ないんじゃないの
> そもそも循環的複雑度なんて言葉、あのスレ見て初めて知ったわ
そこが日本のソフトウェア業界の低さを表しているんだよ・・・。
IBMでも使われてるし、色んな所で研究されてる。
探せばずっと前から色んな所で話題になってるだろ。
> 分割が適当でテストしやすいメソッドなら、意識する必要ないんじゃないの
> そもそも循環的複雑度なんて言葉、あのスレ見て初めて知ったわ
そこが日本のソフトウェア業界の低さを表しているんだよ・・・。
IBMでも使われてるし、色んな所で研究されてる。
探せばずっと前から色んな所で話題になってるだろ。
406仕様書無しさん
2013/06/16(日) 11:12:56.61 断る
なぜなら、これからコードを書く人に絶対やってほしいことだからだ。
なぜなら、これからコードを書く人に絶対やってほしいことだからだ。
407仕様書無しさん
2013/06/16(日) 11:24:51.03 循環的複雑度は、ソフトウェアメトリクスの一指標に過ぎず、他にも重要な指標として
クラス内メソッド数やfan-in/fan-out、各メソッドの実効行数など様々なものがある。
だがそれらは、ソフトウェアの品質を客観的に判断する必要があるときには重宝するが、
設計やコーディング中にはそれらの数値を気にしてもしかたがない。
まずは、構造化設計手法を学ぶべきだね。OOPをやる場合でも。
クラス内メソッド数やfan-in/fan-out、各メソッドの実効行数など様々なものがある。
だがそれらは、ソフトウェアの品質を客観的に判断する必要があるときには重宝するが、
設計やコーディング中にはそれらの数値を気にしてもしかたがない。
まずは、構造化設計手法を学ぶべきだね。OOPをやる場合でも。
408仕様書無しさん
2013/06/16(日) 11:29:36.59 最近循環的複雑度を知ってはしゃいでるのかな
412仕様書無しさん
2013/06/16(日) 11:38:27.70 いや書くんならアッチの専用スレで
415仕様書無しさん
2013/06/16(日) 11:45:01.41 スルー力無いねー
419仕様書無しさん
2013/06/16(日) 13:20:58.71 「間違ってるのはネラーの方だ」
420仕様書無しさん
2013/06/16(日) 13:25:10.74 これからコードを書く人は、こんなクソスレは見なくてよろしい
この人たちは頭がバグってるから、議論のループにも気づかない
この人たちは頭がバグってるから、議論のループにも気づかない
422仕様書無しさん
2013/06/16(日) 13:32:22.32423仕様書無しさん
2013/06/16(日) 13:33:02.73424仕様書無しさん
2013/06/16(日) 13:33:29.27427仕様書無しさん
2013/06/16(日) 13:53:36.23 ほら逃げたw
敵は一人だと思って
奴はこういうことを言ってる。と
決めつけてるんだろうなって思ってた。
敵は一人だと思って
奴はこういうことを言ってる。と
決めつけてるんだろうなって思ってた。
428仕様書無しさん
2013/06/16(日) 14:03:44.87 こういう粘着質な奴が居座るからいつまでたってもこのスレはこんな感じのまま
429仕様書無しさん
2013/06/16(日) 14:09:05.48 自分も同じ穴のムジナって気づいてないんだろうな(苦笑)
430仕様書無しさん
2013/06/16(日) 14:18:52.40 相手が一人だと思ってるんだろうなぁ
431仕様書無しさん
2013/06/16(日) 14:20:26.36 某スレの自治厨もだけど
最近相手がひとりと決めつけて発狂するヤツ多くね?
最近相手がひとりと決めつけて発狂するヤツ多くね?
432仕様書無しさん
2013/06/16(日) 15:24:51.46 連投やめようねw
433仕様書無しさん
2013/06/16(日) 17:36:58.84 別人だが?
435仕様書無しさん
2013/06/18(火) 01:51:20.53 使えない老害化したオッサンとかガキが紛れ込むとループする下らない罵り合いが続く
436仕様書無しさん
2013/06/18(火) 06:49:53.07 俺は老害化して使えなくなどなっていない
もともと使えないんだ
もともと使えないんだ
438仕様書無しさん
2013/06/18(火) 09:57:30.64 OSSにすることを意識してもらう
439仕様書無しさん
2013/06/18(火) 21:43:23.88 【JavaScriptコードメトリックス】 ソースコードの複雑さや保守の容易さを測定できるWEBサイト
http://shimz.me/blog/web/2279
http://jscomplexity.org/
こんなのがあったからjQueryの複雑度を調べてみたよ。
jQuery
5以下 481(82.4%) 単純な構造
10以下 55(9.4%) 良い構造
11〜29 46(7.9%) 普通
30以上 2(0.34%) 構造に疑問
50以上 0(0%) テスト、デバッグ困難
75以上 0(0%) 変更時に誤修正を生む原因を作る
オープンソースだからかな。
やっぱりすごいね。
その中で高めなのが2つ。ajax関数とtrigger関数だった。
軽く見ただけだけどどちらも行数長くて
(と言ってもLogical LOCが100行超えないが)
確かに複雑そうに見える。
http://shimz.me/blog/web/2279
http://jscomplexity.org/
こんなのがあったからjQueryの複雑度を調べてみたよ。
jQuery
5以下 481(82.4%) 単純な構造
10以下 55(9.4%) 良い構造
11〜29 46(7.9%) 普通
30以上 2(0.34%) 構造に疑問
50以上 0(0%) テスト、デバッグ困難
75以上 0(0%) 変更時に誤修正を生む原因を作る
オープンソースだからかな。
やっぱりすごいね。
その中で高めなのが2つ。ajax関数とtrigger関数だった。
軽く見ただけだけどどちらも行数長くて
(と言ってもLogical LOCが100行超えないが)
確かに複雑そうに見える。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- マイナ保険証「メリットなし」が最多 1.1万人調査で見えた“不安と様子見” ★2 [♪♪♪★]
- タワマンに戻りたい…子どものため郊外の庭付き一軒家に引っ越した世帯年収1,600万円の40代パワーカップル「心底後悔しています」 ★4 [樽悶★]
- カズレーザー「サンタクロースはいない」「買ってくれた親に感謝」発言に“視聴者から苦情”で「バカじゃねーの?って本当に思う」★2 [muffin★]
- 「女子は数学が苦手」「トップ層は男子」という“常識”に根拠なし? 国際的学力調査が示す事実 [♪♪♪★]
- 【赤坂サウナ火災】「賠償額は2億円超」弁護士が指摘。経営者の夫妻に小さな子がいたことも、慰謝料の高額化に [ぐれ★]
- 【おこめ】コメ価格は「損切り」間近か 卸最大手・神明社長の「暴落」発言の真意とは 「5キロ3500円」は実現するか ★2 [ぐれ★]
- アジア人って嫌いなんだが俺だけ?白人の方が可愛いじゃん!!美人びゃん!!
- お前らチー牛ってなんで憎くて嫌いな奴を殺害しないの?ビビって出来ないならいい加減その性格直そうよ
- この女の子でいいから変態プレイしてみたい
- 歳取るとホント何も楽しくなくなる [943688309]
- アメリカの黒塗り、レベチwwwwwwww 日本の黒塗り叩いてたパヨク、笑われるwwwwwwwwwwww [112948759]
- ひろゆき「訴える?民事で?無料の講演を?」
