>> Tous droite.
Bienvenue à l'informatique 164.
Donc, avant de nous plonger avec une vue d'ensemble
de ce que le cours sera sur ce semestre et un peu
de matière dans cette première journée, Je pensais que je vous donne un sens
de la façon dont nous avons passé la nuit dernière.
Ce n'est pas tant que défi côté serveur nous avons été confrontés
mais un côté client.
Ainsi ont tout de vous découvert ce site particulier pour l'instant
ou de toile dont certains Harvard les cours sont en train de passer à?
Donc iSites est sur le point de mourir d'une lente mort si vous avez obtenu joint
pour elle, il est susceptible d' être remplacé par la toile.
Et si nous nous pensions sauter à bord et faire partie
de ce bêta-test en utilisant la toile qui est un outil open source.
Il est parrainé par un société appelée instructure.
Donc, il ya une entreprise la sauvegarde derrière elle.
Mais la plupart du temps nous l'utilisons de cette façon.
Mais la nuit dernière quand nous essayions
pour obtenir le site Web de cours finalisé, nous sommes tombés sur un grand nombre
de frustrations parce que ce est un système de gestion d'apprentissage
ce qui signifie que c'est un logiciel
avec lequel vous pouvez gérer le contenu
à l'aide de l'interface sur le Web.
Vous n'avez pas à utiliser les fichiers de configuration des arcanes.
Vous n'avez pas à connaître quoi que ce soit sur les bases,
c'est à peu près le point et cliquez sur une façon dont les sites Google
ou quelque chose comme ça pourrait être.
Mais par conséquent, il était sacrément dur de faire quelque chose de simple, comme -
Passons sur le site des cours.
Maintenant, il suffit de mettre des options de menu dans ce côté gauche.
Affaire au point, il n'y a rien il fait en ce moment
parce que la façon dont le logiciel est conçu, c'est que si vous voulez
d'installer les choses dans votre menu de gauche,
vous avez réellement installer ces modules
ou des applications dans le logiciel.
Et nous ne voulons pas faire cela.
Nous voulions juste un lien aimer le programme.
Nous voulions un lien vers le personnel.
Nous voulions un lien vers vidéos et autres.
Donc, si vous étiez confronté avec les sites Web,
c'est à partir de sites Web de tiers
mais vous n'avez aucun contrôle sur le code source.
Vous n'avez pas accès à la serveur, vous ne pouvez pas SSH,
vous pouvez SFTP, tout ce que vous pouvez utiliser est l'interface web local
et que vous voulez commencer à changer
ou en modifiant le mode d' l'interface par d'autres moyens.
Ce qui pourrait votre première instinct être?
Quelles questions poseriez-vous de instructure dans ce cas,
l'entreprise de sorte que vous pouvez sorte de travailler
autour de ces limitations comme nous l'avons fait?
Nous voulons ajouter des options de menu
mais nous ne pouvons pas changer leur code du serveur.
Alors quelle est la solution pourrait que insinuer que?
Ouais.
[Inaudible Remarque]
OK.
[Inaudible Remarque]
Ouais. Donc, nous avons pu envisager quelque chose
comme une extension Chrome.
Si ce n'est pas familier, un Chrome extension est essentiellement une pièce
de logiciel à partir du Chrome navigateur écrit en général
en JavaScript.
Et c'est juste une manière d'injecter Code général JavaScript peut-être
un peu de CSS dans une bande la page que vous visitez.
Lequel l'extension Chrome est juste surveiller en permanence ce qui
sites que vous visitez et d'essayer de détecter.
Oh si vous êtes facebook.com faire.
Oh si vous êtes dans isites.harvard.edu faire cela.
Ainsi, ceux d'entre vous qui pourrait ont utilisé la fiche de 2x de CS50
en qui vous permet d'accélérer jusqu'à vidéos est exactement cela.
Donc c'est intéressant et c'est type de contrôle sur la bonne voie.
Parce que si vous n'avez pas accès sur le serveur, vous voulez juste
de changer en quelque sorte le DOM le arbre que l'utilisateur voit,
vous pouvez très bien que faire côté client.
Maintenant, bien sûr une prise évidente
d'utilisation d'un Chrome l'extension, c'est quoi?
Droite. Donc, tout le monde ne se sert Chrome et si sent type de lame
si vous avez de sorte à exiger que tous les
de vos utilisateurs peuvent utiliser uniquement le site
et voir les options de menu s'ils ont Chrome.
Alors quoi d'autre pourrait nous pourrions nous voulons demander instructure?
>> Donc, une chose est je suppose vous pouvez probablement ajouter un texte
sur le site, non?
>> OK.
>> En savoir si vous pouvez effectivement mis HTML dans le texte.
>> OK. Bon.
Donc, nous pourrions leur demander si nous pouvions mettre HTML dans le texte même.
Alors plutôt que de déposer un texte annonce, peut-on ajouter des liens?
Pouvons-nous ajouter des images?
Pouvons-nous ajouter des puces?
Tout ce que nous pourrions vouloir faire esthétiquement.
Et la réponse est oui.
Il est en effet un sorte de WYSIWG,
Ce que vous voyez est ce que vous Obtenez éditeur qui vient
avec ce particulier logiciel
qui vous permet d'éditer.
Des choses comme la page d'accueil avec mon nom et Rob
et Tim et ainsi de suite.
Et qui nous a partie du chemin.
Malheureusement, cela ne le fait pas mettons tout ici
par exemple.
Cela ne nous laisse pas mettre n'importe quoi ici parce que nous sommes contraints
en ce que l'original auteurs ont voulu que nous fassions.
Nous sommes donc un pas de plus.
Que pourrions-nous demander à la compagnie?
Quels sont les autres solutions de contournement peut-être?
Ça doit être solvable.
Que pourriez-vous faire?
Donc, vous étiez sur le droit suivre avec cette notion
de JavaScript côté client injection.
Sinon, comment pourrions-nous obtenir le JavaScript dans le site peut-être, non?
Parce que une fois que vous avez le JavaScript
vous pouvez très bien faire quelque chose même si votre vécu
avec JavaScript est limitée à 50 ou d'une autre expérience préalable,
vous le savez, que vous peut traverser l'arborescence
c'est une page Web, le DOM.
Vous vous souvenez sans doute que vous peut ajouter des nœuds ou supprimer des nœuds.
Vous pouvez injecter des choses dans une page Web.
En fait c'est exactement ce que les 2x CS50 prise en fait.
Il arrache les iSites ' lecteur vidéo et met
dans un autre ensemble.
Alors que faire si l'entreprise Instructure vous a permis
pour injecter le JavaScript dans le site de votre cours?
En d'autres termes, si elles vous avez permis que via leur interface graphique,
à leur interface WYSIWG collez l'URL d'un fichier JS
et peut-être même un fichier css. puis ils ont pris soin
du procédé de l'insérer tout en haut de chaque page.
Alors bien sûr, ce n'était la seule façon que nous avons pu
pour y parvenir.
Si je considère la source de la page ici - et permettez-moi de zoom avant et cherche
pour cs164.net qui est un domaine, nous possédons le cours.
Notez que par certaines séries de étapes, il a fallu un certain temps pour comprendre
avec leur documentation.
Nous nous sommes en mesure de dire, au sommet de tous page Web que sorties toile
pour ce cours, sortie. css.
Et si nous faisons une autre commande f et chercher un peu plus loin,
vous verrez que ici,
niché dans un peu de JavaScript Code il ya aussi mentionner
de cette URL ici.
En d'autres termes, nous sorte de les avoir trompés
en injectant quelque CSS,
quel que soit le JavaScript nous vouloir dans le site.
Alors que soulève alors la question, que fait-il?
Eh bien, allons-y et il suffit de prendre cette source,
collez ce ici.
Il est interdit parce pour simuler cela,
Je chmodé tout [transcription phonétique].
Alors permettez-moi de vous donner ce retour.
L'accès en lecture et maintenant recharger.
Alors qu'avons-nous fait?
Ainsi, vous aurez mieux à ce notamment à mi-semestre
quand nous passons beaucoup de notre temps sur JavaScript.
Mais qu'est-ce semblent faire?
Donc, l'un au sommet même de cette fichier JS qui est à nouveau inclus
dans chaque page web que l' stage se déroule maintenant sur le site.
Nous avons vérifié pour voir si le type de jQuery n'est pas indéfini.
Donc, en terme profane qu'est-ce que cela signifie?
Qu'est-ce que cela signifierait si jQuery est indéfini?
Eh bien, vous avez JavaScript chargé.
Vous n'avez pas jQuery chargé.
Donc, nous espérons simplement que instructure,
l'entreprise est en fait utilisant jQuery eux-mêmes.
Sinon, nous aurions à coller la bibliothèque jQuery sur
de ce fichier afin de d'avoir accès à elle.
Et ce n'est pas simplement parce que je veulent avoir accès à des choses
comme le signe notation dollar et d'autres fonctionnellement
qui vient avec jQuery.
Si vous vous souvenez de cette bibliothèque et s'il ne connaît pas
ou si elle a été un moment, reste assurés que nous viendrons à cette
avec dans un délai de quelques semaines.
Alors quelles sont les choses nous faisons ici?
Donc, pour ceux qui pourraient rappeler, qu'est-ce que cette syntaxe ici signifie?
Lorsque vous passez juste un anonyme fonction ou une fonction lambda?
En CS51 parler à la fonction jQuery comme ça.
Quand est ce code va se faire exécuter?
Ouais.
[Inaudible Remarque]
Exactement. Donc, ce code par nature
de cet appel de fonction par défaut va seulement se exécuté
lorsque le DOM de manière à parler est entièrement chargé.
Tout en haut de HTML vers le bas, gauche ou la droite a été lu
dans la mémoire et il ya un certain structure arborescente à l'intérieur de la mémoire.
Maintenant, c'est bien parce que si je veux commencer à jouer
autour d'elle et en changeant la Les options de menu, la suppression des choses,
ajouter des choses, je ferais mieux d'attendre
au moins jusqu'à ce que l' défaut DOM est en place.
Donc, ce n'est que la norme syntaxe jQuery.
Il est équivalent à dire lorsque le DOM est prêt.
Et maintenant, il est vraiment juste une combinaison
de jQuery syntaxe et du HTML.
Ainsi, par exemple, j'ai décidé que C'était juste me tracasse.
Personne sur le campus dit, oh, prenez-vous Comp Sci 164,
ou Comp Sci que ce soit, vous dire CS164 ou CS que ce soit.
Peu de nuisances si peu, nous voulons changer cela,
alors comment pourrions-nous le faire avec quelque chose comme le JavaScript?
Eh bien, avis, si je aller à la page ici
et au sommet de la page était auparavant CS164.
Si j'ouvre Chrome, qui est un navigateur utile
pour faire des inspections DOM et vous zoomez ici.
Notez que l'intérieur de ce code html est un élément qui a une ID
de chapelure et que ID fait quoi?
Il identifie de manière unique un de ces noeuds de l'arborescence
et dès que j'ai l' identificateur unique pour certains morceau
de HTML dans les DOM, maintenant Je peux faire ce que je veux
avec cette page web.
Je pourrais supprimer chaque nœud DOM.
Chaque balise HTML de la page et mettre tout ce que je veux
mais les besoins nous sont assez humble.
J'ai simplement voulu pour l'extrait de code ici.
Je voulais d'abord trouver l'en-tête de section onglets
qui était l'un des parents éléments juste au-dessus que.
Et je voulais aller l'avant et le changement -
Je voulais plutôt changement le contenu
de cette via ce HMTL fonctionner à un lien vers CS164
et puis je voulais modifier le CSS dessus
d'avoir un poids de police de gras.
Et nous n'allons pas entrer dans les détail sur le reste de cette ici.
Mais remarquez cette ligne ici.
Je n'ai remplacer un mondial partout.
Dire essentiellement, partout où vous voyez une durée
qui a une classe appelé ellipsible,
ce n'est pas une chose standard,
C'est exactement ce que le canevas logiciel appelle certaines classes.
Si elle contient la clé phrase COMPSCI164 aller de l'avant
et remplacer le HTML à l'intérieur de une telle durée avec juste CS164.
Et le reste de cette est assez bien commenté.
Mais le résultat final, ce que je suis faire est manuellement avec Chrome
ou tout autre navigateur déterminer ce que les identificateurs uniques sont
différents nœuds du DOM dans la arbre et leur mutation
de la manière que je voulais.
Et le résultat final, à présent que nous chmodé les choses correctement est
que maintenant je peux mettre un arbitraire morceau de HTML ici.
Je peux arracher les choses comme le pied de page.
Je peux arracher HTML ici et Je dois agiter un avertissement énorme.
C'est un hack complet
être mise en œuvre un site comme celui-ci.
Mais il sorte de parle le processus de la pensée
qui devraient en direction de la milieu du semestre,
surtout quand nous passons du temps sur JavaScript vous faire réfléchir
comment vous pouvez résoudre divers problèmes espérons mieux
de cette manière.
Mais les ingrédients pour résoudre un problème
comme ce vraiment juste réduit à quelques notions de base.
L'ouverture à quelque chose comme inspecteur de Chrome
et la compréhension ce que l'arbre DOM.
Savoir ce que l' sélecteurs CSS sont
pour des identifiants uniques ou pour les noms de classe.
Sachant que pour certains syntaxe si c'est en JavaScript pur
ou dans la bibliothèque jQuery pour réellement changer les DOM.
Et à la fin de la journée, nous sommes à peu près en mesure
plier le logiciel à notre volonté.
Mais il ya sans doute une prise.
Quel est le prix que nous sommes probablement payer pour ce hack complet?
Quel est le risque?
Ouais.
[Inaudible Remarque]
Exactement. Si instructure renomme un de leurs classes
ou renomme un de leurs identifiants ou réorganise simplement leur code HTML
qui est totalement leur prérogative,
tout cela pourrait se briser et puis l'un de nous va avoir
le remarquer ou de vous gars va avoir à signaler
et nous allons avoir de réfléchir à nouveau sur ce sujet.
Alors peut-être pas un grand traiter mais toujours une menace.
Quoi d'autre pourrait se produire?
Quoi d'autre est mauvais de cette approche?
Il est moins fréquent de nos jours.
Ouais. C'est un peu lent en ce que -
plutôt que de simplement obtenir la la source d'origine à partir du serveur.
Vous êtes en train de faire plus modifications du côté client.
Et en effet, si nous avions une sorte connexion internet lente beaucoup,
vous fait voir probablement quelques éclairs
sur l'écran comme DOM les noeuds sont en train de changer.
Il nous arrive juste à disposer d'une connexion,
un ordinateur assez rapide et si il est assez insaisissable à l'utilisateur.
Mais s'ils ont JavaScript désactivé?
Maintenant, c'est l'extrême coin cas ces jours-ci.
La plupart des gens sont - la majorité quand ils quittent JavaScript.
Mais si c'est ce qui se passe hors?
Nous ne voyons pas de qui que ce soit.
Donc en bref, en s'appuyant sur JavaScript pour quelque chose
comme ce fait le travail
mais la livraison est de savoir comment nous sommes allés sur ce dong.
Et vous pouvez voir par vous-même juste en regardant la source
puis fouiller à tout des deux URL sur cs164.net.
Comment nous avons réellement fait cela?
Mais son illustration de la façon dont vous pouvez commencer à construire plus
DOM intéressantes et même dans le cas
sites de conduits de façon dynamique comme l'application Facebook,
ou GChat ou analogue qui sont tirant constamment en plus de données,
comment vous pouvez effectivement modifier cette interface.
Mais maintenant, regardons l' bonne façon de commencer à faire les choses.
Ainsi, cette année, le parcours, contrairement à il ya deux ans
quand vous les gars principalement en PHP pour le premier semestre
et JavaScript pour la dernière tandis que la moitié il ya deux ans,
nous nous sommes concentrés plus sur mobile avec un peu de PHP, cette année,
nous avons décidé de changer choses à se concentrer plus
sur les applications basées sur le Web.
Mise en œuvre pas à paires de personnes
mais dans des équipes spécifiquement équipes de quatre
et les motivations étaient plusieurs.
Mais parmi eux étaient que,
avec une équipe de quatre il ya juste beaucoup plus de morceaux que vous pouvez mordre
hors en tant que groupe.
Faire développements web tend à se poser à différents aspects
du projet que vous pouvez alors déléguer au sein de votre équipe.
Par exemple, nous allons probablement avoir une ou deux de vous
dans une équipe donnée de travailler sur la extrémité avant, le code JavaScript,
le CSS, l'esthétique.
Le même projet un autre un ou deux d'entre vous se concentrer
sur l'extrémité arrière, la base de données conception de schéma, la validation
de données, écrit l'API les gens frontales vont travailler.
Et donc nous avons eu beaucoup plus de souffle de possibilités
pour les personnes à collaborer.
Et si vous trouvez si vous avez fait des projets
avec un seul partenaire dans le passé,
que de quatre, ce sera un peu plus difficile,
plus intéressant mais beaucoup plus puissant d'avoir tous
de vous les gars collaboration ensemble.
En termes de conditions préalables, nous nous en tiendrons probablement avec ces
pour le catalogue quatre cours CS antérieures.
Et ceci est basé sur l'expérience.
Il ya quelques années, fait allusion tout à l'heure,
nous avons assez bien permis toute personne qui a pris seulement 50
ou peut-être une certaine classe à l'école l'école pour suivre le cours
mais il y avait un tel écart des capacités et des niveaux de confort.
Il fait qu'il est difficile d'avoir certaines conversations et beaucoup
des élèves de la classe lutté.
Nous avons donc pensé de cette façon,
nous pouvons sorte de faire tout le monde une faveur collectivement.
Donc, gardez cela à l'esprit.
En termes de taille de l'équipe, quatre sera la valeur par défaut
si vous avez trois amis avec lesquels vous feriez
comme pour partenaire, c'est tout à fait bien.
Nous n'allons pas imposer équipes particulières pour vous.
Si vous n'avez pas d'amis ou partenaires à l'esprit de la classe,
pas grand-chose, nous allons continuer à que l'esprit et ainsi essayer
pour faciliter les types de partenariats.
En termes de structure de la classe, ce qui est très anormal.
Le cours ne sera pas structurée pour la plupart
autour de conférences et ne sera pas structuré
autour de vous les gars assis là, à regarder de cette façon
et me parler de cette façon.
Au contraire de la plupart séances de classe seront
sous la forme de réunions d'équipe.
Soit votre équipe recueillera ici ou ailleurs sur le campus
pour un couple d'heures le lundi après-midi ou pour un couple
des heures le mercredi après-midi.
Dans les prochaines semaines, nous allons trouver quel jour
et où chaque fois les gens vont être.
Si besoin d'être, nous pouvons ajuster les fois, mais nous verrons Based
sur une enquête que vous les gars tous finalement remplir.
Qu'est-ce qui se passe dans ces réunions?
Ainsi, les réunions hebdomadaires est
où vous les gars principalement présenter les progrès
sur divers projets, plus sur ceux qui dans un moment.
Donc, lors de ces réunions de l'équipe, un membre du personnel de l'enseignement et
ou moi-même seront présents et le but sera pour chaque
des quatre personnes dans le équipe de faire rapport sur les jalons
que vous avez ou ont pas atteint.
Lorsque l'étape seront définies
que la recherche de quelque chose, mettre en oeuvre quelque chose,
concevoir quelque chose, penser quelque chose ou similaire,
défendre les décisions de conception.
Il être donc - nous voulions cette classe
particulièrement critique pour ou difficile.
Donc ce n'est pas juste aller à être parler de votre journée
et comment vous avez réellement choisi de mettre en œuvre, mais je et Rob
et Tim qui va rencontrer un peu seront là pour vous défier.
De sorte que si vous avez fait une décision
et il n'est pas nécessairement le meilleur c'est très bien.
Si vous avez fait une forte opinion quant à pourquoi vous avez fait cela.
Et en réponse de la forme, bien, cela fonctionne
mais je ne suis pas vraiment sûr est pas ce qui est vraiment prévu
lors de ces réunions.
Donc, il est vraiment destiné à être une conversation bidirectionnelle
dans lequel vous défendez votre décisions et aussi nous convaincre
que le chemin que vous avez prise est idéalement meilleur
ou c'est une occasion pour vous pour solliciter la rétroaction de nous
et même vos partenaires
à ce que vous pourriez être faire différemment.
Et puis en particulier ceux-ci seront possibilités
pour l'examen du code.
Alors vous les gars vont écrire Le code JavaScript et du code PHP
et d'autres techniques aspects de chaque projet
et l'objectif sera devant un grand écran de télévision,
autour de la table comme ceci L'un de vous de se tenir
à un moment celui qui a été de faire le plus de travail
sur certains aspects de le projet ont jeté
et de présenter le code.
Et donnez-nous une tournée verbal de la code et nous donnera l'occasion
de dire pourquoi vous avez six boucles imbriquées exécution
quelque chose comme ça?
Ou pourquoi ne pas vous avez des index
dans votre table de base de données diverses sujets que nous allons explorer
au cours du semestre.
Donc, de temps en temps nous allons des entretiens techniques soit
sous la forme de ceux-ci dans réunions de style de personne
où nous rassemblons tous ensemble ou via vidéo
pour rendre les choses un peu asynchrone
pour l'amour de la commodité de sujets particulièrement techniques
et les outils que nous utilisons cours de ce semestre.
Certains populaires JavaScript bibliothèques
par exemple sont Backbone.js et Bookshelf.js et Express.js.
Ce sont tous des outils avec que vous pouvez faire sur le Web
applications utilisant JavaScript.
Pas sur le côté client si
mais sur le côté serveur en utilisant un cadre appelé Node.js
qui est une alternative à l' en utilisant quelque chose comme Apache
ou Microsoft IIS ou autre un logiciel de serveur web.
Donc, nous allons effectivement écrit dans le code JavaScript de classe,
à la fois sur le côté client que ainsi que sur le côté serveur.
Nous en parlerons outils avec lesquels certains
d'entre vous sont déjà familiers.
Des choses comme Git.
Nous allons plonger plus profondément aux choses comme SQL et contraintes
et les transactions et beaucoup des détails qui certainement
dans une classe comme 50, nous sorte de agiter nos mains pour l'amour du temps
mais ils sont toujours plus importante
lorsque la mise en oeuvre réellement un projet qui va être utilisé
par réelle et nous espérons un grand nombre d'utilisateurs
où la performance va commencer à faire une différence.
Dans le monde PHP, nous utiliserons un cadre appelé Laravel.
Il s'agit d'une architecture MVC.
Si connaître ou rappeler cet acronyme.
Et c'est juste un tas de code PHP pour faire beaucoup
de travail plus facile et pour faciliter
d'écrire plus complexe logiciels en particulier les projets
qui sont mis en œuvre par plusieurs personnes.
Pour les tests, nous utilisons des outils comme moquerie en unités PHP
et nous allons entrer dans l'habitude de pas seulement écrire du code et de tri
de frapper sur elle et anecdotique essayer de essayer de comprendre,
ça marche comme vous le souhaitez.
Mais plutôt le fait passer certains tests.
Alors que, en particulier si un de vos amis
dans vos changements de groupe du code, vous pouvez être sûr
que là, elle n'a pas rien cassé tout simplement
par en relançant les essais
que vous avez déjà écrite pour ce code.
Alors que n'ont pas les régressions bogué états de logiciel.
En outre, les projets sont
où nous passerons la plupart de notre temps.
Il n'y a donc pas d'examens.
Il est tout entraîné par projets dans cette catégorie
et il vraiment juste être deux par équipe.
Essentiellement, le premier semestre du semestre se concentrera
sur un des sites Web en PHP
qui aura utilisateur d'extrémité avant interfaces à la fois pour le bureau
et éventuellement mobile.
Ce sera donc l'occasion, mais tangent à la classe
à faire quelque chose comme une interface mobile basé sur le Web
ou si vous êtes vraiment déterminé, Android
ou iOS serait parfaitement bien.
Il faut juste réaliser que le courbe d'apprentissage, il
s'il ne connaît pas le feriez être peu élevé.
Mais il jouera très bien avec la vision
de aussi que chaque projet d'avoir une API de back-end.
Alors que vous pouvez avoir une séparation,
abstraction entre ce que vous sont faites et ce que Alice et Bob
et Charlie dans votre groupe sont également ainsi.
De sorte que chacune des extrémités avant vos
ou à l'arrière des extrémités peut en quelque sorte communiquer entre eux.
En ce qui concerne les détails, pour le cadre,
nous comptons sur Laravel et Eloquent qui est un ORM,
un mappeur objet-relation qui est juste une couche de logiciel
qui traite de la M dans MVC, le modèle.
Il fait un peu plus facile en particulier pour les grands projets
pour interroger les données de bases de données et d'écrire des données
et de représenter le monde réel entités sans avoir
d'écrire du code SQL brut.
Dans le monde de JavaScript, nous allons de nouveau utiliser express
Bibliothèque et qui sont analogues
dans le monde d'activer JavaScript.
Mais en utilisant au lieu d' Apache en utilisant Node.js
qui est de plus en plus populaire et permet notamment
pour des applications impliquant les interactions en temps réel,
chambres de tableau, etc.
Node est beaucoup mieux que Apache lors de l'utilisation -
la mise en œuvre projets comme ça
parce que vous pouvez envoyer des messages en utilisant des modèles comme pub et sous,
publication et d'abonnement, si familiariser avec ces phrases.
Donc plus sur que vers la milieu du semestre.
En termes d'attentes, ce sont eux pendant le cours.
Assister ou regarder ces occasionnelle négociations, des discussions techniques.
Le calendrier pour lequel finira par mettre
sur le site Web de cours.
Participer à toutes des réunions.
Donc, votre présence est requise au chacun de la cause des réunions d'équipe
après tout c'est là le plus de l'instruction du parcours
et la rétroaction et interactions qui se passera.
Jalons hebdomadaires, nous allons utiliser un outil que je vais faire mention
de dans un moment de général vous attribuer de une ou deux
des membres du personnel à chacun des les quatre personnes dans le groupe.
Choses à faire et ceux les choses vont prendre la forme
pourquoi ne pas vous vétérinaire aller cette option.
Pourquoi n'allez-vous pas ce vétérinaire option et comprendre ce qui
la mise en oeuvre de ces deux possibilités sont meilleures
entre maintenant et dire la semaine prochaine.
Pourquoi n'allez-vous pas mettre en œuvre ce?
Ou vous concevez ces tables de base de données.
Et enfin le calendrier dans le cours va
être assez organique selon les projets
que chaque équipe aborde selon sur ce que vos conclusions sont
quand vetting une implémentation et en fonction de l'option potentiellement
de ce que les utilisateurs finaux finalement veulent que le projet de le faire.
Et donc à cette fin, y n'y a pas de délais fixes par exemple.
Il y aura à peu près être dans une mission de roulement
des délais toutes les quelques jours, toutes les semaines sur la base
sur les conversations que vous avez avec un ou deux
des membres du personnel à votre table.
En fin de compte, si ce qui est raison est la soumission
de ces deux derniers projets.
En termes de ce que le projets seront,
Les projets seront être soit proposé
et choisi par vous les gars.
En fait, sur la forme de loterie par exemple, vous serez invité
sur ce que sont un ou plusieurs projets particulier que portent en quelque sorte
sur le campus que vous pensez être convaincant à mettre en œuvre.
Puisque l'un des espoirs pour le cours est
que quels que soient les projets ne viennent
de ce cours survivre la fin du semestre.
Et surtout si ils sont des thèmes sur le campus,
si si c'est une autre catalogue de cours, outil de magasinage
ou calendrier des événements ou service de navette ou n'importe quel nombre
des projets finaux populaires.
L'espoir après la fin de ce semestre est
qu'un tel projet vivre.
Et en effet, à cette fin,
ce que nous avons pensé que nous faisons est rendre un peu intéressant.
Et aussi sorte de possibilités de perspicacité
pour les débats de sorte que pour plus tout projet que nous
comme une classe aborder ce semestre,
il y aura deux équipes affecté à ce même projet.
L'idée générale étant que ils ne sont pas vraiment censés
de parler de leur diverses décisions de conception,
plutôt sa destinée à être plus d'une compétition à
qui peut finalement produire le meilleure conception, la mise en œuvre.
De sorte qu'à la fin de l' semestre, viennent mai, nous embarquons un
et pas de ces deux solutions.
Et nous en prendrons bien sûr soins de l'hébergement et ainsi de suite
de sorte que votre vie hérités sur l'extrémité du ressort.
Qu'est-ce que ces applications font?
Peut être n'importe quoi, quelque chose pour un ministère,
quelque chose pour un groupe d'étudiants,
quelque chose pour les élèves plus généralement cela fera partie
de la conversation dans la semaine à venir
jusqu'à ce que la tête de plongée premier
après avoir décroché une poignée de tels projets.
En termes de personnel, laisser moi de vous présenter Tim et Rob
qui voudrait dire bonjour.
Et ce sont ces gars qui, pour l'un des projets sera -
à la fois pour des projets sera votre principal conseiller.
Essentiellement pour l'un des projets, Rob se réuniront
avec vous hebdomadaire pour ces discussions.
Pour l'un des projets, Tim se réuniront avec vous
pour les chats et nous allons échanger à peu près à mi-semestre
que nous passons projets.
Si vous aimez parler juste à proximité de ce microphone.
>> Salut, je suis Rob.
J'ai obtenu mon diplôme en mai dernier de [inaudible].
Je suis maître de CS ici maintenant.
Excité pour le cours.
>> Et je suis Tim et je suis vraiment complètement nouveau pour la zone.
Je suis originaire de Philadelphie alors j'ai commencé à
ici quelques semaines il ya et je suis vraiment
dans le logiciel open source.
J'aide avec le maintien de la Projet Backbone.js où certains
vous connaissez peut-être
et j'ai aussi créé le Bookshelf.js projet
que David l'a mentionné.
Donc, je suis très heureux de voir les projets.
En effet >>.
Pour plus d'informations sur Tim au moins si vous allez
à la page d'accueil du cours et cliquez sur son nom, il va conduire
à son référentiel GitHub si vous souhaitez regarder quelques-uns
de son open source des outils et des projets.
Donc, en termes de qualités, juste Parce que c'est une FAQ même
si sorte de tangente à la vision plus large d'une classe,
Comment allez-notes finales être déterminé?
Donc, ce que nous allons finalement être assez subjective fondée
sur les interactions nous vous au cours -
avec votre au cours du semestre sur la base
sur vos cotisations à la fois à des référentiels de code
et des conversations que nous avons.
Et dans une coquille de noix, il sera fondé
sur vos cotisations aux projets.
Le delta entre la première semaine et la semaine dernière.
Donc, ne vous inquiétez pas si vous avoir que quatre cours
sous votre ceinture alors que d'autres étudiants
dans la classe pourrait avoir huit,
nous allons certainement garder C'est dans cet esprit.
La portée, la justesse, la conception et le style de votre projet,
de sorte que ces axes familiers.
La mesure dans laquelle vous préparer pour la réunion.
Donc ce qui est vraiment destiné à l'occasion pour nous
de recueillir toutes les semaines et avoir intelligent et amusement et sorte
débats de l'idéal émotionnels.
À certains moments où vous les gars faire proposez comment vous pourriez résoudre
quelque chose et ensuite défendre ce vous pourriez faire et le rôle de Tim
et mon rôle et le rôle de Rob être vous mettre au défi avec espoir.
Donc, que ce soit vous pouvez être persuadé de partir
dans une autre mise en œuvre direction ou peut être confiant
et se sentir assez bien sur le fait que, oui,
vous pensez que vous avez le meilleur mise en œuvre possible
pour cela.
En particulier et pour autant que il y aura une autre équipe de travail
sur ce même projet de leur propre angle individuel.
En ce qui concerne les outils, de sorte que ce sera peut-être de toutes les heures supplémentaires
et vous êtes invités à utiliser tout ce qui est d'intérêt
Pour votre propre équipe interne.
Mais pour la plupart partie, nous ferons usage
d'un outil gratuit appelé Asana pour la gestion des tâches.
Vous verrez plus sur ce via e-mail dans les prochains jours
et il s'agit essentiellement d'un outil via lequel vous pouvez travailler espaces
et les projets pour l'équipe.
Donc, si votre projet est de mettre en œuvre complètes [phonétique].
Vos quatre membres de l'équipe être à l'intérieur de ce projet,
dans ce dossier pour ainsi dire.
Et vous et nous serons en mesure de attribuer des jalons et de faire de
et les dates et commentaires.
Et c'est bien parce que c'est intégré avec l'email.
Ainsi, vous pouvez ou ne peuvent pas visiter la site il est totalement à vous.
Et vous pouvez également obtenir un sens global
de ce que les gens sont travailler et se faire une idée
de ce qui se passe au-delà votre propre bulle particulier
si votre tête descend après un certain temps en se concentrant
sur une chose en particulier.
Pour GitHub trop, si inconnu, GitHub est un
de la plus populaire, si elle n'est pas le référentiel le plus populaire
là-bas pour la source coder ces jours.
Nous allons utiliser cela comme un centre de référentiel pour chaque équipe de quatre
de sorte que vous quatre, puis nous avons accès à trois
et peut commenter dans la forme
des revues de code à l'aide L'interface de GitHub.
Mais nous allons vous présenter que
si quand inconnu le moment venu.
Et c'est juste un rapide un aperçu de Asana.
Aperçu rapide à GitHub et maintenant Permettez-moi de m'arrêter pour toutes questions.
Ouais.
[Inaudible question]
Bonne question qu'est-ce que nous pensons des cadres Python ou Ruby?
Ils pourraient atteindre l' mêmes objectifs en particulier.
Il nous arrive d'utiliser PHP en 164 parce que beaucoup
de bande avant de personnes expériences qui sortent de 50
qui utilise PHP en ce moment.
Mais absolument, pourrait tout de ces projets se fera en Ruby,
Python, Java ou même d'autres cadres, Node.js certainement.
Mais il nous arrive d'utiliser PHP et il nous arrive d'utiliser Node.js
et nous voulons normaliser ceux pour les deux projets
de sorte que c'est beaucoup plus facile en tant que classe
avoir très similaire conversations
et ne pas avoir trop de pommes et des oranges dans la classe.
Même si il y aura discrétion quand il s'agit
pour les add-ons particulières dans bibliothèques que vous pouvez utiliser
pour l'un de ces environnements.
Donc, pas de revendication que l'on est particulièrement mieux
que l'autre.
Et PHP a une sorte de vilain l'histoire, mais il est arrivé beaucoup,
beaucoup mieux au cours des dernières années.
Donc ce qui nous attend?
Pas de devoirs ou d'une telle d'autres choses ce soir
que de visiter cette URL si en effet d'intérêt.
Nous publierons le lien sur le site Internet
si vous oubliez où c'est.
La date limite pour ce qui va être 18 heures le mercredi
de sorte que Rob et Tim et moi peut s'asseoir dans la soirée
et examiner les soumissions et trouver la meilleure façon
pour optimiser les groupes et ainsi de suite.
Nous vous ferons savoir le jeudi si oui ou non nous avons eu
à la loterie et si nous avons une place
de sorte que vous les gars peuvent obtenir cartes d'étude signé à la figure
ce que vous voulez faire.
Et dans le même temps, si vous avez des questions,
aller sur le site du cours.
personnel de courriel à cs164.net.
Quand nous reviendrons mercredi, il sera toujours ce format.
Mais probablement commencer mi-semaine prochaine ou la semaine
après où nous divisons en groupes beaucoup plus petits
avec seulement quatre d'entre vous rencontrer à un moment avec moi
et ou Tim et Rob ou.
Merci beaucoup à l'équipe dans le dos aujourd'hui.
Nous nous reverrons mercredi.