ソースを読む技術
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/02/04(土) 22:14:31読む技術、手法などを夜が明けるまで語り明かしましょう
0002デフォルトの名無しさん
2006/02/04(土) 22:16:370003桂三枝
2006/02/04(土) 22:21:540004デフォルトの名無しさん
2006/02/04(土) 22:52:230005デフォルトの名無しさん
2006/02/04(土) 22:59:41糸冬
---------------
制作・著作 NHK
0006デフォルトの名無しさん
2006/02/04(土) 23:00:55糸冬
---------------
制作・著作 創価学会
0007デフォルトの名無しさん
2006/02/04(土) 23:10:56ttp://www.otafuku.co.jp/
ttp://www.bulldog.co.jp/syouhin/index.html
ttp://www.gensen.co.jp/sause.htm
ttp://8627.teacup.com/ichizendo/shop/01_01_03/ITH-02/
ttp://www.ikari-s.co.jp/
0008デフォルトの名無しさん
2006/02/04(土) 23:12:560009デフォルトの名無しさん
2006/02/05(日) 00:59:320010デフォルトの名無しさん
2006/02/05(日) 01:00:27global kwsk
0011デフォルトの名無しさん
2006/02/05(日) 01:52:05htags
0012デフォルトの名無しさん
2006/02/05(日) 03:10:250013デフォルトの名無しさん
2006/02/05(日) 03:30:12ツールの使い方みたいな小手先の技術なんてどうでもいいよ。
0014デフォルトの名無しさん
2006/02/05(日) 03:43:580015奈々@スーパープログラマ ◆Xl6OTFSLJ2
2006/02/05(日) 13:32:47俺は塩だな。
気分によってはあら引きのコショウを少々。
0016デフォルトの名無しさん
2006/02/05(日) 13:49:150017デフォルトの名無しさん
2006/02/05(日) 14:18:31孔子さまもおっしゃってる通り100回声に出して読みたいプログラム
0018デフォルトの名無しさん
2006/02/05(日) 14:30:16ただしソースの量が多くなるとジェネレートで相当待たされる
CPUの使用率も高く、その間何もできなくなるな
0019デフォルトの名無しさん
2006/02/05(日) 14:59:28構造を図式化するだけ
図式化は面倒ではあるが、完成してしまえば
規模、構成、バグなどを短時間で理解できる
0020デフォルトの名無しさん
2006/02/05(日) 15:11:21ただし相手が糞ソースでないことが前提である。
0021デフォルトの名無しさん
2006/02/05(日) 15:20:01002219
2006/02/05(日) 15:56:01糞コードだからこそ図式化する
理解するための図式化
糞コードでなければ図式化は不要
0023デフォルトの名無しさん
2006/02/05(日) 16:23:230024デフォルトの名無しさん
2006/02/06(月) 08:28:460025デフォルトの名無しさん
2006/02/06(月) 10:22:53あとは読み解いたソースを頭の中でイメージ化できるかと小人さんがどれだけ動いてくれるかに掛かってくる
0026デフォルトの名無しさん
2006/02/06(月) 12:03:47きれいなソースでも時間がかかる。
0027デフォルトの名無しさん
2006/02/06(月) 12:50:42ログ仕込むとか。
0028デフォルトの名無しさん
2006/02/06(月) 13:27:38読めよ
0029デフォルトの名無しさん
2006/02/06(月) 14:41:44バイナリを読む技術を教えて欲しい
0030デフォルトの名無しさん
2006/02/06(月) 16:12:100031デフォルトの名無しさん
2006/02/06(月) 16:13:47人間だからといって、
DNAが読めるわけでもあるまい。
0032デフォルトの名無しさん
2006/02/06(月) 16:16:35999に乗れ。
0033デフォルトの名無しさん
2006/02/06(月) 17:59:48ttp://delegate.uec.ac.jp:8081/club/koken/~ubora/inst_set.html
0034デフォルトの名無しさん
2006/02/06(月) 18:23:38これだろ
GNU GLOBAL
ttp://tamacom.com/global-j.html
0035デフォルトの名無しさん
2006/02/06(月) 23:49:05「ソースを読むための技術」
ttp://i.loveruby.net/ja/misc/readingcode.html
「ひらメソッド」
ttp://hira.main.jp/wiki/pukiwiki.php
0036デフォルトの名無しさん
2006/02/07(火) 02:26:48まあ著者もそのうち成長するのだろうけど。
0037デフォルトの名無しさん
2006/02/07(火) 19:43:19kwsk
0038デフォルトの名無しさん
2006/02/08(水) 03:47:42知っている奴リンク張れや
特に>>1
0039デフォルトの名無しさん
2006/02/08(水) 09:38:53改善していくことにより
設計のまずさなども
学習できる。
でも俺は挙げん。
0040デフォルトの名無しさん
2006/02/08(水) 09:58:04下手なソースを素材そのままにいかに付き合うか、これも重要。
0041デフォルトの名無しさん
2006/02/08(水) 11:02:42つ【http://www.nethack.org/】
0042デフォルトの名無しさん
2006/02/08(水) 18:06:00ソース一つで台無しになる場合があるからな。
0043デフォルトの名無しさん
2006/02/08(水) 18:17:39ふらんすじんにあやまれ
0044デフォルトの名無しさん
2006/04/16(日) 17:16:56我々は立ち上がる――
/\ 我が名を永遠に刻むため――
/∬ \
/ .人 \
/ (__) /\
\(__) / \ 時は満ちたり!
\ / \ ニュース速報 いざ出陣!!
\/ \
∧∧∧∧\
( ´/) ))ヽ∧
/ / / ´∀) ∧∧
○( イ○ ( ,つ, ,゜Д゜)
/ヽ )) ヽ )ヽ )と , イ
(_/(_/(_/(_/ノ(_/⊂ノ> )J
/ ̄Y ̄`|/ ̄^Y ̄ヽ/ ̄ ̄Y `´ ̄\ http://live22x.2ch.net/news/
0045デフォルトの名無しさん
2006/05/07(日) 20:46:04目次や登場人物一覧とかってなくても
章立てや人物の特徴(?)とかが明確になっているから読める
プログラムソースコードもそーゆー事だ
0046デフォルトの名無しさん
2006/10/02(月) 01:54:26製作者がこれでもかってくらい知識ひけらかして書いたソースって、
ソースのメンテ拒否してるようにしか見えない。
そしてコメント内容が間違ってるなんて論外。
0047デフォルトの名無しさん
2006/10/02(月) 05:07:350048デフォルトの名無しさん
2006/10/12(木) 01:57:220049デフォルトの名無しさん
2006/10/12(木) 03:20:17=++ i;_
<'_'> ('_')
/i | L/ i | L
/ L / L ;;;
}
0050デフォルトの名無しさん
2006/10/18(水) 00:50:20プログラマなんて掃いて捨てるほどいるんで、
ソース読めない方はとっとと転職する事を勧める。
0051デフォルトの名無しさん
2006/10/18(水) 03:51:11オマエ等ドカチンの根性主義はどうでも良いんだよ
こういう問題意識から新しいパラダイムが生まれるんだ
0052デフォルトの名無しさん
2006/11/04(土) 20:03:53そういう奴ほどソースを眺めているだけで読んではいない。
ソースは斜め読みをしてはいけない。
0053デフォルトの名無しさん
2006/11/04(土) 20:28:550054デフォルトの名無しさん
2006/11/04(土) 20:52:32あなたの言う眺めると読むの違いは?
0055デフォルトの名無しさん
2006/11/05(日) 03:10:09斜め読みでも何をやっているのか、おおよその見当はつく。
逆だといくら努力してもわからない。
建築わからない人が構造計算のプログラム見てもしょうがないとかそういうことだろ。
0056デフォルトの名無しさん
2006/11/05(日) 04:23:51眺めるというのはただソースをスクロールさせているだけで
脳が知らず知らずのうちにソースを拒絶している状態。
読むというのは一字一句まで読む位の覚悟と集中力で
8時間くらいぶっ通しでソースを頭に叩き込む作業。
0057デフォルトの名無しさん
2006/11/06(月) 00:24:220058デフォルトの名無しさん
2006/11/29(水) 17:59:480059デフォルトの名無しさん
2006/12/05(火) 00:58:5010段とか上下しつつデータが分割されたり再構成されるフローの
イメージがぴしっと立ち上がった時。
過程の90%位までは「あれがこうなってそうなるとああなって・・・」の
各々の処理フローが脳内で交差してるだけなのに、臨界点を過ぎると
パズルのピースの様にスパスパはまる。で、そこから設計意図(そもそも
なぜその処理・実装が選択されてるのか)が逆に理解できたら
「ソースが読めた」ということだと思う。「ここはこうなりゃいいのに」と
思った所が次のリリースできっちり直ってきたりすると気持ちいい。
0060デフォルトの名無しさん
2007/02/14(水) 06:40:040061デフォルトの名無しさん
2007/02/14(水) 07:31:47コメント入れとけといいたい
0062デフォルトの名無しさん
2007/02/14(水) 07:53:41「まだ動かないけど」なんてさわやかな笑顔で
いきなりキングファイル5冊とか渡されるんだぜ?
0063デフォルトの名無しさん
2007/02/14(水) 13:46:05英語圏の人に渡したら文字化けしたまま読んでたんだけど
その人は「文字化けしてる」という事実にすら気付いていなかったようだ
0064デフォルトの名無しさん
2007/02/14(水) 13:54:160065デフォルトの名無しさん
2007/02/14(水) 22:29:190066デフォルトの名無しさん
2007/02/15(木) 01:46:070067デフォルトの名無しさん
2007/02/15(木) 02:18:13// どうコメントすればいいかわかりません!
こうですか?わかりません!><
0068デフォルトの名無しさん
2007/02/15(木) 07:54:19#つまんなすぎっ!
0069デフォルトの名無しさん
2007/02/15(木) 11:33:45・思いつきアルゴリズムの処理の前に、軽く流れを説明するコメント。
・関数の前には一行要約。
・定石にそぐわない処理に理由を説明。
例えばmallocの戻り値をチェックしない等。
不必要なコメント:
・ブロックの最後に、ブロック先頭の文を添える。以下例。
if(C) {
} // if(C)
・式や文単位で処理の内容を説明するコメント。以下例。
if(C) // Cは真か?
fprintf(fp, "('A`)"); // fpに顔文字"('A`)"を出力。
・自分語り。「ここはこのように書くべきだ!」等。
0070デフォルトの名無しさん
2007/02/15(木) 12:32:080071デフォルトの名無しさん
2007/02/15(木) 15:08:200072デフォルトの名無しさん
2007/02/15(木) 15:14:38> 必要なコメント:
> ・関数の前には一行要約。
関数自体や引数にコメントがいらないくらい、
適切な名前が付けられているのがベストだと思う。
0073デフォルトの名無しさん
2007/02/15(木) 16:19:10貧相な環境でソース解析する時に、処理内容が想像しやすい関数名にどれだけ助けられたことか。
>>69 ミス訂正。
×定石にそぐわない
○定石から外れた
0074デフォルトの名無しさん
2007/02/15(木) 22:17:20いやんのびたさんのエッチ
=end
0075デフォルトの名無しさん
2007/02/22(木) 01:02:45やってほしい。
おおざっぱな処理目的と図に描ける程度のデータの説明があれば、
後はモジュール冒頭とか中核コード周辺の要所要所に何でそんな処理を
しているのかとか、なんでその方法を選択しているのかとか、
どういう経緯で現在の形に至ったのかとかコードに直接関係しない
背景情報を書いておいてほしい。
そのコードに関する背景なら自分語りでもいいので冗長なまでに
書いた上で、TODO/FIXME/WONTFIX/BUG/INFOとかタグ打ちしておいて
貰えれば意図をつかんだり斜め読みする時助かる。処理内容の
説明は簡単にコードと乖離するけど、背景情報は変わらないから。
0076デフォルトの名無しさん
2007/03/18(日) 21:51:250077デフォルトの名無しさん
2007/04/07(土) 19:36:420078730
2007/04/07(土) 20:36:33日本の国語教育の弊害だな。
相手の意図を汲み取るより
自分の意図を的確に伝える教育が必要だ。
0079デフォルトの名無しさん
2007/04/08(日) 10:47:040080デフォルトの名無しさん
2007/04/19(木) 14:16:51「この世の中で、最も理解しがたいのは、過去の自分のプログラムである」
0081デフォルトの名無しさん
2007/04/23(月) 19:02:020082デフォルトの名無しさん
2007/04/23(月) 19:39:540083デフォルトの名無しさん
2007/04/24(火) 22:14:54なぜか途中でリリース版になりました。
後を引き継いだ人、がんばって!
0084デフォルトの名無しさん
2007/04/25(水) 00:13:38読むんじゃねーよスケベ
0085デフォルトの名無しさん
2007/04/25(水) 00:54:49そうじゃない会社ならソースファイルは個人の創作物だとか言い張って他人に
見せないってことはできなくはないだろうな。裁判では多分確実に負けるだろうけどw
0086デフォルトの名無しさん
2007/04/25(水) 10:56:59あるあるw
0087デフォルトの名無しさん
2007/05/10(木) 02:33:56ソースのコメントを全て削除しろw
コメント部分はプログラムではない。
自分しかわからない用語を沢山つかえ!
0088デフォルトの名無しさん
2007/05/11(金) 05:55:52今日の自分は明日の他人なんだよ
ソースを読みやすく書くのは他人のためじゃなく自分のためだよ
保守も含めてプロジェクトに関わった経験長ければ長いほどそうなる
汚くて言いと云ってる香具師は短期プロジェクトしか知らないか
作りっ放し逃げっ放しだったんだろうな
0089デフォルトの名無しさん
2007/05/11(金) 06:09:410090デフォルトの名無しさん
2007/05/11(金) 06:21:37全力で喰いついた方が盛り上がるだろ
0091デフォルトの名無しさん
2007/06/09(土) 14:29:200092デフォルトの名無しさん
2007/06/09(土) 15:32:24ひんと:偽装派遣
0093デフォルトの名無しさん
2007/06/09(土) 16:38:47書く経験が相当無いと読めないんと思うんですが間違ってますか?
少なくともAPI関数とかライブラリの機能何て何度か使った経験が無いと
それがどんな挙動するか分からないし…
0094デフォルトの名無しさん
2007/06/09(土) 18:38:330095デフォルトの名無しさん
2007/06/09(土) 18:40:20いったんそれのテストプログラム作って動作確認しちゃうんですが
それじゃまずいって事ですよね?
0096デフォルトの名無しさん
2007/06/09(土) 18:43:490097デフォルトの名無しさん
2007/06/09(土) 18:46:500098デフォルトの名無しさん
2007/06/09(土) 19:10:560099デフォルトの名無しさん
2007/06/09(土) 19:16:38一応マクロとか作って手でテストコードを0から書く手間は減らしてるから
そんなに面倒でもないんだけど、理想はそんな事せずにすらすら読んでいきたいもんなんだ
やっぱ慣れていくうちに変わるもんなんだろうか?
0100デフォルトの名無しさん
2007/06/09(土) 19:46:580101デフォルトの名無しさん
2007/06/09(土) 23:58:28データ構造から攻めるのは非常に有用。
あとは、最初はモジュール構成とかデータ構造とか機械的に目標を決めて着手す
るけど、なるべく早くピンポイントで知りたいことを決める。
0102デフォルトの名無しさん
2007/06/10(日) 00:29:48思うことは、「…さすがに限度があんじゃねえの?」
謎の計算式に、意図の取れない条件文。
引数、戻り値、定義値は一切使わず、
ローカル変数は可能な限り使いまわされる。
もう本当勘弁してください。読めません。
…いや、まあ、一緒に働いてる人は
それでちゃんと仕事できてるんだから
俺の力が足りないだけなんだけどさ。
0103デフォルトの名無しさん
2007/06/10(日) 00:42:27カッコエエ
人が変ったら保守できなくなって
破綻するけどな普通
よほど待遇いいのだろうか?
0104デフォルトの名無しさん
2007/06/10(日) 01:45:48解析の入り口さえつかめれば、トップダウン&ボトムアップの繰り返しで大体理解できる。
最近配属されたところ、ライブラリ名がLIB0010,LIB0020, でその中の関数名がLIB0001() 。
引数はP01,P02... 。こういうプログラムが実在するとはじめて知りましたw
0105デフォルトの名無しさん
2007/06/10(日) 01:59:300106デフォルトの名無しさん
2007/06/10(日) 02:07:000107デフォルトの名無しさん
2007/06/10(日) 02:10:430108デフォルトの名無しさん
2007/06/10(日) 02:21:15インクルードガードは問題ないだろ。
0109デフォルトの名無しさん
2007/06/10(日) 11:44:53それどこの不治?
0110デフォルトの名無しさん
2007/06/10(日) 11:49:33と昔のどっかのスレで見ました
0111デフォルトの名無しさん
2007/06/13(水) 22:02:58釣りにしてももうちょっと真実味がある内容のほうがいいんじゃないか? ・・・ってきっと本当なんだよな(鬱
0112デフォルトの名無しさん
2007/06/14(木) 15:14:210113デフォルトの名無しさん
2007/06/15(金) 15:36:00かける物だ
by,>>113
0114デフォルトの名無しさん
2007/06/15(金) 17:24:050115デフォルトの名無しさん
2007/06/15(金) 17:48:280116デフォルトの名無しさん
2007/06/15(金) 18:08:040117デフォルトの名無しさん
2007/06/15(金) 23:36:54天才?
0118デフォルトの名無しさん
2007/06/15(金) 23:39:58こっちのが笑えたけど
0119デフォルトの名無しさん
2007/06/16(土) 00:19:110120デフォルトの名無しさん
2007/06/16(土) 00:22:420121デフォルトの名無しさん
2007/06/16(土) 01:14:070122デフォルトの名無しさん
2007/06/16(土) 01:20:300123デフォルトの名無しさん
2007/06/16(土) 01:59:370124デフォルトの名無しさん
2007/06/16(土) 08:18:260125デフォルトの名無しさん
2007/06/16(土) 21:18:19#program onceもしらんとは
0126デフォルトの名無しさん
2007/06/16(土) 22:22:58移植性って知ってる?
0127デフォルトの名無しさん
2007/06/17(日) 01:28:250128デフォルトの名無しさん
2007/06/17(日) 06:01:100129デフォルトの名無しさん
2007/06/17(日) 11:35:210130デフォルトの名無しさん
2007/06/17(日) 13:22:24,, - ―- 、
,. '" _,,. -…; ヽ
(i'"((´ __ 〈 }
|__ r=_ニニ`ヽfハ }
ヾ|! ┴’ }|トi } そうかよかった時間があるんだね>>129君
|! ,,_ {' } ではさっそく僕と
「´r__ァ ./ 彡ハ、 いっしょにお風呂にはいろう
ヽ ‐' / "'ヽ
ヽ__,.. ' / ヽ
/⌒`  ̄ ` ヽ\_
/ i ヽ \
,' } i ヽ
{ j l }
i ヽ j ノ | } l
ト、 } / / l | .|
! ヽ | ノ j ' |
{ | } | l |
ヽ | i | \ l /|
{ | l | | / |
l ! | l / |
0131デフォルトの名無しさん
2007/06/17(日) 21:36:46#program once
0132デフォルトの名無しさん
2007/06/17(日) 21:45:010133デフォルトの名無しさん
2007/06/17(日) 21:49:500134デフォルトの名無しさん
2007/06/19(火) 22:10:32■ このスレッドは過去ログ倉庫に格納されています