リーダブルコードとは
・読みやすさ、理解しやすさを追及したコードのことです
・読みやすいということはメンテナンス性も高いということです。
・理解しやすいコードはコードレビューも楽になります。
・理解しやすいコードはバグも少なくなります。
・短いほうが優れていることが多いですが、必ずしも短いほうがいいとは限りません。
俺ルール
・書き方の勝負であり、言語の勝負をしないでください。
・標準、非標準に限らずライブラリを使いましょう。
・なければ自分で関数を作りましょう。関数はなるべく汎用的に。
こういうコードを読みやすくするにはどうすればいいでしょうか?
というようなことを語るスレ。需要ありますかね?
リーダブルコーディング技術スレ
■ このスレッドは過去ログ倉庫に格納されています
2013/10/11(金) 01:06:21.56
301デフォルトの名無しさん
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 こぞーよ、こーぞーたいつかいやがれ
329デフォルトの名無しさん
2014/12/12(金) 00:40:38.34ID:ADDM5Suo データ結合まで分離できたって事だろ
誇ってよし
誇ってよし
330デフォルトの名無しさん
2014/12/12(金) 07:43:19.28ID:Znidw3Lc なるべくグローバル変数を使わない でいいんだが、
組み込み系だと、場合によって使っていいかと。
組み込みは仮想メモリが無く、搭載メモリ容量も決まっていて、
各機能それぞれ、どれだけの最大サイズでメモリを使うかなんて
設計段階で確定するものだから、
その最大サイズで最初からグローバルにメモリマップを切っておくべきかと。
動的確保とかだと開放漏れなんていう不具合がありがちだし。
普通にローカル変数ですむようなことまでグローバルにするのは厳禁だけど。
組み込み系だと、場合によって使っていいかと。
組み込みは仮想メモリが無く、搭載メモリ容量も決まっていて、
各機能それぞれ、どれだけの最大サイズでメモリを使うかなんて
設計段階で確定するものだから、
その最大サイズで最初からグローバルにメモリマップを切っておくべきかと。
動的確保とかだと開放漏れなんていう不具合がありがちだし。
普通にローカル変数ですむようなことまでグローバルにするのは厳禁だけど。
331デフォルトの名無しさん
2014/12/12(金) 08:57:20.70ID:bKiv2VYA 勉強になるわあ(´・ω・`)
332デフォルトの名無しさん
2014/12/12(金) 09:27:52.69ID:E/liDhvH メモリなどの制約があるからやるのであって、
それをするのが常識な業界であっても
その目的は「リーダブル」ではないことに注意ね。
それをするのが常識な業界であっても
その目的は「リーダブル」ではないことに注意ね。
333デフォルトの名無しさん
2014/12/12(金) 15:16:05.63ID:tymqzhoh >>330
グローバル(スコープの話)と動的確保(メモリー領域の話)をごっちゃにするなよ...
グローバル(スコープの話)と動的確保(メモリー領域の話)をごっちゃにするなよ...
334デフォルトの名無しさん
2014/12/12(金) 18:32:11.35ID:qq9LAV1Z 言語の話としては、スコープ(可視範囲)とエクステント(生存期間・寿命)な。
スタックに確保するかヒープに確保するかは、それらの実装の話。
スタックに確保するかヒープに確保するかは、それらの実装の話。
335330
2014/12/12(金) 22:14:49.55ID:Znidw3Lc いやあ、結構可読性が変わってくるよ。
動的確保系の処理って、寿命管理にそれなりの設計というかコードを書く必要があるし、
未確保の場合の条件分け処理だとか。
グローバルにすればそういう系のコードが排除出来てすっきりするんで。
今、組み込みで動的確保バリバリのプロジェクトに関わってて。
本来大丈夫なはずの所まで、大量の未確保時の例外処理を入れまくって、
可読性?なにそれ?なソースを相手にしているところww
動的確保系の処理って、寿命管理にそれなりの設計というかコードを書く必要があるし、
未確保の場合の条件分け処理だとか。
グローバルにすればそういう系のコードが排除出来てすっきりするんで。
今、組み込みで動的確保バリバリのプロジェクトに関わってて。
本来大丈夫なはずの所まで、大量の未確保時の例外処理を入れまくって、
可読性?なにそれ?なソースを相手にしているところww
336デフォルトの名無しさん
2014/12/12(金) 23:24:59.05ID:OvrU0/Qj337デフォルトの名無しさん
2014/12/12(金) 23:30:21.77ID:JABIbbJk >>336
C言語の問題になるが、例外というものがなく
エラーは戻り値で返ってくるので、
ちゃんとしたコードを書こうと思ったら原則的に
このように書かないといけない。
int ret;
ret = printf('Hello');
if (ret < 0) {
return ret;
}
ret = printf('World');
if (ret < 0) {
return ret;
}
C言語の問題になるが、例外というものがなく
エラーは戻り値で返ってくるので、
ちゃんとしたコードを書こうと思ったら原則的に
このように書かないといけない。
int ret;
ret = printf('Hello');
if (ret < 0) {
return ret;
}
ret = printf('World');
if (ret < 0) {
return ret;
}
338デフォルトの名無しさん
2014/12/12(金) 23:32:27.88ID:SFp8/UEn トンチンカンすぎんべ…
339デフォルトの名無しさん
2014/12/12(金) 23:35:05.15ID:OvrU0/Qj >>337
だからグローバル使えばどうすっきりするのかと
だからグローバル使えばどうすっきりするのかと
340デフォルトの名無しさん
2014/12/12(金) 23:35:23.81ID:Znidw3Lc ポインタのヌルチェックとかな
341デフォルトの名無しさん
2014/12/12(金) 23:43:14.66ID:Znidw3Lc オブジェクト指向系言語だったらヌルオブジェクト使ってヌルチェックを不要に出来るし、
どのタイミングで動的確保されるかとかはクラスで隠蔽出来るんだが
どのタイミングで動的確保されるかとかはクラスで隠蔽出来るんだが
342デフォルトの名無しさん
2014/12/12(金) 23:44:06.16ID:OvrU0/Qj コードで示してくれない?
グローバルでもチェックが不要になる訳じゃないよね?
グローバルでもチェックが不要になる訳じゃないよね?
343デフォルトの名無しさん
2014/12/12(金) 23:46:39.06ID:Znidw3Lc ?
ポインタをグローバルに持つとかじゃないよ?念のため。
普通に、ごく普通にプリミティブ型やら構造体変数をグローバルに持つだけなんだが。
ポインタをグローバルに持つとかじゃないよ?念のため。
普通に、ごく普通にプリミティブ型やら構造体変数をグローバルに持つだけなんだが。
344デフォルトの名無しさん
2014/12/12(金) 23:53:59.93ID:Znidw3Lc イメージ的には、様々な動的確保情報を全て確保した状態のヒープを、
最初から固定でグローバルに持っておく、という感じ。で伝わるかな。。
最初から固定でグローバルに持っておく、という感じ。で伝わるかな。。
345デフォルトの名無しさん
2014/12/12(金) 23:54:55.17ID:ADDM5Suo (やべえ何度読み直しても分からねえ…何が分からないのかさえ分からねえ…)
346デフォルトの名無しさん
2014/12/12(金) 23:56:53.96ID:9Ma9oPly347デフォルトの名無しさん
2014/12/12(金) 23:58:05.91ID:SUQ8ZHc4 >>343-344
ごめん、マジで伝わらん
ごめん、マジで伝わらん
348デフォルトの名無しさん
2014/12/12(金) 23:59:06.81ID:bKiv2VYA やり取りの内容がまだ理解できるレベルではないが
奥がふかいんですねえ
やっぱcだけじゃなくjavaあたりもやっといた方がいいのかな
奥がふかいんですねえ
やっぱcだけじゃなくjavaあたりもやっといた方がいいのかな
349デフォルトの名無しさん
2014/12/13(土) 00:01:01.37ID:54ajxy39 >>346
ヒープ ⇔ スタティック の話なの?
ヒープ ⇔ スタティック の話なの?
350デフォルトの名無しさん
2014/12/13(土) 00:02:55.00ID:uQ37H43s おそらく最初から動的と静的の話なんでしょうよ
351デフォルトの名無しさん
2014/12/13(土) 00:05:24.55ID:54ajxy39 そうなんだろうな...
352デフォルトの名無しさん
2014/12/13(土) 02:19:46.63ID:WvyZJyoU そうだな
353デフォルトの名無しさん
2014/12/13(土) 05:42:46.74ID:xVemfz4a 書いてみた
http://ideone.com/3l8aq6
http://ideone.com/3l8aq6
354デフォルトの名無しさん
2014/12/13(土) 10:22:39.34ID:xVemfz4a と思ったら終わってたのね、話
355デフォルトの名無しさん
2014/12/13(土) 10:25:53.22ID:/4slIr06356デフォルトの名無しさん
2014/12/13(土) 10:31:24.66ID:xVemfz4a357デフォルトの名無しさん
2014/12/13(土) 10:36:24.43ID:JDqKcE2X 十年ROMれ
358デフォルトの名無しさん
2014/12/13(土) 10:40:39.82ID:xVemfz4a あぅぅ
2014/12/13(土) 23:21:18.25ID:K/9GRqnp
10年後に2chがなくなってなきゃいいが…
360デフォルトの名無しさん
2014/12/18(木) 20:59:16.69ID:IPlfnya6 c言語である程度プログラムが大きくなってくると関数の数も増えて来るし
どの関数がどの関数を呼び出してるとか色々増えて来ると思うんだけど
こういうのってどういう管理が一般的なんだろか
どの関数がどの関数を呼び出してるとか色々増えて来ると思うんだけど
こういうのってどういう管理が一般的なんだろか
361デフォルトの名無しさん
2014/12/18(木) 22:04:19.41ID:PpZ3cpAI >>360
> どの関数がどの関数を呼び出してるとか色々増えて来ると思うんだけど
増えていかないようにモジュール化する
> こういうのってどういう管理が一般的なんだろか
増えちゃったとか不幸にもぐちゃぐちゃのソースを解析するなら Doxygen とか、金があるなら Imagix とかで見るとか
> どの関数がどの関数を呼び出してるとか色々増えて来ると思うんだけど
増えていかないようにモジュール化する
> こういうのってどういう管理が一般的なんだろか
増えちゃったとか不幸にもぐちゃぐちゃのソースを解析するなら Doxygen とか、金があるなら Imagix とかで見るとか
362デフォルトの名無しさん
2014/12/18(木) 23:37:34.74ID:mulBDlyx 関数がある程度増えたら、それを小さく分割するってことを
しないからどんどん増えるんだよね。
なんで過去のコードを修正しないのか?
簡単なうちにすぐ手を付けないから、あとから手遅れになるんだけど。
しないからどんどん増えるんだよね。
なんで過去のコードを修正しないのか?
簡単なうちにすぐ手を付けないから、あとから手遅れになるんだけど。
363デフォルトの名無しさん
2014/12/18(木) 23:47:41.58ID:LWfoPtOf あまり小さく分割すると見通しが悪くなる派
364デフォルトの名無しさん
2014/12/19(金) 14:45:53.53ID:YQiCmoKD >>363
それは分割の仕方が間違ってる派
正しいやり方は
長い関数があった時、その中で汎用的に使える所をシンプルな関数に
抜き出しながら全体を短くするというやり方。
間違ったやり方だと
長い関数があった時、その一部。例えば前半分と後ろ半分みたいに分けて
汎用的ではない関数(というよりもルーチン)を増やすやり方。
”見通しが悪くなる" という言葉がうまく表している。
間違ったやり方は、汎用的ではない関数ができるから"見ないといけない"
「処理があちこちにジャンプして見にくい」など言うのはまさにこれが原因
正しいやり方ならは、汎用的でシンプルだから(一度見るだけで)あとは見なくて良くなる。
見るべきコードが減って処理も分割されないので、あちこちにジャンプすることもなく、見通しが良くなる。
それは分割の仕方が間違ってる派
正しいやり方は
長い関数があった時、その中で汎用的に使える所をシンプルな関数に
抜き出しながら全体を短くするというやり方。
間違ったやり方だと
長い関数があった時、その一部。例えば前半分と後ろ半分みたいに分けて
汎用的ではない関数(というよりもルーチン)を増やすやり方。
”見通しが悪くなる" という言葉がうまく表している。
間違ったやり方は、汎用的ではない関数ができるから"見ないといけない"
「処理があちこちにジャンプして見にくい」など言うのはまさにこれが原因
正しいやり方ならは、汎用的でシンプルだから(一度見るだけで)あとは見なくて良くなる。
見るべきコードが減って処理も分割されないので、あちこちにジャンプすることもなく、見通しが良くなる。
365デフォルトの名無しさん
2014/12/19(金) 23:26:05.82ID:wb+cst2b >>364
以上、本ばかり読んでてコード書いたことのない自称できるプログラマーの意見でした
以上、本ばかり読んでてコード書いたことのない自称できるプログラマーの意見でした
366デフォルトの名無しさん
2014/12/19(金) 23:29:01.15ID:YQiCmoKD >>365
なんにも言い返していない所がウケるw
なんにも言い返していない所がウケるw
367デフォルトの名無しさん
2014/12/19(金) 23:44:37.90ID:cAPBq6kb なかなか難しいところだ脳。
やっぱコード書く前にしっかり設計やってからやるべきなのかね。
趣味だけども
やっぱコード書く前にしっかり設計やってからやるべきなのかね。
趣味だけども
368デフォルトの名無しさん
2014/12/19(金) 23:57:59.54ID:wb+cst2b369デフォルトの名無しさん
2014/12/20(土) 01:22:27.35ID:+b2U+9C3 このスレの忘年会みたいな軽いノリで、リーダブルじゃない現場コードの晒し合いとか愚痴晒し合いとかしませんか
言語問わずなんでもありで
丁度上司のunreadableコードと戦っててもうね
出所バレない感じに整形したりしてるんですがもうね
言語問わずなんでもありで
丁度上司のunreadableコードと戦っててもうね
出所バレない感じに整形したりしてるんですがもうね
370デフォルトの名無しさん
2014/12/20(土) 01:41:00.69ID:acQ5HpBR 再帰関数使いたいけど無名関数じゃ再帰できないようだからしぶしぶprivateメソッド化して細切れになる現象
371デフォルトの名無しさん
2014/12/20(土) 05:18:20.39ID:dWuhsWfV372デフォルトの名無しさん
2014/12/20(土) 09:26:41.56ID:z0Uvrlhl >>370つ Yコンビネータ
って全然リーダブルじゃねーか
って全然リーダブルじゃねーか
373デフォルトの名無しさん
2014/12/20(土) 10:07:02.21ID:KOv8i75g void isReadable()
374デフォルトの名無しさん
2014/12/20(土) 10:10:00.30ID:KOv8i75g new codeClone[num_of_func]
375デフォルトの名無しさん
2014/12/20(土) 12:02:33.91ID:F1BtQojg376デフォルトの名無しさん
2014/12/20(土) 12:12:29.43ID:cUhMXe+F377デフォルトの名無しさん
2014/12/20(土) 12:16:04.49ID:F1BtQojg >>371
> ワンストップ・サービス(窓口)のFacadeはどうなる?
その例から何を言いたいのかよくわからないよ。
何か俺が言ったことを勘違いしていそうだから、
勘違いしていそうなところの補足をしておく。
> 間違ったやり方だと
>
> 長い関数があった時、その一部。例えば前半分と後ろ半分みたいに分けて
> 汎用的ではない関数(というよりもルーチン)を増やすやり方。
この前半分と後ろ半分にわける間違ったやり方というのは、
例えば一つの工程をA、Bの二つに分けた時、
Bの内容(引数・戻り値じゃなくて"内容")を見ないと
Aが最終的にどうなるかわからないようなもののこと。
Facadeみたいにそれぞれの独立した工程に処理を渡して
引数・戻り値といった最小限の情報だけでやり出来るものは関係ない。
> ワンストップ・サービス(窓口)のFacadeはどうなる?
その例から何を言いたいのかよくわからないよ。
何か俺が言ったことを勘違いしていそうだから、
勘違いしていそうなところの補足をしておく。
> 間違ったやり方だと
>
> 長い関数があった時、その一部。例えば前半分と後ろ半分みたいに分けて
> 汎用的ではない関数(というよりもルーチン)を増やすやり方。
この前半分と後ろ半分にわける間違ったやり方というのは、
例えば一つの工程をA、Bの二つに分けた時、
Bの内容(引数・戻り値じゃなくて"内容")を見ないと
Aが最終的にどうなるかわからないようなもののこと。
Facadeみたいにそれぞれの独立した工程に処理を渡して
引数・戻り値といった最小限の情報だけでやり出来るものは関係ない。
378デフォルトの名無しさん
2014/12/20(土) 12:18:32.86ID:F1BtQojg >>376
区別できているかできていないかの前に
質問に答えてよ。
俺は「無限の時間と労力をかけてでもやれ」なんて一言も言っていない。
でもまあ、仕事(作業)するなら時間がかかるのはあたりまえだよ。
(その時間内で)適切なやり方をやれって言っているだけだが
どうして無限の時間をかけるって話になったのさ?
区別できているかできていないかの前に
質問に答えてよ。
俺は「無限の時間と労力をかけてでもやれ」なんて一言も言っていない。
でもまあ、仕事(作業)するなら時間がかかるのはあたりまえだよ。
(その時間内で)適切なやり方をやれって言っているだけだが
どうして無限の時間をかけるって話になったのさ?
379デフォルトの名無しさん
2014/12/20(土) 12:21:24.19ID:F1BtQojg 「適切なやり方をやれ」って言っただけなのに
それを「無限の時間と労力をかけてでもやれ」と勘違いしてしまうのは
「適切なやり方をやったら、俺は無限の時間がかかるんだ。適切なやり方=無限の時間なんだ」って
>>368が言っているようにみえるのは仕方ないでしょw
それを「無限の時間と労力をかけてでもやれ」と勘違いしてしまうのは
「適切なやり方をやったら、俺は無限の時間がかかるんだ。適切なやり方=無限の時間なんだ」って
>>368が言っているようにみえるのは仕方ないでしょw
380デフォルトの名無しさん
2014/12/20(土) 13:02:04.48ID:lS6KGt9L381デフォルトの名無しさん
2014/12/20(土) 13:09:20.32ID:z0Uvrlhl382デフォルトの名無しさん
2014/12/20(土) 13:22:29.06ID:cUhMXe+F だから正論に反論なんてできないよ
「適切なやり方やればいい」
間違ったことは言ってないからな
でも、そんなことは小学生でも言えるわ w
「適切なやり方やればいい」
間違ったことは言ってないからな
でも、そんなことは小学生でも言えるわ w
383デフォルトの名無しさん
2014/12/20(土) 14:21:29.36ID:qyYbVqEq >>382の上司「無限の時間をかけてでも適切なことをやれ!でも給料はいつも通り!」
って言われてるからここで愚痴ってるんでしょ
って言われてるからここで愚痴ってるんでしょ
384デフォルトの名無しさん
2014/12/20(土) 22:26:54.94ID:F1BtQojg >>382
だから変なのは「無限の時間」って話が出てきた所だけだよ。
正論言ってるんだから、俺が言った内容に反論できないのはわかってるよ。
俺が言った内容ではない話が、どこからできたんだ?って言ってるだけ。
だから変なのは「無限の時間」って話が出てきた所だけだよ。
正論言ってるんだから、俺が言った内容に反論できないのはわかってるよ。
俺が言った内容ではない話が、どこからできたんだ?って言ってるだけ。
385デフォルトの名無しさん
2014/12/20(土) 22:56:28.88ID:cUhMXe+F386デフォルトの名無しさん
2014/12/20(土) 23:25:50.20ID:F1BtQojg >>385
誰が誰の立場でできませんっていうんだよ?
わけわからんわ。
時間内に出来るかどうかはケースバイケースなんだし、
出来るところまでやればいいだけだろ。
それに技術力を上げれば時間内にできることも多くなるぞ。
何も努力しないでコピペばかりするから技術力も上がらなくなる。
誰が誰の立場でできませんっていうんだよ?
わけわからんわ。
時間内に出来るかどうかはケースバイケースなんだし、
出来るところまでやればいいだけだろ。
それに技術力を上げれば時間内にできることも多くなるぞ。
何も努力しないでコピペばかりするから技術力も上がらなくなる。
387デフォルトの名無しさん
2014/12/21(日) 00:56:33.95ID:XZ/0moqW >>385
上司「何言ってるんだ土日があるだろ。ただしそれはお前の能力不足が原因だから残業代は出ないからな。」
上司「何言ってるんだ土日があるだろ。ただしそれはお前の能力不足が原因だから残業代は出ないからな。」
388デフォルトの名無しさん
2014/12/21(日) 11:05:47.64ID:ikKWfd9P389デフォルトの名無しさん
2014/12/21(日) 13:01:56.36ID:XZ/0moqW >>388
上司「俺は土日をつかえなんて指示はしていない。そんな計画を承認したはずもない。
ただお前が業務時間内に間に合わないなら土日や深夜や自宅時間も使わざる負えないだろうということだ。そんなこともわからんのか。」
上司「俺は土日をつかえなんて指示はしていない。そんな計画を承認したはずもない。
ただお前が業務時間内に間に合わないなら土日や深夜や自宅時間も使わざる負えないだろうということだ。そんなこともわからんのか。」
390デフォルトの名無しさん
2014/12/21(日) 14:38:18.36ID:dx70AcKS391デフォルトの名無しさん
2014/12/21(日) 14:40:57.90ID:dx70AcKS あ、もしかして俺なら(上級者なら)時間内にできる仕事を
どれだけ時間があっても出来ないって言いたい人なのかな?
俺にはいくら時間があっても仕事できないよって。
どれだけ時間があっても出来ないって言いたい人なのかな?
俺にはいくら時間があっても仕事できないよって。
392デフォルトの名無しさん
2014/12/21(日) 14:50:49.21ID:dx70AcKS まあ、ここいらでリーダブルコーディングの話に戻すか。
仕事が遅い人って見ていると、自分で自分を苦しめてるんだよね。
自分でぐちゃぐちゃなコードを書いて、
正しく動かない、バグが直せないって言ってる。
自分が書いたコードと戦っているわけさw
リーダブル、つまり読みやすいコードを書けるように
自分を鍛えれば、自分が書いたコードと戦うことは少なくなっていく。
でも仕事が遅い人って、自分が書いたコードと戦うことに精一杯。
時間がないを言い訳にしてレベルを上げようとしないから、
戦う敵を量産するだけで、更に時間をなくしてる。
コードは読むものなのだが、どうもレベルが低い人にとっては
解析する物になっているようだ。解析した後その謎を片付けないでそのままにして
さらにコードを追加するから、書けば書くほど謎が深まっていく
だから仕事をするばするほどかかる時間が増えていく。
あ、だから無限の時間って話になるのかw
仕事が遅い人って見ていると、自分で自分を苦しめてるんだよね。
自分でぐちゃぐちゃなコードを書いて、
正しく動かない、バグが直せないって言ってる。
自分が書いたコードと戦っているわけさw
リーダブル、つまり読みやすいコードを書けるように
自分を鍛えれば、自分が書いたコードと戦うことは少なくなっていく。
でも仕事が遅い人って、自分が書いたコードと戦うことに精一杯。
時間がないを言い訳にしてレベルを上げようとしないから、
戦う敵を量産するだけで、更に時間をなくしてる。
コードは読むものなのだが、どうもレベルが低い人にとっては
解析する物になっているようだ。解析した後その謎を片付けないでそのままにして
さらにコードを追加するから、書けば書くほど謎が深まっていく
だから仕事をするばするほどかかる時間が増えていく。
あ、だから無限の時間って話になるのかw
393デフォルトの名無しさん
2014/12/21(日) 15:48:14.53ID:wuWkedhz >>391-392
話の流れも読めてないバカ乙
話の流れも読めてないバカ乙
394デフォルトの名無しさん
2014/12/22(月) 21:28:40.57ID:ndw8Yqnw 流れが読めないのはリーダブルでないのの典型
395デフォルトの名無しさん
2014/12/22(月) 22:36:05.51ID:bXw2G98F と責任転嫁w
396デフォルトの名無しさん
2014/12/27(土) 23:32:28.76ID:OlYxJx97 自作のソフト、ネタ尽きてきたからコードの簡略化してたら5時間くらいたってた
397デフォルトの名無しさん
2015/10/14(水) 23:40:08.29ID:DmhFYPJM クリエイティブじゃないやつはリファクタリングして仕事した気になってる勘違いが多い
398デフォルトの名無しさん
2015/10/15(木) 01:26:25.23ID:h4rpxLqO ぎくっ
399デフォルトの名無しさん
2015/10/15(木) 12:52:24.82ID:fomBTPP1 はい
400デフォルトの名無しさん
2016/05/01(日) 16:37:41.94ID:tKi6j9CT 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
1^
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
1^
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★12 [蚤の市★]
- 中国の渡航自粛要請1カ月 大阪の観光バス予約ゼロ、東北にも波及 [蚤の市★]
- 【神戸】エレベーター「かご」なく男性医師が転落死 大手「三菱電機ビルソリューションズ」の担当者、安全装置切り放置か [ぐれ★]
- 女性天皇「賛成」69%、将来の皇位継承「不安」68%…読売世論調査 [蚤の市★]
- 不倫疑惑の永野芽郁さん、CM削除ドミノの違約金“やはり発生は免れない”可能性 約10億円になる見込み、本人は全額支払う覚悟 [牛丼★]
- 【群馬】横断歩道を渡っていたNHKアナウンサーが車にはねられ骨折などの重傷 前橋市 [ぐれ★]
- 人の弱みを握ると気持ちいいよな?
- バター醤油ご飯食べてみたらwwwwwwwwwwwwwwww
- 【悲報】ドイツ人「なんで日本人って自炊するの?出来合の惣菜や冷食食った方が楽でコスパいいやん。そんなんだから低生産性なんだよ [786648259]
- 【動画】まんさん、アラジンのジーニーみたいな男にボコボコにされる🧞‍♂ [632966346]
- 底辺テイカー気質Vtuberを破壊する遊びが闇深いと話題に [922647923]
- 「よかれと思って毎日食べていたのに」…“朝の空腹時”に絶対に避けるべき食品とは? [268718286]
