他人が書いたコードを解析/デバッグするには [無断転載禁止]©2ch.net

1デフォルトの名無しさん2017/06/01(木) 19:08:06.63ID:UQuU8Ni9
・自社/他社/OSS問わない

一番困るのは読み込みのパス依存性問題関係なしに、
「読み込んだもの自体の内部で完結したエラー」が出たときだ。
俺が考えられる方法として、

・書いた人に電凸/メール凸
 →一番手堅いが連絡がつくかどうかはわからない。
  答えてくれるかも分からない。

・エラーメッセージをググる
 →これは注意しないと、関係のない方向に簡単に着眼点がずれていってしまって
  実はあまり効果的じゃない気がする。

・とりあえず動くまで、エラーの出たコード周りをコメアウトで削る。
 →削った結果、得られた不完全な結果を分析して、手探りで削ったコードを再生
 していく。

・エラーがでた行を包括するメソを写経してから意味を考える。

こんなところか、他に何か方法ある?

2デフォルトの名無しさん2017/06/01(木) 20:09:13.94ID:0EtOkFee
設計書を探す
当時の責任者を追求する

3デフォルトの名無しさん2017/06/01(木) 20:12:16.59ID:0EtOkFee
当時の責任者がいる場合は設計書に記述のない処理は全部設計書を書かせる

逃さん

徹夜してでも書いてもらう
依頼した会社が残ってる場合も調査してやってもらう

逃さん

徹夜してでもやってもらう

4デフォルトの名無しさん2017/06/01(木) 20:46:32.29ID:UQuU8Ni9
>>3
発想がSIlerとかのもろに日本人思考だな。
スレタイはあくまで解析/デバッグなんだってば
そんなの無視されたら終わりだよ。
後付けで書いたドキュメントなんて逆に撹乱情報になりかねないよ。

5デフォルトの名無しさん2017/06/01(木) 21:33:33.60ID:YEjlz4ju
>関係のない方向に簡単に着眼点がずれていってしまって
エラーメッセージを信用しすぎなければこれは起きない
メッセージとは全然関係ない場所でバタフライ効果のようにエラーが出ていることをどう発見するかが腕の見せ所

6デフォルトの名無しさん2017/06/02(金) 01:46:24.70ID:uW9UgDbU
>>4
少なくともやらせることで自分以外の手を動かせるじゃん
自分でもやるかどうかはおいといてね
まず一手並列で打っておくべきだね
組んだ本人が捕縛できればそれに越したことないし

7デフォルトの名無しさん2017/06/02(金) 01:53:06.39ID:uW9UgDbU
そもそもどう動くのが正解か資料あるの?
それに対して現在どう動いてるの?
って資料を作成
当時の納品時の試験資料とかもあったらいいね
具体的な試験方法とか記述が残っていればもらったようなもんじゃん
これもないとすると前任が何やってるかわからんぐらい無能で怒りがこみ上げてくるね

8デフォルトの名無しさん2017/06/02(金) 01:59:26.79ID:uW9UgDbU
俺はこういうテキトーな仕事するやつ逃さないよ
現在受け持ちの仕事やってたとしても全部あるべき形にしてもらう

とこれらの手が使えないときって手がけた会社が倒産してるときぐらいしかないけど
まだ何を想定したい?

9デフォルトの名無しさん2017/06/02(金) 14:43:41.02ID:5nUmHYVP
社内警察こわいなぁ...

10デフォルトの名無しさん2017/06/02(金) 17:55:35.13ID:OWzBxuDw
>>1
頭の中に当時の環境と開発者をエミュレートする仮想マシンを立ち上げて、何でそんなコードになってるかを考える。
正しい処理がわかっても何でそうしたのか分からない時は、心底そいつを憎みながら、全部書きなおす。

11デフォルトの名無しさん2017/06/02(金) 18:26:43.93ID:SHYOfSqU
いいやもう脳内と言わず
vmware使えよ

12デフォルトの名無しさん2017/06/02(金) 19:20:59.79ID:OWzBxuDw
>>11
まだvmware上で動く仮想人格が開発されてないので

13デフォルトの名無しさん2017/06/02(金) 19:24:52.79ID:DX6kcpRl
>>12
仕様決まってるの?

14デフォルトの名無しさん2017/06/02(金) 22:11:24.77ID:5nUmHYVP
嫁仮想化技術はまじで便利やな
未だに物理嫁のやつとか情弱すぎ

15デフォルトの名無しさん2017/06/02(金) 23:02:37.20ID:wGtE+NYR
スタートレックのあの部屋なら完全再現できる

16デフォルトの名無しさん2017/06/06(火) 22:30:51.30ID:y0fPNW2R
コードリーディングで失敗するポイントとして
よくわからないコードをあくまでも外見上のパターンで覚えようと
おもって写経したりするときに落とし穴があって、
「同じ意味」のコードに対して、幾つかの違う書き方があって、
とくに「省略形」がなんかがあると、同じ意味なのに全く外見が
異なるコードにおいて「同じ意味だ」ということを見抜きにくくなってしまう、
さらに「省略形と省略形じゃないコードの混合」も絡んでくると、
単純にパターン認知だけで理解をしようとするのが困難になって、
いわゆるゲシュタルト崩壊になってしまいやすいんだよな。

でも厳格なコーディング規約で縛られてもいない限り他の人が
各コーディングスタイルなんて各自自由だからどうしようもないわけだが
・・・

17デフォルトの名無しさん2017/06/07(水) 02:42:09.08ID:mc8OI9XS
>>1はエラーの解決法聞いてるし、スレタイと全く関係なさそう・・・

18デフォルトの名無しさん2017/06/08(木) 02:12:02.59ID:ueYAhQD8
たぶん、デバッガの有効利用だが下準備も必要

下準備:(何とかして)最上位の関数に引数ぶっこむだけのメソッドを用意する
TDDのアレに近いが、とにかくちょろっとタイプするだけでアヤしいメソッドに引数ぶっこんで
実行させるだけのクラスなりなんなりがあるとすげぇ楽

画面に手入力していってテスト、なんてのはゴミコード相手じゃ絶対無理
ここは自動化しなければ死ぬ

・エラーが出てるのはどこか、を二分割方式で調べる
たとえばクソながい1000行のコードがあるなら

真ん中でブレイクを仕掛ける

前500行の結果たぶんコレだろう、って値になってないなら前が間違ってる
前が問題ないようならたぶんうしろが間違ってる
数百行のルーチン噛んだ後に5000行のコードが噛んでるクソったれでも考え方は同じだが
あまりにもわからんならわかる単位で前から切る感じか?

書いた本人が直せなくなったゴミコードを当人に成り代わって直す仕事してた時はそんな感じでやってた

19デフォルトの名無しさん2017/07/25(火) 03:58:15.56ID:iVOWtKjX
習うより慣れろ

20デフォルトの名無しさん2017/08/29(火) 15:36:53.54ID:JnW2kyj+
スレチかもしれませんが質問です。
爆サイというサイトで「なりすまし防止」でパスワードを入れたんですが、解析されて同じトリップを相手に使用されました。
気持ち悪くて怖くなり、それ以来やっていません。
62^4=14776336通りもあるパスワードをどうやって解析したんでしょうか?
もし解析ができるなら、やり方までは聞きません。
解析ができるのかできないのかを知りたいです。お願いします。

21デフォルトの名無しさん2017/08/29(火) 16:42:05.17ID:ix5t/uXn
1千万ぐらいだったらすぐじゃないの?

22デフォルトの名無しさん2017/08/29(火) 20:36:18.04ID:I7TvgsKU
>>21
ありがとうございます。
では2ちゃんのトリップも簡単に解析できてしまうということなのでしょうか?

23デフォルトの名無しさん2017/08/30(水) 04:54:45.26ID:J2liQNxB
>22
2chのサポータはIPを見れるからね。他にもいろいろ方法があって、その気になれば
特定できる。ワッチョイのスレに書き込んでいたりすると繋がるから一発だね。

24デフォルトの名無しさん2017/08/30(水) 12:27:59.72ID:FcBhm7qE
>>23
ありがとうございます!

25デフォルトの名無しさん2018/01/30(火) 20:16:48.44ID:9Fb3aKxw
新しい案件でまさに他人のコード読まなきゃいけないんだが、
読んだ結果をドキュメントとしてアウトプットしたい。

て場合に一般的にどんなドキュメント書けばいいかな?
ドキュメント自動生成ツールにかけられるコメントとか書いたりするのが一般的かな?

新着レスの表示
レスを投稿する