{"action":"opened","issue":{"url":"https://api.github.com/repos/hhamon/lpdim2016/issues/2","labels_url":"https://api.github.com/repos/hhamon/lpdim2016/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/hhamon/lpdim2016/issues/2/comments","events_url":"https://api.github.com/repos/hhamon/lpdim2016/issues/2/events","html_url":"https://github.com/hhamon/lpdim2016/issues/2","id":126885475,"number":2,"title":"[Introduction] Modalités de l'évaluation technique et pratique","user":{"login":"hhamon","id":235550,"avatar_url":"https://avatars.githubusercontent.com/u/235550?v=3","gravatar_id":"","url":"https://api.github.com/users/hhamon","html_url":"https://github.com/hhamon","followers_url":"https://api.github.com/users/hhamon/followers","following_url":"https://api.github.com/users/hhamon/following{/other_user}","gists_url":"https://api.github.com/users/hhamon/gists{/gist_id}","starred_url":"https://api.github.com/users/hhamon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hhamon/subscriptions","organizations_url":"https://api.github.com/users/hhamon/orgs","repos_url":"https://api.github.com/users/hhamon/repos","events_url":"https://api.github.com/users/hhamon/events{/privacy}","received_events_url":"https://api.github.com/users/hhamon/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-01-15T14:43:03Z","updated_at":"2016-01-15T14:43:03Z","closed_at":null,"body":"Évaluation Pratique du Module Technos Web / PHP\r\n===============================================\r\n\r\nIntroduction\r\n------------\r\n\r\nSur la base du code présent actuellement dans la branche `master` du dépôt de\r\ncode, il vous est demandé de réaliser les exercices complémentaires détaillés\r\nplus bas.\r\n\r\nVous serez évalué et **noté individuellement** sur le travail réalisé. La\r\nnotation portera en particulier sur les critères d'évaluation ci-dessous. Cette\r\nliste de critères n'est pas exhaustive et peut évoluer encore d'ici la date de\r\nrendu finale.\r\n\r\n* Les fonctionnalités demandées sont implémentées et fonctionnent,\r\n* Les tests unitaires sont fournis pour valider le code et les bugs potentiels,\r\n* L'exécution des tests unitaires génère ni erreurs ni échecs,\r\n* Les bonnes pratiques étudiées en cours (SOLID, injection de dépendance, PSR,\r\n  etc.) sont respectées,\r\n* Les structures de code telles que les classes, les méthodes et les variables\r\n  sont correctement nommées en anglais,\r\n* Les morceaux de code potentiellement complexes sont correctement documentés en\r\n  anglais avec des commentaires dans le code,\r\n* Les outils et librairies tierces importées dans votre code sont distribués\r\n  sous des licences Open-Source compatibles,\r\n* etc.\r\n\r\nCette évaluation pratique s'ajoutera à votre note obtenue lors de l'évaluation\r\nthéorique du mardi 12 janvier 2015. Elle comptera pour le même coefficient.\r\n\r\nModalités de Rendu\r\n------------------\r\n\r\nVous devrez soumettre individuellement votre travail sous la forme d'une\r\n« *Pull Request* » Github. Pour ce faire, il vous faudra tout d'abord vous créer\r\nun compte Github.com si vous n'en possédez pas encore un. Lorsque vous êtes\r\nconnecté à votre compte Github, rendez-vous sur la page de ce dépôt de code et\r\n*forkez-le* à l'aide du bouton prévu à cet effet en haut à droite.\r\n\r\nVous disposerez désormais d'une copie (aka *un fork*) de ce dépôt de code dans\r\nvotre espace Github.com. Il vous suffit alors de cloner ce fork sur votre\r\nmachine en utilisant la ligne de commande de Github dans un terminal ou bien\r\ndepuis une interface GUI (exemple : Tower pour Mac OS).\r\n\r\nLa ligne de commande pour cloner votre fork doit être similaire à celle\r\nci-dessous en prenant soin d'adapter le nom d'utilisateur Github (`<username>`)\r\npar le vôtre.\r\n\r\n    $ git clone git@github.com:<username>/lpdim2016.git\r\n\r\nLorsque votre clone est téléchargé sur votre machine, déplacez-vous dans le\r\nrépertoire et créez immédiatement une nouvelle branche dans laquelle vous\r\ncommitterez vos changements. C'est cette branche que vous soumettrez ensuite en\r\ntant que *Pull Request* afin d'être évalué(e).\r\n\r\nLe nom de la branche doit être nommée de la manière suivante : `prenom-nom`. Par\r\nexemple, la commande pour créer une nouvelle branche nommée `hugo-hamon` est la\r\nsuivante :\r\n\r\n    $ git checkout -b hugo-hamon\r\n\r\nVous êtes à présent dans votre branche et vous pouvez commencer à implémenter\r\nles exercices dans l'ordre que vous souhaitez. Il vous ai demandé néanmoins de\r\nréaliser qu'un seul commit pour chaque exercice afin de grouper dans ce dernier\r\ntous les fichiers impactés. Cela permettra ainsi au correcteur de revoir plus\r\nfacilement les changements commit par commit. Vous pouvez par exemple suivre une\r\nnomenclature de commits similaire à celle ci-dessous.\r\n\r\n    $ git add fichier1.php\r\n    $ git add fichier2.php\r\n    $ git commit -m'[Framework] implemented exercise #1.'\r\n    $\r\n    $ # ... d'autres modifications\r\n    $\r\n    $ git add fichierX.php\r\n    $ git commit -m'[Application] implemented exercise #2.'\r\n\r\nAprès chaque commit, n'oubliez pas de pousser votre branche et ses commits sur\r\nvotre fork avec la commande `git push`.\r\n\r\n    $ git push origin hugo-hamon\r\n\r\nLorsque vous êtes prêt(e) à rendre votre devoir, rendez-vous sur la page Github\r\nde votre fork et soumettez votre branche en tant que *Pull Request*. Vous verrez\r\napparaître un bouton vert *Pull Request* sur votre fork. Lorsque vous aurez\r\nvalidé votre *pull request*, celle-ci apparaîtra automatiquement dans la liste\r\ndes demandes de contribution du dépôt initial à l'adresse suivante :\r\n\r\n    https://github.com/hhamon/lpdim2016/pulls\r\n\r\nVérifiez bien que votre pull request apparaisse dans cette liste ! Bien que\r\nbranche a été poussée à ce stade, vous pouvez toujours ajouter de nouveaux\r\ncommits à celle-ci simplement en les poussant depuis votre copie locale grâce à\r\nla commande `git push origin <prenom-nom>`. L'évaluation du code que vous aurez\r\nsoumis sera réalisée après la date et l'heure maximum autorisée de soumission.\r\nN'hésitez donc pas à corriger, revoir, améliorer le code de votre branche en\r\ncommittant souvent dans votre branche et en poussant celle-ci régulièrement.\r\n\r\n> **Rappel** : chaque copie rendue est strictement individuelle ! Le travail en\r\n> groupe n'est pas autorisé mais cette contrainte ne vous empêche pas de vous\r\n> aider mutuellement pour réaliser les travaux demandés. Néamoins, les copies\r\n> rendues dans lesquelles il y aura des suspicions fortes de morceaux de code\r\n> copiés seront sanctionnées !\r\n> \r\n> Il s'est déjà produit une année que quatre étudiants ont rendu le même code à\r\n> la virgule près. Les trois étudiants qui avaient copié ont été sanctionnés\r\n> dans leur notre mais aussi par la Direction de la licence professionnelle.\r\n\r\n**La date de rendu de votre travail sous la forme d'une *pull request* est fixée\r\nau plus tard au mardi 23 février 2016 à 23:59:59, heure de Paris.** Toute *pull\r\nrequest* soumise après ce délai sera ignorée et la note de 0 vous sera\r\nattribuée !\r\n\r\nDocumentation\r\n-------------\r\n\r\nIl ne vous ai pas interdit de réutiliser du code trouvé sur Internet pour\r\nréaliser votre travail. Vous êtes même encouragés à ne pas réinventer la roue,\r\nsauf si l'intitulé de l'exercice vous y oblige pour vérifier et valider\r\ncertaines compétences acquises en formation. Toutefois, si vous décidez de\r\nréutiliser des bouts de code téléchargés sur Internet comme des fonctions ou\r\nbien des classes, il vous ai demandé de le documenter dans votre code. L'exemple\r\nci-dessous montre comment documenter la source d'une classe ou d'une fonction\r\navec le mot-clé `@see`.\r\n\r\n```php\r\n/**\r\n * @see http://some-website.com/the/url-of-this-class.html\r\n */\r\nclass ImageResizer\r\n{\r\n    /**\r\n     * @see http://some-website.com/the/url-of-this-function.html\r\n     */\r\n    public function resize($image, $maxWidth, $maxHeight)\r\n    {\r\n        // ...\r\n    }\r\n}\r\n```\r\n\r\nAssurez aussi que vous avez bien le droit de récupérer un bout de code en\r\nvérifiant notamment la licence avec laquelle ce bout de code est distribué :\r\nMIT, GPL, LGPL, etc."}}