Contacts

Que sont les référentiels Linux et comment installer des programmes à partir de ceux-ci et des packages ! Que sont les référentiels et à quoi servent-ils sous Linux ? Que sont les référentiels

Tous les types de programmes ou de mises à jour actuellement utilisés dans Ubuntu sont installés exclusivement à partir de référentiels. Dans le même temps, de nombreux utilisateurs ne savent même pas ce que c'est et quel est son objectif principal.

Ce que c'est?

Le référentiel est un endroit spécial à partir duquel l'utilisateur du système d'exploitation Ubuntu peut installer toutes sortes de mises à jour ou de programmes. Si vous avez déjà utilisé les systèmes d'exploitation Mac et Windows, vous vous êtes probablement déjà habitué au fait que le logiciel est un ou plusieurs fichiers d'installation qui sont fournis à l'utilisateur sur certains supports ou peuvent être téléchargés via Internet. Pour le système d'exploitation Ubuntu, cette option de distribution de logiciels est également fournie, mais cela s'applique davantage aux programmes spécialisés fermés ou propriétaires.

Le référentiel est l'endroit où la plupart des logiciels Ubuntu sont stockés, regroupés dans des fichiers .deb spécialisés contenant les bibliothèques requises. Ces fichiers peuvent souvent être trouvés sur Internet ou sur n'importe quel support portable, même sur un CD à partir duquel le système d'exploitation lui-même est installé.

Référentiel en tant que référentiel universel Ubuntu

Cependant, en voyant de tels fichiers, de nombreux utilisateurs peuvent même ne pas savoir ce qu'est un référentiel. Il s'agit d'un serveur de stockage spécialisé qui héberge ces fichiers. En d'autres termes, les référentiels peuvent être appelés une sorte de source d'applications, car les utilisateurs s'y connectent depuis leurs ordinateurs via le réseau ou Internet à l'aide d'utilitaires spécialisés, après quoi ils peuvent voir quels packages sont actuellement sur l'ordinateur et lesquels peuvent être installés. . Il convient de noter que la grande majorité des utilitaires prennent en charge une simple procédure de recherche par mot-clé et peuvent également diviser les packages en plusieurs groupes par catégorie.

Les référentiels Ubuntu contiennent une quantité énorme d'une grande variété de logiciels, il n'est donc souvent pas difficile de trouver un utilitaire qui vous intéresse. Bien sûr, vous pouvez simplement télécharger un paquet de fichiers .deb sur Internet ou même essayer de créer vous-même le programme à partir de la source, mais vous devez comprendre que cette option est plus laborieuse et ne finit pas toujours par être efficace.

Comment rechercher et installer divers programmes ?

Au départ, lorsque vous utilisez les référentiels Ubuntu, vous devez supposer qu'il existe une certaine tâche qui doit être résolue à l'aide de l'utilitaire, mais vous ne savez peut-être même pas si elle existe et comment elle s'appelle. Cependant, il est probable que vous connaissiez des programmes équivalents qui sont utilisés dans d'autres systèmes d'exploitation.

À l'aide d'un moteur de recherche Internet, vous trouvez les options du programme souhaité qui vous intéressent, par exemple en tapant le nom d'un utilitaire similaire sous Windows, mais en ajoutant "pour Ubuntu" à la requête. Dans la grande majorité des cas, le moteur de recherche vous donnera plusieurs noms de programmes, alors qu'il convient de noter le fait qu'ils peuvent être présentés en assez grand nombre, mais vous pouvez choisir le plus optimal en fonction des avis de ces utilisateurs. qui l'ont déjà utilisé. Presque tous les utilitaires modernes ont leur propre page sur Internet, où vous pouvez vous familiariser avec des caractéristiques supplémentaires ou afficher des captures d'écran.

Où télécharger le programme ?

Après avoir décidé du nom du programme qui vous intéresse, vous devrez lancer le centre logiciel Ubuntu, puis le trouver dans la liste disponible. Très probablement, vous pourrez le trouver et l'installer dans un délai assez court. De plus, il est probable que les développeurs aient leurs propres référentiels pour iOS 7 ou d'autres systèmes d'exploitation. Dans la très grande majorité des cas, ces référentiels contiennent les dernières versions du programme qui vous intéresse, donc si vous êtes intéressé par une productivité maximale, vous devez examiner attentivement le site et utiliser la recherche.

Ce n'est que dans le cas où vous ne trouveriez pas le programme souhaité à l'aide des référentiels pour iOS 7 ou d'autres systèmes d'exploitation que vous devriez essayer d'autres options d'installation. Il arrive souvent que les versions des logiciels qui se trouvent dans les référentiels soient des versions obsolètes, mais en fait, il existe souvent des situations où elles sont mieux intégrées à Ubuntu et, dans certaines situations, diffèrent également par un fonctionnement plus stable. .

Sections

Dans Ubuntu, les meilleurs référentiels sont divisés en quatre sections, appelées composants, qui sont censées refléter la page à la fois en termes de licence et de niveau de support disponible pour l'utilisateur. Les packages sont divisés en composants comme suit :

  • Main est un logiciel entièrement gratuit géré par Canonical.
  • Restricter est un logiciel propriétaire qui comprend principalement divers pilotes de périphériques. Tous les utilitaires sont également pris en charge par Canonical.
  • Universe est également un logiciel libre qui n'est pas officiellement pris en charge par Canonical, mais qui est contrôlé par la communauté des utilisateurs du système d'exploitation.
  • Multiverse est un logiciel propriétaire non pris en charge par Canonical.

Types de référentiel

Il existe également 5 référentiels principaux :

  • Release - packages qui ont été publiés au moment de la publication.
  • Release-security - packages contenant des mises à jour de sécurité critiques.
  • Mises à jour de version - packages contenant des mises à jour du système, y compris diverses versions plus récentes de logiciels qui ont été publiées depuis la sortie officielle.
  • Les release-backports sont toutes sortes de backports qui appartiennent aux nouvelles versions de certains logiciels qui ne sont disponibles que sur les versions instables du système d'exploitation Ubuntu.
  • Partenaire - un référentiel contenant divers logiciels d'entreprises partenaires de Canonical.

Il convient de noter qu'en plus des référentiels officiels, il existe également d'autres référentiels pour iOS 8 et d'autres systèmes d'exploitation. Ils peuvent être créés par les auteurs de certains utilitaires, ainsi que par des personnes qui décident simplement de compiler un package complet à partir des sources, puis de le publier dans le domaine public pour d'autres utilisateurs.

Ajout via Launchpad

Si vous ne savez pas comment ajouter un référentiel, Launchpad vous aidera avec cela, offrant la possibilité de créer des référentiels PPA. Ces référentiels sont des packages relativement petits dans lesquels le propriétaire place diverses sources, et les utilisateurs reçoivent un document deb complet à la fin.

Comment se connecter?

Si une personne ne trouve pas l'utilitaire qui l'intéresse, elle peut déterminer indépendamment comment ajouter un référentiel, puis y télécharger le logiciel nécessaire. Après tout, il arrive assez souvent que les référentiels Ubuntu manquent simplement de divers utilitaires qui peuvent être nécessaires pour résoudre certains problèmes. C'est pour cette raison qu'il existe un assez grand nombre de référentiels tiers, en se connectant auxquels vous pouvez accéder aux logiciels nécessaires. Cela peut être fait à la fois en utilisant et via la console.

Il convient de noter immédiatement le fait que dans certains référentiels, en plus des packages dont vous avez besoin, il peut également y avoir toutes sortes de versions expérimentales de divers logiciels, y compris des noyaux contenant des référentiels Linux. Étant donné que la version de ces packages est dans la plupart des cas supérieure à celle que vous utilisez, le "gestionnaire de mise à jour" peut essayer de mettre à jour le système lui-même. Il le fera via des référentiels gratuits, ce qui peut endommager votre système. C'est pour cette raison que dans tous les cas, vous devez lire attentivement les descriptions du stockage connecté, ainsi que les informations contenues dans le "Gestionnaire de mise à jour".

Utilisation de l'interface graphique

Dans ce cas, les référentiels pour iOS 8 et d'autres systèmes d'exploitation sont connectés comme suit :

  1. Le centre logiciel Ubuntu s'ouvre.
  2. Ensuite, allez dans "Modifier" / "Sources d'application".
  3. Dans la nouvelle fenêtre, sélectionnez l'onglet "Autres logiciels", puis cliquez sur le bouton "Ajouter".
  4. Dans la nouvelle fenêtre, remplissez le champ "Line ART :", appuyez sur le bouton "Ajouter une source".
  5. Maintenant que la source est ajoutée et activée, vous pouvez fermer la fenêtre.

Comme vous avez connecté une nouvelle source logicielle, vous devrez mettre à jour les informations du package. Dans la grande majorité des cas, après connexion, une fenêtre apparaît dans laquelle l'utilisateur est invité à mettre à jour ces données. Dans la fenêtre, il vous suffit de cliquer sur le bouton "Mettre à jour".

Une fois que vous avez mis à jour toutes les informations sur le package, la fenêtre Sources d'application se fermera et vous obtiendrez très probablement une erreur indiquant que la source d'application n'est pas signée. Cependant, vous pouvez installer les utilitaires qui vous intéressent, contenus dans le référentiel auquel vous vous êtes connecté, à l'aide d'outils standard. Pour corriger l'erreur de référentiel non signé, vous devez déjà comprendre le système de sécurité.

Utilisation de la console

Cette option est la plus optimale de toutes les méthodes existantes. Il est préférable d'ajouter un référentiel local ou d'autres types de référentiels à l'aide de la console. Cela se fait assez simplement, car le dépôt s'ajoute avec une seule commande, comme par exemple : sudo apt-add-repository ppa:ripps818/coreavc.

Si nécessaire, vous pouvez supprimer le référentiel de la même manière via la console.

Système de protection

Étant donné que dans la plupart des cas, les référentiels sont situés sur Internet, il est possible que les attaquants puissent remplacer le référentiel par le leur, qui contient divers packages modifiés. Ainsi, en installant un logiciel modifié sur votre ordinateur, l'utilisateur peut mettre son système en danger. Cependant, de nombreux référentiels offrent une protection contre la substitution. Cette option de protection est mise en œuvre en comparant les signatures numériques du client et du référentiel. Dans le cas où le référentiel possède une signature numérique, il existe une clé sur l'ordinateur de l'utilisateur qui est publique pour ce référentiel.

Dans Ubuntu, les référentiels par défaut qui se trouvent sur les disques d'installation sont approuvés. S'il existe plusieurs référentiels connectés sur l'ordinateur de l'utilisateur en même temps, les référentiels de confiance seront préférés.

Comment ajouter une clé ?

Lors de la connexion d'un stockage protégé par une signature numérique, vous devrez télécharger une clé publique spécialisée qui doit être ajoutée au système. Très souvent, un package peut être fourni en téléchargement, disponible pour l'installation, qui écrira complètement la clé du référentiel par lui-même. Si vous téléchargez la clé directement à partir du site du référentiel, vous recevrez un fichier standard avec l'extension .gpg, .key ou autre. Vous pouvez ajouter ce fichier au système à l'aide de la commande de console sudo apt-key add repo.key, mais au lieu de .key, la clé de référentiel que vous avez reçue est indiquée.

Ajout d'une clé via le serveur

La meilleure option consiste à ajouter la clé via un serveur spécialisé sous protection. Assez souvent, lorsqu'il s'agit d'une clé, son identifiant alphanumérique est donné, ce qui à première vue peut être complètement incompréhensible pour l'utilisateur, mais il s'agit d'un nom unique. Ces clés sont situées sur des serveurs spéciaux, à partir desquels n'importe qui peut les obtenir.

Salutations à tous!

Dans le dernier article, nous avons découvert comment installer des mises à jour et des extras à partir des dépôts officiels Linux Ubuntu Comment installer des mises à jour et des extras pour Linux Ubuntu !

Que sont les référentiels Linux.
Référentiel Linux, stockage - un endroit où toutes les données sont stockées et conservées. Le plus souvent, les données du référentiel sont stockées sous la forme de fichiers disponibles pour une distribution ultérieure sur le réseau.

Étant donné que les référentiels Linux sont situés sur Internet, il est possible pour un attaquant de remplacer le référentiel par le sien, contenant des packages modifiés. De nombreux référentiels disposent d'une protection anti-falsification.

La protection est mise en œuvre en vérifiant les signatures numériques du référentiel Linux et du client.

Les référentiels Linux de confiance sont ceux qui sont signés numériquement et l'ordinateur de l'utilisateur contient la clé publique de ce référentiel.

Dans Ubuntu Linux, les référentiels sur les disques d'installation et les principaux référentiels Internet, archive.ubuntu.com, sont approuvés par défaut. S'il existe plusieurs référentiels Linux connectés sur l'ordinateur, la préférence est donnée à ceux de confiance.

Lors de la connexion d'un référentiel Linux protégé par une signature numérique, vous devez télécharger la clé publique et l'ajouter au système. Parfois, un package disponible pour l'installation est fourni en téléchargement, qui, une fois installé, prescrit lui-même la clé du référentiel. Si vous téléchargez la clé à partir du site du référentiel Linux, vous obtiendrez un fichier normal avec une extension .key, .gpg ou autre.

Pour consolider la théorie, envisageons d'ajouter un référentiel Linux supplémentaire dans la pratique en utilisant la machine virtuelle multiplateforme gratuite Oracle VirtualBox version 5.0 comme exemple.

Ouvrir un terminal pour travailler sur la ligne de commande ()

Pour modifier le fichier /etc/apt/sources.list sur la ligne de commande, tapez (mcedit-éditeur de texte, voir comment l'installer)

sudo mcedit /etc/apt/sources.list

Pour obtenir des privilèges supplémentaires, vous devez entrer le mot de passe de l'utilisateur et appuyer sur la touche "Entrée" du clavier.

Ajouter une ligne à la fin du fichier
deb http://download.virtualbox.org/virtualbox/debian trusty contrib

Pour enregistrer les modifications apportées, appuyez sur la touche "F2" du clavier et confirmez l'écrasement du fichier en cliquant sur le bouton "Enregistrer".

Pour revenir à la ligne de commande, quittez le fichier en appuyant sur la touche "F10" du clavier.
L'étape suivante consiste à télécharger la clé publique et à l'ajouter à notre système.
Pour ce faire, copiez la ligne suivante

sudo wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | ajout de clé sudo apt -

et appuyez sur la touche Entrée du clavier.

Après avoir ajouté la clé, nous obtenons la réponse que tout va bien.

Nous avons examiné comment ajouter un nouveau référentiel Linux et une clé publique. À l'avenir, vous pourrez ajouter vous-même de nouveaux référentiels Linux. Vous pouvez trouver toutes les informations nécessaires sur le site Web du développeur de ce logiciel.
Pour installer VirtualBox version 5.0. il est nécessaire de mettre à jour les listes de packages (comment faire, voir ) et seulement après cela, démarrer l'installation (comment faire, voir )
Sur la ligne de commande, tapez la ligne suivante
sudo apt-get install virtualbox-5.0
et appuyez sur la touche "Entrée" du clavier.

Afin d'exécuter le programme virtualbox-5.0. cliquez sur l'icône dans le coin supérieur gauche de l'écran "Rechercher sur l'ordinateur ..."
Dans la barre de recherche, entrez "virt"
Et sélectionnez le programme "Oracle VM VirtualBox" en cliquant sur le bouton gauche de la souris.

Pour afficher la version du programme installé, dans le panneau supérieur, sélectionnez "Aide", "À propos"

Nous voyons que nous avons installé VirtualBox Version 5.10 r104061

Nous avons expliqué comment travailler avec VirtualBox dans l'article.
Installation et configuration d'un programme pour travailler avec des machines virtuelles - Oracle VirtualBox)

Afin de ne pas chercher à chaque fois le programme nécessaire, nous pouvons le fixer sur le panneau. Pour cela, faites un clic droit sur l'icône et sélectionnez "Épingler au panneau"

Après la fermeture du programme, l'icône reste sur le panneau.

De cette façon, vous pouvez épingler les programmes dont vous avez besoin sur le panneau.

Voyons maintenant comment installer des programmes à partir de packages.
Vous pouvez également installer le programme VirtualBox à partir du package en le téléchargeant depuis le site officiel. L'inconvénient de cette méthode est que nous devrons également installer manuellement toutes les mises à jour ultérieures jusqu'à ce que nous ajoutions le référentiel VirtualBox à notre système Linux.

Mais tous les programmes n'ont pas de référentiel Linux. Et ces programmes ne peuvent être installés et mis à jour que manuellement. Un excellent exemple est Skype.

Pour l'installer, téléchargez le package depuis le site officiel. Comme il n'y a pas de package pour notre version 14.04, nous choisissons la version 12.04 la plus proche.

Nous acceptons et sauvegardons le fichier.

Sélectionnez le fichier téléchargé et spécifiez d'ouvrir le dossier avec le fichier téléchargé.

Habituellement, tous les fichiers téléchargés sont stockés dans le répertoire personnel de l'utilisateur dans le dossier "Téléchargements".

Faites un clic droit sur l'icône et sélectionnez "Ouvrir avec App Center".

Le centre d'applications s'ouvrira. Pour installer le package, cliquez sur le bouton "Installer".

Le processus d'installation va commencer. Cela nous est signalé par le centre d'application Linux Ubuntu en haut de la fenêtre et à gauche sous la forme d'une barre de téléchargement.

Pour installer des programmes supplémentaires pour Linux Ubuntu, nous avons besoin de privilèges supplémentaires.
Pour les recevoir, le système nous demande d'entrer notre mot de passe. Entrez-le et cliquez sur le bouton "Authentifier"

Une fois l'installation terminée, ouvrez Skype. Cliquez sur l'icône dans le coin supérieur gauche de l'écran "Rechercher sur l'ordinateur ..."
Dans la barre de recherche, entrez "ciel"

La configuration de Skype sur Windows et Linux est légèrement différente, mais je pense que la configuration ne vous posera aucune difficulté si vous suivez l'article ci-dessus. Mais s'ils surviennent, vous pouvez toujours me poser une question.

Nous avons examiné comment ajouter des référentiels Linux supplémentaires et installer le programme à partir d'un package. Vous pourrez maintenant installer vous-même les programmes dont vous avez besoin dans Linux Ubuntu. Et s'il y a des questions incompréhensibles sur ce sujet et qu'il y a des suggestions, alors je vous demande de les écrire dans les commentaires. Au revoir tout le monde!

Le référentiel fait généralement référence à un emplacement de stockage, souvent pour la sécurité ou la préservation.
- Wikipédia

C'est ainsi que Wikipedia décrit le référentiel. Il se trouve que, contrairement à certains des autres mots d'argot que nous traitons, ce terme capture parfaitement son essence. Un référentiel est le concept de stockage d'une collection d'entités d'un type particulier.

Dépôt en tant que collection

La différence la plus importante entre les référentiels est probablement qu'ils sont des collections d'objets. Ils ne décrivent pas le stockage ou la mise en cache de la base de données ou tout autre problème technique. Les dépôts représentent des collections. La façon dont vous stockez ces collections n'est qu'un détail d'implémentation.

Je veux clarifier cette question. Un dépôt est une collection. Une collection qui contient des entités et peut filtrer et renvoyer des résultats en fonction des exigences de votre application. Où et comment il stocke ces objets est un DETAILS D'IMPLEMENTATION.

Dans le monde PHP, nous sommes habitués à un cycle requête/réponse qui se termine par la mort du processus. Tout ce qui est venu de l'extérieur et n'a pas été préservé - est parti pour toujours, à ce stade. Eh bien, toutes les plateformes ne fonctionnent pas de cette façon.

Un bon moyen de comprendre le fonctionnement des référentiels est d'imaginer votre application comme toujours en cours d'exécution, auquel cas tous les objets restent en mémoire. La probabilité de défaillances critiques et la réaction à celles-ci dans cette expérience peuvent être négligées. Imaginez que vous ayez une instance de référentiel Singleton pour Member , MemberRepository .

Créez ensuite un nouvel objet Member et ajoutez-le au référentiel. Plus tard, vous interrogerez le référentiel pour tous les éléments qui y sont stockés, vous obtiendrez donc une collection contenant cet objet à l'intérieur. Vous voudrez peut-être obtenir un objet spécifique par son ID, c'est également possible. Il est très facile d'imaginer qu'à l'intérieur du référentiel ces objets sont stockés dans un tableau ou, mieux encore, dans un objet de collection.

En termes simples, un référentiel est un type spécial de collection approuvée que vous utiliserez encore et encore pour stocker et filtrer des entités.

Interaction avec le référentiel

Imaginez que nous créons une entité membre. Nous amenons l'objet à l'état requis, puis la requête se termine et l'objet disparaît. L'utilisateur essaie de se connecter à notre application et ne peut pas. Évidemment, nous devons également rendre cet objet disponible pour d'autres parties de l'application.

$member = Member::register($email, $password); $memberRepository->save($member);
Maintenant, nous pouvons accéder à l'objet plus tard. Comme ça:

$member = $memberRepository->findByEmail($email); // ou $members = $memberRepository->getAll();
Nous pouvons stocker des objets dans une partie de notre application, puis les récupérer dans une autre.

Les référentiels doivent-ils créer des entités ?

Vous pouvez rencontrer de tels exemples :

$member = $memberRepository->create($email, $password);
J'ai vu beaucoup d'arguments en faveur de cela, mais je ne suis pas du tout intéressé par une telle approche.

Tout d'abord, les référentiels sont des collections. Je ne sais pas pourquoi une collection doit être une collection et une usine. J'ai entendu des arguments comme "s'il est plus pratique de le gérer de cette façon, alors pourquoi ne pas accrocher un gestionnaire à de telles actions"?

À mon avis, c'est un anti-modèle. Pourquoi ne pas laisser la classe Member avoir sa propre compréhension de comment et pourquoi un objet est créé, ou pourquoi ne pas créer une fabrique séparée pour créer des objets plus complexes ?

Si nous traitons nos référentiels comme de simples collections, il n'est pas nécessaire de les charger avec des fonctionnalités inutiles. Je ne veux pas de classes de collection qui se comportent comme des usines.

Quels sont les avantages d'utiliser des référentiels ?

Le principal avantage des référentiels est le mécanisme de stockage abstrait des collections d'entités.

En fournissant l'interface MemberRepository, nous délions les mains du développeur, qui décidera lui-même comment et où stocker les données.

La classe ArrayMemberRepository implémente MemberRepository ( private $members = ; public function save(Member $member) ( $this->members[(string)$member->getId()] = $member; ) public function getAll() ( return $this ->members; ) public function findById(MemberId $memberId) ( if (isset($this->members[(string)$memberId])) ( return $this->

La classe RedisMemberRepository implémente MemberRepository ( public function save(Member $member) ( // ... ) // vous obtenez le point )
Ainsi, la plupart de nos applications ne connaissent que le concept abstrait de MemberRepository et son utilisation peut être séparée de l'implémentation réelle. C'est très libérateur.

Que sont les référentiels : domaine ou couche de service d'application ?

Voici donc une question intéressante. Tout d'abord, définissons que la couche de service d'application est une architecture en couches responsable des détails d'implémentation d'application spécifiques tels que l'intégrité de la base de données et diverses implémentations de protocole Internet (envoi d'e-mails, API), etc.

Définissons le terme couche de domaine comme une couche d'une architecture multicouche responsable des règles métier et de la logique métier.

Où ira le référentiel avec cette approche ?

Regardons notre exemple. Voici le code écrit précédemment.

La classe ArrayMemberRepository implémente MemberRepository ( private $members = ; public function save(Member $member) ( $this->members[(string) $member->getId()] = $member; ) public function getAll() ( return $this ->members; ) public function findById(MemberId $memberId) ( if (isset($this->members[(string)$memberId])) ( return $this->members[(string)$memberId]; ) ) )
Dans cet exemple, je vois beaucoup de détails de mise en œuvre. Ils doivent bien sûr être inclus dans la couche d'application.

Supprimons maintenant tous les détails d'implémentation de cette classe...

La classe ArrayMemberRepository implémente MemberRepository ( fonction publique save(Member $member) ( ) fonction publique getAll() ( ) fonction publique findById(MemberId $memberId) ( ) )
Hmm... ça commence à vous sembler familier... Qu'avons-nous oublié ?

Peut-être que le code résultant vous le rappelle ?

Interface MemberRepository ( fonction publique save(Member $member); fonction publique getAll(); fonction publique findById(MemberId $memberId); )
Cela signifie que l'interface est à la limite des couches. et peuvent en fait contenir des concepts spécifiques à un domaine, mais l'implémentation elle-même ne doit pas le faire.

Les interfaces de référentiel appartiennent à la couche domaine. La mise en œuvre appartient à la couche application. Cela signifie que nous sommes libres de construire l'architecture au niveau de la couche de domaine sans avoir à dépendre de la couche de service.

Liberté de modifier les magasins de données

Chaque fois que vous entendez quelqu'un parler du concept de conception orientée objet, vous avez peut-être entendu quelque chose comme "... et vous avez la possibilité de passer d'une implémentation de stockage à une autre à l'avenir..."

A mon avis, ce n'est pas tout à fait vrai... Je dirais même que c'est un très mauvais argument. Le plus gros problème avec l'explication du concept de référentiels est qu'il soulève immédiatement la question « Tu veux vraiment faire ça ?. Je ne veux PAS que des questions comme celle-ci affectent l'utilisation du modèle de référentiel.

Toute application orientée objet suffisamment bien conçue tombera automatiquement sous cet avantage. Le concept central de la POO est l'encapsulation. Vous pouvez fournir un accès API et masquer l'implémentation.

Après tout, vous ne passerez pas réellement d'un ORM à un autre et inversement. Mais même si vous voulez le faire, au moins vous aurez la possibilité de le faire. Cependant, changer l'implémentation du référentiel sera un énorme plus lors des tests.

Test lors de l'utilisation du modèle "Repository"

Eh bien, tout est simple ici. Disons que vous avez un objet qui gère quelque chose comme l'inscription des membres...

Classe RegisterMemberHandler ( private $members; public function __construct(MemberRepository $members) ( $this->members = $members; ) public function handle(RegisterMember $command) ( $member = Member::register($command->email, $ command->password); $this->members->save($member); ) )
Lors de la prochaine opération, je peux prendre une instance de DoctrineMemberRepository . Cependant, lors des tests, vous pouvez facilement le remplacer par une instance de ArrayMemberRepository. Ils implémentent tous les deux la même interface.

Un exemple de test simplifié pourrait ressembler à ceci...

$ dépôt = nouveau ArrayMemberRepository ; $handler = new RegisterMemberHandler($repo); $request = $this->createRequest(["email" => " [courriel protégé]", "password" => "angelofdestruction"]); $handler->handle(RegisterMember::usingForm($request)); AssertCount(1, $repo->findByEmail(" [courriel protégé]"));
Dans cet exemple, nous testons le gestionnaire. Nous n'avons pas besoin de vérifier l'exactitude du stockage des données du référentiel dans la base de données (ou ailleurs). Nous testons le comportement spécifique de cet objet : enregistrer un utilisateur en fonction des données du formulaire, puis le transmettre au référentiel.

Collection ou État

Dans Implémentation de la conception pilotée par le domaine, Vaughn Vernon fait une distinction entre les types de référentiels. L'idée d'un référentiel orienté collection (orig. - référentiel orienté collection) dans ce travail avec le référentiel va en mémoire, comme avec un tableau. Référentiel avec état (orig. - référentiel orienté persistance) contient l'idée qu'il aura une sorte de système de stockage plus profond et plus réfléchi. En fait, les différences ne sont que dans les noms.

// orienté collection $memberRepository->add($member); // vs orienté persistance $memberRepository->save($member);
Je note que ce n'est que mon avis et jusqu'à présent j'y adhère en matière d'utilisation des référentiels. Cependant, je tiens à vous avertir que je peux changer d'avis. En fin de compte, je me concentre sur eux en tant que collections d'objets avec les mêmes responsabilités que n'importe quel autre objet de collection.

Informations Complémentaires

a créé un projet sur Github sur les référentiels qui vaut vraiment le détour. À l'intérieur, vous trouverez des exemples de travail avec le stockage en mémoire et dans les fichiers.

Résultats

Je crois que…
  1. … il est important de donner aux référentiels la tâche singulière de fonctionner comme une collection d'objets.
  2. ... nous ne devrions pas utiliser de référentiels pour créer de nouvelles instances d'objets.
  3. … nous devons éviter d'utiliser les référentiels comme moyen de passer d'une technologie à une autre, car ils présentent de nombreux avantages auxquels il est difficile de renoncer.
À l'avenir, je prévois d'écrire d'autres articles sur les référentiels, tels que la mise en cache des résultats avec un décorateur, les requêtes avec le modèle de critères et le rôle du référentiel dans les opérations de traitement par lots sur un grand nombre d'objets.

Si vous avez des questions ou si votre opinion diffère de la mienne, veuillez écrire des commentaires ci-dessous.

Comme toujours, j'ai l'intention de mettre à jour l'article pour qu'il reste en phase avec mon opinion actuelle.

Après avoir essayé de répondre à vos questions sur ce qui est et ce qui est, vous tomberez sûrement sur une nouvelle définition - Repository (repo, repo, repository).Dépôt, dépôt c'est l'endroit où toutes les données sont stockées et mises à jour. Le plus souvent, ces données se présentent sous la forme de fichiers disponibles pour une diffusion ultérieure via Internet. Dans cet article, nous dirons

En contact avec

sur les dépôts dans Cydia. La principale différence entre l'App Store et Cydia est que Cydia n'est pas un référentiel unique pour les applications. Cydia collecte des données sur les applications à partir de diverses ressources Internet spécialement conçues pour fonctionner avec elle. Ces ressources Internet ou simplement ces sites sont appelés référentiels. N'importe qui peut créer un référentiel en téléchargeant, par exemple, sa sélection d'applications depuis Cydia. Il existe de nombreux référentiels dans Cydia.

Par défaut, après avoir installé Cydia, il contient déjà plusieurs référentiels. Le plus grand d'entre eux est BigBoss. Ce référentiel contient des centaines de thèmes et de programmes, tels que les très populaires SBSettings et Barrel. Par exemple, l'application MyWi est située dans un référentiel différent - ModMyi.com. En général, pour installer une application, vous devez d'abord ajouter un référentiel à Cydia, c'est-à-dire le site où il est stocké.

Comment ajouter un nouveau référentiel à Cydia.

1. Cliquez sur l'icône Cydia et allez dans la section "gérer" en bas de l'écran, puis sélectionnez une section "Sources".

2. Cliquez sur "Modifier" dans le coin supérieur droit, puis Ajouter gauche.

4. Si cela est fait correctement, dans quelques secondes, votre nouvelle source apparaîtra dans la liste des référentiels. Lorsque vous cliquez dessus, vous verrez les applications qu'il contient.

Si tout à coup vous êtes sûr que l'adresse que vous avez entrée est correcte, mais que le référentiel n'a pas été ajouté à la liste des sources et que Cydia signale une erreur, alors le problème est probablement la surcharge du serveur sur lequel se trouve le référentiel. Dans ce cas, cela vaut la peine de supprimer le référentiel ajouté et de le réinstaller ultérieurement.

Liste des référentiels utiles :

http://sinfuliphonerepo.com (applications, correctifs, etc.)

http://ihacksrepo.com (énorme bibliothèque de divers fichiers)

http://cydia.i4tips.com (beaucoup de paquets deb.)

http://apt.alleon.name (dépôt russe : thèmes, correctifs, hacks, programmes, jeux, fonds d'écran, sonneries)

http://cydia.xsellize.com (programmes, jeux, images, sonneries.)

http://ispaziorepo.com/cydia/apt/ (thèmes, correctifs, hacks, programmes, jeux, fonds d'écran, sonneries, etc.)

http://cydia.hackulo.us (correctifs AppSync, installous et HackLous)

http://repo.hackyouriphone.org (hacks, mods, programmes, etc.)

Important!!! N'installez jamais d'applications inconnues de Cydia - cela peut entraîner une perte de données sur l'appareil ou une restauration via iTunes.

dépôt

dépôt, dépôt- un endroit où toutes les données sont stockées et conservées. Le plus souvent, les données du référentiel sont stockées sous la forme de fichiers disponibles pour une distribution ultérieure sur le réseau.

Il existe des référentiels pour stocker des programmes écrits dans un langage (par exemple CPAN pour Perl) ou conçus pour une plate-forme. De nombreux systèmes d'exploitation modernes, tels que OpenSolaris, FreeBSD et la plupart des distributions Linux, ont des référentiels officiels, mais vous permettent également d'installer des packages à partir d'autres emplacements. La plupart des référentiels sont gratuits, mais certaines entreprises offrent l'accès à leurs propres référentiels moyennant un abonnement payant.

Les référentiels sont utilisés dans les systèmes de contrôle de version, ils stockent tous les documents ainsi que l'historique de leurs modifications et d'autres informations de service. La communauté Subversion russe recommande d'utiliser à la place du terme dépôt le terme référentiel, puisqu'il correspond pleinement à la fois à la traduction directe du mot « référentiel » et à son concept.

Il existe différents systèmes automatisés pour créer des référentiels. L'un des types de référentiels : référentiels sur / DVD - disques d'installation pour les packages d'un logiciel particulier.

voir également

Liens


Fondation Wikimédia. 2010 .

Voyez ce que "Repository" est dans d'autres dictionnaires :

    Un endroit où les données sont stockées et conservées. Le plus souvent, les données du référentiel sont stockées sous la forme de fichiers disponibles pour une distribution ultérieure sur le réseau. Les référentiels sont utilisés dans les systèmes de contrôle de version, ils stockent tout ... ... Glossaire des termes commerciaux

    dépôt- Stockage des objets de la base de données. Thèmes technologies de l'information en général Référentiel EN ...

    - (historique, lat. repono, repositum pour remettre en place, mettre) un instrument obstétrical utilisé pour fixer une boucle prolapsus du cordon ombilical ... Grand dictionnaire médical

    Dépôt: (entrepôt de stockage en anglais, stockage) Dépôt Voir aussi Dépôt Yucca Mountain Stockage à sec américain pour le combustible nucléaire usé ... Wikipedia

    référentiel de packages logiciels (référentiel)- 3.17 référentiel de progiciels (référentiel) : ensemble fermé de progiciels et de méta-informations les concernant. Un référentiel est dit fermé si pour chaque paquet binaire sa fermeture peut être calculée, c'est-à-dire vous pouvez installer le paquet ... ... Dictionnaire-ouvrage de référence des termes de la documentation normative et technique

    Montagne Yucca ... Wikipédia

    Ce terme a d'autres significations, voir Sisyphe (significations). Sisyphe est un personnage de la mythologie grecque. Sisyphe (... Wikipédia

    référentiel central- système de stockage central Ce système est conçu pour stocker une variété de données, y compris les biographies des athlètes, le nombre de médailles, les horaires des événements, les rapports sur les services de transport et les informations sur les visiteurs. [Département… … Manuel du traducteur technique

    Archive électronique du référentiel institutionnel pour le stockage à long terme, l'accumulation et la fourniture d'un accès ouvert à long terme et fiable aux résultats de la recherche scientifique menée dans l'institution. Université Institutionnelle ... ... Wikipedia

    Un référentiel est un endroit où les données sont stockées et conservées. Le plus souvent, les données du référentiel sont stockées sous la forme de fichiers disponibles pour une distribution ultérieure sur le réseau. Un exemple de référentiel est un référentiel de logiciels libres ... ... Wikipedia

Livres

  • Ruby on Rails pour les débutants. Apprendre à développer des applications Web avec Rails par Michael Hartle. Utilisé par une grande variété d'entreprises telles que Twitter, GitHub, Disney et Yellow Pages, Ruby on Rails est l'un des frameworks de développement d'applications Web les plus populaires, mais son…


Vous avez aimé l'article ? Partagez-le