リーダブルコードとは
・読みやすさ、理解しやすさを追及したコードのことです
・読みやすいということはメンテナンス性も高いということです。
・理解しやすいコードはコードレビューも楽になります。
・理解しやすいコードはバグも少なくなります。
・短いほうが優れていることが多いですが、必ずしも短いほうがいいとは限りません。
俺ルール
・書き方の勝負であり、言語の勝負をしないでください。
・標準、非標準に限らずライブラリを使いましょう。
・なければ自分で関数を作りましょう。関数はなるべく汎用的に。
こういうコードを読みやすくするにはどうすればいいでしょうか?
というようなことを語るスレ。需要ありますかね?
探検
リーダブルコーディング技術スレ
■ このスレッドは過去ログ倉庫に格納されています
2013/10/11(金) 01:06:21.56
182デフォルトの名無しさん
2013/10/26(土) 16:17:35.98 int getSpamSpamSpam(){return spam;}
int getHam() {return ham;}
int getEggEggEgg() {return egg;}
int getSpamSpamSpam() {return spam;}
int getHam() {return ham;}
int getEggEggEgg() {return egg;}
こんな感じか?
int getHam() {return ham;}
int getEggEggEgg() {return egg;}
int getSpamSpamSpam() {return spam;}
int getHam() {return ham;}
int getEggEggEgg() {return egg;}
こんな感じか?
183デフォルトの名無しさん
2013/10/26(土) 16:25:30.69 ふつうの等幅フォントのエディタで書いてコピペしてくれた方が、
navi2chでは見やすいんだが
navi2chでは見やすいんだが
184デフォルトの名無しさん
2013/10/26(土) 21:25:49.66 名前と括弧の間にスペースを入れて整形するのは変かな?
185デフォルトの名無しさん
2013/10/26(土) 22:35:48.73 変
186デフォルトの名無しさん
2013/10/26(土) 23:00:18.20 変かどうかっていうのは、オープンソース、
それも有名で多くの人が参加しているようなものの
コードをみればいいだけ。
こういうのは考えるのではなく、調べて答えを見つけようぜ。
それも有名で多くの人が参加しているようなものの
コードをみればいいだけ。
こういうのは考えるのではなく、調べて答えを見つけようぜ。
187デフォルトの名無しさん
2013/10/26(土) 23:03:48.33 変
イテレータならものによっては改行とスペース入れてそろえる
イテレータならものによっては改行とスペース入れてそろえる
188デフォルトの名無しさん
2013/12/03(火) 11:00:09.00 >>182
もっと名前の長い関数を追加することになったら面倒だろ
もっと名前の長い関数を追加することになったら面倒だろ
189デフォルトの名無しさん
2013/12/04(水) 01:09:35.65 関数の中身を見比べる必要がある時点でおかしいだろと思った
190デフォルトの名無しさん
2013/12/05(木) 07:45:11.65 達人プログラマでも同じようなインデントしてたし
>>182はそこまで変ではないのでは?
>>182はそこまで変ではないのでは?
191デフォルトの名無しさん
2013/12/06(金) 01:25:03.50 見た目云々より、エディタの矩形選択とかを活かせるメリットの方が大きい気が。
192デフォルトの名無しさん
2013/12/29(日) 23:04:49.03 クラスの中のある関数をつかうために
あらかじめいくつかの要素をsetしておかないといけないという設計はよくない?
setしないで関数を呼び出したときには例外を出す感じ
コンストラクタにいれてしまったほうがいいんだろうか?
あらかじめいくつかの要素をsetしておかないといけないという設計はよくない?
setしないで関数を呼び出したときには例外を出す感じ
コンストラクタにいれてしまったほうがいいんだろうか?
193デフォルトの名無しさん
2013/12/29(日) 23:06:02.09194デフォルトの名無しさん
2013/12/29(日) 23:59:47.76195デフォルトの名無しさん
2013/12/30(月) 00:03:01.47196デフォルトの名無しさん
2013/12/30(月) 00:20:47.15 try {
____a = A()
____a.set(something)
____a.do_something()
}
か
a = A()
try {
____a.set(something)
}
a.do_something()
の違いだと思ってる
コンストラクタで例外がでるとそのクラスのインスタンスを使うところ
すべてtryで囲まないといけなくない?
____a = A()
____a.set(something)
____a.do_something()
}
か
a = A()
try {
____a.set(something)
}
a.do_something()
の違いだと思ってる
コンストラクタで例外がでるとそのクラスのインスタンスを使うところ
すべてtryで囲まないといけなくない?
197デフォルトの名無しさん
2013/12/30(月) 00:21:24.74 a = Noen
try{
____a = A()
}
a.do_something()
にしろってこと?
try{
____a = A()
}
a.do_something()
にしろってこと?
198デフォルトの名無しさん
2013/12/30(月) 01:20:49.83199デフォルトの名無しさん
2013/12/30(月) 02:04:19.44 FactoryMethodパターンもいいかも。
これだったら、値を解析して正しい値だったらクラスを生成して返し、
不正だったらnullか、ヌルオブジェクトパターンでダミーのオブジェクトを返してやるとか色々出来るから。
A create(int youso)
{
if(yousoが正常) return new A(youso);
else return null;
}
class A
{
int _a;
A(int youso) { _a = youso; }
}
これだったら、値を解析して正しい値だったらクラスを生成して返し、
不正だったらnullか、ヌルオブジェクトパターンでダミーのオブジェクトを返してやるとか色々出来るから。
A create(int youso)
{
if(yousoが正常) return new A(youso);
else return null;
}
class A
{
int _a;
A(int youso) { _a = youso; }
}
200デフォルトの名無しさん
2013/12/30(月) 09:03:57.73201デフォルトの名無しさん
2013/12/30(月) 11:04:11.99 デザパタの目的はいくつかあるだろうが、
その中で「カタログ化」だの「パターンに名前をつけて共有」だの、
さもそれこそがおいしいという論調には疑問だね。
>>199を見ろよ。何がFactoryMethodパターンだ。
ただのファクトリメソッドじゃねーか。
「インスタンス化をサブクラスに任せる」っていう点を押さえて理解できてない。
その中で「カタログ化」だの「パターンに名前をつけて共有」だの、
さもそれこそがおいしいという論調には疑問だね。
>>199を見ろよ。何がFactoryMethodパターンだ。
ただのファクトリメソッドじゃねーか。
「インスタンス化をサブクラスに任せる」っていう点を押さえて理解できてない。
202デフォルトの名無しさん
2014/04/10(木) 09:43:21.89ID:VcyeIpim >>191
これ
これ
203拳聖ピストン矢口
2014/11/13(木) 23:50:19.89ID:yHSquATN 【注目】チョー気持ちいい!
やっぱセクロスするならアイドルっしょ 超有名アイドルグループ所属の美少女が衝撃のAVデビュー
アイドルは裏切らないっ!!
https://www.youtube.com/watch?v=XmP1TRsAe88
やっぱセクロスするならアイドルっしょ 超有名アイドルグループ所属の美少女が衝撃のAVデビュー
アイドルは裏切らないっ!!
https://www.youtube.com/watch?v=XmP1TRsAe88
204デフォルトの名無しさん
2014/11/15(土) 06:53:16.50ID:6Z/ZPh8x205デフォルトの名無しさん
2014/11/15(土) 14:58:16.01ID:/lNofN3M206デフォルトの名無しさん
2014/11/15(土) 16:17:34.44ID:lm0Ap3/W 変更コストよりも
変更したい箇所以外に、並列されてるだけで関係ない行まで修正が発生するのは気持ち悪いと感じる
1行の修正のはずなのにdiffとると何行も出たり まあオプションで消せるけど
変更したい箇所以外に、並列されてるだけで関係ない行まで修正が発生するのは気持ち悪いと感じる
1行の修正のはずなのにdiffとると何行も出たり まあオプションで消せるけど
207デフォルトの名無しさん
2014/11/16(日) 07:07:37.48ID:fuIgZytk208デフォルトの名無しさん
2014/11/16(日) 08:15:35.42ID:fuIgZytk 見栄え→読みやすさ
209デフォルトの名無しさん
2014/11/16(日) 08:30:50.35ID:EKSPBw73 returnの位置を揃えるのとタイポは本質的には関係ないじゃね?
210デフォルトの名無しさん
2014/11/17(月) 10:22:10.98ID:vQHrlZj+ alignみたいなやつで気軽にガンガン揃えられるような環境ができればいいのだろうか
211デフォルトの名無しさん
2014/11/19(水) 00:13:58.01ID:GN47sEav 自分は次の3つを結構その時の気分で描いてしまうのですが、どれかに統一したほうがよいとか、ありますか?
こういうのに対するコーディング規約とかも、会社によってはあるんでしょうか?
(ちなみに3は否定を使わない事でif文が素直に読めるかな?という理由で条件を逆にしているだけです)
例1
hash = INVALID_HASH;
if (! data.empty()) {
hash = ComputeHash(data);
}
例2
if (! data.empty()) {
hash = ComputeHash(data);
} else {
hash = INVALID_HASH;
}
例3
if (data.empty()) {
hash = INVALID_HASH;
} else {
hash = ComputeHash(data);
}
こういうのに対するコーディング規約とかも、会社によってはあるんでしょうか?
(ちなみに3は否定を使わない事でif文が素直に読めるかな?という理由で条件を逆にしているだけです)
例1
hash = INVALID_HASH;
if (! data.empty()) {
hash = ComputeHash(data);
}
例2
if (! data.empty()) {
hash = ComputeHash(data);
} else {
hash = INVALID_HASH;
}
例3
if (data.empty()) {
hash = INVALID_HASH;
} else {
hash = ComputeHash(data);
}
212デフォルトの名無しさん
2014/11/19(水) 00:41:55.06ID:eeZRz+g3 >>211
hash = data.empty() ? INVALID_HASH : ComputeHash(data);
hash = data.empty() ? INVALID_HASH : ComputeHash(data);
213デフォルトの名無しさん
2014/11/19(水) 05:42:14.41ID:3mSy2rZk hash = INVALID_HASH;
hash = ComputeHash(data) if (! data.empty());
hash = ComputeHash(data) if (! data.empty());
214デフォルトの名無しさん
2014/11/19(水) 12:53:45.74ID:GN47sEav >>212
なるほど、代入が1命令で済むなら参考演算子の方が見やすいですよね。
ちなみに複数行にわたる時はどうします?
>> 213
説明不足でした、C言語を想定していました。
ちなみにこの書き方だと、同じ変数に対する代入が二つ連続しているだけのように(ぱっと見)見えませんか?
1行目の代入って無駄じゃね? と一瞬思わせてからの2行目、みたいな。
なるほど、代入が1命令で済むなら参考演算子の方が見やすいですよね。
ちなみに複数行にわたる時はどうします?
>> 213
説明不足でした、C言語を想定していました。
ちなみにこの書き方だと、同じ変数に対する代入が二つ連続しているだけのように(ぱっと見)見えませんか?
1行目の代入って無駄じゃね? と一瞬思わせてからの2行目、みたいな。
215デフォルトの名無しさん
2014/11/19(水) 13:24:54.27ID:xQuvo0yG216デフォルトの名無しさん
2014/11/19(水) 13:29:08.73ID:xQuvo0yG >>214
> ちなみに複数行にわたる時はどうします?
三項演算子でも見やすく書ける。
場合によってはハッシュを使う。
Perlで書くけど、
my $value = {
key1 => 'value1',
key2 => 'value2',
key3 => 'value3',
}->{$key} || 'other';
> ちなみに複数行にわたる時はどうします?
三項演算子でも見やすく書ける。
場合によってはハッシュを使う。
Perlで書くけど、
my $value = {
key1 => 'value1',
key2 => 'value2',
key3 => 'value3',
}->{$key} || 'other';
217デフォルトの名無しさん
2014/11/19(水) 20:19:45.26ID:eeZRz+g3 >>214
>ちなみに複数行にわたる時はどうします?
hash = data.empty() ? (
INVALID_HASH
) : (
ComputeHash(data)
) ;
理屈は >>215、いわゆる参照透明性のことで、
関数型言語や Ruby のような関数型プログラミングに適した言語ならではのコード
・Rubyによる関数型プログラミング
http://www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html
なお Ruby には C と同様な条件演算子(三項演算子)もあるけど、
複数行にわたる場合には if 式を使うのが普通
hash = if data.empty()
INVALID_HASH
else
ComputeHash(data)
end
>ちなみに複数行にわたる時はどうします?
hash = data.empty() ? (
INVALID_HASH
) : (
ComputeHash(data)
) ;
理屈は >>215、いわゆる参照透明性のことで、
関数型言語や Ruby のような関数型プログラミングに適した言語ならではのコード
・Rubyによる関数型プログラミング
http://www.h6.dion.ne.jp/~machan/misc/FPwithRuby.html
なお Ruby には C と同様な条件演算子(三項演算子)もあるけど、
複数行にわたる場合には if 式を使うのが普通
hash = if data.empty()
INVALID_HASH
else
ComputeHash(data)
end
218214
2014/11/20(木) 00:50:43.10ID:dK3PPRDP 最初の話しとはズレるんですが、宣言と同時に初期化し、それ以降の代入を極力避ける
というスタイルをC/C++で言い換えると、積極的に const をつける という事になりますかね。
変数をなるべく const 宣言するというのは、キーワードconstが目印になって宣言箇所がすぐにわかるので
個人的にも好きですね。ただ関数の非ポインタ引数にconstをつけるのは煩わしく思いますが。
というスタイルをC/C++で言い換えると、積極的に const をつける という事になりますかね。
変数をなるべく const 宣言するというのは、キーワードconstが目印になって宣言箇所がすぐにわかるので
個人的にも好きですね。ただ関数の非ポインタ引数にconstをつけるのは煩わしく思いますが。
219デフォルトの名無しさん
2014/11/20(木) 00:55:42.04ID:8SWsMjHc それより条件式の比較演算子の省略と条件式内での関数呼び出しをやめてほしい
220デフォルトの名無しさん
2014/11/20(木) 11:12:42.88ID:nwROesTX >>219
それは十分シンプルで十分意味がわかるならば問題ないよ。
いるんだよね。ルールを守ることが目的になってる奴って。
× 書き方を統一しようとする
○ わかりやすいように書く
わかりやすいならば、どんな書き方だっていいんだよ。
どうせ書き方なんて些細な事なんだし。
それは十分シンプルで十分意味がわかるならば問題ないよ。
いるんだよね。ルールを守ることが目的になってる奴って。
× 書き方を統一しようとする
○ わかりやすいように書く
わかりやすいならば、どんな書き方だっていいんだよ。
どうせ書き方なんて些細な事なんだし。
221デフォルトの名無しさん
2014/11/20(木) 11:40:07.19ID:jeSKdYmy まあ比較演算子の省略はわかればいいんだけど
if文の条件式で関数呼ばれると単にデバッグが面倒なんだよね
これは別の問題か
if文の条件式で関数呼ばれると単にデバッグが面倒なんだよね
これは別の問題か
222デフォルトの名無しさん
2014/11/20(木) 17:57:21.94ID:B4HwyTzw えっ
223デフォルトの名無しさん
2014/11/20(木) 18:25:29.28ID:d0Ca/Au6 if (func()) { }
ではなく
result = func();
if (result) { }
こういうこと?
ではなく
result = func();
if (result) { }
こういうこと?
224デフォルトの名無しさん
2014/11/20(木) 18:35:58.57ID:d0Ca/Au6 比較演算子を省略しないとこうか
result = func();
if (result == true) { }
真偽値だったら省略したくなるな〜俺は
result = func();
if (result == true) { }
真偽値だったら省略したくなるな〜俺は
225デフォルトの名無しさん
2014/11/21(金) 10:27:03.29ID:09t/alwf そうそう
C言語って既定の真偽値型ないし
C言語って既定の真偽値型ないし
226デフォルトの名無しさん
2014/11/21(金) 10:53:54.88ID:09t/alwf ごめんやっぱリーダーブル関係ないね
227デフォルトの名無しさん
2014/11/21(金) 13:24:31.65ID:Y2Jui1fN Cだったら
if (result == true) はダメでしょ。resultが非0かつ非1だったときに困る。
if (result != false) にしないと。
結局真偽値判定は比較演算子使わない方がいいんでない?
if (result == true) はダメでしょ。resultが非0かつ非1だったときに困る。
if (result != false) にしないと。
結局真偽値判定は比較演算子使わない方がいいんでない?
228デフォルトの名無しさん
2014/11/21(金) 13:47:31.12ID:18AXju9B 真偽値を直接返す関数を作らなければいいのかな
229デフォルトの名無しさん
2014/11/21(金) 14:12:52.15ID:Mc3QBWVu 変数名をresultではなく、 doneやcompleteのように状態を表す言葉にすればいい。
if (done) { }
if (done) { }
230デフォルトの名無しさん
2014/11/21(金) 14:14:08.05ID:biiemfBm if (expr == TRUE) とか書くのは馬鹿げている、とcomp.lang.c FAQの回答にもある。
http://c-faq.com/bool/bool2.html 単に if (expr) と書くべき。
http://c-faq.com/bool/bool2.html 単に if (expr) と書くべき。
231デフォルトの名無しさん
2014/11/22(土) 03:29:01.87ID:CZJjmAQJ 真偽値の場合、doneかisDoneにするかで迷う時がある。
232デフォルトの名無しさん
2014/11/22(土) 04:07:44.39ID:FS7ceVya 結局どーんすんの
233デフォルトの名無しさん
2014/11/22(土) 05:06:36.83ID:CZJjmAQJ たまにいずどーんにすんの
234デフォルトの名無しさん
2014/11/22(土) 11:35:45.69ID:HicAMECL いやexprは関係演算子以外から導くべきではない、って話だろ
235デフォルトの名無しさん
2014/11/22(土) 16:46:09.25ID:jgE9Y6q3 if(variable == undefined)
236デフォルトの名無しさん
2014/11/22(土) 19:28:06.50ID:Le0NeUvk 職場のスパゲティソースのメトリクス値がやばすぎるんで
今度大幅に直そうという話はあがったものの
全く手がついてないんだけど
どういうふうに課員を指導したらいいんだろう
今度大幅に直そうという話はあがったものの
全く手がついてないんだけど
どういうふうに課員を指導したらいいんだろう
237デフォルトの名無しさん
2014/11/22(土) 22:08:19.55ID:6LKk2FqN 同値変形のやり方を練習させろよ
238デフォルトの名無しさん
2014/11/22(土) 22:09:52.26ID:+O+q8SCA それは、どうちて?
239デフォルトの名無しさん
2014/11/23(日) 08:18:15.22ID:zrTQYxev240デフォルトの名無しさん
2014/11/23(日) 08:46:26.24ID:hspGDGDv そういう人が言う「分かりやすいコード」って
基本的に誤解しやすいコードが多い
基本的に誤解しやすいコードが多い
241デフォルトの名無しさん
2014/11/23(日) 08:59:26.38ID:DxJUdIe1242デフォルトの名無しさん
2014/11/23(日) 09:00:06.86ID:DxJUdIe1243デフォルトの名無しさん
2014/11/23(日) 09:16:30.23ID:rJ+2DU/G >>242
それはルールを守らずに,独自のわかりやすい方法で書いたからってこと?
それはルールを守らずに,独自のわかりやすい方法で書いたからってこと?
244デフォルトの名無しさん
2014/11/23(日) 09:34:54.26ID:0xPoVd9P 一貫性の欠いたフレームワークなんて作られた日には使えたもんじゃないだろ
245デフォルトの名無しさん
2014/11/23(日) 11:55:45.10ID:c84onc2P 独自のわかりやすいコードっていうのを見てみたいわw
わかりやすいコードっていうのは、独自じゃない。
多くが○○スタイルみたいな言い方で呼ばれてる。
もちろんいろんなスタイルがあって、わかりやすいスタイルというのは
一つではないが、わかりやすいという点では共通してる。
わかりやすいのに、バグがでまくるとか矛盾してるってw
わかりやすいコードっていうのは、独自じゃない。
多くが○○スタイルみたいな言い方で呼ばれてる。
もちろんいろんなスタイルがあって、わかりやすいスタイルというのは
一つではないが、わかりやすいという点では共通してる。
わかりやすいのに、バグがでまくるとか矛盾してるってw
246デフォルトの名無しさん
2014/11/23(日) 12:50:11.85ID:Pyfj4pkz C言語で
#ifdef DEBUG
printf(var);
#endif
が1つの関数に頻出するコードは非常に読みにくい
今やらされてる組織内独自のフレームワークのコード
#ifdef DEBUG
printf(var);
#endif
が1つの関数に頻出するコードは非常に読みにくい
今やらされてる組織内独自のフレームワークのコード
247デフォルトの名無しさん
2014/11/23(日) 12:59:40.43ID:K4bM7kRY >>246
プリプロの記法はもうちょっとなんとかならないものか?#if/#ifdef/#endif を一行で書ければいいのだが‥
プリプロの記法はもうちょっとなんとかならないものか?#if/#ifdef/#endif を一行で書ければいいのだが‥
248デフォルトの名無しさん
2014/11/23(日) 13:20:52.44ID:hspGDGDv249デフォルトの名無しさん
2014/11/23(日) 15:02:18.53ID:E8ar0Vq9 こうだろ
DBGP(var);
DBGP(var);
250デフォルトの名無しさん
2014/11/23(日) 21:25:37.37ID:c84onc2P >>248
> 本人はわかりやすいつもりで書いてるコードが該当するんじゃね?
> 省略できるものは全部省略しちゃうとか。
だからそれがどんなのかってこと。
例えば、単語を省略して書くのは
わかりにくいとされている。
> 本人はわかりやすいつもりで書いてるコードが該当するんじゃね?
> 省略できるものは全部省略しちゃうとか。
だからそれがどんなのかってこと。
例えば、単語を省略して書くのは
わかりにくいとされている。
251デフォルトの名無しさん
2014/11/23(日) 21:27:09.08ID:c84onc2P >>246
それ、明らかにわかりにくいコードだよね。
わかりやすいコードとして考えられたのではなく、
単にやっつけ仕事でifdef DEBUGを入れたのだろう。
一般的な仕組み、例えばsyslog当たりを使えば
分かりやすくなるよね。
それ、明らかにわかりにくいコードだよね。
わかりやすいコードとして考えられたのではなく、
単にやっつけ仕事でifdef DEBUGを入れたのだろう。
一般的な仕組み、例えばsyslog当たりを使えば
分かりやすくなるよね。
252片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/11/23(日) 21:27:34.82ID:cV5L5A+9 #ifdef NDEBUG
#define DEBUG_ONLY(x)
#define RELEASE_ONLY(x) x
#else
#define DEBUG_ONLY(x) x
#define RELEASE_ONLY(x)
#endif
#define DEBUG_ONLY(x)
#define RELEASE_ONLY(x) x
#else
#define DEBUG_ONLY(x) x
#define RELEASE_ONLY(x)
#endif
253241
2014/11/24(月) 00:06:43.37ID:/hENsJtv254デフォルトの名無しさん
2014/11/24(月) 00:10:37.50ID:LP7Sk3Ho プロとか言い訳すんなやw
「コーディング規約に沿ったものでなければ 納品できない」
というのが、理由であって
わかりやすくするためではないだろ。
クライアントが望むなら、けばけばしいデザインのサイトだって作るさ。
だがそれは、クライアントの指示でだめなことをしているのであって
それが正しいと思ってはいけない。
今ここに、クソなクライアントはいないんだぜ?
「コーディング規約に沿ったものでなければ 納品できない」
というのが、理由であって
わかりやすくするためではないだろ。
クライアントが望むなら、けばけばしいデザインのサイトだって作るさ。
だがそれは、クライアントの指示でだめなことをしているのであって
それが正しいと思ってはいけない。
今ここに、クソなクライアントはいないんだぜ?
255デフォルトの名無しさん
2014/11/24(月) 00:14:44.32ID:/hENsJtv いや、言い訳じゃなくて、契約の問題ですし。。。常識でしょ?
256デフォルトの名無しさん
2014/11/24(月) 00:19:33.68ID:LP7Sk3Ho スレタイ読んでね。リーダブルコーディング技術スレ。
リーダブルなコードのための話であって、
契約で〜とかいうのが理由ならそれは無関係だろ。
リーダブルなコードのための話であって、
契約で〜とかいうのが理由ならそれは無関係だろ。
257デフォルトの名無しさん
2014/11/24(月) 00:22:07.34ID:3/CdPMI5 プロか否か、常識か否か、
これを早々に持ち出す姿勢w
これを早々に持ち出す姿勢w
258デフォルトの名無しさん
2014/11/24(月) 00:25:05.80ID:ALHBj7yp259デフォルトの名無しさん
2014/11/24(月) 00:25:55.45ID:LP7Sk3Ho プロとか常識とか言い出す奴は
信用してないわw
だってそれ、単なる虎の威を借る狐だもの。
それに、虎ですらないかもしれないしな
俺の信じる、虎さまはこうおっしゃってる。
だから信じなさい。みたいなw
俺が定義するプロはこういうものなんだ。
お前はプロじゃないのか!みたいで
どっかの宗教と同じ。お前は(俺らの)神を信じないのか!
信用してないわw
だってそれ、単なる虎の威を借る狐だもの。
それに、虎ですらないかもしれないしな
俺の信じる、虎さまはこうおっしゃってる。
だから信じなさい。みたいなw
俺が定義するプロはこういうものなんだ。
お前はプロじゃないのか!みたいで
どっかの宗教と同じ。お前は(俺らの)神を信じないのか!
260デフォルトの名無しさん
2014/11/24(月) 00:27:15.22ID:LP7Sk3Ho プロとか常識とかクライアントが決めたこことか無視しようぜ
わかりやすいコードとはなにか?
これだけで考えよう。
わかりやすいコードとはなにか?
これだけで考えよう。
261デフォルトの名無しさん
2014/11/24(月) 00:27:26.67ID:/hENsJtv う〜ん、何か余計に癇に障ったみたいだね。
不覚にもスレ違いな話題に誘導されちゃったから、しばらく黙ってるは。
以下↓本来のリーダブルコーディング技術スレ
不覚にもスレ違いな話題に誘導されちゃったから、しばらく黙ってるは。
以下↓本来のリーダブルコーディング技術スレ
262デフォルトの名無しさん
2014/11/24(月) 00:30:38.62ID:LP7Sk3Ho まあ、俺は最初から、わかりやすいコードの
話しかしてないんけどねw
○な書き方、△な書き方、どっちがわかりやすい?
の答えに、どちらでもわかりやすい。という答えがあるのは事実
だから複数のコーディング規約が存在するわけで。
書き方を(自分の好きな書き方に)統一すると、気持ちいかも知れないが
わかりやすさの点から見れば、どちらでもいいことが多い。
話しかしてないんけどねw
○な書き方、△な書き方、どっちがわかりやすい?
の答えに、どちらでもわかりやすい。という答えがあるのは事実
だから複数のコーディング規約が存在するわけで。
書き方を(自分の好きな書き方に)統一すると、気持ちいかも知れないが
わかりやすさの点から見れば、どちらでもいいことが多い。
263デフォルトの名無しさん
2014/11/24(月) 00:34:18.09ID:cBWQwcU/264デフォルトの名無しさん
2014/11/24(月) 00:35:36.40ID:LP7Sk3Ho >>263
全部俺が言ったことだなw
全部俺が言ったことだなw
265デフォルトの名無しさん
2014/11/24(月) 00:36:13.26ID:LP7Sk3Ho あ、まとめてくれてありがとよって
いうところかw
いうところかw
266デフォルトの名無しさん
2014/11/24(月) 00:50:24.64ID:VgrvAE4c267デフォルトの名無しさん
2014/11/24(月) 00:59:19.90ID:ALHBj7yp268デフォルトの名無しさん
2014/11/24(月) 01:04:11.30ID:LP7Sk3Ho > 読むぶんには読めるけど書き換えはさせてもらえない
可愛そうだよね。まあ、社内規則だからw
で、ここはリーダブルなのかはどういうことかって話すスレだから
社内規則で変えられないとかはどうでもよくて。
じゃあリーダブルなのはどういうコードかってことで、
意見を集めましょう。
ってもうみんな書いたか? 俺はsyslogって書いた。
デバッグ出力をするために再コンパイルが必要っていうのも
変な話なんだよね。そもそもオプションで指定すればいいと。
デバッグ出力機能を持っている。という所まで仕様。
で、こういう仕様を考える人、そこまで頭が回る人が、いないんだろうね。
可愛そうだよね。まあ、社内規則だからw
で、ここはリーダブルなのかはどういうことかって話すスレだから
社内規則で変えられないとかはどうでもよくて。
じゃあリーダブルなのはどういうコードかってことで、
意見を集めましょう。
ってもうみんな書いたか? 俺はsyslogって書いた。
デバッグ出力をするために再コンパイルが必要っていうのも
変な話なんだよね。そもそもオプションで指定すればいいと。
デバッグ出力機能を持っている。という所まで仕様。
で、こういう仕様を考える人、そこまで頭が回る人が、いないんだろうね。
269デフォルトの名無しさん
2014/11/24(月) 01:05:10.00ID:cBWQwcU/ 只のデバッグプリントなら読み飛ばせばいいだけじゃん
リーダブルの真逆てコードの意図が伝わってこないものを言うんじゃない?
リーダブルの真逆てコードの意図が伝わってこないものを言うんじゃない?
270デフォルトの名無しさん
2014/11/24(月) 01:06:14.43ID:cBWQwcU/ どうでもいいけど、syslogでデバッグって相当頭悪いか、ぬるい開発だな
271デフォルトの名無しさん
2014/11/24(月) 01:10:43.53ID:LP7Sk3Ho おいおい、syslogでやるのはデバッグプリントであって
デバッグそのものじゃないぞw
syslogにあるだろ。プライオリティdebugのことだよ。
http://www.atmarkit.co.jp/ait/articles/0209/07/news002_2.html
> プライオリティ(priority)
>
> priorityは、プログラムが出力するメッセージのうち、ログのレベルの重要度を設定します。
>
> priority 内容
> debug デバッグ情報
> info 情報
> notice 通知
> warn 警告
> err 一般的なエラー
> crit 致命的なエラー
> alert 緊急に対処すべきエラー
> emerg システムが落ちるような状態
> 下になるほど重要度が高い
なんでこんな基礎的を説明せにゃならんのだw
デバッグそのものじゃないぞw
syslogにあるだろ。プライオリティdebugのことだよ。
http://www.atmarkit.co.jp/ait/articles/0209/07/news002_2.html
> プライオリティ(priority)
>
> priorityは、プログラムが出力するメッセージのうち、ログのレベルの重要度を設定します。
>
> priority 内容
> debug デバッグ情報
> info 情報
> notice 通知
> warn 警告
> err 一般的なエラー
> crit 致命的なエラー
> alert 緊急に対処すべきエラー
> emerg システムが落ちるような状態
> 下になるほど重要度が高い
なんでこんな基礎的を説明せにゃならんのだw
272デフォルトの名無しさん
2014/11/24(月) 01:11:55.52ID:LP7Sk3Ho 既に世の中にあるものを使わずに(知らずに)
少ない知識でもやれるぜって考えで
オレオレで実装するのも、リーダブルにならない原因の一つだよね。
少ない知識でもやれるぜって考えで
オレオレで実装するのも、リーダブルにならない原因の一つだよね。
273デフォルトの名無しさん
2014/11/24(月) 06:48:20.80ID:owm7UG/9 なぜ、人はアンリーダブルを求めるのでしょうか?
人は生きて、死ぬだけの存在でありながら、
存在するということに意味を持たせ、生と死をより複雑なものにしようとしました。
本来、人は無駄を好む存在です。
オートメーション、自動化、リーダブルなどというものは、
将来、オートメーションにより追いやられた人々により破壊されることが目に見えているのですから、
破壊されるために効率化を豪語し、効率化に勤しむ人々がいることに、
私は含み笑いを抑えることができません。
人は生きて、死ぬだけの存在でありながら、
存在するということに意味を持たせ、生と死をより複雑なものにしようとしました。
本来、人は無駄を好む存在です。
オートメーション、自動化、リーダブルなどというものは、
将来、オートメーションにより追いやられた人々により破壊されることが目に見えているのですから、
破壊されるために効率化を豪語し、効率化に勤しむ人々がいることに、
私は含み笑いを抑えることができません。
274デフォルトの名無しさん
2014/11/24(月) 07:00:20.21ID:yM+Y0wwR リーダプルは、時間的にどの程度のスパンで考えるのかな?
275デフォルトの名無しさん
2014/11/24(月) 07:09:48.66ID:g28cqnpj 読みやすさは主観であり、人により異なる。
全員に対して読みやすさを一定量担保するために、コーディング規約を作る。
デバッグプリント関係は、『CODE COMPLETE』 第八章防御的プログラミングがお勧め。
全員に対して読みやすさを一定量担保するために、コーディング規約を作る。
デバッグプリント関係は、『CODE COMPLETE』 第八章防御的プログラミングがお勧め。
276デフォルトの名無しさん
2014/11/24(月) 07:30:10.66ID:NWUcXEp0 > 読みやすさは主観であり、人により異なる。
つまり、人によっては、Aという書き方が読みやすく、
別の人は、Bと言う書き方、Cと言う書き方が一番読みやすいということ
> 全員に対して読みやすさを一定量担保するために、コーディング規約を作る。
たとえば規約でBという書き方に統一する。
さて、統一することによって、Aという書き方は読みにくということになるのか?
Bという書き方は読みにくいということになるのか?
もちろん違う。なぜなら、
> 読みやすさは主観であり、人により異なる。
と書いてあるように、人によって、AやCが読みやすいということに変わりはないからだ。
つまりなりが良いたいかというと、
AでもBでもCでも読みやすいことには変わりないということ。
統一するのは、読みにくい書き方を無くすのが目的であり、
読みやすい書き方は複数あるということは真実だし、
読みやすい書き方ならどれでもいいことにかわりはないのである。
だからこそAとCは自分のに取っては一番ではないが
それでも読みやすいならばどれでもいいから、その規約に従うのである。
つまり、人によっては、Aという書き方が読みやすく、
別の人は、Bと言う書き方、Cと言う書き方が一番読みやすいということ
> 全員に対して読みやすさを一定量担保するために、コーディング規約を作る。
たとえば規約でBという書き方に統一する。
さて、統一することによって、Aという書き方は読みにくということになるのか?
Bという書き方は読みにくいということになるのか?
もちろん違う。なぜなら、
> 読みやすさは主観であり、人により異なる。
と書いてあるように、人によって、AやCが読みやすいということに変わりはないからだ。
つまりなりが良いたいかというと、
AでもBでもCでも読みやすいことには変わりないということ。
統一するのは、読みにくい書き方を無くすのが目的であり、
読みやすい書き方は複数あるということは真実だし、
読みやすい書き方ならどれでもいいことにかわりはないのである。
だからこそAとCは自分のに取っては一番ではないが
それでも読みやすいならばどれでもいいから、その規約に従うのである。
277デフォルトの名無しさん
2014/11/24(月) 07:35:54.08ID:tFEPR/wR >>220
>× 書き方を統一しようとする
>○ わかりやすいように書く
世間に受け入れられているコーディング規約に従うのが一番わかりやすいんだから
それ対立軸じゃなくて両方○になるか両方×になるかだろ
>× 書き方を統一しようとする
>○ わかりやすいように書く
世間に受け入れられているコーディング規約に従うのが一番わかりやすいんだから
それ対立軸じゃなくて両方○になるか両方×になるかだろ
278デフォルトの名無しさん
2014/11/24(月) 07:42:27.18ID:NWUcXEp0 > 世間に受け入れられているコーディング規約
が複数あることを忘れてない?
わかりやすい書き方は一つじゃないんだよ。
が複数あることを忘れてない?
わかりやすい書き方は一つじゃないんだよ。
279デフォルトの名無しさん
2014/11/24(月) 07:55:36.62ID:tFEPR/wR >が複数あることを忘れてない?
忘れてない
>わかりやすい書き方は一つじゃないんだよ。
もちろん
で?
忘れてない
>わかりやすい書き方は一つじゃないんだよ。
もちろん
で?
280デフォルトの名無しさん
2014/11/24(月) 07:55:49.98ID:cBWQwcU/281デフォルトの名無しさん
2014/11/24(月) 08:01:29.70ID:NWUcXEp0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 鈴木農相「おこめ券はお米しか買えないわけではない。例えば卵、味噌、しょうゆ、こうした購入に利用可能」 [Hitzeschleier★]
- なぜリベラルは人気がないのか 斎藤幸平さんが指し示す未来への道筋:朝日新聞 ★2 [少考さん★]
- 【日本人の旅行離れ】国内旅行すら行けなくなった……オーバーツーリズムだけじゃない 旅行者減少の異常事態 ★2 [ぐれ★]
- ベトナムのバイク「脱ガソリン」、シェア8割のホンダに打撃…政府が電動二輪普及を主導 [煮卵★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★13 [蚤の市★]
- “ひとり焼肉”でおなじみ「焼肉ライク」が閉店ラッシュ。なぜ「コスパが悪い」と言われてしまうのか [Gecko★]
- ネトウヨってそのうち頭巾かぶって野良仕事してるおばあちゃんまで反日扱いしだしそうだよな [377482965]
- 【高市物価悲報】ケンタッキーのパーティーセット(5000円)ワロタwwwwww [153490809]
- 黒田前日銀総裁「中国経済、マジでヤバいです」 [237216734]
- 官邸筋「高市総理は電話会談でトランプに米中がうまくやろうとしてるのに邪魔をするなと釘を刺されてかなり落ち込んでいた」 [931948549]
- 彼女と電話すると毎回失敗するんだが
- 「SCORE」←これなんて読むんや?🙋🏡
