リーダブルコードとは
・読みやすさ、理解しやすさを追及したコードのことです
・読みやすいということはメンテナンス性も高いということです。
・理解しやすいコードはコードレビューも楽になります。
・理解しやすいコードはバグも少なくなります。
・短いほうが優れていることが多いですが、必ずしも短いほうがいいとは限りません。
俺ルール
・書き方の勝負であり、言語の勝負をしないでください。
・標準、非標準に限らずライブラリを使いましょう。
・なければ自分で関数を作りましょう。関数はなるべく汎用的に。
こういうコードを読みやすくするにはどうすればいいでしょうか?
というようなことを語るスレ。需要ありますかね?
リーダブルコーディング技術スレ
■ このスレッドは過去ログ倉庫に格納されています
2013/10/11(金) 01:06:21.56
170デフォルトの名無しさん
2013/10/25(金) 11:45:26.35 >>163
そう言うやつはそのうち unless !flag と書いてはまるので、俺は unless いらない派
そう言うやつはそのうち unless !flag と書いてはまるので、俺は unless いらない派
171デフォルトの名無しさん
2013/10/25(金) 11:49:51.98172デフォルトの名無しさん
2013/10/25(金) 11:56:20.11 >>168
同じ目的ならor条件にしろ
同じ目的ならor条件にしろ
173デフォルトの名無しさん
2013/10/25(金) 12:31:03.71 一人だけ周回遅れな発言してるなぁ…
174デフォルトの名無しさん
2013/10/25(金) 20:13:24.30 条件によりオプショナルなら前置
null対策などで仕方なく条件を付けるのなら後置
みたいに書いたりしないか
null対策などで仕方なく条件を付けるのなら後置
みたいに書いたりしないか
175デフォルトの名無しさん
2013/10/25(金) 23:00:46.24 >>168
こうすりゃいいやん
if (xxxxxx) next
if (xxxxxxxxxxxx) next
if (xxx) next
こうすりゃいいやん
if (xxxxxx) next
if (xxxxxxxxxxxx) next
if (xxx) next
176デフォルトの名無しさん
2013/10/25(金) 23:24:53.78 変数宣言でそれやってるやついるな。
177デフォルトの名無しさん
2013/10/26(土) 00:49:23.99 変なタイプミスした行をあぶりだすのに、それがいいときもある。
状況しだい。
状況しだい。
178デフォルトの名無しさん
2013/10/26(土) 12:52:26.30 getterでretunr文の位置合わせるのはやりすぎ?
179デフォルトの名無しさん
2013/10/26(土) 12:59:11.00 そういうタイプミスをみつけやすくしたいという意味?
180デフォルトの名無しさん
2013/10/26(土) 16:11:57.24 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;}
下のほうが見やすい気がするけど,同僚からは不評
181デフォルトの名無しさん
2013/10/26(土) 16:15:01.79 スペース纏められてたw
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/ 只のデバッグプリントなら読み飛ばせばいいだけじゃん
リーダブルの真逆てコードの意図が伝わってこないものを言うんじゃない?
リーダブルの真逆てコードの意図が伝わってこないものを言うんじゃない?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★7 [ぐれ★]
- 【広島】ペルー女性の国保加入を誤って認め、福山市が医療費484万円を肩代わりするミス…入院して手術を受ける [ぐれ★]
- 731部隊の新資料、中国が公開 「日本が細菌戦の罪を自白」と主張 ロシアが引き渡し [少考さん★]
- 東京の自販機そばに金塊4200万円分、何者かに持ち去られる…札幌の50代が8000万円振り込んだ後に上京して被害 [どどん★]
- 山田邦子 ひょうきん族時代の年収は12億円「ただ税金が80%」 [muffin★]
- テメェは俺を怒らせたオラァ👊💢😅💢👊🏡
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪
- 【高市SONY】PSPはなぜニンテンドーDSに勝てなかったのか????? [242521385]
- ブレイキングダウンの前日記者会見ビンタされて失神してる奴出てるやん
- おさかなさんあつまれえ
- 中国 わりとオブラートに包んでわーくにを牽制してしまう「軍国主義復活の企みは失敗する」 [163661708]
