リーダブルコードとは
・読みやすさ、理解しやすさを追及したコードのことです
・読みやすいということはメンテナンス性も高いということです。
・理解しやすいコードはコードレビューも楽になります。
・理解しやすいコードはバグも少なくなります。
・短いほうが優れていることが多いですが、必ずしも短いほうがいいとは限りません。
俺ルール
・書き方の勝負であり、言語の勝負をしないでください。
・標準、非標準に限らずライブラリを使いましょう。
・なければ自分で関数を作りましょう。関数はなるべく汎用的に。
こういうコードを読みやすくするにはどうすればいいでしょうか?
というようなことを語るスレ。需要ありますかね?
探検
リーダブルコーディング技術スレ
■ このスレッドは過去ログ倉庫に格納されています
2013/10/11(金) 01:06:21.56
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:NWUcXEp0282デフォルトの名無しさん
2014/11/24(月) 08:03:05.74ID:NWUcXEp0 >>279
で?と言われてもな。
最初から言っているように、
わかりやすいコードを書くことが目的であって
書き方を統一することは目的じゃないんだよって話
言い換えると、わかりやすければ統一する理由はない。
本当の目的を忘れるなって話。
で?と言われてもな。
最初から言っているように、
わかりやすいコードを書くことが目的であって
書き方を統一することは目的じゃないんだよって話
言い換えると、わかりやすければ統一する理由はない。
本当の目的を忘れるなって話。
283デフォルトの名無しさん
2014/11/24(月) 08:06:01.78ID:tFEPR/wR >言い換えると、わかりやすければ統一する理由はない。
いや、AとBの両方わかりやすくても、一つの製品にAとBが混在してたら駄目だろ
いや、AとBの両方わかりやすくても、一つの製品にAとBが混在してたら駄目だろ
284デフォルトの名無しさん
2014/11/24(月) 08:28:02.98ID:tFEPR/wR デバッグ出力でsyslogって発想は無いなぁ
最初に批判されてるが
#ifdef DEBUG
は普通のイディオムだから小さなプログラムなら悪くはないし
もう少し大きな規模になってロギングフレームワークを検討しようというなら
もっと抽象度の高いレベルでちゃんとしたフレームワークを採用するだろ
(C++ならglogとか。言語ごとにあるだろ)
最初に批判されてるが
#ifdef DEBUG
は普通のイディオムだから小さなプログラムなら悪くはないし
もう少し大きな規模になってロギングフレームワークを検討しようというなら
もっと抽象度の高いレベルでちゃんとしたフレームワークを採用するだろ
(C++ならglogとか。言語ごとにあるだろ)
285デフォルトの名無しさん
2014/11/24(月) 08:38:23.76ID:owm7UG/9286デフォルトの名無しさん
2014/11/24(月) 09:04:52.85ID:NWUcXEp0287デフォルトの名無しさん
2014/11/24(月) 09:05:43.57ID:NWUcXEp0288デフォルトの名無しさん
2014/11/24(月) 09:13:38.29ID:tFEPR/wR >なんで? それで問題が起きたことなんて無いよ。
すまんが、2ch で匿名でここから議論する気はないので退散。論破と思うならそれで構わん。
教育しても俺に見返りないし。
すまんが、2ch で匿名でここから議論する気はないので退散。論破と思うならそれで構わん。
教育しても俺に見返りないし。
289デフォルトの名無しさん
2014/11/24(月) 09:16:25.55ID:NWUcXEp0 はい、論破と思いますよ?
別にわざわざいなくてもいいのに。
別にわざわざいなくてもいいのに。
290デフォルトの名無しさん
2014/11/24(月) 09:24:55.73ID:tFEPR/wR このページの「デバッグライト」とか
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.6.3.html
ここでは、DebugPrintというマクロを用意しているわけだが、一度これを用意したら全員がDebugPrintを使わなきゃ意味ない
DebugPrintを使ってるコードと#ifdef DEBUGを生で使っているコードが両方存在するのは最悪で。
DebugPrintを用意することで、その定義を変えればデバッグ先をsyslogにしたりできるだろ
ところが、生で#ifdef DEBUGされてるコードが残ってたらそこで変更漏れのバグになる
DebugPrintなど無くて全員生で書いていれば、変更時には漏れがないように注意するからまだマシ
DebugPrintを用意したのに使ってないというのは本当に最悪
これがまず、統一するってことな。
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.6.3.html
ここでは、DebugPrintというマクロを用意しているわけだが、一度これを用意したら全員がDebugPrintを使わなきゃ意味ない
DebugPrintを使ってるコードと#ifdef DEBUGを生で使っているコードが両方存在するのは最悪で。
DebugPrintを用意することで、その定義を変えればデバッグ先をsyslogにしたりできるだろ
ところが、生で#ifdef DEBUGされてるコードが残ってたらそこで変更漏れのバグになる
DebugPrintなど無くて全員生で書いていれば、変更時には漏れがないように注意するからまだマシ
DebugPrintを用意したのに使ってないというのは本当に最悪
これがまず、統一するってことな。
291デフォルトの名無しさん
2014/11/24(月) 09:27:04.25ID:tFEPR/wR もう一つは、
そもそもこういうDebugPrintみたいなのは車輪の再発明なので
今時こんな「オレオレフレームワーク」を作るのは間抜け
(元ページはCopyright 1996)
あるものを使うのが普通
そもそもこういうDebugPrintみたいなのは車輪の再発明なので
今時こんな「オレオレフレームワーク」を作るのは間抜け
(元ページはCopyright 1996)
あるものを使うのが普通
292デフォルトの名無しさん
2014/11/24(月) 09:44:09.94ID:J2WKp7i1 >>286
同じものは同じように見えるようにしておかないと、コードレビューしづらい。
コードに手をいれるときにいちいちスタイルどうするか迷うのも無駄。
・・・コードレビューしないなら問題は起こらない。
まわりと明らかにスタイルの違うコードを混入させて気にしないなら問題は起こらない。
つまりそういうことなんだろうと思ってる。
同じものは同じように見えるようにしておかないと、コードレビューしづらい。
コードに手をいれるときにいちいちスタイルどうするか迷うのも無駄。
・・・コードレビューしないなら問題は起こらない。
まわりと明らかにスタイルの違うコードを混入させて気にしないなら問題は起こらない。
つまりそういうことなんだろうと思ってる。
293デフォルトの名無しさん
2014/11/24(月) 10:02:33.90ID:NWUcXEp0294デフォルトの名無しさん
2014/11/24(月) 10:06:55.47ID:XbvFM8cR295デフォルトの名無しさん
2014/11/24(月) 10:28:26.69ID:g28cqnpj ログは異常管理にdebugレベルを含めて使うけど、
開発時のデバッグには使わないかな。
開発時のデバッグには使わないかな。
296デフォルトの名無しさん
2014/11/24(月) 10:41:04.30ID:tFEPR/wR >>294
サーバプログラムだってsyslog決め打ちなんて少ないと思うが。ログ出力先の選択肢の一つとしてsyslogがあるだけだろ。
Apache httpd (http://httpd.apache.org/docs/current/logs.html)
エラーログは普通はファイルに書かれます (通常 Unix システムでは error_log、Windows と OS/2 では error.log)。 Unix システムではエラーを syslog や パイプでプログラムに送る ことができます。
Postgresql (https://www.postgresql.jp/document/9.3/html/runtime-config-logging.html)
PostgreSQLは、stderr、csvlogおよびsyslogを含めて、サーバメッセージのログ取得に対し数種類の方法を提供します。
Tomcat (http://tomcat.apache.org/tomcat-6.0-doc/logging.html)
Logging in Apache Tomcat is implemented with the help of Apache Commons Logging library.
有名どころのオープンソースでログ機能がsyslog決め打ちって何かあるの?
サーバプログラムだってsyslog決め打ちなんて少ないと思うが。ログ出力先の選択肢の一つとしてsyslogがあるだけだろ。
Apache httpd (http://httpd.apache.org/docs/current/logs.html)
エラーログは普通はファイルに書かれます (通常 Unix システムでは error_log、Windows と OS/2 では error.log)。 Unix システムではエラーを syslog や パイプでプログラムに送る ことができます。
Postgresql (https://www.postgresql.jp/document/9.3/html/runtime-config-logging.html)
PostgreSQLは、stderr、csvlogおよびsyslogを含めて、サーバメッセージのログ取得に対し数種類の方法を提供します。
Tomcat (http://tomcat.apache.org/tomcat-6.0-doc/logging.html)
Logging in Apache Tomcat is implemented with the help of Apache Commons Logging library.
有名どころのオープンソースでログ機能がsyslog決め打ちって何かあるの?
297デフォルトの名無しさん
2014/11/24(月) 10:57:11.56ID:tFEPR/wR >>295
「デバッガを使え」みたいな方法論と、デバッグ出力をどうするかは別だと思うが、そういうこと?どうしてる?
「デバッガを使え」みたいな方法論と、デバッグ出力をどうするかは別だと思うが、そういうこと?どうしてる?
298デフォルトの名無しさん
2014/11/24(月) 11:23:35.39ID:g28cqnpj >>297
システム運用中に異常処理を行った場合、管理者にその旨を通報する用途でログを使う。
あくまで、システムの一部なので、リリース後でも取り除かれない。
開発時にだけ有効で、リリース時に無効にする用途には使わないかなって話。
システム運用中に異常処理を行った場合、管理者にその旨を通報する用途でログを使う。
あくまで、システムの一部なので、リリース後でも取り除かれない。
開発時にだけ有効で、リリース時に無効にする用途には使わないかなって話。
299デフォルトの名無しさん
2014/11/24(月) 11:56:52.74ID:NWUcXEp0 開発時のみで使うものだったら
ifdefで残したりしねーよ?
そういう残してあるコードが
じゃまだってのが、話の始まりだろ?
ifdefで残したりしねーよ?
そういう残してあるコードが
じゃまだってのが、話の始まりだろ?
300デフォルトの名無しさん
2014/11/24(月) 12:01:55.48ID:tFEPR/wR301デフォルトの名無しさん
2014/11/24(月) 12:05:06.98ID:/Xnwup+Z302デフォルトの名無しさん
2014/11/24(月) 12:55:47.70ID:NWUcXEp0 ifdefでソースコードに書いて
それをずっと保守し続けてるってことは
残す理由があるからそうしてる。
ここまでOK?
その残されたコードがじゃまで
リーダブルにならくなって困っている。
ここまではOK?
ならばifdefなんか使わずに
もっとわかりやすいコードにしろって話。
それをずっと保守し続けてるってことは
残す理由があるからそうしてる。
ここまでOK?
その残されたコードがじゃまで
リーダブルにならくなって困っている。
ここまではOK?
ならばifdefなんか使わずに
もっとわかりやすいコードにしろって話。
303デフォルトの名無しさん
2014/11/24(月) 15:12:20.28ID:DZ0ISr8h お前はいい加減周りのことも考えて行動や発言できるようになれよ
コーディングはそれから
コーディングはそれから
304デフォルトの名無しさん
2014/11/24(月) 17:13:58.44ID:+VpmsKoD >>302
で、具体的な提案もなく、文句言うだけ?
で、具体的な提案もなく、文句言うだけ?
305デフォルトの名無しさん
2014/11/24(月) 17:49:29.24ID:SQsB+YJ2 プリプロの改良だね‥
306デフォルトの名無しさん
2014/11/24(月) 18:31:46.57ID:CiPNuJ6e で、そこに#ifdefの方がわかりやすい派が現れるんですねわかります
307片山博文MZ次期CEO ◆T6xkBnTXz7B0
2014/11/24(月) 18:39:55.49ID:cxOxEmtO #ifdefをインデントするのってアリ?
308デフォルトの名無しさん
2014/11/24(月) 19:32:19.00ID:xxtEEteG 中身はインデントするかも
309デフォルトの名無しさん
2014/11/24(月) 19:42:14.05ID:UXHgSloT ソースとプリプロセッサのインデントが混じって見辛くなるから、俺はしない
310デフォルトの名無しさん
2014/11/24(月) 20:41:48.81ID:U0wuvsWn 半角スペースでインデントはよく見かける
311デフォルトの名無しさん
2014/11/24(月) 22:10:52.63ID:DZ0ISr8h プリプロセッサのみの部分(define値の切り替えとかerrorとか)だったらインデントしたほうが見やすいと思いインデントしてる
ソース内にかかる部分だと309と同じ意見でしてない
基本は#ifがネストしないようにしたいと思ってるけどね
ソース内にかかる部分だと309と同じ意見でしてない
基本は#ifがネストしないようにしたいと思ってるけどね
312デフォルトの名無しさん
2014/11/24(月) 22:23:12.31ID:TsbXFfYg プリプロ行はスペースで、コード行はタブでインデントしてる。
見やすくはなるけど、読みやすさに繋がるかどうかはわからない。
見やすくはなるけど、読みやすさに繋がるかどうかはわからない。
313デフォルトの名無しさん
2014/11/24(月) 22:28:30.02ID:EZS/NtvV #if XXX
aaa
bbb
#endif
よりも
#if XXX
void func() {
aaa
bbb
}
#else
void func() {}
#endif
func()
ってやっちゃうなあ。これならfunc呼び出し部分についてのインデントに悩まなくてもすむじゃん?
しかも条件XXXで切り替わる部分が複数に成った場合でも、定義を一カ所にまとめておける。
aaa
bbb
#endif
よりも
#if XXX
void func() {
aaa
bbb
}
#else
void func() {}
#endif
func()
ってやっちゃうなあ。これならfunc呼び出し部分についてのインデントに悩まなくてもすむじゃん?
しかも条件XXXで切り替わる部分が複数に成った場合でも、定義を一カ所にまとめておける。
314デフォルトの名無しさん
2014/11/24(月) 22:34:36.62ID:o0oR/6A6 目から瓢箪が独楽です
315デフォルトの名無しさん
2014/11/24(月) 22:38:27.07ID:TsbXFfYg 関数呼び出しじゃなくてマクロにした方が良くない?
リーダブルの観点ではないけれど、関数呼び出しのネストが深くなるのは良くないと思うんだ。
リーダブルの観点ではないけれど、関数呼び出しのネストが深くなるのは良くないと思うんだ。
316デフォルトの名無しさん
2014/11/24(月) 22:39:45.84ID:/Xnwup+Z317デフォルトの名無しさん
2014/11/25(火) 01:15:46.45ID:45kyml8T318デフォルトの名無しさん
2014/11/25(火) 02:33:45.34ID:GW/pgxiU 目から箪笥です
319デフォルトの名無しさん
2014/11/25(火) 03:16:47.66ID:45kyml8T 私も目から箪笥です
320デフォルトの名無しさん
2014/11/25(火) 03:53:07.08ID:relupevl 同じじゃない部分だけ分ければいいだけじゃん
321デフォルトの名無しさん
2014/11/25(火) 06:54:59.12ID:eaby6zdh >>317
ああ、すまん、勘違いしてたわ
変更部分を別関数に切り出すと言うことか
> aaa
> bbb
が元々関数に切り出すような意味のある単位ならわかるけど、処理の途中の一部を切り出したような場合だと関数名も付け辛いし分かりにくくなる
あと、単に aaa, bbb って書いてるから違和感ないけど、実際には aaa, bbb で必要とする情報や、逆に変更した情報等のやり取りを引数でやる必要もあるので、結構面倒に思うんだけど
ああ、すまん、勘違いしてたわ
変更部分を別関数に切り出すと言うことか
> aaa
> bbb
が元々関数に切り出すような意味のある単位ならわかるけど、処理の途中の一部を切り出したような場合だと関数名も付け辛いし分かりにくくなる
あと、単に aaa, bbb って書いてるから違和感ないけど、実際には aaa, bbb で必要とする情報や、逆に変更した情報等のやり取りを引数でやる必要もあるので、結構面倒に思うんだけど
322デフォルトの名無しさん
2014/11/25(火) 07:46:51.85ID:53f+YSIW 確かOpenSSLも各プラットフォーム毎に
#ifdefの嵐でで手が付けられなくなったらしいけど、
こういうのはTemplate Methodパターンみたいなものを使えばいいんだよ。
デバッグ用の関数、またはクラスと
リリース用の関数、またはクラスを作って
それを使うコードはどちらを使っているか意識する必要がないようにする
これぐらい基本だと思うんだが、OpenSSLを見る限り
世の中のレベルってこの程度のものなのかもしれんな。
#ifdefの嵐でで手が付けられなくなったらしいけど、
こういうのはTemplate Methodパターンみたいなものを使えばいいんだよ。
デバッグ用の関数、またはクラスと
リリース用の関数、またはクラスを作って
それを使うコードはどちらを使っているか意識する必要がないようにする
これぐらい基本だと思うんだが、OpenSSLを見る限り
世の中のレベルってこの程度のものなのかもしれんな。
323デフォルトの名無しさん
2014/11/29(土) 12:47:04.96ID:u8/hKXWz324デフォルトの名無しさん
2014/11/29(土) 14:50:29.22ID:quQRjBUx デバッグ用出力の話なら
>>249 で十分テンプレートメソッドパターンと言えるでしょ
>>249 で十分テンプレートメソッドパターンと言えるでしょ
325デフォルトの名無しさん
2014/11/30(日) 21:01:48.36ID:4o6Sx4rW 呼び出し元のスコープを維持したいからマクロを使うんであって、関数やクラスに分けられるものをマクロで書く奴はいないだろ
326デフォルトの名無しさん
2014/11/30(日) 22:41:03.33ID:8xQ5/Fxy 『レガシーコード改善ガイド』を読むと、どこにテスト用のフックを
仕掛けるかみたいな話が出てくるからお勧めしとく。
仕掛けるかみたいな話が出てくるからお勧めしとく。
327デフォルトの名無しさん
2014/12/12(金) 00:27:58.93ID:bKiv2VYA c言語でなるべくグローバル変数を使わない方がいいという事で
グローバル変数無しで書き直したら、関数の引数がやたら多くなってしまった。
(´・ω・`)
グローバル変数無しで書き直したら、関数の引数がやたら多くなってしまった。
(´・ω・`)
328デフォルトの名無しさん
2014/12/12(金) 00:31:23.89ID:+hKqCGtl こぞーよ、こーぞーたいつかいやがれ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国会が「238秒停止」「3連続音声オフ」 代打・小泉大臣にも大音量ヤジ 起立する議員続出…高市総理の発言めぐり紛糾 [♪♪♪★]
- 【東京】赤坂サウナ火事2人死亡 サウナ室のドアノブ外れ閉じ込められた可能性 ★4 [nita★]
- 「こども2万円給付」は“ずるい”?「子持ちだけ優遇されてる」「来年から独身税もあるのに」…子育て世帯への支援は“不公平”なのか [♪♪♪★]
- 「PC買うなら急げ」は本当だった。マウスが一部販売停止&1月値上げを発表 [♪♪♪★]
- 【速報】 ロシア潜水艦が攻撃されて巨大水柱 [お断り★]
- “つり目”騒動の中…駐日フィンランド大使館が声明「人種差別と闘う」「数多くの意見や質問が」 [少考さん★]
- 野党「台湾を国と認めてるの?」高市「◯☓※▲😤」野党「いや答えて」高市「◯☓~」野党「速記止めろぉ!」 [359965264]
- フィフィ「中国に頭下げてまで日本でパンダが見たいか?」「見たい人は中国行けば?」高市正論 [153490809]
- とうほぐの不登校だけど俺が好きな田舎のお菓子晒すwwwwwwwwwwwwwwww
- 【高市悲報】記者「中国は別の方法でも通告したと言ってるが?」小泉の進さん「…問題の本質はそこじゃない😤」 [359965264]
- 【悲報】高市(おサナ)、過去最大120兆円の予算を組もうとしていると判明😰 [359965264]
- 3時のおやつ🧁はふなキャンディー🍬🏡
