私は新進のソフトウェアエンジニア(現在、2年生、CS専攻)であり、他の人のプログラムを理解するのに本当に苦労しています。このスキル(またはスキルの欠如)が私にとってハンディキャップになる可能性があるかどうかを知りたいのですが、もしそうなら、どのように開発できますか?
私は新進のソフトウェアエンジニア(現在、2年生、CS専攻)であり、他の人のプログラムを理解するのに本当に苦労しています。このスキル(またはスキルの欠如)が私にとってハンディキャップになる可能性があるかどうかを知りたいのですが、もしそうなら、どのように開発できますか?
回答:
あなたがそれを開発する方法は、あなた自身のコード(それの多く)を書くことです、そして、はい、他の人のコードを読むのに苦労しています。
問題は、もちろん、誰もがあなたのやり方を考えているわけではないということです。私は1年前にJavaの1年生クラスに参加していましたが、割り当てを受けました。私が信じていたことに反して(答えは3つまたは4つの一般的な解決策に収束するということでした)、クラスの全員が課題に対して独自の解決策を持っていました。
そのため、適切なコードを読む必要があります。
これが、デザインパターンが非常に人気になった理由の1つであり、それらを研究する必要がある理由です。設計パターンは、プログラマーが通信の共通の語彙を提供し、コンピューティングの問題を解決する「より良い」方法のために心を調整します。
アルゴリズムとデータ構造も学習する必要があります。
結果: 他の開発者がすぐに理解できるコードを書くよう常に努力する必要があります。
それは非常に重要。
卒業して世界に出ると、あなたが取り組むほとんどのプロジェクトはすでに他の人からコードが提供されています。ラッキーは、グリーンフィールドプロジェクトにすべての時間を費やすことができるプログラマです!
それは練習と忍耐を通じて取得されるスキルです、そして多くの場合、それはそのスキルだ多くの人々は本当にまでの作業に多くの機会を得ることはありませんした後、彼らは卒業し、その最初の仕事を得るが。リラックス!
(あなたの学校が生協プログラムを持っている場合も、それは主に、他の人によって書かれている大規模なプロジェクトに取り組んにあなたは事前に卒業に経験を与えるだろうと、それは利用可能だ場合、に!見た目に何かをそれはあなたの学術クレジットを取得します)
コードの読み取りと書き込みの両方に明確なスキルがあります。
読み取りと書き込みについて。はい、読書は不可欠です。
それについて私たちの多くを助けるいくつかの格言は次のとおりです。
OK。それはすべて素晴らしいです。おそらくあなたが経験していることまで。
OMG、これなど、など、数十クレイジー依存関係と私は私の頭の中で10個のレベルを維持する必要があります何かを追跡しようとするたびにと長い行の数百あるソースコードとクラスのラインの何千ものと巨大なコードベースをおかしく
おなじみのサウンド?うん。深呼吸。リラックス。正常です。本番システムの構成要素です。人々はこれらの一見不可解な状況で生き残ります(そして繁栄します):
これらの回答のほとんどは、自己改善のためのコード読み取りの重要性に焦点を当てています。私は心から同意し、これを支持します。
注意すべき別の角度があります-あなたが他のアプローチを読むことから恩恵を受けることができなかった天才であったとしても(不可能ですが、議論のために...)、あなたはまだコードの読み方を知る必要があります基本的に大学の環境には存在しない概念:産業プロジェクトの大部分は、ブラウンフィールドプロジェクトです(つまり、既存のコードベース内または既存のコードベースと統合)。
既存のコードベースとプロセスを理解するためだけにコードを読む必要があります。コードについて別の開発者に質問することは常に可能ですが、これには時間がかかります。人々は去り、プロジェクトを切り替え、またはただの時間を過ごす。低レベルの詳細はメモリから消え、メンテナンスプログラマはパッチを適用します。ある時点で、コード自体以外の単一の真実のソースはありません。
優れたコード衛生、スタイルガイド、コードレビュー、ドキュメントヘルプがありますが、ある時点でコードは何が起こるかの真実の源であり、答えを見つける唯一の方法は自分でそれを手に入れることです。自己開発での使用は別として、コードを読み取る機能は、コードを書くこととは明確に分かれたスキルです。
他のコードを理解することは、チームではなくてもさまざまなものをグーグルで検索し、サンプルコードを理解する必要があるため、チームで作業する可能性が高いため、逃れることはできません。はい、それは必須です。
私が感じているのは、誰もが始めに特別に他のコードよりも感じが少ないかもしれないということですあなたの心の中に。他のコードでより多くの時間を費やし始め、どのような構造/フローが使用されているかを最初に確認しようとすると、確かにコードをよりよく理解できます。
あなたが1年前に書いたコードがある場合に私のポイントをさらに説得力があるようにするには、もう一度それを理解してみてください。コード。
このヘルプを願って、それが完全に正常であることを失望しないでください。コードにより多くの時間を費やすと、最終的にそれを取得できます。
さて、私は別の国のチームによって書かれた約100,000行のコードを含むプロジェクトを与えられました。可能な限り共通。
あなたは、他の人のコードを速く読む能力なしに、私が仕事をする方法を教えてくれます。他の人のコードを読むことができない場合、あなたは完全に、完全に立ち往生しています。