Dies ist das erste Mal, dass ich Code für ein freiberufliches Projekt (Web-App) bereitstelle. Da ich nicht viel Erfahrung mit Versandcode habe, fällt es mir schwer, zu entscheiden, ob mein Programm für die Bereitstellung bereit ist oder nicht.
Nach meinem Verständnis muss ein Code auf Produktionsebene die folgenden Merkmale aufweisen:
- Fehlertoleranz : Fähigkeit, nicht erfasste Ausnahmen zu überleben
- Datenredundanz : Verlieren Sie niemals Benutzerdaten
- Skalierbarkeit : Für die Handhabung zusätzlicher Lasten sollte die App nicht neu geschrieben werden müssen
- Testabdeckung : Eine "anständige" Menge an getestetem Code
Einige dieser Merkmale sind spezifisch für das Programm selbst, während andere eher umweltbezogen sind (unabhängig davon, ob mehrere Cluster verwendet werden). Selbst die umgebungsabhängigen Eigenschaften wirken sich jedoch auf die Art und Weise aus, wie das Programm entworfen wird.
Meine Frage lautet dann: Was sind die anderen Merkmale, die den Produktionscode so anders machen als den Code, der nicht für die Produktion bestimmt ist?
Um den Umfang der Frage zu verringern, konzentrieren Sie sich bitte nur auf Web-Apps .
Bearbeiten : Ich werde versuchen, den Umfang einzugrenzen, indem ich nach Merkmalen frage, die für meine Situation spezifisch sind. Als Freiberufler war ich für alles verantwortlich, vom Kauf eines VPS über die Konfiguration bis hin zum Schreiben des Codes und der Bereitstellung. Obwohl das Projekt und seine Einrichtung gut dokumentiert sind, kann der Kunde es nicht warten. Die App ist nicht komplex, hängt jedoch von vielen externen Komponenten ab, wodurch sie sehr anfällig für Schäden ist, wenn sich diese Komponenten ändern / verschwinden. Ziel ist es, einen Service einzurichten, der ohne Eingreifen des Kunden so lange wie möglich Bestand hat.
quelle
Antworten:
"Code in Produktionsqualität" ist alles, was ein anderer Benutzer, der nicht Sie ist, ...
DAS IST ES.
Manche Menschen brauchen absolute Fehlertoleranz. Anderen macht es nicht so viel aus, wenn einige Daten bei einem Absturz verloren gehen ... vorausgesetzt, sie sehen Abstürze sehr selten. Es gibt keine festen Eigenschaften oder Anforderungen. Und kein Kunde kümmert sich um die Testabdeckung. Was ihn interessiert, sind die drei oben genannten Punkte. Die Testabdeckung ist ein Tool (eines von vielen), das Sie verwenden können, um dorthin zu gelangen, aber es wurde eine Menge Software, von denen einige sogar gut sind, nur mit manuellen Tests erstellt.
Unabhängig davon, welche Software Sie erstellen, die Anforderungen liegen zwischen Ihnen und Ihrem Kunden. Wenn Sie Software für den allgemeinen Verbrauch erstellen, wählen Sie eine oder wenige Zielgruppen aus und versuchen Sie nicht, für alle alles zu sein. Der Versuch, eine Art generischen Schimmel zu entwickeln, kommt mir ziemlich albern vor.
Warum arbeiten Sie nicht mit Ihrem Kunden zusammen, anstatt vorherzusagen oder zu erraten, wann Ihre Software produktionsbereit sein wird? Geben Sie ihnen eine Vorschau, aber erklären Sie, dass es nicht produktionsbereit ist. Veröffentlichen Sie es auf Ihrem eigenen Server und bitten Sie sie, es zu verwenden, herumzustöbern und Ihnen Feedback zu geben. Arbeiten Sie weiter mit ihnen, bis sie mit dem, was Sie ihnen gegeben haben, zufrieden sind. Mit anderen Worten, sie werden Ihnen sagen, wann es produktionsbereit ist.
quelle