Ich bin ein Student der Informatik, der derzeit ein Praktikumsjahr bei einem Unternehmen absolviert, das eine Webanwendung für große Unternehmen erstellt und unterstützt. Ich mag die Erfahrung, zu sehen, wie Software in der realen Welt hergestellt wird, und ich bin sehr glücklich, ein Unternehmen zu finden, das die Möglichkeit bietet, nicht nur vorhandene Funktionen beizubehalten und zu erweitern, sondern auch völlig neue Funktionen für das Produkt zu entwickeln.
Trotzdem bin ich mir sehr bewusst, dass dies sehr, sehr unwahrscheinlich ein perfektes Beispiel dafür ist, wie man sich richtig entwickelt. Weit davon entfernt. Ich habe das Gefühl, dass ich aus meinen Erfahrungen hier eine Menge lerne, und ich möchte nicht die falschen Dinge lernen oder schlechte Gewohnheiten von Kollegen aufgreifen, die sich später möglicherweise nur schwer abschütteln lassen. Meistens ist es leicht zu sagen, was gut ist und was nicht - zum Beispiel ist die Unit-Test-Berichterstattung hier aus verschiedenen Gründen praktisch nicht vorhanden (meistens schlechte Ausreden, gemischt mit ein oder zwei gültigen Punkten). In letzter Zeit habe ich jedoch ein regelmäßiges Ereignis bemerkt, bei dem ich mir einfach nicht sicher bin.
Wann immer wir ein neues Projekt starten, müssen wir natürlich jeden relevanten Code finden, der erweitert, geändert oder entfernt werden muss. Es scheint mir, dass in den allermeisten Fällen alles, was nicht in den am häufigsten verwendeten Abschnitten der Anwendung enthalten ist, ein Alter benötigt, um in der Codebasis gefunden zu werden. Es gibt ein oder zwei technische Leiter, die ihren Abschnitt des Codes gut kennen, aber selbst sie sind manchmal ratlos und müssen lange nach dem suchen, was sie benötigen, oder sich an jemanden wenden, der diesen Teil des Codes kürzlich bearbeitet hat ( wenn jemand) um Hilfe. Wenn ich lange sage, meine ich (normalerweise) nicht Stunden, aber es scheint mir, dass eine gute Codebasis im schlimmsten Fall innerhalb weniger Minuten zu jedem Punkt navigierbar ist, für jeden, der mit dem System nur vage vertraut ist.
Also meine Frage. Liegt das obige Problem an schlecht strukturiertem Code? Oder liegt es daran, dass Entwickler nicht genügend Kenntnisse über die Codebasis haben? Oder ist es in großen Anwendungen einfach unvermeidlich, unabhängig davon, wie viel Arbeit in die Klarheit der Dateistruktur investiert wird?
Oder verschwende ich nur meine Zeit mit einem Thema, das wirklich keine Rolle spielt?