2

業界での経験がほとんどない初心者のプログラマーとして、私が慣れていない多くのテクノロジーに基づいた新しいプロジェクトを学ぶのはイライラします。私が取り組んでいるプロジェクトには、15000行のコードを含む約150のクラスがあり、経験のないソケットとセキュリティプログラミングに重点を置いているため、どこから始めればよいかわかりません。

限られたドキュメントと手元にあるヘルプで、自習はこのプロジェクト全体を理解しようとする私の最高のリソースです。本当に集中すべき重要なクラスを見逃しながら、製品の重要でない機能を学ぶのに多くの時間を費やしていることに気付くことがよくあります...時間がかかる主な理由は、JavaAPIを頻繁に調べなければならないことです。小さなコードブロックを理解するために数分ごとに参照してください...私は最終的に試行錯誤を通してそれを学ぶと確信していますが、私が使用できるいくつかの有用なアドバイスとガイドラインがあると確信しています:)

4

6 に答える 6

2

最初は、コードのすべての行を理解する必要はありません。

上級開発者を 30 分間借りて、アーキテクチャの鳥瞰図を提供するように依頼してください。コードの主要なブロックは何か、それらがどのように相互作用するか、ユーザー/使用状況がシステムを介してデータを駆動する方法などです。

次に、(説明の後で) モジュールのソースを調査することに時間を費やしてください。

私には、ソースコードの大きなブロックを印刷して、その印刷物で床を覆うという (おそらく非常に奇妙な) 習慣があります。次に、ひざまずいてペンで床を這い回り、文字通り点から点へと矢印を描き、セクションの周りを描くことができます。コードを 2D で表示すると、物事を理解しやすくなります。また、フローをより詳細に理解するのに役立つ大量のメモを作成することもできます。

やがて、コードを特徴付けるイディオム (様式化されたやり方) を認識し始め、最終的には作成者の考え方に通じる道を見つけるでしょう。そうすれば、すべてがずっと簡単になります。

床に横たわっている間、ラップトップとグーグルを手元に置いて、遭遇した奇妙なものを解読できるようにします. また: 色付きの蛍光ペン FTW.

ソースを理解するために (少なくとも) 2 つのパスを作成します。最初は細部を理解しようとしないでください...「動き」の感触をつかむようにしてください-データがどこに行き、実行がどこに行くのか。これにより、コードのメンタル モデルのフレームワークが得られます。次回に進むときは、詳細を分解し始めることができますが、トップダウンのアプローチは常に私にとって物事をより簡単にします.

テクノロジー、言語、または環境に慣れていない場合は、手に取れる本が周りにあるかどうかを確認してください。現実の世界には、コンピューターの画面に収まるよりもはるかに多くの目に見えるスペースがあり、ラップトップに Google があり、本に構文/ライブラリ参照があり、身の回りにあるコードが (少なくとも私にとっては) プロセス全体を構成しています。非常に簡単です。

于 2009-08-07T19:00:38.893 に答える
1

ペアプログラミング。経験のある人と一緒にコードに取り組んでください。彼または彼女を助けてください。彼または彼女にあなたを助けてもらいます。経験豊富な開発者のコ​​ードに取り組むと、経験豊富な開発者はそれらを知っているため、コードの重要な側面のいくつかを学ぶことができます。自分の行き止まりや落とし穴を追い求めるのではなく、経験豊富な開発者にかなり近いソフトウェアのメンタル モデルを開発します。ペア。

于 2009-08-07T19:01:05.443 に答える
1

コードベースの学習には時間がかかります。一般的なルールは、新しい開発者がコード ベースに慣れるまで約 3 か月だと思います。

本当に役立つのは、実験して何が起こるかを確認し、API に慣れることだけです。

于 2009-08-07T18:56:21.320 に答える
1

いくつかのことが思い浮かびます:

  1. 少し時間をかけて、JDK とその標準クラスに慣れてください。頭のてっぺんから知識を得るには時間がかかり、API 仕様をさらに確認する必要があります。
  2. プロジェクトでフレームワークやライブラリを使用している場合、プロジェクト サイトの「イントロ」ページを読むことで、これらがプロジェクトにもたらすものの概要を把握できることがよくあります。プロジェクトで使用されているテクノロジーのいくつかに慣れていないことがフラストレーションの原因であると述べたので、これは特に役立つと思います。
  3. 機能の統合または回帰テストがある場合、これらは多くの場合、プロジェクトへの主要なエントリ ポイントが何であるかを把握するための良い方法です。プロジェクトの高レベルの機能をよく理解していると、詳細を理解しようとするときに役立ちます。
  4. チームにメンターを見つけてコツを教えてもらえれば、おそらく大いに役立つでしょう。

あなたが言及したプロジェクトの規模に基づいて、これは生産コードへの穏やかな導入になると思います. 今は大きく見えるかもしれませんが、15000 行のコードは、キャリアの過程で最終的に取り組む可能性のあるプロジェクトの小さな側面です。

また、これは必然的にあなたにとって学習経験になることも忘れないでください. 業界で初めてのプロジェクトの 1 つであるため、慣れるまでに少し時間がかかる場合があります。なじみのないコード ベースでライブラリやフレームワークのスープを泳がなければならないのは、あなたが初めてではないことに注意してください。

幸運を!

于 2009-08-07T19:29:15.450 に答える
0

テストがある場合は、それらを勉強してください。そうでない場合は、いくつか書いてください。

于 2009-08-07T19:05:01.410 に答える
0

クラス名、メソッド名、およびメンバー名のみを含む、教師が「クラス図」と呼んでいたものを印刷することをお勧めします。次に、テーブル/壁にシートを配置し、どのクラスがどのクラスと対話するか、どのメソッドがどのメソッドと対話するかなどを調べます。クラス/メソッド間に矢印と接続を作成します。コードの感触をつかんでみてください。最初に、コード行が何をするかを理解することは重要ではありませんが、基本的なデータ フローを理解するために、メソッド/クラスが何をすべきかを理解することは重要です。

于 2013-07-24T13:59:43.530 に答える