1 00:00:00,000 --> 00:00:05,159 2 00:00:05,159 --> 00:00:09,240 >> DAN ARMENDARIZ: Hallo und willkommen bei a CS50 Seminar über Customizing Cloud 9, 3 00:00:09,240 --> 00:00:11,724 und der CS50 IDE. 4 00:00:11,724 --> 00:00:13,640 Also heute werden wir zu gehen nur ein wenig sprechen 5 00:00:13,640 --> 00:00:16,090 über einige der technischen Informationen, 6 00:00:16,090 --> 00:00:19,380 geht hinter der Architektur von Cloud 9, und wie 7 00:00:19,380 --> 00:00:25,560 haben wir einige der Plug-ins implementiert haben als Teil der Cloud 9 bis CS50 IDE bereitzustellen. 8 00:00:25,560 --> 00:00:28,820 Also lassen Sie uns einfach direkt rechts in und sprechen über Plug-Ins. 9 00:00:28,820 --> 00:00:32,659 >> So Plug-Ins sind wirklich bei der Kern des Cloud 9 Erlebnis. 10 00:00:32,659 --> 00:00:37,590 Cloud 9 ist die zugrunde liegende Technologie dass bietet uns die IDE, 11 00:00:37,590 --> 00:00:42,160 und auch das Terminal-Fenster an die Unterseite, zusammen mit dem workspace-- 12 00:00:42,160 --> 00:00:46,430 die Ubuntu workspace--, dass wir verwenden, um alle unsere Projekte zu kompilieren 13 00:00:46,430 --> 00:00:49,190 und führen unser Problem-Sets, füllen Sie das Problem-Sets. 14 00:00:49,190 --> 00:00:51,820 Aber im Herzen von allen davon, die gesamte Technik 15 00:00:51,820 --> 00:00:54,590 ist wirklich nur ein Haufen von Plug-Ins. 16 00:00:54,590 --> 00:00:58,740 Alles ist ein Plug-in daß modifiziert werden kann, 17 00:00:58,740 --> 00:01:00,710 erweitert, die Sie erstellen können Ihre eigenen Plug-Ins, 18 00:01:00,710 --> 00:01:03,060 Sie können andere zu entfernen Plug-Ins, um wirklich zu verändern 19 00:01:03,060 --> 00:01:07,540 eine ganze Menge von der Funktionalität der bestehenden Cloud 9-IDE. 20 00:01:07,540 --> 00:01:12,040 >> Das ist also eine bestehende Cloud 9 Umfeld. 21 00:01:12,040 --> 00:01:14,750 Das ist wirklich nur die Standard Cloud 9 Umfeld. 22 00:01:14,750 --> 00:01:18,450 Und schauen Sie sich, wie es tatsächlich unterscheidet sich von der CS50 IDE. 23 00:01:18,450 --> 00:01:20,340 Das ist also der CS50 IDE. 24 00:01:20,340 --> 00:01:25,060 Beachten Sie, dass es einige visuelle Veränderungen zwischen der regulären Cloud 9 25 00:01:25,060 --> 00:01:28,000 Umwelt und CS50 IDE. 26 00:01:28,000 --> 00:01:30,010 Genauer gesagt, werden Sie bemerken ein paar Veränderungen. 27 00:01:30,010 --> 00:01:34,201 Zunächst einmal gibt es weniger Menüpunkte zu beginnen. 28 00:01:34,201 --> 00:01:36,200 Es gibt tatsächlich ein Weg, dass Sie das ändern. 29 00:01:36,200 --> 00:01:37,270 Es heißt Simple Mode. 30 00:01:37,270 --> 00:01:40,910 >> Standardmäßig ist die Simple Mode aktiviert ist, und Das vereinfacht einige der Menüpunkte. 31 00:01:40,910 --> 00:01:43,032 Es beseitigt einige der fortgeschritteneren, 32 00:01:43,032 --> 00:01:45,240 denn ehrlich gesagt, eine Menge Studenten, die in kommen 33 00:01:45,240 --> 00:01:48,550 und müssen nicht über einige wissen, der erweiterten Funktionen 34 00:01:48,550 --> 00:01:50,530 nicht überfordert mit einer Reihe von Optionen. 35 00:01:50,530 --> 00:01:55,610 Aber wir bieten die Möglichkeit, nehmen Sie Aus diesen so genannten Stützräder 36 00:01:55,610 --> 00:01:57,360 und entfernen Sie, dass Gerüste, damit die Menschen 37 00:01:57,360 --> 00:02:00,832 kann mehr daran gewöhnt, zu werden Die erweiterten Funktionen der IDE. 38 00:02:00,832 --> 00:02:02,540 Sofort an den Rechts davon gibt es 39 00:02:02,540 --> 00:02:05,435 auch eine Debug-Taste, die in der Standard-Wolke 40 00:02:05,435 --> 00:02:08,199 9 Umfeld heißt einfach laufen. 41 00:02:08,199 --> 00:02:11,990 Aber standardmäßig, die wir eingerichtet haben der Debug-Button in der CS50 IDE 42 00:02:11,990 --> 00:02:15,500 rufen Sie die Debugger, automatisch zu kompilieren den Quellcode, 43 00:02:15,500 --> 00:02:17,940 verbinden Sie den Debugger an der darunterliegenden GDB-- 44 00:02:17,940 --> 00:02:21,430 und seit dem läuft durchzuführen die debugging-- und einige andere Schritte 45 00:02:21,430 --> 00:02:22,580 auch. 46 00:02:22,580 --> 00:02:25,370 Auch das Terminal-Fenster an die very-- oder vielmehr das Terminal 47 00:02:25,370 --> 00:02:29,010 Registerkarte auf der Konsole Abschnitt am Fenster am unteren Rand des Bildschirms, 48 00:02:29,010 --> 00:02:31,004 umbenannt wurde, um einfach Terminal sein. 49 00:02:31,004 --> 00:02:32,837 Während im Standard- Cloud 9 Umfeld 50 00:02:32,837 --> 00:02:35,830 es tatsächlich zeigt die laufende Anwendung. 51 00:02:35,830 --> 00:02:39,140 Auf diese Weise vereinfacht sie, wieder die GUI, nur ein kleines bisschen. 52 00:02:39,140 --> 00:02:42,310 >> Wir haben auch noch ein paar Knöpfe an der oberen rechten Seite des IDE 53 00:02:42,310 --> 00:02:45,740 einige grundlegende Informationen zeigen über den zugrundeliegenden Beispiel. 54 00:02:45,740 --> 00:02:49,700 Und auch wir haben einen entfernt der Optionen auf den Artikel 55 00:02:49,700 --> 00:02:51,730 von der rechten Seite. 56 00:02:51,730 --> 00:02:55,620 Also all das ist nicht implementiert durch Modifizieren unbedingt der Cloud 9 57 00:02:55,620 --> 00:02:58,550 Source-Code, aber statt durch ein paar 58 00:02:58,550 --> 00:03:03,460 von Plug-Ins, die wir umgesetzt haben, im gesamten vergangenen Jahr oder so. 59 00:03:03,460 --> 00:03:08,840 Und Cloud 9 hat gehostet und hat in der CS50-Arbeitsbereich läuft. 60 00:03:08,840 --> 00:03:13,680 Oder besser in den Arbeitsbereichen, die als CS50 IDEs bezeichnet. 61 00:03:13,680 --> 00:03:17,140 >> Also wirklich, das ist der Hauptunterschied zwischen der Cloud 9 und dem CS50 62 00:03:17,140 --> 00:03:18,130 Arbeitsbereiche. 63 00:03:18,130 --> 00:03:21,780 Es gibt auch in der zugrunde liegenden Beispielsweise ist die primäre Änderung 64 00:03:21,780 --> 00:03:25,350 dass wir etwas zu installieren vorkonfigurierte Produkte wie GDB, 65 00:03:25,350 --> 00:03:29,530 und einige andere grundlegende Dinge, die wir haben geschaffen, wie aktualisieren 50, 66 00:03:29,530 --> 00:03:33,310 und ein paar andere Schritte, die machen die ganze Erfahrung ein bisschen mehr 67 00:03:33,310 --> 00:03:34,550 vereinheitlichte. 68 00:03:34,550 --> 00:03:38,520 Aber alles in allem, dies ist nur eine Modifikation eines bestehenden Systems 69 00:03:38,520 --> 00:03:40,979 dass Cloud 9 hat für uns geschaffen. 70 00:03:40,979 --> 00:03:42,770 Was wir zu gehen zeigen, ein wenig später 71 00:03:42,770 --> 00:03:45,920 ist, wie man tatsächlich schaffen ein etwas einfach Plug-in, 72 00:03:45,920 --> 00:03:49,461 ermöglicht es uns, etwas in den Einsatz Menü-System, und öffnen Sie einen Dialog. 73 00:03:49,461 --> 00:03:51,210 Und wenn wir genug Mal werden wir tatsächlich 74 00:03:51,210 --> 00:03:54,210 sehen, wie wir, dass bevöl Dialog mit einigen Informationen 75 00:03:54,210 --> 00:03:56,089 aus dem zugrundeliegenden Beispiel. 76 00:03:56,089 --> 00:03:58,880 Damit wir auf das zu bekommen Punkt, lassen Sie uns zuerst ein wenig sprechen 77 00:03:58,880 --> 00:04:01,740 über die Architektur der Cloud 9. 78 00:04:01,740 --> 00:04:05,290 >> So ist die Art, wie wir es gewohnt sind um die Interaktion mit Cloud 9 79 00:04:05,290 --> 00:04:06,610 ist vollständig durch den Client. 80 00:04:06,610 --> 00:04:10,610 Wir eröffnen einen Web-Browser, wir im CS50.io. Typ 81 00:04:10,610 --> 00:04:14,431 Schließlich haben wir, nach der Authentifizierung, sind mit dem IDE dargestellt. 82 00:04:14,431 --> 00:04:16,180 Aber erkennen, dass es ein paar Schritte 83 00:04:16,180 --> 00:04:18,180 dass tatsächlich bekommen uns zu diesem Punkt. 84 00:04:18,180 --> 00:04:22,390 Das allererste, was ist, dass mein Mandant, der Web-Browser, 85 00:04:22,390 --> 00:04:27,440 Auf Anfrage und nach der Authentifizierung, lädt die GUI und die Plug-ins 86 00:04:27,440 --> 00:04:30,170 von einigen CDN, von einigen Content Delivery Network. 87 00:04:30,170 --> 00:04:32,700 Dies kann ehrlich gesagt überall sein. 88 00:04:32,700 --> 00:04:35,390 >> Und das ist eigentlich getrennte aus dem zugrundeliegenden Beispiel. 89 00:04:35,390 --> 00:04:38,890 Es ist wichtig zu erkennen, dass dies eigentlich nur ein Haufen von statischen Dateien. 90 00:04:38,890 --> 00:04:42,600 Es ist eine Reihe von JavaScript dass aus dem CDN heruntergeladen 91 00:04:42,600 --> 00:04:45,200 auf meiner Web-Browser, und alle von der GUI, die Sie 92 00:04:45,200 --> 00:04:48,460 siehe hier-- dies wirklich key-- alle von der GUI, die Sie hier sehen, 93 00:04:48,460 --> 00:04:50,480 wird auf der Clientseite ausgeführt. 94 00:04:50,480 --> 00:04:53,820 Alles, was Sie sehen, in der Cloud 9 Arbeitsbereich 95 00:04:53,820 --> 00:04:56,010 tatsächlich im Browser ausgeführt. 96 00:04:56,010 --> 00:04:59,950 Und alles, was Sie zu senden entlang der darunterliegenden Instanz 97 00:04:59,950 --> 00:05:04,000 ist mit der Instanz mitgeteilt entlang dieses zweiten separaten Kanal, 98 00:05:04,000 --> 00:05:07,240 und wird dann auf gespeicherte dass docker Instanz. 99 00:05:07,240 --> 00:05:09,660 >> Also der Grund, dass ich sage, dies ist ein Beispiel docker 100 00:05:09,660 --> 00:05:12,650 ist, dass die zugrunde liegende Technologie wird nicht mit virtuellen Maschinen, 101 00:05:12,650 --> 00:05:16,040 sondern wird unter Verwendung einer Technologie namens docker, 102 00:05:16,040 --> 00:05:20,200 die im Grunde allows-- der Nähe Analogie ist eine virtuelle Maschine. 103 00:05:20,200 --> 00:05:24,800 Aber es auf subtile Weise anders ist dadurch gekennzeichnet, dass es 104 00:05:24,800 --> 00:05:28,900 viele Möglichkeiten, um einen Lauf Kombination verschiedener docker 105 00:05:28,900 --> 00:05:30,760 Instanzen auf einer Maschine. 106 00:05:30,760 --> 00:05:34,660 Und sie können sich versponnen werden in sehr schneller Folge. 107 00:05:34,660 --> 00:05:38,920 Es ist nicht ganz so mehr strikte Unterscheidung 108 00:05:38,920 --> 00:05:42,840 zwischen verschiedenen Instanzen docker da es in virtuellen Maschinen, 109 00:05:42,840 --> 00:05:45,730 aber immer noch gibt es eine Menge von Differenzierung und Trennung 110 00:05:45,730 --> 00:05:48,330 zwischen diesen verschiedenen Instanzen. 111 00:05:48,330 --> 00:05:48,830 OK. 112 00:05:48,830 --> 00:05:50,980 So sind die beiden Schritte hier, dass es wichtig zu erkennen, 113 00:05:50,980 --> 00:05:57,370 ist, dass, wenn wir gehen, um CS50.io sind wir Herunterladen der GUI und die Plug-Ins, 114 00:05:57,370 --> 00:06:01,640 die in JavaScript geschrieben werden, an den Browser oder in an den Browser. 115 00:06:01,640 --> 00:06:05,980 Und das ist vielleicht ein paar Megabyte im Wert von Informationen. 116 00:06:05,980 --> 00:06:09,460 An diesem Punkt hat, sobald der GUI geladen und die Plug-Ins haben begonnen, 117 00:06:09,460 --> 00:06:12,530 dann zu kommunizieren beginnt sie die Hafenarbeiter etwa, die nicht der Fall ist 118 00:06:12,530 --> 00:06:15,210 notwendigerweise die gleichen Server sein. 119 00:06:15,210 --> 00:06:16,940 >> Jetzt gibt es eine Ausnahme. 120 00:06:16,940 --> 00:06:22,130 Wir können tatsächlich haben sowohl die Lieferung Mechanismus für die GUI selbst 121 00:06:22,130 --> 00:06:25,740 und die Hafenarbeiter etwa in alle aus dem gleichen Server, 122 00:06:25,740 --> 00:06:29,660 ist eigentlich etwas, was wir tun, für die Offline-Version von Cloud 9. 123 00:06:29,660 --> 00:06:33,470 Das ist nicht etwas, dass wir publizierte sehr in diesem Herbst, 124 00:06:33,470 --> 00:06:35,930 aber wir haben auch eine Offline-Version, 125 00:06:35,930 --> 00:06:40,010 gestattet Ihnen, ein verpacktes Version der all diese Dinge 126 00:06:40,010 --> 00:06:43,670 und ermöglicht es Ihnen, Wolke laufen 9 in einer Offline-Umgebung. 127 00:06:43,670 --> 00:06:48,325 >> Umzug diese aus der Cloud und auf Ihre lokale Maschine hat einen gewissen Einfluss. 128 00:06:48,325 --> 00:06:50,200 Insbesondere können Sie keine die Fähigkeit mehr haben 129 00:06:50,200 --> 00:06:52,280 zu Ihrem Arbeitsbereich mit anderen teilen. 130 00:06:52,280 --> 00:06:58,630 Sie können nicht mehr von Cloud 9 zu öffnen, und der CS50 IDE, von einem beliebigen Computer 131 00:06:58,630 --> 00:07:02,950 und sehen die gleichen Dateien, Sie wurden mit vor der Arbeit. 132 00:07:02,950 --> 00:07:06,310 Sondern es funktioniert hundert auf Ihrem eigenen lokalen Rechner 133 00:07:06,310 --> 00:07:09,270 ohne Zugang zum Internet. 134 00:07:09,270 --> 00:07:13,330 Aber immer noch selbst in diesem Modell, auch obwohl wir eine virtuelle Maschine 135 00:07:13,330 --> 00:07:15,200 das ist im Wesentlichen laufen diese Dinge. 136 00:07:15,200 --> 00:07:19,480 >> Wir haben einen separaten Server, der ist liefert im Wesentlichen die Cloud 9 137 00:07:19,480 --> 00:07:23,640 Inhalte, und dann werden wir haben eine docker Instanz 138 00:07:23,640 --> 00:07:32,280 das ist für die Kommunikation verantwortlich mit dieser IDE für die Back-End. 139 00:07:32,280 --> 00:07:32,780 OK. 140 00:07:32,780 --> 00:07:38,700 So dass die gesamte GUI geschrieben komplett in JavaScript 141 00:07:38,700 --> 00:07:42,800 Verwendung Node.js und die Cloud 9 SDK, die wir in nur einer Minute. 142 00:07:42,800 --> 00:07:46,650 Und alle Plug-ins werden auf der Client-Seite ausgeführt. 143 00:07:46,650 --> 00:07:51,780 Also lassen Sie konzentrieren die dann wenig unter der Annahme, 144 00:07:51,780 --> 00:07:55,670 daß dieser erste Schritt hat tatsächlich erfolgreich abgeschlossen ist, 145 00:07:55,670 --> 00:07:58,990 und suchen Sie nur an dieser docker Instanz. 146 00:07:58,990 --> 00:08:01,220 >> So dass in diesem Fall ist diese ist der normale Weg 147 00:08:01,220 --> 00:08:04,870 Denken über das Tun Cloud 9 Plug-In- Entwicklung ist, dass Sie gehen, 148 00:08:04,870 --> 00:08:07,940 zu werden, Code zu schreiben, dass Will in den Browser des Benutzers ausgeführt werden, 149 00:08:07,940 --> 00:08:11,610 und Sie haben die Möglichkeit, mit einigen APIs, um zu kommunizieren 150 00:08:11,610 --> 00:08:16,470 mit dem zugrunde liegenden docker Beispiel laufen einige Code gibt, und alles tun, 151 00:08:16,470 --> 00:08:18,860 dass Sie vielleicht wollen. 152 00:08:18,860 --> 00:08:22,000 Also das sein wird, der Zusammenhang, dass wir 153 00:08:22,000 --> 00:08:24,340 werden mit für den Rest dieses Vortrags. 154 00:08:24,340 --> 00:08:26,400 Und gerade zu halten dieses Modell im Auge. 155 00:08:26,400 --> 00:08:28,966 Dies wird sehr wichtig sein, in nur wenigen Minuten. 156 00:08:28,966 --> 00:08:30,840 Es gibt ein paar Links Ich möchte Ihnen zeigen. 157 00:08:30,840 --> 00:08:34,150 Zuerst von allen, hat Cloud 9 vorgesehen eine ganze Reihe von Unterlagen 158 00:08:34,150 --> 00:08:38,740 das ist ziemlich gut, das zeigt, wie um grundlegende Plug-in-Entwicklung zu tun. 159 00:08:38,740 --> 00:08:43,320 Also, wenn Sie zu dieser URL zu gehen, cloud9-sdk.readme.io, 160 00:08:43,320 --> 00:08:45,261 Sie werden die Dokumentation dort zu sehen. 161 00:08:45,261 --> 00:08:47,510 Und viele dieser Informationen dass Sie über zu sehen sind 162 00:08:47,510 --> 00:08:50,310 kann auch dort zu finden, plus mehr. 163 00:08:50,310 --> 00:08:55,880 Sie können auch die Open-Source zu finden Version von Cloud 9 unter dieser URL, 164 00:08:55,880 --> 00:09:04,270 github.com/c9/core, die wir als Teil der Offline-Version der IDE, 165 00:09:04,270 --> 00:09:07,540 so dass Sie in der Lage sein müssen das gleiche Cloud 9 Erfahrung, 166 00:09:07,540 --> 00:09:09,660 aber in einer Offline-Weise. 167 00:09:09,660 --> 00:09:10,160 Gut. 168 00:09:10,160 --> 00:09:15,560 Werfen wir also einen Blick auf ein Ist Cloud 9 Arbeitsbereich hier. 169 00:09:15,560 --> 00:09:17,880 Und wieder, möchte ich darauf hinweisen out ein paar Dinge. 170 00:09:17,880 --> 00:09:21,560 Dies ist direkt hier, eine normale CS50 IDE. 171 00:09:21,560 --> 00:09:26,830 Und ich habe eine weniger deaktiviert komfortable Modus unter dem Menü Ansicht 172 00:09:26,830 --> 00:09:28,807 so dass ich alle sehen der Menüoptionen. 173 00:09:28,807 --> 00:09:31,140 Was ich will, um Sie richtig zu zeigen ist jetzt ein paar Dinge. 174 00:09:31,140 --> 00:09:33,140 First off, wenn ich in zu gehen die Einstellungen und dann 175 00:09:33,140 --> 00:09:37,040 klicken Sie auf Plug-in-Manager, und in CS50 geben Sie hier 176 00:09:37,040 --> 00:09:40,590 Wir können sehen, dass es in der Tat, ein paar CS50 Plug-Ins, 177 00:09:40,590 --> 00:09:46,280 installiert und unsere laufenden zu ermöglichen die Änderungen, die wir 178 00:09:46,280 --> 00:09:48,670 für den CS50 IDE gesehen. 179 00:09:48,670 --> 00:09:51,450 >> Im Moment gibt es im wesentlichen zwei Plugins, die ausgeführt werden. 180 00:09:51,450 --> 00:09:54,980 Es gibt eine einfache genannt, die ist der vereinfachte Modus, 181 00:09:54,980 --> 00:10:00,020 Damit können Sie die Anzahl zu reduzieren, der Menü-Optionen am oberen Rand, 182 00:10:00,020 --> 00:10:03,070 und das sogenannte haben weniger komfortabel Modus. 183 00:10:03,070 --> 00:10:07,280 Und dann gibt es auch CS50 Stats, Das ist vielleicht nur geringfügig falsch benannt. 184 00:10:07,280 --> 00:10:09,550 Denn dies ist das, was zeigt Ihnen die Informationen 185 00:10:09,550 --> 00:10:10,850 über die zugrunde liegenden Arbeitsbereich. 186 00:10:10,850 --> 00:10:13,560 Es injiziert diese Tasten entlang der oberen rechten Seite. 187 00:10:13,560 --> 00:10:18,620 Es injiziert auch einen Menüpunkt in der Fenster Artikel, in dem Menü Fenster 188 00:10:18,620 --> 00:10:21,730 genau hier, CS50 IDE Info. 189 00:10:21,730 --> 00:10:27,380 Und es ist zum Instanziieren verantwortlich dieser Dialog, die wir hier gesehen habe, 190 00:10:27,380 --> 00:10:31,460 mit allen Informationen, die wir sind zu sehen, in einem CS50 IDE gewöhnt 191 00:10:31,460 --> 00:10:32,870 Arbeitsplatz. 192 00:10:32,870 --> 00:10:33,370 OK. 193 00:10:33,370 --> 00:10:36,910 Es gibt also tatsächlich noch ein Plug-in dass wir so gut entwickelt. 194 00:10:36,910 --> 00:10:40,110 Und es gibt noch ein paar andere, dass wir haben auch nicht öffentlich freigegeben. 195 00:10:40,110 --> 00:10:45,880 Aber eine von ihnen ist die Gesamt Plug-In, mit dem GDB zu funktionieren. 196 00:10:45,880 --> 00:10:50,190 Damit wird eines der Aspekte der Cloud 9 ist, dass sie bereits zur Verfügung gestellt haben 197 00:10:50,190 --> 00:10:53,210 Diese GUI, einen Debugger zu implementieren. 198 00:10:53,210 --> 00:10:57,360 Und eines der Plug-Ins, Wir haben im Grunde erstellt 199 00:10:57,360 --> 00:11:02,380 Haken GDB mit diesem GUI basierte Version von einem Debugger. 200 00:11:02,380 --> 00:11:07,680 Und ist für die Vermittlung all verantwortlich der Anträge, die ein Benutzer haben könnte, 201 00:11:07,680 --> 00:11:10,310 zwischen stieg über oder Erstellen von Breakpoints oder irgendetwas 202 00:11:10,310 --> 00:11:15,390 in diese Richtung, zu übersetzen, dass um Befehle, die GDB kann verstehen, 203 00:11:15,390 --> 00:11:16,920 die Ausstellung diese Befehle, um GDB. 204 00:11:16,920 --> 00:11:19,260 Und sobald GDB gibt eine Antwort, dann 205 00:11:19,260 --> 00:11:23,250 interpretieren wir das und aktualisieren Sie die GUI wie nötig. 206 00:11:23,250 --> 00:11:25,130 >> Das ist wahrscheinlich eine der Je komplizierter 207 00:11:25,130 --> 00:11:28,840 der Plug-Ins, so dass anstelle, was wir sind werde heute hervorheben ist in der Tat 208 00:11:28,840 --> 00:11:34,590 die Statistik-Plug-in, und wir reden ein wenig über einfache, wie auch. 209 00:11:34,590 --> 00:11:39,100 So erwähnte ich vorher, und ich wirklich will sehr, sehr klar, dass wieder zu machen, 210 00:11:39,100 --> 00:11:41,600 all dies, dass wir hier sehen, ist im wesentlichen 211 00:11:41,600 --> 00:11:43,300 die auf der Client-Seite. 212 00:11:43,300 --> 00:11:45,810 Wir sehen ein Terminalfenster unten, und das natürlich 213 00:11:45,810 --> 00:11:49,230 wenn wir geben Befehle in dass, die dann ausgegeben werden 214 00:11:49,230 --> 00:11:50,690 an der darunterliegenden Beispiel. 215 00:11:50,690 --> 00:11:55,280 Und falls wir eine neue Datei zu öffnen und Geben Sie ein paar Sachen in sie und speichern Sie es, 216 00:11:55,280 --> 00:11:58,240 wird diese Datei auf speichern das zugrundeliegende Instanz. 217 00:11:58,240 --> 00:12:02,310 >> Aber der Redakteur selbst, diese Terminal-Fenster selbst, 218 00:12:02,310 --> 00:12:05,700 ist alles in realisiert JavaScript und alles ist ein Plug-in 219 00:12:05,700 --> 00:12:09,800 dass wir mit zu interagieren, und deshalb zu ändern. 220 00:12:09,800 --> 00:12:11,450 Es gibt eine Menge an Dehnbarkeit hier. 221 00:12:11,450 --> 00:12:14,690 Ich empfehle einen Blick bei Cloud 9 von GitHub Account 222 00:12:14,690 --> 00:12:17,790 um die große Menge an zu sehen Plug-Ins, die verfügbar sind, 223 00:12:17,790 --> 00:12:23,070 und wie gut geschrieben viel des Codes für die Erweiterbarkeit. 224 00:12:23,070 --> 00:12:24,920 So gibt es etwas dass ich erwähnen möchte, 225 00:12:24,920 --> 00:12:30,480 über diese sowie, das ist, dass es eine Menge von-- es 226 00:12:30,480 --> 00:12:33,450 eine Menge von Funktionen, die es in den Einstellungen zur Verfügung gestellt 227 00:12:33,450 --> 00:12:37,970 Fenster, die wir gerade gesehen haben spielte auf gerade vor ein paar Minuten. 228 00:12:37,970 --> 00:12:43,690 >> Eines der Dinge, die wir als IDE tun können Entwickler oder als Cloud 9-Entwickler, 229 00:12:43,690 --> 00:12:47,410 ist, um tatsächlich zu injizieren einige Preference Panels unserer eigenen. 230 00:12:47,410 --> 00:12:50,660 So ist die Einfach-Modus, oder die weniger komfortabel Modus 231 00:12:50,660 --> 00:12:54,780 und auch die IDE Informationen oder die Statistiken Plug-in, 232 00:12:54,780 --> 00:12:58,560 hat jeder eine gewisse Präferenz Platten, die wir ändern können 233 00:12:58,560 --> 00:13:00,620 Das Verhalten von jedem von diesen. 234 00:13:00,620 --> 00:13:04,140 Sie werden bemerken, dass, wenn ich gehen, um die Einstellungen und gehen Sie zu Benutzereinstellungen, 235 00:13:04,140 --> 00:13:07,100 es gibt eine CS50 Registerkarte, einer das sagt IDE Informationen. 236 00:13:07,100 --> 00:13:09,810 Und ich kann das ändern Informationen Bildwiederholrate. 237 00:13:09,810 --> 00:13:12,250 >> Effektiv, was passiert in den Statistik-Plug-in 238 00:13:12,250 --> 00:13:16,690 ist, dass alle n-Sekunden, wobei n-Sekunden wird durch diese Einstellung festgelegt 239 00:13:16,690 --> 00:13:22,250 Panel, wird Informationen abgerufen aus dem zugrundeliegenden Beispiel gesendeten 240 00:13:22,250 --> 00:13:25,490 zurück zu der Client-Seite, das Plug-in ist dann 241 00:13:25,490 --> 00:13:28,650 Interpretation der Informationen von der zugrunde liegenden Instanz 242 00:13:28,650 --> 00:13:31,470 und Aktualisieren der GUI nach Bedarf. 243 00:13:31,470 --> 00:13:34,710 Wir können sehen, dass gerade jetzt diese gesetzt ist bis 30 Sekunden, und das ist die Standardeinstellung. 244 00:13:34,710 --> 00:13:37,950 Aber ich kann auf jeden Fall ändern wie schnell dies passiert einfach 245 00:13:37,950 --> 00:13:40,520 durch Modifizieren Sie diesen Wert. 246 00:13:40,520 --> 00:13:44,330 >> Jetzt ist einer der interessantesten Dinge ist, dass diese Einstellungsfenster, GUI, 247 00:13:44,330 --> 00:13:49,560 ist eigentlich nur eine GUI-Version von vielen zugrunde liegenden Einstellungen 248 00:13:49,560 --> 00:13:52,220 die in JSON präsentiert werden. 249 00:13:52,220 --> 00:13:56,336 Also, wenn ich gehe, die beispielsweise unter der CS50 IDE-Menü oder das Cloud 9 Menü 250 00:13:56,336 --> 00:13:58,210 je nachdem, welche Version, die Sie gerade sehen, 251 00:13:58,210 --> 00:14:00,460 und gehen Sie zu einer dieser settings-- in diesem Fall 252 00:14:00,460 --> 00:14:03,420 das Projekt settings-- die Projekteinstellungen in diesem Fall 253 00:14:03,420 --> 00:14:07,740 gilt für alle Einstellungen für diesen einen Arbeitsbereich. 254 00:14:07,740 --> 00:14:11,620 Der Erwägung, dass Benutzereinstellungen gelten um alle Arbeitsbereiche 255 00:14:11,620 --> 00:14:15,110 dass Sie auf Ihrem Konto haben könnte. 256 00:14:15,110 --> 00:14:18,520 >> Also nur nebenbei hier, um ein extra klar sein, 257 00:14:18,520 --> 00:14:22,570 gibt es eine Trennung zwischen dem zwei, denn obwohl wir standardmäßig 258 00:14:22,570 --> 00:14:26,490 haben ein Arbeitsbereich, der ist der CS50 IDE, wenn Sie 259 00:14:26,490 --> 00:14:31,900 waren, um deine kleine klicken avatar Sie sich hier ein und gehen Sie zu Dashboard 260 00:14:31,900 --> 00:14:35,820 Sie, dass Sie tatsächlich finden werden schaffen zusätzliche Arbeitsbereiche auch. 261 00:14:35,820 --> 00:14:39,140 Hier können Sie sehen, dass ich haben ein IDE-50-Arbeitsbereich, aber auch 262 00:14:39,140 --> 00:14:41,930 für die Zwecke dieser Seminar, ein Arbeitsbereich 263 00:14:41,930 --> 00:14:45,084 genannte Arbeitsbereich, der hier ist. 264 00:14:45,084 --> 00:14:46,750 Wie auch immer, ich habe unterschiedliche Präferenzen. 265 00:14:46,750 --> 00:14:49,910 Jeder von diesen haben könnten separates Projekt Vorlieben, 266 00:14:49,910 --> 00:14:54,091 aber die Benutzereinstellungen sind unter all meine Arbeitsbereiche geteilt. 267 00:14:54,091 --> 00:14:55,840 Übrigens ist das auch sehr praktisch, wenn Sie 268 00:14:55,840 --> 00:14:59,080 wollen einen Arbeitsbereich mit erstellen verschiedene Anpassungsoptionen. 269 00:14:59,080 --> 00:15:01,640 Und es ist sehr praktisch, erstellen Sie einen neuen Arbeitsbereich. 270 00:15:01,640 --> 00:15:04,230 Und wählen Sie eine, die sein könnte sonstwie vorkonfiguriert 271 00:15:04,230 --> 00:15:07,000 vielleicht für PHP gesagt, oder Django spezifisch. 272 00:15:07,000 --> 00:15:08,960 Oder auch nur benutzerdefinierte. 273 00:15:08,960 --> 00:15:11,320 Das CS50-Arbeitsbereich Vorlage ist der, dass wir 274 00:15:11,320 --> 00:15:15,420 benutzen, die automatisch installiert Update 50 und alle Einstellungen 275 00:15:15,420 --> 00:15:20,531 dass wir dort, darunter alle Plug-Ins, die wir für den CS50 IDE haben. 276 00:15:20,531 --> 00:15:21,030 OK. 277 00:15:21,030 --> 00:15:22,200 Aber lassen Sie uns zurückkommen. 278 00:15:22,200 --> 00:15:25,640 Also noch einmal, es gibt Projekte Einstellungen und das sind diejenigen, 279 00:15:25,640 --> 00:15:27,140 dass wir hier sehen. 280 00:15:27,140 --> 00:15:29,056 Und feststellen, dass es gibt eine Reihe von Einstellungen, 281 00:15:29,056 --> 00:15:32,720 zu bevorzugen viele von ihnen entsprechen Platten, aber nicht alle von ihnen. 282 00:15:32,720 --> 00:15:40,800 Aber wir, dass Sie hier sehen können, in this-- oh Nein, habe ich es in den Benutzereinstellungen? 283 00:15:40,800 --> 00:15:43,280 Vielleicht habe ich es in den Benutzereinstellungen. 284 00:15:43,280 --> 00:15:45,480 Und dies, hier gehen wir. 285 00:15:45,480 --> 00:15:49,840 In den Benutzereinstellungen, können wir sehen, dass wir eine CS50 Schnitt haben, 286 00:15:49,840 --> 00:15:53,762 und dies geschrieben von diesen Cloud 9-Plug-Ins 287 00:15:53,762 --> 00:15:54,720 dass wir umgesetzt. 288 00:15:54,720 --> 00:15:57,400 Es ist die einfache man entsprechen mit dieser einfachen Plug-in, 289 00:15:57,400 --> 00:16:00,930 und die Statistiken einer davon entspricht dem GUI-basierte 290 00:16:00,930 --> 00:16:02,440 Version der Einstellungsfenster. 291 00:16:02,440 --> 00:16:05,740 Die Aktualisierungsrate, in diesem Dabei wird auf 20 Sekunden eingestellt. 292 00:16:05,740 --> 00:16:09,740 >> Das ist alles, hoffentlich, die Anfänge einiger Informationen 293 00:16:09,740 --> 00:16:14,420 dass wir tatsächlich in einem kleinen zu sehen wenig genauer, kurzzeitig. 294 00:16:14,420 --> 00:16:14,920 OK. 295 00:16:14,920 --> 00:16:17,520 Also lassen Sie uns sagen, wir wollen tatsächlich zur Sache. 296 00:16:17,520 --> 00:16:20,600 Wir verstehen, dass alle von dem Zeug das ist auf der Clientseite geschieht 297 00:16:20,600 --> 00:16:24,560 ist eigentlich auf den Browser, was getan bedeutet, dass alle Plug-Ins, die ich schreibe 298 00:16:24,560 --> 00:16:27,990 gehen zu geschrieben werden mit dem Browser im Auge. 299 00:16:27,990 --> 00:16:30,830 Und wenn ich wirklich tun möchte, Gegenstände auf der Arbeitsfläche, 300 00:16:30,830 --> 00:16:33,360 Ich werde vielleicht haben zu initiieren eine Art der Kommunikation 301 00:16:33,360 --> 00:16:35,970 zwischen dem Browser und der Arbeitsbereich sicher zu sein, 302 00:16:35,970 --> 00:16:38,212 dass diese tatsächlich erreicht. 303 00:16:38,212 --> 00:16:40,170 Aber lassen Sie uns sagen, dass jetzt Ich möchte nach unten um es zu bekommen 304 00:16:40,170 --> 00:16:43,440 und tatsächlich meine erste Plug-in erstellen. 305 00:16:43,440 --> 00:16:48,970 Nun, die Art und Weise, dass Sie der Lage wäre, das zu tun, ist eigentlich recht einfach. 306 00:16:48,970 --> 00:16:51,370 Es ist in der Cloud 9 SDK angegeben. 307 00:16:51,370 --> 00:16:55,520 Aber es ist zu nehmen Sie Ihre vorhandenen Arbeitsbereich Name, der 308 00:16:55,520 --> 00:16:59,810 ist die URL, die Sie an der Spitze haben, Ihre Bar, und fügen Sie die folgenden, um es. 309 00:16:59,810 --> 00:17:00,310 ? 310 00:17:00,310 --> 00:17:00,893 Sdk = 1 & Debub = 2. 311 00:17:00,893 --> 00:17:04,369 312 00:17:04,369 --> 00:17:08,260 Nun, was das wird ermöglichen, ist dass das SDK = 1 tatsächlich setzen die SDK 313 00:17:08,260 --> 00:17:11,430 Modus, um wahr, die es ermöglichen ein paar zusätzliche Dinge. 314 00:17:11,430 --> 00:17:15,770 Und debug = 2 Fehlermeldungen ermöglichen zu sein, ein wenig ausführlicher. 315 00:17:15,770 --> 00:17:20,170 >> Und so, wenn Sie die JavaScript bringen Konsole in Ihrem Chrome-Entwickler-Registerkarte, 316 00:17:20,170 --> 00:17:22,829 werden Sie tatsächlich in der Lage zu sein, sehen viel mehr Informationen 317 00:17:22,829 --> 00:17:24,349 als üblich. 318 00:17:24,349 --> 00:17:28,310 So empfehle ich drehen beides auf zur gleichen Zeit, weil es wirklich 319 00:17:28,310 --> 00:17:31,170 ist nützlich, um all dies zusätzliche Information. 320 00:17:31,170 --> 00:17:35,330 Es ist wichtig zu beachten Sie jedoch, dass Einschalten Debug auf den Wert 2 321 00:17:35,330 --> 00:17:38,120 bedeutet, dass es sehr verbose, und es tatsächlich 322 00:17:38,120 --> 00:17:42,590 wird etwas spürbar verlangsamen Ihre IDE, vor allem, wenn Lade 323 00:17:42,590 --> 00:17:45,657 oder wenn Sie dabei schwere Aufgaben. 324 00:17:45,657 --> 00:17:46,740 So einfach sollte man nicht vergessen. 325 00:17:46,740 --> 00:17:51,500 Es ist nützlich für die Entwicklung, aber Sie können nicht wollen, um es auf die ganze Zeit haben. 326 00:17:51,500 --> 00:17:53,080 >> Lassen Sie uns also wirklich tun. 327 00:17:53,080 --> 00:17:59,374 Aber in diesem Fall, habe ich eigentlich bereits einen Arbeitsbereich mit diesem Set. 328 00:17:59,374 --> 00:18:00,540 Also mal sehen, sdk = 1 & debug = 2. 329 00:18:00,540 --> 00:18:03,140 330 00:18:03,140 --> 00:18:07,770 Mit ein paar Plug-Ins hoffentlich bereits installiert. 331 00:18:07,770 --> 00:18:08,340 Gut. 332 00:18:08,340 --> 00:18:15,050 Also jetzt, dass ich auf dem SDK debug aktiviert haben Modus bemerken, dass wir im Debug-Modus sind, 333 00:18:15,050 --> 00:18:20,430 so dass wir an den Entwickler-Tools, um zu sehen Fehler, die ich tun, außerhalb des Bildschirms. 334 00:18:20,430 --> 00:18:23,110 Wir können sehen, dass es ein Haufen Fehler hier. 335 00:18:23,110 --> 00:18:28,090 Jetzt ist es eigentlich ziemlich üblich, Cloud 9, ein paar Fehler haben, 336 00:18:28,090 --> 00:18:30,680 und ich würde keine Sorgen über sie, bis Sie 337 00:18:30,680 --> 00:18:32,930 etwas sehen, was könnte spezifisch an das Plug-in 338 00:18:32,930 --> 00:18:34,510 dass Sie geschehen, zu schaffen. 339 00:18:34,510 --> 00:18:37,620 >> So, hier, zum Beispiel, erhalten wir ein paar 404s-- nicht gefunden. 340 00:18:37,620 --> 00:18:42,910 Wir sehen, wir sind nicht in der Lage, einige laden Informationen aus dem zugrundeliegenden Beispiel 341 00:18:42,910 --> 00:18:43,670 selbst. 342 00:18:43,670 --> 00:18:46,545 Und es gibt eine Reihe von zusätzlichen Informationen, aber die meisten davon sind wir 343 00:18:46,545 --> 00:18:47,970 eigentlich los, um für jetzt zu ignorieren. 344 00:18:47,970 --> 00:18:50,130 Da es sich um recht gemeinsam für einen Arbeitsbereich 345 00:18:50,130 --> 00:18:53,200 um nur ein paar Störungen haben. 346 00:18:53,200 --> 00:18:53,700 OK. 347 00:18:53,700 --> 00:18:56,680 Ich werde dies aus bewegen die Art und Weise und wieder hierher kommen. 348 00:18:56,680 --> 00:19:01,860 Und nun die einfache Möglichkeit, das schöne Sache über mit diesem Entwickler 349 00:19:01,860 --> 00:19:07,330 Modus aktiviert ist, dass es mir erlaubt das einfache Erstellen eines neuen Plug-in. 350 00:19:07,330 --> 00:19:12,390 >> Während also bevor ich eigentlich nicht haben diese neue Plug-In-Option zur Verfügung, 351 00:19:12,390 --> 00:19:16,460 was wir sehen, wenn ich wieder nach meine Nicht-Entwickler-Modus hierher, 352 00:19:16,460 --> 00:19:18,510 es gibt kein neues Plug-in. 353 00:19:18,510 --> 00:19:23,220 Durch Aktivierung der SDK-Modus I haben ein neues Plug-In zur Verfügung 354 00:19:23,220 --> 00:19:25,660 und ich können sehr einfach ein. 355 00:19:25,660 --> 00:19:28,160 In diesem Fall gibt es ein paar von verschiedenen Optionen, einfach, 356 00:19:28,160 --> 00:19:30,850 ein leerer Plug-in, ein Full-Plug-in, Installer, Cloud 9 Bundle. 357 00:19:30,850 --> 00:19:33,030 Lassen Sie uns einfach ein wählen empty-Plug-In für jetzt 358 00:19:33,030 --> 00:19:37,670 so dass wir einen sehr sehen einfache Version von einem. 359 00:19:37,670 --> 00:19:41,520 >> Jetzt bemerken, dass entlang der linke Seite, das heißt es gibt jetzt 360 00:19:41,520 --> 00:19:45,080 etwas unter Favoriten, die listet ein paar Plug-Ins 361 00:19:45,080 --> 00:19:47,020 , die jetzt stehen mir zur Verfügung. 362 00:19:47,020 --> 00:19:50,420 Wenn ich zu erweitern, dass, werden wir der Lage, diese zu sehen. 363 00:19:50,420 --> 00:19:52,730 Nun möchte ich Sie zu bemerken, hier etwas, das 364 00:19:52,730 --> 00:19:58,260 ist, dass diese nicht tatsächlich enthaltenen im Arbeitsbereich-Verzeichnis 365 00:19:58,260 --> 00:20:03,190 auf meinem Ubuntu-Instanz zugrunde liegenden, aber es auf dem Festplattenlaufwerk enthalten ist. 366 00:20:03,190 --> 00:20:06,330 Und wo diese sich befindet, weil dies ist sehr nützlich zu wissen, 367 00:20:06,330 --> 00:20:09,570 besonders wenn Sie zu gehen werden nichts mit Git zu tun, 368 00:20:09,570 --> 00:20:16,870 wo diese befindet, ist in einem .C9 Ordner / plugins. 369 00:20:16,870 --> 00:20:21,110 Also, wenn ich dorthin zu gehen, können wir sehen, dass jetzt die Liste der Plug-Ins, die hier sind 370 00:20:21,110 --> 00:20:26,390 stimmt mit der Liste der Plug-Ins, die ich sah auf der linken Seite meiner Arbeitsbereich. 371 00:20:26,390 --> 00:20:28,610 >> Jetzt standardmäßig, und Das ist irgendwie seltsam, 372 00:20:28,610 --> 00:20:31,760 standardmäßig, wenn ich eine neue Plug-In in einem Arbeitsbereich, 373 00:20:31,760 --> 00:20:36,620 Sie dieses Plug-in, dass durch erstellt Standardmäßig hat einen Namen von einem Unterstrich. 374 00:20:36,620 --> 00:20:39,760 Im Allgemeinen, dass vielleicht einige Probleme verursachen. 375 00:20:39,760 --> 00:20:42,340 So sehr der nächste Schritt dass ich in der Regel durchführen 376 00:20:42,340 --> 00:20:45,880 ist nur, dass zu entfernen Insbesondere Plug-in 377 00:20:45,880 --> 00:20:52,810 und lassen Sie nur die einfache Plug-in, war es zunächst, plugin.simple. 378 00:20:52,810 --> 00:20:55,430 Und das ist das einzige, das es gibt. 379 00:20:55,430 --> 00:20:55,930 OK. 380 00:20:55,930 --> 00:20:58,380 >> Was bedeutet dies konkret aussehen? 381 00:20:58,380 --> 00:21:01,210 Nun, das ist wieder einen JavaScript-Paket 382 00:21:01,210 --> 00:21:05,220 das schließt einige Dateien, einschließlich einer plugin.js Datei, wobei 383 00:21:05,220 --> 00:21:07,700 der Hauptinhalt meine Plug-in befindet, 384 00:21:07,700 --> 00:21:10,590 a package.json-Datei, die eigentlich spezifiziert 385 00:21:10,590 --> 00:21:13,760 einige Metadaten über dieses Plug-in, wie, wer der Autor ist, 386 00:21:13,760 --> 00:21:19,240 alle zusätzlichen Informationen über sie, ein Beschreibung der Steckverbindung, und so weiter. 387 00:21:19,240 --> 00:21:22,190 Und standardmäßig, es erstellt ein leeres Readme-Datei, 388 00:21:22,190 --> 00:21:26,100 und eine leere Testdatei für Sie erstellen einige zusätzliche Dokumentation, 389 00:21:26,100 --> 00:21:29,430 und ein Testbaum, wenn Sie möchten, dass zu tun. 390 00:21:29,430 --> 00:21:34,160 >> Lassen Sie uns also nur einen Blick zuerst auf, sehr schnell, am package.json Datei. 391 00:21:34,160 --> 00:21:38,240 Es ist einfach genug, nur durchgehen und füllen in den Bereichen dieses 392 00:21:38,240 --> 00:21:42,510 dass Sie möchten, um in zu füllen, wie bieten Sie ihm einen Namen, eine Beschreibung, 393 00:21:42,510 --> 00:21:45,010 durchlaufen die Versionsnummer jeder so oft, bereitzustellen 394 00:21:45,010 --> 00:21:47,570 ein Autor für jeden Person, die trägt, 395 00:21:47,570 --> 00:21:53,000 fügen Sie sie zu den Künstlern, Abschnitt, und der Rest der Sie 396 00:21:53,000 --> 00:21:56,390 kann ziemlich einfach lassen wie es ist für den Moment. 397 00:21:56,390 --> 00:21:58,490 >> Es gibt eine Sache, die ist wichtig zu bemerken, 398 00:21:58,490 --> 00:22:04,990 dass im Rahmen der Plug-Ins Abschnitt, gibt es einen Schlüssel namens Plug-in. 399 00:22:04,990 --> 00:22:11,800 Und dies wird an den Namen der übereinstimm die JavaScript-Datei namens plugin.js. 400 00:22:11,800 --> 00:22:18,290 Das ist also, wie Cloud 9 kennt, wenn es liest diese package.json-Datei, die 401 00:22:18,290 --> 00:22:20,720 der JS-Dateien, um tatsächlich zu laden. 402 00:22:20,720 --> 00:22:25,440 Wenn ich schaffen zusätzliche js Dateien oder wollen , dass die JS-Datei von Plug-In umzubenennen, 403 00:22:25,440 --> 00:22:30,380 Ich habe auch, es zu ändern im package.json Datei. 404 00:22:30,380 --> 00:22:33,660 >> Alle Fragen aus dem Publikum? 405 00:22:33,660 --> 00:22:34,160 Nein. 406 00:22:34,160 --> 00:22:38,100 Dass einer Person, die Folgende zusammen mit mir so weit. 407 00:22:38,100 --> 00:22:38,760 >> OK. 408 00:22:38,760 --> 00:22:42,300 Also habe ich tatsächlich geschaffen haben ein Einige Plug-ins bereits, 409 00:22:42,300 --> 00:22:44,100 Ich denke, in diesem Arbeitsbereich. 410 00:22:44,100 --> 00:22:53,800 Lassen Sie uns also an einige von diesen zu entfernen, fügen Sie sdk = 1 & debug = 2, laden Sie diese Arbeitsbereich, 411 00:22:53,800 --> 00:22:58,780 und lassen Sie uns sehen, ob wir haben jetzt diese Plug-Ins. 412 00:22:58,780 --> 00:23:01,430 c9 / plugins. 413 00:23:01,430 --> 00:23:01,930 Auf geht's. 414 00:23:01,930 --> 00:23:06,910 Wir können jetzt in meinem c9 / plugins davon zu sehen einer, haben wir plugin.1 und plugin.2. 415 00:23:06,910 --> 00:23:15,260 So werden wir nur Schritt bis the-- nur die Menge der Schwierigkeit zu erhöhen 416 00:23:15,260 --> 00:23:16,660 in jedem dieser Plug-Ins. 417 00:23:16,660 --> 00:23:20,140 Aber hier, wenn ich in Steck erstellen Sie eine neue, Ich kann es zu Favoriten hinzufügen. 418 00:23:20,140 --> 00:23:25,560 Und ich werde einfach löschen solche aus das darunterliegende Dateisystem. 419 00:23:25,560 --> 00:23:28,050 >> Lassen Sie uns zu entfernen, dass. 420 00:23:28,050 --> 00:23:33,206 Nun, wenn ich mein erstes öffnen Plug-in, und offene plugin.js, 421 00:23:33,206 --> 00:23:39,980 wir hier sehen, kann die zugrunde liegende einfache Version eines Plug-in. 422 00:23:39,980 --> 00:23:42,170 Lassen Sie mich eigentlich zurück auf diese anderen Arbeitsbereich 423 00:23:42,170 --> 00:23:47,160 weil Sie zumindest, hier sehen können, was eine leere Plug-in tatsächlich aussieht. 424 00:23:47,160 --> 00:23:51,810 So unter der Haube, das sieht sehr ähnlich Technologie namens, 425 00:23:51,810 --> 00:23:53,780 Ich denke, es ist RequireJS. 426 00:23:53,780 --> 00:23:56,000 Beachten Sie, dass dies nicht wirklich aussehen, vielleicht, 427 00:23:56,000 --> 00:23:59,150 die gleichen wie eine andere JavaScript Dateien, die wir gesehen haben könnte. 428 00:23:59,150 --> 00:24:04,250 Stattdessen gibt es ein paar gerade Grundlinien, die es tatsächlich. 429 00:24:04,250 --> 00:24:06,900 >> All dieses Zeug ist zuerst vom IDE interpretiert 430 00:24:06,900 --> 00:24:09,940 aber es ist nicht wirklich laufen, bis festgelegt. 431 00:24:09,940 --> 00:24:13,610 Und ich werde Ihnen sagen, dass, wenn zu bedeutet eigentlich in nur einem Augenblick. 432 00:24:13,610 --> 00:24:17,840 Aber beachten Sie, dass hier gibt es eine main.consumes Zeile in Zeile 2, 433 00:24:17,840 --> 00:24:23,270 und dies listet alle Plug-ins dass dieses Plug-in abhängt. 434 00:24:23,270 --> 00:24:27,150 So standardmäßig, die wir vielleicht nicht zu haben, alle Abhängigkeiten von anderen Plug-Ins, 435 00:24:27,150 --> 00:24:30,530 aber wenn wir tatsächlich benötigen, um hängen von Merkmalen versorgt 436 00:24:30,530 --> 00:24:34,900 von anderen Plug-Ins in der IDE, wir brauchen, um diese Plug-Ins aufzulisten 437 00:24:34,900 --> 00:24:36,890 im main.consumes Linie. 438 00:24:36,890 --> 00:24:39,230 Und dann müssen wir verknüpfen Sie sie mit dem Code 439 00:24:39,230 --> 00:24:42,860 unten, was ich dir in nur zeigen einen Moment darüber, wie wir das tun. 440 00:24:42,860 --> 00:24:46,100 >> Main.provides verleiht ein Namen diesem Plug-in 441 00:24:46,100 --> 00:24:49,190 dass andere Plug-Ins konnten verwenden in ihrer verbraucht Linie. 442 00:24:49,190 --> 00:24:52,480 Also in diesem Fall, mein Plug-in ist einfach nur da standardmäßig festgelegt, 443 00:24:52,480 --> 00:24:55,820 und wir sollten das ändern zu sein für unsere eigene Plug-in, 444 00:24:55,820 --> 00:24:57,540 wie wir in nur gleich sehen werden. 445 00:24:57,540 --> 00:25:01,230 Jetzt ist hier in der Funktion Haupt, diese Funktion Haupt 446 00:25:01,230 --> 00:25:05,630 tatsächlich laufen und zu interpretieren, aber es nicht wirklich viel zu tun. 447 00:25:05,630 --> 00:25:08,970 Es wird immer alles eingerichtet, aber es nicht wirklich starten Sie die Plug-in, 448 00:25:08,970 --> 00:25:11,220 trotz allem, was der Name klingt. 449 00:25:11,220 --> 00:25:14,690 Dass tatsächlich durch passiert eine Folge von Methoden, 450 00:25:14,690 --> 00:25:16,820 werden in diesem Plug-in enthalten. 451 00:25:16,820 --> 00:25:20,830 >> Also, wenn ich nach unten scrollen, können wir sehen, dass wir einen Lebenszyklus, wo 452 00:25:20,830 --> 00:25:25,100 auf ein Ereignis namens Last, oder eine Veranstaltung namens Entladen, 453 00:25:25,100 --> 00:25:26,940 einige Ereignisse tatsächlich geschehen. 454 00:25:26,940 --> 00:25:33,500 Es ist wirklich in hier, wo wie die Plug-in- beginnt, dass diese Methoden aufgerufen werden. 455 00:25:33,500 --> 00:25:37,240 Also lassen Sie uns ein bisschen konkreter über diese und uns ein Beispiel. 456 00:25:37,240 --> 00:25:41,010 Also hier für plugin.1, was wir sind im Grunde tun 457 00:25:41,010 --> 00:25:46,010 ist um einen Menüpunkt zu erstellen genannt CS50 Seminar Dialog 1-- 458 00:25:46,010 --> 00:25:48,070 weil wir zwei haben them-- und wir werden 459 00:25:48,070 --> 00:25:50,300 um es in das Menü Fenster zu injizieren. 460 00:25:50,300 --> 00:25:54,590 Und wenn wir darauf klicken, sind wir gehen zu eröffnen einen Dialog, 461 00:25:54,590 --> 00:25:56,290 zeigt uns einige sehr grundlegende Informationen. 462 00:25:56,290 --> 00:25:58,050 >> In diesem Fall wird nur ein Hallo Welt. 463 00:25:58,050 --> 00:26:01,880 Das ist also eine sehr einfache Hallo Welt Dialog 464 00:26:01,880 --> 00:26:05,260 dass wir umsetzen können als Plug-in in der Cloud 9. 465 00:26:05,260 --> 00:26:07,960 Also mal sehen, wie diese tatsächlich aussieht. 466 00:26:07,960 --> 00:26:12,730 Wir werden durch sie Schritt, nur relativ schnell, so dass wir 467 00:26:12,730 --> 00:26:15,580 kann bei der nächsten Plug-in als gut aussehen. 468 00:26:15,580 --> 00:26:19,510 Beachten Sie, dass Sie hier sind wir verbrauchen eine Vielzahl von Plug-Ins. 469 00:26:19,510 --> 00:26:26,080 Wir verbrauchen eine Dialog Plug-in Befehle, Menüs und UI. 470 00:26:26,080 --> 00:26:30,440 Sieht aus wie ich eigentlich bin raub Dialog zweimal, so dass ich, dass zu entfernen. 471 00:26:30,440 --> 00:26:32,560 >> Und beachten Sie, dass die Art und Weise dass ich sie verbindenden 472 00:26:32,560 --> 00:26:37,940 Dies ist eine Art von Metadaten, die erzählt das Plug-in-System, welche Anforderungen 473 00:26:37,940 --> 00:26:41,480 tatsächlich erforderlich für dieses Plug-In zu laden. 474 00:26:41,480 --> 00:26:46,400 Es ist auch wichtig zu beachten, dass die Reihenfolge, dass Plug-Ins geladen werden, 475 00:26:46,400 --> 00:26:48,300 nicht gewährleistet. 476 00:26:48,300 --> 00:26:53,400 Aber was ist gewährleistet ist, dass, wenn ich Geben Sie einen beliebigen Plug-in als Voraussetzung, 477 00:26:53,400 --> 00:26:56,900 , dass Plug-in geladen werden vor diesem geladen wird. 478 00:26:56,900 --> 00:27:00,390 >> Das heißt also, dass, wenn Ihr Plug-in erfordert auf manche Funktionalitäten bereitgestellt 479 00:27:00,390 --> 00:27:04,380 durch etwas anderes in der IDE, sollten Sie sicher sein, dass Sie Ihren Plug-in verbraucht 480 00:27:04,380 --> 00:27:09,260 , dass Plug-in, so dass die Abhängigkeiten sind sicher, Ihren Plug-in erstellen, 481 00:27:09,260 --> 00:27:15,010 oder instanziieren Ihren Plug-in, nur nach, dass bestehende Rahmen existiert. 482 00:27:15,010 --> 00:27:18,870 Also hier habe ich erwähnt das Metadaten, um das Plug-In-Manager, 483 00:27:18,870 --> 00:27:20,990 , welche ich werde zu konsumieren. 484 00:27:20,990 --> 00:27:24,910 Und in der Hauptfunktion hier, Ich werde dann eine Verbindung 485 00:27:24,910 --> 00:27:30,240 meinen Code zu jenen importierten Plug-Ins. 486 00:27:30,240 --> 00:27:33,420 >> Also ich werde einfach erstellen Sie einige Variablen, 487 00:27:33,420 --> 00:27:36,620 mit den Namen jedes dieser so dass ich sehr schnell auf sie verweisen 488 00:27:36,620 --> 00:27:37,840 in meinem Code. 489 00:27:37,840 --> 00:27:41,840 Der Grund, warum ich den Import Dialog ist, weil ich möchte, dass meine Plug-in 490 00:27:41,840 --> 00:27:44,560 als einen Dialog Plug-in zu handeln. 491 00:27:44,560 --> 00:27:49,320 Und die Art und Weise, die ich bin in der Lage das zu tun, ist es natürlich 492 00:27:49,320 --> 00:27:52,740 verbinden meinen Code für den Dialog Plug-in durch Importieren 493 00:27:52,740 --> 00:27:57,210 und dann durch die Angabe von die Schaffung eines neuen Dialogs variable 494 00:27:57,210 --> 00:28:00,460 und verbinden dass importierte Plug-in. 495 00:28:00,460 --> 00:28:04,820 Und dann durch Definieren meiner Plug-in als neuer Dialog. 496 00:28:04,820 --> 00:28:07,650 >> So in der Initialisierung I möchte meine Plug-in zu definieren. 497 00:28:07,650 --> 00:28:10,440 Und diese Variable Plug-in-Sie werden sehen, 498 00:28:10,440 --> 00:28:14,030 liegt nur häufig verwendete im gesamten Cloud 9 Plug-Ins. 499 00:28:14,030 --> 00:28:16,980 Ich werde instanziieren eine neue Dialog mit einigen Attributen, 500 00:28:16,980 --> 00:28:22,300 geben Sie ihm einen bestimmten Namen, sagen, dass es für Benutzer möglich ist, um es zu schließen. 501 00:28:22,300 --> 00:28:24,960 Dass es dann ein wenig in x zeigen der oberen rechten Ecke, 502 00:28:24,960 --> 00:28:27,529 oder ein wenig-Button in der unten rechts. 503 00:28:27,529 --> 00:28:30,570 Ob ich kann Text aus wählen es, was der Titel dieses Dialogs 504 00:28:30,570 --> 00:28:32,400 wäre, und so weiter. 505 00:28:32,400 --> 00:28:36,330 Nun ist dies nur definiert den Dialog, aber es muss noch nicht zeigen. 506 00:28:36,330 --> 00:28:40,780 Ich habe eigentlich um eine Definition Aktion damit es dargestellt wird. 507 00:28:40,780 --> 00:28:43,490 >> Und wieder, ermutige ich Sie, einen Blick auf die Cloud 9 SDK, 508 00:28:43,490 --> 00:28:46,930 denn es gibt eine Vielzahl Dialoge und sie sind sehr gut dokumentiert. 509 00:28:46,930 --> 00:28:50,500 Sie können die verschiedenen Arten zu sehen dass es, und nutzen sie, 510 00:28:50,500 --> 00:28:55,380 in welcher Plug-in Sie im Sinn haben. 511 00:28:55,380 --> 00:28:58,790 Nun, es geht um eine sein Lastabschnitt und diese Belastung 512 00:28:58,790 --> 00:29:03,390 Funktion wie Sie sich erinnern ist von der Plug-in-Lebenszyklus verwendet 513 00:29:03,390 --> 00:29:07,060 eigentlich alles instanziieren und erhalten Sie alles bereit zu gehen. 514 00:29:07,060 --> 00:29:11,440 Nun, wenn dieses Plug-in geladen wird, weiß ich nicht wollen, dass es sofort zeigen einen Dialog, 515 00:29:11,440 --> 00:29:14,160 weil dieses Plug-In zu laden zusammen mit dem Rest des IDE. 516 00:29:14,160 --> 00:29:17,850 Und wenn ich diese IDE laden, ich will nicht der Dialog automatisch angezeigt. 517 00:29:17,850 --> 00:29:24,170 Ich möchte nur, um zu zeigen, wenn ich klicken Sie auf der Menüpunkt in meinem Menüpunkt Fenster 518 00:29:24,170 --> 00:29:26,760 dass ich, um es vorübergehend hinzuzufügen. 519 00:29:26,760 --> 00:29:29,480 >> Es gibt also zwei verschiedene Schritte hier, die geschehen müssen. 520 00:29:29,480 --> 00:29:32,640 Ich muss ein erstellen Befehl und die Befehls 521 00:29:32,640 --> 00:29:37,940 wird für die tatsächlich verantwortlich sein , die den Dialog über die Cloud 9-IDE. 522 00:29:37,940 --> 00:29:42,670 Und dann habe ich eine Verbindung herstellen, I haben ein neues Fenster-Menü erstellen 523 00:29:42,670 --> 00:29:46,070 Artikel, läuft, dass diesen Befehl. 524 00:29:46,070 --> 00:29:49,740 So dass, wenn ich an diesem Fenster klicken Menüpunkt, dh Befehl dann laufen 525 00:29:49,740 --> 00:29:52,290 und damit meine Dialog wird dann angezeigt. 526 00:29:52,290 --> 00:29:55,690 Und so ist dies eigentlich ein ziemlich schöne Art, darüber nachzudenken. 527 00:29:55,690 --> 00:30:01,480 >> Denn erstens kann ich einen Befehl zu erstellen dessen Name CS50 Seminar Dialog 1, 528 00:30:01,480 --> 00:30:04,860 dass bietet einige allgemeinen Kontext für sie. 529 00:30:04,860 --> 00:30:08,930 Und die wichtige Bit ist hier, beachten Sie die EXEC-Attribut, das 530 00:30:08,930 --> 00:30:15,160 listet eine Funktion, die aufgerufen wird in meiner Plug-in, wenn dieser Befehl ausgeführt wird. 531 00:30:15,160 --> 00:30:21,980 Also dieser Befehl ist so etwas wie a-- es ist nur eine beliebige Cloud 9 532 00:30:21,980 --> 00:30:25,780 Befehl, der verfügbar ist zu jeder Cloud 9 Plug-in. 533 00:30:25,780 --> 00:30:30,290 Aber die eigentliche Funktion, dass es gehen zu nennen, wenn dieser Befehl ausgeführt wird 534 00:30:30,290 --> 00:30:35,010 ist die Show Dialogfunktion in meinem plugin.js Datei. 535 00:30:35,010 --> 00:30:38,550 >> Und wir tatsächlich sehen können Diese Plug-ins und die Liste 536 00:30:38,550 --> 00:30:45,480 von Befehlen, die in verfügbar sind zu uns Einstellungen, blättern Sie ganz down-- 537 00:30:45,480 --> 00:30:48,180 mal sehen, eigentlich machen wir das jetzt? 538 00:30:48,180 --> 00:30:53,180 Plug-in Manager, Nein, ich glaube, es ist ich-- auf jeden Fall hier irgendwo. 539 00:30:53,180 --> 00:31:00,016 Nun, es gibt eine Liste von Befehlen irgendwo, aber ich muss, 540 00:31:00,016 --> 00:31:01,140 Ich habe vergessen, wo es ist. 541 00:31:01,140 --> 00:31:02,430 So OK, wir werden weitermachen. 542 00:31:02,430 --> 00:31:02,930 Gut. 543 00:31:02,930 --> 00:31:05,790 So haben wir eine Liste der Befehle , die uns zur Verfügung stehen, 544 00:31:05,790 --> 00:31:08,550 und jene Befehle dies sind nur willkürliche Cloud 9 545 00:31:08,550 --> 00:31:10,870 Befehle, die spezifischen Code ausführen. 546 00:31:10,870 --> 00:31:13,620 So einfach sollte man nicht vergessen, dass wir gehen, um die Show laufen Dialog 547 00:31:13,620 --> 00:31:15,640 vorübergehend funktionieren. 548 00:31:15,640 --> 00:31:19,740 Nun, wenn ich wirklich wollen, um ein Menü hinzufügen Artikel kann dieses Objekt durch Pfad hinzufügen, 549 00:31:19,740 --> 00:31:25,570 und nur genau, wo ich möchten es zu sein, Window / CS50 Seminar Dialog 1. 550 00:31:25,570 --> 00:31:28,380 Und an diesem Punkt möchte ich um ein neues Element zu erstellen, dass 551 00:31:28,380 --> 00:31:32,040 wird einen Befehl ausführen, CS50 Seminar Dialog 1. 552 00:31:32,040 --> 00:31:36,140 Beachten Sie, dass einmal, das ist die Wolke 9 Befehls Ich habe gerade oben erstellt. 553 00:31:36,140 --> 00:31:38,630 >> Jetzt möchte ich auch erstellen ein wenig Teiler, 554 00:31:38,630 --> 00:31:42,260 und so kann ich das gleiche zu tun in der nachfolgenden Zeile. 555 00:31:42,260 --> 00:31:46,040 Nun werden Sie vielleicht feststellen, dass Teil der diesen Menüpunkt definieren, 556 00:31:46,040 --> 00:31:48,200 Es gibt eine Reihe zugeordnet welcher 557 00:31:48,200 --> 00:31:51,260 tatsächlich sagt, wo genau, Ich möchte, dass Menüpunkt zu sein 558 00:31:51,260 --> 00:31:53,441 in der Liste der Menüs befindet. 559 00:31:53,441 --> 00:31:55,190 Aber Sie vielleicht feststellen, dass ich nicht wirklich 560 00:31:55,190 --> 00:31:59,540 sehen keine Zahlen mit Diese Menüs standardmäßig. 561 00:31:59,540 --> 00:32:04,630 Also gibt es etwas versteckt, was was wir tun können, eine kleine Änderung an unsere URL. 562 00:32:04,630 --> 00:32:12,920 Also zusätzlich SDK = 1 & debug = 2, Ich werde Menü auf 1-- 563 00:32:12,920 --> 00:32:14,690 und hoffentlich ist es im Menü nicht die Menüs. 564 00:32:14,690 --> 00:32:17,001 Oh, es ist Menüs = 1. 565 00:32:17,001 --> 00:32:17,500 Warten Sie mal. 566 00:32:17,500 --> 00:32:20,150 567 00:32:20,150 --> 00:32:24,690 >> Und was wir sehen, dass beim Nachladen IDE ist, dass ich noch immer im Debug-Modus, 568 00:32:24,690 --> 00:32:27,540 aber jetzt gibt es Zahlen mit allen Menüs zugeordnet ist. 569 00:32:27,540 --> 00:32:29,630 Und das Ihnen sagt, genau das, was die Anzahl 570 00:32:29,630 --> 00:32:34,730 ist, wenn Sie versuchen, zu injizieren sind etwas überall in diesem Menüsystem. 571 00:32:34,730 --> 00:32:40,365 So in dem Menü Fenster, kann ich sehen, dass Artikel 45 zusammenarbeiten, 572 00:32:40,365 --> 00:32:43,820 und Artikel 38, bevor es Installateur. 573 00:32:43,820 --> 00:32:47,530 Also, wenn ich will, um zu injizieren ein Element zwischen den beiden, 574 00:32:47,530 --> 00:32:50,570 Ich möchte nur eine Nummer auszuwählen zwischen diesen beiden Positionen. 575 00:32:50,570 --> 00:32:56,200 Also wählte ich 41 und mein Seminar eingeführt Dialog 1 Menüpunkt an dieser Stelle. 576 00:32:56,200 --> 00:33:03,640 >> Und deshalb ist diese Zahl das scheint hier ist die Nummer 41. 577 00:33:03,640 --> 00:33:08,010 Das ist der Ort, dass Menüpunkt in der Cloud 9-Menü. 578 00:33:08,010 --> 00:33:11,045 Jetzt ähnlich, ich wollte einen Teiler zu schaffen 579 00:33:11,045 --> 00:33:13,920 und fügen Sie es so, dass es gibt ein nettes Trennung zwischen jedem dieser Menü 580 00:33:13,920 --> 00:33:14,490 Artikel. 581 00:33:14,490 --> 00:33:18,600 So fügte ich, dass an der Stelle 43. 582 00:33:18,600 --> 00:33:20,260 So weit, so gut, ich hoffe? 583 00:33:20,260 --> 00:33:23,920 So, jetzt wollen wir eigentlich betrachten der spezifische Code in Dialog Show 584 00:33:23,920 --> 00:33:28,050 Das ist eigentlich verantwortlich für dieses Dialogfenster zu öffnen. 585 00:33:28,050 --> 00:33:32,710 >> Scrollen nach unten, ich sehe, dass ich will um diese Funktion zu zeigen Dialog haben, 586 00:33:32,710 --> 00:33:34,730 und es ist extrem einfach. 587 00:33:34,730 --> 00:33:38,570 Ich werde die Show laufen Methode für das Plug-in-Variablen. 588 00:33:38,570 --> 00:33:43,900 Und denken Sie daran, dass wir diese definiert Plug-in-variable oben als Dialog. 589 00:33:43,900 --> 00:33:48,530 So bar Plug-in, in diesem Fall, das ist Objekt, das wir intern definiert haben. 590 00:33:48,530 --> 00:33:53,030 Und es wird ein neuer Dialog sein innerhalb dieses Plug-in enthalten. 591 00:33:53,030 --> 00:33:57,020 Und so haben wir eigentlich diese referenziert Plug-in-variable vielerorts 592 00:33:57,020 --> 00:33:59,790 in einem typischen Cloud 9 Entwicklungsumgebung. 593 00:33:59,790 --> 00:34:00,867 >> Wir werden es hier zu sehen. 594 00:34:00,867 --> 00:34:03,450 Beachten Sie, dass, als wir nach unten scrollen, gibt es zusätzliche Lebenszyklen. 595 00:34:03,450 --> 00:34:06,970 So bemerken, dass diese respond auf Ereignisse, die ausgelöst werden 596 00:34:06,970 --> 00:34:10,500 von diesem Objekt, diesen Dialog Objekt. 597 00:34:10,500 --> 00:34:12,710 Standardmäßig gibt es Be- und Entladen, die 598 00:34:12,710 --> 00:34:14,760 sind für alle Cloud 9 Plug-Ins. 599 00:34:14,760 --> 00:34:17,139 Wobei im Falle von dieser Dialog, gibt es 600 00:34:17,139 --> 00:34:19,139 Ein weiteres Ereignis, kann Feuer als auch genannt 601 00:34:19,139 --> 00:34:23,239 Zu zeichnen, das ausgelöst wird, wenn das ist im Begriff, auf dem Bildschirm gezogen werden, 602 00:34:23,239 --> 00:34:27,239 in der ersten Instanz des Dialogs zeigt. 603 00:34:27,239 --> 00:34:29,590 >> Also, wenn es tatsächlich gehen zu zeigen, 604 00:34:29,590 --> 00:34:31,739 es wird gehen uns zur Verfügung stellen einige HTML. 605 00:34:31,739 --> 00:34:34,710 Und mit nur Standard HTML-Praktiken können wir 606 00:34:34,710 --> 00:34:41,030 injizieren einige sehr einfache Informationen, unsere Hallo Welt, in diesem Dialog. 607 00:34:41,030 --> 00:34:47,780 Wenn wir dann nach oben, können wir dann sehen die Prozession der Dinge 608 00:34:47,780 --> 00:34:48,989 dass es auftritt. 609 00:34:48,989 --> 00:34:54,070 Zuerst werden wir eine Cloud 9 Befehl erstellt , dass, wenn sie von Cloud 9 ausgeführt, 610 00:34:54,070 --> 00:34:55,765 wird diese Funktion ausgelöst. 611 00:34:55,765 --> 00:34:58,390 Es geht um diese Funktion zu starten genannt Show Dialog, dass ich 612 00:34:58,390 --> 00:34:59,720 in meinem Code geschrieben. 613 00:34:59,720 --> 00:35:04,350 >> I einen Menüeintrag erstellt und dafür, dass derselbe Befehl angebracht 614 00:35:04,350 --> 00:35:08,550 dass, wenn das Einzelteil in geklickt das Menü, das wird dann Befehl ausgeführt werden soll 615 00:35:08,550 --> 00:35:10,780 und diese Funktion wird dann ausgeführt. 616 00:35:10,780 --> 00:35:14,080 Und innerhalb der Funktion Ich bin gerade dabei, rufen the-- Ich bin 617 00:35:14,080 --> 00:35:17,250 nur gehen, um die Show ausführen Verfahren dieses Plug-in, das 618 00:35:17,250 --> 00:35:20,800 ist mit dem ersten Anruf gehen das Draw-Verfahren, und gehen 619 00:35:20,800 --> 00:35:28,050 diese Methode unten, das Feuer nach unten ziehen Event-Handler, in unserer Lebenszyklus. 620 00:35:28,050 --> 00:35:30,820 Und dann wird es tatsächlich zeigen den Dialog. 621 00:35:30,820 --> 00:35:34,870 >> Es gibt auch ein hide Methode, so dass wenn ich die Gelegenheit, um sich zu verstecken 622 00:35:34,870 --> 00:35:37,610 meinem Dialog, kann ich das Gleiche zu tun. 623 00:35:37,610 --> 00:35:42,060 Also das ist so ziemlich alles um all dies an die Arbeit. 624 00:35:42,060 --> 00:35:45,160 Beachten Sie, dass es, wenn wir nach unten scrollen weiter gibt es ein Einfrieren der öffentlichen API. 625 00:35:45,160 --> 00:35:51,020 Diese im Grunde nur sagt, dass ich diese Methoden, um effektiv zu wollen 626 00:35:51,020 --> 00:35:56,670 ist öffentlich, aber nicht überschreibbar außerhalb der Rahmen dieses Plug-in. 627 00:35:56,670 --> 00:36:00,410 Und darunter, am unteren Ende, ist vielleicht das letzte, was, 628 00:36:00,410 --> 00:36:03,180 dass wir wirklich brauchen, um zu zahlen viel Aufmerksamkeit auf sich hier, die 629 00:36:03,180 --> 00:36:09,540 ist, dass wir gehen, um zu registrieren, unseren Plug-in mit dem Namen C9 Seminar 1, 630 00:36:09,540 --> 00:36:11,920 und das Objekt-Plug-in. 631 00:36:11,920 --> 00:36:14,870 >> Die, wie Sie sich erinnern werden, ist , dass Plug-in Plug-in 632 00:36:14,870 --> 00:36:18,200 Objekt, das wir seit der Definition über die Gesamtheit der Quelle 633 00:36:18,200 --> 00:36:18,840 Code. 634 00:36:18,840 --> 00:36:23,790 Und C9 Seminar 1 ist die Zeichenfolge, die wir versprochen 635 00:36:23,790 --> 00:36:26,350 an der Spitze zu bieten dieser Definition. 636 00:36:26,350 --> 00:36:29,280 637 00:36:29,280 --> 00:36:29,780 OK. 638 00:36:29,780 --> 00:36:34,160 Lassen Sie uns also Rampe it up ein wenig und sehen, ob wir etwas tun, 639 00:36:34,160 --> 00:36:36,020 ein wenig interessanter. 640 00:36:36,020 --> 00:36:38,350 Nun ist dies nur so groß. 641 00:36:38,350 --> 00:36:41,380 Ich meine, das ist, es ist eigentlich ziemlich cool, dass in so wenigen Zeilen Code, 642 00:36:41,380 --> 00:36:45,570 können wir die vorhandenen IDE ändern und fügen Sie eine vorhandene Menüpunkt 643 00:36:45,570 --> 00:36:48,850 oder fügen Sie einen neuen Menüpunkt, fügen Sie ein Befehl ein, und zeigen einen Dialog, 644 00:36:48,850 --> 00:36:51,040 und nur ein Haufen von Funktionalität, die existiert. 645 00:36:51,040 --> 00:36:54,550 Es ist wirklich ziemlich gut. 646 00:36:54,550 --> 00:36:59,470 >> Aber es bedeutet nicht viel zu tun, da es nicht mit dem zugrunde liegenden Ubuntu kommunizieren 647 00:36:59,470 --> 00:37:00,450 Beispiel. 648 00:37:00,450 --> 00:37:02,560 Also lassen Sie uns sagen, dass ich wirklich wollen, um herauszufinden, 649 00:37:02,560 --> 00:37:05,400 einige Informationen über den Ubuntu Instanz zugrunde liegenden, 650 00:37:05,400 --> 00:37:08,260 wie die Statistiken Plug-in funktioniert. 651 00:37:08,260 --> 00:37:11,090 Werfen wir also einen Blick auf ein etwas mehr Informationen 652 00:37:11,090 --> 00:37:13,730 darüber, wie die Statistik-Plug-in funktioniert. 653 00:37:13,730 --> 00:37:15,900 Und in der Tat ist es sehr ähnlich wie diese. 654 00:37:15,900 --> 00:37:17,680 Sie erinnern sich vielleicht, dass gibt es einen Dialog. 655 00:37:17,680 --> 00:37:21,680 Sie erinnern sich vielleicht, dass es einige Informationen, die ist 656 00:37:21,680 --> 00:37:24,860 nur entlang der Menüleiste entlang gezeigt der obere, die hoffentlich Sie jetzt sind 657 00:37:24,860 --> 00:37:27,450 bekommen einen Eindruck davon, wie wir das umgesetzt, 658 00:37:27,450 --> 00:37:32,360 nur durch Einfügen Menüpunkte zu bestimmten Punkte und durch Instantiieren eines Dialogs 659 00:37:32,360 --> 00:37:34,360 und Anzeigen, dass der Dialog. 660 00:37:34,360 --> 00:37:36,580 >> Aber wir noch nicht gezeigt haben, Sie, wie wir es zu verbinden 661 00:37:36,580 --> 00:37:40,790 auf einen Befehl in die zugrunde liegenden Ubuntu-Instanz. 662 00:37:40,790 --> 00:37:46,930 Werfen wir also einen Blick dann bei plugin.2, was tut genau dieses Ding. 663 00:37:46,930 --> 00:37:50,540 Wir werden zu öffnen plugin.js, Das ist der Code für diese. 664 00:37:50,540 --> 00:37:54,570 Aber unter dem Menü Fenster wenn ich auf Dialog 2 klicken, 665 00:37:54,570 --> 00:37:58,290 können wir sehen, dass er sagt, dass dies statt, hallo CS50, die 666 00:37:58,290 --> 00:38:01,800 sieht nicht alles, was verlockend, nicht wahr? 667 00:38:01,800 --> 00:38:04,310 Außer, beobachten diese. 668 00:38:04,310 --> 00:38:07,020 Lassen Sie mich hier etwas ändern, nach unten. 669 00:38:07,020 --> 00:38:11,540 >> Ich werde zu gehen meine Arbeitsbereich und Veränderung Seminar 670 00:38:11,540 --> 00:38:15,990 um etwas anderes, wie Hallo, Dan sagen. 671 00:38:15,990 --> 00:38:18,150 Ich werde es zu schließen und zu speichern. 672 00:38:18,150 --> 00:38:22,740 Und jetzt werde ich erneut ausgeführt meinem Dialog Menüpunkt. 673 00:38:22,740 --> 00:38:25,590 Und beachten Sie, dass es jetzt geändert, was es sagt. 674 00:38:25,590 --> 00:38:26,880 Hallo, Dan. 675 00:38:26,880 --> 00:38:30,680 Ich scheine etwas nach unten getan haben hier in der zugrunde liegenden Ubuntu-Instanz 676 00:38:30,680 --> 00:38:34,370 ohne jede manipuliert Code, wieder allein laufen 677 00:38:34,370 --> 00:38:35,720 auf der Client-Seite. 678 00:38:35,720 --> 00:38:40,380 Es gibt also offensichtlich eine Art von Kommunikation, die hier passiert. 679 00:38:40,380 --> 00:38:44,550 >> Nun, das ist, wo viele der Macht der Cloud 9 SDK kommt, 680 00:38:44,550 --> 00:38:49,440 ist, dass in diesem plugin.2, wir tatsächlich dazu führen kann 681 00:38:49,440 --> 00:38:52,910 ein Aufruf an die passieren zugrunde liegenden Beispiel 682 00:38:52,910 --> 00:38:55,750 und führen Sie eine beliebige Kommando. 683 00:38:55,750 --> 00:39:00,230 Also in diesem Fall, ich habe tatsächlich erstellt ein sehr einfaches Bash-Skript 684 00:39:00,230 --> 00:39:02,350 in meinem Arbeitsbereich genannt Seminar. 685 00:39:02,350 --> 00:39:03,610 Also lassen Sie mich zu öffnen, dass bis. 686 00:39:03,610 --> 00:39:05,370 Und wir können sehen, dass es so aussieht. 687 00:39:05,370 --> 00:39:08,310 Es ist nur ein sehr einfaches Bash- script, deren einziger Zweck im Leben 688 00:39:08,310 --> 00:39:11,920 sein wird, um echo aus diesem Text, Hallo, Dan. 689 00:39:11,920 --> 00:39:14,360 Oder bevor sie, sagte, es Hallo, CS50. 690 00:39:14,360 --> 00:39:16,000 Und das ist alles, es wird zu tun. 691 00:39:16,000 --> 00:39:21,030 >> Denn dies ist nun ein Befehl, dass ich laufen kann. 692 00:39:21,030 --> 00:39:23,750 Ich kann tatsächlich führen Sie es hier unten. 693 00:39:23,750 --> 00:39:28,440 Wir können sehen, dass es tatsächlich nur ein Befehl, den ich laufen natürlich. 694 00:39:28,440 --> 00:39:32,850 Ich kann meine Plug-in bitten, dies auszuführen, Befehl von der zugrundeliegenden Arbeits 695 00:39:32,850 --> 00:39:36,510 und analysieren die Informationen das wurde von ihm zurückkehrte, 696 00:39:36,510 --> 00:39:40,300 und etwas zu tun mit ihm, und ändern meine Plug-in und das Verhalten, das ich 697 00:39:40,300 --> 00:39:43,240 habe in meiner Plug-in als Ergebnis. OK. 698 00:39:43,240 --> 00:39:45,450 Also mal sehen, wie dies geschieht. 699 00:39:45,450 --> 00:39:48,380 Wir sahen diese sehr einfach Seminar Batch-Skript, das ich 700 00:39:48,380 --> 00:39:51,080 [Unverständlich], dass es tatsächlich auszuführen. 701 00:39:51,080 --> 00:39:54,560 >> Und jetzt sehen Sie die Änderungen lassen , die erforderlich sind, um diese miteinander zu verbinden sind, 702 00:39:54,560 --> 00:39:57,620 mit dem Dialogfenster, und führen Sie es. 703 00:39:57,620 --> 00:40:02,030 Also hier werden wir recht tun viel die gleiche Sache wie wir schon gesehen haben. 704 00:40:02,030 --> 00:40:05,500 Aber beachten Sie, dass unter den Dinge, die ich now-- verbraucht 705 00:40:05,500 --> 00:40:09,090 zusätzlich zu dem Dialog, der wieder ich zufällig zweimal getan haben, 706 00:40:09,090 --> 00:40:14,300 die nicht zusätzlich necessary-- wird auf den Dialog und die Befehle 707 00:40:14,300 --> 00:40:17,780 und die Menüs Plug-Ins, die waren in der ersten für mich notwendig, 708 00:40:17,780 --> 00:40:21,560 um einen neuen Befehl definieren und injizieren ein Element in den Menüs, 709 00:40:21,560 --> 00:40:25,010 Ich habe auch diesen proc-Plug-in. 710 00:40:25,010 --> 00:40:28,500 >> Und das proc Plug-in erlaubt uns, Prozesse zu manipulieren 711 00:40:28,500 --> 00:40:30,950 auf dem darunterliegenden Beispiel. 712 00:40:30,950 --> 00:40:34,970 Ich habe es angeschlossen, nachdem ich sagte, dass meine Plug-In erfordert. 713 00:40:34,970 --> 00:40:38,320 Ich habe dann verbunden ist, um Code, wie wir sahen in der Hauptfunktion. 714 00:40:38,320 --> 00:40:40,970 Auch hier bin ich zu gehen initialisieren meinem Dialog. 715 00:40:40,970 --> 00:40:45,500 Und wenn wir jetzt nach unten zu bewegen, haben wir kann sehen, wie ist das anders. 716 00:40:45,500 --> 00:40:49,040 Die Last ist die gleiche Funktion, so dass ist es nur geht, um einen Befehl zu erstellen 717 00:40:49,040 --> 00:40:54,250 und erstellen Sie einen Menüpunkt und verbinden dass Menüpunkt, um diesen Befehl. 718 00:40:54,250 --> 00:40:56,690 Aber wenn wir jetzt blättern unten, um den Dialog zu zeigen, 719 00:40:56,690 --> 00:40:59,990 wir beginnen können, um zu sehen, wo Die Unterschiede ergeben. 720 00:40:59,990 --> 00:41:04,170 >> Wir haben Funktion Show Dialog, der ist gerade dabei, den Dialog zu zeigen. 721 00:41:04,170 --> 00:41:12,410 Aber wenn ich diesen Dialog zu zeigen, und wenn die Show-Methode aufgerufen wird, 722 00:41:12,410 --> 00:41:14,430 Es feuert die Zeichenfunktion. 723 00:41:14,430 --> 00:41:18,990 Und ich werde Sie dann einige Inhalte innerhalb davon. 724 00:41:18,990 --> 00:41:21,910 Also ich werde einfach erstellen Sie einen div, auszustatten, 725 00:41:21,910 --> 00:41:24,020 einige grundlegende Text, Hallo, Welt. 726 00:41:24,020 --> 00:41:27,250 Aber beachten Sie, dass ich hier bin werde, um es eine ID zu befestigen. 727 00:41:27,250 --> 00:41:32,350 Und schon am nächsten Linie werde ich , dass die ID zu finden mit Hilfe von JavaScript, 728 00:41:32,350 --> 00:41:36,210 und speichern Sie das Objekt in einen anderen Variablen 729 00:41:36,210 --> 00:41:38,280 dass ich werde einfach Inhalte aufrufen. 730 00:41:38,280 --> 00:41:41,780 >> So, jetzt, wenn ich Inhalte, alles, was ich tun müssen, 731 00:41:41,780 --> 00:41:46,100 Nur Innen HTML dieses Objekts zu ändern. 732 00:41:46,100 --> 00:41:51,300 Und der Dialog HTML wird dann auch modifiziert werden. 733 00:41:51,300 --> 00:41:55,500 So, wenn dieses Plug-in ist dann gezeigt, was passieren kann, 734 00:41:55,500 --> 00:41:59,820 und dies ist ein neues Event das ist neu in diesem Plug-in, 735 00:41:59,820 --> 00:42:03,380 aber passiert in jedem Plug-in mit der Dialog, wenn dies nun gezeigt, 736 00:42:03,380 --> 00:42:07,100 Ich gehe, um einen Anruf Funktion namens Fetch Info. 737 00:42:07,100 --> 00:42:10,520 Und diese Funktion das Fleisch von hier. 738 00:42:10,520 --> 00:42:14,930 Ich werde diesen proc-Plug-in verwenden, wir zuvor beschrieben, die durch die Art und Weise, 739 00:42:14,930 --> 00:42:19,790 ist wirklich nur ein Node.js Bibliothek dass Cloud 9 ist mit hier. 740 00:42:19,790 --> 00:42:21,730 >> Kann man so eigentlich sehen, wie dieses 741 00:42:21,730 --> 00:42:25,340 funktioniert, wenn Sie in der go Node.js Dokumentation 742 00:42:25,340 --> 00:42:29,220 und suchen Sie die exec-Datei Verfahren für Prozesse gibt. 743 00:42:29,220 --> 00:42:33,110 Ich werde dieses spezielle laufen Befehl, zu Hause Ubuntu-Arbeitsbereich 744 00:42:33,110 --> 00:42:38,000 Seminar, das das gleiche ist, dass gleichen Befehl, den ich vor erstellt. 745 00:42:38,000 --> 00:42:40,680 Geben Sie es zu einem Strom Arbeitsverzeichnis, nur 746 00:42:40,680 --> 00:42:45,440 um extrem sicher in Bezug auf das sein, Rahmen, wo dieser läuft. 747 00:42:45,440 --> 00:42:49,150 Und einmal, dass ist ausgefüllt und zurückgeschickt, 748 00:42:49,150 --> 00:42:54,040 Ich werde dies ausführen Funktion namens Parse-Ausgang. 749 00:42:54,040 --> 00:42:54,540 OK. 750 00:42:54,540 --> 00:42:58,670 Also diese dann wird die Ausführung ein Befehl auf dem lokalen oder vielmehr 751 00:42:58,670 --> 00:43:01,700 dem fernen Ubuntu-Instanz. 752 00:43:01,700 --> 00:43:03,490 Wenn ich wieder einige Informationen, ich bin dann 753 00:43:03,490 --> 00:43:06,940 gehen, um eine separate Funktion aufrufen genannte Parsing-Ausgabe, dass 754 00:43:06,940 --> 00:43:13,790 hat diese Unterschrift hier, äh, stdout, stderr, 755 00:43:13,790 --> 00:43:15,910 und führen eine Berechnung zu diesem Thema. 756 00:43:15,910 --> 00:43:18,930 Also, wenn ich eine Fehlermeldung erhalten von einer Art überhaupt, 757 00:43:18,930 --> 00:43:22,340 Ich werde wirklich zu überprüfen, um zu sehen, wenn Fehler tatsächlich einige Daten. 758 00:43:22,340 --> 00:43:27,204 Und wenn ja, dann werde ich die innere ändern HTML dieses Inhaltsobjekt, das 759 00:43:27,204 --> 00:43:28,995 Sie ist, wir erinnern uns zum Dialog verbunden 760 00:43:28,995 --> 00:43:32,210 am instantiattion davon Dialog, oder bei der ersten Zeichnung 761 00:43:32,210 --> 00:43:33,370 dieses Dialogs. 762 00:43:33,370 --> 00:43:35,650 Ich werde einfach sagen, dass einige Fehler passiert ist. 763 00:43:35,650 --> 00:43:37,140 >> Nun, das ist zu einfach. 764 00:43:37,140 --> 00:43:40,170 Der Fehlerwert wird in der Regel enthalten etwas, das nützlich war, 765 00:43:40,170 --> 00:43:45,520 vielleicht eine Fehlernummer und eine Fehler vom Skript selbst. 766 00:43:45,520 --> 00:43:48,430 Oder, wenn das Skript schrieb, etwas, Standardfehler, 767 00:43:48,430 --> 00:43:50,890 dass überhaupt Daten bevölkert in diesem Parameter als auch. 768 00:43:50,890 --> 00:43:53,765 Und ich könnte etwas sein, mehr darauf achten, was Fehler 769 00:43:53,765 --> 00:43:55,332 Eigentlich bin ich, die Menschen. 770 00:43:55,332 --> 00:43:57,415 Aber dieses einfache Beispiel ist gut genug für jetzt 771 00:43:57,415 --> 00:43:59,715 zumindest zu sehen, wie das alles funktioniert. 772 00:43:59,715 --> 00:44:01,590 Andernfalls, wenn es kein Fehler, dann bin ich einfach nur 773 00:44:01,590 --> 00:44:05,500 gehen, um die rohen liefern Ausgang dieses Funktions 774 00:44:05,500 --> 00:44:10,070 in die innere HTML dieser Inhalte Element, und dann meine Plug-in aktualisieren 775 00:44:10,070 --> 00:44:12,490 und zeigen Sie es hier. 776 00:44:12,490 --> 00:44:17,550 Und das ist so ziemlich alles, was notwendig, um dies zu laufen. 777 00:44:17,550 --> 00:44:22,860 Und so lassen Sie uns über dann denken wie diese tätig ist, insgesamt. 778 00:44:22,860 --> 00:44:29,330 Als ich das erste Plug-in geladen wird dieses, ebenso wie die erste Steckverbindung, 779 00:44:29,330 --> 00:44:32,670 Ich werde einen Befehl, ist hinzuzufügen, zur Verfügung, alles, zu jeder Plug-in 780 00:44:32,670 --> 00:44:37,120 in Cloud 9, genannt CS50 Seminar Dialog 2, dessen Verantwortung 781 00:44:37,120 --> 00:44:39,670 wird es sein, diese Show zu laufen Dialog, der Sie sich erinnern wird, 782 00:44:39,670 --> 00:44:42,730 tatsächlich zeigen den Dialog dass ich unter angefordert. 783 00:44:42,730 --> 00:44:45,980 >> Dann werde ich hinzufügen, dass Befehl in ein Fenstermenü 784 00:44:45,980 --> 00:44:48,070 so dass ich Zugriff auf das. 785 00:44:48,070 --> 00:44:51,420 Und wenn dieser Dialog aufgefordert wird, angezeigt werden können, 786 00:44:51,420 --> 00:44:55,170 Ich werde ein paar Informationen von fetch die zugrunde liegende Ubuntu-Instanz 787 00:44:55,170 --> 00:44:58,890 unter Verwendung der exec Befehl file. 788 00:44:58,890 --> 00:44:59,920 Entschuldigen Sie. 789 00:44:59,920 --> 00:45:04,140 Sobald dies zurück und ich erhalte einige Informationen dann auf der Client-Seite 790 00:45:04,140 --> 00:45:08,370 wieder, ich in der Lage zu analysieren die Ausgabe dieses Befehls 791 00:45:08,370 --> 00:45:12,650 und aktualisieren Sie die Innen HTML-Elemente 792 00:45:12,650 --> 00:45:16,440 dass wir früher verbunden war. 793 00:45:16,440 --> 00:45:19,910 >> Und damit, so haben wir Diese voll funktionsfähige Plug-in 794 00:45:19,910 --> 00:45:24,520 dass mir erlaubt, Informationen zu holen von dieser beliebigen Script- 795 00:45:24,520 --> 00:45:27,170 dass wir am erstellt unsere zugrunde liegenden Instanz. 796 00:45:27,170 --> 00:45:29,660 Aber noch einmal, es ist wirklich wichtig und wirklich Schlüssel 797 00:45:29,660 --> 00:45:33,030 zu trennen, wo jedes diese Dinge passiert, 798 00:45:33,030 --> 00:45:38,320 dass wir alle von diesem Client-Seite Code, der im Browser ausgeführt wird, 799 00:45:38,320 --> 00:45:41,640 und für die noch kein Zugang zu dem zugrunde liegenden Dateisystem 800 00:45:41,640 --> 00:45:44,895 bis wir tatsächlich laufen einige von ihnen Befehle, die von der Wolke vorgesehen sind 801 00:45:44,895 --> 00:45:49,055 9 SDK wie proc, und einige andere, die dass es uns ermöglichen, einige Daten zu lesen, 802 00:45:49,055 --> 00:45:53,500 oder lesen Sie einige Dateien, wenn wir brauchen, um etwas Derartiges zu tun. 803 00:45:53,500 --> 00:45:56,650 >> Nun ist dies eine etwas einfaches Beispiel. 804 00:45:56,650 --> 00:46:00,570 Es gibt andere Dinge, die wir wäre vielleicht wollen auch. 805 00:46:00,570 --> 00:46:03,470 Zum Beispiel, vielleicht haben wir tatsächlich wollen einige Informationen zu speichern 806 00:46:03,470 --> 00:46:04,630 den Präferenzen. 807 00:46:04,630 --> 00:46:07,900 Oder vielleicht wollen wir fügen Sie eine neue Einstellungsfenster 808 00:46:07,900 --> 00:46:09,690 oder etwas in diese Richtung. 809 00:46:09,690 --> 00:46:13,370 Dann ist das etwas, was Sie können Sie einen Blick auf der Cloud 9 SDK nehmen 810 00:46:13,370 --> 00:46:15,300 um weitere Informationen zu erhalten. 811 00:46:15,300 --> 00:46:19,990 Aber das ist wirklich genug, um loszulegen. 812 00:46:19,990 --> 00:46:26,410 Also, nur um etwas konkreter zu werden über die Art und Weise, dass einige dieser Dinge, 813 00:46:26,410 --> 00:46:31,370 Funktion, ich wollte nur zeigen, ein weiteres Beispiel, das nur einige ist 814 00:46:31,370 --> 00:46:35,580 der Code von der Statistik 50 Plug-in. 815 00:46:35,580 --> 00:46:39,780 >> Und dieser Code ist im Grunde auf der Grundlage dieser Beispiele 816 00:46:39,780 --> 00:46:43,310 dass Sie tatsächlich gesehen haben, hat aber einige weitere Sicherheitsvorkehrungen 817 00:46:43,310 --> 00:46:47,460 und hat etwas mehr Aufwand, um um einige der zusätzlichen Dinge zu erreichen 818 00:46:47,460 --> 00:46:48,930 dass wir erreichen wollen. 819 00:46:48,930 --> 00:46:54,510 Zum Beispiel, wenn ich sein will Deshalb sind einige Einstellungen zu speichern, 820 00:46:54,510 --> 00:46:57,700 dann muss ich Zugriff haben Um die Einstellungen zu Plug-in, 821 00:46:57,700 --> 00:47:01,820 und jedesmal, wenn ich will einige Einstellungen zu lesen, 822 00:47:01,820 --> 00:47:08,340 I kann beispielsweise an verschiedene befestigen Veranstaltungen in den Einstellungen-Plug-in. 823 00:47:08,340 --> 00:47:13,630 Also jedes Mal die Einstellungen ist rot, beispielsweise in meinem eigenen Plug-in, 824 00:47:13,630 --> 00:47:18,450 wenn ich werde einige lesen Einstellungen aus der gespeicherten Speicher 825 00:47:18,450 --> 00:47:24,540 Präferenzen des Benutzers, dann kann ich Standardeinstellungen für einen bestimmten Ort, 826 00:47:24,540 --> 00:47:31,250 für spezifische Präferenz, dadurch gekennzeichnet, dass JSON Style-Optionen-Datei, die wir 827 00:47:31,250 --> 00:47:33,890 zuvor gespeichert haben, dass wir früher gesehen haben. 828 00:47:33,890 --> 00:47:36,370 >> Und wenn ich werde schreiben einige Einstellungen, um es, 829 00:47:36,370 --> 00:47:40,440 dann habe ich can-- oder sobald wir erkennen, dass die Einstellungen wurden geschrieben 830 00:47:40,440 --> 00:47:44,420 zu-- weil beispielsweise solche, Einstellungen durch den Benutzer modifiziert wurde 831 00:47:44,420 --> 00:47:47,335 entweder direkt in ihre Einstellungen Datei oder das Einstellungsfenster 832 00:47:47,335 --> 00:47:49,370 hat sich die Einstellungen verändert Datei direkt, dann 833 00:47:49,370 --> 00:47:53,590 Ich kann tatsächlich ein Teil des Codes zu aktualisieren oder aktualisieren Sie das Verhalten meines Plug-in 834 00:47:53,590 --> 00:47:58,710 auf der Grundlage dieser Änderungen, haben trat auf der Einstellungsdatei sowie. 835 00:47:58,710 --> 00:48:03,380 Aber wirklich, der Rest ist ziemlich sehr diese, die Sie bereits gesehen haben. 836 00:48:03,380 --> 00:48:06,040 >> Wir fügen einige, vielleicht etwas, das neu ist. 837 00:48:06,040 --> 00:48:09,440 Also haben wir eine Präferenz-Datei hinzufügen, oder vielmehr eine Systemeinstellung, 838 00:48:09,440 --> 00:48:14,250 auf den Präferenzen Fenster, was wiederum finden Sie weitere Informationen 839 00:48:14,250 --> 00:48:16,220 in der Cloud 9 SDK las mir. 840 00:48:16,220 --> 00:48:18,460 Aber alles andere ist so ziemlich, ziemlich 841 00:48:18,460 --> 00:48:25,810 ähnlich dem, was wir zuvor gesehen haben, gerade mit einigen zusätzlichen Fehlerprüfung 842 00:48:25,810 --> 00:48:30,150 und einige zusätzliche Schutzmaßnahmen und einige zusätzliche Funktionen 843 00:48:30,150 --> 00:48:33,314 alle verschiedene Feature Dinge, die wir gesehen haben. 844 00:48:33,314 --> 00:48:35,230 Wenn Sie nicht wirklich es noch nicht gesehen, könnte man 845 00:48:35,230 --> 00:48:40,955 werden sich fragen, was die zugrunde liegende Befehl ist in der Statistik 50 Fenster. 846 00:48:40,955 --> 00:48:42,840 Es ist eigentlich Funktion. 847 00:48:42,840 --> 00:48:48,100 Nun, ist-- es oh, verdammt. 848 00:48:48,100 --> 00:48:49,410 Eine Sekunde. 849 00:48:49,410 --> 00:48:49,910 Warten Sie mal. 850 00:48:49,910 --> 00:48:52,270 OK. 851 00:48:52,270 --> 00:48:58,090 Lassen Sie mich diese nach oben, so können wir tatsächlich sehen, was passiert, wenn ich schreibe Stats 50. 852 00:48:58,090 --> 00:49:02,140 Beachten Sie, dass in diesem Fall das Befehl, den ich aus setzen 853 00:49:02,140 --> 00:49:06,310 ist wirklich wieder, nur das Skript, das ist geht die Ausgabe einer Reihe von Informationen 854 00:49:06,310 --> 00:49:08,040 im JSON-Format. 855 00:49:08,040 --> 00:49:10,800 Und der Grund dafür, dass wir es zu tun auf diese Weise ist, dass, weil wir 856 00:49:10,800 --> 00:49:15,480 in Betrieb sind, weil wir geschrieben haben, die Client-Seite Code in JavaScript, 857 00:49:15,480 --> 00:49:19,500 wir können sehr leicht gerade analysieren JavaScript-Objekte, 858 00:49:19,500 --> 00:49:23,050 und wirklich in der Lage zu manipulieren diese Objekte genau wie wir würden 859 00:49:23,050 --> 00:49:24,610 andere JavaScript-Objekt. 860 00:49:24,610 --> 00:49:27,650 >> Und so ist dies ein sehr bequemer Art der Bereitstellung einige Informationen 861 00:49:27,650 --> 00:49:31,950 von der zugrunde liegenden Ubuntu Beispiel wie die Versionsnummer der Host 862 00:49:31,950 --> 00:49:36,360 zu nennen, ob ein Server empfangsbereit ist, was der Server ist, so weiter und so fort, 863 00:49:36,360 --> 00:49:39,150 und analysieren, dass sehr einfach und sehr schnell 864 00:49:39,150 --> 00:49:44,870 in der Plug-in, dann gehen um uns zu zeigen, all diese Informationen. 865 00:49:44,870 --> 00:49:47,920 Also noch einmal, die wichtige Einblicke hier im Auge zu behalten 866 00:49:47,920 --> 00:49:54,260 ist dies der Abstand zwischen das zugrundeliegende Beispiel 867 00:49:54,260 --> 00:49:57,490 und auch, wo der Code geladen. 868 00:49:57,490 --> 00:49:59,870 Dass, wenn Ich habe einen Klienten, seinen ersten Belastung. 869 00:49:59,870 --> 00:50:03,951 Nur diese statischen JavaScript-Datei aus irgendwo, vielleicht CDN in irgendeiner Form. 870 00:50:03,951 --> 00:50:06,450 Wir haben nicht wirklich zu kümmern zu viel über diesen ersten Schritt. 871 00:50:06,450 --> 00:50:08,970 >> Wir wissen nur, dass es auf der Clientseite ausgeführt wird 872 00:50:08,970 --> 00:50:12,740 und das ist, wenn ich mit gehen kommunizieren mit diesem docker Instanz. 873 00:50:12,740 --> 00:50:15,970 Dass wir gehen, dies zu tun durch die Cloud 9 SDK. 874 00:50:15,970 --> 00:50:20,460 Wir haben nicht wirklich die Fähigkeit haben, mit Hilfe von JavaScript oder Node.js, 875 00:50:20,460 --> 00:50:21,750 direkt an sie zu schreiben. 876 00:50:21,750 --> 00:50:29,400 Wir jene vorhandenen SDK verwenden nur APIs, um diese Handlung für uns tun. 877 00:50:29,400 --> 00:50:32,490 Und wieder, eine der wirklich wichtigen Dinge 878 00:50:32,490 --> 00:50:38,990 ist, dass, wenn ich diese erstellt, wenn ich dieses Plug-in erstellt, 879 00:50:38,990 --> 00:50:42,510 und wie ich arbeite daran, ein der wichtigsten Dinge zu tun 880 00:50:42,510 --> 00:50:44,840 ist es, rufen Sie die JavaScript-Konsole. 881 00:50:44,840 --> 00:50:49,400 >> Denn seit das ist alles die auf der JavaScript, 882 00:50:49,400 --> 00:50:54,700 Auf der Client-Seite, wenn ich a console.log method-- so einfach 883 00:50:54,700 --> 00:50:56,550 um ein Beispiel hier zeigen. 884 00:50:56,550 --> 00:51:07,630 Lassen Sie uns versuchen, diese einfache Modifikation Plug-in, um auch einige Daten zu protokollieren. 885 00:51:07,630 --> 00:51:09,895 Und wir werden die Standardausgabe hinzuzufügen. 886 00:51:09,895 --> 00:51:13,010 887 00:51:13,010 --> 00:51:16,810 Lassen Sie uns so ändern, dass zu Recht hier zu sein. 888 00:51:16,810 --> 00:51:19,560 Nun, wenn ich ausführen console.log, bedenken Sie, 889 00:51:19,560 --> 00:51:21,630 dass seit diesem ausgeführt wird Auf der Client-Seite, 890 00:51:21,630 --> 00:51:24,900 Ich werde das in meinem eigenen zu sehen JavaScript-Konsole, die 891 00:51:24,900 --> 00:51:28,540 So habe ich dann in der Lage, versuchen, zu beheben und zu debuggen 892 00:51:28,540 --> 00:51:30,330 einige der Probleme, die ich habe. 893 00:51:30,330 --> 00:51:34,110 >> Beachten Sie, dass, weil Ich bin in der SDK-Modus Ich bin 894 00:51:34,110 --> 00:51:37,820 dann in der Lage zu manipulieren Plug-Ins für diese Instanz. 895 00:51:37,820 --> 00:51:39,800 Also auch wenn es auf dieser Instanz gespeichert, 896 00:51:39,800 --> 00:51:47,130 dies ist das ein Beispiel für die vorangegangene Regel verletzt werden, in dem die Cloud 9 897 00:51:47,130 --> 00:51:51,030 SDK Plug-Ins von der tatsächlich zu ziehen zugrunde liegenden Instanz und führen Sie sie. 898 00:51:51,030 --> 00:51:54,440 So dass auf diese Weise, ich bin dann in der Lage, zu manipulieren und zu konstruieren, 899 00:51:54,440 --> 00:51:55,750 Einige Plug-Ins Sie hier. 900 00:51:55,750 --> 00:51:58,080 Aber um für mich zu sehen Bei Neuigkeiten zu diesem Plug-in, 901 00:51:58,080 --> 00:52:01,880 weil es auf der Client-Seite, Ich brauche, um diese Plug-in sparen 902 00:52:01,880 --> 00:52:04,950 und laden Sie dann den gesamten Arbeitsbereich, so dass das neue Plug-in ist dann 903 00:52:04,950 --> 00:52:09,230 auf meinen Client heruntergeladen, auf mein Web-Browser, und dann verwendet wird. 904 00:52:09,230 --> 00:52:14,460 >> So, jetzt, wenn ich an diesem Seminar klicken Dialog 2, noch sehen wir dies. 905 00:52:14,460 --> 00:52:21,311 Aber jetzt hoffentlich in meinem JavaScript Dialog, sollten wir sehen, my-- warten, 906 00:52:21,311 --> 00:52:21,810 warten Sie mal. 907 00:52:21,810 --> 00:52:24,420 Ich hätte den Dialog frischen öffnen. 908 00:52:24,420 --> 00:52:30,230 Wir sollten meiner empfangenen Daten finden Sie hier. 909 00:52:30,230 --> 00:52:32,780 Empfangenen Daten, Hallo, Dan, die Sie sich erinnern, ist, 910 00:52:32,780 --> 00:52:37,770 war ein console.log Betrieb, dass die in der Steck angefordert. 911 00:52:37,770 --> 00:52:42,140 Also diese Beschreibung dann dass ich schon erwähnt, 912 00:52:42,140 --> 00:52:45,460 dieser Dialog, oder diese Diagramm vielmehr, dass ich 913 00:52:45,460 --> 00:52:49,140 erwähnt ist, was passiert. 914 00:52:49,140 --> 00:52:53,150 Aber es ist eine wichtige Ausnahme nur für die Entwicklung, 915 00:52:53,150 --> 00:52:55,490 nämlich dass die Steck selbst könnte in der Tat 916 00:52:55,490 --> 00:52:59,160 auf der Hafenarbeiter-Instanz gespeichert werden vorübergehend, da vermutlich Cloud 9 917 00:52:59,160 --> 00:53:02,210 will uns nicht in der Lage zu sein, Objekte auf ihre CDN manipulieren. 918 00:53:02,210 --> 00:53:08,650 >> Und die Cloud 9-Clients, bei Belastung, werden diese Plug-Ins, dass zu finden. 919 00:53:08,650 --> 00:53:11,540 C9-Plug-in-Ordner, und laden Sie diese. 920 00:53:11,540 --> 00:53:15,780 Aber das sind noch geschieht nur auf der Client-Seite. 921 00:53:15,780 --> 00:53:19,440 Also das ist nur die eine Ausnahme, die nur auftritt, 922 00:53:19,440 --> 00:53:23,220 für die Entwicklung von Cloud 9 Plug-Ins. 923 00:53:23,220 --> 00:53:25,000 Aber der Rest der Zeit-- und der Grund, 924 00:53:25,000 --> 00:53:26,708 dass wir wollen wirklich hämmern diese home-- 925 00:53:26,708 --> 00:53:30,140 ist, weil die meiste Zeit ist gehen, um von der CDN ausgeführt werden, 926 00:53:30,140 --> 00:53:33,030 und gerade dabei, ausgeführt werden, rein aus der Client-Seite. 927 00:53:33,030 --> 00:53:36,110 >> Normalerweise werden keine sein Interaktion mit der Steckverbindung, 928 00:53:36,110 --> 00:53:39,840 oder es muss nicht einmal zu einem sein Grund dafür, dass die Plug-Ins selbst 929 00:53:39,840 --> 00:53:42,970 tatsächlich auf die gespeicherte docker Instanz zugrunde liegenden, 930 00:53:42,970 --> 00:53:47,240 außer im Fall von Dieses SDK Entwicklung. 931 00:53:47,240 --> 00:53:51,510 Also noch einmal, ändert dies nur leicht aufgrund der Tatsache 932 00:53:51,510 --> 00:53:54,650 dass wir laufen SDK-Modus. 933 00:53:54,650 --> 00:53:57,160 Es wird dann zu laden diejenigen, Plug-Ins von der Entwicklung, 934 00:53:57,160 --> 00:54:01,690 und der einzige Zweck ist hier so, dass Ich kann Cloud 9 verwenden, um Entwicklung zu tun 935 00:54:01,690 --> 00:54:04,620 für Cloud 9 Plugins. 936 00:54:04,620 --> 00:54:07,220 Aber auch so, dies nicht zu ändern wieder, wie jeder das funktioniert. 937 00:54:07,220 --> 00:54:09,650 Es ist immer noch laufen vollständig auf der Client-Seite. 938 00:54:09,650 --> 00:54:16,260 >> Es bedeutet nur, dass, wann immer ich will erstellen Cloud 9-Plug-Ins in Cloud 9, 939 00:54:16,260 --> 00:54:19,320 Ich erstelle diese Plug-Ins, steckte sie in meine. 940 00:54:19,320 --> 00:54:25,110 C9 Ordner / plugins in meinem Haus Verzeichnis, stellen Sie sicher, ich bin in SDK-Modus, 941 00:54:25,110 --> 00:54:29,290 laden Sie die Seite jedes Mal, wenn ich tatsächlich Änderungen an diesem Plug-in, 942 00:54:29,290 --> 00:54:33,590 und sehen, was passiert, in meine JavaScript-Konsole. 943 00:54:33,590 --> 00:54:36,240 Just my JavaScript verwalten trösten, um sicherzustellen, 944 00:54:36,240 --> 00:54:38,930 dass jeder Fehlerbehebung Informationen, die ich setzen, um zu trösten, 945 00:54:38,930 --> 00:54:41,920 oder irgendetwas anderes, die auftreten können wegen der Fehler, die ich geschrieben habe, 946 00:54:41,920 --> 00:54:44,940 in meinem Code oder dergleichen, scheint es. 947 00:54:44,940 --> 00:54:48,007 >> Und damit ist es wirklich genug, um zu beginnen, ich glaube, 948 00:54:48,007 --> 00:54:49,090 mit den Cloud 9 Plug-Ins. 949 00:54:49,090 --> 00:54:53,120 Vor allem, einen Blick auf den SDK Dokumentation, die Cloud 9 bietet. 950 00:54:53,120 --> 00:54:56,650 Es ist eine großartige Möglichkeit, um gestartet wird und sehr einfach 951 00:54:56,650 --> 00:54:59,900 erstellen Sie einige Plug-Ins für Cloud 9. 952 00:54:59,900 --> 00:55:02,820 Und damit möchte ich danken, Ihnen allen sehr für den Beitritt mich. 953 00:55:02,820 --> 00:55:05,550 Ich hoffe, Sie haben Spaß Schreiben von Plug-Ins für Cloud 9. 954 00:55:05,550 --> 00:55:09,600 Vielleicht ist die Verbesserung der Plug-ins dass wir jetzt, oder vielleicht sogar 955 00:55:09,600 --> 00:55:11,360 Hinzufügen einige Funktionen des eigenen. 956 00:55:11,360 --> 00:55:14,540 Wir freuen uns auf Ihren Besuch was es ist, die Sie erstellen. 957 00:55:14,540 --> 00:55:16,330 Bis dahin, bye. 958 00:55:16,330 --> 00:55:18,734