Question

Comme presque tous les programmeurs depuis longtemps, je connais le terme & "Code de production &"; et avoir un sens vague de ce que cela signifie. Cependant, quelqu'un peut-il proposer une définition semi-rigoureuse, puisqu'il semble que Wikipédia et Google ne le peuvent pas? Il semble y avoir beaucoup de zones grises dans ce qui est considéré comme de la production, tels que des outils internes utilisés par un petit groupe de personnes et, par conséquent, pas & "Formalisé &"; en termes d’interface utilisateur, de documentation, etc. et d’applications open source complètes, sans bogues et fonctionnant raisonnablement, mais manquant de finition, d’interface utilisateur et de tests exhaustifs.

Était-ce utile?

La solution

Production signifie tout ce dont vous avez besoin pour travailler de manière fiable et cohérente.

S'il s'agit d'un script de construction ou d'un serveur Web ouvert au public.

Lorsque d'autres personnes s'appuient sur votre code, en particulier des personnes qui ne le comprennent pas (c'est-à-dire même les & "intelligents &"; développeurs mais peut-être pas dans votre groupe, mais en utilisant une bibliothèque que vous avez écrite), ce code est: code de production.

C'est la production parce que & "le travail s'arrête &"; et " l'argent est perdu " lorsque le code de production échoue.

Autres conseils

Lorsque votre code est exécuté sur un système de production, cela signifie qu'il est utilisé par le public cible dans une situation réelle.

Code de production, cependant, ne signifie pas nécessairement un code robuste, fiable ou stable. Le journal WTF fournit de nombreuses preuves à cet égard.

Si je comprends bien, la définition est que le code de production est tout code installé ou utilisé sur un système en direct, sans banc d'essai. Un serveur utilisé en interne dans une entreprise est un système de production s'il s'agit du système actif utilisé par les employés de l'entreprise. Le point ici est que le code exécuté sur un serveur interne à la société qui écrit le code peut être un code de production.

Généralement, lorsqu’on examine le code interne, on peut bien distinguer si le groupe qui gère le code est distinct du groupe qui l’utilise. Si les groupes sont séparés, il y a de fortes chances que le code soit un code de production. Si l'exploitation de l'entreprise dépend du code, il s'agit bien du code de production, même s'il est développé et géré en interne.

EDIT: La réponse courte: Si vous &, misez sur la ferme & ", c’est &" la production & " .

C’est une excellente question. Il s’agit d’une distinction absolument critique qui cause régulièrement des problèmes à tout le monde en raison de malentendus. La question de savoir quelle est la & Quot; production & Quot; est un sous-ensemble de la question connexe de ce qui est un quot &; environnement quot &;.

  

Donc, une partie de la réponse est que & "; la production &"; est LE " environnement " c'est le plus    important et mérite le plus confiance en tant que & "; réel &"; chose.

Il faut donc maintenant définir & "; environnement &"; (puis revisitez " production "). Nous sommes encore loin d'une réponse satisfaisante.

Nous, programmeurs, utilisons le terme & "; environnement &"; faire constamment référence à des systèmes informatiques constitués de matériel exécutant un logiciel. Ce logiciel est le code que nous avons écrit plus le logiciel dont il dépend, qui a été écrit par d'autres. Nous écrivons notre code et l’intégrons avec les autres logiciels, puis nous exécutons généralement le logiciel intégré selon une série croissante de tests (tests unitaires, tests d’intégration, tests de fonctionnement, tests de réception, tests de régression, etc.), jusqu’à ce que nous exécutions le logiciel intégré dans son intégralité.

Bien sûr, tout n’est pas entièrement automatisé. Il y a généralement de nombreuses personnes impliquées et elles ont des processus manuels à exécuter. Nous programmeurs cherchons des moyens d'automatiser le plus grand nombre de ces processus que possible, mais il y a toujours un quot &, L'homme / limite de la machine quot &; dans les systèmes sur lesquels nous travaillons. Souvent, il existe de nombreuses limites de ce type dans chaque cas particulier.

D’autre part, il se peut qu’il n’y ait aucune automatisation significative. Par exemple, nous avons parlé de & Quot; production & Quot; Il y a bien longtemps, lorsque nous avions une salle remplie de personnes effectuant des travaux manuels qui produisaient un produit . Donc, il ne doit y avoir aucune automatisation dans notre & Quot; production & Quot; & "; environnement &". Il y a aussi un terrain d'entente, où l'automatisation impliqué ne comprend pas le logiciel, comme dans le cas d'une personne en cours d'exécution d'un métier à tisser pour tisser tissu.

En outre, il ne peut pas être produit , puisque nous avons adapté notre langue de quot &; production quot &; " environnement " inclure des fournisseurs de services sans produit.

De même, les tests peuvent ne pas impliquer de logiciel, car nous testons peut-être une machine non pilotée par logiciel (par exemple, le métier à tisser) ou même les personnes (formation et évaluation).

Maintenant, nous avons abordé tous les éléments essentiels d'un quot; environnement quot & &;:

  • il existe un objectif, un intent suivi
  • sponsor nécessite un intender, il doit y avoir un processes (une personne ou groupe, mais pas une machine) spécifiant le actors
  • que environment est poursuivi à travers différents sponsor's qui sont exécutés par divers product
  • service peuvent être des personnes, des logiciels s’exécutant sur du matériel ou peuvent être des machines non pilotées par logiciel, il peut donc y avoir ou non une automatisation présente

Nous pouvons maintenant définir correctement et complètement nos termes d'origine.

  

Un production est constitué de tous les test et de leurs integration   collaborer pour poursuivre un training particulier au nom de son actor . Cette   signifie que le logiciel s'exécute sur du matériel, c'est-à-dire des machines non pilotées par logiciel, et que   signifie que les gens effectuent leurs divers duties. Ce sont les environments qui principalement   définit un intents , et non son process ou son development .

En outre ...

  

Si testing est poursuivi dans un tests particulier, c'est le    <=> objectif ultime, qui consiste généralement à produire un <=> ou   fournir un <=> en échange d'argent, nous nous référons à cela    <=> sous la forme <=> .

Nous pouvons maintenant aller un peu plus loin.

  

Si <=> est poursuivi dans un <=> , c'est la vérification de    <=> et leur <=> en préparation de <=> , nous appelons   qu'un <=> <=> .

     

Nous l'appelons en outre un <=> <=> si ce test implique la   réunion initiale d’individus ou de groupes importants de <=> et   leur <=> .

     

Si cette préparation implique la & programmation; & la programmation; <=> humain à effectuer de nouvelles    <=> , ou la vérification ultérieure (évaluation), nous appelons cela un    <=> <=> .

Forts de ces distinctions et définitions, nous pouvons maintenant comprendre plusieurs scénarios courants.

Un <=> nom peut ne pas correspondre à son <=> nom, par exemple lorsqu'un <=> environnement est utilisé comme <=> .

Un <=> peut être très mal utilisé, comme lorsque <=> ou <=> est défini dans < => .

Un <=> peut être présenté de manière erronée, par exemple lorsque la clé <=> ou <=> n'est pas identifiée (par exemple, réconciliations, ou même en ignorant complètement les gens).

Un <=> peut être redéfini en réorientant ses <=> et <=> vers un nouveau <= > . Une technique très efficace pour certaines organisations consiste à > retourner; > régulièrement; plusieurs ensembles de <=> (logiciel d’hébergement de serveurs) entre <=> , <=> , <=> et <=> à chaque publication.

Dans la plupart des cas, un seul <=> (personne ou matériel) peut exécuter plusieurs <=> pouvant participer à plusieurs <=> . Par exemple, un serveur informatique unique peut héberger un logiciel effectuant des <=> transactions tout en hébergeant un autre logiciel exécutant des <=> ou <=> fonctions.

Normalement, une seule instance d'un <=> ne devrait participer qu'à un seul <=> à la fois. Dans de très rares cas, un seul <=> peut être partagé entre <=> si les <=> sont mutuellement compatibles. La plupart du temps, il est très peu judicieux de tenter un tel partage car les <=> ne sont pas vraiment compatibles. Un exemple parfait consiste à exécuter un <=> <=> sur un serveur prenant également en charge <=> <=> , ce qui entraîne des temps d'arrêt car <=> entraîne l'échec de l'intégralité du serveur.

Par conséquent, la <=> d'un <=> doit être interprétée avec une très grande latitude pour inclure des concepts tels que la disponibilité , fiabilité , performances , reprise sur sinistre , précision , précision , répétabilité , longévité , etc. Cela signifie que les éléments <=> et <=> doivent souvent être interprétés comme incluant < em> fournissant de l'énergie , refroidissement , sauvegardes et redondance .

Enfin, notez que la situation peut devenir assez complexe. Par exemple, un ordinateur de bureau ( <=> ) peut être chargé par l'équipe de développement ( <=> ) d'héberger son contrôle de source ( <=> ), sur lesquels l'équipe s'appuie pour ses tâches principales ( <=> ). Néanmoins, le personnel informatique considère ce même ordinateur de bureau comme un simple poste de travail de développeur ( <=> , pas <=> ) et le traite avec mépris et nonchalance lorsqu'il développe une problème de matériel. Mais les développeurs produisent du <=> code, ils ne font donc pas également partie de <=> ? La perspective compte.

EDIT: qualité de la production

Une méthodologie de vérification solide ( <=> ) doit extraire le code empaqueté de <=> et l'exécuter à travers une série de <=> (intégration, TQA, fonctionnel, régression, acceptation, etc.) jusqu'à ce qu'il sorte de l'autre côté & "; estampillé &"; pour une utilisation <=> . Cependant, cela rend le package <=> de qualité , mais pas réellement <=> . Le package devient <=> uniquement lorsqu'un <=> agent le déploie réellement dans un <=> niveau correspondant à ce niveau < => .

Toutefois, si votre organisation produit uniquement ce package (son <=> ) pour la consommation d'autres personnes, une telle publication est aussi proche de <=> que que cette organisation connaîtra par rapport à ce <=> , il est donc courant d’étirer le terme <=> pour l’appliquer plutôt que de préciser qu’il s’agit <= > qualité . En réalité, l’environnement <=> de cette organisation se compose des éléments <=> et <=> impliqués dans ses efforts de développement / diffusion qui aboutissent à: que <=> .

J'ai dit que ça pourrait devenir assez complexe ...

Tout code qui sera utilisé par la base utilisateur souhaitée correspondrait à ma définition du "code de production".

Bien sûr, la zone grise dans cette définition définirait clairement qui est votre base d'utilisateurs.

G-Man

  • Le logiciel de production peut exécuter la charge de travail nécessaire sans interruption ni dégradation du service
  • Le logiciel a été testé avec succès dans différents scénarios de production
  • Transformer un prototype fonctionnel en logiciel de production fonctionnant sur une architecture redondante à sécurité intégrée pouvant fonctionner dans de véritables entreprises, c’est-à-dire un environnement de production nécessitant du temps, une refactorisation du code et une attention particulière aux détails
  • Le code de production a un niveau de maintenabilité acceptable et est raisonnablement bien commenté
  • Le manuel de documentation explique les fonctionnalités, toutes les fonctionnalités et facilite la maintenance
  • Si le logiciel de production est un service ou une application internationale, il doit être localisé
  • Le code de production est utilisé par les utilisateurs finaux, souvent les clients, dans les conditions décrites dans le contrat de service
  • .
  • Un logiciel de production ne signifie pas nécessairement un logiciel fiable essentiel à la mission
  • Le logiciel fonctionne bien, ce à quoi il était destiné
  • Les fichiers journaux fournissent une description précise des performances et des mesures de fiabilité du logiciel et de la performance logicielle, ce qui facilite le débogage et la maintenabilité du logiciel

Je pense que la meilleure façon de le décrire, est comme n'importe quel code qui & "conduit-à &"; déploiement et " suivi " déploiement. Le déploiement lui-même est défini comme toutes les activités qui rendent un système logiciel disponible pour utilisation. Si votre code est prêt à être utilisé par des personnes, en interne ou non, il s'agit d'un code de production.

En termes simples & "; Code de production en direct et utilisé par son public cible &";

Le terme " code de production " mélange deux concepts différents. L’un est la gestion du déploiement et l’autre le cycle de vie d'une version .

Au sens strict du terme, un système est en production lorsqu'il est utilisé dans le cadre d'activités commerciales ou de services. Ce qui n'est pas en production, ce sont les systèmes de développement, de test, d'assurance qualité, de démonstration et de transfert. Le système de production n'implique pas immédiatement la qualité.

Du point de vue du cycle de vie d'une version, une & production; & "; build est la version publiée au grand public ou aux clients. C'est l'étape après pré-alpha, alpha, bêta (fonctionnalité complète, code complet, etc.) et la version candidate. Pour les produits sous film rétractable qui ne peuvent pas déployer facilement les mises à jour, le stade de la production implique probablement une série de tests et de corrections de bugs.

alt text

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top