5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

長いソースコードを読むコツ

1 :デフォルトの名無しさん:2008/10/25(土) 13:40:51
ありますか?

2 : ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄:2008/10/25(土) 13:48:47

    / ̄ ̄ ̄ ̄\
   (  人____)
   |./  ー◎-◎-)
   (6     (_ _) )    カタカタカタ
   | .∴ ノ  3 ノ  ______
    ゝ       ノ  .|  | ̄ ̄\ \
   /       \__|  |    | ̄ ̄|
  /  \___      |  |    |__|
  | \      |つ    |__|__/ /
  /     ̄ ̄  | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕
 |       | ̄


3 :デフォルトの名無しさん:2008/10/25(土) 13:50:21
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。


4 :デフォルトの名無しさん:2008/10/25(土) 13:54:32
アイちゃんってメガネかけてたのか

5 :デフォルトの名無しさん:2008/10/25(土) 14:35:21
>>1
コメントを書き込みながら読む

6 :デフォルトの名無しさん:2008/10/25(土) 15:33:27
・大きな高解像度ディスプレイ
・印刷物と色鉛筆
・付箋紙

7 :デフォルトの名無しさん:2008/10/25(土) 15:36:13
そして湯水のごとく使える「時間」

8 :デフォルトの名無しさん:2008/10/25(土) 16:51:45
全部読まない。一を聞いて十を知る。
まあソースコードに限らず万事においてプロアクティブに頭を使うことは
非常に効果が大きく重要なんだが、できない奴は全くできない。

9 :デフォルトの名無しさん:2008/10/25(土) 18:14:16
プロアクティブ?
にきびでもできたんか?

10 :デフォルトの名無しさん:2008/10/25(土) 18:21:30
ソースコードにコメント書きまくる
もしくは、ひたすらメモを取りながら読む
どっちにしても効率はあまりよくない

11 :マイク ◆yrBrqfF1Ew :2008/10/25(土) 19:07:20
ソースコードを書き直して短く読みやすく綺麗にする

12 :デフォルトの名無しさん:2008/10/25(土) 23:48:49
とりあえず自分の知りたいところ、改造したいところなど興味あるとこだけ探して読む。

13 :デフォルトの名無しさん:2008/10/26(日) 00:45:08
関連?
【支援】ソースコードリーディング【ツール】
http://pc11.2ch.net/test/read.cgi/tech/1211785036/l50

14 : :2008/11/01(土) 14:20:56
エレメントがわかりやすくなっているソースコードは読みやすいな

15 :デフォルトの名無しさん:2008/11/15(土) 11:58:18
mainが5000行、goto文だらけ
変数(300個くらい)を格納するためだけのクラスがあって全域からそこを参照してる

というVB.netのコードを読むコツを教えてくれまじで

16 :デフォルトの名無しさん:2008/11/15(土) 16:41:44
変数を削ると参照している箇所が分かるよ。

17 :デフォルトの名無しさん:2008/11/15(土) 19:57:18


その発想はなかった…ありがとん

18 :デフォルトの名無しさん:2008/11/15(土) 20:50:13
わーいリフレクションだーw

19 :デフォルトの名無しさん:2008/11/15(土) 20:54:43
>>16
しばらく、C#やらVB.NETで仕事をしてて、VSで、定義してる箇所や参照してる箇所がすぐ
わかってすごい便利だったんだけど、VC6の仕事にはいちゃって、それがつかえなくなってすごい不便なんだよな。

20 :デフォルトの名無しさん:2008/11/15(土) 21:23:10
●linux-2.6.15.2
<フォルダ数>: 1161
<ファイル数>: 18811 ( c: 7804 h: 7598 cc: 1 l: 4 y: 4 S: 865 pl: 13 sh: 21 その他: 2501 )
<総行数>: 640万1152
<有効行数>: 450万7118
<コメント行数>: 104万2802

●firefox-3.0.1
<フォルダ数>: 5280
<ファイル数>: 42243
( c: 1546 cpp: 3832 h: 3971 cc: 79 l: 2 y: 1 asm: 6 pl: 127 sed: 2 sh: 131 java: 70 その他: 32476 )
<総行数>: 376万2581
<有効行数>: 244万1177
<コメント行数>: 83万6499

●gcc-core-3.4.5-20060117-1
<フォルダ数> 82
<ファイル数> 1885 ( c: 461 h: 636 cc: 1 l: 2 y: 4 asm: 63 S: 10 pl: 2 sed: 1 sh: 11 )
<総行数> 85万4799
<有効行数> 56万2436
<コメント行数> 17万0669    
(※行数はc,cpp,h,cc,java等のみ)


こういうのが読みたいのですが
コツを教えてください!!

21 :デフォルトの名無しさん:2008/11/15(土) 22:12:15
Linuxなら2.2とかgccなら2.95とか、昔のちっちゃくてかつ実用的なレベルのソースから
読むほうがいいんじゃないの?基本的なことは変わってないだろうし

22 :デフォルトの名無しさん:2008/11/16(日) 00:33:44
>>21
ありがとうございます。少し希望が出てきました!

●linux-2.2.0
<フォルダ数>: 229
<ファイル数>: 4598 ( c: 1891 h: 1884 S: 227 pl: 4 sed: 1 sh: 5 その他: 586 )
<有効行数>: 113万7392

●gcc-2.95
<フォルダ数>: 70
<ファイル数>: 1695
( c: 335 h: 662 y: 2 asm: 41 S: 4 sed: 11 sh: 6 その他 : 634 )
<有効行数>: 40万5391

23 :デフォルトの名無しさん:2008/11/16(日) 03:10:38
カーネルとかコンパイラとかは部分部分が論文のネタになるようなことの集合体だから、
知りたいことをまず決めて、必要ない部分をばっさばっさと落としていくのがいいよ。

24 :デフォルトの名無しさん:2009/02/04(水) 14:38:53
>>22
> <有効行数>: 113万7392

>>20のgccの行数とあんま変わんねーじゃねえか
>>22のバカさに感動

25 :デフォルトの名無しさん:2009/02/04(水) 17:37:44
クラス関係把握すればあとは必要なとこだけ読む
Visual Studioにある関数の呼び出し元をツリー表示とか重宝してます

26 :デフォルトの名無しさん:2009/02/04(水) 22:34:56
図を書く


27 :マイク ◆gZ6OoOjBU6 :2009/02/05(木) 06:55:19
Linuxや*BSDのコードの多くはドライバコードが多いはず。
unix系OSの理念としてカーネルそのものはなるべく小さくする理念があったはず。
だからカーネルそのものは大して難しいことはないだろうと思われる。
俺はあんま読んだ事は無いがね。
つーかFreeBSDのソースのtgzとかオプソのftpのサイト行っても置いてないぞ?どこにあんだよ
csvとか面倒臭すぎ。俺まだISDN回線だし。鬱病気味でそんなやる気ないっつうの

28 :マイク ◆gZ6OoOjBU6 :2009/02/05(木) 06:58:27
>>25
それだ。
制御フローを図式かするツールがあるとめちゃくちゃ簡単にプログラム解析できる。
高いラショナルローズみたいなのにはあるとかないとか聞いたがあれは便利だな。間違いなく。
俺は持ってない。

29 :マイク ◆gZ6OoOjBU6 :2009/02/05(木) 07:28:39
firefox3.0.1は脆弱性検査の為に1〜2ヶ月大体毎日egrepみたいなので検査して読んだわ。
標準のCライブラリのstrncpyやmemcpyまで独自実装してるのな。
めんどくさいんじゃね?と思ったが。
ブラウザの場合はユーザが使う機能が分割して実装されるからソースコードも大体その機能ごとに分かれてる。
だから機能ごとにgrepとかmozilla\ディレクトリ以下のCやC++やJavaScriptのソースファイルをリストアップさせて
適当にディレクトリとファイル名から推定してソース読んでた。
スクリプトで拡張子で判別してリストアップさせたら9500ファイルくらいあったぞ。
やっぱり50万行以上あったか。俺も苦労したわ。あんなんやってられねえ。ツールでも作らなきゃ2度やってられねえな。
静的ソースコード解析が一番いいわ。自動化最高。
sqlite3.c だな。この外部ライブラリのソースコード脆弱そうに見える。
外部ライブラリだから報奨金の500ドルはもらえねえけど。

30 :マイク ◆gZ6OoOjBU6 :2009/02/05(木) 08:40:04

俺はトップダウン型でプログラムを理解する派なので
プログラム自体がまともな設計で構築されてば一応それなりに構造把握はできる。
その設計パターンになれるのが一番読むコツとして重要じゃねえかと思う。

31 :デフォルトの名無しさん:2009/02/06(金) 10:38:41
トップダウンで理解しても全体の理解の1/10ぐらいだわ
個々のアルゴリズムの意味を理解してようやく何かが見えてくる感じ

32 :マイク ◆gZ6OoOjBU6 :2009/02/06(金) 17:13:02
その設計パターン
 ↓
そこで使われている設計パターンを含んだ色々なよく使用される設計パターン

33 :デフォルトの名無しさん:2009/02/10(火) 12:43:43
>>32
OSカーネルのbootstrapコードは, その方法じゃ理解不能に近い.


34 :デフォルトの名無しさん:2009/02/11(水) 11:21:36
プログラマーって、尊敬しちゃいます

35 :デフォルトの名無しさん:2009/02/11(水) 20:10:39
尊敬してください
そして結婚してください

36 :デフォルトの名無しさん:2009/02/11(水) 22:07:30
尊敬するなら金をくれ

37 :デフォルトの名無しさん:2009/02/11(水) 22:22:16
ちきしょう、こいつもう結婚しているな・・・

9 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)