Frage

Wie fast jeder, der für eine Weile Programmierung ist schon, ich bin mit dem Begriff „Produktionscode“ vertraut und habe ein vagees Gefühl dafür, was es bedeutet. Jedoch kann, bietet jemand eine halb strenge Definition, da es Wikipedia und Google scheint nicht? Es scheint, wie es viele Grauzonen in sind, was als Produktion, wie interne Tools, die von einer kleinen Gruppe von Menschen verwendet werden und daher nicht „formalisiert“ in Bezug auf die Benutzeroberfläche, Dokumentation usw. und Open-Source-Anwendungen, die sind verfügen über eine komplette, preisfehlerfrei und funktionstüchtig, aber es fehlt polieren, UI und umfangreiche Tests.

War es hilfreich?

Lösung

Produktion bedeutet, alles, was Sie brauchen, zuverlässig zu arbeiten und konsequent.

Ob ein Build-Skript oder einem öffentlich zugänglichen Webserver.

Wenn andere auf Ihrem Code verlassen, vor allem Leute, die es nicht verstehen können (das heißt auch „smart“ Entwickler aber vielleicht nicht in Ihrer Gruppe, aber mit einer Bibliothek, die Sie geschrieben), dass Code ist Produktionscode.

Es ist die Produktion, weil „Arbeit beendet“ und „Geld verloren“, wenn der Produktionscode fehlschlägt.

Andere Tipps

Wenn Ihr Code auf einem Produktionssystem ausgeführt wird, das heißt, es wird in einer realen Situation, die durch die Zielgruppe verwendet wird.

Produktionscode, jedoch nicht notwendigerweise bedeutet, robust, zuverlässig, oder stabilen Code. Die Täglich WTF liefert zahlreiche Belege dafür, in dieser Hinsicht.

Die Definition wie ich es verstehe, dass die Produktion Code ist jeder Code, der installiert ist oder in Verwendung auf einem lebenden, nicht-Test-Bett-System. Ein Server intern zu einem Unternehmen verwendet wird, ist ein Produktionssystem, wenn es das Live-System von den Mitarbeitern des Unternehmens verwendet wird. Der Punkt hier ist, dass Code auf einem Server, der intern an die Firma läuft das Schreiben des Codes kann die Produktion Code sein.

In der Regel wird eine gute Unterscheidung, wenn sie bei internem Code sucht, ist, ob die Gruppe des Code beibehalten wird getrennt von der Gruppe ist es, den Code. Wenn die Gruppen getrennt sind, stehen die Chancen, dass der Code Produktionscode ist. Wenn Betrieb des Unternehmens auf dem Code abhängt, dann ist es sicherlich Produktionscode, auch wenn es entwickelt und gepflegt wird im eigenen Haus.

EDIT: Die kurze Antwort:. Wenn Sie "Wetten den Hof auf sie" sind, ist es "Produktion"

Dies ist eine große Frage - eine absolut kritische Unterscheidung, die routinemäßig alle in Schwierigkeiten aufgrund von Missverständnissen kommt. Die Frage, was ist " Produktion " ist eine Teilmenge der damit verbundenen Frage, was ist eine " Umwelt ".

  

So ein Teil der Antwort ist, dass " Produktion " ist die " Umwelt " Das ist den meisten    wichtig und ist größte als " real " Sache.

So, jetzt müssen wir definieren " Umwelt " (und dann erneut " Produktion "). Wir sind noch weit von einer zufriedenstellenden Antwort.

Wir Programmierer verwenden den Begriff „ Umwelt “ ständig auf Computersysteme beziehen bestehend aus Hardware, die Software ausgeführt wird. Diese Software ist der Code, den wir geschrieben und Software, die es hängt davon ab, die von anderen geschrieben wurden. Wir schreiben unseren Code und integrieren es mit der anderen Software, dann in der Regel führen wir die integrierte Software durch eine Eskalation der Reihe von Tests (Unit-Tests, Integrationstests, Funktionstests, Akzeptanztests, Regressionstests, etc.), bis wir die schließlich laufen integrierte Software in der vollen Art und Weise, in der es bestimmt war.

Natürlich ist nicht alles vollautomatisch. Es gibt in der Regel viele Menschen beteiligt, und sie haben manuelle Prozesse durchzuführen. Wir Programmierer suchen nach Wegen, wie viele dieser Prozesse wie möglich zu automatisieren, aber es gibt immer ein „Mensch / Maschine-Grenze“ in den Systemen arbeiten wir an. Oft gibt es viele solche Grenzen in einem bestimmten Fall.

Auf der anderen Seite kann es keine signifikante Automatisierung überhaupt sein. Zum Beispiel, wir sprachen von " Produktion " Weg zurück, wenn wir voll von Menschen, die Durchführung manuelle Arbeit, die ein Zimmer hatten erzeugt a Produkt . Also, es muss keine Automatisierung vorhanden sein in unserer " Produktion " " Umwelt ". Es gibt auch einen Mittelweg, wo die Automatisierung enthält keine Software beteiligt sind, wie im Fall einer Person, einen Webstuhl laufen Tuch zu weben.

Auch kann es nicht sein, ein Produkt , da wir unsere Sprache " Produktion " angepasst haben " Umwelt " produkt- schließen weniger Dienstleister.

Ebenso kann die Prüfung nicht-Software beinhalten, da wir eine nicht-Software-gesteuerten Maschine testen werden können (beispielsweise die Webmaschine) oder sogar die Leute (Ausbildung und Evaluation).

Jetzt haben wir auf alle entscheidenden Elemente eines " Umwelt " berührt:

  • gibt es einen Zweck, ein intent , verfolgt
  • ein intent ein intender erfordert, so muss es eine sponsor (eine Person sein oder Gruppe, aber keine Maschine), die die intent
  • gibt
  • , die intent wird durch verschiedene verfolgt processes , die durch durchgeführt werden verschiedene actors
  • die actors Menschen sein kann, können sie Ausführen von Software auf Hardware sein, oder sie können Maschinen nicht-Software-driven, so kann es sein oder auch nicht Automatisierung vorhanden

Jetzt können wir richtig und vollständig unsere ursprünglichen Bedingungen definieren.

  

Ein environment besteht aus allen processes und ihre actors , die   Zusammenarbeit eine besondere verfolgen intent im Namen seiner sponsor . Das   auf Hardwaremittel Ausführen von Software, die nicht-Software-gesteuerten Maschinen bedeutet, und dass   ihre verschiedenen Aufgaben bedeutet, dass Personen durchführen. Es ist die intent , dass in erster Linie   ein environment definiert, nicht sein processes oder sein actors .

Darüber hinaus ...

  

Wenn Sie die intent in einer bestimmten verfolgt environment ist die    sponsor's Endziel, die in der Regel ein product beinhaltet die Herstellung oder   Bereitstellen einer service im Austausch für Geld, dann verweisen wir auf die    environment production .

Jetzt können wir ein bisschen weiter gehen.

  

Wenn Sie die intent in ein verfolgt environment ist die Überprüfung der    processes und ihre actors in Vorbereitung auf production , wir nennen   dass ein test environment .

     

Wir nennen es weiter ein integration environment , wenn diese Prüfung beinhaltet die   anfängliche Zusammenfügen von bedeutenden Personen oder Gruppen von processes und    ihr actors .

     

Wenn das Präparat die „Programmierung“ des Menschen beinhaltet actors neu auszuführen    processes , oder die nachträgliche Prüfung (Evaluierung), dann rufen wir, dass ein    training environment .

mit diesen Unterscheidungen und Definitionen Bewaffnet können wir nun mehr gemeinsamen Szenarien verstehen.

Ein environment kann mit einem Namen falsch beschriftet werden, das nicht sein überein intent , wie wenn eine training Umwelt test .

Ein environment können grob missbraucht werden, wenn beispielsweise integration oder training erfolgt in production .

Ein environment kann falsch dargestellt werden, wie zum Beispiel, wenn die Taste processes oder actors sind nicht identifizieren links (zB manuelle Abstimmungen, oder sogar durch Ignorieren die Menschen insgesamt).

Ein environment können Anschlüssen umfunktioniert werden, indem Repurposing seine processes und actors , um eine neue intent . Eine sehr erfolgreiche Technik für einige Unternehmen ist routinemäßig "Flip" mehrere Sätze von zu actors (Server-Hosting-Software) zwischen production , test , training und integration bei jeder neuen Version.

In den meisten Fällen ein einzelnes actor (Person oder Hardware) können mehrere ausführen processes , die in mehreren teilnehmen können environments . Zum Beispiel kann ein einzelner Computer-Server-Software hosten, die production Transaktionen während auch Hosting andere Software ausführt, die test oder training Funktionen ausführt.

Normalerweise wird eine einzelne Instanz eines actor in nur einer teilnehmen sollte environment zu einem Zeitpunkt. In sehr seltenen Fällen eine einzelne actor kann über environments , wenn die intents sind für beide Seiten geteilt werdenkompatibel. Die meiste Zeit ist es sehr unklug, eine solche gemeinsame Nutzung, um zu versuchen, weil die intents sind nicht wirklich kompatibel. Ein perfektes Beispiel läuft ein test process auf einem Server, der auch unterstützt production processes , was zu Ausfallzeiten, weil die test verursacht der gesamte Server zum scheitern verurteilt.

Daher ist die intent eines environment muss mit sehr weiten Spielraum ausgelegt werden, gehören Begriffe wie Verfügbarkeit Zuverlässigkeit Leistung Disaster Recovery Genauigkeit Genauigkeit Wiederholgenauigkeit Langlebigkeit , etc. Dies bedeutet, dass die actors und processes müssen oft ausgelegt werden Dinge enthalten wie Macht Bereitstellung Kühlung Backups und Redundanz .

Schließlich ist zu beachten, dass die Situation sehr komplex bekommen. Zum Beispiel ( actor ) ein Desktop-Computer kann durch das Entwicklungsteam ( sponsor ) zu bewirten ihre Quellcodeverwaltung ( process ) beauftragt werden, die das Team verlässt sich auf ihre Hauptaufgaben auf ( production ). Dennoch sehen die IT-Mitarbeiter, dass gleicher Desktop-Computer einfach als Entwickler-Workstation ( development , nicht production ) und behandelt sie mit Verachtung und Nonchalance, wenn es ein Hardware-Problem entwickelt. Aber die Entwickler produzieren production Code, so sind sie nicht auch ein Teil von production ? Perspective Angelegenheiten.

EDIT: Die Qualität der Produktion

Eine feste Prüfung ( testing ) Methodik von verpackt Code nehmen sollte development und es durch eine Reihe von laufen tests (Integration, TQA, Funktions-, Regressions-, Annahme-, etc.), bis sie aus der anderen Seite "gestempelt" für production Verwendung kommt. Doch das macht das Paket production Qualität , aber nicht wirklich production . Das Paket wird nur production , wenn ein sponsor setzt sie tatsächlich in ein environment mit dieser ultimativen Ebene von intent .

Allerdings, wenn Ihre Organisation lediglich das Paket erzeugt (seine product ) für den Verbrauch von anderen, dann wird eine solche Freisetzung kommt so nah an production , wie die Organisation erleben mit Bezug auf den product , so ist es üblich, den Begriff production strecken anzuwenden, anstatt klarstellen, dass es ist production Qualität . In Wirklichkeit diese Organisation production Umgebung besteht aus dem actors und processes beteiligt an der Entwicklung / Veröffentlichung Bemühungen, die in diesem führen product .

Ich sagte, es könnte ziemlich komplex ...

Jeder Code, der durch es bestimmt totzukriegen verwendet werden, werden in meine Definition von ‚Produktionscode‘ passen würde.

Natürlich ist die Grauzone in dieser Definition wäre klar zu definieren, wer Ihre totzukriegen ist.

G-Man

  • Die Produktionssoftware kann ohne Unterbrechung oder Verschlechterung des Dienstes
  • bei der notwendigen Arbeitsbelastung durchführt
  • Software hat in verschiedenen Produktionsszenarien erfolgreich getestet
  • Transforming funktionierenden Prototyp in Produktionssoftware, die läuft auf ausfallsichere redundante Architektur, die in realen Unternehmen arbeiten kann, das heißt Produktionsumgebung, Zeit, Code-Refactoring benötigt, und die Aufmerksamkeit auf Details
  • Der Produktionscode hat akzeptables Maß an Wartbarkeit und ist recht gut kommentiert
  • Die Dokumentation Handbuch erklärt Funktionalität, alle Funktionen und erleichtert die Wartung
  • Wenn die Produktionssoftware ein internationaler Dienst oder eine Anwendung ist, muss es lokalisiert werden
  • Produktionscode wird von Endanwendern eingesetzt, oft Kunden unter Bedingungen, die in AGB-of-Service-Vereinbarung
  • Produktionssoftware bedeutet nicht unbedingt zuverlässig geschäftskritische Software
  • Die Software funktioniert gut, was beabsichtigt wurde, zu tun
  • Log-Dateien eine genaue Beschreibung der Laufzeitleistung und Zuverlässigkeit der Software-Metriken und Reporting bereitzustellen, die das Debuggen tun erleichtern und Software-Wartbarkeit

Ich denke, der beste Weg, um es zu beschreiben, wie jeder Code ist, dass „führt zu“ Einsatz und „folgt-up“ Einsatz. Deployment selbst als alle Aktivitäten definiert, die ein Software-System zur Nutzung machen. Wenn Ihr Code ist bereit, von Menschen genutzt werden, im Haus oder auf andere Weise, dann ist es die Produktion Code.

In einfachen Worten "Production Code, der durch das beabsichtigte Publikum live und in Verwendung ist"

Der Begriff „Produktionscode“ mischt zwei unterschiedliche Konzepte. Eine davon ist Deployment Management und die andere ist Lebenszyklus freigeben.

Im strengen Sinne des Wortes, ist ein System, in der Produktion, wenn es als Teil des Geschäfts-oder Service-Betrieb verwendet wird. Was ist nicht in der Produktion ist die Entwicklung, Prüfung, QA, Demo und Staging-System. Produktionssystem nicht sofort Qualität bedeuten.

Ab Release Lebenszyklus Sicht ein „Produktion“ Build ist der Bau, den breiten Öffentlichkeit oder Kunden freigegeben wird. Es ist die Phase nach dem pre-alpha, alpha, beta, (feature complete, Code abgeschlossen, etc.) und Release-Kandidaten. Für Shrink-Wrap-Produkte, die nicht leicht Updates bereitstellen können, die Produktionsstufe erreicht impliziert wahrscheinlich Reihe von Tests und Fehlerbehebung.

alt text

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