SideBarMenu

< Sicherheitsaspekte | Entwicklungs-HOWTO | Was sind Lifters? >

Wie und wo anfangen? Wie und wo den Überblick finden? Hier sind einige Tipps versammelt, die dir erfahrene Entwickler mitgeben wollen.

grep ist dein Freund

Der Stud.IP-Code besteht aus vielen, vielen Dateien. PHP, HTML, CSS, XML, XLST: Verschiedenste Typen sind vertreten und spielen auf relativ komplexe Art zusammen. Sie alle enthalten gute Beispiele, wichtige Hinweise zum Verständnis in Form von Kommentaren, Variablen- und Funktionsbenennungen. Es ist nicht notwendig, all diese Dateien anzuschauen, stattdessen empfiehlt sich eine gute alle UNIX-Weisheit als Führer durch den Dschungel: "grep ist dein Freund."

Beispiel:

Du möchtest ein neues Log-Event einführen, d.h. eine bestimmte Aktion mitprotokollieren. Das geschieht über den Funktionsaufruf log_event(...). Also ist es eine gute Idee, nach solchen Funktionsaufrufen zu suchen und sich die Kontexte anzuschauen, in denen diese Funktion verwendet wird.

Eine Shell, d.h. ein Fenster, in dem du auf einer Kommandozeile Befehle eintippst, leistet hier schon Großes. Das UNIX-Kommando grep kann Dateien nach Textfragmenten durchsuchen, z.B. Funktionsaufrufen wie log_event(...). Tippe dazu:

grep -rn "log_event(" *

grep durchsucht nund im aktuellen Verzeichnis und allen Unterverzeichnissen alle Dateien nach Vorkommen des Strings "log_event(", also dem gewünschten Funktionsaufruf. Neben den Dateinamen, in denen der String auftaucht, wird auch die Zeilennummer mit ausgegeben.

mit find Dateien finden

Bei den vielen Dateien in Stud.IP kann es auch vorkommen, dass man weis, dass eine Datei existiert, aber leider den Pfad zur Datei nicht findet. Hier hilft das Unix-Kommando find weiter. Diesem muss ein Verzeichnis und ein Dateiname übergeben werden. Das folgende Beispiel zeigt, wie find aufgerufen wird.

Angenommen, du willst wissen, wo die Datei Navigation.php im Stud.IP Verzeichnis liegt. Dazu öffnest du eine Shell im Stud.IP Hauptverzeichnis und rufst find folgendermaßen auf:

find . -name Navigation.php

find liefert alle Vorkommen dieser Datei zurück:

./lib/navigation/Navigation.php (Stand: Juni 2016)

Was habe ich geändert?

Wenn man herausfinden will, welche Änderungen man am Quellcode seit dem letzten Commit durchgeführt hat, geht man einfach ins Stud.IP Hauptverzeichnis, öffnet eine Shell und gibt svn diff ein. Alle Änderungen (Hinzufügen und Entfernen von Code) werden von svn nach Dateien getrennt aufgelistet.

Letzte Änderung am 13.06.2016 15:46 Uhr von strohm. Abschnitte "Mit find Dateien finden" und "Was habe ich geändert?" hinzugefügt