Défier entièrement
Configuration
Ce référentiel comprend la configuration initiale de ce problème, y compris les spécifications. Utilisez la librairie Kahlan, que vous n'avez probablement pas utilisée. Mais ne vous inquiétez pas, il n'y a pas grand-chose à apprendre. Vérifiez les spécifications et vous comprendrez la syntaxe de base en moins d'une minute.
Votre tâche est:
- Refactor le code dans la classe
VillaPeruana.php . - Ajoutez une nouvelle faute de frappe, "café". Les spécifications de cet élément sont commentées dans le fichier
VillaPeruanaScpec.php .
Couler
Vous devez faire installer Docker sur votre ordinateur pour utiliser nos commandes de workflow
- Utilisez la commande
./start pour initialiser le docker - Utilisez la commande
./test pour exécuter les tests - Utilisez la commande
./finish pour désactiver le docker
Règles
Bonjour et bienvenue dans le village péruvien. Comme vous le savez, nous sommes une petite auberge, avec un excellent emplacement dans une ville importante, administrée par notre sympathique Allison. Nous achetons et vendons également les meilleurs produits. Malheureusement, nos produits sont constamment malheureux de qualité à l'approche de leur date d'expiration. Nous avons un système qui met à jour notre inventaire pour nous. Il a été développé par un développeur nommé Elmo, qui est parti à la recherche de nouvelles aventures.
Nous voulons ajouter une nouvelle catégorie de produits au système et pour cela, nous avons besoin de votre aide.
Tout d'abord, une introduction à notre système:
- Tous les produits ont un SLAY qui indique le nombre de jours pour vendre le produit
- Tous les produits ont une qualité qui indique à quel point il est le produit
- À la fin de chaque journée, notre système diminue les deux valeurs pour chaque produit
Assez simple, non? Eh bien, ici devient intéressant:
- Lorsque la date de vente est passée, la qualité se dégrade deux fois plus rapidement
- La qualité d'un produit n'est jamais négative
- Les produits "Pisco Peruano" augmentent en fait de la qualité plus ils sont âgés
- La qualité d'un produit n'est jamais supérieure à 50
- Les produits "Tumi", étant un produit légendaire, ne devraient jamais être vendus ou bas
- Les "billets VIP", ainsi que "Pisco péruvien", augmentent leur qualité en fonction de leurs approches Sellin 0, la qualité augmente de 2 lorsque 10 jours ou moins sont manquants et en 3 jours ou moins sont manquants, mais la qualité diminue à 0 après le concert.
Récemment, nous avons signé un contrat avec un fournisseur de produits "café". Cela nécessite une mise à jour pour notre système:
- Les produits "café" se dégradent en qualité deux fois comme les produits normaux
Pour le préciser, un produit ne peut jamais augmenter sa qualité supérieure à 50, mais "Tumi" est un produit légendaire et, en tant que tel, sa qualité est de 80 et ne change jamais.
Livrable ou attente du défi
- Le nettoyage et la lisibilité du code seront pris en compte.
- L'efficacité du code en matière de performances ajoutera pour ce test.
- Ce sera une utilisation indispensable de principes solides
- À la fin du défi, envoyez la solution de la solution à [email protected] avec une copie à [email protected] avec le titre "Challenge Tarely Backend"
Questions de connaissances à Laravel
Quel package ou stratégie utiliseriez-vous pour augmenter rapidement un système d'administration? (Authentification et cruds)
- R: Il existe plusieurs unités, qui peuvent être installées conjointement avec un nouveau projet Laravel, d'autres sont installés sous forme de dépendances supplémentaires. Pour moi, la meilleure option est d'utiliser Laravel Breeze avec la lame, car elle vient par défaut. Maintenant, si vous souhaitez utiliser un héritage bootstrap, vous pouvez utiliser la dépendance de Laravel / UI avec la pile bootstrap.
Une brève explication de la façon dont Laravel utilise l'injection de dépendances
- R: L'injection de dépendances est chargée d'installer les classes dont nous avons besoin et de fournir ("injecter") les dépendances en envoyant les paramètres appropriés au constructeur. Il est conforme à l'un des prcios solides, qui fait référence à l'investissement des dépendances (DI) et évite la dépendance rigide des composants de la dépendance.
Dans quels cas utiliseriez-vous une portée de requête?
- R: L'utilisation d'une portée de requête dépendra de la portée de la consultation, car Laravel peut mettre en œuvre 2 types de portée de requête, locale et globale. Si nous utilisons une portée de requête globale, elle permettrait à une consultation d'appliquer tout modèle nécessaire. D'un autre côté, la portée de la requête locale est créée comme une méthode dans le modèle qui l'exige.
Quelles conventions utilisez-vous dans la création et la mise en œuvre des migrations?
- R: Selon les conventions PSR pour la programmation PHP, Laravel utilise de telles conventions par défaut. Par exemple, lors de l'utilisation de la commande: php artisan make: migration create_nametablaplural_table, il créera le fichier dans le dossier de base de données / migrations, avec la structure <himestams_create_namper lame maintenant si vous souhaitez créer à partir d'un modèle, en utilisant la commande pHP artisan make: modélisation du modèle.