Funktionen Lieferfunktionen in großen Projekten

Jedes Produkt, das sich derzeit im Geschäft befindet, ist von Veröffentlichungen bedroht. Unser Projekt ist keine Ausnahme. Wir arbeiten nach der Scrum-Methode. Die Entwicklung ist in Sprints unterteilt. Sprints sind normalerweise nicht zeitgebunden, sondern je nach Sprintumfang in Zeiträume unterteilt. Als Ergebnis des Sprints wird die Anwendung normalerweise für den Store freigegeben, der neue Funktionen und einige Bugfixes enthält.


Aufgrund der Besonderheiten des Projekts fallen jedoch nicht alle Funktionen sofort nach Abschluss des Sprints in die Version. Aufgrund dieses Ansatzes werden Funktionen angezeigt, die nicht für das Produkt freigegeben werden können. Mit all dem hat niemand kritische Fehler, kleinere Korrekturen und nur die Veröffentlichung von vorgefertigten Funktionen beseitigt. Es gibt verschiedene Arten von Releases:


  • Iterative Entwicklung. Freigabe von vorgefertigten und vereinbarten Funktionen.
  • Unterschiedlicher Zeitpunkt der Akzeptanz von Merkmalen. Jedes Feature hat eine andere Priorität seitens des Kunden, was sich definitiv auf die Veröffentlichungstermine selbst vorgefertigter Features auswirkt.
  • Kritische Fehler und SLA. Wenn Sie bei den Sales Builds echte Probleme feststellen, müssen Sie den Fehler beheben und das Update so schnell wie möglich bereitstellen.

Bei ständigen Freisetzungen stellt sich die Frage: "Wie wird die Entwicklung durchgeführt?".
Schließlich muss jeder Entwickler Aufgaben ausführen, Zweige für diese Aufgaben erstellen und sie am Ende irgendwo zusammenführen.


Bild


Ursprünglich wurde der Ansatz „Feature-Zweige“ im Studio organisiert. Schauen wir uns das Konzept an und heben Sie die Vor- und Nachteile hervor.


Bild


. , , FeatureBranch, DevBranch. , , , , FeatureBranch .


Bild


, . , 100% , , . , - swift , , , , xib , . , .


?


  • .
  • .
  • .

:


  • .
  • .
  • .
  • .

, . , , .


FeatureToggle


, . FeatureToggle , A/B / . , .


, . , . , - , «-» .


:


public final class FeatureToggle {

    public enum SomeFeature {
        public static var isEnabled = true
        public static var useMocks = false
    }

}

, . . , , .. , , .


, . , - .


if FeatureToggle.SomeFeature.isEnabled {
    // Should show feature
} else {
    // Should hide feature
}

, , , « » .


Bild



– . FeatureToggle. , , , . , , . , , , , .


:


  • FeatureToggle.
  • , , .

:


  • .
  • .
  • .
  • .
  • , .

?


, . , , . — . – , . , . , , .


, :



!


P.S.: . , .


All Articles