[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/12 01:51 / Filesize : 317 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 147



226 名前: ID:y9Wx8uZn.net mailto: >>176
> 視点移動が増える書き方で、可読性やメンテナンス性が悪いという人もいる。
それは正しく分割出来てないから。(同じ抽象度で分割する)
読まなくても分かる名前を付けて、結果的に読まないから、視点移動はしない。例えば、以下。

while (1) {
int idx = get_data_idx();
if (idx<0) break;
int* data = prepare_data(idx);
calculate_data(data);
write_back_data(data, idx);
}

この部分はマルチスレッドでのデータ処理だとしよう。
get_data_idxは未演算のデータのインデックスを返し、ない場合は、-1を返すとしよう。
単純に、「インデックスを受け取り、チェックし、データを用意して演算して書き戻す」と読めるだろ。
そこでget_data_idxの中身を見ると、マルチスレッド用だからロックされてる、というだけ。
(余談だが>>107にはこういう具体性が見えないので、
> LOCK/UNLOCKが必要な具体的な場面を想定しての発言には見えない (>>122)
と言われている。これも当たっている)

「視点移動ガー」は読み方を間違っている。
プログラムが階層構造のツリーとして、
縦に掘るのではなく、横に読んで、必要であればその部分だけ縦に読むんだよ。
まず最初は同階層で全体の流れを把握して、必要であればその実装を読む。
実装を読む場合、名前と実装が一致しているかだけのチェックしかしない。

家を建てるとして、
全ての柱が設計図通りに組み上げられているか(全体のチェック)と、
それぞれの柱が設計図通りの仕上がりになってるか(ほぞ穴が正しく加工されてるか)は別にチェックするだろ。
プログラミングも同じで、上位と下位は別にチェックするんだよ。
同時に読まないからいちいち子関数に視点移動なんてしないし、視点移動しなくて済むように同抽象度で分割するんだよ。
[]
[ここ壊れてます]






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<317KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef