Methodik für Informatik?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Zu dem Thema gibt es tatsächlich gleich mehrere Bücher, und eines der besten der besten der besten ist dieses hier:

https://www.amazon.de/Working-Effectively-Legacy-Robert-Martin/dp/0131177052/

Das dürfte so ziemlich zu 100% genau das sein, was du suchst. :)

Wer dieses Buch noch nicht gelesen hat, der hat auch noch nie so "richtig" mit Legacy-Code gearbeitet. Das, was da drin steht, öffnet einem erst mal die Augen!

Es enthält genau das, was du suchst: Methodik, Techniken, Herangehensweisen, und noch viel mehr, was du natürlich auch grob überfliegen kannst, wenn es dich nicht direkt betrifft.

Viel Spaß beim Lesen und beim Aufräumen deiner geerbten Code-Müllhalde! :)

Zusatz: Es gibt natürlich noch wesentlich mehr Bücher zu den Themen "Legacy Code" oder "Refactoring".

Such ruhig mal bei Amazon unter "Bücher" und v. a. auch "Bücher (fremdsprachig)" nach den beiden Schlüsselwörtern, dabei findest du auch noch weitere wirklich gute Bücher, z. B. das hier:

https://www.amazon.de/Refactoring-Improving-Design-Existing-Technology/dp/0201485672/

Das ist etwas praxisorientierter als das erste, aber auch etwas umfangreicher.

Übrigens: Wenn dein Englisch ausreichend ist, würde ich an deiner Stelle immer die englischsprachigen Originalausgaben nehmen. Es gibt zwar auch ausgezeichnete deutsche Übersetzungen, aber gerade bei meiner ersten Empfehlung taugt die Übersetzung nicht sonderlich viel. Schade eigentlich.

Klick dich ruhig mal bei Amazon durch die Kategorien, und lies dir (vor allem) die negativen Bewertungen durch. Und falls du noch ein paar Euro unterm Kopfkissen findest, gönn dir ruhig beide oben empfohlenen Bücher, denn die ergänzen sich ganz wunderbar! :)

4

Vielen Dank für die Vorschläge. Das hilft mir definitiv weiter.

Robert Martin ist vom Clean Code her schon bekannt ;)

1
@terroveganer

"Clean Code" ist auch ein hervorragendes Buch, sowie alle anderen Werke aus der Feder von Robert C. Martin auch! Den Namen sollte man sich neben Martin Fowler und Herb Sutter unbedingt merken. :)

Auf dem Gebiet ist "The Art of Readable Code" von "Dustin Boswell" auch sehr zu empfehlen (geht mehr in die Tiefe als "Clean Code" und ist nicht so Java-fixiert, sondern allgemeingültiger) ... ist zwar im Großen und Ganzen nicht so viel Neues für einen wirklich erfahrenen Software-Entwickler dabei, aber als Denkanstoß und Erinnerungsstütze eine schöne Lektüre. (Vom Schreibstil, Inhalt und der Didaktik her auch wesentlich besser als "Weniger schlecht Programmieren", was zwar auch nicht sooo schlecht ist, unter all den genannten aber sicherlich den letzten Platz einnimmt ... aber ich schweife schon wieder ab ...)

Offensichtlich scheinst du ja einen ganz guten Überblick zu haben, also werden dir meine Buchempfehlungen bzgl. Refactorign und Legacy-Kram sicherlich weiter helfen.

Viel Erfolg beim Code-Ausmisten! :)

0

Literatur wird es wohl nicht geben.

Mein vorgehen bei schlecht kommentiertem z.T. 20 Jahre altem Cobol. Ggf hilft dir das ja.

Schritt 1: Ganzes Programm ausführen.

- Wo sitzt der schlecht dokumentierte Code

- Warum ist der an der Stelle? Also wofür wird der benötigt ...

Schritt 2: Debuggen des nicht dokumentierten Codes

- Was steht wo drinn

- welchen weg geht das Programm

- wo zieht der seine Daten her

- warum wird das so gemacht.

Bei Schritt 2 hilft es manchmal bestimmte Variablen auf dem Papier zu verfolgen. Also was war ursprnglich drinn, was hat die Variable geändert und unter welchen bedingungen.


Es soll vorkommen, besonders bei IT Dienstleistern, dass eine Dokumentation nicht beauftragt(bezahlt) wird. Daher musste ich mich überwiedend mit lesen und debuggen beschäftigen.

Ich bin es inzwischen Leid stunden damit zu verbringen und hoffe auf analytische Ansätze.

0

Naja zunächst einmal solltest du überhaupt eine Programmiersprache erlernen. Je nach Sprache gibts andere Literatur.
Dabei lernst du auch automatisch dich in Quellcode einzuarbeiten.

Anständige Literatur "Wie lese ich Quellcode" wirst du nicht finden.

Gruß Tobi

Programmiersprachen sind vorhanden.
Wenn es Bücher zu "Wie lese ich Quellcode" gäbe, wäre meine Frage definitiv überflüssig. Es geht mir hier schlichtweg um die Optimierung der Einarbeitungszeit :)

0

Kommt ganz auf die Sprache an. Handelt es sich um ein bestimmtes Programm ? Ist es Objektorientiert oder nicht ?

0
@TobiMa95

Natürlich handelt es sich immer um ein bestimmtes Programm.

Es ist mal java prozedual, mal c++ objektorientiert und ein andermal c# aspektorientiert...

Hilft dir das bei meiner Problemlösung?

0

Naja. Wenn du Klassen hast schau dir dtets die Main Methode/Klasse an und ggf. dann Unterklassen. Ignorier stets Programmteile die nicht wichtig sind für die Funktionalität wie Gui etc. Ist der Code nicht schon von sich aus in Merhoden / Funktionen etc. strukturiert versuche Makro Strukturen zu erkennen und beschäftige dich erst dann damit wie einzelne Abschnitte funktionieren. Bevor du überhaupt mit dem Quellcode beginnst solltest du als Nutzer jede Funktion einmal genutzt haben um überhaupt mal ein Überblick zu bekommen.

0

Es kommt natürlich auch auf den Umfang an, hast du nur ein kleines Programm (paar Zeilen Code) kannst dus einfach mal so durchlesen und hast bereits ein guten Überblick, wenn du nen Monster mit mehreren zig tausend Zeilen Code hast solltest du dich vlt fragen warum du das überhaupt liest und dann gezielt nach deiner Zielsetzung suchen / durchsuchen

0

Vielen Dank für deine Anregungen. Leider helfen mir diese paar, sehr allgemein gehaltenen Zeilen, nicht sonderlich weiter.

Ich bin mir der komplexität dieses Themas durchaus bewust und habe daher auch explizit nach Literaturvorschlägen gefragt.

0

Muss man als Informatiker/Programmierer wirklich so gut in Mathe sein?

Viele Leute sagen ja, dass man für diesen Beruf sehr gut in Mathe sein muss. Ist diese Aussage nur ein Gerücht, ist es ein wenig übertrieben, stimmt es nicht oder ist es nicht mehr aktuell?

...zur Frage

Python 2D Array Problem

Hallo,

ich habe ein Problem in folgendem QuellCode

matrix = [[0]*10]*10
i = 0
for x in matrix:
    for y in x:
        x[i % 10] = i
        i += 1
    print x
   
print ((matrix[1])[0])

Dieser Code erstellt zunächst wie gewollt eine Matrix mit 0 - 99 und 10 Elementen pro Zeile, print liefert an dieser Stelle auch das korrekte Ergebnis. Wenn ich aber danach ein Element mit matrix[x][y] aufrufen will, gibt er immer egal was man für x einsetzt das y-te Element der letzten Zeile an, also matrix[9][0]in diesem Fall. Kann mir jmd erklären warum das so ist und wie ich es korrekt mache?

...zur Frage

Wie sehr kann man sich programmieren selber im Internet beibringen?

Ich überlege nach dem Abi erstmal ein halbes Jahr selber nur daheim mir alles anzueignen, bevor ich ins Studium gehe, bzw eine Ausbildung mache. Macht das irgendwo Sinn? Oder sollte ich direkt anfangen zu studieren?

...zur Frage

Muss man gut in Mathe sein, um programmieren zu beherrschen?

Ich bin jetzt nicht so schlecht in Mathe, aber auch nicht besonders gut. Braucht man Mathe für die Programmiersprache C++ etc.?

...zur Frage

welche Noten muss man haben um Informatiker zu werden?

Hallo ich bin Milchbubi und möchte Wissen mit welche Zensuren Informatiker werden kann.. PS: Danke im Vorraus

...zur Frage

Anderer Job als Informatiker?

Hey, ich möchte gerne später mal Informatik studieren und habe mich darüber mal informiert.. jedoch gibt es einen oder zwei Haken.. ich bin eine null in Mathe das meine ich wikrlich sl wenn ich lerne dann kann ich es trotzdem nicht also kann ich das schon mal vergessen. Als Informatiker macht man mehr Mathe als Programmierung habe ich gehört. Da ist der zweite Haken. Ich würde gerne im Job programmieren wollen usw. Aber kein Mathe bitte! Ich kann mit Computer besser umgehen als mit Menschen... könnt ihr mir vielleicht einen anderen Jon empfehlen der sich dazu eignet? Danke Ps: bin 14/Gymn.

...zur Frage

Was möchtest Du wissen?