
他の人によって作成されたコードを扱うことは、開発者にとって基本的なスキルです。 1年を与えてください。他の人のコードはあなた自身のものでさえあるかもしれません。
今日は、他の人のコードを処理する方法、レガシーコードを効果的に読む方法についての最良のアプローチをいくつか見ていきます。カバーするのは簡単なトピックではありません。
プロセスを簡単にするために、次の領域を通してアプローチをフレーミングしています。
操作
- を観察します
- テストを実行
- 新人向けに設計されたバグを修正
- 利用可能なリソースを見つけます
- 適切なIDE
を使用します
- 本とブログを読む
- ドキュメントに貢献します
- 思いやりがあります
-
始めましょう。
キーテイクアウト
他の人のコードを理解することは、開発者にとって基本的なスキルです。このプロセスを容易にするために、開発者はリード開発者や他のチームメンバーと対話し、コードベースを観察し、慣れさせ、テストを実行し、新人向けに設計されたバグを修正する必要があります。
開発者は、メーリングリストのアーカイブ、プロジェクトのドキュメント、バージョン制御履歴など、利用可能なリソースを利用する必要があります。優れたIDEは、他の人のコードを理解し、協力することにも有益です。
- 本、ブログ、その他のリソースを通じて他の人から学ぶことは、開発者が一般的な間違いを回避し、スキルを向上させるのに役立ちます。ドキュメントに貢献することは、貴重な学習体験でもあります。
他の人のコードを操作する際には、思いやりがあることが不可欠です。さまざまな開発者がさまざまなアプローチとスキルレベルを持っている可能性があることを理解することで、より敬意と生産的な職場環境を促進できます。
-
操作-
リード開発者は誰ですか?彼らはどこにいますか?それらはあなたのオフィスで直接利用可能ですか?もしそうなら、彼らと話をしてください。これらの人々は、プロジェクトに関する最高の知識源であるべきです。 -
あなたはリモートワーカーですか、それともフリーランサーですか?プロジェクトや会社にはどのような通信チャネルがありますか? IRC、Slack、Twitter、電子メール、Trelloなどの開発者は他のものですか?
あなたが彼らがいることを確認してください。 Zend Framework 2でしばしば平準化されている批判は、積極的なコミュニティがないということです。 IRCチャネルは毎日アクティブであるため、そうではありません。したがって、開発者や他のチームメンバーがいる場所であることを確認してください。
を観察します
最初にプロジェクトを開始するときは、自分で簡単にしてください。最初からすべてを知ることを期待しないでください。推定値はさまざまですが、開発者がそのコードベースで本当に生産的と見なされる前に、コードベースの3週間から3か月の作業を聞いたことがあります。
一部の人々は、どういうわけか、ただ飛び込んで即座に生産的になることができるという見当違いの認識を持っています。おそらく、彼らはソードフィッシュのようなハリウッド映画をあまりにも多く見たことがあるでしょう。
コードベースは、すべての開発者のアイデア、
ここに、開始する5つの良い方法があります:
時間をかけてすべてを踏んでください
質問
テストのインストールをセットアップ
テストのインストールを使用しよう
コードのコメントと関連するドキュメントを読んでください-
- 自分自身に難しくないでください。良いスタートを切るチャンスを与えてください。しばらくすると、アプリケーションがどのようにまとめられたかをよりよく理解し始めることができます。
この時点で、他の開発者や上級開発者に質問をすることで、より速く移動し始めます。コードベースを通過したときに、質問のリストを作成していたでしょう。 -
時間をかけて、他の開発者に質問や質問への回答を求めます。恥ずかしがらないで、飛び込んで、必要な答えと入力を得る。
- テストを実行
-
優れたコードベースにはテストが必要です。そうでない場合、それは良い兆候ではありません。それは陰湿である必要はありません - それはテストを実装したことがない開発者や開発チームである可能性があります - しかし、私は何もなかったら少し心配するでしょう。
テストがある場合は、実行します。彼らは通り過ぎますか?誰も実際に実行できないと思われる一連のテストを備えた複数のソースコードベースに出会いました。彼らは最新の状態に保たれましたか?
今、あなたはそれらを実行しようとしました、それらをよく読んでください。彼らがよく書かれている場合、彼らはアプリケーションの仕組み、それが何をするか、そして異なるコンポーネントがどのようにぶら下がっているかを説明する必要があります。それは非常に洞察力に富んでいる可能性があるので、これを行うために時間をかけてください。
新人向けに設計されたバグを修正
開始するもう1つの簡単な方法は、プロジェクトの新人またはよりジュニア開発者を対象としたバグを修正することです。 2つの良い例は、joind.inとowncloudです。後者のバグトラッカーは、以下のスクリーンショットに表示されます。
これらのチケットが明確にマークされていることがわかります。読み取りスルーをして関与します。これらのバグはあまり技術的ではありませんが、プロジェクトを容易にし、自信と知識を築くことができます。
栄光と技術的な複雑さは自我にとって素晴らしいことですが、物事がうまくいかないか、それほど時間がかからないとき、彼らはあなたの誇りと熱意に何の好意を与えません。小さく始めて、あなたの道を簡単にしてください。
利用可能なリソースを見つけます
コードベースを引き継ぐとき、または既存のチームに入るときにできる最善のことの1つは、できるだけ多くのリソースを集めることです。何を探すべきかわからない?開始するためのいくつかのアイデアがあります:
- メーリングリストアーカイブにアクセスできますか?
- プロジェクトや会社のwikiはありますか?
- どのプロジェクトドキュメントが編集されましたか?
- バージョン制御履歴を読んでもらいましたか?
- 貢献者に意味のあるコミットメッセージを書いてもらいます一貫して?
適切なIDE
を使用します
良いidesは、金のことわざの重みの価値があります。あなたがruby、python、go、java、phpまたは他の言語開発者であるかどうかを見つけてください。選択した言語に特化した、または適切にカスタマイズ可能な優れたIDE。
私は一部の人々が純粋主義者であり、vimまたはemacsを好むことに感謝しています、それは大丈夫です。しかし、私はIDE愛好家であり、選択したIDEはphpstormです。 Eclipse、Textmate、Sublimetext、VisualStudioなど、他にもたくさんあります。
IDEを見つけたら、提供する機能の使用を開始します。ここで特にphpstormに言及しますが、これらの原則を選択したものに適用します。
コードを介してステップを開始し、標準に準拠しているかどうかを確認します。これには、PHP PSRSなどの正式な基準である必要はありません。しかし、開発者は一貫したスタイルに従っていますか、それともあちこちにあります。 MESS検出器やサイクロマティックコンプレックステスターなどのツールを使用して、コードの品質を測定し始めます。
コードドキュメントはありますか?もしそうなら、コードを検査するときにIDEがそれを利用できるはずです。次に、XhProf、Xdebug、Zend Debuggerなどのステップスルーデバッガーを使用し、アプリケーションを実行して、その仕組みを確認します。
それは何をしますか?どのようなデータ構造を作成し、使用しますか?コードを不必要にブロックするのは繰り返されますか?ここではカバーできる以上のものがありますが、コードを通過するときにIDEが提供する機能を使用して、人生を楽にします。
読んで学習
これは私にとって個人的には際立っています。学習すればするほど、成長することができ、その結果、やることができます。私たちは、私たちが行っている道を踏んだ最初の人ではありません。多くの、他の人が私たちの前に来て、私たちが犯す可能性のある同じ間違いをたくさんしました。
少し時間を節約し、彼らから学ぶことによって彼らの困難な経験に正義を行います。優れた開発者の多くは、著者やブロガーでもあります。
私の個人的なお気に入りの1つはMartin Fowlerです。彼は、リファクタリングのトピックに関する素晴らしい本も出版しています。また、デザインパターンなどの優れた本や、sourcemaking.comなどのウェブサイトもあります。
自分自身に好意を与え、これらのようなリソースに投資し続けてください。必ずしも簡単ではありませんが、非常にやりがいがあります。
ドキュメントに貢献します
これは私が十分にしていないものです。アームチェア評論家になるのは簡単です。傍観者に座って、コードベース、フレームワーク、またはその他の種類のソフトウェアプロジェクトを批判します。それをする代わりに、入って参加してください。
ドキュメントは、失敗したプログラマー、デザイナー、非技術的な人々向けではありません。最大のプロジェクトのいくつかは、開始するのに最適な場所はドキュメントであることを積極的に示唆しています。
これを行う最も顕著なプロジェクトの1つは、Linuxカーネルです。それを文書化するよりも、何かを学ぶより良い方法は何ですか?結局のところ、あなたが本当にそれを知っているなら、あなたはそれを文書化することができます。
オープンソースプロジェクトの場合は、入り、それについて調べ、コードを読んで、進行中にメモを作成し、ドキュメントに貢献してください。内部アプリケーションの場合は、最初に文書化を開始します。たとえあなた自身以外に誰もいなくても。
おそらく話す文書はありません。本当に恐ろしい場所です。しかし、すべてのプロジェクトはどこかで開始する必要があります。ソースコードを使用しているときは、知っていることを書き留めてください。
私が知っている最高の開発者のいくつか、たとえば素敵なLorna Janeは、このようにブログを始めました。彼女は、自分が学んでいることの記録を保持するためにブログを書いたが、後に最も人気のあるPHPブログの1つになった。
思いやりがあります
最後のポイント:レビューして構築している作業を行っている開発者に思いやりを持ってください。彼らが彼らのキャリアと教育のどこにいたのか、彼らが彼らにどのような制限を持っていたのか、彼らがあなたが今すぐに上がっているコードを書いたとき、彼らが彼らに持っていた制限を知りません。
さらに、あなたはどのスキルレベルでいますか?私たちが若く、より新しく、経験が少ないとき、他の人を判断するのは簡単です。
私たちはそれをすべて知っていると思います。そして、私たちの期待、概念、アプローチは真の正しい方法であると思います。しかし、それは本当にそうですか?私たちは成熟し、少し年をとるにつれて、私たちは賢くなり、存在するソフトウェア開発への幅広いアプローチをより受け入れるようになると信じたいです。
私たちは彼らに同意する必要はないかもしれませんが、それらは必ずしも間違っているわけではありません。彼らは私たちに教えることがたくさんあるかもしれません。それは私たちが成長するのに役立ちます。ですから、常に他の人と彼らがいる立場に思いやりを持ってみてください。不快な新人にならないでください。指を向けて責任を負わせてください。結局のところ、それは誰も、特にあなたを助けません。
ラッピング
他の人のコードとの作業をより管理しやすいプロセスにするためにできることはもっとあります。
どのような方法、ヒント、トリック、ツールを使用していますか?他の人のコードとの作業に関するよくある質問(FAQ)
他の誰かのコードを理解するためのいくつかの戦略は何ですか?他の誰かのコードを理解することは、特にコードが複雑であるか、文書化されていない場合は困難なタスクになります。ただし、プロセスを容易にするために使用できるいくつかの戦略があります。まず、利用可能なドキュメントやコメントを読んで、コードの高レベルの理解を取得してみてください。次に、コードをより小さくて管理可能なセクションに分割し、各セクションを個別に理解しようとします。デバッガーを使用すると、コードをステップスルーしてその動作を確認できるため、デバッガーを使用することも役立ちます。最後に、元の著者や他のチームメンバーに立ち往生している場合は助けを求めてください。 2つのプログラマーが1つのワークステーションで協力するテクニックです。 1つはドライバーがコードを書き、もう一方のオブザーバーまたはナビゲーターは、入力されたコードの各行を確認します。2つのプログラマーは頻繁に役割を切り替えます。このアプローチは、両方のプログラマーが疑問や問題をリアルタイムで議論し、明確にすることができるため、コードのより良い理解を促進します。また、オブザーバーはドライバーが見逃した可能性のある間違いを見つけることができるため、エラーを早期にキャッチするのにも役立ちます。明確で論理的な方法は、他の人がそれを理解するのに大いに役立ちます。コードを整理するためのいくつかの戦略には、関連する関数のグループ化、変数と関数に意味のある名前を使用し、コードの複雑なセクションを説明するコメントを提供することが含まれます。また、コードが読み取りと理解を容易にする一貫した構造を提供するため、確立されたコーディングの規則と標準に従うことも重要です。
プログラミングチームのコードレビュー担当者の役割は何ですか?
コードレビュアーは、他のチームメンバーによって書かれたコードをレビューして、チームの品質基準を満たしていることを確認する責任があります。これには、エラーのチェック、コードが確立されたコーディング規則に従うことを確認し、意図した機能を達成することを確認することが含まれます。コードレビュアーは、元の著者にもフィードバックを提供し、コーディングスキルを向上させるのに役立ちます。練習とともに改善できるスキルです。他の人が書いたコードを読み、理解することから始め、彼らが使用したテクニックと戦略を特定してみてください。コードレビューとペアプログラミングセッションに参加します。これらは、他の人から学び、さまざまな視点を獲得する機会を提供するためです。さらに、コーディングの基準とベストプラクティスを研究することも、スキルを向上させるのに役立ちます。
他の人のコードを理解し、操作するのに役立つツールは
他の人のコードの理解と作業に役立つツールがいくつかあります。統合開発環境(IDE)には、コードをナビゲートしてその構造を理解するのに役立つ機能がよくあります。デバッガーを使用すると、コードをステップスルーして、その動作を確認できます。コードレビューツールは、問題を特定し、フィードバックを提供するのに役立ちます。さらに、ドキュメントツールは、コードの目的と機能性を理解するのに役立ちます。
文書化されていないコードを処理するにはどうすればよいですか?使用できます。コードの全体的な構造と機能を理解しようとすることから始めます。デバッガーを使用して、コードをステップスルーし、その動作を確認します。可能であれば、元の著者または他のチームメンバーに説明を求めてください。理解が得られるようになったら、将来の開発者を支援するために独自のコメントやドキュメントを追加することを検討してください。
既存のコードを混乱させることなくコードベースに貢献するにはどうすればよいですか?既存のコードとコーディングの規則を尊重する。コードベースとその構造を理解することから始めます。変更が既存のコードと一致し、その機能を破壊しないようにしてください。変更を徹底的にテストして、新しいバグを導入しないようにします。最後に、チームと連絡を取り、コードレビューに参加して、変更が理解され、受け入れられるようにします。コードベース全体で一貫性と読みやすさを確保するため。彼らは、コードの書き込みと整理方法を定義するため、チームメンバーがお互いのコードを理解し、作業しやすくなります。コード標準は、エラー処理、セキュリティ、パフォーマンスのガイドラインが含まれることが多いため、コードの品質を維持するのにも役立ちます。コードベース上のチームと協力する場合、コミュニケーションが重要です。コードについて議論するときは明確かつ簡潔にし、適切な技術用語を使用してください。コードレビューに参加し、建設的なフィードバックを提供します。コードを理解するのに問題がある場合は、明確にすることをお気軽にお問い合わせください。また、フィードバックを受け取り、それを使用してコーディングスキルを向上させてください。
以上が他の人のコードとどのように協力しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。