私は大規模なコンピューターサイエンスの学生で、現在、大規模なエンタープライズWebアプリケーションを作成およびサポートしている会社の就職年にいます。現実の世界でソフトウェアがどのように生産されるかを体験した経験を愛しており、既存の機能を維持および拡張するだけでなく、製品の完全に新しい機能を開発する機会を提供する会社を見つけることができてとても幸運です。
とはいえ、これが正しく開発するための完璧な例になる可能性は非常に低いと私は非常に意識しています。実際、それとはかけ離れています。ここでの経験から多くのことを学んでいるように感じます。間違ったことを学んだり、道を進むのが難しいかもしれない同僚から悪い習慣を身につけたりしたくありません。ほとんどの場合、良い点と悪い点を簡単に区別できます。たとえば、ここでの単体テストのカバレッジは、さまざまな理由で事実上存在しません(ほとんどの場合、1つまたは2つの有効なポイントが混じった不十分な言い訳)。しかし最近は、よくわからないことが定期的に発生していることに気づきました。
新しいプロジェクトを始めるときはいつでも、当然、拡張、変更、または削除する必要がある関連コードを見つける必要があります。ほとんどの場合、アプリケーションの最も一般的に使用されるセクション内にないものは、コードベース内で見つけるのに時間がかかります。コードのセクションをよく知っている1人または2人の技術リーダーがいますが、彼らは時々困惑し、必要なものを探すのに長い時間を費やす必要があるか、最近コードのその部分を編集している人に頼る必要があります(誰か)助けを求めて。長い時間を言うとき、私は時間(通常)を意味するわけではありませんが、システムに漠然と精通している誰にとっても、良いコードベースは最低でも数分以内の任意のポイントにナビゲートできるように思えます。
だから、私の質問。上記の問題は、不十分な構造のコードが原因ですか?あるいは、開発者がコードベースについて十分な知識を持っていないためでしょうか?または、大規模なアプリケーションでは、ファイル構造を明確に保つためにどれだけの労力がかかるかに関係なく、それは単に避けられないのでしょうか?
または、確かに...私は本当に重要ではないトピックに私の時間を無駄にしていますか?