Semaine 07 Projets Js avances - SimplonTlse02/programme-dev-web GitHub Wiki
Semaine 7 - Projets Js Avancés
Objectifs
- Gestion des dépendances (NPM) / NIH syndrom / recréer la roue
- this / bind / apply / call
- setTimeout / setInterval
- organiser son code en objet
Introduction
Une petite vidéo / chanson pour se mettre en jambe ?
Lundi
- organiser son code en objet
- Design Pattern
// app.js
(function(){
"use strict";
var app = {
prenom: null,
defaultSeconds: 180, // = 3 minutes
time: null,
init: function(){
app.prenom = "Simplon";
app.time = defaulTime;
app.start(app.time);
},
start: function(tempsQuiPasse){
console.log("Et c'est le "+tempsQuiPasse);
}
};
app.init();
})();
- continuer le Countdown
Mardi
- this / bind / apply / call
/*
- apply(ctx, [args])
- call(ctx, args ...)
*/
$('b').on(eventName, this.start.bind(this));
var self = this;
Mercredi
- Code Review du Countdown
- Si une variable contient une quantité, précisez l'untité
- le mieux : directement dans le temps : timeSeconds
- sinon en commentaires : time: null // seconds
- Indentez votre code
- Si une variable contient une quantité, précisez l'untité
- Bonus du CountDown
- Mesurer le temps que mets le chronomètre pour écouler 5 minutes. Idem pour 10 minutes.
- Faire en sorte que la différence entre le temps écoulé et le temps du chronomètre soit < 1s (cf objet Date)
- Créer un nouveau projet Pomodoro avec les mêmes bases
- Publier le tout sur GithubPages
- Date MDN
Rappel sur les branches
Relire le chapitre 3 de la doc officielle
# je vérifie sur quelle branche je suis.
git status
# Ici, je démarre sur master
# Je créer une nouvelle branche et je vais dessus
git checkout -b maNouvelleBranche
# Si ma branche est déjà créée, je me déplace (sans l'option -b)
git checkout maNouvelleBranche
# Je vérifie que je suis bien sur maNouvelleBranche
git status
# Je merge le contenu de la branche master sur ma branche courant
git merge master
# Je règle les conflits s'il y en a
# je pousse sur github
git push origin codeReview
# Et je retourne sur master pour continuer à bosser
git checkout master
Devinette du jour :
"Return Largest Numbers in Arrays" challenge
/*
Return an array consisting of the largest number from each provided sub-array.
For simplicity, the provided array will contain exactly 4 sub-arrays.
*/
function largestOfFour(arr) {
// You can do this!
var resultArray = null;
return resultArray;
}
largestOfFour([4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1](/SimplonTlse02/programme-dev-web/wiki/4,-5,-1,-3],-[13,-27,-18,-26],-[32,-35,-37,-39],-[1000,-1001,-857,-1));// returns : [5, 27, 38, 1001]
- Cours vidéo sur le débug Js (gratuit qq jours seulement, sinon on y a accès.)
- Révisions
Jeudi
Les couleurs en CSS
- Doc MDN
- Quack Kit
- plusieurs moyens pour les couleurs :
- keyword : 'red', 'skyblue', ...
- notation héxadécimal : #12QF03
- rgb()
- hsl()
- rgba()
- hsla()
- plusieurs moyens pour les couleurs :
.ma-div {
/* Les lignes suivantes sont équivalentes */
color : green; /* keyword */
color : #00FF00; /* hexadécimal */
color : #0F0; /* hexadécimal bis */
color : rgb(0, 255, 0);
color : rgb(0%, 100%, 0%);/* pas trop utilisé */
color : hsl(120, 100%, 50%);
color : rgba(0, 255, 0, 1);
color : hsla(120, 100%, 50%, 1);
}
Gestion des dépendances (NPM)
# NE JAMAIS AJOUTER nodes_modules A GIT
# JAMAIS
# JAMAIS
# ===== Cas 1 =====
# création d'un projet
touch index.html app.js
# Initialisation du repo git
git init
git add index.html app.js
# Initialisation de npm et génération du fichier package.json
npm init
git add package.json
# puis vous codez ...
# ...
# et vous ajoutez une (ou plusieurs) dépendance(s)
npm install --save jquery moment
# Le fichier package.json est mis à jour
# node_modules/ apparaît comme 'untracked' par git. On le rajoute au fichier .gitignore
echo "node_modules/" >> .gitignore
git add .gitignore
# ...
# ===== Cas 2 =====
# Récupération d'un projet existant
git clone [email protected]/MonSuperPseudo/MonBeauProjet/.git
# A priori, le code contient déjà :
# - package.json
# Il ne reste donc qu'à installer les dépendances
npm install
# Si ce n'est pas déjà fait, ajouter 'node_modules/' à .gitignore
echo "node_modules/" >> .gitignore
# ...
- NIH syndrom / recréer la roue
- Exercice What a day
Mise en application
- moment.js définir le jour de la semaine en fonction d'une date fournie par l'utilisateur,
- showdown markdown to html live converter
Vendredi
Exploration
Des liens ou des sujets à explorer