2009-08-24 4 views
8

Ich programmiere häufig zahlreiche Experimente, um verschiedene Algorithmen, Bibliotheken oder Hardware zu testen. Der gesamte Code, die Abhängigkeiten und die Ausgabe dieser Experimente müssen mit Anmerkungen versehen und gespeichert werden, damit ich später zu ihnen zurückkehren kann. Gibt es gute gemeinsame Ansätze für dieses Problem? Was machst du mit deinen Experimenten nachdem du sie ausgeführt hast? Dies ist ein Ordner von nur Code, den ich geschrieben habe, entweder eine neue Technologie zu lernen versuchen, usw., ein Konzept zu beweisenProgrammierungsexperimente

+7

speichern sie in einem Versionskontrollsystem? –

+1

Ich mag Git für diese Art von Sachen. Die ganze Geschichte mit dir die ganze Zeit, einfach zu sichern. –

+0

Ich habe früher Subversion verwendet (in einem der Posts unten), aber wenn Sie GIT verwenden können, ist es viel besser. (Ich benutze es noch, aber ich möchte es bald tun) – Audioillity

Antwort

5

Bei einem früheren Job hatten wir ein Projekt in SVN namens Area51, wo Leute Testcode schreiben würden. Die Regeln waren

  1. Start über eine public static void main
  2. kommentieren über javadocs
  3. lassen das Projekt in einem übersetzbar Zustand, einen Paket-Namespace erstellen
  4. das Projekt nie ein dependancy sein von anderem code

Bei einem dreiköpfigen team hat das geklappt ok. Wir könnten "was wäre wenn" Code dort zu teilen und es war einfach, es über IDE oder Befehlszeile

2

Ich habe nur einen Ordner, die ich OneOffCode

nennen. . Dies ist kein Produktionscode.

Ich speichere es normalerweise bis zu einem Sprungantrieb und verschiebe es mit mir von Job zu Job oder Computer zu Computer.

+1

Irgendwie wortreich. Ich rufe nur meinen "Test" an. –

+0

Ich nenne meine Tests "Test" - Experimente und Tests sind nicht dasselbe. –

5

Wenn ich diese mache, sind sie normalerweise projektspezifisch, also gehen sie in ein Unterverzeichnis des Projekts (in meinem Fall normalerweise "Untersuchungen" genannt). Dies wird mit allem anderen in das Versionskontrollsystem eingecheckt.

Ergebnisse (wo zutreffend) gehen in das gleiche Unterverzeichnis von "Untersuchungen" wie der Code, der verwendet wird, um die Ergebnisse zu erzeugen.

+1

+1: Wir nennen sie "Spikes". –

+0

@ S.Lott: "Spikes": Ich mag es! – DrAl

+0

Das mache ich auch. Außer- dem verzweigen und unterstützen Experimente viel mehr als der Produktionscode, was dazu führt, dass das Versionskontrollsystem unordentlich wird. Das Suchen und Auschecken von früheren Versionen von SVN ist ziemlich umständlich. –

2

Ich wechsle normalerweise zwischen C# und C++. Also habe ich eine Testkonsolenanwendung für C# und C++ in einem "Sandbox" -Standort unter Quellcodeverwaltung. Die Konsolenanwendungen werden beide auf die gleiche Weise eingerichtet, wo es einen Main gibt, der den Test aufruft, den ich gerade versuche. Wenn ich fertig bin, behalte ich die alten Methoden und Kommentare und räume einfach den Main aus, wenn der nächste Test kommt.

Ich weiß nicht, ob es das Beste ist, aber nachdem es eingerichtet ist, ist es ziemlich schnell, hineinzukommen, die Antworten zu bekommen, rauszugehen und alles für das nächste Mal gespeichert zu haben.