1 00:00:00,000 --> 00:00:00,060 2 00:00:00,060 --> 00:00:01,560 >> DAVID MALAN: Okay, sind wir zurück. 3 00:00:01,560 --> 00:00:03,830 Also für die spannende Abschließend unserem letzten Abschnitt 4 00:00:03,830 --> 00:00:06,900 auf Web-Programmierung, die ich dachte wir würden als allgemeiner Begriff verwenden 5 00:00:06,900 --> 00:00:08,440 ein paar verbleibenden Themen zu erfassen. 6 00:00:08,440 --> 00:00:10,390 So dass am Ende der Tag, werden wir tatsächlich tun 7 00:00:10,390 --> 00:00:14,830 ein bisschen von Hands-on-Web-Programmierung mit einer Sprache namens JavaScript. 8 00:00:14,830 --> 00:00:17,510 Und ich denke, dass wir einen Blick auf etwas zu den Bildern im Zusammenhang mit 9 00:00:17,510 --> 00:00:20,040 und der etwas entdeckt heimlich in einem Bild versteckt, 10 00:00:20,040 --> 00:00:23,230 und nehmen Sie auch einen Blick auf die Google Maps API, Application Programming 11 00:00:23,230 --> 00:00:26,040 Schnittstelle, als etwas, Vertreter der Art der Software, 12 00:00:26,040 --> 00:00:28,800 das ist immer mehr und frei verfügbar heute. 13 00:00:28,800 --> 00:00:32,029 >> Aber warum nehmen wir nicht einen Blick bei einer Zutat zu dieser Welt 14 00:00:32,029 --> 00:00:34,070 dass wir Art gewesen bin für selbstverständlich existiert 15 00:00:34,070 --> 00:00:36,720 für einige Zeit, eine Datenbank. 16 00:00:36,720 --> 00:00:39,150 Für den letzten Tag und eine halbe wir angenommen haben 17 00:00:39,150 --> 00:00:42,910 dass wir Zugriff auf eine Datenbank haben, aber Welches Problem löst eine Datenbank? 18 00:00:42,910 --> 00:00:45,540 Was bedeutet es für uns tun? 19 00:00:45,540 --> 00:00:47,030 Was ist es? 20 00:00:47,030 --> 00:00:48,679 >> PUBLIKUM: [unverständlich] 21 00:00:48,679 --> 00:00:51,720 DAVID MALAN: Hält alle Informationen, OK, und welche Arten von Informationen 22 00:00:51,720 --> 00:00:53,186 könnten Sie in it? 23 00:00:53,186 --> 00:00:54,590 >> PUBLIKUM: [unverständlich] 24 00:00:54,590 --> 00:00:56,450 >> DAVID MALAN: Alle Informationen, Sie daran setzen, erhalten Sie zurück. 25 00:00:56,450 --> 00:00:57,070 Das ist wahr. 26 00:00:57,070 --> 00:01:01,900 Und auf einer typischen Web-basierte Website oder Web Anwendung, welche Arten von Informationen, 27 00:01:01,900 --> 00:01:03,385 speziell setzen, könnten Sie in? 28 00:01:03,385 --> 00:01:04,260 PUBLIKUM: [unverständlich] 29 00:01:04,260 --> 00:01:05,051 DAVID MALAN: Benutzer. 30 00:01:05,051 --> 00:01:07,000 Also, was ist ein Benutzer? 31 00:01:07,000 --> 00:01:09,765 >> PUBLIKUM: [unverständlich] 32 00:01:09,765 --> 00:01:11,640 DAVID MALAN: OK, registriert Benutzer des Aufstellungsortes. 33 00:01:11,640 --> 00:01:15,100 Und was bedeutet es, Speicher Nutzerdaten? 34 00:01:15,100 --> 00:01:17,260 Was bildet einen Benutzer? 35 00:01:17,260 --> 00:01:18,331 Ein Benutzer hat was? 36 00:01:18,331 --> 00:01:19,206 PUBLIKUM: [unverständlich] 37 00:01:19,206 --> 00:01:21,040 DAVID MALAN: Ja, persönlich Daten und Ich mag das. 38 00:01:21,040 --> 00:01:21,970 Lassen Sie uns genauer zu sein. 39 00:01:21,970 --> 00:01:25,275 So ein Benutzer hat in der Regel einen Namen, was sonst haben könnte ein Benutzer? 40 00:01:25,275 --> 00:01:26,150 PUBLIKUM: [unverständlich] 41 00:01:26,150 --> 00:01:29,130 DAVID MALAN: Ein addr-- OK, so Vorname, Nachname. 42 00:01:29,130 --> 00:01:29,630 Das ist gut. 43 00:01:29,630 --> 00:01:31,463 Eigentlich wollen wir beheben dass, weil es geht 44 00:01:31,463 --> 00:01:35,010 die Möglichkeit zu eröffnen für Diskussion, noch weiter. 45 00:01:35,010 --> 00:01:39,090 Vorname, Nachname, Geschlecht. 46 00:01:39,090 --> 00:01:41,820 47 00:01:41,820 --> 00:01:43,481 Eine ID irgendeiner Art. 48 00:01:43,481 --> 00:01:43,980 Was sonst? 49 00:01:43,980 --> 00:01:45,438 Ich hörte etwas anderes vor, auch. 50 00:01:45,438 --> 00:01:51,600 Eine E-Mail, Postanschrift. 51 00:01:51,600 --> 00:01:58,170 >> Lassen Sie uns also Pause gibt und jetzt betrachten nicht das, was wir in der Datenbank sind zu speichern, 52 00:01:58,170 --> 00:02:01,980 aber-- und nicht warum, da es vielleicht ist offensichtlich, dass, wenn Sie einen Benutzer zu registrieren, 53 00:02:01,980 --> 00:02:03,730 Sie wollen, dass sie für einige Zeit zu erinnern. 54 00:02:03,730 --> 00:02:05,480 Sie wollen es nicht zu nur im RAM gespeichert werden, 55 00:02:05,480 --> 00:02:08,690 und werden forgotten-- so Lassen Sie uns auf der, wie zu konzentrieren. 56 00:02:08,690 --> 00:02:11,700 >> Es stellt sich heraus, dass in die Welt der Datenbanken, 57 00:02:11,700 --> 00:02:14,410 es gibt mindestens zwei Arten in diesen Tagen. 58 00:02:14,410 --> 00:02:20,010 Etwas rief eine SQL-Datenbank, Strukturierte Abfragesprache, 59 00:02:20,010 --> 00:02:24,770 oder, cutely genannt, NoSQL, die nicht SQL ist. 60 00:02:24,770 --> 00:02:26,980 Und diese ist eine Beispiel dessen, was man 61 00:02:26,980 --> 00:02:30,660 werden eine objektorientierte genannt, oder ein Objekt zu speichern, eine Datenbank 62 00:02:30,660 --> 00:02:36,010 dass speichert Objekte, und nicht, Entschuldigung mich, wie wir bald sehen, Reihen. 63 00:02:36,010 --> 00:02:41,800 >> Also werden wir für einen Moment konzentrieren sich auf Das erste von diesen, nämlich eine SQL 64 00:02:41,800 --> 00:02:46,850 Datenbank, wenn auch nur, weil es so vertraut schon, für jeden 65 00:02:46,850 --> 00:02:51,070 die verwendet Excel oder Google Sheets oder Apple 66 00:02:51,070 --> 00:02:53,740 Zahlen sowie alle Standard Tabellenkalkulationsprogramm, 67 00:02:53,740 --> 00:02:56,040 oder, äquivalent, oder mehr sophisticatedly, 68 00:02:56,040 --> 00:02:58,610 so etwas wie Microsoft Access oder Oracle 69 00:02:58,610 --> 00:03:03,890 oder MySQL oder PostgreSQL, von denen alle Produktnamen für Implementierungen sind 70 00:03:03,890 --> 00:03:04,865 der folgenden Idee. 71 00:03:04,865 --> 00:03:10,350 >> Eine relationale Datenbank ist einfach etwas, das Zeilen und Spalten aufweist. 72 00:03:10,350 --> 00:03:12,850 Und durch Zeilen und Spalten, Ich meine buchstäblich etwas 73 00:03:12,850 --> 00:03:21,860 wie diese, so, wo wir vielleicht die haben Name eines Feldes und seiner Art hier. 74 00:03:21,860 --> 00:03:25,800 Und tatsächlich, lassen Sie mich Jetzt beginnen diese abzubilden. 75 00:03:25,800 --> 00:03:29,420 Also eigentlich, ich weiß nicht, warum zog ich einen separaten Diagramm. 76 00:03:29,420 --> 00:03:30,780 Lassen Sie uns diese einfach zu halten. 77 00:03:30,780 --> 00:03:34,830 >> Wir haben hier die Anfänge unserer Tabelle, wo 78 00:03:34,830 --> 00:03:40,150 dies ist der Name des Felds und dies ist der Datentyp, 79 00:03:40,150 --> 00:03:41,660 und nach Art meine ich Folgendes. 80 00:03:41,660 --> 00:03:45,510 Ist es eine Zahl, ist es ein String ist, eine kurze Zeichenfolge, wie ein Wort, 81 00:03:45,510 --> 00:03:49,340 ein Absatz ist es, ist es Binärdaten, wie ein Bild? 82 00:03:49,340 --> 00:03:51,980 Und lassen Sie uns gerade diese necken abgesehen nur für einen Moment. 83 00:03:51,980 --> 00:03:57,575 Also zuerst Name, Nummer, string, großer Teil der Text-- 84 00:03:57,575 --> 00:03:58,450 PUBLIKUM: [unverständlich] 85 00:03:58,450 --> 00:03:59,616 DAVID MALAN: Ja, so Schnur. 86 00:03:59,616 --> 00:04:04,744 Und in einer Datenbank Zusammenhang werden wir typischerweise nennen das char-Feld. 87 00:04:04,744 --> 00:04:07,660 Ich werde einfach char sagen jetzt, aber wir sind geht weiter zu verfeinern dies in einem Augenblick. 88 00:04:07,660 --> 00:04:09,180 Zeichenfeld. 89 00:04:09,180 --> 00:04:11,365 Nachname ist wahrscheinlich das gleiche. 90 00:04:11,365 --> 00:04:11,865 Geschlecht? 91 00:04:11,865 --> 00:04:16,230 92 00:04:16,230 --> 00:04:18,310 >> Männlich oder weiblich, so dass es könnte ein Zeichen Feld sein. 93 00:04:18,310 --> 00:04:21,380 Es könnte entweder Zitat sein, unquote "Männlich" oder Zitat, unquote "weiblich" 94 00:04:21,380 --> 00:04:23,650 oder es könnte m oder F sein. 95 00:04:23,650 --> 00:04:26,540 Wenn Sie möchten, integrativer zu sein, Sie könnten einen dritten Wert benötigen 96 00:04:26,540 --> 00:04:28,640 oder irgendeine Art von anderen Feld zusammen. 97 00:04:28,640 --> 00:04:31,350 Und so könnte man true false verwenden. 98 00:04:31,350 --> 00:04:35,036 Das Feld könnte genannt männlich sein und dann könnte man sagen, wahr oder falsch. 99 00:04:35,036 --> 00:04:38,160 Aber das muss nicht unbedingt erfassen alle Informationen, die Sie wollen könnten. 100 00:04:38,160 --> 00:04:41,118 >> So stellt sich heraus eine andere Art gibt es hier des Feldes, die nützlich sein könnten 101 00:04:41,118 --> 00:04:46,040 in einer typischen Datenbank mit dem Namen ein Enum, wo es ein Zeichenfeld ist, 102 00:04:46,040 --> 00:04:50,480 aber du, der Designer, bekommen aufzuzählen, die die möglichen Werte, 103 00:04:50,480 --> 00:04:54,630 wie Zitat, unquote "männlich", zitat, unquote "weiblich" und so weiter. 104 00:04:54,630 --> 00:04:57,620 So dass alles, was Wert in Ihrer Datenbank, 105 00:04:57,620 --> 00:05:00,670 zwar zeichenbasierte, aber es hat einen dieser Werte. 106 00:05:00,670 --> 00:05:03,520 Wir würden wahrscheinlich nicht wollen, ein Enum für Vornamen oder Nachnamen. 107 00:05:03,520 --> 00:05:05,630 Sonst hätten wir aufzuzählen, wie der Name 108 00:05:05,630 --> 00:05:09,570 jeder leitet sich von, buchstäblich möglich Vorname und Nachname. 109 00:05:09,570 --> 00:05:13,960 >> OK, so dass ID, was sollte eine ID sein? 110 00:05:13,960 --> 00:05:15,200 Ja, vielleicht eine Nummer. 111 00:05:15,200 --> 00:05:17,870 So bleiben wir mit dass für jetzt, Nummer. 112 00:05:17,870 --> 00:05:22,010 Und durch die Anzahl, die Anzahl ist jetzt ein wenig zu breit. 113 00:05:22,010 --> 00:05:23,900 Für das Ende des zweiten Tag, ich fühle mich wie wir 114 00:05:23,900 --> 00:05:25,280 sollte ein wenig genauer. 115 00:05:25,280 --> 00:05:29,280 Zahl könnte bedeuten, wie es, so etwas wie 1.236 könnte. 116 00:05:29,280 --> 00:05:31,500 Und das ist wahrscheinlich nicht was wir durch eine ID bedeuten. 117 00:05:31,500 --> 00:05:34,635 Was meinen wir, wahrscheinlich durch eine ID? 118 00:05:34,635 --> 00:05:36,382 >> PUBLIKUM: [unverständlich] 119 00:05:36,382 --> 00:05:38,590 DAVID MALAN: Oh, OK, so vielleicht ist es nicht einmal eine Nummer. 120 00:05:38,590 --> 00:05:42,840 Vielleicht ist es tatsächlich eine eindeutige Kennung das ist eine Zeichenfolge, wie einen Benutzernamen. 121 00:05:42,840 --> 00:05:44,580 So absolut, könnte sein. 122 00:05:44,580 --> 00:05:46,730 Ich glaube, jemand wahrscheinlich bedeutete numerisch, obwohl. 123 00:05:46,730 --> 00:05:48,460 Also lassen Sie uns mit, dass zu bleiben. 124 00:05:48,460 --> 00:05:49,320 Welche Nummer? 125 00:05:49,320 --> 00:05:51,960 Was ist ein mehr eine ganze Zahl precise--. 126 00:05:51,960 --> 00:05:56,710 So eine Zahl wie 0, 1, 2, 3, so werden wir nennen eine ganze Zahl dieser. 127 00:05:56,710 --> 00:05:58,909 Und selbst dann, ich könnte werden pingelig, es ist 128 00:05:58,909 --> 00:06:00,700 nicht wirklich nur ein allgemeine integer Sie wollen. 129 00:06:00,700 --> 00:06:04,340 Sie wollen wahrscheinlich nicht negative Werte, gerade weil, es fühlt sich einfach seltsam. 130 00:06:04,340 --> 00:06:06,070 Sie wollen wahrscheinlich positive ganze Zahlen. 131 00:06:06,070 --> 00:06:07,920 So kann man auch ausdrücken dass in einer Datenbank, 132 00:06:07,920 --> 00:06:09,450 aber jetzt werden wir ganze Zahl sagen. 133 00:06:09,450 --> 00:06:10,650 >> Email? 134 00:06:10,650 --> 00:06:13,550 Dies ist wahrscheinlich just-- was? 135 00:06:13,550 --> 00:06:14,460 >> PUBLIKUM: [unverständlich] 136 00:06:14,460 --> 00:06:16,980 >> DAVID MALAN: Es ist eine E-Mail, aber das ist Zeichen, nicht wahr? 137 00:06:16,980 --> 00:06:19,813 Es hat nur eine funky Charakter wie ein "at" Symbol oder etwas anderes, 138 00:06:19,813 --> 00:06:21,580 aber es ist immer noch ein Zeichenfeld. 139 00:06:21,580 --> 00:06:23,900 Und Postanschrift? 140 00:06:23,900 --> 00:06:25,360 Zeichenfeld. 141 00:06:25,360 --> 00:06:31,400 Also das ist ein schöner Anfang, aber Lassen Sie uns nun ein wenig genauer. 142 00:06:31,400 --> 00:06:34,540 >> So stellt sich heraus, dass in eine Datenbank, die oft Sie 143 00:06:34,540 --> 00:06:39,120 haben die Wahl über mehr verfeinert Versionen dieser Dinge. 144 00:06:39,120 --> 00:06:44,330 In der Tat, in einem typischen SQL-Datenbank, SQL, oder allgemeiner relationale Datenbank, 145 00:06:44,330 --> 00:06:46,680 Datenbanken mit Reihen und Spalten, Sie oft 146 00:06:46,680 --> 00:06:53,610 bekommen, um nicht nur die Art der die angeben field-- lassen Sie mich etwas Raum hier-- machen 147 00:06:53,610 --> 00:06:56,600 sondern auch die Länge. 148 00:06:56,600 --> 00:06:59,900 >> Wie lange ist ein erster Name? 149 00:06:59,900 --> 00:07:07,060 Ich denke, D-A-V-I-D. OK, es bekam ich wahrscheinlich genauso wie die Hälfte beleidigt 150 00:07:07,060 --> 00:07:11,260 der Personen im Raum, rechts, da Ihre Namen sind länger als fünf 151 00:07:11,260 --> 00:07:16,608 Briefe, scheint so fünf ein wenig egoistisch und naiv, so was ist ein besserer Wert? 152 00:07:16,608 --> 00:07:19,320 153 00:07:19,320 --> 00:07:24,330 10, alles in Ordnung, und ich denke, wir sind im Zimmer OK. 154 00:07:24,330 --> 00:07:26,254 13? 155 00:07:26,254 --> 00:07:27,541 30? 156 00:07:27,541 --> 00:07:29,540 Warum kann ich nicht nehmen die Ansatz von früher, als wir 157 00:07:29,540 --> 00:07:31,081 sprachen über Arrays und Speicher? 158 00:07:31,081 --> 00:07:32,450 Warum sage ich nicht nur wie 1000? 159 00:07:32,450 --> 00:07:35,260 Niemandes Name wird mehr als 1000 sein. 160 00:07:35,260 --> 00:07:36,706 Zurückschieben. 161 00:07:36,706 --> 00:07:38,005 >> PUBLIKUM: [unverständlich] 162 00:07:38,005 --> 00:07:40,130 DAVID MALAN: Ja, es ist verschwenderisch, rechts, vor allem 163 00:07:40,130 --> 00:07:44,630 wenn die meisten Namen sind nur fünf oder 10 oder 15 Zeichen, das ist sehr verschwenderisch. 164 00:07:44,630 --> 00:07:45,810 So wissen Sie was? 165 00:07:45,810 --> 00:07:48,020 Dies ist eine Art eine harte Frage. 166 00:07:48,020 --> 00:07:51,721 Nun, wir können sicherlich Englisch analysieren und einer anderen Sprache, die Namen 167 00:07:51,721 --> 00:07:54,470 und herauszufinden, na ja, was das ist average-- Durchschnitt nicht wirklich 168 00:07:54,470 --> 00:07:57,150 Hilfe us--, was die max ist, ist wahrscheinlich das, was wir wirklich wollen. 169 00:07:57,150 --> 00:07:59,920 Aber es stellt sich heraus, dass wir auch haben einige Wahl über die Art hier. 170 00:07:59,920 --> 00:08:03,400 >> In einer typischen SQL-Datenbank, Sie haben etwas namens ein char-Feld 171 00:08:03,400 --> 00:08:07,505 und auch ein varchar, V-A-R, für variable char-Feld. 172 00:08:07,505 --> 00:08:08,630 Und der Unterschied ist. 173 00:08:08,630 --> 00:08:12,400 Ein char-Feld, du bist der Designer, müssen im Voraus angeben 174 00:08:12,400 --> 00:08:14,900 die genaue Länge des Feldes. 175 00:08:14,900 --> 00:08:20,530 Also vielleicht der erste Name wie 20 fühlt sich irgendwie sicher. 176 00:08:20,530 --> 00:08:23,950 Möglicherweise müssen einige googeln zu tun, um sehen, ob das wirklich sicher genug ist. 177 00:08:23,950 --> 00:08:26,910 Es ist wahrscheinlich ein Name mit 21 Zeichen, aber jetzt an, dass 20 178 00:08:26,910 --> 00:08:27,620 ist sicher. 179 00:08:27,620 --> 00:08:30,070 >> Ein char-Feld würde bedeuten, in einer Datenbank, die Sie 180 00:08:30,070 --> 00:08:33,289 unter Verwendung von 20 und immer 20 Zeichen. 181 00:08:33,289 --> 00:08:37,419 Nun, wenn es nur D-A-V-I-D, 15 von denen, werden nur leere Zeichen lang sein, 182 00:08:37,419 --> 00:08:40,450 aber Sie verwenden immer noch alle 20 Bytes. 183 00:08:40,450 --> 00:08:46,302 Ein varchar Feld, dagegen bedeutet, dass die String sollte bis zu 20 Zeichen lang sein 184 00:08:46,302 --> 00:08:48,260 aber wenn es nur fünf, Sie gehen nur verwenden 185 00:08:48,260 --> 00:08:51,270 fünf oder vielleicht sechs für ein besonderen Wert am Ende, 186 00:08:51,270 --> 00:08:54,980 wie die 0 diskutierten wir, dass bedeutet das Ende eines Zeichens 187 00:08:54,980 --> 00:08:56,790 Sequenz im Speicher. 188 00:08:56,790 --> 00:08:59,950 >> Also, wenn Sie denken, dass Sie Sie könnten char wählen 189 00:08:59,950 --> 00:09:05,240 im Vergleich zu varchar, dass die Trade-off gegeben? 190 00:09:05,240 --> 00:09:09,321 Char verwendet, dass viele Zeichen, varchar verwendet nicht mehr als das viele Zeichen. 191 00:09:09,321 --> 00:09:10,196 PUBLIKUM: [unverständlich] 192 00:09:10,196 --> 00:09:13,859 193 00:09:13,859 --> 00:09:16,900 DAVID MALAN: OK, wenn Sie wissen, die Länge der Saite ziemlich überzeugend 194 00:09:16,900 --> 00:09:19,316 zu verwenden, nur Zeichen, denn wenn Sie wissen es, legte es nur nach unten. 195 00:09:19,316 --> 00:09:23,390 Und vielleicht ist das gilt für einen Reißverschluss Code, in den USA mindestens 02138, 196 00:09:23,390 --> 00:09:26,660 es wird immer fünf sein Zeichen, bis Sie den Strich vier hinzuzufügen. 197 00:09:26,660 --> 00:09:29,750 Aber Sie könnten einige Werte haben für was Sie wissen immer die Länge. 198 00:09:29,750 --> 00:09:32,310 Oder vielleicht staatliche Symbole, wie NY für New York, 199 00:09:32,310 --> 00:09:33,811 und MA für Massachusetts in den USA. 200 00:09:33,811 --> 00:09:36,560 Vielleicht haben Sie einige Situationen wo das ist völlig in Ordnung, 201 00:09:36,560 --> 00:09:39,520 aber von dieser Logik, warum wir Grübeln sogar das? 202 00:09:39,520 --> 00:09:41,800 Warum nicht nur wir verwenden varchar, und wir werden dann nur 203 00:09:41,800 --> 00:09:46,730 immer zwei Zeichen verwenden sowieso, oder sowieso immer fünf Zeichen verwenden? 204 00:09:46,730 --> 00:09:50,300 Warum sparen einfach nicht varchar für alles, von dieser Logik? 205 00:09:50,300 --> 00:09:51,677 Es muss ein Haken sein. 206 00:09:51,677 --> 00:09:52,552 PUBLIKUM: [unverständlich] 207 00:09:52,552 --> 00:09:54,952 208 00:09:54,952 --> 00:09:56,660 DAVID MALAN: Könnte schreiben Sie etwas falsch. 209 00:09:56,660 --> 00:09:58,090 So ist das wahr. 210 00:09:58,090 --> 00:10:01,030 Aber selbst dann können sie nicht verwenden mehr Speicher als ich zuweisen. 211 00:10:01,030 --> 00:10:03,340 Ich habe immer noch die endgültige sagen über die Länge, 212 00:10:03,340 --> 00:10:06,780 so dass sie nicht aus Versehen machen dass Fehler gemacht, aber ein guter Gedanke. 213 00:10:06,780 --> 00:10:10,510 Es ist subtiler, aber es ist sehr verwandte zu unserer Diskussion, eigentlich von Arrays 214 00:10:10,510 --> 00:10:12,390 und Listen früher verknüpft. 215 00:10:12,390 --> 00:10:16,290 >> Es stellt sich heraus, dass eine Datenbank, wenn es weiß, dass alle Werte sind 216 00:10:16,290 --> 00:10:19,250 einer festen Länge, auch wenn einige dieser Werte sind leer, 217 00:10:19,250 --> 00:10:22,484 Art ästhetisch leer, D-A-V-I-D und dann 15-Rohlinge, 218 00:10:22,484 --> 00:10:24,650 es stellt sich heraus, dass, wenn jedes Feld ist die gleiche Länge, 219 00:10:24,650 --> 00:10:28,670 viel wie ein Array hatte alle seine Sachen Rücken an Rücken nach hinten, so zu sichern, dass 220 00:10:28,670 --> 00:10:33,480 Sie könnten nur plus 1 zum nächsten zu erhalten Wert, die gleiche Idee in einer Datenbanktabelle. 221 00:10:33,480 --> 00:10:37,550 Wenn alle Ihre Zeichen strings die gleiche Länge, 222 00:10:37,550 --> 00:10:39,390 Sie haben, was Random Access genannt wird. 223 00:10:39,390 --> 00:10:41,850 Wenn alle Saiten von 20 Länge, müssen Sie nicht nur 224 00:10:41,850 --> 00:10:45,230 tun plus 1 Sie gerade tun Plus 20, plus 20, plus 20, plus 20, 225 00:10:45,230 --> 00:10:48,775 und Sie können sehr schnell blättern oder durch alle Ihre Daten zu suchen. 226 00:10:48,775 --> 00:10:54,420 >> Eine Variable char-Feld, dagegen nicht immer 20 Zeichen lang sein. 227 00:10:54,420 --> 00:10:58,000 Es könnte 20 und dann 15 und dann 19 und dann 10, 228 00:10:58,000 --> 00:11:00,720 und so, wenn Sie suchen möchten durch sie, können Sie nicht einfach blind 229 00:11:00,720 --> 00:11:03,050 Addieren Sie 20 Byte zum nächsten zu gelangen. 230 00:11:03,050 --> 00:11:07,280 Sie müssen buchstäblich durchsuchen weil der Rand der Datenstruktur, 231 00:11:07,280 --> 00:11:08,340 wenn man so will, ist zackig. 232 00:11:08,340 --> 00:11:11,480 Es versteht Art in die und aus basierend auf die tatsächliche Länge der Saite. 233 00:11:11,480 --> 00:11:14,460 Also, wenn Sie wissen, die Länge, als Kareem sagt, ein Char-Feld verwenden, 234 00:11:14,460 --> 00:11:16,460 weil Sie gewinnen, dass Effizienz des Seins 235 00:11:16,460 --> 00:11:19,170 der Lage, durch sie zu suchen schneller wenn Sie nach Daten suchen, 236 00:11:19,170 --> 00:11:20,550 Verwenden Sie andernfalls eine Variable. 237 00:11:20,550 --> 00:11:24,450 >> Leider habe ich keine gute Antwort , wie lange sollte der Name sein, 238 00:11:24,450 --> 00:11:26,360 aber für so etwas wie ein Name, würde ich sagen, 239 00:11:26,360 --> 00:11:28,470 ein varchar ist üblich, weil es nicht gehen 240 00:11:28,470 --> 00:11:30,430 eine feste Länge für alle zu sein. 241 00:11:30,430 --> 00:11:33,650 20, ich weiß nicht, 20 fühlt sich ein wenig eng. 242 00:11:33,650 --> 00:11:36,460 Lassen Sie uns nur 50 sagen, 50. 243 00:11:36,460 --> 00:11:39,210 Es ist nicht wirklich kostet, dass viel mehr 50 zu sagen, statt 40, 244 00:11:39,210 --> 00:11:41,260 aber irgendwann, was Sie brauchen ein Urteil Anruf zu tätigen. 245 00:11:41,260 --> 00:11:43,090 >> Sehr häufig, offen gesagt, für [? historisch?] 246 00:11:43,090 --> 00:11:47,670 Gründe, auch wenn es übermäßig ist, Vor 255 zu sagen, weil einige Zeit, 247 00:11:47,670 --> 00:11:51,440 in der populären Datenbank-Systemen, wie MySQL, ein freies Open-Source-Tool 248 00:11:51,440 --> 00:11:53,790 dass viele Unternehmen wie auch Facebook verwendet, 249 00:11:53,790 --> 00:11:56,654 dies war das maximale Ausfall so dass die Leute gingen einfach mit ihm. 250 00:11:56,654 --> 00:11:59,070 Also nicht unvernünftig, aber wir werden Verwenden Sie ein wenig mehr Intuition 251 00:11:59,070 --> 00:12:02,970 und sagen, dass 50, das ist wohl ein wenig übertrieben. 252 00:12:02,970 --> 00:12:05,720 >> Geschlecht, ich mag Enum, und so können wir daher 253 00:12:05,720 --> 00:12:08,760 aufzuzählen, männlich oder weiblich, oder vielleicht effizienter, 254 00:12:08,760 --> 00:12:13,420 m oder f oder eine andere Symbolik, aber Enum fühlt sich wie eine gute Wahl gibt. 255 00:12:13,420 --> 00:12:16,740 Um klar zu sein, Geschlecht konnte nur ein varchar sein, 256 00:12:16,740 --> 00:12:19,090 und wir konnten nur alle zustimmen, da nette Leute, 257 00:12:19,090 --> 00:12:21,010 setzen die gleichen Werte dort immer. 258 00:12:21,010 --> 00:12:22,720 Männlich oder weiblich oder Dingsbums. 259 00:12:22,720 --> 00:12:27,800 >> Aber das Problem ist also, dass wir konnten einen Fehler machen, wie [unverständlich] vorgeschlagen 260 00:12:27,800 --> 00:12:29,140 früher in einem anderen Kontext. 261 00:12:29,140 --> 00:12:32,780 Wenn wir einen Fehler machen, könnten wir bekommen falsche Werte in unserer Datenbank. 262 00:12:32,780 --> 00:12:36,320 Also, was ist schön, über Datenbanken wie Oracle und MySQL und andere, 263 00:12:36,320 --> 00:12:39,280 ist, dass Sie diese letzte haben Schicht der Verteidigung, wo 264 00:12:39,280 --> 00:12:43,010 Ihre DBA, Datenbankadministrator, Wer ist die Gestaltung dieser Tabelle wie wir 265 00:12:43,010 --> 00:12:46,440 verbal sind, könnten setzen an Ort und Stelle eine Enumeration, dass 266 00:12:46,440 --> 00:12:51,250 schützt vor, dass durch die Angabe Mann, Frau, und so niemand 267 00:12:51,250 --> 00:12:54,230 sonst kann kein Programmierer versehentlich einen anderen Wert ein. 268 00:12:54,230 --> 00:12:55,480 So wäre dies eine gute Sache sein. 269 00:12:55,480 --> 00:12:56,660 Dies ist ein Feature. 270 00:12:56,660 --> 00:13:00,760 >> So eine ID, eine numerische ID vorausgesetzt, es wahrscheinlich sollte eine positive ganze Zahl sein. 271 00:13:00,760 --> 00:13:04,380 Und wir haben manchmal tun Gelegenheit Länge zu diskutieren. 272 00:13:04,380 --> 00:13:06,830 Sie würden nicht in der Regel Geben Sie eine Zahl hier, 273 00:13:06,830 --> 00:13:11,310 Sie würden stattdessen angeben dies ist ein int, oder ein großer int, 274 00:13:11,310 --> 00:13:12,980 wie sie in der Regel genannt sind. 275 00:13:12,980 --> 00:13:18,840 Aber in der Regel eine ganze Zahl wäre, sagen wir mal, 4 Byte. 276 00:13:18,840 --> 00:13:23,694 Und wenn es 4 Bytes ist, das ist, wie viele Bits? 277 00:13:23,694 --> 00:13:24,630 >> PUBLIKUM: [unverständlich] 278 00:13:24,630 --> 00:13:26,610 >> DAVID MALAN: 32 Bit. 279 00:13:26,610 --> 00:13:30,270 Wie viele Benutzer können wir in unsere Datenbank, wenn sie alle haben eine ID 280 00:13:30,270 --> 00:13:33,320 und diese ID muss eindeutig sein? 281 00:13:33,320 --> 00:13:36,780 32 Bit bedeutet, dass wir Muster aus einem, zwei, drei, vier, five-- 282 00:13:36,780 --> 00:13:41,000 so, wie viele verschiedene Muster von Nullen und diejenigen, können Sie haben, wenn es 32 sind? 283 00:13:41,000 --> 00:13:43,235 Das ist das gleiche wie zu fragen, was zwei bis 32? 284 00:13:43,235 --> 00:13:46,472 285 00:13:46,472 --> 00:13:48,430 Es ist eine große Zahl, die Ich kann nicht ganz bekommen Recht, 286 00:13:48,430 --> 00:13:50,270 aber ich weiß, dass es in etwa 4 Milliarden. 287 00:13:50,270 --> 00:13:53,970 So bedeutet dies, Ihre Datenbanktabelle kann haben vier Milliarden Nutzer und das ist es. 288 00:13:53,970 --> 00:13:56,410 >> So ist dies eine interessante Design Implikation. 289 00:13:56,410 --> 00:14:00,840 Eine anständige Zahl von Unternehmen vielleicht haben beschlossen, nicht so sehr 290 00:14:00,840 --> 00:14:04,860 für ihre Benutzer-Tabelle, da mit 4 Milliarden Nutzer ist ein seltenes Problem. 291 00:14:04,860 --> 00:14:08,410 Dies ist eine Art von Facebook-Stil Problem, nicht ein typisches Unternehmen Problem. 292 00:14:08,410 --> 00:14:12,670 Aber vielleicht, wenn Sie Transaktionsprotokolle oder irgendeine Art von Daten, die ständig 293 00:14:12,670 --> 00:14:15,610 wird in die Datenbank geschrieben dass absolut könnte Milliarden haben 294 00:14:15,610 --> 00:14:18,900 und Milliarden von Zeilen und Sie verwenden eine ganze Zahl für sie, 295 00:14:18,900 --> 00:14:22,750 was los ist so schnell geschehen, wie Sie erhalten Nummer 4 Milliarden zu rudern 296 00:14:22,750 --> 00:14:26,210 und dann versuchen, die einfügen 4000000000. und 1, so zu sprechen? 297 00:14:26,210 --> 00:14:29,610 Ich vereinfacht die Zahlen ein wenig. 298 00:14:29,610 --> 00:14:33,740 >> Sie können zurück geschnitten, Ich meine, Sie haben es irgendwie zu behandeln. 299 00:14:33,740 --> 00:14:37,910 Und was ein Computer würde in der Regel tun, darüber nachdenken, es selbst von diesem Morgen, 300 00:14:37,910 --> 00:14:42,430 wenn Sie ein 4-Bit-Wert wie 1, 1, 1, 1, die, 301 00:14:42,430 --> 00:14:44,920 nur am Morgen zu binden zusammen mit dem Nachmittag, was 302 00:14:44,920 --> 00:14:48,369 darstellt diese Zahl in binärer? 303 00:14:48,369 --> 00:14:49,410 OK, wir werden es leichter machen. 304 00:14:49,410 --> 00:14:53,310 Was bedeutet diese Zahl repräsentieren binär? 305 00:14:53,310 --> 00:14:56,794 OK, wir werden es leichter machen, was bedeutet dies in binär darstellen? 306 00:14:56,794 --> 00:14:57,460 PUBLIKUM: Drei. 307 00:14:57,460 --> 00:14:59,670 DAVID MALAN: Drei, weil wir haben die, die column-- 308 00:14:59,670 --> 00:15:00,450 [LACHEN] 309 00:15:00,450 --> 00:15:01,350 Puh! 310 00:15:01,350 --> 00:15:03,980 Wir hatten die Einer Spalte und die Zweier-Spalte. 311 00:15:03,980 --> 00:15:07,250 So nehme an, dass in der Tat, unsere [? Infield?] waren nicht 32 Bit, 312 00:15:07,250 --> 00:15:13,440 aber es waren zwei Bits, können wir zählen von Benutzernummer 0, 1, 2, 3, 313 00:15:13,440 --> 00:15:18,040 und dann sind wir Art von zurück zum Benutzer 00 wieder. 314 00:15:18,040 --> 00:15:19,739 So ist es das, was normalerweise passiert. 315 00:15:19,739 --> 00:15:22,780 Wenn Sie jemals die expression-- gehört wahrscheinlich nicht, aber wenn Sie have-- 316 00:15:22,780 --> 00:15:26,500 Integer-Überlauf, in dem Sie halten alle Ihre Bits Spiegeln 317 00:15:26,500 --> 00:15:29,640 die größten möglichen Werte zu sein, und dann bist du aus Bits, 318 00:15:29,640 --> 00:15:30,850 was passieren würde, normalerweise? 319 00:15:30,850 --> 00:15:32,280 Warum sage ich 00? 320 00:15:32,280 --> 00:15:33,220 Nun, das ist drei. 321 00:15:33,220 --> 00:15:34,230 Wie gebe ich 4? 322 00:15:34,230 --> 00:15:36,890 323 00:15:36,890 --> 00:15:38,915 Wie gebe ich die für Nummer 4 in binär? 324 00:15:38,915 --> 00:15:39,790 PUBLIKUM: [unverständlich] 325 00:15:39,790 --> 00:15:41,780 DAVID MALAN: One-- ja, nicht 100 sagen per se, 326 00:15:41,780 --> 00:15:44,190 weil es die falsche Konnotation, aber 1-0-0. 327 00:15:44,190 --> 00:15:48,920 So 1-0-0 diese Zahl ist in der Tat richtig, aber wenn Sie nur zwei Bits haben, 328 00:15:48,920 --> 00:15:50,820 Was haben Sie wirklich? 329 00:15:50,820 --> 00:15:53,219 Sie haben zu 00 gerollt. 330 00:15:53,219 --> 00:15:54,760 Und in der Tat, das ist, was passieren würde. 331 00:15:54,760 --> 00:15:56,884 Eigentlich kann man denken darüber mehr vertraut. 332 00:15:56,884 --> 00:15:59,350 Wenn Sie sich erinnern, was, vor 16 Jahren, die Welt 333 00:15:59,350 --> 00:16:03,380 enden sollte, wenn das Y2K-Problem passiert ist. 334 00:16:03,380 --> 00:16:04,330 Warum war das? 335 00:16:04,330 --> 00:16:08,170 Nun die meisten Computer, für vernünftige Entscheidungen, 336 00:16:08,170 --> 00:16:15,320 wurden die Nummern gespeichert sind wie die Jahr 1975 oder das Jahr 1999 337 00:16:15,320 --> 00:16:19,010 durch nur zwei Ziffern in den Speicher des Computers. 338 00:16:19,010 --> 00:16:21,950 So natürlich, was passiert, wenn Sie auf das Jahr 2000 erhalten, 339 00:16:21,950 --> 00:16:25,790 gehen Sie auf diese, oder besser gesagt, ja. 340 00:16:25,790 --> 00:16:30,120 So gehen Sie auf das Jahr 2000, aber wenn Sie verwenden nur zwei Ziffern sieht es aus 341 00:16:30,120 --> 00:16:32,660 wie das Jahr 00 und so haben Sie gerollt. 342 00:16:32,660 --> 00:16:36,820 Und das ist, warum viele Systeme benötigt, um zu der Zeit aktualisiert werden. 343 00:16:36,820 --> 00:16:42,500 >> Also mit dieser sagte, Unternehmen wie Facebook laufen gegen diese auf. 344 00:16:42,500 --> 00:16:46,147 So ist die einzige Möglichkeit, das zu handhaben Situation, ehrlich gesagt, ist es zu antizipieren. 345 00:16:46,147 --> 00:16:47,980 Oder der sauberste Weg zu handhaben diese Situation 346 00:16:47,980 --> 00:16:50,330 ist es zu antizipieren, so dass Sie nicht tun müssen Änderungen später machen. 347 00:16:50,330 --> 00:16:51,970 So anstelle von 8 Bytes, weißt du was? 348 00:16:51,970 --> 00:16:54,261 Ich werde vorausdenk sein hier, obwohl es 349 00:16:54,261 --> 00:16:56,760 ein wenig optimistisch, dass wir gehen zu haben 4 Milliarden 350 00:16:56,760 --> 00:16:58,850 und 1 Benutzer auf unserer Website. 351 00:16:58,850 --> 00:17:01,790 Aber lassen Sie uns nur 8 Bytes zu verwenden, oder 64 Bits, die im Allgemeinen wäre 352 00:17:01,790 --> 00:17:05,640 eine große ganze Zahl genannt, sehr technisch. 353 00:17:05,640 --> 00:17:10,280 Und das bedeutet, können Sie noch mehr Stellen in Ihrer Nummer. 354 00:17:10,280 --> 00:17:12,599 Aber dies ist ein wichtiger Design-Entscheidung, 355 00:17:12,599 --> 00:17:16,400 denn wenn Sie eine Nummer wählen, hat zu wenige Bits Ausdrucks 356 00:17:16,400 --> 00:17:19,089 Sie könnte tatsächlich schaffen um einen Fehler in der Software. 357 00:17:19,089 --> 00:17:21,750 >> In Ordnung, also lasst uns einpacken mit E-Mail und Postadresse. 358 00:17:21,750 --> 00:17:26,369 Also E-Mail, wie lange eine E-Mail-Adresse sein? 359 00:17:26,369 --> 00:17:26,869 50. 360 00:17:26,869 --> 00:17:29,220 Ich habe wirklich keine Ahnung, aber es ist wahrscheinlich so etwas, 361 00:17:29,220 --> 00:17:32,261 weil sonst niemand wird zu schreiben Sie, wenn sie zu lang, so 50, 362 00:17:32,261 --> 00:17:33,360 Lassen Sie uns jetzt mit ihm zu gehen. 363 00:17:33,360 --> 00:17:35,770 Postanschrift, wie lange sollte das sein? 364 00:17:35,770 --> 00:17:38,325 365 00:17:38,325 --> 00:17:39,200 PUBLIKUM: [unverständlich] 366 00:17:39,200 --> 00:17:41,900 367 00:17:41,900 --> 00:17:43,890 >> DAVID MALAN: Es ist nicht nur eine Postleitzahl, though. 368 00:17:43,890 --> 00:17:45,720 Postanschrift, hörte ich. 369 00:17:45,720 --> 00:17:50,720 Das ist also wie ein Brattle-Platz, Komma, Cambridge Mass., Komma, 02138. 370 00:17:50,720 --> 00:17:53,860 Und in der Tat, lassen Sie mich einfach ziehen hier oben ein wenig Arbeitsblatt. 371 00:17:53,860 --> 00:17:56,510 Das fühlt sich an wie es ist eine verpasste Gelegenheit. 372 00:17:56,510 --> 00:18:01,480 Wenn wir 1 Brattle-Platz haben, Komma, Cambridge MA 02138, 373 00:18:01,480 --> 00:18:04,510 Ich fühle mich wie können wir es besser machen als nur Postanschrift. 374 00:18:04,510 --> 00:18:07,100 Warum gehen wir nicht explodieren diese ein wenig? 375 00:18:07,100 --> 00:18:08,030 Was soll ich hinaus? 376 00:18:08,030 --> 00:18:10,970 Was sollten wir stattdessen haben für unsere Reihen hier vielleicht? 377 00:18:10,970 --> 00:18:12,260 >> PUBLIKUM: [unverständlich] 378 00:18:12,260 --> 00:18:17,579 >> DAVID MALAN: Ja, so lassen Sie uns nennen es street_number, 379 00:18:17,579 --> 00:18:20,620 und ein Unterstrich ist nur eine gemeinsame Weg von zu haben, was wie ein Raum aussieht, 380 00:18:20,620 --> 00:18:22,360 aber es ist nicht, eigentlich. 381 00:18:22,360 --> 00:18:26,240 Street, und dann --Stadt auswählen-- leid? 382 00:18:26,240 --> 00:18:28,440 >> PUBLIKUM: [unverständlich] 383 00:18:28,440 --> 00:18:29,690 DAVID MALAN: Wir könnten das tun. 384 00:18:29,690 --> 00:18:30,702 Linie eins, Zeile zwei. 385 00:18:30,702 --> 00:18:32,410 Warum nicht wir halten es einfach für jetzt, 386 00:18:32,410 --> 00:18:34,840 aber das ist absolut eine akzeptable Entscheidung. 387 00:18:34,840 --> 00:18:38,180 Und dann Zustand und dann lasst uns sein ein wenig US-centric für jetzt 388 00:18:38,180 --> 00:18:42,040 und nur Postleitzahl tun, nur weil es wird zu einem interessanten Fehler führen 389 00:18:42,040 --> 00:18:43,090 oder ein Problem hier. 390 00:18:43,090 --> 00:18:44,655 So vermute, das ist jetzt unsere Adresse. 391 00:18:44,655 --> 00:18:47,280 Es ist ein wenig mehr ärgerlich, dass wir haben alle diese mehr Felder, 392 00:18:47,280 --> 00:18:49,200 aber jetzt können wir markieren Dinge ein wenig besser. 393 00:18:49,200 --> 00:18:53,210 >> So, jetzt die Hausnummer wahrscheinlich sollte kein Zeichen, sollte es sein? 394 00:18:53,210 --> 00:18:54,835 Was soll es sein? 395 00:18:54,835 --> 00:18:55,710 PUBLIKUM: [unverständlich] 396 00:18:55,710 --> 00:18:57,835 DAVID MALAN: Vielleicht eine Reihe wie eine ganze Zahl wieder? 397 00:18:57,835 --> 00:19:00,170 Eine große ganze Zahl? 398 00:19:00,170 --> 00:19:02,170 Sie wahrscheinlich nicht leben auf 4 Milliarden Main Street 399 00:19:02,170 --> 00:19:03,490 oder etwas verrückt wie das. 400 00:19:03,490 --> 00:19:06,850 So integer ist wahrscheinlich in Ordnung, aber hat jemand 401 00:19:06,850 --> 00:19:13,880 an einer Adresse, der je gelebt hat wie 1A Brattle Square oder 1 und 1/2? 402 00:19:13,880 --> 00:19:17,030 Diese Dinge existieren, leider, auch wenn Sie dort nicht gelebt haben, 403 00:19:17,030 --> 00:19:21,240 gibt es diese Anomalien wie Wohnung 1A, 1B, 1C. 404 00:19:21,240 --> 00:19:24,260 Damit Sie wissen, was wir wahrscheinlich sollte nicht mit integer gehen, 405 00:19:24,260 --> 00:19:27,440 sonst werden wir einige Verkäufe zu verlieren. 406 00:19:27,440 --> 00:19:29,920 >> Char Feld, vielleicht? 407 00:19:29,920 --> 00:19:30,870 Ich weiß nicht, wie lange. 408 00:19:30,870 --> 00:19:33,370 Es ist wahrscheinlich nicht sein so lange, so 10 oder so etwas. 409 00:19:33,370 --> 00:19:34,950 Niemand wird zu schreiben eine längere Zahl, vielleicht. 410 00:19:34,950 --> 00:19:37,070 Aber auch hier sollten wir wahrscheinlich geben mehr Gedanken dazu. 411 00:19:37,070 --> 00:19:39,900 Vielleicht etwas Forschung google, tun, aber wir werden jetzt mit unseren Eingeweiden gehen. 412 00:19:39,900 --> 00:19:44,565 Straßen, Saibling, 50, ich weiß es nicht. 413 00:19:44,565 --> 00:19:46,940 An einem gewissen Punkt, niemand wird schreiben sie auf einem Umschlag, 414 00:19:46,940 --> 00:19:49,350 Auch so gibt es wahrscheinlich einige obere Grenze gibt. 415 00:19:49,350 --> 00:19:54,200 Stadt, gleich, sicher, so 50 verkohlen. 416 00:19:54,200 --> 00:19:59,120 >> State, können US-centric sein für heute. 417 00:19:59,120 --> 00:20:01,850 So könnte es eine Liste sein, so freundlich eines Urteils Anruf, Staat. 418 00:20:01,850 --> 00:20:04,000 Es könnte wie zwei Zeichen lang sein. 419 00:20:04,000 --> 00:20:06,140 Also eigentlich, vielleicht, hielt ich sagen char. 420 00:20:06,140 --> 00:20:09,420 Ich meine, wahrscheinlich varchar- nur für einige Effizienz, 421 00:20:09,420 --> 00:20:12,240 aber wir kommen wieder zu diese Entscheidung in einem Augenblick. 422 00:20:12,240 --> 00:20:16,150 Könnte ein Zeichen der Länge 2 für Zustand sein. 423 00:20:16,150 --> 00:20:20,670 Wenn in den USA haben sie, wie MA, Massachusetts, NY, New York, NJ, New 424 00:20:20,670 --> 00:20:22,100 Jersey, und so weiter. 425 00:20:22,100 --> 00:20:23,630 So könnte es an, dass festgelegt werden. 426 00:20:23,630 --> 00:20:25,900 DC für Washington DC. 427 00:20:25,900 --> 00:20:29,915 >> Aber ich denke, Olivier, Sie einen anderen Ansatz vorgeschlagen. 428 00:20:29,915 --> 00:20:30,790 PUBLIKUM: [unverständlich] 429 00:20:30,790 --> 00:20:33,670 DAVID MALAN: Ja, es ist so ein wenig ärgerlich in zu geben, 430 00:20:33,670 --> 00:20:37,890 aber eine ENUM könnte mehr Sinn machen, denn auf diese Weise zumindest in den USA, 431 00:20:37,890 --> 00:20:41,320 Sie könnte aufzählen, wenn ermüdend, aber Sie tun es nur einmal in der Datenbank 432 00:20:41,320 --> 00:20:47,480 und nie müssen wieder darüber nachdenken, es, alle 50 Zwei-Zeichen-Codes. 433 00:20:47,480 --> 00:20:48,660 Also Ich mag Enum. 434 00:20:48,660 --> 00:20:51,720 Lassen Sie uns dort mit dabei bleiben, weil es erzwingt Art mehr Strenge. 435 00:20:51,720 --> 00:20:53,620 Und dann Postleitzahl? 436 00:20:53,620 --> 00:20:55,306 Ich denke, Andrew einen Gedanken auf, dass hatte 437 00:20:55,306 --> 00:20:56,180 PUBLIKUM: [unverständlich] 438 00:20:56,180 --> 00:20:57,240 DAVID MALAN: Ja, fünf oder neun. 439 00:20:57,240 --> 00:20:58,323 Sagen wir es nur einfach halten. 440 00:20:58,323 --> 00:20:59,380 Just do fünf für jetzt. 441 00:20:59,380 --> 00:21:03,070 Aber vielleicht könnte ich nur tun eine ganze Zahl, nicht wahr? 442 00:21:03,070 --> 00:21:08,750 Ich konnte, aber Sie wissen, was ich gemacht dieser Fehler einmal, in einem gewissen Sinn. 443 00:21:08,750 --> 00:21:13,110 Vor einigen Jahren war ich die Migration von Microsoft Outlook zu Google Mail, 444 00:21:13,110 --> 00:21:18,640 und Outlook hat einen Weg der ausführenden alle Ihre Kontakte als Excel-Datei, 445 00:21:18,640 --> 00:21:21,280 eine CSV-Datei, Komma Werte Datei getrennt. 446 00:21:21,280 --> 00:21:23,950 Und machte ich den Fehler, ich denken, von Doppelklick, 447 00:21:23,950 --> 00:21:27,380 sobald ich den Export heruntergeladen haben, zu stellen Sie sicher, es sah aus, als ich erwartet hatte. 448 00:21:27,380 --> 00:21:31,320 Ich muss speichern oder lassen Sie getroffen haben Auto-Save-Kick in oder so etwas. 449 00:21:31,320 --> 00:21:35,100 Denn wenn ich dann importiert es in Gmail, alles funktionierte. 450 00:21:35,100 --> 00:21:39,910 Aber seit Jahren, bis zum heutigen Tag, und Ich tat dies, fünf, vor 10 Jahren, 451 00:21:39,910 --> 00:21:44,380 Ich finde immer noch Freunde, die haben Adressen, die wie folgt aussehen. 452 00:21:44,380 --> 00:21:45,700 Warum? 453 00:21:45,700 --> 00:21:47,900 >> PUBLIKUM: [unverständlich] 454 00:21:47,900 --> 00:21:50,650 >> DAVID MALAN: Es dauerte die 0, na ja, besser gesagt, es 455 00:21:50,650 --> 00:21:53,810 nahm die ganze Postleitzahl als eine Zahl, und es ist deshalb 456 00:21:53,810 --> 00:21:56,590 eine führende 0, was bedeutet, es hat keine Bedeutung. 457 00:21:56,590 --> 00:21:59,470 Und so scheint 2138 meine Postleitzahl zu sein. 458 00:21:59,470 --> 00:22:07,100 Und das ist, ehrlich gesagt, eine lästige Excel Funktion, bei der ich standardmäßig denken, 459 00:22:07,100 --> 00:22:10,980 selbst wenn es nur gemeint sein Text, Microsoft Excel 460 00:22:10,980 --> 00:22:13,780 mich entscheidet, lassen Sie hilfreich sein, und oh, ich sehe nur Zahlen. 461 00:22:13,780 --> 00:22:15,290 Lassen Sie uns diese als Zahlen zu behandeln. 462 00:22:15,290 --> 00:22:16,790 Und es schneidet die führenden Nullen. 463 00:22:16,790 --> 00:22:19,165 >> Ich schwöre bei Gott, jedes Paar Monate finde ich eine Adresse, 464 00:22:19,165 --> 00:22:22,300 und aus einer Art von OCD, gehe ich zurück in und fügen Sie die 0, obwohl ich noch nie 465 00:22:22,300 --> 00:22:23,700 Leute, die Briefe oder etwas schicken. 466 00:22:23,700 --> 00:22:25,510 Aber ich bin immer noch Reste dieser Erkenntnis. 467 00:22:25,510 --> 00:22:28,820 Das ist also zu sagen, ist dies eine gute Idee? 468 00:22:28,820 --> 00:22:31,610 OK, nein, weil jemand in Massachusetts, in diesem Bereich, 469 00:22:31,610 --> 00:22:33,270 wird einen o führt sie zu haben. 470 00:22:33,270 --> 00:22:38,070 Also lassen Sie uns gehen mit wie char, wahrscheinlich, fünf. 471 00:22:38,070 --> 00:22:41,450 >> Und hier erkennen wir, könnte eine ENUM und wir verwenden 472 00:22:41,450 --> 00:22:44,600 könnte 10.000 aufzählen möglich Postleitzahlen, 473 00:22:44,600 --> 00:22:48,530 aber das fühlt sich an wie es ist wahrscheinlich eine Reihe von, wie, Vorteile kreuzen. 474 00:22:48,530 --> 00:22:51,350 Wenn Sie zur Eingabe haben, dass viele Daten in die Datenbank 475 00:22:51,350 --> 00:22:52,940 zum Schutz gegen etwas. 476 00:22:52,940 --> 00:22:57,400 So char realisiert man geben könnte in H-E-L-L-O wie Postleitzahl, 477 00:22:57,400 --> 00:22:59,180 Das ist offensichtlich nicht numerisch. 478 00:22:59,180 --> 00:23:01,680 So gibt es keine Möglichkeit, in eine typische Datenbank, 479 00:23:01,680 --> 00:23:05,561 nur numerisch zu spezifizieren und nur fünf Zeichen lang, 480 00:23:05,561 --> 00:23:07,310 so dass wir gehen zu müssen, dass im Code zu tun. 481 00:23:07,310 --> 00:23:11,100 Wir gehen, dass in PHP zu tun oder Java oder was auch immer die Sprache, wir sind 482 00:23:11,100 --> 00:23:14,230 Verwendung auf dem Server zu erzwingen diese Art von Zwang. 483 00:23:14,230 --> 00:23:14,860 >> Whoo! 484 00:23:14,860 --> 00:23:18,322 In Ordnung, so dass alle Fragen nur noch? 485 00:23:18,322 --> 00:23:19,780 Lassen Sie uns ein anderes Design Entscheidung zu treffen. 486 00:23:19,780 --> 00:23:22,500 Es stellt sich heraus, dass Sie erhalten auch wählen, 487 00:23:22,500 --> 00:23:26,600 wenn eine SQL-Datenbank entwerfen, oder typische relationale database-- wo 488 00:23:26,600 --> 00:23:28,790 wieder, relationale nur bedeutet, Zeilen und Spalten, 489 00:23:28,790 --> 00:23:35,500 das ist, wie Sie Ihre data-- organisieren und erkennen, dass das, was das bedeutet, ist, 490 00:23:35,500 --> 00:23:37,740 Ich habe irreführend dass, ich bin drawing-- diese 491 00:23:37,740 --> 00:23:40,190 Das Schema ist das, was genannt wird für eine Datenbanktabelle. 492 00:23:40,190 --> 00:23:42,810 Das ist wie die Spezifikationen für die table-- 493 00:23:42,810 --> 00:23:48,040 aber wenn es darum geht, um tatsächlich Daten speichern, 494 00:23:48,040 --> 00:23:52,081 und wir tun dies nur durch das Beispiel hier. 495 00:23:52,081 --> 00:23:55,080 Ich werde Excel zu öffnen, weil Excel gibt mir Zeilen und Spalten. 496 00:23:55,080 --> 00:23:58,050 Und das ist genau das, was Oracle und MySQL und andere Werkzeuge werden mir geben. 497 00:23:58,050 --> 00:24:02,270 Also ich werde einfach nutzen zur Diskussion willen. 498 00:24:02,270 --> 00:24:05,250 Lassen Sie mich gehen Sie vor und eröffnen ein Vertreter Dokument hier, 499 00:24:05,250 --> 00:24:06,310 Zoom in einem Bit. 500 00:24:06,310 --> 00:24:15,200 So sind beispielsweise unsere headers jetzt Vorname, Name, Geschlecht, ID, 501 00:24:15,200 --> 00:24:20,980 E-Mail, Hausnummer, Straße, hoppla. 502 00:24:20,980 --> 00:24:25,710 Straße, Stadt, Staat, nur etwa auf den Bildschirm passen. 503 00:24:25,710 --> 00:24:29,080 >> Also, was dies bedeutet ist, dass, wenn ein Benutzer registriert zuerst für meine Website, 504 00:24:29,080 --> 00:24:32,880 es wird etwas sein, wie David, Malan, m, lassen Sie uns 1 sagen, 505 00:24:32,880 --> 00:24:42,910 malan@harvard.edu, Hausnummer wird sein wie 1 Brattle Square, Cambridge, MA, 506 00:24:42,910 --> 00:24:44,780 02138, und dann so weiter. 507 00:24:44,780 --> 00:24:48,290 Also, wenn ich sage, dass eine relationale Datenbank oder SQL-Datenbank ist Zeilen und Spalten, 508 00:24:48,290 --> 00:24:49,350 Ich meine das. 509 00:24:49,350 --> 00:24:51,900 Das tatsächliche Daten gespeichert in Zeilen und Spalten. 510 00:24:51,900 --> 00:24:53,950 Dies ist nur ein Zufall, dass wir sprachen, 511 00:24:53,950 --> 00:24:56,033 und ich zeichnete es einfach aus in Zeilen und Spalten. 512 00:24:56,033 --> 00:24:58,320 Dies ist nur das Schema, das übergeordnete Definition. 513 00:24:58,320 --> 00:25:01,640 >> Also dieser Felder hier, oder äquivalent, da, 514 00:25:01,640 --> 00:25:06,270 das sind die Felder, die Sie denken, Ich bin wahrscheinlich auf zu suchen, wenn ich ein Benutzer bin 515 00:25:06,270 --> 00:25:09,200 oder wenn ich den Datenbankadministrator? 516 00:25:09,200 --> 00:25:12,426 Wie, was Felder bin ich tatsächlich zu suchen auf? 517 00:25:12,426 --> 00:25:13,830 >> PUBLIKUM: [unverständlich] 518 00:25:13,830 --> 00:25:17,690 >> DAVID MALAN: Der Name, ja so Ich mag die Tatsache dass-- ja, 519 00:25:17,690 --> 00:25:19,750 E-Mail könnte ziemlich häufig sein. 520 00:25:19,750 --> 00:25:21,440 Sorry, Sie sagten Namen. 521 00:25:21,440 --> 00:25:24,030 So maybe-- und wieder, wir sind Art sprechen von in der Zusammenfassung. 522 00:25:24,030 --> 00:25:25,988 Ich weiß nicht, warum würden Sie werden nach einem Namen suchen, 523 00:25:25,988 --> 00:25:29,340 aber das fühlt sich sinnvoll, wenn Sie für einen Benutzer zu suchen. 524 00:25:29,340 --> 00:25:31,170 Vielleicht heißt es, sicher, ID. 525 00:25:31,170 --> 00:25:34,100 526 00:25:34,100 --> 00:25:36,160 >> Und es ist eine rutschige Steigung, weil ich konnte 527 00:25:36,160 --> 00:25:38,890 ersinnen ein Szenario, in dem vielleicht mein Chef hat mich gebeten, 528 00:25:38,890 --> 00:25:40,417 wie viele Männer haben wir auf unserer Website? 529 00:25:40,417 --> 00:25:42,000 Wie viele Frauen haben wir auf unserer Website? 530 00:25:42,000 --> 00:25:45,210 Und so an diesem Punkt, sollten Sie auf Gender-Bereich zu suchen, zu, 531 00:25:45,210 --> 00:25:45,940 und sonst nichts. 532 00:25:45,940 --> 00:25:47,350 So gibt es einen Trade-off hier. 533 00:25:47,350 --> 00:25:49,180 Auch hier gibt es keine richtige Antwort, aber es 534 00:25:49,180 --> 00:25:53,760 ist eine Funktion in den meisten SQL-Datenbanken bekannt als Indexierung, wobei 535 00:25:53,760 --> 00:25:56,100 Sie, die Designer, die Datenbankadministrator, 536 00:25:56,100 --> 00:26:01,730 erhalten im Voraus entscheiden, welche Feldern sollte die Datenbank optimieren 537 00:26:01,730 --> 00:26:02,980 für die Suche auf. 538 00:26:02,980 --> 00:26:07,620 >> Sie könnten sehr naiv sagen, optimieren Damit optimieren, dass, optimieren diese, 539 00:26:07,620 --> 00:26:10,300 optimieren, dass, und dies, und die Datenbank wird 540 00:26:10,300 --> 00:26:14,882 tun einige magische Sache unter der Haube, und etwas tun, so 541 00:26:14,882 --> 00:26:17,090 dass das nächste Mal, wenn Sie suchen auf jedem dieser Felder, 542 00:26:17,090 --> 00:26:18,400 es wird in der Tat schneller sein. 543 00:26:18,400 --> 00:26:19,110 Das ist möglich. 544 00:26:19,110 --> 00:26:20,530 Es spielt Abbrechen nicht selbst aus. 545 00:26:20,530 --> 00:26:22,500 Aber es muss ein Preis bezahlt werden. 546 00:26:22,500 --> 00:26:27,220 >> Wenn Sie naiv, oder über begeistert etwa Index all dieser Felder, 547 00:26:27,220 --> 00:26:29,810 so zu sprechen, machen sie alle effizient durchsuchbar, 548 00:26:29,810 --> 00:26:31,625 Welchen Preis zahlen Sie wahrscheinlich? 549 00:26:31,625 --> 00:26:32,500 PUBLIKUM: [unverständlich] 550 00:26:32,500 --> 00:26:33,090 DAVID MALAN: Leistung. 551 00:26:33,090 --> 00:26:33,798 Was meinen Sie? 552 00:26:33,798 --> 00:26:37,380 Gut Leistung, zumindest in der Kontext ich diskutieren, ist jetzt besser. 553 00:26:37,380 --> 00:26:38,830 Das ist die Definition der Indizierung. 554 00:26:38,830 --> 00:26:41,180 Es sucht schneller zu machen. 555 00:26:41,180 --> 00:26:43,366 So Zeit abnimmt, sozusagen. 556 00:26:43,366 --> 00:26:44,240 PUBLIKUM: [unverständlich] 557 00:26:44,240 --> 00:26:45,031 DAVID MALAN: Space. 558 00:26:45,031 --> 00:26:46,520 Also noch einmal, diese sind eine gemeinsame Handel. 559 00:26:46,520 --> 00:26:50,820 Ich kann Ihre Suche zu beschleunigen, aber es ist Wollen Sie mehr Byte Platz kosten. 560 00:26:50,820 --> 00:26:51,610 Warum? 561 00:26:51,610 --> 00:26:55,230 Nun, standardmäßig, wenn wir nichts von Diese roten Sterne, keine dieser Indizes, 562 00:26:55,230 --> 00:26:58,797 wie ich sage, wie Sie suchen für einen Namen in dieser Datenbank? 563 00:26:58,797 --> 00:27:00,630 Also lassen Sie uns zeichnen unsere die Aufmerksamkeit auf dieses Beispiel. 564 00:27:00,630 --> 00:27:06,300 Wenn wir David und Scully und Kareem und Arwa und andere in diesen Reihen, 565 00:27:06,300 --> 00:27:06,910 zum Beispiel. 566 00:27:06,910 --> 00:27:08,390 >> Lassen Sie uns also genau das tun. 567 00:27:08,390 --> 00:27:13,990 Scully ist hier in, und dann wir haben Kareem und Arwa, 568 00:27:13,990 --> 00:27:18,390 und alle anderen, wenn Sie nicht tun haben ein Index definiert ist, sozusagen 569 00:27:18,390 --> 00:27:20,160 das Beste, was Sie tun können, ist lineare Suche. 570 00:27:20,160 --> 00:27:23,470 Wenn Sie Arwa suchen, sind wir nicht gehen zu können direkt auf sie zu springen 571 00:27:23,470 --> 00:27:24,140 schnell. 572 00:27:24,140 --> 00:27:26,556 Wir gehen oben zu beginnen und gehen den ganzen Weg nach unten, 573 00:27:26,556 --> 00:27:28,600 nicht im Gegensatz zu unserer ursprünglichen Mike Smith Beispiel. 574 00:27:28,600 --> 00:27:33,470 >> Wenn aber, sage ich, hey, Datenbank, Index des ersten Namensfeld, 575 00:27:33,470 --> 00:27:37,000 dann etwas, es wird zu tun schicker und unterstützen etwas 576 00:27:37,000 --> 00:27:38,130 wie binäre Suche. 577 00:27:38,130 --> 00:27:39,820 Es ist wahrscheinlich nicht binäre Suche per se. 578 00:27:39,820 --> 00:27:42,810 Datenbanken sind in der Regel eine andere zu verwenden, Datenstruktur b-Bäume genannt, 579 00:27:42,810 --> 00:27:46,540 nicht zu verwechseln mit Binärbäume werden, dass es nur schneller zu suchen 580 00:27:46,540 --> 00:27:48,500 etwas logarithmisch in der Natur. 581 00:27:48,500 --> 00:27:53,510 Aber der Preis zahlen Sie für den Aufbau, dass Merkmal, dass die Datenstruktur im Speicher, 582 00:27:53,510 --> 00:27:54,570 mehr Bytes ist. 583 00:27:54,570 --> 00:27:57,170 So könnte es einige Megabytes nehmen, einige Gigabyte, wer weiß? 584 00:27:57,170 --> 00:27:58,410 Es hängt von den Daten. 585 00:27:58,410 --> 00:28:02,640 >> Also irgendwann muss man sich entscheiden, es ist wahrscheinlich kein gewöhnlicher Fall. 586 00:28:02,640 --> 00:28:06,000 Was sind also die tatsächliche gemeinsame Fällen, wenn Sie musste wirklich wählen, 587 00:28:06,000 --> 00:28:10,080 was könnte sein, Ihre Lieblings-Felder? 588 00:28:10,080 --> 00:28:10,580 Email. 589 00:28:10,580 --> 00:28:14,400 Und Ich mag E-Mail, weil E-Mail, in der Theorie sollte eindeutig sein. 590 00:28:14,400 --> 00:28:17,650 Und so typisch, wenn Sie wissen, im Voraus, dass eines Ihrer Felder 591 00:28:17,650 --> 00:28:20,277 ist oder wird eindeutig sein, dass neigt dazu, ein gutes Feld zu sein 592 00:28:20,277 --> 00:28:22,860 zu suchen, auf, weil auf diese Weise, wenn Sie nach etwas suchen, 593 00:28:22,860 --> 00:28:26,194 Sie gehen ein zurück zu bekommen oder Null-Antworten und dann sind Sie fertig. 594 00:28:26,194 --> 00:28:28,110 Sie müssen nicht halten für wieder andere suchen. 595 00:28:28,110 --> 00:28:31,992 >> Und so in diesem Fall hier, E-Mail, so lange, wie Sie nicht zweimal registrieren 596 00:28:31,992 --> 00:28:33,450 mit der gleichen E-Mail, ist ein guter. 597 00:28:33,450 --> 00:28:36,710 ID per Definition in der Informatik Welt, 598 00:28:36,710 --> 00:28:39,610 wenn Sie sprechen ein ID, die besser eindeutig sein hatte. 599 00:28:39,610 --> 00:28:42,970 Das ist eine Art der Konnotation von ID oder Kennung. 600 00:28:42,970 --> 00:28:46,440 Und der Rest von ihnen auch sein mag, Lassen Sie uns sie zu haves schön nennen, 601 00:28:46,440 --> 00:28:47,860 aber nicht wirklich erforderlich. 602 00:28:47,860 --> 00:28:49,976 >> Und so in einer Datenbank, geben Sie Indizes, 603 00:28:49,976 --> 00:28:51,350 Sie können jedoch noch präziser sein. 604 00:28:51,350 --> 00:28:56,060 Man kann sagen, hey, Datenbank, stellen Sie sicher, dass jede ID in dieser Tabelle ist eindeutig. 605 00:28:56,060 --> 00:28:59,330 Lassen Sie sich nicht einmal ein Programmierer versehentlich in einem doppelten E-Mail setzen 606 00:28:59,330 --> 00:29:00,740 oder ID-Nummer duplizieren. 607 00:29:00,740 --> 00:29:03,140 So viel wie Aufzählungen schützen uns, Sie ähnlich 608 00:29:03,140 --> 00:29:04,881 können diese auf niedrigerer Ebene Verteidigung haben. 609 00:29:04,881 --> 00:29:07,130 Und so Datenbank-Design, in ein Gefühl, eine Art von Spaß ist, 610 00:29:07,130 --> 00:29:08,380 weil Sie es defensiv tun. 611 00:29:08,380 --> 00:29:11,460 Sie übernehmen die Art, dass Sie arbeiten mit schreckliche, schreckliche Programmierer 612 00:29:11,460 --> 00:29:15,550 und Sie wollen so viele Abwehrkräfte setzen in wie Sie Ihre Daten zu schützen, können sie, 613 00:29:15,550 --> 00:29:18,940 aber gleichzeitig Sie wollen ihnen zu helfen, eine bessere Leistung 614 00:29:18,940 --> 00:29:21,386 von der Auswahl der Felder zu optimieren für. 615 00:29:21,386 --> 00:29:24,260 Aber man kann nicht unbedingt tun es in ein Vakuum, wie wir sind ein bisschen hier. 616 00:29:24,260 --> 00:29:26,480 Sie haben kennen gelernt haben, was sind diese gemeinsamen Fälle zu sein. 617 00:29:26,480 --> 00:29:29,397 Wenn die Entwickler ein Adressbuch Umsetzung, 618 00:29:29,397 --> 00:29:32,230 Sie könnte sehr gut wollen in der Lage sein, auf fast allen Bereichen zu suchen, 619 00:29:32,230 --> 00:29:33,830 nur von der Natur der Anwendung. 620 00:29:33,830 --> 00:29:37,910 Vielleicht verbringen Sie dass zusätzlicher Platz. 621 00:29:37,910 --> 00:29:39,090 >> Richtig, irgendwelche Fragen? 622 00:29:39,090 --> 00:29:41,820 623 00:29:41,820 --> 00:29:42,486 Ja. 624 00:29:42,486 --> 00:29:43,470 >> PUBLIKUM: [unverständlich] 625 00:29:43,470 --> 00:29:44,404 >> DAVID MALAN: Nein. 626 00:29:44,404 --> 00:29:45,279 >> PUBLIKUM: [unverständlich] 627 00:29:45,279 --> 00:29:47,840 628 00:29:47,840 --> 00:29:48,826 >> DAVID MALAN: OK. 629 00:29:48,826 --> 00:29:49,701 >> PUBLIKUM: [unverständlich] 630 00:29:49,701 --> 00:29:52,420 631 00:29:52,420 --> 00:29:54,850 >> DAVID MALAN: Oh, so dass wir in einer Weise sprechen 632 00:29:54,850 --> 00:29:57,940 nun, das ist völlig sprachunabhängig. 633 00:29:57,940 --> 00:30:02,370 So sprechen wir jetzt über relationale Datenbanken allgemeiner 634 00:30:02,370 --> 00:30:04,760 oder SQL-Datenbanken im Allgemeinen. 635 00:30:04,760 --> 00:30:06,870 >> PUBLIKUM: [unverständlich] 636 00:30:06,870 --> 00:30:10,030 >> DAVID MALAN: Ein besseres Wort zu verwenden, ist, kann durch jede beliebige Sprache verwendet werden. 637 00:30:10,030 --> 00:30:15,280 So kann ich JavaScript-Code, C schreiben Code, C ++ Code, Java-Code, Ruby-Code, 638 00:30:15,280 --> 00:30:19,010 von denen alle sprechen ein Datenbank und Abfragen ausführen. 639 00:30:19,010 --> 00:30:22,310 In der Tat, das ist keine schlechte segue einem Beispiel Abfrage. 640 00:30:22,310 --> 00:30:25,720 Und wieder werden wir gehen nicht in Java oder C ++ oder irgendetwas davon mehr, 641 00:30:25,720 --> 00:30:29,420 aber in SQL, die Sprache, auf die ich halten Bezug genommen wird, Structured Query Language, 642 00:30:29,420 --> 00:30:32,790 Diese selbst ist eine Programmiersprache, aber es soll angewendet werden, keine 643 00:30:32,790 --> 00:30:37,330 Überraschung, Abfrage-Abfragen strukturiert. 644 00:30:37,330 --> 00:30:38,660 >> Damit meine ich das. 645 00:30:38,660 --> 00:30:41,190 Die Art und Weise Sie Daten auswählen aus einer MySQL-Datenbank 646 00:30:41,190 --> 00:30:49,330 wird Sie buchstäblich in Ihrem Programm eingeben so etwas wie select Stern von den Benutzern. 647 00:30:49,330 --> 00:30:52,200 Ich gehe davon aus, dass dieser Tabelle, von nun an wird den Benutzern aufgerufen. 648 00:30:52,200 --> 00:30:54,860 Ich konnte es nennen, was wir wollen, aber diese Art von Sinn macht. 649 00:30:54,860 --> 00:30:57,240 Und so wählen Sie ist eine sehr gemeinsame Verb, wenn Sie 650 00:30:57,240 --> 00:30:59,290 wird, in SQL, das tut buchstäblich das. 651 00:30:59,290 --> 00:31:02,730 Was denken Sie, Stern bedeutet in diesem Zusammenhang? 652 00:31:02,730 --> 00:31:04,410 >> PUBLIKUM: [unverständlich] 653 00:31:04,410 --> 00:31:05,380 >> DAVID MALAN: Tut mir leid? 654 00:31:05,380 --> 00:31:06,300 >> PUBLIKUM: [unverständlich] 655 00:31:06,300 --> 00:31:09,580 >> DAVID MALAN: Nicht erforderlich, es ist umfassender ist als das, eigentlich. 656 00:31:09,580 --> 00:31:11,700 Es ist die Wildcard-Zeichen. 657 00:31:11,700 --> 00:31:14,740 Stern bedeutet fast immer etwas, so bedeutet das, in diesem Fall 658 00:31:14,740 --> 00:31:16,510 Wählen Sie alles aus der Datenbank. 659 00:31:16,510 --> 00:31:20,730 Also, wenn ich das sage, meine ich gib mir jede Spalte zurück 660 00:31:20,730 --> 00:31:22,440 von meinem Tisch Benutzer genannt. 661 00:31:22,440 --> 00:31:24,730 Also gib mir eine Ergebnismenge, wie es genannt wird. 662 00:31:24,730 --> 00:31:28,210 Mit anderen Worten, geben Sie mir eine Kopie der Tabellenkalkulation, ist das, was ich hinaus will. 663 00:31:28,210 --> 00:31:34,890 >> Aber wenn ich die Auswahl Stern von den Benutzern ID wo gleich 1 ist, wie groß 664 00:31:34,890 --> 00:31:36,640 mein Ergebnismenge dann sein? 665 00:31:36,640 --> 00:31:41,680 Oder äquivalent, wie viele Zeilen sollte Ich werden aus der Datenbank übergeben zurück? 666 00:31:41,680 --> 00:31:45,860 Wahrscheinlich nur ein, wenn ich in der Tat ID als eindeutige Kennung behandelt, 667 00:31:45,860 --> 00:31:50,710 und wenn David, dass die eindeutige ID hat, wie ich sollte man sich zurück und nur eine Zeile 668 00:31:50,710 --> 00:31:53,220 alle Davids Informationen enthält. 669 00:31:53,220 --> 00:31:56,390 Wenn ich sagte, dies wo ID gleich 99, sollte ich zurück, 670 00:31:56,390 --> 00:32:00,320 in diesem Zusammenhang keine Zeilen, zumindest im Augenblick. 671 00:32:00,320 --> 00:32:03,620 >> Allerdings, wenn ich nicht wirklich kümmern über alle diese Informationen, 672 00:32:03,620 --> 00:32:06,970 Ich konnte nur sagen, wo sich David leben? 673 00:32:06,970 --> 00:32:10,860 Wählen Postleitzahl aus Benutzer, wo ID 1 ist. 674 00:32:10,860 --> 00:32:15,820 Das wird mir nur wählen Davids zip Code und nicht die Gesamtheit dieser Reihe. 675 00:32:15,820 --> 00:32:19,541 Warum könnte ich dies tun, anstatt der Stern-Abfrage, die Wild Card? 676 00:32:19,541 --> 00:32:21,950 >> PUBLIKUM: [unverständlich] 677 00:32:21,950 --> 00:32:24,590 >> DAVID MALAN: Ja, ich könnte nur es brauchen. 678 00:32:24,590 --> 00:32:26,350 So Leistung ist wieder die Antwort hier. 679 00:32:26,350 --> 00:32:28,540 Warum mehr verlangen Informationen, als Sie brauchen, 680 00:32:28,540 --> 00:32:32,020 denn selbst wenn es richtig zusammen ist, Sie müssen immer noch, dass die Daten zu kopieren, 681 00:32:32,020 --> 00:32:35,560 es scheint, aus der Datenbank in Ihr Programm irgendwie, 682 00:32:35,560 --> 00:32:38,490 und das ist nur dumm, wenn Sie nur müssen fünf dieser Ziffern, 683 00:32:38,490 --> 00:32:40,340 nicht die Gesamtheit der Reihe. 684 00:32:40,340 --> 00:32:42,180 >> Wie füge ich ein Benutzer? 685 00:32:42,180 --> 00:32:44,780 Angenommen, ein Benutzer hat nur zum ersten Mal registriert. 686 00:32:44,780 --> 00:32:46,560 Die Syntax würde in der Regel wie folgt aussehen. 687 00:32:46,560 --> 00:32:52,700 Legen Sie in den Benutzern, und dann würden wir Werte sagen, 688 00:32:52,700 --> 00:33:00,150 und dann würden wir Werte sagen wie, sagen wir mal, Lauren Scully, 689 00:33:00,150 --> 00:33:02,380 unser Videofilmer hier richtig. 690 00:33:02,380 --> 00:33:04,390 Und das nächste Feld ist das Geschlecht. 691 00:33:04,390 --> 00:33:08,020 Also werden wir sagen, Zitat, unquote "F", dann haben wir eine ID 692 00:33:08,020 --> 00:33:12,250 und ich werde sagen-- lasst uns so tun sie hier nicht wirklich ist, 693 00:33:12,250 --> 00:33:14,380 so werden wir in der Geschichte zurückzuspulen. 694 00:33:14,380 --> 00:33:16,530 So wird 2 ihre ID sein. 695 00:33:16,530 --> 00:33:19,130 Und dann das nächste Feld hier ist ihre E-Mail. 696 00:33:19,130 --> 00:33:22,140 Also, es wird wie sein Lauren Scully und so weiter, 697 00:33:22,140 --> 00:33:24,360 und wir werden einfach dot dot dot es von hier entfernt. 698 00:33:24,360 --> 00:33:26,890 Jetzt bekommen sie ein wenig langweilig, aber der Einsatz Abfrage 699 00:33:26,890 --> 00:33:28,310 würde sich letztlich so. 700 00:33:28,310 --> 00:33:30,970 >> Wenn ich will, um loszuwerden, Scully, uh-oh, lassen Sie uns abzumelden 701 00:33:30,970 --> 00:33:37,420 ihr, sie löscht ihr Konto, Löschen von Benutzern, wo ID 2 entspricht, 702 00:33:37,420 --> 00:33:38,500 loswerden von Scully. 703 00:33:38,500 --> 00:33:48,050 Oder ich kann Update Benutzer eingestellt sagen, lassen Sie uns sagen, was können wir ändern? 704 00:33:48,050 --> 00:33:49,430 Angenommen, sie bewegt. 705 00:33:49,430 --> 00:33:53,730 Set zip gleich 021-- Nö, das ist ihre aktuelle Reißverschluss. 706 00:33:53,730 --> 00:33:54,487 90210. 707 00:33:54,487 --> 00:33:56,320 Die einzige andere Postleitzahl Ich weiß, dass in der Welt. 708 00:33:56,320 --> 00:33:59,002 Damit würde sich ändern ihre zip code-- tatsächlich, 709 00:33:59,002 --> 00:34:00,460 das wäre nicht ihre Postleitzahl ändern. 710 00:34:00,460 --> 00:34:02,170 >> Was habe ich nur? 711 00:34:02,170 --> 00:34:04,292 Auch wenn die Syntax ist wahrscheinlich neu. 712 00:34:04,292 --> 00:34:05,302 >> PUBLIKUM: [unverständlich] 713 00:34:05,302 --> 00:34:08,010 DAVID MALAN: Ja, zog ich alle Beverly Hills, Kalifornien. 714 00:34:08,010 --> 00:34:11,920 Also sollte ich eigentlich sagen, wo ID 2 entspricht. 715 00:34:11,920 --> 00:34:12,820 Und so weiter. 716 00:34:12,820 --> 00:34:15,290 So ist SQL alles über diese Arten von Anweisungen. 717 00:34:15,290 --> 00:34:20,260 Wählen Sie, einfügen, löschen, aktualisieren, mit dieser Prädikate am Ende 718 00:34:20,260 --> 00:34:22,139 diese where-Klauseln, sozusagen. 719 00:34:22,139 --> 00:34:25,170 Und es gibt noch viel mehr können Sie tun, aber es läuft wirklich nur nach unten 720 00:34:25,170 --> 00:34:29,750 wenn arcanely einfach, zum Ausdruck was Sie wollen, dass die Datenbank zu tun. 721 00:34:29,750 --> 00:34:31,580 >> Und dann die Datenbank werden herausfinden, wenn 722 00:34:31,580 --> 00:34:35,630 Sie fügen Lauren Scully in die Datenbank, wo sie in den Speicher zu stellen 723 00:34:35,630 --> 00:34:38,230 so dass wir sehr schnell bekommen sie basiert auf ihrer E-Mail-Adresse 724 00:34:38,230 --> 00:34:42,610 oder basierend auf dem ID-Nummer oder dergleichen. 725 00:34:42,610 --> 00:34:43,391 Ja, Dan. 726 00:34:43,391 --> 00:34:44,266 PUBLIKUM: [unverständlich] 727 00:34:44,266 --> 00:34:46,364 728 00:34:46,364 --> 00:34:47,780 DAVID MALAN: Wirklich gute Frage. 729 00:34:47,780 --> 00:34:50,370 Ändert sich diese Skripts aus Microsoft Access zu Oracle 730 00:34:50,370 --> 00:34:52,290 MySQL auf PostgreSQL? 731 00:34:52,290 --> 00:34:53,790 Die kurze Antwort ist es hängt davon ab. 732 00:34:53,790 --> 00:34:58,697 In der Theorie ist es eine sehr wichtige gemeinsame Teilmenge von SQL 733 00:34:58,697 --> 00:35:00,780 das ist in allen geteilt dieser Implementierungen. 734 00:35:00,780 --> 00:35:03,340 Allerdings verschiedener Hersteller haben zusätzliche Funktionen 735 00:35:03,340 --> 00:35:07,120 zu ihren Datenbanken, bestimmte Dinge zu tun über den Rahmen dieser Merkmale, 736 00:35:07,120 --> 00:35:08,720 das könnte in der Tat brechen. 737 00:35:08,720 --> 00:35:11,210 >> So die Art und Weise Entwickler Absicherung gegen diese, 738 00:35:11,210 --> 00:35:14,350 das ist eher als das Schreiben roh SQL-Code wie ich schreibe hier, 739 00:35:14,350 --> 00:35:19,460 sie stattdessen eine Bibliothek verwenden, eine gemeinsame Bibliothek, die sich 740 00:35:19,460 --> 00:35:23,650 ist eine Art von höherer Ebene und Abstracts welches Produkt Sie verwenden weg. 741 00:35:23,650 --> 00:35:25,710 Und es gibt Ihnen Funktionen und Prozeduren 742 00:35:25,710 --> 00:35:28,810 so dass Sie rufen nie Schreiben tatsächlich rohe SQL. 743 00:35:28,810 --> 00:35:32,609 >> In der Theorie, dann können Sie ändern Produkte von Oracle zu Microsoft 744 00:35:32,609 --> 00:35:34,650 oder umgekehrt oder irgendetwas sonst, und man buchstäblich 745 00:35:34,650 --> 00:35:36,920 ändern nichts über Ihren Code. 746 00:35:36,920 --> 00:35:40,180 Die Realität aber ist, Sie manchmal geben Funktionen als Ergebnis. 747 00:35:40,180 --> 00:35:43,860 Sie könnten für ein Produkt entschieden, weil es ist diese Mehrwert-Features erhalten, 748 00:35:43,860 --> 00:35:46,610 und du bist gerade jetzt nicht indem sie bewusst. 749 00:35:46,610 --> 00:35:51,630 >> Und anekdotisch, die meisten Unternehmen neigen dazu, nie zu bewegen, aus ihrer Datenbank entfernt. 750 00:35:51,630 --> 00:35:54,002 Während also das ist ein schön Funktion haben, die Realität 751 00:35:54,002 --> 00:35:55,960 wenn Sie ist, sind Überholungs Ihre Datenbank, du bist 752 00:35:55,960 --> 00:35:59,890 wahrscheinlich Trauben von anderen Änderungen wie auch immer, dass Sie nicht unbedingt 753 00:35:59,890 --> 00:36:01,360 müssen, dass zu antizipieren. 754 00:36:01,360 --> 00:36:03,720 So ist es wohl Over-Engineering, das Problem, 755 00:36:03,720 --> 00:36:05,670 aber es hängt wirklich vom Kontext ab. 756 00:36:05,670 --> 00:36:09,960 Aber in der Theorie, SQL wird geteilt über diese verschiedenen Produkten. 757 00:36:09,960 --> 00:36:11,560 Wirklich gute Fragen. 758 00:36:11,560 --> 00:36:12,272 Ja. 759 00:36:12,272 --> 00:36:13,147 >> PUBLIKUM: [unverständlich] 760 00:36:13,147 --> 00:36:17,820 761 00:36:17,820 --> 00:36:21,480 >> DAVID MALAN: Ja, so Sie können eine Datenbank denken 762 00:36:21,480 --> 00:36:25,020 ist nur ein Server am Ende der Tag, und im Inneren des Servers 763 00:36:25,020 --> 00:36:28,670 ist eine ganze Reihe von Tabellen, Zeilen und Spalten. 764 00:36:28,670 --> 00:36:33,410 Und wenn Sie eine Abfrage wie folgt senden aus Ihrem Programm, Ihre Website, 765 00:36:33,410 --> 00:36:39,340 geschrieben in Java, Ruby, Python, was auch immer, der Server empfängt diesen Befehl 766 00:36:39,340 --> 00:36:41,660 und Interpretieren es in wahrsten Sinne des Wortes auf die gleiche Weise 767 00:36:41,660 --> 00:36:43,660 wir früher diskutiert mit interpretierte Sprachen, 768 00:36:43,660 --> 00:36:47,333 und dann die Durchführung eine Aktion auf Null oder mehr Zeilen in null oder mehr Tabellen. 769 00:36:47,333 --> 00:36:48,208 PUBLIKUM: [unverständlich] 770 00:36:48,208 --> 00:36:53,540 771 00:36:53,540 --> 00:36:55,070 >> DAVID MALAN: Genau, genau. 772 00:36:55,070 --> 00:36:58,450 So die Pseudo-Code für etwas so könnte dies sein. 773 00:36:58,450 --> 00:37:02,450 In Ihrer PHP-Datei oder Ihr Python-Datei oder Ihre Java-Datei, 774 00:37:02,450 --> 00:37:09,210 Sie würden Pseudo-Code-Code haben, oder Scratch-ähnliche Blöcke wie, wenn Benutzer besucht 775 00:37:09,210 --> 00:37:19,870 acme.com/register~~V erstmals, und legen Sie dann in Benutzer und so weiter. 776 00:37:19,870 --> 00:37:22,619 Und wir würden übersetzen, dies zu Konkreter Code am Ende. 777 00:37:22,619 --> 00:37:24,660 Aber wirklich, haben wir alle die Bausteine ​​hier, 778 00:37:24,660 --> 00:37:27,680 obwohl wir das Überspringen einige der Umsetzungsschritte. 779 00:37:27,680 --> 00:37:31,560 >> Also lassen Sie mich bemängeln mit dem, was wir wunderbar tat vor einem Augenblick gerade. 780 00:37:31,560 --> 00:37:36,470 Sie haben ein ziemlich erstellt vollständige Tabelle für die Anwender. 781 00:37:36,470 --> 00:37:38,920 Zwar konnten wir umsetzen es in ein paar verschiedene Möglichkeiten, 782 00:37:38,920 --> 00:37:43,030 aber Sie haben dazu geführt, uns tatsächlich die path-- nach unten, und ich sage dir, 783 00:37:43,030 --> 00:37:48,080 aber es ist wahrscheinlich mein fault-- einer ziemlich ineffiziente Datenbank-Implementierung. 784 00:37:48,080 --> 00:37:49,950 Es ist nicht normiert. 785 00:37:49,950 --> 00:37:52,320 >> Und durch normalisierte ich meine da wird ... sein, 786 00:37:52,320 --> 00:37:57,380 Im Laufe der Zeit eine erhebliche Redundanz, und daher Ineffizienz, 787 00:37:57,380 --> 00:38:00,210 das ist Verschwendung von Speicherplatz. 788 00:38:00,210 --> 00:38:05,650 Basierend nur auf das, was Sie hier sehen, können stellen Sie sich, wo diese Verschwendung von Speicherplatz 789 00:38:05,650 --> 00:38:08,710 geht aus, im Laufe der Zeit zu kommen, da immer mehr Nutzer registrieren 790 00:38:08,710 --> 00:38:10,860 für Ihre Website? 791 00:38:10,860 --> 00:38:13,047 Welche Daten könnte überflüssig werden? 792 00:38:13,047 --> 00:38:19,084 793 00:38:19,084 --> 00:38:20,940 >> PUBLIKUM: [unverständlich] 794 00:38:20,940 --> 00:38:22,686 >> DAVID MALAN: Warum meinst du das? 795 00:38:22,686 --> 00:38:23,561 PUBLIKUM: [unverständlich] 796 00:38:23,561 --> 00:38:32,180 797 00:38:32,180 --> 00:38:32,930 DAVID MALAN: Ja. 798 00:38:32,930 --> 00:38:35,622 Und lassen Sie uns für die Zwecke übernehmen heute, dass das stimmt. 799 00:38:35,622 --> 00:38:38,330 Es stellte sich heraus, und wir haben dies gelernt auf die harte Tour, das ist nicht wahr. 800 00:38:38,330 --> 00:38:41,670 Irgendwie mehrere Städte haben, irgendwie die gleiche Postleitzahl, 801 00:38:41,670 --> 00:38:43,390 die bricht diese wunderbare Intuition. 802 00:38:43,390 --> 00:38:46,180 Aber nehmen wir an, das ist wahr, denn es ist fast immer wahr. 803 00:38:46,180 --> 00:38:51,390 So nehme an, dass eine Postleitzahl ist immer mit der gleichen Stadt zugeordnet 804 00:38:51,390 --> 00:38:53,600 und Staat, die Art ist der vernünftige Annahme, 805 00:38:53,600 --> 00:38:54,840 aber falsch, es stellt sich heraus. 806 00:38:54,840 --> 00:38:57,310 Aber eine vernünftige Annahme, für die Zwecke von heute. 807 00:38:57,310 --> 00:39:01,650 >> Dann nehme an, dass ich in Cambridge leben, MA, gemäß dieser Tabelle des Benutzers, 808 00:39:01,650 --> 00:39:04,100 und nehmen wir an, dass Lauren Scully lebt in Cambridge, MA, 809 00:39:04,100 --> 00:39:06,120 und nehmen wir an, dass Kareem lebt in Cambridge, MA, 810 00:39:06,120 --> 00:39:10,400 und Arwa lebt in Cambridge, MA, alle von uns in 02.138. 811 00:39:10,400 --> 00:39:15,890 Warum erinnern wir Cambridge, MA, 02138 für alle vier von uns? 812 00:39:15,890 --> 00:39:18,903 Was soll daran zu erinnern, genügen? 813 00:39:18,903 --> 00:39:20,249 >> PUBLIKUM: [unverständlich] 814 00:39:20,249 --> 00:39:21,540 DAVID MALAN: Einfach die Postleitzahl. 815 00:39:21,540 --> 00:39:25,080 Nur, dass 02138 existiert, weil Sie wissen, was wir tun könnten? 816 00:39:25,080 --> 00:39:32,650 Wir könnten ein wenig Phantasie bekommen hier und hier, definieren eine andere Tabelle 817 00:39:32,650 --> 00:39:35,850 wo dies wird die sein, Name, das wird der Typ zu sein, 818 00:39:35,850 --> 00:39:38,840 das wird die sein, Länge, und von nun an, ich bin 819 00:39:38,840 --> 00:39:42,900 Gehen diese Tabelle meine Städte zu nennen. 820 00:39:42,900 --> 00:39:47,011 Das hieß, von Natürlich, mein Benutzer-Tabelle. 821 00:39:47,011 --> 00:39:49,885 Und was soll ich hier gestülpt für meine Städte Tisch, denken Sie? 822 00:39:49,885 --> 00:39:53,605 823 00:39:53,605 --> 00:39:54,535 >> PUBLIKUM: [unverständlich] 824 00:39:54,535 --> 00:39:55,930 >> DAVID MALAN: Ja. 825 00:39:55,930 --> 00:40:01,440 So Reißverschluss und Staat und die Stadt. 826 00:40:01,440 --> 00:40:05,350 Und so ist hier die Art, werden wir sagen, das wird ein char 5 wieder zu sein, 827 00:40:05,350 --> 00:40:06,750 Gegenstand der Debatte von früher. 828 00:40:06,750 --> 00:40:14,810 Dies wird eine Enumeration, vielleicht wie vor, und die Stadt wird ein varchar 50 sein. 829 00:40:14,810 --> 00:40:17,960 Und jetzt, was bekomme ich aus dieser Tabelle zu löschen 830 00:40:17,960 --> 00:40:21,995 diese Ineffizienz zu beseitigen? 831 00:40:21,995 --> 00:40:23,100 >> PUBLIKUM: [unverständlich] 832 00:40:23,100 --> 00:40:23,850 DAVID MALAN: Nice. 833 00:40:23,850 --> 00:40:30,239 Staat und Stadt gehen weg, also habe ich jetzt das Potential Ineffizienz beseitigt 834 00:40:30,239 --> 00:40:33,280 zur redundanten Erinnerung, Cambridge, MA, Cambridge, MA, Cambridge, MA, 835 00:40:33,280 --> 00:40:35,712 Cambridge, MA, die hoffentlich sich ändern, wird nie. 836 00:40:35,712 --> 00:40:37,670 Und selbst wenn es der Fall ist, es ist minorly ärgerlich, jetzt 837 00:40:37,670 --> 00:40:39,750 dass ich ändern es in mehreren Reihen, 838 00:40:39,750 --> 00:40:43,770 während hier, konnte ich nur ändern Sie es an einem Ort. 839 00:40:43,770 --> 00:40:46,890 >> Nun, was ist der Trade-off, vielleicht? 840 00:40:46,890 --> 00:40:48,020 Das war super bequem. 841 00:40:48,020 --> 00:40:50,730 schön zusammen hatten alle meine Daten. 842 00:40:50,730 --> 00:40:53,644 Aber was ist eindeutig der Fall jetzt? 843 00:40:53,644 --> 00:40:55,684 >> PUBLIKUM: [unverständlich] 844 00:40:55,684 --> 00:40:58,100 DAVID MALAN: Genau, und ich bin froh, verwendet man das Wort kommen, 845 00:40:58,100 --> 00:41:01,320 denn das ist eigentlich das Schlüsselwort, in der Welt der relationalen Datenbanken 846 00:41:01,320 --> 00:41:05,270 in SQL, es ist eine Sie eigentliche Wort vielleicht geben oder zumindest vermitteln. 847 00:41:05,270 --> 00:41:09,280 Und in der Tat, was wir jetzt tun auszuwählen David vollständigen Informationen 848 00:41:09,280 --> 00:41:19,700 so etwas wie select-Star aus Benutzer, verbinden Städte, on-- und jetzt 849 00:41:19,700 --> 00:41:24,010 Ich werde nur zu einer zweiten Linie bewegen so dass dieser fits-- users.zip gleich 850 00:41:24,010 --> 00:41:34,570 cities.zip, wo users.ID 1 entspricht. 851 00:41:34,570 --> 00:41:35,550 >> So was ist los? 852 00:41:35,550 --> 00:41:38,970 Es ist hässlich suchen, aber Sie können Art lesen Sie es nach rechts, von oben nach links unten. 853 00:41:38,970 --> 00:41:41,030 Wählen Stern von den Benutzern ist nach wie vor der gleiche, 854 00:41:41,030 --> 00:41:42,930 aber es ist nicht von den Benutzern, per se. 855 00:41:42,930 --> 00:41:45,910 Es ist von den Benutzern Städten verbinden. 856 00:41:45,910 --> 00:41:48,520 Was bin ich Beitritt dieser beiden Tabellen auf? 857 00:41:48,520 --> 00:41:51,820 Nun, offenbar, die Benutzer Tabellen zip Feld, 858 00:41:51,820 --> 00:41:54,810 und diese Zeit ist nur spezielle Syntax, die Idee zum Ausdruck bringen, 859 00:41:54,810 --> 00:41:58,130 und dies ist die Städte Tabellen Feld zip. 860 00:41:58,130 --> 00:42:01,580 Ich möchte die beiden gleich zu sein, aber ich möchte schließlich wählen 861 00:42:01,580 --> 00:42:06,280 nur die Zeilen, in denen ID in der Tabelle users 862 00:42:06,280 --> 00:42:08,730 gleich 1 ist, was mein sein passiert ist. 863 00:42:08,730 --> 00:42:11,781 >> Und nur klar zu sein, ein Programmierer, in der Regel, wenn 864 00:42:11,781 --> 00:42:14,780 hard so etwas wie die Zahl 1, weil sonst die Website nur 865 00:42:14,780 --> 00:42:17,630 unterstützt David oder die erste Benutzer, Sie 866 00:42:17,630 --> 00:42:20,720 stattdessen tun so etwas wie Identifikation, wo 867 00:42:20,720 --> 00:42:22,510 Dies stellt eine Variable, etwas das 868 00:42:22,510 --> 00:42:26,210 wechseln kann Zeit, ähnlich im Geiste zu dem, was ich vorhin sagte, 869 00:42:26,210 --> 00:42:28,080 mit dieser Art von Platzhalter. 870 00:42:28,080 --> 00:42:30,396 Aber jetzt werden wir hart codieren es genauso wie 1. 871 00:42:30,396 --> 00:42:31,520 Und was bedeutet das? 872 00:42:31,520 --> 00:42:35,100 Nun, ein schöner Weg, dies zu visualisieren, ist dass, wenn diese Hand ist die Benutzer-Tabelle, 873 00:42:35,100 --> 00:42:38,090 und diese Hand ist die Reißverschlüsse Tisch, wir sind eine Art finding-- 874 00:42:38,090 --> 00:42:41,330 und die Fingerspitzen sind zip hier, und die Fingerspitzen 875 00:42:41,330 --> 00:42:43,740 hier sind zip, du bist Art es von ineinandergreif 876 00:42:43,740 --> 00:42:47,950 so dass Sie die resultierende zurück Original-Tabelle, die von wirklich Beitritt 877 00:42:47,950 --> 00:42:49,590 die beiden Tabellen auf dem gemeinsamen Feld. 878 00:42:49,590 --> 00:42:50,840 Und es muss nicht zip sein. 879 00:42:50,840 --> 00:42:54,460 Es könnte die meisten etwas anderes sein, aber zip ist schön, weil man, es ist kurz, 880 00:42:54,460 --> 00:42:56,470 zwei, es ist immer das gleiche Länge, so dass es 881 00:42:56,470 --> 00:43:02,270 eine wirkliche Effizienz zu dem, was Olivier hier vorgeschlagene 882 00:43:02,270 --> 00:43:05,200 mit Factoring die Zip-out, und [Unverständlich] schlägt vor, dass wir loswerden 883 00:43:05,200 --> 00:43:07,110 von Stadt und Staaten. 884 00:43:07,110 --> 00:43:11,370 >> Das ist also der Prozess bekannt als Normalisierung. 885 00:43:11,370 --> 00:43:14,171 Haben Sie Fragen dazu? 886 00:43:14,171 --> 00:43:16,170 Nun lassen Sie mich darauf hinweisen, dies ist die Art von Sachen, 887 00:43:16,170 --> 00:43:19,202 obwohl es ziemlich Low-Level ist, diese Diskussion, die Sie würden denken, 888 00:43:19,202 --> 00:43:20,910 Sie Art bekommen in das Unkraut verloren, 889 00:43:20,910 --> 00:43:26,690 dies ist eine Manifestation der reichlichen Möglichkeit für Entwickler, schlecht zu sein. 890 00:43:26,690 --> 00:43:29,600 Und in der Tat, auch wenn wir in Kurse, die ich unterrichtet habe, als wir gehabt haben, 891 00:43:29,600 --> 00:43:32,290 zum Beispiel, unerfahren Bachelor-Programmierer 892 00:43:32,290 --> 00:43:35,920 Build-Websites, auf den ersten Blick, die Webseiten, könnte grandios aussehen. 893 00:43:35,920 --> 00:43:38,280 Und sie haben alle die Funktionalität, die wir angefordert, 894 00:43:38,280 --> 00:43:40,650 Die Entwickler haben gute Arbeit geleistet. 895 00:43:40,650 --> 00:43:43,370 >> Aber sie wussten nicht notwendigerweise genug über Datenbank-Design 896 00:43:43,370 --> 00:43:46,680 oder sie denken, nicht hart genug über die Typen von Daten 897 00:43:46,680 --> 00:43:49,220 und die Typen von Benutzern der Website wurde zu haben,, 898 00:43:49,220 --> 00:43:53,240 und wir finden, dann sechs Monate später, nachdem sie auf abgestufte oder verschoben haben, 899 00:43:53,240 --> 00:43:56,016 dass verdammt, unsere Website wirklich ist, wirklich langsam. 900 00:43:56,016 --> 00:43:58,890 Und ich spreche nicht einmal darüber, dass Millionen oder Tausende von Benutzern. 901 00:43:58,890 --> 00:44:02,580 Ich meine, ein paar hundert Benutzer auf dem Campus, von denen alle gern, zum Beispiel, 902 00:44:02,580 --> 00:44:04,870 Shop für Kurse an Zur gleichen Zeit, sie sind 903 00:44:04,870 --> 00:44:07,010 mit dem Kurskatalog Anwendung, die ich erwähnt 904 00:44:07,010 --> 00:44:10,410 und die Sache wird immer wirklich langsam, weil es keine Indizes waren. 905 00:44:10,410 --> 00:44:13,740 Es gab keine rote Sterne, so zu sprechen, oder wir hatten nicht unbedingt 906 00:44:13,740 --> 00:44:17,690 herausgerechnet gemeinsame Daten einige Einsparungen von Raum zu bekommen. 907 00:44:17,690 --> 00:44:21,880 >> Und so, wenn vetting einen Entwickler oder Datenbank Person oder dergleichen, 908 00:44:21,880 --> 00:44:25,864 die Arten von Fragen zu durchdenken auch das ist, wenn jemand den Code überprüft, 909 00:44:25,864 --> 00:44:28,530 zu sagen, die nicht unbedingt aussehen durch all ihren Code, aber sagen, 910 00:44:28,530 --> 00:44:30,154 Lassen Sie uns die Datenbanktabellen schauen. 911 00:44:30,154 --> 00:44:31,150 Was Speichern Sie? 912 00:44:31,150 --> 00:44:33,941 Und dann zu sagen, na ja, warten ein Minute, warum verwenden Sie eine ganze Zahl? 913 00:44:33,941 --> 00:44:36,224 Was ist, wenn wir haben 4 Milliarden und 1 dieser Reihen? 914 00:44:36,224 --> 00:44:38,140 Und diese Arten von Fragen ist eine Chance 915 00:44:38,140 --> 00:44:40,170 Art zurück zu drängen und bekommen ein Gefühl von, wo 916 00:44:40,170 --> 00:44:42,300 wenn Sie sich nicht ganz sicher es, dass jemand mehr technische 917 00:44:42,300 --> 00:44:45,425 diese Fragen stellen, ob oder nicht die Person wirklich kennt ihre Sachen. 918 00:44:45,425 --> 00:44:47,890 Und dies ist die Art von Sachen, auch, dass die Menschen 919 00:44:47,890 --> 00:44:50,540 im Internet, die vielleicht sind Autodidakten, 920 00:44:50,540 --> 00:44:53,920 lernen weniger häufig, da Sie nicht unbedingt über sie kommen 921 00:44:53,920 --> 00:44:56,630 so viel, weil man bekommen kann die Datenbank und läuft, 922 00:44:56,630 --> 00:44:58,880 aber es sei denn, Sie haben gelesen up auf Tutorials oder gewesen 923 00:44:58,880 --> 00:45:01,880 berichtete über Datenbanknormalisierung und Indizierung und Leistung, 924 00:45:01,880 --> 00:45:04,255 Dies sind die Arten von Dingen Das sind gehen Sie zu verletzen. 925 00:45:04,255 --> 00:45:07,480 Und man könnte denken, oder ein schlechter Ingenieur könnte man sagen, oh, na ja, wir bessere Bezahlung 926 00:45:07,480 --> 00:45:09,600 für eine größere Datenbank oder eine schnellere Datenbank 927 00:45:09,600 --> 00:45:13,360 oder einfach nur Geld auf diese werfen, vertikal Skala, die nicht unbedingt so. 928 00:45:13,360 --> 00:45:16,920 Wenn Sie gehen in-- und können Sie gehen in nach den fact-- und fügen Sie Indizes, 929 00:45:16,920 --> 00:45:20,320 und es könnte ein paar Stunden für das nehmen Datenbank zu erstellen, die neuen Daten nach oben 930 00:45:20,320 --> 00:45:24,100 Struktur, die ich bereits angedeutet, Sie können dies noch beheben, nachdem die Tatsache, 931 00:45:24,100 --> 00:45:26,180 dass das ist, wo Sie beginnen zu unterscheiden 932 00:45:26,180 --> 00:45:28,830 gute Designer von schlecht Designer, nicht nur ästhetisch, 933 00:45:28,830 --> 00:45:32,972 aber leistungsmäßig als auch. 934 00:45:32,972 --> 00:45:33,555 Irgendwelche Fragen? 935 00:45:33,555 --> 00:45:36,420 936 00:45:36,420 --> 00:45:37,480 Nein? 937 00:45:37,480 --> 00:45:41,980 Also für NoSQL, die der andere Typ war frühere der Datenbank, auf die hingewiesen I, 938 00:45:41,980 --> 00:45:43,490 Sie haben keine Zeilen und Spalten. 939 00:45:43,490 --> 00:45:47,000 Stattdessen würden Sie etwas haben, das sieht ein wenig mehr davon. 940 00:45:47,000 --> 00:45:48,630 Ich werde gemeinsame Syntax zu verwenden. 941 00:45:48,630 --> 00:45:51,270 Geschweiften Klammern passieren werden hier ziemlich viel verwendet. 942 00:45:51,270 --> 00:45:55,400 Sie könnte etwas wie erste Name ist David, 943 00:45:55,400 --> 00:46:00,180 haben Sie vielleicht letzte Name ist Malan, Zitate, 944 00:46:00,180 --> 00:46:07,530 Sie könnten ID haben ist-- entschuldigen Sie mich, ist whoops-- ID 1, 945 00:46:07,530 --> 00:46:13,410 E-Mail ist malan@harvard.edu, und ich will nicht stören den Rest eingeben, und dann 946 00:46:13,410 --> 00:46:14,380 einige andere Dinge. 947 00:46:14,380 --> 00:46:17,380 >> Mit anderen Worten, dies ist eine Textdarstellung 948 00:46:17,380 --> 00:46:20,720 von dem, was würden wir in der Regel nennen ein Objekt in einem Computerprogramm. 949 00:46:20,720 --> 00:46:26,079 Und ein Objekt ist in der Regel nur eine Sammlung von Schlüsselwert-Paaren. 950 00:46:26,079 --> 00:46:27,370 Also noch einmal, diese wiederkehrendes Thema. 951 00:46:27,370 --> 00:46:30,440 Wir sahen Schlüsselwertepaare in HTML, wir sahen jetzt Schlüssel-Wert-Paare 952 00:46:30,440 --> 00:46:34,020 im Zusammenhang mit Datenbanken und wir sah Schlüsselwert-Paare im Kontext 953 00:46:34,020 --> 00:46:35,970 der, glaube ich, eine Sprache, heute früher. 954 00:46:35,970 --> 00:46:36,890 Hält kommen. 955 00:46:36,890 --> 00:46:39,620 Und in der Tat, das ist wirklich welche Daten läuft darauf hinaus, 956 00:46:39,620 --> 00:46:44,240 Daten und Metadaten oder Werte und Tasten sind. 957 00:46:44,240 --> 00:46:47,430 >> So eine nicht-relationale Datenbank, etwas basierend 958 00:46:47,430 --> 00:46:50,680 auf Objekte, wo man nur verklumpen alles zusammen und steckte es 959 00:46:50,680 --> 00:46:55,640 in den Speicher wäre generell Bild wie, oder dachte, da dies. 960 00:46:55,640 --> 00:47:00,500 Und ich werde das jetzt als verlassen Art alternativer Ansatz. 961 00:47:00,500 --> 00:47:03,750 Und man ist nicht unbedingt besser als das andere. 962 00:47:03,750 --> 00:47:07,310 In der Tat, sehr in Mode in diesen Tagen sind Datenbanksysteme 963 00:47:07,310 --> 00:47:11,942 wie MongoDB und Redis und ein paar andere solche Werkzeuge, frei verfügbar, 964 00:47:11,942 --> 00:47:13,400 aber sie sind immer en vogue. 965 00:47:13,400 --> 00:47:18,850 Zum Teil, weil sie bieten zusätzliche Funktionen über diese tabellarische Ansätze, 966 00:47:18,850 --> 00:47:20,850 sondern auch, weil sie ein wenig einfacher zu bedienen, 967 00:47:20,850 --> 00:47:24,099 denn man muss so hart nicht denken über eine Menge von diesen Design-Entscheidungen. 968 00:47:24,099 --> 00:47:25,970 So Vor- und Nachteile. 969 00:47:25,970 --> 00:47:29,740 So erkennen, dass es gibt Optionen jenseits dessen, was nur wir verbrachten Zeit auf. 970 00:47:29,740 --> 00:47:32,310 >> Also lassen Sie uns dies tun. 971 00:47:32,310 --> 00:47:37,870 Lassen Sie uns ein wenig über jetzt zurück zu Web-Programmierung, 972 00:47:37,870 --> 00:47:40,470 so dass wir Art schließen heute mit etwas 973 00:47:40,470 --> 00:47:43,930 Das ist ein wenig hands-on, Füllung in einigen Lücken von gestern. 974 00:47:43,930 --> 00:47:45,340 Lassen Sie mich an dieser ersten gehen. 975 00:47:45,340 --> 00:47:49,310 So erinnern daran, dass gestern wir hatten einige kanonische HTML 976 00:47:49,310 --> 00:47:55,110 Seiten, die ursprünglich hatte, nur HTML, und dann hatte in zweiter Linie CSS, 977 00:47:55,110 --> 00:47:56,620 Cascading Style Sheets. 978 00:47:56,620 --> 00:47:59,830 Dies ist ein neuer Tag, das wir nicht haben siehe gestern, oder wohnen auf, 979 00:47:59,830 --> 00:48:01,490 Script-Tag so genannte. 980 00:48:01,490 --> 00:48:05,830 >> Stellt sich heraus, Sie tatsächlich einbetten können ein Sprache JavaScript in Ihrem Web genannt 981 00:48:05,830 --> 00:48:08,310 Seite und machen Sie Ihren Web Seiten etwas tun. 982 00:48:08,310 --> 00:48:09,710 Also, was meine ich damit? 983 00:48:09,710 --> 00:48:12,630 Nun, lassen Sie mich voran gehen und einfach diesen Code für einen Moment ausleihen. 984 00:48:12,630 --> 00:48:15,860 Ich werde in Cloud9 zu gehen, keine Notwendigkeit, es euch zu gehen, nur noch, 985 00:48:15,860 --> 00:48:21,350 und ich werde diese alert.HTML zu nennen. 986 00:48:21,350 --> 00:48:23,650 Ich werde hier in meiner Datei einzufügen. 987 00:48:23,650 --> 00:48:32,070 Und genau zu klären, was ich getan habe, lassen gehen mir an diese Adresse und gehen Sie zu alarmieren, 988 00:48:32,070 --> 00:48:33,870 und Sie sehen die Hallo Welt. 989 00:48:33,870 --> 00:48:35,440 >> Aber dies ist eine Art berauschend. 990 00:48:35,440 --> 00:48:37,410 ich will etwas tun ein wenig anders. 991 00:48:37,410 --> 00:48:40,610 Also, ich werde dies tatsächlich tun. 992 00:48:40,610 --> 00:48:43,820 Ich werde hier e zu gehen, und zwischen meinen Script-Tags, 993 00:48:43,820 --> 00:48:53,460 sagen alert ( 'Hallo Welt!'); so Bekanntmachung es ist ein wenig schlampig, aber ich habe HTML bekam, 994 00:48:53,460 --> 00:48:56,180 in dessen Innerem ein Sprache namens JavaScript, 995 00:48:56,180 --> 00:48:59,420 und das ist, was ein genannt Funktionsaufruf oder Prozeduraufruf. 996 00:48:59,420 --> 00:49:04,500 Dies ist ein Verb, wörtlich: in diesem Fall, und ich bin Aufruf Code Funktionalität 997 00:49:04,500 --> 00:49:06,310 dass jemand anderes geschrieben hat. 998 00:49:06,310 --> 00:49:09,630 >> Damit Funktionalität ist ein Alarm, lassen Sie uns auf dieser Seite so gehen 999 00:49:09,630 --> 00:49:14,046 jetzt und klicken Sie auf Reload, und jetzt sehen ein wenig Interaktivität. 1000 00:49:14,046 --> 00:49:15,420 Es ist eine Art der alten Schule und hässlich. 1001 00:49:15,420 --> 00:49:18,580 Diese Art von erinnert Sie an die Pop-ups, vielleicht von früher 1002 00:49:18,580 --> 00:49:22,030 aber es hat etwas ein tun wenig mehr programmatisch. 1003 00:49:22,030 --> 00:49:26,940 >> Also mehr als das, wir tun etwas interessanter. 1004 00:49:26,940 --> 00:49:30,980 Lassen Sie mich gehen hier in und loszuwerden diese. 1005 00:49:30,980 --> 00:49:33,840 Und ich werde weitermachen und Erstellen Sie ein Formular, wie wir gestern. 1006 00:49:33,840 --> 00:49:34,840 Eigentlich weißt du was? 1007 00:49:34,840 --> 00:49:37,350 Ich werde gehen in google.html, die wir 1008 00:49:37,350 --> 00:49:43,027 begann gestern, das sah aus wie dies, über die wir gesucht für Katze 1009 00:49:43,027 --> 00:49:45,360 Beachten Sie aber, es ist irgendwie ein Fehler in der aktuellen Version. 1010 00:49:45,360 --> 00:49:49,770 Es funktioniert für Katzen, aber annehmen, dass Ich nicht zusammenarbeiten und ich geben nichts, 1011 00:49:49,770 --> 00:49:53,290 und ich klicken Sie auf Absenden einfach. 1012 00:49:53,290 --> 00:49:54,540 Das ist irgendwie seltsame Verhalten. 1013 00:49:54,540 --> 00:49:57,300 Hat mich auf die reale Google, geben Sie mir nicht eine Fehlermeldung. 1014 00:49:57,300 --> 00:50:00,590 Ich möchte den Benutzer zu sagen Sie müssen uns einen Wert zu geben. 1015 00:50:00,590 --> 00:50:01,780 >> Wie könnten wir das tun? 1016 00:50:01,780 --> 00:50:06,790 Nun lassen Sie mich gehen zurück in Cloud9 und lassen Sie mich in die Spitze meiner Seite gehen 1017 00:50:06,790 --> 00:50:11,980 und fügen Sie ein Skript-Tag wie diesem, wo Ich werde einige JavaScript-Code einzugeben. 1018 00:50:11,980 --> 00:50:15,420 Und ich werde folgendes tun. 1019 00:50:15,420 --> 00:50:22,910 Wenn (document.getelementByID-- und Rückruf dass wir über diese vorhin gesprochen haben, 1020 00:50:22,910 --> 00:50:23,960 diese Funktion. 1021 00:50:23,960 --> 00:50:25,310 Welche ID will ich bekommen? 1022 00:50:25,310 --> 00:50:33,050 Ich möchte q zu bekommen, und ich werde sagen wir gleich nichts, wie this-- 1023 00:50:33,050 --> 00:50:38,220 lassen Sie mich eigentlich doppelte Anführungszeichen verwenden nur für consistency-- gleich nichts, 1024 00:50:38,220 --> 00:50:46,650 dann alert ( "Bitte geben Sie eine Abfrage") hier. 1025 00:50:46,650 --> 00:50:49,200 >> So habe ich was zu sein scheint so etwas wie eine Bedingung. 1026 00:50:49,200 --> 00:50:51,410 Wir haben diese allgemeine Idee in Scratch gesehen. 1027 00:50:51,410 --> 00:50:54,240 Es ist wie eine dieser Puzzle Stücke, die so aussah. 1028 00:50:54,240 --> 00:50:55,780 Und was soll ich sagen? 1029 00:50:55,780 --> 00:50:59,520 Nun, hier unten, merke ich bin geht folgendes tun. 1030 00:50:59,520 --> 00:51:02,790 Ich werde diese Form zu geben, Feld nicht nur ein Name von q, die 1031 00:51:02,790 --> 00:51:06,630 ist das, was an Google weitergegeben wird, aber ich bin geht es eine lokale Kennung zu geben, 1032 00:51:06,630 --> 00:51:07,630 auch q genannt. 1033 00:51:07,630 --> 00:51:11,780 Aber ich konnte diese etwas nenne ich will, ich werde es nur einfach zu halten 1034 00:51:11,780 --> 00:51:14,570 und es auch q nennen, nur der Einfachheit halber. 1035 00:51:14,570 --> 00:51:17,650 >> Und jetzt werde ich tun etwas mehr. 1036 00:51:17,650 --> 00:51:22,600 Auf die Formularfelder hier, werde ich hinzufügen, was ein Event-Handler aufgerufen wird. 1037 00:51:22,600 --> 00:51:32,260 Auf vorlegen, will ich rufen eine Funktion namens Validieren. 1038 00:51:32,260 --> 00:51:35,520 Diese gibt es noch nicht, diese Wort oder das Verb Validieren, 1039 00:51:35,520 --> 00:51:38,560 weil das, was ich tun werde hier oben ist jetzt einige Code hinzufügen. 1040 00:51:38,560 --> 00:51:42,200 >> Ich werde Funktion Validate zu sagen. 1041 00:51:42,200 --> 00:51:48,280 Ich werde diese einrücken und andere hinzufügen geschweifte Klammer hier und ein anderes hier. 1042 00:51:48,280 --> 00:51:50,110 Überlegen Sie, was das jetzt tut. 1043 00:51:50,110 --> 00:51:54,210 Ich habe now-- daran denken, wie geschaffen meine eigene Puzzle-Stück, das zuvor nicht 1044 00:51:54,210 --> 00:51:57,440 existieren, und ich habe dieses Rätsel genannt piece das Validieren Puzzleteil. 1045 00:51:57,440 --> 00:52:01,620 Sein Ziel im Leben ist, auszuführen Die vier Codezeilen im Inneren davon. 1046 00:52:01,620 --> 00:52:04,940 >> Wenn document.getElementById so konzeptionell, 1047 00:52:04,940 --> 00:52:09,380 das wird in das Element zu gehen, das HTML-Element, dessen einzigartige 1048 00:52:09,380 --> 00:52:12,930 Idee ist nur q, und dann, obwohl Die Syntax sieht ein wenig seltsam, 1049 00:52:12,930 --> 00:52:16,430 dass gleich gleich bedeutet nur Gleichen. 1050 00:52:16,430 --> 00:52:20,950 Das heißt also, wenn das Element mit dem eindeutige Kennung von q, wenn bekommen, 1051 00:52:20,950 --> 00:52:25,700 keinen Wert hat, entspricht es nur Zitat unquote, nichts drin, 1052 00:52:25,700 --> 00:52:27,170 dann was will ich machen? 1053 00:52:27,170 --> 00:52:29,360 Ich möchte an den Benutzer zu schreien. 1054 00:52:29,360 --> 00:52:31,710 >> Und wir werden nicht ausführlich hier. 1055 00:52:31,710 --> 00:52:32,960 Ich werde als falsch zurück. 1056 00:52:32,960 --> 00:52:34,380 Das ist ein Fehler. 1057 00:52:34,380 --> 00:52:38,746 Else, ich werde wahr zurückzukehren. 1058 00:52:38,746 --> 00:52:40,120 Also entweder hat es funktioniert oder es kam nicht. 1059 00:52:40,120 --> 00:52:41,800 Falsch oder wahr. 1060 00:52:41,800 --> 00:52:47,820 Und jetzt, wenn ich keine Fehler gemacht habe, lassen Sie mich speichern diese und neu laden. 1061 00:52:47,820 --> 00:52:50,940 Und lassen Sie mich nur überprüfen, dass Ich habe in der Tat nicht, machen keine Fehler, 1062 00:52:50,940 --> 00:52:52,690 so dass ich nicht in Verlegenheit bringen mich nicht. 1063 00:52:52,690 --> 00:52:54,240 Mal sehen, ob das funktioniert. 1064 00:52:54,240 --> 00:52:56,930 >> So, jetzt werde ich Katzen zu geben. 1065 00:52:56,930 --> 00:52:59,421 Es funktioniert immer noch, oder die Hälfte arbeitet, zumindest. 1066 00:52:59,421 --> 00:53:02,170 Nun lassen Sie mich erneut zu laden, und jetzt lassen versuchen, mich geben, ohne dass die Eingabe 1067 00:53:02,170 --> 00:53:05,860 anything-- verdammt noch mal, es brach. 1068 00:53:05,860 --> 00:53:06,430 Einen Moment. 1069 00:53:06,430 --> 00:53:09,380 1070 00:53:09,380 --> 00:53:12,660 Lassen Sie mich die Konsole zu öffnen, [Unverständlich] einzuloggen, um die Seite neu zu laden. 1071 00:53:12,660 --> 00:53:13,576 Lassen Sie mich noch einmal versuchen dies. 1072 00:53:13,576 --> 00:53:17,000 1073 00:53:17,000 --> 00:53:17,501 Oh, verdammt. 1074 00:53:17,501 --> 00:53:18,000 Ich habe vergessen. 1075 00:53:18,000 --> 00:53:18,630 Ich habe einen Tippfehler. 1076 00:53:18,630 --> 00:53:20,760 Ich erinnere mich, was es ist. 1077 00:53:20,760 --> 00:53:21,350 .Wert. 1078 00:53:21,350 --> 00:53:27,060 Ich wollte sagen, wenn der Wert q des Elements, dessen ID 1079 00:53:27,060 --> 00:53:29,800 gleich dem, dann an den Benutzer yell. 1080 00:53:29,800 --> 00:53:31,870 >> So, jetzt lassen Sie mich wieder meinen Atem halten. 1081 00:53:31,870 --> 00:53:33,480 Auf geht's. 1082 00:53:33,480 --> 00:53:34,130 Da gehen wir. 1083 00:53:34,130 --> 00:53:35,010 Bitte geben Sie eine Abfrage. 1084 00:53:35,010 --> 00:53:36,840 So ist es lässt mich nicht durch. 1085 00:53:36,840 --> 00:53:40,210 Ich kann mit dieser Art von spielerisch sein, und stattdessen für keinen Wert zu überprüfen, 1086 00:53:40,210 --> 00:53:46,720 Ich kann etwas sagen wie: nicht mehr für Katzen suchen, 1087 00:53:46,720 --> 00:53:51,150 und jetzt können wir mehr spielerisch einfach lassen die Benutzersuche für Hunde, wenn er oder sie 1088 00:53:51,150 --> 00:53:57,490 will, oder wenn ich gehe in hier und Suche für Katzen, jetzt kann ich nicht. 1089 00:53:57,490 --> 00:53:58,690 >> Also, was ist das Mitnehmen hier? 1090 00:53:58,690 --> 00:54:03,010 So ein, haben wir eingeführt in unsere Welt von HTML und CSS, 1091 00:54:03,010 --> 00:54:04,320 Programmierfunktionalität. 1092 00:54:04,320 --> 00:54:06,300 Ich kann eigentlich jetzt Entscheidungen im Code. 1093 00:54:06,300 --> 00:54:10,570 Zuvor alles, was ich tun könnte, ist markieren Textinhalt oder grafischen Inhalt 1094 00:54:10,570 --> 00:54:13,080 und sagen, dass es was zu sehen wie und wo angezeigt werden soll. 1095 00:54:13,080 --> 00:54:16,650 Jetzt kann ich eigentlich fragen Fragen der Web-Seite 1096 00:54:16,650 --> 00:54:20,010 und treffen Entscheidungen auf Basis auf, und fordert den Benutzer 1097 00:54:20,010 --> 00:54:22,780 wenn ich brauche, um ihn oder sie zu schreien. 1098 00:54:22,780 --> 00:54:28,740 >> Also lassen Sie uns versuchen, etwas auf unserem eigenen mit diesem. 1099 00:54:28,740 --> 00:54:33,350 Gehen Sie weiter, lassen Sie mich das nächste Dia öffnen hier, und nur eine Sache hinweisen. 1100 00:54:33,350 --> 00:54:37,250 Genau wie bei CSS, können wir ausklammern unsere JavaScript-Code in eine separate Datei, 1101 00:54:37,250 --> 00:54:40,660 Sie können das gleiche tun, mit JavaScript als mit CSS. 1102 00:54:40,660 --> 00:54:44,520 Und Sie verwenden, dass eine Quelle mit Attribut des Script-Tag. 1103 00:54:44,520 --> 00:54:46,540 Aber wir werden nicht die Dinge jetzt erschweren. 1104 00:54:46,540 --> 00:54:50,440 Stattdessen, wenn könnten Sie nicht gehen, um diese Seite, 1105 00:54:50,440 --> 00:55:02,690 aber-- lassen Sie mich diese um in order-- bewegen zu gehen, wenn Sie könnten, diese Seite hier. 1106 00:55:02,690 --> 00:55:03,592 Diese URL hier. 1107 00:55:03,592 --> 00:55:04,550 Es ist in der heutigen Dias. 1108 00:55:04,550 --> 00:55:07,133 Sie könnten neu zu laden, weil Ich habe ein paar Dinge hinzugefügt. 1109 00:55:07,133 --> 00:55:09,970 1110 00:55:09,970 --> 00:55:13,890 >> Aber gehen Sie dort, wo einige Rätsel erwarten. 1111 00:55:13,890 --> 00:55:16,670 Und das wird uns eine Chance geben, in einem etwas mehr Spaß dabei 1112 00:55:16,670 --> 00:55:20,610 mit etwas JavaScript zu versuchen. 1113 00:55:20,610 --> 00:55:25,505 Und wenn Sie dort sind, Ich werde erklären, was sie erwartet. 1114 00:55:25,505 --> 00:55:47,350 1115 00:55:47,350 --> 00:55:47,850 Erhalten Sie grün. 1116 00:55:47,850 --> 00:56:03,063 1117 00:56:03,063 --> 00:56:03,562 Set blau. 1118 00:56:03,562 --> 00:56:11,030 1119 00:56:11,030 --> 00:56:13,930 Setzt grün, rot einstellt. 1120 00:56:13,930 --> 00:56:19,220 1121 00:56:19,220 --> 00:56:20,220 Hoppla. 1122 00:56:20,220 --> 00:56:22,330 Es tut uns leid. 1123 00:56:22,330 --> 00:56:27,630 >> Dies ist der Umfang unserer Dokumentation für diese Herausforderung. 1124 00:56:27,630 --> 00:56:29,920 Und das wird wie folgt zu arbeiten. 1125 00:56:29,920 --> 00:56:33,340 Also, was Sie zu diesem Thema haben Seite ist eine ganze Reihe 1126 00:56:33,340 --> 00:56:38,024 Bild Puzzles von einem Freund an der Stanford University. 1127 00:56:38,024 --> 00:56:41,190 Also, was Sie hier sehen, ist fast Art einer jener magischen Auges Puzzles, 1128 00:56:41,190 --> 00:56:43,815 aber wenn Sie nur an sie starren, Nichts wird dich herausspringt. 1129 00:56:43,815 --> 00:56:46,000 Vielmehr ist etwas, in diesem Bild versteckt. 1130 00:56:46,000 --> 00:56:47,790 Und es ist in der folgenden Weise versteckt. 1131 00:56:47,790 --> 00:56:51,740 Bilder, wie Sie vielleicht wissen, kann sein bestehend aus nur drei Farben. 1132 00:56:51,740 --> 00:56:53,346 Einige rote, etwas blau, und einige grün. 1133 00:56:53,346 --> 00:56:55,220 Und wir können alle machen den Farben im Regenbogen 1134 00:56:55,220 --> 00:56:57,570 irgendwie durch diese drei Farben zu mischen. 1135 00:56:57,570 --> 00:57:01,940 >> So sieht das meist grün und blau, aber wie Nick hier sagt, 1136 00:57:01,940 --> 00:57:04,060 dieses Eisen Puzzle Bild ist ein Rätsel. 1137 00:57:04,060 --> 00:57:06,780 Es enthält ein Bild etwas bekannt, aber, 1138 00:57:06,780 --> 00:57:08,310 das Bild ist verzerrt. 1139 00:57:08,310 --> 00:57:11,500 Der berühmte Objekt ist in den roten Werten. 1140 00:57:11,500 --> 00:57:13,810 Jedoch die Rotwerte haben alle durch 10 geteilt. 1141 00:57:13,810 --> 00:57:16,230 So dass sie zu klein sind, um einen Faktor von 10. 1142 00:57:16,230 --> 00:57:18,280 Also mit anderen Worten, Nick nahm ein Originalbild, 1143 00:57:18,280 --> 00:57:21,500 und er entsättigt alle des roten davon, 1144 00:57:21,500 --> 00:57:23,850 Absenken der Rotanteil Tinte, wenn man so will, in ihm. 1145 00:57:23,850 --> 00:57:26,060 >> Die blauen und grünen Werte alle sind nur sinnlos, 1146 00:57:26,060 --> 00:57:30,000 Zufallswerte, auch bekannt als Rauschen ausgelegt das reale Bild zu verdunkeln. 1147 00:57:30,000 --> 00:57:32,250 Also, was Nick tat, war er die rote abgemildert und dann 1148 00:57:32,250 --> 00:57:34,380 er warf nur zufällig Mengen von Blau und Grün 1149 00:57:34,380 --> 00:57:37,590 auf dem Bild zu Art obskurer was ist immer noch da eigentlich. 1150 00:57:37,590 --> 00:57:41,089 Sie müssen diese Verzerrungen rückgängig machen das Bild zu enthüllen. 1151 00:57:41,089 --> 00:57:44,255 Zuerst stellen Sie alle blauen und grünen Werte auf Null, sie aus dem Weg zu räumen, 1152 00:57:44,255 --> 00:57:48,700 und Blick auf das Ergebnis. Dann multiplizieren jeweils Rot-Wert von 10, 1153 00:57:48,700 --> 00:57:51,720 Skalierung wieder auf etwa seinen Endwert. 1154 00:57:51,720 --> 00:57:53,035 Was ist das berühmte Objekt? 1155 00:57:53,035 --> 00:57:57,920 >> Also alle von Ihnen haben dieses Rechteck gerade jetzt in Ihrem Browser. 1156 00:57:57,920 --> 00:58:00,830 Und feststellen, dass es einige ist Starter-Code sozusagen. 1157 00:58:00,830 --> 00:58:04,370 Dies ist JavaScript-Code, Nick hat sich für Sie geschrieben. 1158 00:58:04,370 --> 00:58:07,250 Und feststellen, dass es eine Linie in der Mitte, 1159 00:58:07,250 --> 00:58:10,380 beginnt mit einem Schrägstrich Schrägstrich, das ist was ist in der Regel ein Kommentar genannt. 1160 00:58:10,380 --> 00:58:14,660 Es bedeutet, es ist ein Ausdruck für den Programmierer das hat keine funktionelle Bedeutung. 1161 00:58:14,660 --> 00:58:16,520 Es ist nur ein visueller Hinweis auf den Menschen. 1162 00:58:16,520 --> 00:58:18,670 >> So können Sie voran gehen und löschen Sie einfach die Zeile, 1163 00:58:18,670 --> 00:58:22,214 und sein super vorsichtig nicht zu löschen oder irgendetwas anderes zu ändern. 1164 00:58:22,214 --> 00:58:25,130 Und lassen Sie mich gehen Sie einfach durch was dieser Code tut und ich werde es verlassen 1165 00:58:25,130 --> 00:58:28,580 Ihnen das Geheimnis Bild, um herauszufinden. 1166 00:58:28,580 --> 00:58:32,226 Diese erste Linie hier, die ich habe gerade markierte gibt Ihnen die folgenden. 1167 00:58:32,226 --> 00:58:34,100 Auf der linken Seite, Sie haben, was genannt wird 1168 00:58:34,100 --> 00:58:39,140 eine Variable, die Nick willkürlich hat, aber einigermaßen im für Bild genannt. 1169 00:58:39,140 --> 00:58:41,660 Auf der rechten Seite dieses Gleichheitszeichen, 1170 00:58:41,660 --> 00:58:45,240 er sagt, gib mir einen neuen Zitat, unquote "einfaches Bild". 1171 00:58:45,240 --> 00:58:49,680 >> Einfaches Bild, in diesem Zusammenhang ist, was eine Klasse genannt wird, gut, 1172 00:58:49,680 --> 00:58:53,910 es ist ein bisschen wie ein class-- technisch ein prototype-- aber wirklich, 1173 00:58:53,910 --> 00:58:58,000 dies gibt mir ein neues Objekt, deren Inhalt der Datei sind, 1174 00:58:58,000 --> 00:58:59,610 Eisen-puzzle.png. 1175 00:58:59,610 --> 00:59:03,190 In anderen Worten hat Nick geschaffen Diese Vorstellung von einem einfachen Bild 1176 00:59:03,190 --> 00:59:05,920 so dass wir, für die pädagogische Zwecke, mit dem Bild spielen 1177 00:59:05,920 --> 00:59:09,790 und seine Rot zu ändern, Grün und Blau-Werte. 1178 00:59:09,790 --> 00:59:11,750 >> Und wie machen wir das? 1179 00:59:11,750 --> 00:59:15,360 Diese etwas kryptischen Syntax hier ist so etwas wie der Wiederholungsblock 1180 00:59:15,360 --> 00:59:19,140 dass einige von Ihnen gesehen in Scratch früher heute, wo man 10-mal wiederholen. 1181 00:59:19,140 --> 00:59:22,220 In diesem Fall hat Nick nicht eine Zahl wie 10 fest einprogrammiert. 1182 00:59:22,220 --> 00:59:28,020 er ist vielmehr zu sagen, initialisieren eine Variable x auf 0 genannt, 1183 00:59:28,020 --> 00:59:33,180 überprüfen, ob x kleiner als die Breite des Bildes. 1184 00:59:33,180 --> 00:59:38,160 >> Und so mehr richtige zu sein, ist die Bild Variable, bedeutet Punkt in der es gehen 1185 00:59:38,160 --> 00:59:40,900 und erhalten ihre Breite, und dann offen paren, geschlossen 1186 00:59:40,900 --> 00:59:43,687 paren ist nur ein Weg des Programmierers zu sagen, dies ist eine Funktion. 1187 00:59:43,687 --> 00:59:44,520 Dies ist ein Verfahren. 1188 00:59:44,520 --> 00:59:46,430 Dies ist Funktionalität jemand anderes geschrieben hat. 1189 00:59:46,430 --> 00:59:48,570 Verwenden Sie es und geben Sie mir eine Antwort zurück. 1190 00:59:48,570 --> 00:59:53,610 Und dann x ++ ist eine andere Art zu sagen, nachdem Sie dies einmal getan haben, 1191 00:59:53,610 --> 00:59:55,850 erhöhen x um 1. 1192 00:59:55,850 --> 00:59:58,760 In anderen Worten, diese ist ein Weg des Programmierers 1193 00:59:58,760 --> 01:00:05,760 induzieren eine Schleife, die ist gehen iterieren 1194 01:00:05,760 --> 01:00:10,410 alle Spalten in einem Bild. 1195 01:00:10,410 --> 01:00:14,790 >> Ein Bild ist nur ein Netz von dots, Zeilen und Spalten von Punkten. 1196 01:00:14,790 --> 01:00:18,270 Dies ist eine Möglichkeit, das Iterieren über all diese Spalten. 1197 01:00:18,270 --> 01:00:20,770 Und auf der Innenseite, mittlerweile, wir iterieren 1198 01:00:20,770 --> 01:00:24,030 über die Höhen, hier und hier und hier. 1199 01:00:24,030 --> 01:00:29,442 Also das ist nur ein Weg von traipsing ist, fast wie eine alte Schule Schreibmaschine, 1200 01:00:29,442 --> 01:00:32,230 zu gehen, nur über die ganze Bild iterativ. 1201 01:00:32,230 --> 01:00:36,370 Das ist noch nicht ganz vollständig klar, denn jetzt auf den Glauben nehmen Sie nur, 1202 01:00:36,370 --> 01:00:38,880 dass diese drei Linien Code zusammen 1203 01:00:38,880 --> 01:00:43,090 Sie gehen zu lassen, um iterativ aussehen bei jedem Pixel, Dot jedes im Bild. 1204 01:00:43,090 --> 01:00:43,790 >> Was ist ein Pixel? 1205 01:00:43,790 --> 01:00:46,250 Nun, klar zu sein, wenn wir uns bei dem Original und zoomen, 1206 01:00:46,250 --> 01:00:49,060 wenn du deine Augen wirklich auf dem Computer-Bildschirm ist, dass 1207 01:00:49,060 --> 01:00:53,510 nur eine ganze Reihe von Punkten, mehrere Tausend Punkte zusammen dort verpackt. 1208 01:00:53,510 --> 01:00:56,180 Und was sind Sie zu tun? 1209 01:00:56,180 --> 01:00:59,240 Jeder dieser Punkte, eine endgültige Definition, 1210 01:00:59,240 --> 01:01:06,350 ist das Ergebnis dessen, was im allgemeinen ist genannt RGB, rot, grün, blau, die 1211 01:01:06,350 --> 01:01:09,940 wieder werden, kombiniert, um geben Sie eine beliebige Anzahl von Farben. 1212 01:01:09,940 --> 01:01:13,200 >> In der Tat, wenn Sie sich erinnern von vor vielen, vielen Jahren, 1213 01:01:13,200 --> 01:01:17,320 Projektor-Bildschirme, wie diese Dinge haben nicht eine Linse, sondern drei verwendet. 1214 01:01:17,320 --> 01:01:20,700 Einer von ihnen spucken rotes Licht aus, einer der sie ausspucken grünes Licht, einer von ihnen 1215 01:01:20,700 --> 01:01:21,600 ausspucken blaues Licht. 1216 01:01:21,600 --> 01:01:24,391 Und wenn Sie waren in einer Mittelschule wie ich war, wo sie nie waren 1217 01:01:24,391 --> 01:01:27,000 richtig ausgerichtet sind, waren Sie immer beobachtete Geschichte Filme 1218 01:01:27,000 --> 01:01:29,770 dass waren leicht verzerrt, weil die drei Farben waren nicht 1219 01:01:29,770 --> 01:01:30,970 Kombinieren richtig. 1220 01:01:30,970 --> 01:01:36,330 >> Aber es stellt sich heraus, dass jeder von diese Werte Rot, Grün und Blau, 1221 01:01:36,330 --> 01:01:37,980 können eine Reihe mit ihnen verbunden sind. 1222 01:01:37,980 --> 01:01:42,500 Zum Beispiel 0 für Rot bedeutet, dass keine rot, 0 für Grün bedeutet nicht grün, 1223 01:01:42,500 --> 01:01:45,120 und 0 für Blau bedeutet, dass keine blau. 1224 01:01:45,120 --> 01:01:49,403 Also, wenn Sie nicht rot, nicht grün, und kein Blau, welche Farbe haben Sie? 1225 01:01:49,403 --> 01:01:51,009 >> PUBLIKUM: [unverständlich] 1226 01:01:51,009 --> 01:01:52,800 DAVID MALAN: Sie würde so hoffen, es ist weiß. 1227 01:01:52,800 --> 01:01:55,333 Leider ist dies operates-- leid? 1228 01:01:55,333 --> 01:01:56,380 >> PUBLIKUM: [unverständlich] 1229 01:01:56,380 --> 01:01:58,630 DAVID MALAN: Also Sie eigentlich haben schwarze, in diesem Fall. 1230 01:01:58,630 --> 01:02:01,530 Also, wenn Sie keine dieser Farben eingeschaltet, Sie schwarz haben. 1231 01:02:01,530 --> 01:02:06,510 Wenn Sie jedoch haben, lassen Sie uns eine Menge sagen von ihnen, wie viele rote, 255 davon, 1232 01:02:06,510 --> 01:02:10,340 viel Grün, und eine Menge Blau, ist, dass weiß. 1233 01:02:10,340 --> 01:02:12,230 Das sind also die beiden Extreme. 1234 01:02:12,230 --> 01:02:17,460 So nach dieser Logik, wenn ich eine Menge von roten und ohne Grün und kein Blau, 1235 01:02:17,460 --> 01:02:18,485 Welche Farbe ist das? 1236 01:02:18,485 --> 01:02:19,360 PUBLIKUM: [unverständlich] 1237 01:02:19,360 --> 01:02:20,610 DAVID MALAN: Richtig, natürlich. 1238 01:02:20,610 --> 01:02:25,940 Und dann nicht rot, viel grün, nicht blau, und dann 1239 01:02:25,940 --> 01:02:29,590 wenn Sie gut have--, werden wir nur beenden es nur, weil, aber dies ist natürlich 1240 01:02:29,590 --> 01:02:31,350 jetzt ist blau. 1241 01:02:31,350 --> 01:02:33,030 Und jetzt können Sie diese Farben kombinieren. 1242 01:02:33,030 --> 01:02:36,430 Jetzt als beiseite, wenn jemand von euch haben immer einige aktuelle Website-Design gemacht, 1243 01:02:36,430 --> 01:02:38,360 Sie könnte in der Tat siehe Symbole wie diese. 1244 01:02:38,360 --> 01:02:42,030 FFF-- und tatsächlich, es ist wahrscheinlich nicht einmal das. 1245 01:02:42,030 --> 01:02:44,380 Es ist FFFFFF. 1246 01:02:44,380 --> 01:02:48,970 >> Wer jemals F ist und E die gesehen und A through-- so stellt sich heraus, 1247 01:02:48,970 --> 01:02:52,970 wir sprachen gestern über dezimal, und heute Art von etwa dezimal. 1248 01:02:52,970 --> 01:02:54,570 Heute sprachen wir über binär. 1249 01:02:54,570 --> 01:02:59,010 Es stellte sich heraus, ist hexadezimal eine sehr gemeinsame Basissystem bei der Berechnung zu verwenden. 1250 01:02:59,010 --> 01:03:04,960 Binary ist zwei, dezimal 10, ist hex 16. 1251 01:03:04,960 --> 01:03:08,640 Und es stellt sich heraus, wie zu tun Sie zählen in Hexadezimal? 1252 01:03:08,640 --> 01:03:11,620 Null, eins, zwei, drei, vier, fünf, sechs, sieben, acht, 1253 01:03:11,620 --> 01:03:14,730 neun, was tun Sie nach neun? 1254 01:03:14,730 --> 01:03:16,600 Was ist die nächste Zahl? 1255 01:03:16,600 --> 01:03:19,180 Wir haben bereits Null. 1256 01:03:19,180 --> 01:03:20,570 Ich brauche 16 davon. 1257 01:03:20,570 --> 01:03:25,770 Null, eins, zwei, drei, vier, fünf, sechs, sieben, acht, neun, 1258 01:03:25,770 --> 01:03:27,520 Sie brauchen eine willkürliche Konvention. 1259 01:03:27,520 --> 01:03:30,810 >> Und was für die Menschheit beschlossen, einige Zeit vor, dass nach neun kommt der Brief 1260 01:03:30,810 --> 01:03:34,450 A und dann B und dann C. So ist die So zählen Sie in hexadezimal 1261 01:03:34,450 --> 01:03:37,040 null, eins, zwei, drei, vier, fünf, sechs, sieben, acht, neun, 1262 01:03:37,040 --> 01:03:42,880 A, B, C, D, E, F, und das zählt Sie den ganzen Weg, stellt sich heraus, bis 15. 1263 01:03:42,880 --> 01:03:47,850 So Null bis 15 ist Null durch F. Nun, warum ist das wichtig? 1264 01:03:47,850 --> 01:03:51,570 Nun, wenn Sie zwei F ist, das ist, wie Sie 255 auszudrücken. 1265 01:03:51,570 --> 01:03:54,350 >> So lange Geschichte kurz, in die Welt von Photoshop, 1266 01:03:54,350 --> 01:03:57,299 dass Grafik-Design-Software, in der Welt der Web-Entwicklung, 1267 01:03:57,299 --> 01:03:59,590 wo Sie viele Farben haben, natürlich, um mit zu spielen, 1268 01:03:59,590 --> 01:04:02,350 oft Programmierer diejenigen, die in hexadezimal ausdrücken, 1269 01:04:02,350 --> 01:04:05,260 nur weil es dazu neigt, ein wenig einfacher. 1270 01:04:05,260 --> 01:04:07,850 Auch wenn auf den ersten Blick es ist viel komplexer. 1271 01:04:07,850 --> 01:04:11,590 >> So in jedem Fall, das ist wichtig, weil Nick an der Stanford 1272 01:04:11,590 --> 01:04:15,100 hat uns sechs Stücke von Funktionalität gegeben dass Sie, die angehende Programmierer, 1273 01:04:15,100 --> 01:04:17,060 Es wird nun die Möglichkeit, zu verwenden. 1274 01:04:17,060 --> 01:04:19,960 Eingebaut in dieser Web Seite ist sechs Funktionen, 1275 01:04:19,960 --> 01:04:21,820 sechs Verfahren, die Nick schrieb. 1276 01:04:21,820 --> 01:04:26,800 Drei von ihnen finden Sie eine Reihe zu bekommen, ein rotes, ein grünes oder ein Blau-Wert. 1277 01:04:26,800 --> 01:04:28,787 Drei von ihnen werden diesen Wert gesetzt. 1278 01:04:28,787 --> 01:04:30,620 Und diese Unterstrichen nur Platzhalter sind, 1279 01:04:30,620 --> 01:04:32,600 so müssen Sie wissen, was diese sind. 1280 01:04:32,600 --> 01:04:36,240 >> So mit diesen drei Funktionen, die erste dieser Dinge 1281 01:04:36,240 --> 01:04:39,190 wird eine x-Koordinate ist, und die zweite dieser Dinge 1282 01:04:39,190 --> 01:04:40,700 wird ein Y-Koordinate zu sein. 1283 01:04:40,700 --> 01:04:44,650 Mit anderen Worten, der Punkt, der Pixel wollen Sie das Grün zu bekommen, 1284 01:04:44,650 --> 01:04:46,480 Holen Sie sich die Blau, bekommen die Rot. 1285 01:04:46,480 --> 01:04:51,440 Und dann ist hier, das wird sein x, das wird ein y-Wert zu sein, 1286 01:04:51,440 --> 01:04:55,379 und das wird eine Nummer zu sein. 1287 01:04:55,379 --> 01:04:57,170 Also lassen Sie uns das erste tun Zeile dieser zusammen 1288 01:04:57,170 --> 01:05:00,220 und dann werde ich es Ihnen überlassen zu versuchen, den Rest abzuleiten. 1289 01:05:00,220 --> 01:05:03,100 Also nach den Anweisungen auf dieser Seite, wir brauchen 1290 01:05:03,100 --> 01:05:08,960 zu erhöhen, um die rot um den Faktor 10, und wir müssen das Grün zu entfernen 1291 01:05:08,960 --> 01:05:09,930 nehmen und den blauen. 1292 01:05:09,930 --> 01:05:12,410 Fangen wir mit den letzteren Szenarien starten. 1293 01:05:12,410 --> 01:05:17,760 Also, wenn ich will, und ich werde einrücken, indem sie einige Räume verwenden, 1294 01:05:17,760 --> 01:05:22,291 wenn ich will die rot zu setzen, die grüne oder die blaue Wert, 1295 01:05:22,291 --> 01:05:23,540 Ich werde folgendes tun. 1296 01:05:23,540 --> 01:05:31,280 >> Bild, im.setBlue, und dann basierend auf meine Anweisungen hier, 1297 01:05:31,280 --> 01:05:36,700 welche drei Dinge sollte ich jetzt innerhalb von Klammern geben? 1298 01:05:36,700 --> 01:05:41,960 Ich brauche den x-Wert, der y-Wert, und welche Zahl 1299 01:05:41,960 --> 01:05:48,770 sollte ich hier setzen, wenn ich loswerden wollen des blauen, hier auf der Basis dieser Geschichte? 1300 01:05:48,770 --> 01:05:49,630 Nur Null. 1301 01:05:49,630 --> 01:05:52,420 Wenn ich keine blauen wollen, bin ich einfach geht es auf Null zu ändern. 1302 01:05:52,420 --> 01:05:54,465 >> Lassen Sie uns jetzt nur rekapitulieren, was dies tut. 1303 01:05:54,465 --> 01:05:56,970 1304 01:05:56,970 --> 01:06:01,170 Ich habe hier auf dieser zweite und dritte Zeile, 1305 01:06:01,170 --> 01:06:04,080 Ich behauptete, zwei Schleifen, verschachtelte Schleifen, wenn Sie 1306 01:06:04,080 --> 01:06:08,360 wird, dass das gehen, um die Wirkung zu haben Weiterkommen von links nach rechts, 1307 01:06:08,360 --> 01:06:11,590 von oben nach unten über die gesamte Röntgen Werte und alle der y-Werte. 1308 01:06:11,590 --> 01:06:15,167 Weil wieder ein Bild nur ein Raster von Zeilen und Spalten. 1309 01:06:15,167 --> 01:06:17,000 Also das wird erhalten von all den blauen befreien. 1310 01:06:17,000 --> 01:06:18,627 Lassen Sie mich Ihnen in der nächsten Zeile zu verlassen. 1311 01:06:18,627 --> 01:06:20,043 Wie kann ich von all dem Grün los? 1312 01:06:20,043 --> 01:06:23,747 1313 01:06:23,747 --> 01:06:25,140 >> PUBLIKUM: [unverständlich] 1314 01:06:25,140 --> 01:06:26,151 >> DAVID MALAN: Nice. 1315 01:06:26,151 --> 01:06:28,260 >> PUBLIKUM: [unverständlich] 1316 01:06:28,260 --> 01:06:30,850 >> DAVID MALAN: Nice. 1317 01:06:30,850 --> 01:06:36,120 Und ich werde, um es zu vergrößern und nur nehmen Pflege von, dass Sie keine Fehler gemacht habe. 1318 01:06:36,120 --> 01:06:39,390 Und wenn Sie bequem mit dem, was du getan hast, 1319 01:06:39,390 --> 01:06:42,936 gehen Sie vor und klicken Sie auf die Schaltfläche Run / Speichern und sehen, was Sie erhalten. 1320 01:06:42,936 --> 01:06:46,982 1321 01:06:46,982 --> 01:06:48,690 Und wieder haben wir gemacht nur drei Änderungen. 1322 01:06:48,690 --> 01:06:52,130 Wir gelöscht, dass erste Kommentar und ersetzt es 1323 01:06:52,130 --> 01:06:53,575 mit diesen beiden Zeilen Code. 1324 01:06:53,575 --> 01:06:55,742 1325 01:06:55,742 --> 01:06:58,450 Und es ist in Ordnung, wenn Sie treffen müssen der Run / Save-Taste ein paar Mal 1326 01:06:58,450 --> 01:07:01,190 zu beheben etwas. 1327 01:07:01,190 --> 01:07:03,610 >> Und lassen Sie mich heran auch auf meinem Code, so können Sie transkribieren. 1328 01:07:03,610 --> 01:07:04,110 Gut. 1329 01:07:04,110 --> 01:07:08,720 So sehe ich Andrew hat, was scheint ein Fehler zu sein. 1330 01:07:08,720 --> 01:07:11,110 Er hat gerade einen großen schwarzen bekam Rechteck auf seinem Bildschirm. 1331 01:07:11,110 --> 01:07:13,120 Hat jemand haben ein großes schwarzes Rechteck? 1332 01:07:13,120 --> 01:07:13,390 >> PUBLIKUM: Ja. 1333 01:07:13,390 --> 01:07:14,360 >> DAVID MALAN: Große schwarze Rechteck? 1334 01:07:14,360 --> 01:07:16,068 OK, also lassen Sie uns denken über das, was das bedeutet. 1335 01:07:16,068 --> 01:07:20,560 Wir sagten, dass Null, Null, Null, so dass kein Grün, kein Rot, kein Blau, 1336 01:07:20,560 --> 01:07:21,980 wird Ihnen schwarz zu geben. 1337 01:07:21,980 --> 01:07:24,467 Und es stellt sich heraus, dass die meisten unserer Laptops 1338 01:07:24,467 --> 01:07:25,800 haben einfach nicht genug Treue. 1339 01:07:25,800 --> 01:07:27,750 Sie können nicht ganz da sagen es ist tatsächlich etwas. 1340 01:07:27,750 --> 01:07:30,340 Und wenn Sie Art von vielleicht lehnen Ihr Bildschirm nach vorne und hinten, 1341 01:07:30,340 --> 01:07:32,850 vielleicht sehen Sie ein wenig etwas da? 1342 01:07:32,850 --> 01:07:34,820 Vielleicht, eine Art, eine Art? 1343 01:07:34,820 --> 01:07:36,640 Es ist nicht vollkommen schwarz. 1344 01:07:36,640 --> 01:07:38,050 >> PUBLIKUM: [unverständlich] 1345 01:07:38,050 --> 01:07:39,510 >> DAVID MALAN: Spoiler! 1346 01:07:39,510 --> 01:07:42,610 Es gibt dort einige rot, aber erinnern sich aus den Spezifikationen 1347 01:07:42,610 --> 01:07:44,940 des Problems, getönten Nick es nach unten. 1348 01:07:44,940 --> 01:07:47,860 Er entsättigt es etwas, aber nicht den ganzen Weg auf null. 1349 01:07:47,860 --> 01:07:51,670 Also, wenn wir wollen, um die Menge zu vergrößern mich von rot, lassen Sie diesen Trick vorschlagen. 1350 01:07:51,670 --> 01:07:53,750 Lassen Sie mich auf meinem Bildschirm vergrößern. 1351 01:07:53,750 --> 01:07:58,678 Und lassen Sie mich voran gehen und sagen Betrag entspricht im.getRed (x, y). 1352 01:07:58,678 --> 01:08:02,440 1353 01:08:02,440 --> 01:08:05,790 >> Diese Codezeile wird mir geben etwas namens eine Variable. 1354 01:08:05,790 --> 01:08:09,643 Ich habe willkürlich, aber wohl, maßen meine Variable, was genannt wird, 1355 01:08:09,643 --> 01:08:10,143 anscheinend? 1356 01:08:10,143 --> 01:08:13,530 1357 01:08:13,530 --> 01:08:14,340 Menge. 1358 01:08:14,340 --> 01:08:14,980 Gerade Menge. 1359 01:08:14,980 --> 01:08:16,960 Ich konnte es genannt habe was ich will, aber ich bin 1360 01:08:16,960 --> 01:08:19,490 mit dieser anderen Funktion dass ich früher beschrieben 1361 01:08:19,490 --> 01:08:25,359 die Menge der roten bei x Komma y zu erhalten. 1362 01:08:25,359 --> 01:08:27,520 Warum habe ich das getan? 1363 01:08:27,520 --> 01:08:30,004 Was wollen Sie hier zu tun? 1364 01:08:30,004 --> 01:08:32,910 1365 01:08:32,910 --> 01:08:33,619 Sie müssen add-- 1366 01:08:33,619 --> 01:08:34,493 PUBLIKUM: [unverständlich] 1367 01:08:34,493 --> 01:08:36,279 DAVID MALAN: Ja, vielleicht multiplizieren sie mit 10. 1368 01:08:36,279 --> 01:08:38,862 Und wenn Sie nicht wissen, ich bin gehen voran gehen und tun dies. 1369 01:08:38,862 --> 01:08:42,060 Ich gehe voran gehen und sagen wir, ich möchte den Anteil der roten Farbe 1370 01:08:42,060 --> 01:08:46,550 Ich will sein, was auch immer die rot ist, mal 10, 1371 01:08:46,550 --> 01:08:50,330 und der Stern, der Stern auf Tastatur ist the-- nicht x verwenden. 1372 01:08:50,330 --> 01:08:51,569 Verwenden Sie den Stern. 1373 01:08:51,569 --> 01:08:55,350 Das ist, wie Sie die Dinge multiplizieren in den meisten Programmiersprachen. 1374 01:08:55,350 --> 01:08:59,790 >> So nach Kareem Intuition, in dieser Variablen genannt Betrag gespeichert, 1375 01:08:59,790 --> 01:09:03,649 ist, wie viel Rot ich an eine bestimmte Position wollen. 1376 01:09:03,649 --> 01:09:11,500 Wie jetzt, muss ich machen, dass Pixel, das Nummer? 1377 01:09:11,500 --> 01:09:12,859 Sie haben dies bereits zuvor getan. 1378 01:09:12,859 --> 01:09:17,666 Sie legen die grünen und die Blau auf keinen Wert auf Null. 1379 01:09:17,666 --> 01:09:18,540 PUBLIKUM: [unverständlich] 1380 01:09:18,540 --> 01:09:20,040 DAVID MALAN: Ja, gut Sie wollen es nicht bis 10. 1381 01:09:20,040 --> 01:09:21,460 Sie haben bereits die Mathematik hier. 1382 01:09:21,460 --> 01:09:24,779 So werden wir den Wert der rot wurde, die eine geringe Zahl, vermutlich. 1383 01:09:24,779 --> 01:09:26,180 Wir multiplizieren mit 10 auf. 1384 01:09:26,180 --> 01:09:29,139 Was Sie wollen, mit dem zu tun der variable Betrag jetzt? 1385 01:09:29,139 --> 01:09:30,130 >> PUBLIKUM: [unverständlich] 1386 01:09:30,130 --> 01:09:30,880 >> DAVID MALAN: Nice. 1387 01:09:30,880 --> 01:09:34,616 So im.set-- was? 1388 01:09:34,616 --> 01:09:35,640 >> PUBLIKUM: setRed. 1389 01:09:35,640 --> 01:09:39,760 >> DAVID MALAN: setRed, an eine bestimmte Position. 1390 01:09:39,760 --> 01:09:40,260 Ja. 1391 01:09:40,260 --> 01:09:41,200 Und gerade Menge. 1392 01:09:41,200 --> 01:09:44,257 In anderen Worten, eine variable ist eine temporäre Platzhalter 1393 01:09:44,257 --> 01:09:45,840 dass Sie setzen alles, was Sie in wünschen können. 1394 01:09:45,840 --> 01:09:48,680 Wir werden passieren ein Putting Anzahl darin, im Moment. 1395 01:09:48,680 --> 01:09:51,569 Wir haben es multipliziert mit 10, um es zu vergrößern. 1396 01:09:51,569 --> 01:09:56,480 Und jetzt bin ich ersetzen diese Variable wie die dritte Argument, oder Eingabe 1397 01:09:56,480 --> 01:09:57,810 einstellen rot. 1398 01:09:57,810 --> 01:10:00,440 Und so, dass, wenn Sie erfolgreich abgeschlossen werden, und zur Kenntnis nehmen 1399 01:10:00,440 --> 01:10:02,330 der Semikolons und Klammern. 1400 01:10:02,330 --> 01:10:06,290 >> Gehen Sie weiter und klicken Sie auf run / speichern und später erneut, und Sie 1401 01:10:06,290 --> 01:10:10,690 sehen sollte, magisch, was war eigentlich Dort. [? Arwa,?], Was ist da? 1402 01:10:10,690 --> 01:10:16,412 Der Eiffelturm in vollwertiges rot, nicht ganz dunkel. 1403 01:10:16,412 --> 01:10:17,870 es sollte jetzt klar sein, ja? 1404 01:10:17,870 --> 01:10:18,840 OK. 1405 01:10:18,840 --> 01:10:20,215 Und Andrew, nicht mehr Black Box? 1406 01:10:20,215 --> 01:10:21,090 PUBLIKUM: [unverständlich] 1407 01:10:21,090 --> 01:10:22,180 DAVID MALAN: Alles in Ordnung. 1408 01:10:22,180 --> 01:10:23,610 Also werde ich diese halten auf dem Bildschirm. 1409 01:10:23,610 --> 01:10:27,010 Wenn Sie möchten, mit diesem zu spielen später, ich werde dies für Sie neu. 1410 01:10:27,010 --> 01:10:29,140 Aber dieser Code hier genau das tat. 1411 01:10:29,140 --> 01:10:31,460 Warum wir eine nicht andere. 1412 01:10:31,460 --> 01:10:33,880 Lassen Sie mich blättern leicht nach unten. 1413 01:10:33,880 --> 01:10:36,760 >> So in diesem Fall wird der Projektor tun es nicht wirklich gerecht. 1414 01:10:36,760 --> 01:10:40,486 Aber auf Ihren Bildschirmen, haben Sie wahrscheinlich haben eine sehr rot und sehr Blackbox. 1415 01:10:40,486 --> 01:10:42,610 Auch dies ist ein Puzzle, das zeigt etwas berühmt. 1416 01:10:42,610 --> 01:10:44,193 Allerdings hat das Bild verzerrt ist. 1417 01:10:44,193 --> 01:10:47,740 Das wahre Bild, dieses Mal ist in den blauen und grünen Werten. 1418 01:10:47,740 --> 01:10:51,820 Jedoch haben sie alle aufgeteilt durch 20, so sind die Werte sehr klein. 1419 01:10:51,820 --> 01:10:54,660 Die roten Werte sind nur Zufallszahlen, Rauschen. 1420 01:10:54,660 --> 01:10:57,190 Rückgängig diese Verzerrungen das wahre Bild zu offenbaren. 1421 01:10:57,190 --> 01:10:59,200 >> So Nick sagt Ihnen dann, was zu tun ist. 1422 01:10:59,200 --> 01:11:04,290 Legen Sie die roten Werte auf Null, und dann verderben nicht, was es ist. 1423 01:11:04,290 --> 01:11:07,110 Dann multiplizieren Sie den blauen und grüne Werte um 20. 1424 01:11:07,110 --> 01:11:09,820 So ist es fast die elbe Programm wie zuvor, 1425 01:11:09,820 --> 01:11:11,380 aber du bist Umkehr des Prozesses. 1426 01:11:11,380 --> 01:11:13,780 Und ich werde meinen Code setzen aus bevor sie auf dem Bildschirm, falls 1427 01:11:13,780 --> 01:11:16,650 Sie wollen wieder darauf zu verweisen oder spielen weiter mit, dass ein. 1428 01:11:16,650 --> 01:11:18,100 Lassen Sie mich auf, dass zoomen. 1429 01:11:18,100 --> 01:11:21,450 Aber lösen Kupfer Bild Puzzle, Nummer zwei. 1430 01:11:21,450 --> 01:11:37,623 1431 01:11:37,623 --> 01:11:40,580 >> PUBLIKUM: [unverständlich] 1432 01:11:40,580 --> 01:11:44,010 >> DAVID MALAN: OK, so dass dies ein Ich bin Gehen zu geben, wie viele Hinweise nicht. 1433 01:11:44,010 --> 01:11:47,220 Also ich would-- oh, lassen Sie uns sehen, dass Sie hier einen Tippfehler haben. 1434 01:11:47,220 --> 01:11:49,621 Also denken Sie daran, dies hier muss tatsächlich dorthin zu gehen. 1435 01:11:49,621 --> 01:11:52,870 Also, was ich würde vorschlagen, wenn Sie wollen konzentrieren sich auf diese, gibt es die Antwort. 1436 01:11:52,870 --> 01:11:57,060 Wenn Sie möchten, dass zu transkribieren, dass sollte die erste Arbeits bekommen. 1437 01:11:57,060 --> 01:11:59,910 Und dann können Sie verwenden, die als Inspiration für die zweite. 1438 01:11:59,910 --> 01:12:02,230 Nett. 1439 01:12:02,230 --> 01:12:02,730 Gut. 1440 01:12:02,730 --> 01:12:05,430 1441 01:12:05,430 --> 01:12:08,180 >> Und für die Neugierigen, Dies ist ein einfaches Beispiel 1442 01:12:08,180 --> 01:12:11,080 einer Wissenschaft oder eine Kunst genannt Steganographie, 1443 01:12:11,080 --> 01:12:14,100 die Kunst der Informationen in den Bildern versteckt. 1444 01:12:14,100 --> 01:12:16,890 Ein typischer Fall wäre, Bilder sein sehr offen mit Wasserzeichen versehen 1445 01:12:16,890 --> 01:12:19,500 mit einem Logo in der unteren Ecke, aber klar, Sie 1446 01:12:19,500 --> 01:12:22,070 kann viel anspruchsvoller sein darüber und tatsächlich 1447 01:12:22,070 --> 01:12:25,050 verbergen andere Bilder in den Bildern irgendwie mit dieser Technik. 1448 01:12:25,050 --> 01:12:59,890 1449 01:12:59,890 --> 01:13:05,770 >> Nehmen Sie weitere 30 Sekunden und dann werden wir zumindest ankündigen, was Sie sehen sollten. 1450 01:13:05,770 --> 01:13:08,330 Und ich werde die dritte verlassen ein als at-home Übung, 1451 01:13:08,330 --> 01:13:11,353 wenn Sie eher ein möchten Herausforderung an diesem Wochenende. 1452 01:13:11,353 --> 01:13:18,240 1453 01:13:18,240 --> 01:13:20,390 Und ich glaube, Andrew könnte haben sie zuerst bekommen. 1454 01:13:20,390 --> 01:13:22,645 Was ist das zweite Bild, Andrew? 1455 01:13:22,645 --> 01:13:23,920 >> PUBLIKUM: Freiheitsstatue. 1456 01:13:23,920 --> 01:13:28,500 >> DAVID MALAN: Freiheitsstatue wird diesmal die Antwort. 1457 01:13:28,500 --> 01:13:31,140 Also noch einmal, nur ein paar einfache Beispiele, deren Ziel die 1458 01:13:31,140 --> 01:13:35,040 ist, dass Sie ein Gefühl dafür, wie zu geben, wir haben bildliche Scratch übersetzt 1459 01:13:35,040 --> 01:13:40,410 Blöcke ärgerlicher und mehr komplizierten Code, aber alle Ideen 1460 01:13:40,410 --> 01:13:42,980 noch genau gleich sind, wenn auch mit der Einführung 1461 01:13:42,980 --> 01:13:48,380 nun von der Vorstellung einer Variablen, wobei Lage vorübergehend etwas zu speichern. 1462 01:13:48,380 --> 01:13:51,750 >> Lassen Sie uns ein Hands-on, nur schließen Sie jetzt die Punkte 1463 01:13:51,750 --> 01:13:53,880 um etwas mehr der realen Welt. 1464 01:13:53,880 --> 01:13:56,610 Wenn Sie bereit sind, wenn könnten Sie gehen Sie zu dieser URL auf dem Bildschirm. 1465 01:13:56,610 --> 01:14:00,610 Das ist auch in Ihrer Kopie der Dias, developers.google.com/maps~~V. 1466 01:14:00,610 --> 01:14:03,660 Lassen Sie uns tatsächlich etwas tun sozusagen auf dem Netz real, 1467 01:14:03,660 --> 01:14:07,600 unter Verwendung der Google Maps API, oder Programmierschnittstelle, 1468 01:14:07,600 --> 01:14:08,940 auf die folgende Weise. 1469 01:14:08,940 --> 01:14:12,341 >> Google, wie viele Unternehmen, bietet eine Menge freie Funktionalität 1470 01:14:12,341 --> 01:14:14,840 dass Sie verwenden, um zu bauen Ihre eigene interessante Anwendungen. 1471 01:14:14,840 --> 01:14:18,890 In der Tat haben, wenn Sie jemals verwendet Uber ein Taxi oder ein Auto zu bekommen, 1472 01:14:18,890 --> 01:14:21,640 Sie wissen wahrscheinlich, dass Uber hat eine Karte und es zeigt Autos auf sie. 1473 01:14:21,640 --> 01:14:24,870 Das heißt, so gut wie ich kann sagen, Google Maps API. 1474 01:14:24,870 --> 01:14:28,884 Sie sind eigentlich mit Google Maps, aber Uber ist kein Mapping Unternehmen, 1475 01:14:28,884 --> 01:14:31,050 noch würde, dass ein sein besonders interessantes Problem 1476 01:14:31,050 --> 01:14:33,510 zu lösen, oben auf ihre Auto-Service-Problem. 1477 01:14:33,510 --> 01:14:35,510 Und so stehen sie sind, wieder auf den Schultern 1478 01:14:35,510 --> 01:14:37,520 von anderen, Google in diesem Fall. 1479 01:14:37,520 --> 01:14:42,850 So verwenden sie die Google-Karten, aber ihre eigenen Auto-Dienste und andere Funktionen. 1480 01:14:42,850 --> 01:14:47,770 >> So werden wir zu nutzen dies folgendes tun. 1481 01:14:47,770 --> 01:14:50,230 Und wenn ich habe zu schnell gegangen, rufen Sie mich einfach in einem Moment vorbei. 1482 01:14:50,230 --> 01:14:53,500 Glücklich einige der Bild Sachen zu rekapitulieren. 1483 01:14:53,500 --> 01:14:56,290 Sie sollten sich sehen auf einer Seite wie dieser. 1484 01:14:56,290 --> 01:14:58,230 So Googles schön, und sie sind unter den Besten 1485 01:14:58,230 --> 01:15:01,364 der Bereitstellung nicht nur APIs, aber kostenlose APIs, die Sie 1486 01:15:01,364 --> 01:15:02,780 kann mit spielen oder kommerziell zu nutzen. 1487 01:15:02,780 --> 01:15:06,450 Sie fangen Sie an, wenn Ihre Nutzung Lade hoch ist, aber ich ging weiter im Voraus 1488 01:15:06,450 --> 01:15:10,490 und unterzeichnet uns für ein kostenloses Konto dass hoffentlich 10 Computer 1489 01:15:10,490 --> 01:15:12,480 wird disqualifizieren uns nicht plötzlich. 1490 01:15:12,480 --> 01:15:14,320 So hoffentlich Demonstration wird funktionieren. 1491 01:15:14,320 --> 01:15:18,840 >> Und feststellen, dass sie APIs für Android, iOS, Web und Web-Services, 1492 01:15:18,840 --> 01:15:19,620 was auch immer das ist. 1493 01:15:19,620 --> 01:15:20,700 Lassen Sie uns auf Web konzentrieren. 1494 01:15:20,700 --> 01:15:26,560 So klicken Sie auf das rosa Feld, Web und dass hoffentlich zu einer Seite führt Sie, 1495 01:15:26,560 --> 01:15:27,630 Hier. 1496 01:15:27,630 --> 01:15:29,335 Und sie haben eine ganze Reihe von APIs bekam. 1497 01:15:29,335 --> 01:15:31,210 Und es kann etwas sein, auf den ersten Blick überwältigend, 1498 01:15:31,210 --> 01:15:33,000 aber ich werde lenken uns durch das, was wir wollen. 1499 01:15:33,000 --> 01:15:38,500 >> An der Spitze der linken Seite ist die Google Maps JavaScript-API, die JavaScript-API. 1500 01:15:38,500 --> 01:15:40,380 So voran gehen und dass man klicken. 1501 01:15:40,380 --> 01:15:49,360 Und das wird Sie jetzt die Führung folgende Seite, Demos und Beispielcode. 1502 01:15:49,360 --> 01:15:51,190 Lassen Sie mich heran hier. 1503 01:15:51,190 --> 01:15:56,300 Und lassen Sie mich uns nach unten zu-- blättern , wo es heißt Quick-Start-Schritte. 1504 01:15:56,300 --> 01:15:57,970 Ihr Bildschirm sollte wie meine aussehen. 1505 01:15:57,970 --> 01:16:01,130 >> Und es zwei Schritte ist, erhalten einen Schlüssel und Entwicklung beginnen. 1506 01:16:01,130 --> 01:16:04,190 Ich habe bereits Schritt ein für uns, immer einen so genannten Schlüssel. 1507 01:16:04,190 --> 01:16:05,320 Und dies ist eine gemeinsame Idee. 1508 01:16:05,320 --> 01:16:09,210 Ein API-Schlüssel ist in der Regel nur eine große Zufallszahl oder eine Zeichenfolge 1509 01:16:09,210 --> 01:16:11,130 dass Sie sollen in den Code einzufügen, 1510 01:16:11,130 --> 01:16:15,280 so dass Google weiß, wer sind Sie, wenn Sie verwenden ihren Dienst, ihre API. 1511 01:16:15,280 --> 01:16:17,370 Bedeutet nicht, wir sind wird nichts berechnet. 1512 01:16:17,370 --> 01:16:21,030 Und jetzt, klicken Sie statt ein, klicken Sie auf Start zu entwickeln. 1513 01:16:21,030 --> 01:16:25,990 Wenn Sie könnten nur mir Welle über, wenn nicht sicher, wo wir sind. 1514 01:16:25,990 --> 01:16:28,040 >> Also werden wir kratzen nur die Oberfläche, hier aber was 1515 01:16:28,040 --> 01:16:31,000 Ich dachte, wäre überzeugend ist, um tatsächlich alle von uns haben, 1516 01:16:31,000 --> 01:16:34,240 Verwendung von Cloud9 in einem Fenster und dieses Tutorial in einem anderen Fenster, 1517 01:16:34,240 --> 01:16:37,120 lets get tatsächlich unsere eigenen Anwendung und läuft 1518 01:16:37,120 --> 01:16:40,920 dass bettet eine benutzerdefinierte Google Karte in der eigenen Webseite, 1519 01:16:40,920 --> 01:16:43,010 und fügt dann ein oder zwei Funktionen. 1520 01:16:43,010 --> 01:16:45,520 Aber wir werden kratzen nur die Oberfläche dessen, was wir tun können. 1521 01:16:45,520 --> 01:16:47,020 >> Also nur eine schnelle Plausibilitätsprüfung. 1522 01:16:47,020 --> 01:16:49,740 Ist jeder auf dieser Seite, Google Maps JavaScript-API? 1523 01:16:49,740 --> 01:16:50,872 Sollte sagen am Anfang. 1524 01:16:50,872 --> 01:16:53,330 Wir werden nicht gehen durch das Ganze mit allen Mitteln. 1525 01:16:53,330 --> 01:16:58,090 OK, in einem anderen Tab, wenn Sie dies nicht tun haben es offen, geh in Cloud9 1526 01:16:58,090 --> 01:17:03,500 und erhalten Sie sich einfach an eine neue Registerkarte, letztlich. 1527 01:17:03,500 --> 01:17:11,070 Also noch einmal, c9.io von gestern, c9.io, und erstellen Sie einfach eine neue Datei. 1528 01:17:11,070 --> 01:17:13,500 Und gehen Sie vor und Anruf es was auch immer Sie möchten. 1529 01:17:13,500 --> 01:17:16,495 Ich rief meine map.html. 1530 01:17:16,495 --> 01:17:17,870 Nennen Sie es, alles in .html endet. 1531 01:17:17,870 --> 01:17:23,930 1532 01:17:23,930 --> 01:17:26,580 Und Sie sollten rund sein wo ich bin in diesem Prozess 1533 01:17:26,580 --> 01:17:31,470 mit nur einem blinkenden Prompt in einem leeren Reiter namens so etwas wie map.html. 1534 01:17:31,470 --> 01:17:35,808 1535 01:17:35,808 --> 01:17:38,148 Oder Datei, neue Datei dieses Mal. 1536 01:17:38,148 --> 01:17:41,960 1537 01:17:41,960 --> 01:17:48,000 >> Und nun, über die auf Google Maps JavaScript-API, 1538 01:17:48,000 --> 01:17:50,010 wir lesen überspringen durch all dieses Textes. 1539 01:17:50,010 --> 01:17:53,760 Aber beachten Sie, dass hallo Welt in der Tat überall, können Sie es jetzt sehen. 1540 01:17:53,760 --> 01:17:58,020 Hallo Welt hat dieses große bunte Beispiel für eine ganze Reihe von HTML. 1541 01:17:58,020 --> 01:18:03,590 Gehen Sie weiter und kopieren und einfügen, nur dass HTML, so von der doc Typ an der Spitze 1542 01:18:03,590 --> 01:18:08,810 den ganzen Weg bis zum Ende HTML-Tag, gehen und vor allem von dass-- kopieren wieder, 1543 01:18:08,810 --> 01:18:14,430 das ist unter dem Hallo Welt example-- und fügen Sie, dass in Ihrem Cloud9 Registerkarte 1544 01:18:14,430 --> 01:18:17,996 so dass jetzt Ihr Bildschirm schauen grob wie meine sollte. 1545 01:18:17,996 --> 01:18:22,280 1546 01:18:22,280 --> 01:18:24,520 >> Und Sie können es sparen, aber lade es nicht nur noch. 1547 01:18:24,520 --> 01:18:26,290 Lassen Sie uns zuerst einen Blick auf der Code und sehen, ob wir 1548 01:18:26,290 --> 01:18:29,110 kann nicht geschlossen werden oder lernen von dem, was es ist Google 1549 01:18:29,110 --> 01:18:30,860 hatte uns kopieren und einfügen blind. 1550 01:18:30,860 --> 01:18:33,334 Sie wollen nur helfen, wahrsten Sinne des Wortes, erhalten wir begonnen, 1551 01:18:33,334 --> 01:18:35,500 aber es gibt nicht so viel tatsächlich gibt Komplexität. 1552 01:18:35,500 --> 01:18:40,100 1553 01:18:40,100 --> 01:18:42,210 Haben Sie Fragen nur noch? 1554 01:18:42,210 --> 01:18:43,790 Wir sind sicher die Zukunft zu schmieden? 1555 01:18:43,790 --> 01:18:44,330 OK. 1556 01:18:44,330 --> 01:18:46,800 >> So schnell, lass uns einfach tun einige schnelle Plausibilitätsprüfungen. 1557 01:18:46,800 --> 01:18:48,800 Linie ein von dem, was ich zu sehen, und hoffentlich Sie 1558 01:18:48,800 --> 01:18:51,710 zu sehen, was bedeutet das, Doctype HTML? 1559 01:18:51,710 --> 01:18:52,385 Kareem, erinnern? 1560 01:18:52,385 --> 01:18:53,260 PUBLIKUM: [unverständlich] 1561 01:18:53,260 --> 01:18:53,968 DAVID MALAN: Ja. 1562 01:18:53,968 --> 01:18:54,870 Hier kommt HTML 5. 1563 01:18:54,870 --> 01:18:57,950 Inzwischen Linie zwei auf der Bildschirm bedeutet hier hey Browser, 1564 01:18:57,950 --> 01:18:59,482 hier kommt die eigentliche HTML. 1565 01:18:59,482 --> 01:19:01,440 Zeile drei ist hey-Browser, hier kommt der Kopf. 1566 01:19:01,440 --> 01:19:04,260 Linie vier ist natürlich, hey Browser, hier kommt der Titel. 1567 01:19:04,260 --> 01:19:07,780 Was bedeutet Linie fünf zu tun? 1568 01:19:07,780 --> 01:19:09,930 Tatsächlich ist dies nicht alles tun, für uns wirklich. 1569 01:19:09,930 --> 01:19:13,340 In diesem Fall ändert die Größe es einfach die Seite auf einen Standard. Linie sechs, 1570 01:19:13,340 --> 01:19:16,140 wir haben nicht darüber gesprochen, aber es gibt die Zeichenkodierung. 1571 01:19:16,140 --> 01:19:19,181 Es gibt verschiedene Möglichkeiten, um Dateien zu kodieren, besonders für Fremdsprachen. 1572 01:19:19,181 --> 01:19:21,100 UTF-8 neigt dazu, nur die Standard zu sein. 1573 01:19:21,100 --> 01:19:26,580 >> So, jetzt werden wir in Zeile sehen sieben bis 16, einige CSS. 1574 01:19:26,580 --> 01:19:29,260 Und obwohl wir haben nicht gesehen all diese Dinge vor, 1575 01:19:29,260 --> 01:19:30,810 wir können Art schließen. 1576 01:19:30,810 --> 01:19:37,075 So säumen acht Mittel, hey Browser gelten alle folgenden, auf die zwei Tags, 1577 01:19:37,075 --> 01:19:37,575 anscheinend? 1578 01:19:37,575 --> 01:19:40,650 1579 01:19:40,650 --> 01:19:41,701 Der HTML-und Textkörper. 1580 01:19:41,701 --> 01:19:43,200 So ist das Komma das neue Ding da. 1581 01:19:43,200 --> 01:19:46,140 Und das ist nur eine Möglichkeit, Angabe auf einmal mehrere Tags. 1582 01:19:46,140 --> 01:19:47,640 >> Dann haben wir die geschweiften Klammern bekam. 1583 01:19:47,640 --> 01:19:51,170 So offensichtlich, sagt dies den Browser, machen die Höhe der Seite 100%. 1584 01:19:51,170 --> 01:19:54,170 Also selbst wenn es sehr wenig ist Inhalt, machen die ganze Seite, 1585 01:19:54,170 --> 01:19:55,530 machen die Sache, um die Seite zu füllen. 1586 01:19:55,530 --> 01:19:57,524 Machen Sie die Karte schließlich die Seite zu füllen. 1587 01:19:57,524 --> 01:19:58,690 Margin, was bedeutet das? 1588 01:19:58,690 --> 01:20:01,559 Das ist in der Regel wie willkürlich Leerraum an den Rändern 1589 01:20:01,559 --> 01:20:04,350 dass einige Browser-Designer nur entschied, dass es sein sollte, weil es 1590 01:20:04,350 --> 01:20:05,540 Art macht die Dinge aussehen sauberer. 1591 01:20:05,540 --> 01:20:06,498 Aber wir wollen nicht, dass. 1592 01:20:06,498 --> 01:20:08,710 Wir wollen, dass die Karte gehen den ganzen Weg bis zu den Rändern. 1593 01:20:08,710 --> 01:20:10,930 Padding, im Geiste auf die Margen. 1594 01:20:10,930 --> 01:20:14,980 Die Margen bedeuten außen, padding Mittel nach innen, aber es ist die gleiche Art von Geschäft. 1595 01:20:14,980 --> 01:20:17,520 Es ist ein bisschen ein Puffer zwischen Ihnen und den Rändern. 1596 01:20:17,520 --> 01:20:21,170 >> Und dann Linie 13 ist eine gute Chance für eine schnelle Überprüfung. 1597 01:20:21,170 --> 01:20:26,440 Was tut scharfe Zeichenkarte bedeuten, oder Hashtag Karte bedeuten? 1598 01:20:26,440 --> 01:20:29,650 Worauf bezieht sich das auf im Prinzip? 1599 01:20:29,650 --> 01:20:31,485 >> PUBLIKUM: [unverständlich] 1600 01:20:31,485 --> 01:20:32,360 DAVID MALAN: Genau. 1601 01:20:32,360 --> 01:20:36,900 Diese Eigenschaft, diese CSS-Eigenschaft gilt für nur eine Sache, die HTML-Tag 1602 01:20:36,900 --> 01:20:41,180 das hat eine ID-Zitat, unquote "Karte". 1603 01:20:41,180 --> 01:20:44,460 Und jetzt schnell nach vorne lassen Sie uns, blättern bis zum Ende der Datei, die 1604 01:20:44,460 --> 01:20:49,860 ist auch nicht weit entfernt, und Mitteilung auf der Leitung 19, wenn Sie fügen Sie ihn genau wie ich es tat, 1605 01:20:49,860 --> 01:20:53,405 Zeile 19 hat nur ein div, die a Teilung der Seite, die ich gestern 1606 01:20:53,405 --> 01:20:54,820 ein rechteckiger Bereich genannt. 1607 01:20:54,820 --> 01:20:55,820 Es ist nichts in es. 1608 01:20:55,820 --> 01:20:57,550 Es ist ein offenes Tag, in der Nähe Tag. 1609 01:20:57,550 --> 01:20:59,490 Aber es muss eine eindeutige ID. 1610 01:20:59,490 --> 01:21:02,090 >> Also, was zu sein scheint hier geschieht, ist Google 1611 01:21:02,090 --> 01:21:05,880 unsere Web-Seite zu readying haben eine komplette 100% Höhe, 1612 01:21:05,880 --> 01:21:09,680 und keine Polsterung, keine Ränder, weil was wir gehen nach innen zu setzen 1613 01:21:09,680 --> 01:21:13,647 dieses div, deren eindeutige ID Karte, ist eine tatsächliche eingebetteten Karte. 1614 01:21:13,647 --> 01:21:15,480 Und wir wollen, dass es zu füllen die Seite und nicht nur 1615 01:21:15,480 --> 01:21:17,560 einige kleine Rechteck in der Mitte sein. 1616 01:21:17,560 --> 01:21:24,220 So 14 Linie betont ähnlich, die Karte selbst eine Höhe von 100% aufweisen sollte. 1617 01:21:24,220 --> 01:21:29,220 >> So bemerken nun zwischen den Linien 20 und 28 ist dieser JavaScript-Code. 1618 01:21:29,220 --> 01:21:33,020 Und dies, obwohl es syntaktisch ein wenig seltsam, 1619 01:21:33,020 --> 01:21:34,730 es ist alles nicht so viel los hier. 1620 01:21:34,730 --> 01:21:39,310 In Zeile 21 wird dies erklärt etwas namens eine Variable. 1621 01:21:39,310 --> 01:21:42,030 Anstatt ihn anrufen beträgt, wie wir zuvor, 1622 01:21:42,030 --> 01:21:44,500 wir genauer sagen var, die Variable nur bedeutet. 1623 01:21:44,500 --> 01:21:46,520 Wir haben könnte, dass verwendet in Nicks Code, aber er tat es nicht, so dass ich 1624 01:21:46,520 --> 01:21:48,190 störte es auch nicht tun. 1625 01:21:48,190 --> 01:21:50,240 Es ist eine Variable mit dem Namen Karte, und dann ist da 1626 01:21:50,240 --> 01:21:53,360 eine Funktion, die ist anscheinend initMap genannt. 1627 01:21:53,360 --> 01:21:55,780 >> Also das ist wie unsere eigene Puzzle-Stück in Scratch. 1628 01:21:55,780 --> 01:21:58,830 Wir haben ein Stück geschaffen Funktionalität namens initMap, 1629 01:21:58,830 --> 01:22:00,980 und Sie können Art schließen was ist denn hier los. 1630 01:22:00,980 --> 01:22:02,930 Auf der linken Seite, wir haben eine Variable bekam, 1631 01:22:02,930 --> 01:22:06,000 so werden wir die folgenden zu setzen Ding in dieser Variablen, 1632 01:22:06,000 --> 01:22:07,362 von rechts nach links. 1633 01:22:07,362 --> 01:22:11,940 Die rechte Seite sagt, hey Browser, geben Sie mir ein neues Google-Karte. 1634 01:22:11,940 --> 01:22:16,490 Und google.maps.Map ist nur eine flippige Weise, der angibt, dass diese Funktionalität 1635 01:22:16,490 --> 01:22:19,790 gehört zu Google Maps. 1636 01:22:19,790 --> 01:22:23,010 >> Nach den Klammern haben wir gesehen, dies vor, hey-Browser erhalten 1637 01:22:23,010 --> 01:22:29,210 mir die Elemente auf der Seite, die Tag in der Seite, deren eindeutige ID ist-- 1638 01:22:29,210 --> 01:22:30,710 >> PUBLIKUM: [unverständlich] 1639 01:22:30,710 --> 01:22:31,790 >> DAVID MALAN: --map. 1640 01:22:31,790 --> 01:22:35,770 Und, was los ist, na ja, diese Linie zusammen, Zeile 23, 1641 01:22:35,770 --> 01:22:38,630 sagt im Wesentlichen, hey-Browser, gehen mir bekommen 1642 01:22:38,630 --> 01:22:42,800 dass leere div auf der Seite deren eindeutige ID Karte, 1643 01:22:42,800 --> 01:22:45,600 denn ich möchte einfügen in es-- hinein zu injizieren, 1644 01:22:45,600 --> 01:22:49,520 wenn Sie will-- eine ganze Reihe von Inhalten das geschieht aus dem Web zu kommen, 1645 01:22:49,520 --> 01:22:50,427 anschließend. 1646 01:22:50,427 --> 01:22:52,010 Und Googles für uns alle, das zu tun. 1647 01:22:52,010 --> 01:22:55,350 >> Also noch einmal, ganz am Ende des Tages, Wir haben dieses Beispiel der Abstraktion. 1648 01:22:55,350 --> 01:22:58,610 Ich habe keine Ahnung, was eine Karte ist oder wie man eine Karte API zu implementieren. 1649 01:22:58,610 --> 01:22:59,460 Wir brauchen nicht zu. 1650 01:22:59,460 --> 01:23:02,740 Wir müssen nur die Karte zu sagen, wohin mit sich, und lassen Sie 1651 01:23:02,740 --> 01:23:04,880 diejenigen zugrunde liegende Implementierung Details zu Google. 1652 01:23:04,880 --> 01:23:08,190 Nun gibt es offenbar zwei Daten 1653 01:23:08,190 --> 01:23:11,940 dass dieses Beispiel ist Bereitstellung von Google-API. 1654 01:23:11,940 --> 01:23:16,450 Anscheinend ist das Zentrum der Karte, und die Zoomstufe, sozusagen. 1655 01:23:16,450 --> 01:23:21,390 >> Und erkennt jemand diese Koordinaten, Breite und Länge? 1656 01:23:21,390 --> 01:23:24,364 Wahrscheinlich nicht, aber wir gehen zurück zum Tutorial zu sehen, buchstäblich. 1657 01:23:24,364 --> 01:23:25,780 Aber wir werden es in nur einem Augenblick zu sehen. 1658 01:23:25,780 --> 01:23:29,880 Zoom-Ebene ist ein Wert zwischen, ich weiß nicht wissen, eine in 13 oder so ähnlich. 1659 01:23:29,880 --> 01:23:32,880 Es muss nur mit dem zu tun, wie weit du bist gezoomt oder zu verkleinern, und das ist es. 1660 01:23:32,880 --> 01:23:35,690 Und nun ganz am Ende die Seite, Ankündigung Linie 29-- 1661 01:23:35,690 --> 01:23:39,960 es ist ein wenig hässlich, weil es wraps-- diese Codezeile 1662 01:23:39,960 --> 01:23:44,570 ist, was zu den Downloads Browser von Google tatsächlichen API. 1663 01:23:44,570 --> 01:23:47,500 Alle der Code, der von Google Ingenieure haben geschrieben, dass implementieren 1664 01:23:47,500 --> 01:23:50,000 diese ganze Funktion integrierbarer Karten. 1665 01:23:50,000 --> 01:23:51,470 >> Nun wollen wir nichts ändern. 1666 01:23:51,470 --> 01:23:54,761 Wenn Sie folgende entlang, gehen Sie voran und speichern nur diese Datei, wenn Sie in der Tat haben 1667 01:23:54,761 --> 01:23:55,760 Was ich habe. 1668 01:23:55,760 --> 01:23:57,370 Gehen Sie zu seiner URL. 1669 01:23:57,370 --> 01:23:59,820 Sie können auf die Schaltfläche Ausführen klicken bis oben, und das wird sagen 1670 01:23:59,820 --> 01:24:03,050 Sie die URL Ihrer Web-Server erneut. 1671 01:24:03,050 --> 01:24:06,010 Und es wird Sie zu einem neuen Tab führen. 1672 01:24:06,010 --> 01:24:11,910 Wenn Sie klicken Sie auf Öffnen für map.html, und Chancen sind, du bist 1673 01:24:11,910 --> 01:24:15,520 Gehen Sie eine Benachrichtigung zu erhalten, eine Fehlermeldung, nicht wahr? 1674 01:24:15,520 --> 01:24:18,570 Fehlermeldung, Fehlermeldung? 1675 01:24:18,570 --> 01:24:21,170 >> Also leider der Fehler Nachricht ist nicht so aufschlussreich 1676 01:24:21,170 --> 01:24:23,890 es sei denn, Sie tatsächlich öffnen Konsole, dass spezielle Registerkarte wir 1677 01:24:23,890 --> 01:24:27,110 Eröffnung gestern gehalten und etwas früher heute. 1678 01:24:27,110 --> 01:24:29,445 Aber ich stolperte über dies früher, so dass ich schon 1679 01:24:29,445 --> 01:24:30,820 herausgefunden, was die Lösung ist. 1680 01:24:30,820 --> 01:24:34,440 In der heutigen Folien oder vielmehr in Cloud9, Bekanntmachung 1681 01:24:34,440 --> 01:24:36,430 dass wir nicht tun absichtlich etwas. 1682 01:24:36,430 --> 01:24:40,690 Beachten Sie, dass dieses Skript-Tag in Zeile 29, wenn man durch sie zu lesen, 1683 01:24:40,690 --> 01:24:44,440 es ist wie maps.googleapis.com/ etwas, etwas, etwas, 1684 01:24:44,440 --> 01:24:46,430 dann merkt man, einer der Entwickler, 1685 01:24:46,430 --> 01:24:50,040 in Groß schrieb Briefe, Ihre API-Schlüssel. 1686 01:24:50,040 --> 01:24:51,700 >> Wir müssen dort etwas einzufügen. 1687 01:24:51,700 --> 01:24:53,450 Und dies war der Schritt Ich habe für uns vor, 1688 01:24:53,450 --> 01:24:57,190 und wieder könnten sie die schwarze Liste Sie uns, wenn plötzlich, 12 oder mehr von uns 1689 01:24:57,190 --> 01:24:59,470 beginnen mit dem gleichen Schlüssel, aber mal sehen, was passiert. 1690 01:24:59,470 --> 01:25:03,030 Also, wenn Sie heute gehen in Dias, eine Folie später, gibt es 1691 01:25:03,030 --> 01:25:07,070 Diese sehr funky aussehenden Text-String. 1692 01:25:07,070 --> 01:25:12,230 Gehen Sie voran und kopieren Sie einfach das und fügen Sie dort Ihre API-Schlüssel sagt. 1693 01:25:12,230 --> 01:25:15,120 Das ist das, was ich für angemeldet. 1694 01:25:15,120 --> 01:25:17,700 >> Und auf jeden Fall versuchen Sie nicht, Eingabe manuell es aus, 1695 01:25:17,700 --> 01:25:21,210 weil es fühlt sich voll mit Tippfehler, möglicherweise. 1696 01:25:21,210 --> 01:25:23,260 So einfach kopieren und einfügen. 1697 01:25:23,260 --> 01:25:26,090 Und es geht um die Linie zu machen länger, aber jetzt, nur klar zu sein, 1698 01:25:26,090 --> 01:25:29,540 es sollte ein wenig mehr aussehen wie diese, in denen Schlüssel entspricht nicht 1699 01:25:29,540 --> 01:25:32,200 aktiviert bei Ihnen zu schreien. 1700 01:25:32,200 --> 01:25:34,810 Speichern Sie die Seite, gehen Sie zurück auf die andere Registerkarte, neu zu laden, 1701 01:25:34,810 --> 01:25:36,770 und hoffen auf eine Karte, wo zu sehen? 1702 01:25:36,770 --> 01:25:37,790 >> PUBLIKUM: Australien. 1703 01:25:37,790 --> 01:25:38,748 >> DAVID MALAN: Australien. 1704 01:25:38,748 --> 01:25:41,200 So offensichtlich das sind die GPS-Koordinaten von Australien. 1705 01:25:41,200 --> 01:25:44,491 Und lassen Sie mich für einen Moment herumlaufen und helfen, alle, die es nicht ganz ist, 1706 01:25:44,491 --> 01:25:47,729 aber lassen Sie mich schlagen, über Google finden die GPS-Koordinaten von Ihrer eigenen Heimatstadt 1707 01:25:47,729 --> 01:25:48,770 oder Ihre eigenen Heimatland. 1708 01:25:48,770 --> 01:25:51,436 Und wahrscheinlich Google kann diese drehen , oder Wikipedia kann Ihnen sagen. 1709 01:25:51,436 --> 01:25:54,410 Aber wählen Sie zwei verschiedene Werte für Breiten- und Längengrad, 1710 01:25:54,410 --> 01:25:57,530 gehen Sie zurück in und fügen Sie sie, und dann aktualisieren Sie die Seite nach dem Speichern 1711 01:25:57,530 --> 01:26:00,718 und sehen, ob Sie eine haben kann Karte für die eigene Heimatstadt. 1712 01:26:00,718 --> 01:26:04,500 1713 01:26:04,500 --> 01:26:08,042 >> Und wenn Sie fertig sind mit dass das Follow-up challenge-- 1714 01:26:08,042 --> 01:26:11,250 und ich werde ein bisschen weniger Richtung geben, bewusst, so dass man absichtlich 1715 01:26:11,250 --> 01:26:13,791 haben für ein paar zu kämpfen Minuten mit der Dokumentation, 1716 01:26:13,791 --> 01:26:18,740 ändern, um die Karte zu sein, das nicht cartoonish Standard, aber eine Satellitenkarte. 1717 01:26:18,740 --> 01:26:24,600 Sie sehen also tatsächlich Satellit Bilder statt der hübschen Farben. 1718 01:26:24,600 --> 01:26:29,710 >> Und der Hinweis, den ich gebe dir ist die Art der Karte benützen. 1719 01:26:29,710 --> 01:26:33,084 Gehen Sie zurück zu, dass immer begann Seite für Inspiration. 1720 01:26:33,084 --> 01:26:40,599 1721 01:26:40,599 --> 01:26:42,390 Wie Sie vielleicht aufgelesen, wenn Sie schauen, 1722 01:26:42,390 --> 01:26:44,250 es gibt so viele Dinge die du tun kannst. 1723 01:26:44,250 --> 01:26:46,380 Einige von Ihnen haben bereits den Kartentyp geändert. 1724 01:26:46,380 --> 01:26:49,890 Aber Sie können zum Beispiel do--, lassen Sie mich gehen Sie zu etwas, das wir für den Kurs tat 1725 01:26:49,890 --> 01:26:52,050 Ich teach-- maps.cs50.net. 1726 01:26:52,050 --> 01:26:53,470 Einer unserer undergrads tat dies. 1727 01:26:53,470 --> 01:26:58,890 Wir Zentrum unserer Karte über Harvard Yard und Overlay alle diese Gebäudenamen, 1728 01:26:58,890 --> 01:27:01,070 und wir hatten ihn diese hinzufügen. 1729 01:27:01,070 --> 01:27:04,270 Also, wenn ich nach dem gesucht werden soll, zum Beispiel Matthews Hall, 1730 01:27:04,270 --> 01:27:05,730 wir haben ein wenig Drop-Down-Menü. 1731 01:27:05,730 --> 01:27:09,080 Und ich denke, dass er mit Bootstrap, die Bibliothek diskutierten wir für diese früher. 1732 01:27:09,080 --> 01:27:12,190 Und wenn Sie auf Matthews klicken Hall, es sofort 1733 01:27:12,190 --> 01:27:14,790 springt die Karte zu einem bestimmten Lage, und es zeigt, 1734 01:27:14,790 --> 01:27:16,440 Sie ein Bild in diesem kleinen Pop-up. 1735 01:27:16,440 --> 01:27:18,670 >> Aber auch diese kleine Pop-up, wir haben nicht umzusetzen. 1736 01:27:18,670 --> 01:27:27,521 Wenn ich nach unten scrollen auf unserem immer gestartet und suchen Sie nach Info-Fenster, 1737 01:27:27,521 --> 01:27:29,770 Sie werden sehen, dass einige der Funktionen, die Sie sich selbst 1738 01:27:29,770 --> 01:27:31,561 hinzufügen können, wenn auch mit etwas mehr Komplexität, 1739 01:27:31,561 --> 01:27:33,970 ist etwas, das ein Info-Fenster genannt. 1740 01:27:33,970 --> 01:27:37,190 Und wenn ich ein Beispiel klicken hier, und das ist, was Spaß macht, 1741 01:27:37,190 --> 01:27:40,530 Sie können Dinge wie diese tun, voila auf eine Markierung klicken und dann, 1742 01:27:40,530 --> 01:27:42,400 Informationen erscheint. 1743 01:27:42,400 --> 01:27:45,874 >> So haben wir nicht ganz eingeführt genug Features von JavaScript 1744 01:27:45,874 --> 01:27:49,040 malen Sie ein Bild davon, wie genau Draht könnte zusammen all dieses Zeug, 1745 01:27:49,040 --> 01:27:50,706 aber wir haben zerkratzt Art der Oberfläche. 1746 01:27:50,706 --> 01:27:53,140 In der Tat, was gerade tat ich, als Ich habe auf dieser Marker, 1747 01:27:53,140 --> 01:27:55,819 ein Ereignis, eine wurde auslösenden auf Click-Ereignis so genannte. 1748 01:27:55,819 --> 01:27:57,610 Und wir sahen tatsächlich ein Ereignis früher heute, 1749 01:27:57,610 --> 01:28:00,670 die so genannte Veranstaltung einreichen, wenn wir verhindern 1750 01:28:00,670 --> 01:28:02,490 der Benutzer für Katzen zu suchen. 1751 01:28:02,490 --> 01:28:06,560 Deshalb haben wir uns Art gepflückt und choosed aus all diesen verschiedenen Funktionen, 1752 01:28:06,560 --> 01:28:08,990 zu geben Ihnen ein Gefühl, hoffentlich, von dem, was kann man eigentlich 1753 01:28:08,990 --> 01:28:11,000 tun mit ein bisschen mehr Komfort in der Programmierung, 1754 01:28:11,000 --> 01:28:12,587 und völlig freie Ressourcen. 1755 01:28:12,587 --> 01:28:15,856 1756 01:28:15,856 --> 01:28:18,770 >> Irgendwelche Fragen? 1757 01:28:18,770 --> 01:28:19,790 Nein? 1758 01:28:19,790 --> 01:28:22,542 Dies ist Ihre letzte Chance, zumindest heute, an einem Freitag, 1759 01:28:22,542 --> 01:28:25,000 alles von Ihrer Brust zu bekommen so dass Sie gehen hier aus 1760 01:28:25,000 --> 01:28:27,067 zuversichtlich und komfortabel. 1761 01:28:27,067 --> 01:28:27,566 Ja. 1762 01:28:27,566 --> 01:28:29,740 >> PUBLIKUM: Warum nicht Sie fügen eine weitere Sache? 1763 01:28:29,740 --> 01:28:32,720 >> DAVID MALAN: Ach du meine Güte. 1764 01:28:32,720 --> 01:28:35,260 Ich brauche dieses Wochenende ruhen, denke ich. 1765 01:28:35,260 --> 01:28:36,180 Andere Fragen? 1766 01:28:36,180 --> 01:28:37,055 >> PUBLIKUM: [unverständlich] 1767 01:28:37,055 --> 01:28:44,130 1768 01:28:44,130 --> 01:28:46,810 >> DAVID MALAN: Sie can-- in Internet Explorer, Ruhe in Frieden, 1769 01:28:46,810 --> 01:28:49,310 Sie verwendet der Lage sein, VB zu setzen Skript, virtuelle Basic-Skript, 1770 01:28:49,310 --> 01:28:50,643 aber das wirklich nie gefangen. 1771 01:28:50,643 --> 01:28:52,490 So die kurze Antwort ist einfach JavaScript. 1772 01:28:52,490 --> 01:28:55,144 1773 01:28:55,144 --> 01:28:55,810 Andere Fragen? 1774 01:28:55,810 --> 01:28:58,427 1775 01:28:58,427 --> 01:28:59,760 Also gut, gut, lassen Sie mich dies tun. 1776 01:28:59,760 --> 01:29:02,070 Lassen Sie mich außerhalb unserer Kollegen greifen. 1777 01:29:02,070 --> 01:29:04,500 Sie haben einige Auswertung Formulare, die sie wollen, dass jeder 1778 01:29:04,500 --> 01:29:06,310 verbringen Sie ein paar Minuten zu füllen. 1779 01:29:06,310 --> 01:29:08,775 Sie wollen, dass die Form zu sammeln und zu jeder Verzichte, die Sie außerhalb haben könnten. 1780 01:29:08,775 --> 01:29:10,240 Sie werden auch Zertifikate haben. 1781 01:29:10,240 --> 01:29:12,380 Ich vermute, es gibt noch einige außerhalb Snacks. 1782 01:29:12,380 --> 01:29:14,360 Lassen Sie mich diese passieren, und wenn Sie Fragen in der Zwischenzeit, 1783 01:29:14,360 --> 01:29:17,120 Ich werde gehen um mehr individuell und wir können Sie loslegen. 1784 01:29:17,120 --> 01:29:17,879 Ja, sicher. 1785 01:29:17,879 --> 01:29:18,754 PUBLIKUM: [unverständlich] 1786 01:29:18,754 --> 01:29:26,737 1787 01:29:26,737 --> 01:29:28,570 DAVID MALAN: Das ist in der Regel in diesen Tagen wahr. 1788 01:29:28,570 --> 01:29:30,730 Sicherlich mit Web Software, Sie lehnen 1789 01:29:30,730 --> 01:29:32,901 Auf anderen sind Sie entweder ästhetisch mit Dingen 1790 01:29:32,901 --> 01:29:35,400 wie Bootstrap, so tun Sie nicht haben die niedrigen Niveau zu implementieren 1791 01:29:35,400 --> 01:29:37,169 Details von Menüs und Tasten und das alles. 1792 01:29:37,169 --> 01:29:39,210 Sie stützte sich auf jemanden wie Google, so dass Sie 1793 01:29:39,210 --> 01:29:42,050 müssen keine Uber bauen Unternehmen und eine Abbildung von Geschäfts, 1794 01:29:42,050 --> 01:29:44,850 und eine beliebige Anzahl ähnlicher Anwendungen als auch. 1795 01:29:44,850 --> 01:29:46,350 >> In der Tat sind die Anmeldungen beliebt, zu. 1796 01:29:46,350 --> 01:29:48,500 Wenn Sie noch verwendet Spotify oder eine beliebige Anzahl von Websites, 1797 01:29:48,500 --> 01:29:51,210 Sie werden einige melden Sie sich an Websites mit Facebook. 1798 01:29:51,210 --> 01:29:53,350 Also, was ist schön, es sind APIs für Anmeldungen 1799 01:29:53,350 --> 01:29:56,570 heute, so dass Sie nicht haben Ihre eigene Benutzer-Tabelle zu haben, 1800 01:29:56,570 --> 01:29:59,440 und alle Ihre eigene Datenbank notwendigerweise im gleichen Ausmaß. 1801 01:29:59,440 --> 01:30:01,795 Sie können alle tun lassen Facebook dieser Komplexität für Sie. 1802 01:30:01,795 --> 01:30:03,920 So ist es eine aufregende Zeit, ehrlich, in der Programmierung, 1803 01:30:03,920 --> 01:30:07,200 denn es gibt so viele Dritte Dienste, die Sie oben auf zu bauen. 1804 01:30:07,200 --> 01:30:10,890 >> Und wieder, der Preis, den Sie zahlen ist entweder finanzielle oder Ausfallzeiten. 1805 01:30:10,890 --> 01:30:13,750 Wenn Google geht nach unten, so tut Uber, wohl, 1806 01:30:13,750 --> 01:30:15,690 aber vielleicht ist das ein vernünftigen Kompromiss. 1807 01:30:15,690 --> 01:30:18,040 Und wieder, das war eines der Themen, hoffentlich, für die letzten paar Tage, 1808 01:30:18,040 --> 01:30:18,780 ist diese Trade-offs. 1809 01:30:18,780 --> 01:30:20,738 Und selten ist es gehen eine richtige Antwort zu sein. 1810 01:30:20,738 --> 01:30:25,700 Es ist wirklich die bessere von zwei oder mehr Antworten. 1811 01:30:25,700 --> 01:30:26,682 >> Führen Sie diese um. 1812 01:30:26,682 --> 01:30:36,830 1813 01:30:36,830 --> 01:30:41,110 >> Und diese Cloud9 Konten werden auch weiterhin in der Theorie, in Permanenz zu arbeiten. 1814 01:30:41,110 --> 01:30:45,000 Vielleicht finden Sie, wenn Sie ein paar Tage warten oder eine Woche oder mehr zu melden Sie sich bei ihnen zurück, 1815 01:30:45,000 --> 01:30:49,170 Es mag wie ein nehmen oder fünf Minuten zu öffnen zurück, 1816 01:30:49,170 --> 01:30:54,090 aber das ist nur, weil sie setzen sie schlafen auf Ressourcen zu sparen. 1817 01:30:54,090 --> 01:31:10,527