>> Alles klar.
Willkommen in Computer Science 164.
Also, bevor wir tauchen Mit einem Überblick
von dem, was der Kurs sein über dieses Semester und ein bisschen
des Materials in diesem ersten Tag, Ich dachte, ich würde Ihnen ein Gefühl geben
wie wir letzte Nacht verbrachten.
Es ist nicht so viel wie serverseitige Herausforderung, der wir konfrontiert
aber eine clientseitige einem.
So habe einer von euch entdeckt diese spezielle Website nur noch
oder Leinwand, die einige Harvard Kurse bewegen sich nun um?
So iSites ist zu sterben einen langsamen Tod, wenn es angebracht bekommen haben
es ist es wahrscheinlich, mit Canvas ersetzt werden.
Und so dachten wir, wir springen an Bord und werden Sie Teil
dieser Beta-Test mit Leinwand Das ist ein Open-Source-Tool.
Es ist durch eine gesponserte Firma namens Instructure.
Es gibt also eine Unternehmens Sichern dahinter.
Aber in den meisten Fällen wir verwenden es in dieser Weise.
Aber letzte Nacht, als wir versuchten
Kurse, die Website zu bekommen abgeschlossen, liefen wir in eine Menge
Frustrationen, weil diese ist ein Lernmanagementsystem
das bedeutet, es ist ein Stück Software
mit dem Sie Inhalte verwalten
durch Verwendung von Web-basierte Schnittstelle.
Sie müssen nicht zu benutzen obskuren Konfigurationsdateien.
Sie müssen nicht wissen, alles über Datenbanken,
es ist ziemlich viel Sinn und Klicken Sie auf eine Art Google-Websites
oder so ähnlich könnte.
Aber als Ergebnis, es war verdammt hart um etwas Einfaches wie tun -
lasst uns auf den Kursen Website.
Jetzt setzen nur Menüoptionen in diesem linken Seite.
Case in point, es gibt nichts Gibt es eigentlich jetzt
weil die Art der Software ist so konzipiert ist, dass, wenn Sie wollen
die Dinge in zu installieren Ihre linken Menü,
Sie tatsächlich Installation dieser Module
oder Anwendungen in der Software.
Und wir wollen nicht, dies zu tun.
Wir wollten einfach einen Link auf den Lehrplan wie.
Wir wollten einen Link auf die Mitarbeiter.
Wir wollten einen Link zu Videos und dergleichen.
Also, wenn Sie konfrontiert wurden mit den Websites,
es ist von Websites Dritter
aber Sie haben keine Kontrolle haben über den Quellcode.
Sie haben keinen Zugriff auf die Server, SSH können Sie nicht,
Sie SFTP können, alles, was Sie verwenden können ist die lokale Web-Interface
und Sie ändern beginnen soll
oder Ändern des Benutzer Schnittstelle mit anderen Mitteln.
Wie könnte Ihre erste Instinkt?
Welche Fragen könnte man fragen der Instructure in diesem Fall
das Unternehmen, so dass Sie können Art von Arbeit
Um diese Einschränkungen wie wir?
Wir wollen die Menüoptionen hinzufügen
aber wir nicht ändern können ihre Server-Code.
Also, was Lösung könnte, dass deuten, dass?
Ja.
[Inaudible Bemerkung]
OK.
[Inaudible Bemerkung]
Ja. So konnten wir etwas betrachten
wie eine Chrome-Erweiterung.
Wenn nicht vertraut sind, ein Chrome Verlängerung ist im Wesentlichen ein Stück
von Software aus dem Chrome Browser im Allgemeinen geschrieben
in JavaScript.
Und es ist nur ein Weg, der Injektion von Code typischerweise JavaScript vielleicht
einige CSS in eine Web- Seite, die Sie besuchen.
Wobei die Chrome-Erweiterung ist nur ständig überwacht, was
Webseiten, die Sie besuchen und zu versuchen, zu detektieren.
Oh, wenn Sie facebook.com tun.
Oh, wenn du bist isites.harvard.edu tun.
Also diejenigen, die vielleicht CS50 ist 2x Stecker verwendet haben
In, mit dem Sie die Geschwindigkeit up-Videos ist genau dies.
Also das ist interessant und es ist Art auf dem richtigen Weg.
Denn wenn Sie keinen Zugang an den Server, Sie wollen einfach nur
irgendwie ändern das DOM der Baum, die der Benutzer sehen,
Sie kann so ziemlich tun es nur Client-Seite.
Jetzt natürlich eine offensichtliche Fang
der Verwendung eines Chrome Erweiterung ist was?
Richtig. Also nicht jeder ist mit Chrome und wenn irgendwie lahm fühlt
wenn Sie Art haben zu beauftragen, dass alle
der Benutzer kann die Website nur
und siehe Menü-Optionen wenn sie Chrome.
So was könnten wir vielleicht wir wollen Instructure fragen?
>> So eine Sache ist, ich denke, Sie können einen Text hinzufügen, wahrscheinlich
auf der Website, oder?
>> OK.
>> Finden Sie heraus, wenn du kannst tatsächlich legte HTML in Text.
>> OK. Gut.
So konnten wir sie fragen, ob wir konnten HTML setzen, der im Text.
Also anstatt eine Text verfassen Ankündigung können wir Links hinzufügen?
Kann man Bilder hinzufügt?
Können wir Aufzählungszeichen hinzufügen?
Alles, was wir könnten wollen ästhetisch zu tun.
Und die kurze Antwort ist ja.
Es ist in der Tat ein Art WYSIWYG,
Was Sie sehen, was Sie Holen Sie Editor, der kommt
mit dieser besonderen Stück Software
dass können Sie bearbeiten.
Dinge wie der Homepage mit meinem Namen und Rob
und Tim und so weiter.
Und das hat uns Teil der Weg dorthin.
Leider ist das nicht laßt uns hier nichts
zum Beispiel.
Das bedeutet nicht, laßt uns alles hier, weil wir gezwungen
durch das, was das Original Autoren wollten uns zu tun.
Also sind wir einen Schritt näher.
Was sonst könnten wir fragen Sie die Firma?
Was sind die anderen Umgehungen vielleicht?
Es hat lösbar zu sein.
Was können Sie tun?
Also auf der rechten Seite waren Sie verfolgen mit diesem Begriff
von clientseitigen JavaScript Injektion.
Wie sonst könnten wir bekommen JavaScript in die Website vielleicht, oder?
Denn sobald Sie JavaScript haben,
man kann so ziemlich alles tun, auch wenn Ihr erfahren
mit JavaScript ist auf 50 begrenzt oder eine andere vorherige Erfahrung,
Sie wissen, dass Sie können den Baum zu durchlaufen
das ist eine Web-Seite, die DOM.
Sie erinnern sich vielleicht, dass Sie können Knoten Knoten hinzufügen oder entfernen.
Sie können Dinge injizieren in eine Web-Seite.
In der Tat, das ist genau das, was die CS50 2x stecken tut.
Es reißt die iSites ' Video-Player und Puts
in einem anderen zusammen.
So was, wenn das Unternehmen Sie erlaubt Instructure
Für die JavaScript-spritzen in Ihren Kurs-Website?
Mit anderen Worten, was ist, wenn sie Sie dürfen über ihre GUI,
ihre WYSIWYG-Schnittstelle zu fügen Sie die URL einer JS-Datei
und vielleicht sogar ein. CSS-Datei und dann nahm sie Pflege
der Prozess des Einsetzens es ganz oben auf jeder Seite.
So sicher genug, das war Nur so konnten wir
um dies zu erreichen.
Wenn ich die Seite anzeigen Quelle hier - und lassen Sie mich in vergrößern und suchen
für cs164.net denen A Domain besitzen wir das natürlich.
Beachten Sie, dass über einige Reihe von Schritte, dauerte es eine Weile, um
mit ihrer Dokumentation.
Wir sind wir in der Lage zu sagen, auf der Spitze jedes Web-Seite welche Leinwand-Ausgänge
Für diesen Kurs, Ausgangs. css-Datei.
Und wenn wir einen anderen Befehl zu tun f und suchen ein wenig weiter,
Sie, denn hier unten sehen,
mit in irgendeiner JavaScript verschachtelt Code gibt es auch erwähnen,
dieser URL hier.
In anderen Worten, wir sie irgendwie ausgetrickst haben
Einspritzen in welchem ​​CSS
was auch immer wir JavaScript wollen in die Website.
So dass dann stellt sich die Frage, was tut sie?
Nun, lasst uns weitermachen und nur greifen diese Quelle,
fügen Sie diese hier.
Es ist verboten, weil um dies zu simulieren,
Ich chmod [phonetische] alles.
Also lassen Sie mich das zurück zu geben.
Lesezugriff und jetzt neu zu laden.
Also, was haben wir gemacht?
So werden Sie besser auf diese zu bekommen Besonders Mitte Semester
wenn wir verbringen viel unserer Zeit auf JavaScript.
Aber was hat das zu tun scheinen?
Also ein ganz am Anfang dieser JS-Datei, die wiederum ist im Lieferumfang enthalten
in jede Web-Seite, die der Natürlich läuft jetzt auf der Website.
Wir überprüften, ob die Art jQuery wird nicht spezifiziert.
So in juristischer Sicht was bedeutet das?
Was würde es bedeuten, wenn jQuery ist nicht definiert?
Nun, wollen Sie JavaScript geladen.
Sie müssen nicht jQuery geladen.
Also werden wir nur hoffen, dass Instructure,
das Unternehmen tatsächlich ist mit jQuery selber.
Sonst würden wir zu haben, fügen Sie die jQuery-Bibliothek auf
dieser Datei, so wie den Zugang zu ihm haben.
Und das ist nicht, weil ich einfach wollen den Zugang zu Dingen haben
wie der Dollar-Zeichen-Notation und andere funktionell
das kommt mit jQuery.
Wenn Sie diese wieder zu Bibliothek und wenn nicht vertraut
oder wenn es schon eine Weile, Ruhe sicher werden wir dazu kommen
mit in ein paar Wochen Zeit.
Also, was sind die Dinge, wir hier tun?
Also für diejenigen, die sich vielleicht erinnern, was bedeutet das Syntax hier das?
Wenn Sie nur passieren eine anonyme Funktion oder Lambda-Funktion?
In CS51 sprechen, um die jQuery-Funktion wie diese.
Wann ist dieser Code gehen, um ausgeführt zu werden?
Ja.
[Inaudible Bemerkung]
Genau. Also dieser Code von der Natur
dieser Standard-Funktionsaufruf ist nur zu noch ausgeführt werden
wenn der DOM so zu sprechen vollständig geladen ist.
Alle von der HTML oben nach unten, links oder rechts gelesen wurde
in den Speicher und es gibt einige Baumstruktur im Inneren des Speichers.
Nun, das ist gut, weil wenn ich die Wiedergabe zu starten
, um mit ihm und die Änderung der Menüoptionen, die Beseitigung Dinge,
Hinzufügen Dinge, würde ich besser warten
bis mindestens die Standard-DOM vorhanden ist.
Das ist also nur Standard jQuery-Syntax.
Es ist gleichbedeutend damit, wenn das DOM bereit ist.
Und jetzt ist es wirklich nur eine Kombination
von jQuery-Syntax und einige HTML.
So zum Beispiel, habe ich beschlossen, dass dies stört mich nur.
Niemand auf dem Campus, sagt, oh, nimmst du Comp Sci 164,
oder was auch immer Comp Sci Sie sagen CS164 oder CS was auch immer.
So wenig kleinere Ärgernis, wir ändern möchten,
so, wie könnten wir das tun, mit so etwas wie JavaScript?
Nun, Kündigung, wenn ich gehen Sie auf die Seite hier
und oben auf der Seite, zuvor war CS164.
Wenn ich öffnen, Chrome, welche ein nützliches Browser
dafür DOM Inspektionen und Sie hier zoomen.
Beachten Sie, dass innerhalb dieser HTML war ein Element, das eine ID hatten
Semmelbrösel und dass ID macht was?
Es identifiziert eindeutig ein dieser Knoten in der Baum
und sobald ich die eindeutige Kennung für einige Brocken
von HTML in der DOM, jetzt Ich kann nichts tun, ich will
Mit dieser Web-Seite.
Ich könnte jeden DOM-Knoten zu löschen.
Jedes HTML-Tag von der Seite und legte alles, was ich will
Bedürfnisse, aber wir sind ziemlich bescheiden.
Ich wollte einfach für das Code-Snippet hier.
Ich wollte zuerst finden der Abschnitt Registerkarten Kopf
die eine der Elternteil Elemente nur darüber.
Und ich wollte gehen voran und Wandel -
Ich wollte eher Wechsel der Inhalt
der, dass über diese HMTL Funktion, um einen Link zu CS164
und dann wollte ich verändern die CSS auf sie
um eine Schrift Gewicht fett haben.
Und wir werden nicht in die gut Detail auf den Rest dazu hier.
Aber beachten Sie diese Zeile hier.
Ich habe eine globale ersetzen überall.
Im Grunde sagen, überall eine Spannweite sehen
das hat eine Klasse ellipsible genannt,
das ist nicht ein Standard-Ding,
das ist genau das, was die Leinwand Software ruft bestimmte Klassen.
Wenn sie den Schlüssel enthält Satz COMPSCI164 voran gehen
und ersetzen Sie den HTML-Innenseite eine solche Spannweite mit nur CS164.
Und der Rest ist ziemlich gut kommentiert.
Aber am Ende Ergebnis, was ich bin Dabei ist manuell mit Chrome
oder jeder Browser, herauszufinden, was die eindeutigen Identifikatoren
verschiedenen Knoten in dem DOM Baum und mutiert sie
in der Art und Weise, die ich wollte.
Und das Ergebnis, jetzt, wir die Dinge richtig chmod ist
dass jetzt kann ich eine beliebige setzen HTML-Block hier.
Ich kann Dinge herausreißen wie der Fußzeile.
Ich kann rippen HTML hier und Ich hätte eine riesige Haftungsausschluss winken.
Dies ist eine komplette Hack
werden, um die Umsetzung eine Website wie diese.
Aber es ist irgendwie spricht auf den Denkprozess
das sollte in Richtung der Mitte des Semesters,
vor allem, wenn wir die Zeit verbringen auf JavaScript erhalten Sie denken
darüber, wie Sie verschiedene lösen kann Probleme hoffentlich besser
als in dieser Weise.
Aber die Zutaten zur Lösung eines Problems
wie diese wirklich nur auf einige Grundlagen reduziert.
Öffnungs bis zu etwas wie Chrome Inspector
und Verständnis was die DOM-Struktur ist.
Wissen, was der CSS-Selektoren sind
für eindeutige IDs oder für Klassennamen.
Zu wissen, ob eine Syntax es ist in JavaScript reinen
oder in die Bibliothek jQuery tatsächlich ändern die DOM.
Und am Ende des Tages, wir sind ziemlich viel in der Lage
um die Software zu biegen unseren Willen.
Aber es gibt wohl einen Haken.
Was ist der Preis, den wir sind wahrscheinlich Zahlung für diese vollständige Hack?
Was ist das Risiko?
Ja.
[Inaudible Bemerkung]
Genau. Wenn Instructure benennt eine ihrer Klassen
oder benennt eines ihrer IDs oder einfach nur ordnet ihre HTML
ist die völlig ihr Vorrecht,
All dies könnte brechen und dann einer von uns ist zu haben,
um es zu bemerken oder einer von Ihnen Jungs wird sich melden zu müssen
und wir gehen zu müssen wieder von vorne denken.
Also vielleicht kein großer beschäftigen, aber immer noch eine Bedrohung.
Was könnte passieren?
Was sonst ist schlecht zu diesem Ansatz?
Es ist weniger häufig in diesen Tagen.
Ja. Es ist ein wenig langsamer, dass -
nicht nur erhalten, die Originalquelle vom Server.
Sie sind jetzt die Bereitstellung zusätzlicher Änderungen Client-Seite.
Und in der Tat, wenn wir eine so musste sehr langsame Internet-Verbindung,
Sie tatsächlich sehen würde wahrscheinlich einige Blitze
auf dem Bildschirm als DOM Knoten verändern sich.
Wir haben gerade zu geschehen eine Verbindung,
eine ziemlich schnelle Computer und so es ist ziemlich schwer für den Benutzer.
Aber was, wenn sie JavaScript deaktiviert?
Nun, das ist eine extreme Ecke Fall in diesen Tagen.
Die meisten Menschen sind - die Mehrheit wenn sie verlassen JavaScript ein.
Aber wenn es ausgeschaltet ist, was passiert?
Wir wissen nicht sehen dieser auch immer.
Also kurz gesagt, die sich auf JavaScript für etwas
so erhält die Arbeit erledigt
aber das ist, wie Essen zum Mitnehmen wir gingen zu diesem dong.
Und Sie selbst sehen können nur, indem Sie die Quelle
und dann stochern jeder der beiden URLs auf cs164.net.
Wie wir tatsächlich hat das getan?
Aber seine anschaulichen, wie Sie beginnen, mehr
interessante DOM und auch in dem Fall
dynamisch gestützte Websites wie die Facebook-Anwendung,
oder GChat oder dergleichen, das sind ständig ziehen in mehr Daten,
wie Sie tatsächlich ändern, dass die Schnittstelle.
Aber jetzt schauen wir uns die richtige Weg, um zu beginnen, Dinge zu tun.
Also in diesem Jahr, der Kurs, anders als vor zwei Jahren
Jungs, wenn Sie vor allem in PHP für das erste Halb
und JavaScript für die letzte Hälfte der Erwägung, dass vor zwei Jahren,
wir auf mobilen konzentrierten sich mehr mit ein wenig PHP, in diesem Jahr,
wir beschlossen, zu ändern Dinge mehr konzentrieren
auf Web-basierten Anwendungen.
Nicht Implementiert Paare von Menschen
aber speziell in Teams Teams von vier
und die Motivationen gab mehrere.
Aber unter ihnen waren, dass,
mit einem Team von vier gibt es nur viel mehr Stücke, die Sie beißen
off als Gruppe.
Doing Web-Entwicklungen tendenziell selbst landen, um verschiedene Aspekte
des Projekts, die Sie delegieren zu Ihrem Team.
Zum Beispiel werden wir wahrscheinlich haben ein oder zwei von euch
in einem bestimmten Team, das an der Front, der JavaScript-Code,
CSS, die Ästhetik.
Am gleichen Projekt eine andere ein oder zwei von euch konzentrieren
am hinteren Ende, die Datenbank Schema-Design, die Validierung
von Daten, Schreiben der API, die die vorderen Ende die Menschen zu arbeiten.
Und so haben wir nur eine Menge bekam mehr Atem der Möglichkeiten
für die Menschen zusammenarbeiten.
Und so finden Sie, wenn Sie Sie haben Projekte gemacht
mit nur einem Partner in der Vergangenheit,
dass mit vier sein, es wird ein wenig schwieriger,
mehr interessant, aber viel mehr mächtig, um alle haben
von euch zusammen zusammen.
In Bezug auf die Voraussetzungen, wir werden wahrscheinlich mit diesen Stick
für den Katalog vor vier CS-Kurse.
Und das beruht auf Erfahrung.
Eine vor einigen Jahren als zu Ihnen früh angedeutet,
wir ziemlich viel erlaubt jeder, der nur 50 nahm
oder vielleicht einige Klasse in der Schule, um den Kurs zu nehmen
aber es war nur so eine Ausbreitung von Fähigkeiten und Komfort.
Das machte es schwer zu haben bestimmte Gespräche und eine Menge
der Studierenden in die Klasse gekämpft.
Also dachten wir, auf diese Weise,
können wir Art von jeder tun einen Gefallen zusammen.
So sollte man nicht vergessen.
In Bezug auf die Teamgröße, vier wird der Standard sein
wenn Sie drei haben Freunde, mit denen du würdest
wie zum Partner, das ist völlig in Ordnung.
Wir werden nicht vor, insbesondere Teams für Sie.
Wenn Sie keine Freunde haben oder nicht haben Partner im Auge für die Klasse,
keine große Sache, wir halten , dass der Geist, wie gut und versuchen
zu denen erleichtern Arten von Partnerschaften.
In Bezug auf die Struktur der Klasse, das ist sehr ungewöhnlich.
Der Kurs wird nicht in den meisten Fällen strukturiert
um Vorträge und nicht strukturiert werden
um euch sitzen da und starrte auf diese Weise
und ich spreche auf diese Weise.
Vielmehr die meisten der Unterrichtsstunden werden
in Form von Teamsitzungen.
Entweder Ihr Team sammeln hier oder anderswo auf dem Campus
für ein paar Stunden am Montag, Nachmittage oder für ein Paar
Stunden am Mittwoch, Nachmittag.
In den kommenden Wochen, wir werden herausfinden, an welchem ​​Tag
und die Zeit jeden Leute sein.
Wenn Notwendigkeit zu sein, wir zwicken kann die Zeiten, aber wir werden auf Basis sehen
auf einer Umfrage, dass ihr Jungs alle letztlich ausfüllen.
Was passiert in diesen Treffen?
So sind die wöchentlichen Treffen ist
wo Sie vor allem Jungs präsentieren den Fortschritt
an verschiedenen Projekten, mehr auf die in einem Augenblick.
Also bei diesen Teamsitzungen, einer der Lehrenden und
oder ich selbst wird anwesend sein und das Ziel wird für jeden sein
der vier Menschen in der Team auf Meilensteine ​​berichten
dass Sie oder nicht erreicht.
Wo der Meilenstein definiert wird
so etwas erforschen, Umsetzung etwas,
Gestaltung etwas, das Denken etwas oder dergleichen,
Verteidigung Design-Entscheidungen.
So Es ist - wir diese Klasse bedeutete
besonders kritisch oder herausfordernd.
So ist es nicht einfach so zu über den Tag zu sprechen
und wie Sie tatsächlich gewählt implementieren, aber ich und Rob
und Tim, die in ein wenig kennen lernen werden wird da sein, um Sie herauszufordern.
So dass, wenn Sie eine Entscheidung getroffen
und es ist nicht notwendigerweise das beste ist das in Ordnung.
Wenn Sie tatsächlich eine starke Meinung, warum du das getan hast.
Und in der Antwort der Form, gut, es funktioniert
aber ich bin mir nicht wirklich sicher ist nicht das, was wirklich erwartet
bei diesen Treffen.
Also es ist wirklich sein soll ein bidirektionales Gespräch
in dem Sie verteidigen Sie Ihre Entscheidungen und auch davon zu überzeugen, uns
dass der Weg, Sie haben genommen ist ideal besten
oder es ist eine Chance für Sie Feedback von uns werben
und auch Ihre Partner
das, was Sie vielleicht werden anders machen.
Und dann insbesondere werden diese Möglichkeiten sein
für Code-Review.
So euch schreiben wird JavaScript-Code und PHP-Code
und andere technische Aspekte der einzelnen Projekte
und das Ziel wird sein, vor einem großen TV-Bildschirm,
um die Tabelle wie folgt für einen von euch zu stehen
bis zu einem Zeitpunkt, wer immer mache die meiste Arbeit
auf einen Aspekt der das Projekt gelegt haben
und den Code zu präsentieren.
Und geben Sie uns eine verbale Tour durch die Code und geben uns eine Gelegenheit,
zu sagen, warum Sie haben sechs verschachtelten Schleifen Umsetzung
so etwas?
Oder warum nicht Sie Indizes
in der Datenbanktabelle verschiedenen Themen, die wir erkunden
im Laufe des Semesters.
So werden wir gelegentlich haben technische Gespräche entweder
in Form von diesen in Person Stil Treffen
wo wir alle sammeln zusammen oder per Video
machen die Dinge ein wenig asynchrone
der Einfachheit halber auf insbesondere technische Themen
und Tools, die wir verwenden, in diesem Semester.
Einige beliebte JavaScript Bibliotheken
zum Beispiel sind Backbone.js und Bookshelf.js und Express.js.
Diese sind alle Werkzeuge mit was Sie machen können Web-basierte
Anwendungen mit Hilfe von JavaScript.
Nicht auf der Client-Seite, obwohl
aber auf der Server-Seite mit ein Rahmen genannt Node.js
die eine Alternative zu ist mit so etwas wie Apache
oder Microsoft IIS oder andere Web-Server-Software.
Also werden wir tatsächlich schreiben die Klasse JavaScript-Code,
sowohl auf der Client-Seite als und auf der Server-Seite.
Wir werden darüber sprechen, Werkzeuge, mit denen einige
von Ihnen bereits vertraut sind.
Dinge wie Git.
Wir werden die Dinge in tiefer tauchen wie SQL und Zwänge
und Transaktionen und eine Menge der Details, die sicherlich
in einer Klasse wie 50, wir Art von Wellen unsere Hände hoch für Zeiten willen
sind aber immer wichtiger
wenn tatsächlich eine Umsetzung Projekt, die gehen, verwendet werden
durch tatsächliche und hoffentlich eine große Anzahl von Nutzern
in denen die Leistung wird sich beginnen, um einen Unterschied zu machen.
In der PHP-Welt, wir verwenden ein Rahmen genannt Laravel.
Dies ist eine MVC-Architektur.
Wenn wissen oder erinnern daran, dass Akronym.
Und es ist nur ein Haufen von PHP-Code, um eine Menge machen
von Arbeitsplätzen einfacher und zu erleichtern,
um komplexere schreiben Software-Projekte besonders
die implementiert werden, von mehreren Personen.
Für die Prüfung werden wir Tools wie Hohn in PHP-Einheiten
und wir werden in die Gewohnheit zu bekommen nicht nur das Schreiben von Code und Art
hämmern auf sie und anekdotisch versuchen, versuchen, herauszufinden,
funktioniert es wie gewünscht.
Sondern tut es geben bestimmte Tests.
So dass insbesondere wenn ein Freund von dir
in der Gruppe Änderungen ein Code, können Sie sicher sein,
das hier hat sie nicht gebrochen alles einfach
durch erneutes Ausführen der Tests
dass Sie bereits haben für diesen Code.
Damit haben nicht Regressionen um Zustände von Software-Buggy.
Zusätzlich ist die Projekte
gebracht, wo wir die meiste Zeit.
Also gibt es keine Prüfungen.
Es ist alles getrieben Projekte in dieser Klasse
und es gibt wirklich nur zwei pro Team.
Im Wesentlichen in der ersten Hälfte des Semesters konzentrieren
auf einer PHP-basierten Websites
das wird vor Endbenutzer Schnittstellen sowohl für den Desktop
und gegebenenfalls mobil.
So wird dies eine Chance sein, wenn auch tangential zu der Klasse
, um tatsächlich etwas zu tun eine Web-basierte mobile Schnitt
oder wenn Sie wirklich entschlossen, Android
oder iOS würde perfekt in Ordnung sein.
Nur erkennen, dass die Lernkurve gibt
wenn nicht vertraut wäre sein etwas höher.
Aber es wäre sehr spielen schön mit der Vision
der auch, dass jedes Projekt einige Back-End-API haben.
So, dass man haben kann eine Trennung,
Abstraktion zwischen dem, was Sie tun und was Alice und Bob
und Charlie in Ihrem Gruppe sind auch als gut.
So, dass jeder Ihrer vorderen Enden
oder hinteren Enden können irgendwie miteinander kommunizieren.
In Bezug auf die Besonderheiten, für Rahmen,
wir werden auf Laravel verlassen und Eloquent, die ein ORM ist,
ein Objekt-Relation Mapper die ist nur eine Softwareschicht,
dass die Adressen M in MVC, dem Modell.
Das macht es ein wenig leichter vor allem für große Projekte
Daten aus abfragen Datenbanken und Schreiben von Daten
und der realen Welt repräsentieren Personen ohne
Roh SQL-Code zu schreiben.
In der Welt der JavaScript wir werden wieder benutzen Express
Bücherregal und die Analoge
in der JavaScript-Welt.
Aber statt mit Apache mit Node.js
die zunehmend beliebt ist und ermöglicht eine besonders
für Anwendungen, bei denen Echtzeit-Interaktionen,
Chart-Zimmer und dergleichen.
Knoten ist viel besser als bei der Verwendung von Apache -
bei der Umsetzung Projekte wie die
denn man kann Nachrichten senden mit Modellen wie Pub und sub,
veröffentlichen und zu abonnieren, wenn vertraut mit diesen Phrasen.
Also mehr auf, dass die Richtung Mitte des Semesters.
In Bezug auf die Erwartungen, sind sie für den Kurs.
Nehmen Sie an, oder schauen Sie gelegentlich diese Vorträge, Fachgespräche.
Der Zeitplan für die wird letztlich setzen
Kurse auf der Website.
Teilnahme an allen der Sitzungen teilgenommen.
So wird bei Teilnahme erforderlich jeder der Team-Sitzungen "Ursache
nach allem, was ist, wo die meisten der Kurs der Anweisung
und Rückmeldungen und Wechselwirkungen passieren wird.
Wöchentliche Meilensteine, wir verwenden ein Werkzeug, das werde ich machen Erwähnung
der in einem Moment, um allgemein ordnen Sie die von einem oder zwei
der Mitarbeiter zu jeder die vier Personen in der Gruppe.
Dinge zu tun und die Dinge werden in Form kommen
warum gehst du nicht Tierarzt gehen diese Option.
Warum nicht Sie Tierarzt gehen diese Option und herauszufinden, welche
Umsetzung dieser beiden Möglichkeiten sind besser
zwischen jetzt und sagen, nächste Woche.
Warum gehst du nicht zu implementieren das?
Oder Sie entwerfen diese Datenbanktabellen.
Und so kurz der Zeitplan im Verlauf wird
ziemlich organisch zu sein abhängig von den Projekten
dass jedes Team je Tackles auf, was Ihre Erkenntnisse sind
wir bei der Prüfung eine Umsetzung Option und je potenziell
auf das, was die Endverbraucher letztlich wollen das Projekt zu tun.
Und so zu diesem Zweck gibt es gibt keine festen Fristen pro sagen.
Es wird ziemlich viel sein in einem Walz Zuordnung
der Fristen alle paar Tag, jede Woche auf der Basis
auf die Gespräche, die mit einem oder zwei haben
der Mitarbeiter am Tisch.
Letztlich aber was ist Grund ist die Vorlage
dieser beiden letzten Projekte.
In Bezug auf das, was der Projekte werden,
Die Projekte werden entweder vorgeschlagen werden
und von euch ausgewählt.
In der Tat, auf der Lotto-Form zum Beispiel werden Sie gefragt,
auf was sind ein oder mehrere Projekte besonders, dass irgendwie beziehen
auf dem Campus, die Sie denken würden sein überzeugendes zu implementieren.
Da eine der Hoffnung Der Kurs ist für
dass das, was zu tun Projekte kommen
von diesem Kurs zu überleben das Ende des Semesters.
Und so insbesondere dann, wenn sie sind Campus-Themen,
ob, wenn das ist eine andere Kurskatalog, Shopping-Tool
oder Veranstaltungskalender oder Shuttle-Service oder eine beliebige Anzahl
der populären letzten Projekte.
Die Hoffnung, nach dem Ende dieses Semesters ist
dass eine solche Projekt leben.
Und in der Tat auf dieses Ziel hin,
was wir dachten, wir tun, ist machen es ein wenig interessant.
Und auch Art Einblick Chancen
für Debatten wobei für fast jedem Projekt, das wir
als eine Klasse zu bewältigen diesem Semester,
wird es zwei Teams sein zum selben Projekt zugeordnet.
Die allgemeine Idee ist, dass sie nicht wirklich angenommen
, darüber zu sprechen ihre verschiedenen Design-Entscheidungen,
vielmehr sein sollen sein eher ein Wettbewerb um
die letztlich produzieren kann die beste Design, Implementierung.
So dass am Ende der Semester kommen Mai versenden wir ein
und nicht beide dieser Lösungen.
Und wir als Kurs dauert Pflege des Hosting-und so weiter
so dass Ihr Erbe lebt am Ende der Feder.
Was haben diese Anwendungen zu tun?
Kann alles sein, etwas für eine Abteilung,
etwas für eine Studentengruppe,
etwas für Studenten mehr in der Regel wird ein Teil sein, dass
des Gesprächs in der kommenden Woche
bis tauchen kopf
nach der Ernte eine Handvoll solcher Projekte.
In Bezug auf das Personal, lassen Tim und Rob mich vorstellen
, die gerne um Hallo zu sagen.
Und es ist diese Jungs, die für eines der Projekte sein wird -
für beide Projekte Ihre primären Berater sein.
Im wesentlichen aus einem der Projekte, Rob wird das Sammeln
mit Ihnen für diesen Chats wöchentlich.
Für eines der Projekte, Tim mit Ihnen versammeln
für die Chats und wir werden tauschen etwa Mitte Semester
wie wir den Übergang Projekte.
Wenn Sie eine gerade sprechen in der Nähe dieses Mikrofon.
>> Hallo, ich bin Rob.
Ich absolvierte im vergangenen Mai von [unverständlich].
Ich bin Lehrer in CS jetzt hier.
Für den Kurs aufgeregt.
>> Und ich bin Tim und ich bin eigentlich völlig neu in der Gegend.
Ich komme ursprünglich aus Philadelphia, damit ich gerade erst begonnen
hier ein paar Wochen vor und ich bin wirklich
in Open-Source-Software.
Ich helfen, mit der Aufrechterhaltung der Backbone.js Projekt, bei dem einige
von euch vielleicht kennen
und ich schuf auch die Bookshelf.js Projekt
dass David erwähnen.
Also, ich bin aufgeregt, sehen die Projekte.
>> In der Tat.
Für weitere Informationen über Tim zumindest wenn man gehen
zur Startseite des Kurses und klicken Sie auf seinen Namen sie führen wird
zu seinem GitHub-Repository, wenn Sie möchten auf einige schauen
seines Open-Source- Werkzeuge und Projekte.
Also in Bezug auf Noten, nur Denn dies ist eine FAQ sogar
wenn Art tangential zu den größeren Vision von einer Klasse,
wie wird Abschlussnoten bestimmt werden?
Also, was wir werden letztlich als ziemlich subjektive Based
über die Wechselwirkungen wir Sie über den Verlauf -
mit über den Kurs des Semesters auf der Basis
auf Ihre Beiträge sowohl Code-Repositories
und Gespräche dass wir haben.
Und in einer Nussschale, sie beruhen
auf Ihre Beiträge Projekte.
Das Delta zwischen der ersten Woche und die letzte Woche.
Also keine Sorge, wenn Sie nur vier Kurse
unter dem Gürtel in der Erwägung, einige andere Studenten
in der Klasse vielleicht acht,
wir werden sicherlich halten In diesem Sinne.
Der Umfang, Korrektheit, Design und die Art Ihres Projektes
so dass diese vertraut Achsen.
Der Grad, zu dem Sie Vorbereitungen für Treffen.
Also das ist wirklich gemeint eine Chance für uns sein
wöchentlich sammeln und haben intelligent und Spaß und Art
idealerweise emotionale Debatten.
In Zeiten, wo man Jungs vorschlagen, wie Sie lösen
etwas, und dann verteidigen, was Sie tun könnte und Tim die Rolle
und meine Rolle und Rob Rolle wird sein, um Sie hoffentlich herausfordern.
Damit kann man entweder redet zu gehen werden
in einer anderen Implementierung Richtung oder können sicher sein,
und fühle mich ziemlich gut über die Tatsache, dass, ja,
Sie denken, Sie haben die beste Umsetzung möglich
für diese.
Und insbesondere, soweit es werde ein anderes Team sein Arbeits
am selben Projekt aus ihre eigenen individuellen Winkel.
Hinsichtlich der Werkzeuge, so dass diese wird vielleicht aller Überstunden
und Sie sind herzlich eingeladen, zu verwenden , was von Interesse ist
Um für Ihre eigenen internen Team.
Aber in den meisten Teil werden wir Gebrauch machen
einer freien Tool namens Asana für Aufgabenverwaltung.
Hier finden Sie weitere Informationen hierzu finden Sie über E-Mail in den kommenden Tagen
und es ist im Wesentlichen ein Instrument über die Sie Räumen zu arbeiten
und Projekte für die Mannschaft.
Also, wenn Ihr Projekt ist es, Umsetzung voll [Phonetik].
Ihre vier Teammitglieder wird innerhalb dieses Projektes zu sein,
in diesem Ordner so zu sprechen.
Und Sie, und wir werden in der Lage, Meilensteine ​​und zuordnen zu tun
und Daten und Kommentare.
Und es ist schön, denn es ist mit E-Mail integriert.
Sie können oder nicht besuchen können, so die Website, es ist völlig bis zu Ihnen.
Und können Sie auch ein Aggregat Sinn
von dem, was Leute sind Arbeiten und bekommen ein Gefühl
von dem, was darüber hinaus geht Ihre ganz eigenen Blase
wenn Ihr Kopf sinkt nach einer Weile konzentriert
auf eine bestimmte Sache.
Für GitHub auch, wenn vertraut, ist ein GitHub
der beliebtesten, wenn nicht die beliebteste Repository
gibt für Quelle Code in diesen Tagen.
Wir werden das als zentrale nutzen Repository für jedes Team aus vier
so dass Sie vier und dann wir drei Zugang zu
und kann in der Form kommentieren
von Code-Reviews mit GitHub die Schnittstelle.
Aber wir werden Sie, dass die Einführung
wenn nicht vertraut, wenn die Zeit kommt.
Und das ist nur ein kurzer einen Einblick in Asana.
Schnell Blick auf GitHub und jetzt lassen Sie mich für Fragen zu unterbrechen.
Ja.
[Inaudible Frage]
Gute Frage, was wir denken, Python oder Ruby-Frameworks?
Sie konnten erreichen, die gleichen Ziele im Besonderen.
Wir passieren PHP in 164, weil eine Menge
vor der Web der Menschen Erfahrungen aus 50 kommen
was nutzt PHP jetzt.
Aber absolut, konnte jeder diese Projekte in Ruby getan werden,
Python, Java oder auch andere Rahmenbedingungen, Node.js sicher.
Aber wir zufällig PHP und wir passieren Node.js verwenden
und wir wollen zu standardisieren die für beide Projekte
, so dass es eine Menge leichter als eine Klasse
sehr ähnlich zu haben Gespräche
und nicht zu viele Äpfel und Orangen in der Klasse.
Obwohl es wird Diskretion, wenn es kommt
auf die jeweiligen Add-ons in Bibliotheken, die Sie verwenden können
entweder derjenigen Umgebungen.
Also, kein Anspruch, dass ein Besonders besser
als die andere.
Und PHP hat eine Art von einem hässlichen Geschichte, sondern es ist viel geworden,
in den letzten Jahren viel besser.
Also, was liegt vor uns?
Keine Hausaufgaben oder eine solche Dinge heute Abend andere
als diese URL besuchen wenn in der Tat von Interesse.
Wir werden den Link posten auf der Website
wenn Sie vergessen, wo das ist.
Die Frist für das wird um 06.00 Uhr am Mittwoch
so dass Rob und Tim und ich kann an diesem Abend sitzen
und überprüfen Sie die Einreichungen und herauszufinden, wie man am besten
Gruppen zu optimieren und so weiter.
Wir lassen Sie wissen, bis Donnerstag, ob wir gehabt haben oder nicht
Lotterie und wenn wir einen Platz
so dass Sie Jungs bekommen können Studie Karten Figur unterzeichnet
Sie heraus, was Sie tun möchten.
Und in der Zwischenzeit, wenn Sie irgendwelche Fragen haben,
auf der Website des Kurses.
E-Mail-Personal an cs164.net.
Wenn wir zurückkommen, am Mittwoch, es wird noch in diesem Format vorliegen.
Aber wahrscheinlich ab Mitte nächste Woche oder die Woche
nach, wo wir aufteilen in kleinere Gruppen
mit nur vier von euch Treffen zu einer Zeit mit mir
und oder und oder Tim Rob.
Vielen Dank an das Team heute zurück.
Wir werden Sie am Mittwoch sehen.