Git Product home page Git Product logo

hotels's Introduction

Approche technique et fonctionnelle

Dans le cadre de la demande je fournis une version finale représentant environ 5h30 de travail (j'avais un résultat presque totalement fonctionnel au bout d'une 1h30 - que je regrette maintenant de ne pas avoir commité - , mais les tests, le refactoring et les commentaires ça prend un peu de temps ;-) ). Habituellement j'aurais sans doute cherché à optimiser mon temps par rapport au chiffre vendu client mais ignorant cette donnée j'ai simplement développé afin de respecter les différentes attentes du CdC et autres normes de codage (à noter que sur le passage de variables aux fonctions j'ai bien noté le _variable mais ne sachant pas si c'était aussi requis sur les méthodes, j'ai passé outre, sans doute à rediscuter).

J'ai cherché à exploiter différentes techniques, pas forcément nécessaire ici (et qui complexifie un peu trop l'ensemble pour un si petit test à mon goût), mais utile à l'usage, comme les traits et les namespaces ou les regex. J'ai aussi subdivider au maximum les éléments. Sur un dev "pressé" j'aurais sûrement fait plus simple comme architecture allant plus au fonctionnel qu'à l'esthétique.

EDIT : bon tu as mis à jour le test, alors forcément ça répond à certaines questions, mais je prends le parti de ne rien changer à ce qui suit J'ai assumé que certaines données n'étaient pas structurées mais présentes dans les textes descriptifs de l'annonce (comme la présence d'un parking, d'une piscine, etc) n'ayant pas trouvé la spec du XML sur le site de bonotel. J'avoue n'avoir pas parcouru les 5000 items et assume que certains tests sont incomplet ;-) J'ai également pris parti de considérer que introduction_text et introduction_media n'était pas des données unitaire mais de possible tableaux de par l'analyse de leur nature. Egalement que distribution était rapport à une donnée voyagiste et ne contiendrait ici que la clef BONOTEL. En temps normal j'aurais vérifier ces données avec le chef de projet, mais je suppose que tu regardes aussi notre capacité d'analyse (et si c'est de communication, damned :-P)

Tout le code a été pensé pour être réexploitable dans le cadre d'autre import de l'objet Hotel. NB : certaines méthodes sont publiques uniquement à cause des tests unitaires NB 2 : Je suis surpris que la balise name ne soit pas reprise ?

Commande pour lancer l'import

Le paquet php-xml est nécessaire. Sous debian (postulat d'un LAMP déjà installé) :

PHP 7

apt install php-xml

PHP 5 ou et/ou débian plus ancien

apt-get install php5-xml

Le code est orienté PHP 5 ne connaissant pas l'architecture de déploiement.

En mode développement, dans config.php, attribuer DEV à ENV ce qui permet d'utiliser un XML et des images locales Pour passer en production et utiliser la vraie url d'appel et les vraies images, attribuer PROD a ENV (forcément ça prend du temps)

Dans les deux cas, le binaire PHP doit être définis et accessible via la variable PATH

php final_version.php

Lancer les tests unitaires selon la version de PHP

Sous linux

./phpunit5 test1.php
./phpunit7 test1.php

Sous Windows

phpunit5.cmd test1.php
phpunit7.cmd test1.php

hotels's People

Contributors

azriel68 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.