Ich bin neu auf der Arbeit, und ich habe einen großen Code Java/mobile Basis geerbt. Es hat möglicherweise Hunderte von Java-Dateien. Ich verstehe es nicht. Es gibt wenig bis keine Dokumentation. Es ist meine Aufgabe, den Code und seine Funktionsweise zu verstehen. Welche Strategie oder Beratung können Sie mir geben, die mir helfen kann, dieses Problem anzugehen?Strategie zum Verständnis einer großen Codebasis
Was ich bisher versucht habe, ist, dass ich ein bestimmtes Feature in der App angeschaut habe - die Druckfunktion - und Breakpoints im Code platziert habe und einfach versucht habe, der Ausführung zu folgen. Bisher habe ich nur herausgefunden, welche Klassen in welcher Reihenfolge aufgerufen werden. Ich denke jedoch, dass dieser Weg nur ein begrenztes Verständnis dieser komplexen App bieten kann. Ich habe auch gebeten, an einer bestimmten Funktion der App zu arbeiten, und jemand kann mich beraten, wie es funktioniert, aber die Leute haben keine Zeit dafür. Kannst du noch etwas anderes empfehlen?
Diese Frage ist ziemlich weit gefasst und wird zu "meinungsbasierten" Antworten führen; also ist es hier offtopic. Sie könnten versuchen, auf quora.com zu fragen. Meine Meinung: Da gibt es Tools, die versuchen, die Struktur/Architektur aus dem vorhandenen Quellcode abzuleiten. Sie verwenden solche Tools zuerst, um ein grobes Verständnis zu erhalten ** was ** Ihre Anwendung ausmacht. Nur blindes Debuggen in irgendeinem Bereich wird höchstwahrscheinlich nicht helfen. Aber noch wichtiger: Versuchen Sie, die Personen zu identifizieren, die vorher mit dem System gearbeitet haben; oder noch besser: jene Domain-Experten, die verstehen, was die App machen soll. Dann: rede mit ihnen! – GhostCat
eine andere Frage, ist das, was einen genialen Programmierer von einem durchschnittlichen unterscheidet, dass er dieses Problem angehen kann und herausfinden kann, wie das alles schneller als ein durchschnittlicher Typ funktioniert und daher innerhalb von Tagen Code produzieren kann? Ist das, wonach Manager suchen? –
Wieder lautet die Antwort "es kommt darauf an". Ich denke, die wichtigste Fähigkeit, um riesige bestehende Codebasen zu analysieren, ist ** Erfahrung **. Wenn Sie in der Vergangenheit mit 5, 10, 20 ähnlichen Dingen gearbeitet haben, können Sie "Muster" viel schneller finden (weil Sie auch wissen, wonach Sie suchen würden). Wenn du das zum ersten Mal machst, lernst du viele Dinge gleichzeitig. Nur wenige Menschen sind gut darin. In diesem Fall wäre Ihre "Kernkompetenz" eine Fähigkeit zur systematischen Arbeit. Aber bitte beachten Sie: SO ist kein Ort für solche Diskussionen. Sie wenden sich besser an quora.com ... – GhostCat