Qu'est ce qu'un Cale?
Quelle est la définition d'un Cale?
- J'aime cette question.
- Afin de mieux de demander: "Qui est cale?".
- narcissique alerte 😀 Quand vous dites cela, il me rappelle de jules césar dans astérix comics parler de lui à la troisième personne - <a href="une" >tvtropes.org/pmwiki/pmwiki.php/Main/... la Troisième Personne Personne</a> exemple <a href="rechercher" >ib.frath.net/w/Asterix">la recherche pour le texte de la "troisième personne"</a>
Vous devez vous connecter pour publier un commentaire.
De Wikipedia:
Le terme de "shim" tel que défini dans Wikipedia serait techniquement être classés, à partir de sa définition, comme un "Structurelle" modèle de conception. Les nombreux types de “Structurel” des modèles de conception sont très clairement décrites dans le (certains diraient defacto) orientée objet patrons de conception logiciels de référence "Les Modèles de conception, des Éléments de Logiciels Orientés Objets Réutilisables" mieux connue sous le nom La "bande des Quatre".
La La "bande des Quatre" des contours de texte au moins 3 modèles établis connu sous le nom de "Proxy", "Carte" et "de Façade", qui proposent tous des “shim” type de fonctionnalité. Dans la plupart des domaines, il est souvent l'utilisation et ou manquer de l'utilisation de différents acronymes pour la même racine concept qui pousse les gens à confusion. En utilisant le mot “cale” pour décrire le plus spécifique “Structurelle” des modèles de conception "Proxy", "La carte" et "De façade" est certainement un exemple clair de ce type de situation. Une "cale" est simplement un terme plus général pour les types spécifiques de "Structurelles" modèles "Proxy", "Carte", "Façade" et éventuellement d'autres.
real
réponse que de simples wikipedia copie & coller par @Prasoon Saurav...Explication Simple via Cartoon
Un exemple de cale:
Sommaire
Une cale est un code qui prend soin de ce qui est demandé (par 'interception'), sans que personne ne soit plus sage à ce sujet. C'est le concept général. Maintenant, vous devriez être capable de lire et comprendre l'article de wikipédia sur des cales.
Comme pour les origines de la parole, dit-Apple Dictionnaire widget
Cela semble correspondre assez bien à la façon dont concepteurs de sites web utilisent le terme.
Cales sont utilisées .net 4.5 de Microsoft Faux cadre pour isoler votre application à partir d'autres assemblées pour les tests unitaires. Des cales de renvoyer les appels à des méthodes spécifiques pour le code que vous écrivez dans le cadre de votre essai
Selon Microsoft de l'article "Démystification Des Cales":
Je interpréter cela signifie qu'une cale est un terme générique pour toute bibliothèque de code qui agit comme un intermédiaire et, partiellement ou totalement des modifications du comportement ou du fonctionnement d'un programme. Comme un véritable intermédiaire, il peut affecter les données transmises à ce programme, ou d'affecter les données renvoyées par ce programme.
L'article utilise l'API de Windows comme un exemple, et j'ai trouvé la phrase suivante pertinentes:
De généraliser cette citation, les deux programmes qui font du "pain" de la "cale sandwich" ne devrait pas être en mesure de différencier entre parler à leurs homologues de programme et de parler à la cale.
Quels sont certains des avantages et des inconvénients de l'utilisation de cales?
De nouveau, à partir de l'article:
Dans le contexte de cette question, des termes comme "proxy", "carte", et de "façade" plus de sens (au moins pour moi) après avoir lu le lien ci-dessus.
Comme nous avons pu le voir dans de nombreuses réponses ici, une cale est une sorte de carte qui fournit des fonctionnalités au niveau de l'API qui n'est pas nécessairement partie de l'API. Ce thread a beaucoup de bon et de compléter les réponses, donc je ne suis pas d'élargir la définition plus loin.
Cependant, je pense que je peux ajouter un bon exemple, qui est le Javascript ES5 Cale (https://github.com/es-shims/es5-shim):
Javascript a beaucoup évolué au cours des dernières années, et parmi beaucoup d'autres modifications de la spécification du langage, beaucoup de nouvelles méthodes ont été ajoutées à ses principaux objets.
Par exemple, dans le ES2015 spécification (aka ES5), la méthode
find
a été ajouté à laArray
prototype. Donc, disons que vous exécutez votre code à l'aide d'un JavasScript moteur avant de faire le présent cahier des charges (ex: Nœud 0.12) qui n'offre pas cette méthode encore. En chargeant l'ES5 cale, ces nouvelles méthodes seront ajoutés à laArray
prototype, vous permettant de faire usage d'entre eux, même si vous n'êtes pas en cours d'exécution sur une nouvelle JavaScript spécification.Vous pourriez vous demander: pourquoi quelqu'un pour le faire à la place de la mise à niveau de l'environnement vers une version plus récente (disons le Nœud 8)?
Il y a beaucoup de cas réels scénarios où cette approche a du sens. Un bon exemple:
Disons que vous avez un système d'héritage qui est en cours d'exécution dans une ancienne environnement, et vous avez besoin d'utiliser ces nouvelles méthodes à mettre en œuvre/de fixer une fonctionnalité. La mise à niveau de votre environnement est toujours un travail en cours, parce qu'il y a des problèmes de compatibilité qui nécessitent beaucoup de changements de code et des tests (élément essentiel).
Dans cet exemple, vous pourriez essayer de créer votre propre version d'une telle fonctionnalité, mais qui rend votre code plus difficile à lire, plus complexes, peuvent introduire de nouveaux bogues et nécessitera des tonnes de tests supplémentaires pour couvrir une fonctionnalité que vous savez qu'il sera disponible dans la prochaine version.
Au lieu de cela, vous pouvez utiliser cette cale et faire usage de ces nouvelles méthodes, profitant du fait que cette correction/fonctionnalité sera compatible après la mise à niveau, parce que vous êtes déjà en utilisant les méthodes connues pour être disponible dans la prochaine spécification. Et il y a une raison bonus: puisque ces méthodes sont natifs de la prochaine spécification de langage, il ya une bonne chance qu'ils vont courir plus vite que n'importe quelle application que vous auriez fait si vous avez essayé de faire votre propre version.
Un autre véritable scénario où une telle approche est la bienvenue est au niveau du navigateur. Disons que vous avez besoin à l'appui de vieux navigateur et que vous voulez prendre avantage de ces nouvelles fonctionnalités. Javascript est un langage qui permet d'ajouter/modifier les méthodes de ses principaux objets (comme l'ajout de méthodes de mise en réseau de prototype), et ceux cale bibliothèques sont assez intelligents pour ajouter des méthodes telles que si l'implémentation actuelle est en manque d'eux.
PS:
1) Vous verrez le terme "Polyfill" liées à ces Javascript cales. Polyfill est un plus spécialisés type de cale qui est utilisé pour fournir de l'avant de compatibilité de navigateur différent des spécifications de niveau. En passant, mon exemple ci-dessus se réfère exactement à un tel exemple.
2) les Cales ne sont pas limitée à cet exemple (en ajoutant des fonctionnalités qui seront disponibles dans une prochaine version). Il existe différents cas d'utilisation qui serait considéré comme une cale en tant que bien.
3) Si vous êtes curieux de savoir comment ce polyfill est mis en œuvre, vous pouvez ouvrir Javascript Tableau.trouver spécifications et faites défiler jusqu'à la fin de la page où vous trouverez une canoniques de la mise en œuvre de cette méthode.
CALE est d'un autre niveau de contrôle de sécurité qui est fait pour tous les services, de protéger les systèmes en amont. CALE de Serveur valide chaque demande entrante, avec les en-Têtes d'identification de l'Utilisateur, à l'encontre de l'identification de l'utilisateur, qui sont transmis dans la demande(SOAP /RESTFUL).