約1年程前からシステムエンジニアの仕事に就きました。
一番不思議なのは、ベテランSEの人たちは、ソースコードを見て仕様がわかるということです。
例えば私なら、配属されたばかりの部署でソースコードを読んでみて、書いてあるソースを文法的にであればわかるのですが、それが業務としてどうなっているのか、言葉で説明しろと言われたらしどろもどろになってしまいます。
しかし、ベテランSEの人たちは皆、それをやってのけます。
新しい業務に携わるようになって2,3日目ぐらいで、全ての業務がわかったかのようなしゃべり方をするし、実際にそれなりにわかっています。
そういう人に何を見ているのかきくと、ソースコードを読む、という人がほどんどです。
しかし私は、文法はわかっても、仕様書も無いのに、ソースコードから業務まではわかりません。
SEのベテランの皆さん、業務が理解できるソースコードの読み方を教えて頂けないでしょうか。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
#1さんの書かれているとおり、蓄積してきた経験…というモノではないかと。
さすがに、私は2~3日では無理ですね。
2週間くらい欲しいところです。
私の場合、解析は下記の要領で。
まず、一通り目を通す。
その際に関数名などをチェック。呼び出し元などの関係も軽く見ておく。
一通り見たらメインループを探す。メインループ見つけたら、そこより前に動いているハズの初期化処理を探して必要な初期化処理の内容を把握する。
後はメインループから状態を見ながら分岐処理している部分を追いかける。
テキストエディタなどの行マーク(関数コール追いかけるとき)とか、調べた内容をメモしたり…とか。
重要そうな処理を見つけると、ポイントとしてメモに追加してみたり。
デバッガで追うことができる場合は適当にブレークポイントで止めてみたり、変数の内容やコールスタック見てみたり…
場所によってはステップ実行してみたり。
ログ出力があればログから動作を追いかけてみたり……
そんな感じで7~8割のコードが確認できればおおよそ理解できたかな…と。
あとは必要に応じて同じ手順で調べていきます。
# 大半は解析済みですから残りを調べるのはそれほど手間ではありません。
関数コールとか追いかける際にgrepなど多用するのでテキストエディタが20とか開かれていたりして、だんだんカオスに……。
# 上記の解析中に動作不明なロジックとか見つけたら、とりあえず質問用に書き出しておきます。
# たまにバグではないか?というモノ見つけたりしますけど。
## 問題ないのか?と思って後で調べると制御の行かない死にコードだった…なんてこともよくありますが。
エラー処理なんかがあった場合は局所的に対処内容を確認してメモに追加。とか……
色々と参考になるアドバイス、ありがとうございます。
一通り目を通す、というのは重要そうですね。
一通り見ても記号にしか見えなくてすぐ細部を見てしまうのですが、これがまず、いけない気がしました。
明日からアドバイス頂いた手順で早速やってみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- オープンソース IT用語、ソースとオブジェクト、改変と翻訳と翻案の違いなど どのようにりかいすればよいのですか 1 2022/09/09 10:02
- 転職 バックオフィス業務とは...? 6 2023/01/12 14:06
- 会社・職場 私の同期(現在お付き合いしている)男性の仕事に対しての考えが理解出来ず悩んでいます。 宿泊業のスタッ 5 2022/09/10 23:22
- 経済 阿武町の4630万円問題。「精通者は異動し不慣れな新人にやらせた結果です」に関して。 4 2022/05/20 18:54
- 事務・総務 契約外のお仕事では...? 3 2022/06/19 11:59
- 事務・総務 営業事務、契約外のお仕事? 5 2022/06/18 22:19
- 転職 新卒3年目 異業種への転職について 5 2023/03/03 08:10
- IT・エンジニアリング SEとWebエンジニアの業務内容の違いについて 3 2023/06/22 23:23
- 新卒・第二新卒 辛くてもう限界です。助けてください… 3 2023/05/11 22:30
- 会社・職場 職場で余り者扱いを受けていて辛いです。当方、調剤薬局の事務員5年目の者です。うちの薬局は複数の店舗を 4 2022/11/08 15:13
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンに詳しい方教えて下さ...
-
CSVファイルで誤って上書き保存...
-
回復ディスクを別のPCで復元で...
-
KADOKAWAって今、システム障害...
-
お名前(姓)」には「カタカナ(...
-
システムで表示させない方法が...
-
CSVファイルのマッピング処理の...
-
量子コンピュータとか、量子コ...
-
システムUIって何?
-
コンピューター名について
-
一瞬にしてシステムデータが20G...
-
システム開発(開発と運用の分...
-
アップルミュージックバックグ...
-
システムにインターネットから...
-
Switchの画面に ほかのコントロ...
-
CSV が読み取り専用になる。
-
業務で社内システムを使用する...
-
copilotとはなんですか?
-
富士通パソコンのFujitsuという...
-
グリコが「システム障害」で大...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
業務が理解できるソースコード...
-
fessの検索対象を動的に変更
-
VCで作成するDLLからVBのピクチ...
-
【Excel関数】特定の文字を別表...
-
帰還率β
-
エクセルで打刻(タイムレコーダ)
-
1から100までの自然数で、2.3.5...
-
文字変換において、m3(立方)の...
-
ハガキ宛名の住所の数字を漢数...
-
エンジン発電機をインバーター...
-
マージナル不良とは?
-
例えば192.168.1.10はプライベ...
-
PowerPointで比例記号を入力す...
-
エクセルで住所の数字を漢数字...
-
DocuWorks 文字認識 検索でき...
-
トランジスタの過渡応答
-
和暦を西暦に変換する方法
-
EXCEL VBA 記号の削除
-
メールの文字化けについて
-
9文3分、10文という足袋のサイ...
おすすめ情報