Ich arbeite in einem Unternehmen, in dem wir im Entwicklungsteam viele verschiedene Fähigkeiten haben.
Wir machen alle folgenden Schritte (im Allgemeinen auf das Web ausgerichtet):
- .NET (MVC, Umbraco, ASP.NET, Oberfläche)
- Java (Frühling, Ruhezustand, Android)
- PHP (Zend, Code Igniter)
- Actionscript 3
- LUFT
- Ziel c
- Html / Javascript (offensichtlich)
Wir versuchen, unseren Entwicklungsprozess zu rationalisieren.
Wir haben derzeit einen TeamCity-Server, der .NET-Projekte mit msbuild / msdeploy / nant erstellt und bereitstellt.
Was ich möchte, ist so etwas wie ein Maven, der uns eine Standardstruktur für Projektvorlagen gibt, die für die meisten Projekte funktioniert, damit Personen aus verschiedenen Teams problemlos zwischen Projekten wechseln können.
Derzeit funktioniert dies auf einer Plattform, da wir dazu neigen, die Dinge für diese Plattform auf standardmäßige Weise zu erledigen (solange bestimmte Personen beteiligt waren). Ich möchte jedoch so etwas wie maven verwenden, um die Gestaltung und den Aufbau eines Projekts zu standardisieren.
Hat jemand so etwas schon einmal versucht? Erfahrungen? Bücher?
Antworten:
Für .NET gibt es drei Projekte, um Maven zu portieren. Siehe diese Antwort auf stackoverflow.com. Auch dieser Wiki-Artikel könnte hilfreich sein.
Für die anderen Sprachen empfehle ich, dieselbe Struktur anzuwenden, die Maven unterstützt (alle Quellen unten
src/language/main
usw.), und dann entweder Maven-Plugins zu schreiben, um sie zu erstellen, oder zumindest generische "Makefile" -Vorlagen zu schreiben, die diese Struktur sofort unterstützen.quelle
Derzeit verwenden wir in unserem Projekt mehrere Sprachen: C ++, Java, Ruby, Perl, OCaml, Shell, PHP und JavaScript. Und wir haben keine Probleme, sie alle zu ertragen. Weil jede Komponente ihre eigene Struktur und ihr eigenes Verzeichnislayout hat . Der Build wird mit einfachen rekursiven Makefiles zusammengeklebt, die von GNU make verarbeitet werden. Bei Bedarf rufen sie manchmal andere Build-Systeme auf (z. B. rufen sie Java's Ant auf, um den Java-Code zu erstellen). Wenn diese Build-Systeme an ein bestimmtes Layout gebunden sind, ist dies kein Problem, da jede Komponente ihre eigene hat und an die Anforderungen des Build-Systems angepasst werden kann.
Die Schlüsselidee war, jede Komponente getrennt von den anderen zu halten. In seinem Verzeichnis haben wir nur die Dateien gespeichert, da wir dachten, dass dies für diese bestimmte Komponente nützlich wäre. Wir haben keine großen Blobs wie
src/
Verzeichnisse, die beispielsweise den gesamten Code für eine Sprache enthalten. Auf diese Weise hatten wir keine Probleme beim Bearbeiten von Code in verschiedenen Komponenten.quelle