Frage

Ich habe CI-Tools noch nie benutzt, aber von dem, was ich gelesen habe, bin ich nicht sicher wäre es irgendeinen Vorteil zu einem Solo-Entwickler bereitzustellen, die keinen Code jeden Tag schreiben.

First - Welche Vorteile bietet CI für jedes Projekt zur Verfügung stellt

Second - wer sollte CI verwenden? Ist es alle Entwickler profitieren?

War es hilfreich?

Lösung

Das Grundkonzept der CI ist, dass Sie ein System, das den Code und läuft automatisierte Tests baut jedesmal, wenn jemand eine auf das Versionskontrollsystem verpflichten macht. Diese Tests würden Einheit und Funktionstests oder sogar Verhalten getrieben Tests.

Der Vorteil ist, dass Sie wissen - sofort - wenn jemand die Build gebrochen hat. Das bedeutet entweder A) Sie Code verpflichtet, die Zusammenstellung verhindert, die jede eine Schraube würde auf, die ein ‚update‘ tat, oder B) Sie begingen Code, der einige Tests brach, was entweder bedeutet, dass sie einen Fehler eingeführt, die behoben werden muss, oder die Tests müssen aktualisiert werden, um die Änderung im Code zu reflektieren.

Wenn Sie ein Solo-Entwickler sind, ist CI nicht ganz als nützlich, wenn Sie in einer guten Gewohnheit sind Ihre Tests laufen, bevor ein Commit, das ist, was Sie sollte tun. Davon abgesehen, Sie eine schlechte Gewohnheit zu lassen, die CI tun, um Ihre Tests für Sie entwickeln könnte.

Als Solo-Programmierer, kommt es im Wesentlichen auf Disziplin. CI zu verwenden ist eine nützliche Fähigkeit zu haben, aber Sie wollen keine schlechten Gewohnheiten zu vermeiden, zu entwickeln, die nicht zu einer Teamumgebung übersetzen würden.

Andere Tipps

Wie andere Menschen festgestellt haben, CI hat haben Vorteile für ein Solo-Entwickler. Aber die Frage muss man sich fragen, ist; ist es den Aufwand wert? Wenn Sie wie ich sind, dann wird es wahrscheinlich eine Stunde oder zwei, um ein CI-System für ein Projekt eingerichtet, nur weil ich einen Server zuweisen müssen werden, die Vernetzung aller einrichten und die Software installieren. Denken Sie daran, dass das CI-System wird Sie zu einem Zeitpunkt nur ein paar Sekunden gespart werden. Für Solo-Entwickler, sind diese Zeiten wahrscheinlich nicht mehr als die Zeit, addieren sie nahmen das CI-Setup zu tun.

Wenn Sie jedoch noch nie ein CI-System eingerichtet haben, empfehle ich es nur um des Lernens zu tun, wie es zu tun. Es ist nicht so lange dauern, dass es nicht wert, die Lernerfahrung ist.

Der Vorteil von CI liegt in der Fähigkeit, frühzeitig zu entdecken, wenn eine Prüfung in die Build gebrochen hat. Sie können auch Ihre Suite von automatisierten Tests gegen den Build sowie laufen jede Art von Tools laufen Sie Metriken zu geben und so weiter.

Offensichtlich ist dies sehr wertvoll ist, wenn Sie ein Team von Committer haben, von denen nicht alle sind fleißig für das Brechen von Änderungen zu überprüfen. Als Solo-Entwickler, ist es nicht ganz so wertvoll. Vermutlich Sie Ihre Unit-Tests laufen, und vielleicht sogar Integrationstests. Allerdings habe ich eine Reihe von Gelegenheiten gesehen, wo der Entwickler vergisst, eine Datei aus einem Satz checkin.

Das CI-Build kann auch gedacht werden als „Freigabe“ zu bauen. Die Umgebung sollte stabil und unbeeinflusst von was auch immer der Entwicklung Gizmo Sie nur Ihr Gerät hinzufügen. Es sollte Ihnen ermöglichen, immer einen Build zu reproduzieren. Dies kann nützlich sein, wenn Sie eine neue Abhängigkeit zu Ihrem Projekt hinzufügen, und vergessen Sie die Release-Build-Umgebung einrichten, dass zu berücksichtigen.

Wenn Sie mehrere Compiler unterstützen müssen, dann ist es praktisch, ein CI-Build-System zu haben, all das zu tun, während Sie gerade in einer IDE entwickeln. Mein Code baut mit Vc6 durch VS2008 in x86 und x64 baut auf VS2005 und 8, so dass das, 7 baut pro Projekt und Projektkonfiguration ... ein CI-System bedeutet, dass ich in einer IDE entwickeln und lassen Sie das System CI beweisen, dass alle die Compiler, die ich unterstütze immer noch bauen.

Ebenso, wenn Sie Libs bauen, die von mehreren Projekten verwendet werden, dann wird CI sicherstellen, dass sie mit allen Projekten arbeiten und nicht nur die, die Sie mit der rechten jetzt arbeiten ...

Die Wahrheit ist, dass die kontinuierliche Integration am meisten Sinn in Teams macht. Einzelne Entwickler können auch einige Vorteile erhalten, müssen Sie selbst entscheiden, ob sie genug sind, um die Zeit, die Sie in der Einrichtung ein CI-System investieren zu begegnen.

  • Wenn Sie einige benötigte Datei checkin vergessen haben, enthält das Repository eine gebrochene Version, auch wenn es auf Ihrem Rechner funktioniert. CI würde erkennen, diesen Fall an.
  • Wenn Ihr CI-Server auf einem anderen Rechner läuft, kann es Abhängigkeiten auf Ihrer Build-Umgebung anzuzeigen. Mittel, die Build und alle Tests können auf Ihrem dev-Box arbeiten, aber auf einer anderen Maschine einige Abhängigkeiten nicht erfüllt sind und die Build bricht.
  • Täglich baut zeigen können, dass Ihre ältere Software nicht mit dem neuesten Upgrade der OS / Compiler / Bibliothek arbeiten ...
  • Wenn Ihr CI-System ein Archiv von Build-Artefakte hat, können Sie einfach eine Verteilung von einer älteren Version Ihrer Software erhalten.
  • Einige CI haben eine schöne Schnittstelle Sie Metriken über Ihren Build zu zeigen, haben Links zu automatisch generierte Dokumentation und solche Sachen.

Wir nutzen unser CI-System Releasebuilds zu tun (wie auch die üblichen automatischen "on-commit" Builds).

Die Möglichkeit, einen Knopf zu klicken, das einen Releasebuild startet, die alle Prozesse Schritte durch ein Setup zu lösen ist:

  • schnell (ich kann geradeaus mit anderen Dingen gehen, und es läuft auf einem separaten Rechner, so dass es nicht ich verlangsamt);
  • repetitiven (es hat nichts vergessen, auch das Setup auf den Release-Ordner kopieren und an alle Benutzer, die wissen muss)
  • zuverlässig (keine Fehler, im Gegensatz zu einem Menschen!).

In einem agilen Umfeld, in dem Sie erwarten Arbeits Software zu liefern alle 2-4 Wochen, dies auf jeden Fall wert ist, selbst in einem Team von 1.

CI zugute kommt ein Solo-Entwickler in dem Sinne, dass Sie sich bewusst sind, wenn Sie etwas zu lesen vergessen (weil die Build gebrochen werden). Der Integrationswert wird verringert, wenn es keine andere Entwickler, though.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top