1 00:00:00,000 --> 00:00:05,159 2 00:00:05,159 --> 00:00:09,240 >> DAN ARMENDARIZ: Ciao, e benvenuto un seminario CS50 sulla personalizzazione Cloud 9, 3 00:00:09,240 --> 00:00:11,724 e l'IDE CS50. 4 00:00:11,724 --> 00:00:13,640 Così oggi stiamo andando a solo parlare un po ' 5 00:00:13,640 --> 00:00:16,090 su alcune delle informazioni tecniche 6 00:00:16,090 --> 00:00:19,380 va dietro l'architettura di Cloud 9, e in che modo 7 00:00:19,380 --> 00:00:25,560 abbiamo implementato alcuni dei plug-in come parte di Cloud 9 per fornire CS50 IDE. 8 00:00:25,560 --> 00:00:28,820 Così facciamo solo saltare a destra e cominciare a parlare di plug-in. 9 00:00:28,820 --> 00:00:32,659 >> Così plug-in sono davvero al cuore dell'esperienza Cloud 9. 10 00:00:32,659 --> 00:00:37,590 Cloud 9 è la tecnologia di base che fornisce a noi l'IDE, 11 00:00:37,590 --> 00:00:42,160 e anche la finestra del terminale al fondo, insieme alla workspace-- 12 00:00:42,160 --> 00:00:46,430 Ubuntu workspace-- che abbiamo utilizzare per compilare tutti i nostri progetti 13 00:00:46,430 --> 00:00:49,190 ed eseguire i nostri insiemi di problemi, completare i nostri insiemi di problemi. 14 00:00:49,190 --> 00:00:51,820 Ma al centro di tutto di esso, tutta la tecnologia 15 00:00:51,820 --> 00:00:54,590 è in realtà solo un mucchio di plug-in. 16 00:00:54,590 --> 00:00:58,740 Tutto è un plug-in che possono essere modificate, 17 00:00:58,740 --> 00:01:00,710 estesa, è possibile creare i propri plug-in, 18 00:01:00,710 --> 00:01:03,060 è possibile rimuovere altri plug-in, di modificare davvero 19 00:01:03,060 --> 00:01:07,540 un sacco di funzionalità dell'esistente Cloud 9 IDE. 20 00:01:07,540 --> 00:01:12,040 >> Quindi questo è un esistente Cloud 9 ambiente. 21 00:01:12,040 --> 00:01:14,750 Questo è in realtà solo la predefinito Cloud 9 ambiente. 22 00:01:14,750 --> 00:01:18,450 E dare un'occhiata a come è realmente è diverso da quello IDE CS50. 23 00:01:18,450 --> 00:01:20,340 Quindi questo è l'IDE CS50. 24 00:01:20,340 --> 00:01:25,060 Si noti che ci sono alcuni visiva modifiche tra il regolare Cloud 9 25 00:01:25,060 --> 00:01:28,000 ambiente e l'IDE CS50. 26 00:01:28,000 --> 00:01:30,010 In particolare, ti notare un paio di modifiche. 27 00:01:30,010 --> 00:01:34,201 Prima di tutto, c'è meno le voci di menu per cominciare. 28 00:01:34,201 --> 00:01:36,200 C'è in realtà un modo che si può cambiare la situazione. 29 00:01:36,200 --> 00:01:37,270 Si chiama Simple Mode. 30 00:01:37,270 --> 00:01:40,910 >> Per impostazione predefinita, la modalità semplice è abilitato, e che semplifica alcune delle voci di menu. 31 00:01:40,910 --> 00:01:43,032 Si rimuove alcune delle quelle più avanzate, 32 00:01:43,032 --> 00:01:45,240 perché, francamente, un sacco di gli studenti che stanno arrivando 33 00:01:45,240 --> 00:01:48,550 e non hanno bisogno di conoscere alcuni delle caratteristiche più avanzate 34 00:01:48,550 --> 00:01:50,530 Non sono sopraffatti con una serie di opzioni. 35 00:01:50,530 --> 00:01:55,610 Ma noi fornire la capacità di prendere fuori quei cosiddetti rotelle 36 00:01:55,610 --> 00:01:57,360 e rimuovere tale impalcature modo che le persone 37 00:01:57,360 --> 00:02:00,832 può diventare più abituati a le funzionalità avanzate di IDE. 38 00:02:00,832 --> 00:02:02,540 Subito a a destra di questo, non c'è 39 00:02:02,540 --> 00:02:05,435 anche un pulsante di debug, che nello standard Copertura 40 00:02:05,435 --> 00:02:08,199 9 ambiente si chiama semplicemente correre. 41 00:02:08,199 --> 00:02:11,990 Ma per impostazione predefinita, abbiamo configurato il pulsante di debug nel CS50 IDE 42 00:02:11,990 --> 00:02:15,500 per far apparire il debugger, compila automaticamente il codice sorgente, 43 00:02:15,500 --> 00:02:17,940 collegare il debugger al GDB-- sottostante 44 00:02:17,940 --> 00:02:21,430 e dal momento che è in esecuzione per eseguire il debugging-- e alcune altre misure 45 00:02:21,430 --> 00:02:22,580 anche. 46 00:02:22,580 --> 00:02:25,370 Anche la finestra del terminale al very-- o meglio il terminale 47 00:02:25,370 --> 00:02:29,010 linguetta sezione alla console finestra nella parte inferiore dello schermo, 48 00:02:29,010 --> 00:02:31,004 è stato rinominato per essere semplicemente terminale. 49 00:02:31,004 --> 00:02:32,837 Considerando che la norma Cloud 9 ambiente, 50 00:02:32,837 --> 00:02:35,830 in realtà mostra il in esecuzione l'applicazione. 51 00:02:35,830 --> 00:02:39,140 In questo modo, si semplifica, di nuovo, l'interfaccia grafica, solo un po '. 52 00:02:39,140 --> 00:02:42,310 >> Abbiamo anche aggiunto alcuni pulsanti in alto a destra dell'IDE 53 00:02:42,310 --> 00:02:45,740 per visualizzare alcune informazioni di base sull'istanza sottostante. 54 00:02:45,740 --> 00:02:49,700 E anche noi abbiamo rimosso uno delle opzioni sulle voci 55 00:02:49,700 --> 00:02:51,730 dall'estrema destra. 56 00:02:51,730 --> 00:02:55,620 Quindi, tutto questo è non implementato modificando necessariamente il Cloud 9 57 00:02:55,620 --> 00:02:58,550 il codice sorgente, ma invece attraverso un paio 58 00:02:58,550 --> 00:03:03,460 di plug-in che abbiamo implementato durante tutto l'anno scorso o giù di lì. 59 00:03:03,460 --> 00:03:08,840 E Cloud 9 ha ospitato e ha in esecuzione nell'area di lavoro CS50. 60 00:03:08,840 --> 00:03:13,680 O meglio nelle aree di lavoro sono designate come CS50 IDE. 61 00:03:13,680 --> 00:03:17,140 >> Quindi, in realtà questa è la differenza principale tra il Cloud 9 e il CS50 62 00:03:17,140 --> 00:03:18,130 spazi di lavoro. 63 00:03:18,130 --> 00:03:21,780 C'è anche, nel sottostante esempio, il cambiamento principale è 64 00:03:21,780 --> 00:03:25,350 che installiamo qualche oggetti preconfigurati come GDB, 65 00:03:25,350 --> 00:03:29,530 e alcune altre cose di base che abbiamo creato, come aggiornamento 50, 66 00:03:29,530 --> 00:03:33,310 e un paio di altri passi che fanno l'intera esperienza un po 'di più 67 00:03:33,310 --> 00:03:34,550 unificato. 68 00:03:34,550 --> 00:03:38,520 Ma nel complesso, questo è solo un modifica di un sistema esistente 69 00:03:38,520 --> 00:03:40,979 che Cloud 9 ha creato per noi. 70 00:03:40,979 --> 00:03:42,770 Quello che stiamo andando a mostrare un po 'più tardi 71 00:03:42,770 --> 00:03:45,920 è come creare effettivamente un plug-in che po 'di base 72 00:03:45,920 --> 00:03:49,461 ci permette di inserire qualcosa nel sistema di menu, e aprire un dialogo. 73 00:03:49,461 --> 00:03:51,210 E se abbiamo abbastanza tempo, faremo in realtà 74 00:03:51,210 --> 00:03:54,210 vedere come possiamo popolare che dialogo con alcune informazioni 75 00:03:54,210 --> 00:03:56,089 dall'istanza sottostante. 76 00:03:56,089 --> 00:03:58,880 In modo per noi per arrivare a quel punto, facciamo prima parliamo un po ' 77 00:03:58,880 --> 00:04:01,740 sull'architettura di Cloud 9. 78 00:04:01,740 --> 00:04:05,290 >> Quindi il modo che siamo abituati di interagire con Cloud 9 79 00:04:05,290 --> 00:04:06,610 è interamente attraverso il client. 80 00:04:06,610 --> 00:04:10,610 Apriamo un browser web, digitiamo nella CS50.io. 81 00:04:10,610 --> 00:04:14,431 Abbiamo finalmente, dopo l'autenticazione, sono presentati con l'IDE. 82 00:04:14,431 --> 00:04:16,180 Ma si rendono conto che non c'è un paio di passi 83 00:04:16,180 --> 00:04:18,180 che in realtà noi arrivare a questo punto. 84 00:04:18,180 --> 00:04:22,390 La prima cosa è che il mio cliente, il browser web, 85 00:04:22,390 --> 00:04:27,440 su richiesta e dopo l'autenticazione, carica l'interfaccia grafica e il plug-in 86 00:04:27,440 --> 00:04:30,170 da qualche CDN, da parte di alcuni Content Delivery Network. 87 00:04:30,170 --> 00:04:32,700 Questo può essere francamente ovunque. 88 00:04:32,700 --> 00:04:35,390 >> E questo è in realtà separata dall'istanza sottostante. 89 00:04:35,390 --> 00:04:38,890 E 'importante rendersi conto che questo è in realtà solo un mucchio di file statici. 90 00:04:38,890 --> 00:04:42,600 E 'un po' di JavaScript che viene scaricato dalla CDN 91 00:04:42,600 --> 00:04:45,200 al mio web browser, e tutto il GUI che 92 00:04:45,200 --> 00:04:48,460 vedi qui-- questo è davvero key-- tutta la GUI che vedete qui 93 00:04:48,460 --> 00:04:50,480 viene eseguito sul lato client. 94 00:04:50,480 --> 00:04:53,820 Tutto ciò che si vede nel Cloud 9 di lavoro 95 00:04:53,820 --> 00:04:56,010 è in realtà eseguito nel browser. 96 00:04:56,010 --> 00:04:59,950 E tutto ciò che si invia lungo all'istanza sottostante 97 00:04:59,950 --> 00:05:04,000 si comunica con l'istanza lungo questo secondo canale separato, 98 00:05:04,000 --> 00:05:07,240 e viene poi salvato su tale istanza finestra mobile. 99 00:05:07,240 --> 00:05:09,660 >> Quindi la ragione che sto dicendo questo è un'istanza finestra mobile 100 00:05:09,660 --> 00:05:12,650 è che la tecnologia sottostante non utilizza le macchine virtuali, 101 00:05:12,650 --> 00:05:16,040 ma invece utilizza un tecnologia chiamata finestra mobile, 102 00:05:16,040 --> 00:05:20,200 che sostanzialmente allows-- più vicino analogia è una macchina virtuale. 103 00:05:20,200 --> 00:05:24,800 Ma è sottilmente diverso in quanto ci sono 104 00:05:24,800 --> 00:05:28,900 un sacco di opportunità per eseguire una combinazione di diversi finestra mobile 105 00:05:28,900 --> 00:05:30,760 istanze su una singola macchina. 106 00:05:30,760 --> 00:05:34,660 E possono essere filata up in molto rapida successione. 107 00:05:34,660 --> 00:05:38,920 Non è molto più differenziazione rigorosa 108 00:05:38,920 --> 00:05:42,840 tra le diverse istanze docker come ci sono in macchine virtuali, 109 00:05:42,840 --> 00:05:45,730 ma ancora ci sono un sacco di differenziazione e separazione 110 00:05:45,730 --> 00:05:48,330 tra queste diverse istanze. 111 00:05:48,330 --> 00:05:48,830 OK. 112 00:05:48,830 --> 00:05:50,980 Così i due passaggi qui che sono importanti per realizzare 113 00:05:50,980 --> 00:05:57,370 è che quando andiamo a CS50.io, siamo il download del GUI e dei plug-in, 114 00:05:57,370 --> 00:06:01,640 che sono scritte in JavaScript, il al browser o al browser. 115 00:06:01,640 --> 00:06:05,980 E questa è forse una coppia megabyte vale la pena di informazioni. 116 00:06:05,980 --> 00:06:09,460 A quel punto, una volta che il GUI ha caricati e il plug-in è già incominciata 117 00:06:09,460 --> 00:06:12,530 poi inizia a comunicare con l'istanza di finestra mobile, che non lo fa 118 00:06:12,530 --> 00:06:15,210 necessariamente essere lo stesso server. 119 00:06:15,210 --> 00:06:16,940 >> Ora c'è un'eccezione a questa. 120 00:06:16,940 --> 00:06:22,130 In realtà possiamo avere sia la meccanismo di attuazione per la GUI sé 121 00:06:22,130 --> 00:06:25,740 e l'istanza di finestra mobile tutti dello stesso server, che 122 00:06:25,740 --> 00:06:29,660 è in realtà qualcosa che facciamo per la versione offline di Cloud 9. 123 00:06:29,660 --> 00:06:33,470 Questo non è qualcosa che abbiamo pubblicizzato molto questo autunno, 124 00:06:33,470 --> 00:06:35,930 ma noi abbiamo anche un versione offline che 125 00:06:35,930 --> 00:06:40,010 permette di scaricare un confezionato versione di tutte queste cose 126 00:06:40,010 --> 00:06:43,670 e consentono di eseguire Nube 9 in un ambiente in linea. 127 00:06:43,670 --> 00:06:48,325 >> Spostando questo fuori dalla nuvola e sulla vostra macchina locale ha un certo impatto. 128 00:06:48,325 --> 00:06:50,200 In particolare, non si è hanno più la capacità 129 00:06:50,200 --> 00:06:52,280 per condividere il vostro spazio di lavoro con gli altri. 130 00:06:52,280 --> 00:06:58,630 Non è più possibile aprire Cloud 9 da, e il CS50 IDE, da qualsiasi computer 131 00:06:58,630 --> 00:07:02,950 e vedere gli stessi file che si stava lavorando prima. 132 00:07:02,950 --> 00:07:06,310 Ma invece funziona tutto sulla propria macchina locale 133 00:07:06,310 --> 00:07:09,270 senza bisogno di accesso a Internet. 134 00:07:09,270 --> 00:07:13,330 Ma ancora, anche in quel modello, anche se abbiamo una macchina virtuale 135 00:07:13,330 --> 00:07:15,200 che è essenzialmente l'esecuzione di queste cose. 136 00:07:15,200 --> 00:07:19,480 >> Abbiamo un server separato che è offrendo essenzialmente il Cloud 9 137 00:07:19,480 --> 00:07:23,640 contenuti, e poi noi avere un'istanza finestra mobile 138 00:07:23,640 --> 00:07:32,280 che è responsabile per la comunicazione con che IDE per il back-end. 139 00:07:32,280 --> 00:07:32,780 OK. 140 00:07:32,780 --> 00:07:38,700 Così l'intera interfaccia grafica è scritto interamente in JavaScript 141 00:07:38,700 --> 00:07:42,800 utilizzando Node.js e il Cloud 9 SDK, che ci arriveremo in appena un minuto. 142 00:07:42,800 --> 00:07:46,650 E tutti i plug-in vengono eseguiti sul lato client. 143 00:07:46,650 --> 00:07:51,780 Quindi concentriamoci quindi una poco assumendo 144 00:07:51,780 --> 00:07:55,670 che questo primo passo ha in realtà completato con successo, 145 00:07:55,670 --> 00:07:58,990 e guardare solo a questa istanza finestra mobile. 146 00:07:58,990 --> 00:08:01,220 >> Quindi, in questo caso, questo è il modo standard 147 00:08:01,220 --> 00:08:04,870 di pensare di fare Cloud 9 plug-in sviluppo è che si sta andando 148 00:08:04,870 --> 00:08:07,940 da scrivere codice che verrà essere eseguito nel browser dell'utente, 149 00:08:07,940 --> 00:08:11,610 e avete la possibilità di utilizzando alcune API per comunicare 150 00:08:11,610 --> 00:08:16,470 con l'istanza finestra mobile sottostante, eseguire del codice là, e fare qualsiasi cosa 151 00:08:16,470 --> 00:08:18,860 che si potrebbe desiderare di fare. 152 00:08:18,860 --> 00:08:22,000 Quindi questo sarà il contesto che faremo 153 00:08:22,000 --> 00:08:24,340 prevede di utilizzare per il resto di questo discorso. 154 00:08:24,340 --> 00:08:26,400 E solo a mantenere questo modello in mente. 155 00:08:26,400 --> 00:08:28,966 Questo sarà molto importante in pochi minuti. 156 00:08:28,966 --> 00:08:30,840 Ci sono un paio di collegamenti voglio mostrarvi. 157 00:08:30,840 --> 00:08:34,150 Prima di tutto, Cloud 9 ha fornito un bel po 'di documentazione 158 00:08:34,150 --> 00:08:38,740 che è abbastanza buono, che mostra come a fare lo sviluppo di plug-in di base. 159 00:08:38,740 --> 00:08:43,320 Quindi, se si va a questo URL, cloud9-sdk.readme.io, 160 00:08:43,320 --> 00:08:45,261 vedrete la documentazione lì. 161 00:08:45,261 --> 00:08:47,510 E un sacco di queste informazioni che state per vedere 162 00:08:47,510 --> 00:08:50,310 si possono trovare anche lì, e molto di più. 163 00:08:50,310 --> 00:08:55,880 È anche possibile trovare il open source versione di Cloud 9 di questo URL, 164 00:08:55,880 --> 00:09:04,270 github.com/c9/core, che usiamo come parte della versione offline dell'IDE, 165 00:09:04,270 --> 00:09:07,540 in modo che si sarà in grado di avere la stessa esperienza Cloud 9, 166 00:09:07,540 --> 00:09:09,660 ma in modo offline. 167 00:09:09,660 --> 00:09:10,160 Tutto ok. 168 00:09:10,160 --> 00:09:15,560 Quindi, diamo un'occhiata a un attuale Cloud 9 di lavoro qui. 169 00:09:15,560 --> 00:09:17,880 E ancora, voglio segnalare un paio di cose. 170 00:09:17,880 --> 00:09:21,560 Si tratta, qui, di un normale IDE CS50. 171 00:09:21,560 --> 00:09:26,830 E ho disattivato un meno Modalità confortevole sotto il menu Visualizza 172 00:09:26,830 --> 00:09:28,807 in modo che io possa vedere tutto delle opzioni del menu. 173 00:09:28,807 --> 00:09:31,140 Quello che voglio mostrarvi destra ora è un paio di cose. 174 00:09:31,140 --> 00:09:33,140 Prima di tutto, se vado in Preferenze e poi 175 00:09:33,140 --> 00:09:37,040 cliccare su Plug-in Manager, e digitare CS50 qui, 176 00:09:37,040 --> 00:09:40,590 possiamo vedere che ci sono, infatti, un paio di CS50 plug-in che 177 00:09:40,590 --> 00:09:46,280 sono stati installati e la nostra corsa per attivare le modifiche che abbiamo 178 00:09:46,280 --> 00:09:48,670 visto per l'IDE CS50. 179 00:09:48,670 --> 00:09:51,450 >> In questo momento ci sono essenzialmente due plug-in che sono in esecuzione. 180 00:09:51,450 --> 00:09:54,980 C'è uno chiamato Simple, che è la modalità semplificata che 181 00:09:54,980 --> 00:10:00,020 consente di ridurre il numero di opzioni di menu lungo la parte superiore, 182 00:10:00,020 --> 00:10:03,070 e hanno questo cosiddetto modalità meno confortevole. 183 00:10:03,070 --> 00:10:07,280 E poi c'è anche CS50 Stats, che è forse solo leggermente misnamed. 184 00:10:07,280 --> 00:10:09,550 Perché questo è ciò che vi mostra le informazioni 185 00:10:09,550 --> 00:10:10,850 sull'area di lavoro sottostante. 186 00:10:10,850 --> 00:10:13,560 Inserisce questi pulsanti lungo la destra. 187 00:10:13,560 --> 00:10:18,620 Si inietta anche una voce di menu nel elemento della finestra, nel menu Finestra 188 00:10:18,620 --> 00:10:21,730 proprio qui, CS50 Informazioni IDE. 189 00:10:21,730 --> 00:10:27,380 Ed è responsabile per istanziare questo dialogo che abbiamo visto qui, 190 00:10:27,380 --> 00:10:31,460 con tutte le informazioni che siamo abituato a vedere in un IDE CS50 191 00:10:31,460 --> 00:10:32,870 area di lavoro. 192 00:10:32,870 --> 00:10:33,370 OK. 193 00:10:33,370 --> 00:10:36,910 Quindi c'è in realtà un altro plug-in che abbiamo sviluppato pure. 194 00:10:36,910 --> 00:10:40,110 E ci sono un paio di altri che anche noi non abbiamo rilasciato pubblicamente. 195 00:10:40,110 --> 00:10:45,880 Ma uno di questi è complessiva plug-in che permette GDB di funzionare. 196 00:10:45,880 --> 00:10:50,190 Così uno degli aspetti di Cloud 9 è che essi hanno fornito già 197 00:10:50,190 --> 00:10:53,210 questa GUI per implementare un debugger. 198 00:10:53,210 --> 00:10:57,360 E uno dei plug-in che abbiamo creato praticamente 199 00:10:57,360 --> 00:11:02,380 ganci GDB con questa interfaccia grafica versione basata su di un debugger. 200 00:11:02,380 --> 00:11:07,680 Ed è responsabile di mediare tutto delle richieste che un utente può avere, 201 00:11:07,680 --> 00:11:10,310 tra scavalcando o la creazione di punti di interruzione o niente 202 00:11:10,310 --> 00:11:15,390 in questo senso, a tradurre che ai comandi che GDB può capire, 203 00:11:15,390 --> 00:11:16,920 l'emissione di quei comandi per GDB. 204 00:11:16,920 --> 00:11:19,260 E non appena GDB fornisce una risposta, allora 205 00:11:19,260 --> 00:11:23,250 interpretiamo questo e aggiornare la GUI come necessario. 206 00:11:23,250 --> 00:11:25,130 >> Questo è probabilmente uno dei la più complicata 207 00:11:25,130 --> 00:11:28,840 dei plug-in, così invece ciò che siamo andando a concentrarsi su oggi è di fatto 208 00:11:28,840 --> 00:11:34,590 Stats plug-in, e ne parliamo un po 'di semplice, pure. 209 00:11:34,590 --> 00:11:39,100 Così ho detto prima, e ci tengo per fare molto, molto chiaro, che ancora una volta, 210 00:11:39,100 --> 00:11:41,600 tutto ciò che siamo vedendo qui è essenzialmente 211 00:11:41,600 --> 00:11:43,300 operando sul lato client. 212 00:11:43,300 --> 00:11:45,810 Facciamo vedere una finestra di terminale sotto, e che, naturalmente, 213 00:11:45,810 --> 00:11:49,230 se si digita nei comandi in che, che verrà quindi emesso 214 00:11:49,230 --> 00:11:50,690 all'istanza sottostante. 215 00:11:50,690 --> 00:11:55,280 Allo stesso modo, se apriamo un nuovo file e digitare alcune cose in esso e salvarlo, 216 00:11:55,280 --> 00:11:58,240 il file verrà salvato su l'istanza sottostante. 217 00:11:58,240 --> 00:12:02,310 >> Ma l'editor stesso, questo finestra del terminale stesso, 218 00:12:02,310 --> 00:12:05,700 è tutto implementato in JavaScript ed è tutto un plug-in 219 00:12:05,700 --> 00:12:09,800 che siamo in grado di interagire con, e quindi modificare. 220 00:12:09,800 --> 00:12:11,450 C'è un sacco di estensibilità qui. 221 00:12:11,450 --> 00:12:14,690 Vi consiglio di dare un'occhiata a Cloud 9 di conto GitHub 222 00:12:14,690 --> 00:12:17,790 per vedere la grande quantità di i plug-in che sono disponibili, 223 00:12:17,790 --> 00:12:23,070 e quanto ben scritto un sacco del codice è per l'estensibilità. 224 00:12:23,070 --> 00:12:24,920 Quindi c'è qualcosa che voglio citare 225 00:12:24,920 --> 00:12:30,480 su questo pure, che è che ci sono un sacco di-- c'è 226 00:12:30,480 --> 00:12:33,450 un sacco di funzionalità che è disponibile nelle preferenze 227 00:12:33,450 --> 00:12:37,970 finestra, che abbiamo visto solo alluso solo pochi minuti fa. 228 00:12:37,970 --> 00:12:43,690 >> Una delle cose che possiamo fare come IDE gli sviluppatori, o come Cloud 9 sviluppatori, 229 00:12:43,690 --> 00:12:47,410 è di iniettare realtà alcune Pannelli delle preferenze della nostra. 230 00:12:47,410 --> 00:12:50,660 Quindi il modo semplice, o la modalità meno confortevole, 231 00:12:50,660 --> 00:12:54,780 e anche le informazioni IDE, o le statistiche plug-in, 232 00:12:54,780 --> 00:12:58,560 ha ogni qualche preferenza pannelli che ci permettono di modificare 233 00:12:58,560 --> 00:13:00,620 il comportamento di ciascuno di questi. 234 00:13:00,620 --> 00:13:04,140 Noterete che se vado al Preferenze e andare alle impostazioni utente, 235 00:13:04,140 --> 00:13:07,100 c'è una scheda CS50, uno che dice informazioni IDE. 236 00:13:07,100 --> 00:13:09,810 E posso cambiare il informazioni frequenza di aggiornamento. 237 00:13:09,810 --> 00:13:12,250 >> In effetti, quello che sta succedendo nelle statistiche plug-in 238 00:13:12,250 --> 00:13:16,690 è che ogni n secondi, dove n-secondi è definita da questa preferenza 239 00:13:16,690 --> 00:13:22,250 pannello informazioni è essere recuperato dall'istanza sottostante, di essere inviato 240 00:13:22,250 --> 00:13:25,490 indietro al lato client, il plug-in è quindi 241 00:13:25,490 --> 00:13:28,650 interpretare le informazioni dall'istanza sottostante 242 00:13:28,650 --> 00:13:31,470 e aggiornare la GUI come necessario. 243 00:13:31,470 --> 00:13:34,710 Possiamo vedere che in questo momento è impostata a 30 secondi, e questo è il default. 244 00:13:34,710 --> 00:13:37,950 Ma posso sicuramente cambiare quanto velocemente questo accade solo 245 00:13:37,950 --> 00:13:40,520 modificando questo valore. 246 00:13:40,520 --> 00:13:44,330 >> Ora, una delle cose interessanti è che questo pannello delle preferenze, GUI, 247 00:13:44,330 --> 00:13:49,560 è in realtà solo una versione GUI di un sacco di impostazioni sottostanti 248 00:13:49,560 --> 00:13:52,220 che sono presentati in JSON. 249 00:13:52,220 --> 00:13:56,336 Quindi, se io vado, per esempio, sotto il Menu CS50 IDE, o il menu Cloud 9, 250 00:13:56,336 --> 00:13:58,210 a seconda di quale versione che si sta guardando, 251 00:13:58,210 --> 00:14:00,460 e andare in uno di questi settings-- in questo caso, 252 00:14:00,460 --> 00:14:03,420 il progetto settings-- la impostazioni di progetto in questo caso 253 00:14:03,420 --> 00:14:07,740 si applica a tutte le impostazioni per questo uno spazio di lavoro. 254 00:14:07,740 --> 00:14:11,620 Considerando che si applicano le impostazioni utente a tutte le aree di lavoro 255 00:14:11,620 --> 00:14:15,110 che si potrebbe avere nel tuo account. 256 00:14:15,110 --> 00:14:18,520 >> Quindi, solo come una digressione qui, per essere extra chiaro, 257 00:14:18,520 --> 00:14:22,570 c'è una separazione tra la due, perché anche se per difetto noi 258 00:14:22,570 --> 00:14:26,490 avere uno spazio di lavoro, che è il CS50 IDE, se 259 00:14:26,490 --> 00:14:31,900 dovevano fare clic sul tuo piccolo avatar qui e andare al cruscotto, 260 00:14:31,900 --> 00:14:35,820 troverete che si può effettivamente creare spazi di lavoro aggiuntivi. 261 00:14:35,820 --> 00:14:39,140 Potete vedere qui che Io ho un IDE 50 di lavoro, e anche 262 00:14:39,140 --> 00:14:41,930 ai fini della presente seminari, uno spazio di lavoro 263 00:14:41,930 --> 00:14:45,084 chiamato spazio di lavoro, che è proprio qui. 264 00:14:45,084 --> 00:14:46,750 Comunque, non ho preferenze diverse. 265 00:14:46,750 --> 00:14:49,910 Ognuno di questi può avere preferenze del progetto separati, 266 00:14:49,910 --> 00:14:54,091 ma le preferenze dell'utente sono condiviso tra tutti i miei spazi di lavoro. 267 00:14:54,091 --> 00:14:55,840 Tra l'altro, questo è anche molto utile se si 268 00:14:55,840 --> 00:14:59,080 vuole creare uno spazio di lavoro con diverse opzioni di personalizzazione. 269 00:14:59,080 --> 00:15:01,640 Ed è molto utile per creare una nuova area di lavoro. 270 00:15:01,640 --> 00:15:04,230 E scegliere quello che potrebbe essere pre-configurato in qualche altro modo, 271 00:15:04,230 --> 00:15:07,000 forse per PHP in particolare, o Django specifico. 272 00:15:07,000 --> 00:15:08,960 O anche solo su ordinazione. 273 00:15:08,960 --> 00:15:11,320 L'area di lavoro CS50 template è quella che abbiamo 274 00:15:11,320 --> 00:15:15,420 uso che installa automaticamente Aggiornamento 50 e tutte le impostazioni 275 00:15:15,420 --> 00:15:20,531 che abbiamo, compresa tutta la plug-in che abbiamo per l'IDE CS50. 276 00:15:20,531 --> 00:15:21,030 OK. 277 00:15:21,030 --> 00:15:22,200 Ma torniamo a questo. 278 00:15:22,200 --> 00:15:25,640 Quindi, di nuovo, ci sono progetti impostazioni, e questi sono quelli 279 00:15:25,640 --> 00:15:27,140 che stiamo guardando qui. 280 00:15:27,140 --> 00:15:29,056 E notare che ci sono un gruppo di impostazioni, 281 00:15:29,056 --> 00:15:32,720 molti dei quali corrisponde alla preferenza pannelli, ma non tutti di loro. 282 00:15:32,720 --> 00:15:40,800 Ma possiamo vedere che qui, in questo-- oh no, ho messo nelle impostazioni utente? 283 00:15:40,800 --> 00:15:43,280 Forse ho messo nelle impostazioni utente. 284 00:15:43,280 --> 00:15:45,480 E questo, qui andiamo. 285 00:15:45,480 --> 00:15:49,840 Nelle impostazioni utente, possiamo vedere che abbiamo una sezione CS50, 286 00:15:49,840 --> 00:15:53,762 e questo è stato scritto a da questi Cloud 9 plug-in 287 00:15:53,762 --> 00:15:54,720 che abbiamo implementato. 288 00:15:54,720 --> 00:15:57,400 C'è il semplice per corrispondere con quella semplice plug-in, 289 00:15:57,400 --> 00:16:00,930 e le statistiche che uno corrisponde a quello GUI basata 290 00:16:00,930 --> 00:16:02,440 versione del pannello di preferenza. 291 00:16:02,440 --> 00:16:05,740 La frequenza di aggiornamento, in questa caso, è impostato a 20 secondi. 292 00:16:05,740 --> 00:16:09,740 >> Questo è tutto, si spera, il inizio di alcune informazioni 293 00:16:09,740 --> 00:16:14,420 che saremo in realtà vediamo in un po ' po 'più in dettaglio, momentaneamente. 294 00:16:14,420 --> 00:16:14,920 OK. 295 00:16:14,920 --> 00:16:17,520 Quindi diciamo che vogliamo effettivamente arrivare al dunque. 296 00:16:17,520 --> 00:16:20,600 Sappiamo che tutte le cose quello che sta succedendo sul lato client 297 00:16:20,600 --> 00:16:24,560 è fatto in realtà sul browser, che significa che tutti i plug-in che scrivo 298 00:16:24,560 --> 00:16:27,990 stanno per essere scritti con il browser in mente. 299 00:16:27,990 --> 00:16:30,830 E se io in realtà voglio fare nulla sul lavoro, 300 00:16:30,830 --> 00:16:33,360 Io forse dovuto avviare una sorta di comunicazione 301 00:16:33,360 --> 00:16:35,970 tra il browser e l'area di lavoro per essere sicuri 302 00:16:35,970 --> 00:16:38,212 che ciò che è realmente compiuto. 303 00:16:38,212 --> 00:16:40,170 Ma diciamo che ora Voglio arrivare al dunque 304 00:16:40,170 --> 00:16:43,440 ed effettivamente creare il mio primo plug-in. 305 00:16:43,440 --> 00:16:48,970 Beh, il modo in cui si sarebbe in grado per farlo è in realtà abbastanza semplice. 306 00:16:48,970 --> 00:16:51,370 E 'dato in Cloud 9 SDK. 307 00:16:51,370 --> 00:16:55,520 Ma è di prendere la Nome lavoro esistente, che 308 00:16:55,520 --> 00:16:59,810 è l'URL che si ha nella parte superiore la barra, e aggiungere il seguente ad esso. 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 Ora, ciò che questo sta per attivare è che l'sdk = 1 sarà effettivamente impostare l'SDK 313 00:17:08,260 --> 00:17:11,430 modalità di vero, che consentirà un paio di cose aggiuntive. 314 00:17:11,430 --> 00:17:15,770 E debug = 2 consentirà messaggi di errore per essere un po 'più dettagliato. 315 00:17:15,770 --> 00:17:20,170 >> E così, se si mettono il JavaScript console nella scheda sviluppatore di Chrome, 316 00:17:20,170 --> 00:17:22,829 si sarà effettivamente in grado di vedere molto di più informazioni 317 00:17:22,829 --> 00:17:24,349 di quanto sarebbe altrimenti. 318 00:17:24,349 --> 00:17:28,310 Quindi vi consiglio di girare entrambi questi sopra allo stesso tempo, perché in realtà 319 00:17:28,310 --> 00:17:31,170 È utile avere tutto questo Informazioni aggiuntive. 320 00:17:31,170 --> 00:17:35,330 E 'importante notare, tuttavia, che accendere debug per il valore di 2 321 00:17:35,330 --> 00:17:38,120 significa che è molto verbose, e in realtà 322 00:17:38,120 --> 00:17:42,590 sarà un po 'notevolmente rallentare il vostro IDE, soprattutto durante il caricamento 323 00:17:42,590 --> 00:17:45,657 o quando fare fare i compiti pesanti. 324 00:17:45,657 --> 00:17:46,740 Quindi, solo tenere a mente. 325 00:17:46,740 --> 00:17:51,500 E 'utile per lo sviluppo, ma si Non può decidere di avere tutto il tempo. 326 00:17:51,500 --> 00:17:53,080 >> Quindi cerchiamo di realmente farlo. 327 00:17:53,080 --> 00:17:59,374 Ma in questo caso, io in realtà sono già istituito uno spazio di lavoro con questo. 328 00:17:59,374 --> 00:18:00,540 Vediamo quindi, sdk = 1 & debug = 2. 329 00:18:00,540 --> 00:18:03,140 330 00:18:03,140 --> 00:18:07,770 Con un paio di plug-in si spera già installato. 331 00:18:07,770 --> 00:18:08,340 Tutto ok. 332 00:18:08,340 --> 00:18:15,050 Quindi, ora che ho acceso il SDK di debug modalità, si accorge che siamo in modalità di debug, 333 00:18:15,050 --> 00:18:20,430 in modo che possiamo guardare gli strumenti dev per vedere eventuali errori, che mi faranno fuori campo. 334 00:18:20,430 --> 00:18:23,110 Possiamo vedere che non c'è un mucchio di errori qui. 335 00:18:23,110 --> 00:18:28,090 Ora è in realtà abbastanza comune per i Cloud 9 per avere un paio di errori, 336 00:18:28,090 --> 00:18:30,680 e io non mi preoccuperei su di loro fino a quando non 337 00:18:30,680 --> 00:18:32,930 vedere qualcosa che potrebbe essere specifico per il plug-in 338 00:18:32,930 --> 00:18:34,510 che vi capita di essere la creazione. 339 00:18:34,510 --> 00:18:37,620 >> Ecco, per esempio, si ottiene un paio di 404s-- non trovato. 340 00:18:37,620 --> 00:18:42,910 Vediamo siamo in grado di caricare un po ' informazioni fuori l'istanza sottostante 341 00:18:42,910 --> 00:18:43,670 si. 342 00:18:43,670 --> 00:18:46,545 E c'è un sacco di supplementari informazioni, ma la maggior parte di questo siamo 343 00:18:46,545 --> 00:18:47,970 in realtà intenzione di ignorare per ora. 344 00:18:47,970 --> 00:18:50,130 Perché questo è abbastanza comune per uno spazio di lavoro 345 00:18:50,130 --> 00:18:53,200 di avere solo un paio di errori. 346 00:18:53,200 --> 00:18:53,700 OK. 347 00:18:53,700 --> 00:18:56,680 Io vado a spostare questo fuori la strada e tornare qui. 348 00:18:56,680 --> 00:19:01,860 E ora la via più facile, il bello cosa di avere questo sviluppatore 349 00:19:01,860 --> 00:19:07,330 modalità attivata è che mi permette di creare facilmente un nuovo plug-in. 350 00:19:07,330 --> 00:19:12,390 >> Così mentre prima io in realtà non ha fatto avere questa nuova opzione plug-in disponibili, 351 00:19:12,390 --> 00:19:16,460 che possiamo vedere se dovessi tornare a il mio modo non sviluppatore qui, 352 00:19:16,460 --> 00:19:18,510 non c'è nuovo plug-in. 353 00:19:18,510 --> 00:19:23,220 Attivando la modalità SDK, io hanno un nuovo plug-in disponibile 354 00:19:23,220 --> 00:19:25,660 e posso creare facilmente uno. 355 00:19:25,660 --> 00:19:28,160 In questo caso, c'è una coppia delle diverse opzioni, semplici, 356 00:19:28,160 --> 00:19:30,850 un plug-in vuoto, un plug-in pieno, installer, Cloud 9 bundle. 357 00:19:30,850 --> 00:19:33,030 Diciamo solo scegliere un vuoto plug-in per ora 358 00:19:33,030 --> 00:19:37,670 in modo che possiamo vedere molto semplice versione di uno. 359 00:19:37,670 --> 00:19:41,520 >> Ora notare che lungo la lato sinistro che è vi è ora 360 00:19:41,520 --> 00:19:45,080 qualcosa sotto Preferiti, che viene messa in vendita di un paio di plug-in 361 00:19:45,080 --> 00:19:47,020 che sono ora disponibili per me. 362 00:19:47,020 --> 00:19:50,420 Se espando che, ci sarà essere in grado di vedere quelli. 363 00:19:50,420 --> 00:19:52,730 Ora voglio farvi notare qualcosa qui, che 364 00:19:52,730 --> 00:19:58,260 è che questo non è in realtà contenuta all'interno della directory di lavoro 365 00:19:58,260 --> 00:20:03,190 sul mio sottostante esempio di Ubuntu, ma è contenuto sul disco rigido. 366 00:20:03,190 --> 00:20:06,330 E dove questo si trova, perché questo è molto utile sapere, 367 00:20:06,330 --> 00:20:09,570 soprattutto se avete intenzione di essere fare qualsiasi cosa con Git, 368 00:20:09,570 --> 00:20:16,870 dove questo si trova è in una cartella .c9, / plugins. 369 00:20:16,870 --> 00:20:21,110 Quindi, se ci vado, possiamo vedere che ora l'elenco dei plug-in che sono qui 370 00:20:21,110 --> 00:20:26,390 corrisponde l'elenco dei plug-in che io mentre sul lato sinistro del mio lavoro. 371 00:20:26,390 --> 00:20:28,610 >> Ora per impostazione predefinita, e questo è una specie di strano, 372 00:20:28,610 --> 00:20:31,760 Per impostazione predefinita, quando creo un nuovo plug-in in uno spazio di lavoro, 373 00:20:31,760 --> 00:20:36,620 crea questo plug-in che di default ha un nome di una sottolineatura. 374 00:20:36,620 --> 00:20:39,760 In generale, che potrebbe causare alcuni problemi. 375 00:20:39,760 --> 00:20:42,340 Quindi il passo successivo che io di solito eseguo 376 00:20:42,340 --> 00:20:45,880 è solo per rimuovere la particolare plug-in 377 00:20:45,880 --> 00:20:52,810 e lasciare solo il semplice plug-in che c'era inizialmente, plugin.simple. 378 00:20:52,810 --> 00:20:55,430 E questo è l'unico che c'è. 379 00:20:55,430 --> 00:20:55,930 OK. 380 00:20:55,930 --> 00:20:58,380 >> Che cosa significa questo in realtà assomiglia? 381 00:20:58,380 --> 00:21:01,210 Ebbene, questo è, ancora una volta, un pacchetto di JavaScript 382 00:21:01,210 --> 00:21:05,220 che include alcuni file, tra cui un file plugin.js, dove 383 00:21:05,220 --> 00:21:07,700 il contenuto principale di il mio plug-in si trova, 384 00:21:07,700 --> 00:21:10,590 un file package.json, che in realtà specifica 385 00:21:10,590 --> 00:21:13,760 alcuni metadati su questo plug-in, come ad esempio chi è l'autore, 386 00:21:13,760 --> 00:21:19,240 tutte le ulteriori informazioni su di esso, un descrizione del plug-in, e così via. 387 00:21:19,240 --> 00:21:22,190 E anche per impostazione predefinita, crea un file README vuoto, 388 00:21:22,190 --> 00:21:26,100 e un file di test vuoto per voi creare qualche documentazione aggiuntiva, 389 00:21:26,100 --> 00:21:29,430 e una cintura di prova se ti piacerebbe farlo. 390 00:21:29,430 --> 00:21:34,160 >> Così facciamo solo dare un'occhiata prima a, molto rapidamente, il file package.json. 391 00:21:34,160 --> 00:21:38,240 E 'abbastanza facile andare solo attraverso e riempire le aree di questo 392 00:21:38,240 --> 00:21:42,510 che si vorrebbe inserire, come fornire un nome, dare una descrizione, 393 00:21:42,510 --> 00:21:45,010 iterare il numero di versione ogni tanto, fornire 394 00:21:45,010 --> 00:21:47,570 un autore per ogni persona che contribuisce, 395 00:21:47,570 --> 00:21:53,000 aggiungerli ai contribuenti sezione, e il resto di questo si 396 00:21:53,000 --> 00:21:56,390 può praticamente solo lasciare come lo è per ora. 397 00:21:56,390 --> 00:21:58,490 >> C'è una cosa che è importante notare, 398 00:21:58,490 --> 00:22:04,990 che sotto la sezione plug-in, vi è una chiave denominata plug-in. 399 00:22:04,990 --> 00:22:11,800 E questo è abbinato al nome il file JavaScript denominato plugin.js. 400 00:22:11,800 --> 00:22:18,290 Quindi questo è il modo in Cloud 9 sa, quando si legge il file package.json, che 401 00:22:18,290 --> 00:22:20,720 dei js file da caricare in realtà. 402 00:22:20,720 --> 00:22:25,440 Se creo altri file js o vogliono rinominare il file js da plug-in, 403 00:22:25,440 --> 00:22:30,380 Ho anche cambiarlo nel file package.json. 404 00:22:30,380 --> 00:22:33,660 >> Tutte le domande da parte del pubblico? 405 00:22:33,660 --> 00:22:34,160 No. 406 00:22:34,160 --> 00:22:38,100 Che una persona che è in seguito insieme a me finora. 407 00:22:38,100 --> 00:22:38,760 >> OK. 408 00:22:38,760 --> 00:22:42,300 Così ho effettivamente creato un paio di plug-in già, 409 00:22:42,300 --> 00:22:44,100 Credo che, in questa area di lavoro. 410 00:22:44,100 --> 00:22:53,800 Quindi cerchiamo di sbarazzarsi di alcuni di essi, aggiungere sdk = 1 & debug = 2, ricaricare questa area di lavoro, 411 00:22:53,800 --> 00:22:58,780 e vediamo se siamo avere quei plug-in ora. 412 00:22:58,780 --> 00:23:01,430 C9 / plugins. 413 00:23:01,430 --> 00:23:01,930 Eccoci qui. 414 00:23:01,930 --> 00:23:06,910 Ora possiamo vedere nei miei C9 / plugins di questo uno, abbiamo plugin.1 e plugin.2. 415 00:23:06,910 --> 00:23:15,260 Quindi stiamo andando a solo intensificare the-- basta aumentare la quantità di difficoltà 416 00:23:15,260 --> 00:23:16,660 in ciascuno di questi plug-in. 417 00:23:16,660 --> 00:23:20,140 Ma qui se creo un nuovo plug-in, Posso aggiungere ai miei preferiti. 418 00:23:20,140 --> 00:23:25,560 E mi limiterò a eliminare quelli da il file system sottostante. 419 00:23:25,560 --> 00:23:28,050 >> Rimuoviamo che. 420 00:23:28,050 --> 00:23:33,206 Ora, se apro il mio primo plug-in, e plugin.js aperti, 421 00:23:33,206 --> 00:23:39,980 possiamo vedere qui il sottostante semplice versione di un plug-in. 422 00:23:39,980 --> 00:23:42,170 Lasciatemi in realtà tornare a questo altro lavoro 423 00:23:42,170 --> 00:23:47,160 perché si può almeno, qui vedi, cosa un plug-in in bianco si presenta come. 424 00:23:47,160 --> 00:23:51,810 Quindi, sotto il cofano, questo sembra molto simile alla tecnologia chiamata, 425 00:23:51,810 --> 00:23:53,780 Penso, che sia RequireJS. 426 00:23:53,780 --> 00:23:56,000 Si noti che ciò non davvero guardare, forse, 427 00:23:56,000 --> 00:23:59,150 la stessa come qualche altro JavaScript file che avremmo visto. 428 00:23:59,150 --> 00:24:04,250 Invece, ci sono un paio di soli linee di base che in realtà ha. 429 00:24:04,250 --> 00:24:06,900 >> Tutto questo materiale è il primo interpretato dalla IDE, 430 00:24:06,900 --> 00:24:09,940 ma in realtà non è aperta fino al specificato. 431 00:24:09,940 --> 00:24:13,610 E ti dirò di quando che significa in realtà in un attimo. 432 00:24:13,610 --> 00:24:17,840 Ma notare che qui ci sia una Linea main.consumes in linea 2, 433 00:24:17,840 --> 00:24:23,270 e questo elenca tutti i plug-in che questo plug-in è dipendente. 434 00:24:23,270 --> 00:24:27,150 Così per difetto, noi forse fare di non avere eventuali dipendenze da altri plug-in, 435 00:24:27,150 --> 00:24:30,530 ma quando abbiamo effettivamente bisogno di dipendere da caratteristiche in dotazione 436 00:24:30,530 --> 00:24:34,900 da altri plug-in IDE, abbiamo bisogno di elencare i plug-in 437 00:24:34,900 --> 00:24:36,890 nella linea main.consumes. 438 00:24:36,890 --> 00:24:39,230 E poi abbiamo bisogno di collegarli al codice 439 00:24:39,230 --> 00:24:42,860 qui sotto, che vi faccio vedere in un solo un attimo su come possiamo farlo. 440 00:24:42,860 --> 00:24:46,100 >> Main.provides dà un nome di questo plug-in 441 00:24:46,100 --> 00:24:49,190 che gli altri plug-in potrebbe utilizzare nella loro linea consumi. 442 00:24:49,190 --> 00:24:52,480 Quindi, in questo caso, il plug-in è sufficiente impostare lì per impostazione predefinita, 443 00:24:52,480 --> 00:24:55,820 e dovremmo cambiare che, per essere applicabile al nostro plug-in, 444 00:24:55,820 --> 00:24:57,540 come vedremo in un solo momento. 445 00:24:57,540 --> 00:25:01,230 Ora qui in funzione principale, questa funzione principale 446 00:25:01,230 --> 00:25:05,630 è effettivamente eseguito e interpretato, ma in realtà non fa molto. 447 00:25:05,630 --> 00:25:08,970 E 'appena viene impostato tutto, ma esso non inizia il plug-in, 448 00:25:08,970 --> 00:25:11,220 nonostante quello che il nome suona come. 449 00:25:11,220 --> 00:25:14,690 Che in realtà avviene attraverso una sequenza di metodi che 450 00:25:14,690 --> 00:25:16,820 sono contenuti in questo plug-in. 451 00:25:16,820 --> 00:25:20,830 >> Quindi, se ho scorrere verso il basso, si può vedere che abbiamo un ciclo di vita in cui 452 00:25:20,830 --> 00:25:25,100 su qualche evento chiamato carico, o qualche evento chiamato scarico, 453 00:25:25,100 --> 00:25:26,940 alcuni eventi realmente accadere. 454 00:25:26,940 --> 00:25:33,500 E 'davvero in qui dove, come il plug-in inizia che questi metodi sono chiamati. 455 00:25:33,500 --> 00:25:37,240 Quindi cerchiamo di essere un po 'più concreto su questo e guardare un esempio. 456 00:25:37,240 --> 00:25:41,010 Quindi, ecco per plugin.1, cosa ci accingiamo a fare praticamente 457 00:25:41,010 --> 00:25:46,010 è quello di creare una voce di menu chiamato CS50 Seminario Dialog 1-- 458 00:25:46,010 --> 00:25:48,070 perché abbiamo due them-- e stiamo andando 459 00:25:48,070 --> 00:25:50,300 per iniettarlo nel menu Finestra. 460 00:25:50,300 --> 00:25:54,590 E quando si clicca su di esso, siamo andando ad aprire un dialogo che 461 00:25:54,590 --> 00:25:56,290 ci mostra alcune informazioni di base. 462 00:25:56,290 --> 00:25:58,050 >> In questo caso, solo un mondo ciao. 463 00:25:58,050 --> 00:26:01,880 Quindi questo è un molto semplice ciao dialogo mondo 464 00:26:01,880 --> 00:26:05,260 che possiamo implementare come plug-in in Cloud 9. 465 00:26:05,260 --> 00:26:07,960 Quindi cerchiamo di vedere come questo in realtà sembra. 466 00:26:07,960 --> 00:26:12,730 Ti passo attraverso di essa, semplicemente in tempi relativamente brevi in ​​modo da 467 00:26:12,730 --> 00:26:15,580 può guardare al prossimo plug-in come bene. 468 00:26:15,580 --> 00:26:19,510 Si noti che qui siamo consumare una varietà di plug-in. 469 00:26:19,510 --> 00:26:26,080 Stiamo consumando un dialogo plug-in, comandi, menu e interfaccia utente. 470 00:26:26,080 --> 00:26:30,440 Sembra che in realtà sto consumando dialogo due volte, quindi posso rimuovere quel. 471 00:26:30,440 --> 00:26:32,560 >> E notare che il modo che li sto collegamento, 472 00:26:32,560 --> 00:26:37,940 questo è una sorta di metadati che sta dicendo il sistema plug-in quali requisiti 473 00:26:37,940 --> 00:26:41,480 sono in realtà necessari per questo plug-in per caricare. 474 00:26:41,480 --> 00:26:46,400 E 'anche importante notare che l'ordine in cui i plug-in vengono caricati 475 00:26:46,400 --> 00:26:48,300 non è garantita. 476 00:26:48,300 --> 00:26:53,400 Ma ciò che è garantito è che se io specificare alcuni plug-in come requisito, 477 00:26:53,400 --> 00:26:56,900 che il plug-in sarà caricato prima del caricamento questa. 478 00:26:56,900 --> 00:27:00,390 >> Quindi questo significa che, se il plug-in richiede su qualche funzionalità fornita 479 00:27:00,390 --> 00:27:04,380 da qualcos'altro nell'IDE, si dovrebbe essere sicuri che i vostri consuma di plug-in 480 00:27:04,380 --> 00:27:09,260 che inserita, in modo che le dipendenze sono certi di creare plug-in, 481 00:27:09,260 --> 00:27:15,010 o un'istanza il plug-in, solo dopo che esista quadro esistente. 482 00:27:15,010 --> 00:27:18,870 Così qui ho citato il metadati al gestore plug-in, 483 00:27:18,870 --> 00:27:20,990 quali ho intenzione di consumare. 484 00:27:20,990 --> 00:27:24,910 E nella funzione principale qui, Ho intenzione di collegare 485 00:27:24,910 --> 00:27:30,240 il mio codice di tali plug-in di importazione. 486 00:27:30,240 --> 00:27:33,420 >> Così sto solo andando a creare alcune variabili che 487 00:27:33,420 --> 00:27:36,620 corrispondono ai nomi di ciascuno di questi così che posso riferimento molto rapidamente 488 00:27:36,620 --> 00:27:37,840 tutto il mio codice. 489 00:27:37,840 --> 00:27:41,840 La ragione per cui sto importando dialogo è perché voglio il mio plug-in 490 00:27:41,840 --> 00:27:44,560 agire come un plug-in dialogo. 491 00:27:44,560 --> 00:27:49,320 E il modo in cui sono in grado per farlo è, naturalmente, 492 00:27:49,320 --> 00:27:52,740 collegare il codice al dialogo plug-in per l'importazione 493 00:27:52,740 --> 00:27:57,210 e quindi specificando by creare una nuova variabile dialogo 494 00:27:57,210 --> 00:28:00,460 e collegandolo quello importato plug-in. 495 00:28:00,460 --> 00:28:04,820 E poi definendo mia plug-in in un nuovo dialogo. 496 00:28:04,820 --> 00:28:07,650 >> Così nell'inizializzazione, I voler definire il mio plug-in. 497 00:28:07,650 --> 00:28:10,440 E questa variabile chiamata plug-in si vedrà 498 00:28:10,440 --> 00:28:14,030 è appena usato comunemente tutta Cloud 9 plug-in. 499 00:28:14,030 --> 00:28:16,980 Io vado a un'istanza di un nuovo il dialogo con alcuni attributi, 500 00:28:16,980 --> 00:28:22,300 dare un nome specifico, dire che è possibile per gli utenti di chiuderlo. 501 00:28:22,300 --> 00:28:24,960 Che faccio vedere un po 'x in nell'angolo in alto a destra, 502 00:28:24,960 --> 00:28:27,529 o un piccolo pulsante nella in basso a destra. 503 00:28:27,529 --> 00:28:30,570 O se non riesco a selezionare il testo da esso, ciò che il titolo di questo dialogo 504 00:28:30,570 --> 00:28:32,400 sarebbe, e così via. 505 00:28:32,400 --> 00:28:36,330 Ora, questo definisce solo il dialogo, ma ancora non vederlo. 506 00:28:36,330 --> 00:28:40,780 Mi hanno fatto di definire un azione per essere mostrato. 507 00:28:40,780 --> 00:28:43,490 >> E ancora, vi incoraggio a date un'occhiata al Cloud 9 SDK, 508 00:28:43,490 --> 00:28:46,930 perché ci sono una varietà dialoghi e sono molto ben documentati. 509 00:28:46,930 --> 00:28:50,500 Potete vedere i diversi tipi di che ci sono, e li usano 510 00:28:50,500 --> 00:28:55,380 in qualunque plug-in che avete in mente. 511 00:28:55,380 --> 00:28:58,790 Ora ci sara 'un parte del carico, e questo carico 512 00:28:58,790 --> 00:29:03,390 funzione di come si ricorderà è utilizzato dal ciclo di vita plug-in 513 00:29:03,390 --> 00:29:07,060 per istanziare realtà tutto e ottenere tutto pronto per andare. 514 00:29:07,060 --> 00:29:11,440 Ora, quando questo carichi di plug-in, io no vuole per mostrare immediatamente un dialogo, 515 00:29:11,440 --> 00:29:14,160 perché questo plug-in verrà caricato insieme al resto del IDE. 516 00:29:14,160 --> 00:29:17,850 E quando carico che IDE, non voglio il dialogo di mostrare automaticamente. 517 00:29:17,850 --> 00:29:24,170 Voglio soltanto per mostrare quando clicco su l'opzione di menu nella mia voce di menu Finestra 518 00:29:24,170 --> 00:29:26,760 che mi aggiungere ad essa momentaneamente. 519 00:29:26,760 --> 00:29:29,480 >> Quindi ci sono due fasi distinte qui che deve accadere. 520 00:29:29,480 --> 00:29:32,640 Devo creare un comando e il comando 521 00:29:32,640 --> 00:29:37,940 avrà il compito di realtà mostra il dialogo sulla Cloud 9 IDE. 522 00:29:37,940 --> 00:29:42,670 E poi devo collegare, io necessario creare una nuova menu della finestra 523 00:29:42,670 --> 00:29:46,070 voce, che esegue quel comando. 524 00:29:46,070 --> 00:29:49,740 In modo che quando clicco su quella finestra voce di menu, il comando è quindi corsa 525 00:29:49,740 --> 00:29:52,290 e quindi viene quindi visualizzato il mio dialogo. 526 00:29:52,290 --> 00:29:55,690 E così questo è in realtà una bella bel modo di pensarci. 527 00:29:55,690 --> 00:30:01,480 >> Perché prima che posso creare un comando il cui nome è CS50 Seminario Dialog 1, 528 00:30:01,480 --> 00:30:04,860 che fornisce un po ' contesto generale per esso. 529 00:30:04,860 --> 00:30:08,930 E il bit importante qui è notare l'attributo EXEC, che 530 00:30:08,930 --> 00:30:15,160 elenca una funzione che verrà chiamata nel mio plug-in quando viene eseguito questo comando. 531 00:30:15,160 --> 00:30:21,980 Quindi questo comando è un po 'come a-- è solo un arbitrario Cloud 9 532 00:30:21,980 --> 00:30:25,780 comando che è disponibile a qualsiasi Cloud 9 plug-in. 533 00:30:25,780 --> 00:30:30,290 Ma la funzione reale che è chiamerà quando viene eseguito questo comando 534 00:30:30,290 --> 00:30:35,010 è la funzione spettacolo dialogo nel mio file plugin.js. 535 00:30:35,010 --> 00:30:38,550 >> E possiamo realmente vedere questi plug-in e la lista 536 00:30:38,550 --> 00:30:45,480 di comandi che sono a nostra disposizione in Preferenze, scorrere fino down-- 537 00:30:45,480 --> 00:30:48,180 vediamo, in realtà vediamo adesso? 538 00:30:48,180 --> 00:30:53,180 Plug-in Manager, no, penso che sia I-- sicuramente qui da qualche parte. 539 00:30:53,180 --> 00:31:00,016 Beh, c'è un elenco di comandi da qualche parte, ma devo avere, 540 00:31:00,016 --> 00:31:01,140 Ho dimenticato dove si trova. 541 00:31:01,140 --> 00:31:02,430 Così male, ci sposteremo. 542 00:31:02,430 --> 00:31:02,930 Tutto ok. 543 00:31:02,930 --> 00:31:05,790 Quindi abbiamo un elenco di comandi che sono a nostra disposizione, 544 00:31:05,790 --> 00:31:08,550 e questi comandi sono questi solo arbitraria Cloud 9 545 00:31:08,550 --> 00:31:10,870 i comandi che eseguono codice specifico. 546 00:31:10,870 --> 00:31:13,620 Quindi, solo tenere a mente, che stiamo andando a correre la finestra di spettacolo 547 00:31:13,620 --> 00:31:15,640 funzionare momentaneamente. 548 00:31:15,640 --> 00:31:19,740 Ora, quando ho voglia di aggiungere un menu voce, posso aggiungere l'elemento in base al percorso, 549 00:31:19,740 --> 00:31:25,570 e basta specificare esattamente dove voglio che sia, Finestra / CS50 Seminario Dialog 1. 550 00:31:25,570 --> 00:31:28,380 E a quel punto, voglio per creare un nuovo elemento 551 00:31:28,380 --> 00:31:32,040 sta per eseguire un comando, CS50 Seminario Dialog 1. 552 00:31:32,040 --> 00:31:36,140 Si noti ancora che, questa è la Copertura 9 comando Ho creato appena sopra. 553 00:31:36,140 --> 00:31:38,630 >> Ora voglio anche a creare un piccolo divisorio, 554 00:31:38,630 --> 00:31:42,260 e così posso fare lo stesso nella riga successiva. 555 00:31:42,260 --> 00:31:46,040 Ora si potrebbe notare che come parte di definire questa voce di menu, 556 00:31:46,040 --> 00:31:48,200 c'è un numero di ad esso associati che 557 00:31:48,200 --> 00:31:51,260 in realtà dice esattamente dove Voglio che voce di menu è 558 00:31:51,260 --> 00:31:53,441 situata nella lista dei menu. 559 00:31:53,441 --> 00:31:55,190 Ma si potrebbe notare che io in realtà non 560 00:31:55,190 --> 00:31:59,540 vedere tutti i numeri con questi menu, per impostazione predefinita. 561 00:31:59,540 --> 00:32:04,630 Quindi c'è una piccola cosa nascosta che possiamo fare, un piccolo cambiamento per il nostro URL. 562 00:32:04,630 --> 00:32:12,920 Quindi, oltre a SDK = 1 & debug = 2, Mi misi menu per 1-- 563 00:32:12,920 --> 00:32:14,690 e speriamo che sia il menu, non i menu. 564 00:32:14,690 --> 00:32:17,001 Oh, è menu = 1. 565 00:32:17,001 --> 00:32:17,500 Resisti. 566 00:32:17,500 --> 00:32:20,150 567 00:32:20,150 --> 00:32:24,690 >> E quello che vedremo su ricarico che IDE è che io sono ancora in modalità di debug, 568 00:32:24,690 --> 00:32:27,540 ma ora ci sono i numeri associato a tutti i menu. 569 00:32:27,540 --> 00:32:29,630 E questo vi dice esattamente quello che il numero 570 00:32:29,630 --> 00:32:34,730 è quando si sta cercando di iniettare qualcosa ovunque in questo sistema di menu. 571 00:32:34,730 --> 00:32:40,365 Così nel menu Finestra, posso vedere l'elemento 45 è collaborare, 572 00:32:40,365 --> 00:32:43,820 e articolo 38 prima che sia installatore. 573 00:32:43,820 --> 00:32:47,530 Così, quando ho voglia di iniettare un elemento tra quei due, 574 00:32:47,530 --> 00:32:50,570 Vorrei solo selezionare un numero tra questi due elementi. 575 00:32:50,570 --> 00:32:56,200 Così ho scelto 41 e inserito il mio Seminario Voce 1 menu della finestra in quella posizione. 576 00:32:56,200 --> 00:33:03,640 >> Ed è per questo che questo numero che appare qui è il numero 41. 577 00:33:03,640 --> 00:33:08,010 Questa è la posizione di tale voce di menu nel menu di Cloud 9. 578 00:33:08,010 --> 00:33:11,045 Ora allo stesso modo, ho voluto per creare un divisore 579 00:33:11,045 --> 00:33:13,920 e aggiungere in modo che ci sia un bel divisione tra ciascuno di questi menù 580 00:33:13,920 --> 00:33:14,490 elementi. 581 00:33:14,490 --> 00:33:18,600 Così ho aggiunto che in posizione 43. 582 00:33:18,600 --> 00:33:20,260 Fin qui, tutto bene, spero? 583 00:33:20,260 --> 00:33:23,920 Quindi, ora diamo un'occhiata a realtà il codice specifico di dialogo spettacolo 584 00:33:23,920 --> 00:33:28,050 che in realtà è responsabile per l'apertura di questa finestra di dialogo. 585 00:33:28,050 --> 00:33:32,710 >> Scorrendo, vedo che voglio di avere questa funzione di finestra spettacolo, 586 00:33:32,710 --> 00:33:34,730 ed è estremamente semplice. 587 00:33:34,730 --> 00:33:38,570 Ho intenzione di eseguire lo spettacolo metodo sulla variabile plug-in. 588 00:33:38,570 --> 00:33:43,900 E ricordate che abbiamo definito questo plug-in variabili di cui sopra come un dialogo. 589 00:33:43,900 --> 00:33:48,530 Così bar plug-in, in questo caso, è questo oggetto che abbiamo definito internamente. 590 00:33:48,530 --> 00:33:53,030 E sarà un nuovo dialogo contenute in questo plug-in. 591 00:33:53,030 --> 00:33:57,020 E così abbiamo referenziato questo plug-in variabile in molti luoghi 592 00:33:57,020 --> 00:33:59,790 in una tipica Cloud 9 sviluppo dell'ambiente. 593 00:33:59,790 --> 00:34:00,867 >> Staremo a vedere qui. 594 00:34:00,867 --> 00:34:03,450 Si noti che come noi scorriamo, c'è cicli di vita aggiuntivi. 595 00:34:03,450 --> 00:34:06,970 Così notare che questi rispondono agli eventi che vengono sparati 596 00:34:06,970 --> 00:34:10,500 da questo oggetto, l'oggetto del dialogo. 597 00:34:10,500 --> 00:34:12,710 Per impostazione predefinita, non c'è caricare e scaricare, che 598 00:34:12,710 --> 00:34:14,760 sono a disposizione di tutti i Cloud 9 plug-in. 599 00:34:14,760 --> 00:34:17,139 Ma in caso di questo dialogo, non c'è 600 00:34:17,139 --> 00:34:19,139 un altro evento che possa fuoco così chiamato 601 00:34:19,139 --> 00:34:23,239 Draw, che viene generato quando che sta per essere disegnato sullo schermo, 602 00:34:23,239 --> 00:34:27,239 in primo grado del dialogo che mostra. 603 00:34:27,239 --> 00:34:29,590 >> Così, quando in realtà sta per essere mostrato, 604 00:34:29,590 --> 00:34:31,739 ci sta andando fornire a noi un po 'di HTML. 605 00:34:31,739 --> 00:34:34,710 E usando solo normale Pratiche HTML POSSIAMO 606 00:34:34,710 --> 00:34:41,030 iniettare alcune informazioni molto semplici, il nostro mondo ciao, in quel dialogo. 607 00:34:41,030 --> 00:34:47,780 Quindi, se poi scorrere verso l'alto, possiamo vedere poi la processione delle cose 608 00:34:47,780 --> 00:34:48,989 che è che si verificano. 609 00:34:48,989 --> 00:34:54,070 In primo luogo abbiamo creato un comando Cloud 9 che quando eseguiti da Cloud 9, 610 00:34:54,070 --> 00:34:55,765 sta andando a fuoco questa funzione. 611 00:34:55,765 --> 00:34:58,390 E 'intenzione di eseguire questa funzione Chiamai spettacolo dialogo, che ho 612 00:34:58,390 --> 00:34:59,720 scritto nel mio codice. 613 00:34:59,720 --> 00:35:04,350 >> Ho creato una voce di menu e collegato ad esso che stesso comando 614 00:35:04,350 --> 00:35:08,550 che quando tale voce si fa clic su il menu, che comando è quindi eseguire 615 00:35:08,550 --> 00:35:10,780 e che la funzione viene eseguita. 616 00:35:10,780 --> 00:35:14,080 E all'interno della funzione sono solo andando a chiamare the-- Sono 617 00:35:14,080 --> 00:35:17,250 solo andando per eseguire lo spettacolo metodo di questo plug-in, che 618 00:35:17,250 --> 00:35:20,800 sta per prima chiamata il metodo draw, e andando 619 00:35:20,800 --> 00:35:28,050 al fuoco questo metodo basso, la disegnare gestore di eventi, nel nostro ciclo di vita. 620 00:35:28,050 --> 00:35:30,820 E allora sarà davvero mostrano il dialogo. 621 00:35:30,820 --> 00:35:34,870 >> C'è anche un metodo nascondere, in modo che se ho bisogno la possibilità di nascondersi 622 00:35:34,870 --> 00:35:37,610 il mio dialogo, posso fare la stessa cosa. 623 00:35:37,610 --> 00:35:42,060 Ecco, questo è più o meno lo per ottenere tutto questo a lavorare. 624 00:35:42,060 --> 00:35:45,160 Si noti che è: se ci spostiamo verso il basso inoltre c'è un congelamento API pubblica. 625 00:35:45,160 --> 00:35:51,020 Questo dice in sostanza solo che ho vogliono questi metodi in modo efficace 626 00:35:51,020 --> 00:35:56,670 pubblica, ma non overwriteable al di fuori del contesto di questo plug-in. 627 00:35:56,670 --> 00:36:00,410 E sotto, in fondo, è forse l'ultima cosa 628 00:36:00,410 --> 00:36:03,180 che abbiamo davvero bisogno di pagare molta attenzione a qui, che 629 00:36:03,180 --> 00:36:09,540 è che ci accingiamo a registrare il nostro plug-in con il nome C9 Seminario 1, 630 00:36:09,540 --> 00:36:11,920 e il plug-in oggetto. 631 00:36:11,920 --> 00:36:14,870 >> Che, come ricorderete, è che plug-in che il plug-in 632 00:36:14,870 --> 00:36:18,200 oggetto che abbiamo definendo durante l'interezza di questa fonte 633 00:36:18,200 --> 00:36:18,840 codice. 634 00:36:18,840 --> 00:36:23,790 E C9 Seminario 1 è il stringa che abbiamo promesso 635 00:36:23,790 --> 00:36:26,350 fornire al top di questa definizione. 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 Quindi cerchiamo di rampa è un po ' e vedere se possiamo fare qualcosa 639 00:36:34,160 --> 00:36:36,020 un po 'più interessante. 640 00:36:36,020 --> 00:36:38,350 Ora, questo è solo così grande. 641 00:36:38,350 --> 00:36:41,380 Voglio dire, questo è, è in realtà piuttosto raffreddare in modo che poche linee di codice, 642 00:36:41,380 --> 00:36:45,570 possiamo modificare l'IDE esistente e aggiungere una voce di menu esistente 643 00:36:45,570 --> 00:36:48,850 o aggiungere una nuova voce di menu, aggiungere un il comando, e mostrano un dialogo, 644 00:36:48,850 --> 00:36:51,040 e solo un mucchio di funzionalità che esiste. 645 00:36:51,040 --> 00:36:54,550 E 'davvero abbastanza grande. 646 00:36:54,550 --> 00:36:59,470 >> Ma non fare molto perché non può comunicare con l'Ubuntu sottostante 647 00:36:59,470 --> 00:37:00,450 esempio. 648 00:37:00,450 --> 00:37:02,560 Quindi diciamo che ho in realtà vuole scoprire 649 00:37:02,560 --> 00:37:05,400 alcune informazioni sul sottostante esempio Ubuntu, 650 00:37:05,400 --> 00:37:08,260 come le statistiche plug-in fa. 651 00:37:08,260 --> 00:37:11,090 Quindi, diamo un'occhiata a un po 'più di informazioni 652 00:37:11,090 --> 00:37:13,730 di come le statistiche plug-in opere. 653 00:37:13,730 --> 00:37:15,900 Ed in effetti, è molto simile a questo. 654 00:37:15,900 --> 00:37:17,680 Si potrebbe ricordare che c'è un dialogo. 655 00:37:17,680 --> 00:37:21,680 Si potrebbe ricordare che non c'è alcune informazioni che sono 656 00:37:21,680 --> 00:37:24,860 mostrato proprio lungo la barra del menu lungo la parte superiore, che si spera si è ora 657 00:37:24,860 --> 00:37:27,450 ottenere un sapore di come abbiamo implementato questo, 658 00:37:27,450 --> 00:37:32,360 semplicemente inserendo le voci di menu a specifica punti e istanziando un dialogo 659 00:37:32,360 --> 00:37:34,360 e la visualizzazione che il dialogo. 660 00:37:34,360 --> 00:37:36,580 >> Ma non abbiamo ancora mostrato come possiamo collegarlo 661 00:37:36,580 --> 00:37:40,790 di un comando nel sottostante esempio Ubuntu. 662 00:37:40,790 --> 00:37:46,930 Quindi, diamo uno sguardo poi a plugin.2, che fa appunto questa cosa. 663 00:37:46,930 --> 00:37:50,540 Stiamo andando ad aprire plugin.js, che è il codice per questo. 664 00:37:50,540 --> 00:37:54,570 Ma sotto il menu Finestra, se clicco su finestra 2, 665 00:37:54,570 --> 00:37:58,290 possiamo vedere che si dice invece, ciao CS50, che 666 00:37:58,290 --> 00:38:01,800 non sembra che tutto allettante, giusto? 667 00:38:01,800 --> 00:38:04,310 Tranne, guarda questo. 668 00:38:04,310 --> 00:38:07,020 Vorrei cambiare qualcosa qui. 669 00:38:07,020 --> 00:38:11,540 >> Ho intenzione di andare al mio spazio di lavoro e il cambiamento seminario 670 00:38:11,540 --> 00:38:15,990 per dire qualcos'altro, come Ciao, Dan. 671 00:38:15,990 --> 00:38:18,150 Ho intenzione di chiuderlo e salvarlo. 672 00:38:18,150 --> 00:38:22,740 E ora ho intenzione di re-run la mia voce di menu dialogo. 673 00:38:22,740 --> 00:38:25,590 E notare che ha ora ha cambiato quello che dice. 674 00:38:25,590 --> 00:38:26,880 Ciao, Dan. 675 00:38:26,880 --> 00:38:30,680 Mi sembra di aver fatto qualcosa giù qui nel sottostante istanza Ubuntu 676 00:38:30,680 --> 00:38:34,370 senza aver manipolato alcuna codice che ancora una volta è in esecuzione solo 677 00:38:34,370 --> 00:38:35,720 sul lato client. 678 00:38:35,720 --> 00:38:40,380 Quindi c'è ovviamente una sorta di comunicazione che sta succedendo qui. 679 00:38:40,380 --> 00:38:44,550 >> Ora, questo è dove un sacco di potenza del Cloud 9 SDK è disponibile in, 680 00:38:44,550 --> 00:38:49,440 è che in questo plugin.2, possiamo effettivamente causare 681 00:38:49,440 --> 00:38:52,910 una chiamata per accadere al esempio di fondo, 682 00:38:52,910 --> 00:38:55,750 ed eseguire un comando arbitrario. 683 00:38:55,750 --> 00:39:00,230 Quindi, in questo caso, ho fatto creato un semplice script bash 684 00:39:00,230 --> 00:39:02,350 nel mio lavoro chiamato Seminario. 685 00:39:02,350 --> 00:39:03,610 Permettetemi quindi di aprire che fino. 686 00:39:03,610 --> 00:39:05,370 E possiamo vedere che assomiglia a questo. 687 00:39:05,370 --> 00:39:08,310 E 'solo un semplice bash sceneggiatura il cui unico scopo nella vita 688 00:39:08,310 --> 00:39:11,920 sta per essere echeggiare questo testo, Ciao, Dan. 689 00:39:11,920 --> 00:39:14,360 O prima, ha detto Ciao, CS50. 690 00:39:14,360 --> 00:39:16,000 E questo è tutto quello che sta per fare. 691 00:39:16,000 --> 00:39:21,030 >> Perché questo è ormai un comando che posso correre. 692 00:39:21,030 --> 00:39:23,750 Posso effettivamente correre qui. 693 00:39:23,750 --> 00:39:28,440 Possiamo vedere che in realtà è solo un comando che ho eseguito in modo naturale. 694 00:39:28,440 --> 00:39:32,850 Posso chiedere al mio plug-in per eseguire questo comando sul lavoro sottostante 695 00:39:32,850 --> 00:39:36,510 e analizzare le informazioni che è stato restituito da esso, 696 00:39:36,510 --> 00:39:40,300 e fare qualcosa con esso, e modificare Plug-in e il comportamento che ho 697 00:39:40,300 --> 00:39:43,240 avere nel mio plug-in di conseguenza. OK. 698 00:39:43,240 --> 00:39:45,450 Quindi cerchiamo di vedere come questo accade. 699 00:39:45,450 --> 00:39:48,380 Abbiamo visto questo molto semplice Script batch Seminario che ho 700 00:39:48,380 --> 00:39:51,080 [Incomprensibile] che può effettivamente eseguito. 701 00:39:51,080 --> 00:39:54,560 >> E ora vediamo le modifiche che sono necessari per legare questo insieme 702 00:39:54,560 --> 00:39:57,620 con la finestra di dialogo, ed eseguirlo. 703 00:39:57,620 --> 00:40:02,030 Quindi qui stiamo andando a fare abbastanza più o meno la stessa cosa, come abbiamo visto prima. 704 00:40:02,030 --> 00:40:05,500 Meno di notare che tra il cose che ho consumato now-- 705 00:40:05,500 --> 00:40:09,090 oltre al dialogo, che ancora una volta mi è capitato di aver fatto due volte, 706 00:40:09,090 --> 00:40:14,300 che non è necessary-- oltre al dialogo e comandi 707 00:40:14,300 --> 00:40:17,780 ei menu plug-in, che erano necessaria nel primo per me 708 00:40:17,780 --> 00:40:21,560 definire un nuovo comando e iniettare un elemento in menu, 709 00:40:21,560 --> 00:40:25,010 Ho anche questo plug-in proc. 710 00:40:25,010 --> 00:40:28,500 >> E questo plug-in permette proc di manipolare i processi 711 00:40:28,500 --> 00:40:30,950 l'istanza sottostante. 712 00:40:30,950 --> 00:40:34,970 Ho collegato dopo ho ha detto che il mio plug-in richiede. 713 00:40:34,970 --> 00:40:38,320 Ho poi collegato al codice, come abbiamo visto nella funzione principale. 714 00:40:38,320 --> 00:40:40,970 Ancora una volta, ho intenzione di inizializzare il mio dialogo. 715 00:40:40,970 --> 00:40:45,500 E se ci spostiamo in giù ora, abbiamo può vedere come questo è diverso. 716 00:40:45,500 --> 00:40:49,040 La funzione di carico è lo stesso, così è solo andando a creare un comando 717 00:40:49,040 --> 00:40:54,250 e creare una voce di menu e collegare che voce di menu per quel comando. 718 00:40:54,250 --> 00:40:56,690 Ma se ora scorriamo in modo da mostrare il dialogo, 719 00:40:56,690 --> 00:40:59,990 possiamo iniziare a vedere dove le differenze si presentano. 720 00:40:59,990 --> 00:41:04,170 >> Abbiamo spettacolo dialogo funzione, che sta solo andando a mostrare il dialogo. 721 00:41:04,170 --> 00:41:12,410 Ma quando mostro questo dialogo, e quando il metodo spettacolo si chiama, 722 00:41:12,410 --> 00:41:14,430 spara la funzione di disegno. 723 00:41:14,430 --> 00:41:18,990 E ho intenzione di specificare alcuni contenuti all'interno di tale. 724 00:41:18,990 --> 00:41:21,910 Così sto solo andando a creare un div, fornire ad essa 725 00:41:21,910 --> 00:41:24,020 un testo base, Ciao, mondo. 726 00:41:24,020 --> 00:41:27,250 Meno di notare che qui sono andando a collegare ad essa un ID. 727 00:41:27,250 --> 00:41:32,350 E la linea molto prossimo vado per scoprire che ID utilizzando JavaScript, 728 00:41:32,350 --> 00:41:36,210 e memorizzare l'oggetto in un'altra variabile 729 00:41:36,210 --> 00:41:38,280 che sto solo andando a chiamare il contenuto. 730 00:41:38,280 --> 00:41:41,780 >> Così ora ogni volta che ho contenuti, tutto quello che ho bisogno di fare 731 00:41:41,780 --> 00:41:46,100 è sufficiente modificare HTML interno di questo oggetto. 732 00:41:46,100 --> 00:41:51,300 E il codice HTML dialogo quindi essere modificato pure. 733 00:41:51,300 --> 00:41:55,500 Così, quando questo plug-in è poi dimostrato, che può accadere 734 00:41:55,500 --> 00:41:59,820 e questo è un nuovo evento che è nuovo a questo plug-in, 735 00:41:59,820 --> 00:42:03,380 ma accade in ogni plug-in con il dialogo, quando questo viene ora mostrata, 736 00:42:03,380 --> 00:42:07,100 Vado a chiamare un funzione di chiamata fetch informazioni. 737 00:42:07,100 --> 00:42:10,520 E questa funzione è la carne di qui. 738 00:42:10,520 --> 00:42:14,930 Ho intenzione di utilizzare tale plug-in proc che abbiamo descritto prima, che tra l'altro, 739 00:42:14,930 --> 00:42:19,790 è in realtà solo una libreria Node.js che Cloud 9 sta usando qui. 740 00:42:19,790 --> 00:42:21,730 >> Così si può effettivamente cercare su come questo 741 00:42:21,730 --> 00:42:25,340 funziona se si va in Documentazione Node.js 742 00:42:25,340 --> 00:42:29,220 e cercare il file exec metodo per i processi di lì. 743 00:42:29,220 --> 00:42:33,110 Ho intenzione di eseguire questo specifico comando, casa Ubuntu lavoro 744 00:42:33,110 --> 00:42:38,000 seminario, che è quella stessa, che stesso comando che ho creato prima. 745 00:42:38,000 --> 00:42:40,680 Fornire ad esso una corrente directory di lavoro, solo 746 00:42:40,680 --> 00:42:45,440 per essere sicuri ultra in termini di contesto in cui questo è in esecuzione. 747 00:42:45,440 --> 00:42:49,150 E una volta che è stato completato e restituito, 748 00:42:49,150 --> 00:42:54,040 Ho intenzione di eseguire questo funzione chiamata uscita di analisi. 749 00:42:54,040 --> 00:42:54,540 OK. 750 00:42:54,540 --> 00:42:58,670 Quindi questo poi sta andando ad eseguire un comando a livello locale, o meglio, 751 00:42:58,670 --> 00:43:01,700 l'istanza di Ubuntu remota. 752 00:43:01,700 --> 00:43:03,490 Quando torno un po ' informazioni, sono quindi 753 00:43:03,490 --> 00:43:06,940 intenzione di chiamare una funzione separata chiamato uscita parse, che 754 00:43:06,940 --> 00:43:13,790 ha questa firma qui, err, stdout, stderr, 755 00:43:13,790 --> 00:43:15,910 ed eseguire alcuni calcoli su questo. 756 00:43:15,910 --> 00:43:18,930 Quindi, se ho ricevuto un errore di qualche tipo affatto, 757 00:43:18,930 --> 00:43:22,340 Io in realtà controllare per vedere se errore in realtà ha alcuni dati. 758 00:43:22,340 --> 00:43:27,204 E se è così, allora io modificherà il interno HTML di tale oggetto contenuto, che 759 00:43:27,204 --> 00:43:28,995 è ricorderete, abbiamo collegata al dialogo 760 00:43:28,995 --> 00:43:32,210 al instantiattion di tale dialogo, o il primo disegno 761 00:43:32,210 --> 00:43:33,370 di quel dialogo. 762 00:43:33,370 --> 00:43:35,650 Io vado a dire proprio questo qualche errore è accaduto. 763 00:43:35,650 --> 00:43:37,140 >> Ora, questo è troppo semplicistico. 764 00:43:37,140 --> 00:43:40,170 Il valore di errore in genere contenere qualcosa che fosse utile, 765 00:43:40,170 --> 00:43:45,520 forse un numero di errore e errore dello script stesso. 766 00:43:45,520 --> 00:43:48,430 Oppure, se lo script scritto qualcosa di errore standard, 767 00:43:48,430 --> 00:43:50,890 che i dati sarebbe popolata in tale parametro. 768 00:43:50,890 --> 00:43:53,765 E potrei essere un po ' più attenti a ciò che errore 769 00:43:53,765 --> 00:43:55,332 In realtà sto mostrando persone. 770 00:43:55,332 --> 00:43:57,415 Ma questo esempio semplicistico è abbastanza buono per ora 771 00:43:57,415 --> 00:43:59,715 almeno vedere come tutto questo funzioni. 772 00:43:59,715 --> 00:44:01,590 Altrimenti se c'è nessun errore, allora io sono solo 773 00:44:01,590 --> 00:44:05,500 andando a fornire grezzo uscita di tale funzione 774 00:44:05,500 --> 00:44:10,070 in HTML interno di questo contenuto elemento, e quindi aggiornare il mio plug-in 775 00:44:10,070 --> 00:44:12,490 e mostra qui. 776 00:44:12,490 --> 00:44:17,550 E questo è più o meno tutto ciò che è necessario per ottenere questo per funzionare. 777 00:44:17,550 --> 00:44:22,860 E così pensiamo poi come questo funziona, nel complesso. 778 00:44:22,860 --> 00:44:29,330 Quando ho caricato questo plug-in, proprio come il primo plug-in, 779 00:44:29,330 --> 00:44:32,670 Ho intenzione di aggiungere un comando che è disponibile per qualsiasi cosa, a qualsiasi plug-in 780 00:44:32,670 --> 00:44:37,120 in Cloud 9, chiamato Seminario CS50 Dialog 2, la cui responsabilità 781 00:44:37,120 --> 00:44:39,670 sarà quello di eseguire questo spettacolo il dialogo, che è si ricorderà, 782 00:44:39,670 --> 00:44:42,730 realmente mostrerà il dialogo che ho richiesto qui di seguito. 783 00:44:42,730 --> 00:44:45,980 >> Poi vorrei aggiungere che comando in un menu della finestra 784 00:44:45,980 --> 00:44:48,070 in modo da avere accesso a questo. 785 00:44:48,070 --> 00:44:51,420 E quando questo dialogo è chiesto di essere mostrato, 786 00:44:51,420 --> 00:44:55,170 Io andrò a prendere alcune informazioni da il sottostante istanza di Ubuntu 787 00:44:55,170 --> 00:44:58,890 utilizzando il comando exec file. 788 00:44:58,890 --> 00:44:59,920 Mi scusi. 789 00:44:59,920 --> 00:45:04,140 Una volta che viene restituito e ricevo un po ' informazioni, poi sul lato client 790 00:45:04,140 --> 00:45:08,370 ancora una volta, sarò in grado di analizzare l'uscita di tale comando 791 00:45:08,370 --> 00:45:12,650 e aggiornare l'interno HTML degli elementi 792 00:45:12,650 --> 00:45:16,440 che avevamo collegato al precedente. 793 00:45:16,440 --> 00:45:19,910 >> E con questo, abbiamo poi questo completamente funzionale plug-in 794 00:45:19,910 --> 00:45:24,520 che mi permette di recuperare informazioni da questo script arbitrari 795 00:45:24,520 --> 00:45:27,170 che abbiamo creato sulla nostra istanza sottostante. 796 00:45:27,170 --> 00:45:29,660 Ma ancora una volta, è davvero importante e davvero fondamentale 797 00:45:29,660 --> 00:45:33,030 separare dove ciascun di queste cose sta accadendo, 798 00:45:33,030 --> 00:45:38,320 che abbiamo tutto questo lato client codice che viene eseguito nel browser, 799 00:45:38,320 --> 00:45:41,640 e ancora non ha accesso per il file system sottostante 800 00:45:41,640 --> 00:45:44,895 fino a quando abbiamo effettivamente eseguire alcuni di questi comandi che vengono forniti dal Copertura 801 00:45:44,895 --> 00:45:49,055 9 SDK come proc, e alcuni altri che ci permettono di leggere alcuni dati, 802 00:45:49,055 --> 00:45:53,500 o leggere alcuni file se abbiamo bisogno per fare una cosa del genere. 803 00:45:53,500 --> 00:45:56,650 >> Ora, questo è un po 'semplice esempio. 804 00:45:56,650 --> 00:46:00,570 Ci sono altre cose che abbiamo avrebbe forse voglia di fare pure. 805 00:46:00,570 --> 00:46:03,470 Per esempio, forse abbiamo effettivamente desidera salvare alcune informazioni 806 00:46:03,470 --> 00:46:04,630 alle preferenze. 807 00:46:04,630 --> 00:46:07,900 O forse vogliamo aggiungere un nuovo pannello di preferenze 808 00:46:07,900 --> 00:46:09,690 o qualcosa del genere. 809 00:46:09,690 --> 00:46:13,370 Allora questo è qualcosa che si può dare un'occhiata al Cloud 9 SDK 810 00:46:13,370 --> 00:46:15,300 per avere maggiori informazioni su. 811 00:46:15,300 --> 00:46:19,990 Ma questo è davvero abbastanza per iniziare. 812 00:46:19,990 --> 00:46:26,410 Quindi, solo per essere un po 'più concreto nel modo in cui alcune di queste cose 813 00:46:26,410 --> 00:46:31,370 Funzione, volevo mostrare solo un altro esempio, che è solo alcuni 814 00:46:31,370 --> 00:46:35,580 del codice dal plug-in Statistiche 50. 815 00:46:35,580 --> 00:46:39,780 >> E questo codice è fondamentalmente sulla base di questi esempi 816 00:46:39,780 --> 00:46:43,310 che hai effettivamente visto, ma ha alcune altre misure di salvaguardia 817 00:46:43,310 --> 00:46:47,460 e ha un po 'di complessità, al fine per raggiungere alcune delle cose aggiuntive 818 00:46:47,460 --> 00:46:48,930 che vogliamo raggiungere. 819 00:46:48,930 --> 00:46:54,510 Ad esempio, se voglio essere in grado di salvare alcune impostazioni, 820 00:46:54,510 --> 00:46:57,700 quindi ho bisogno di avere accesso le impostazioni dei plug-in, 821 00:46:57,700 --> 00:47:01,820 e ogni volta che voglio leggere alcune impostazioni, 822 00:47:01,820 --> 00:47:08,340 Posso, per esempio, collegare a vari eventi nelle impostazioni dei plug-in. 823 00:47:08,340 --> 00:47:13,630 Così ogni volta le impostazioni è di colore rosso, per esempio, nel mio plug-in, 824 00:47:13,630 --> 00:47:18,450 se ho intenzione di leggere alcuni le impostazioni dalla memoria salvato 825 00:47:18,450 --> 00:47:24,540 le preferenze degli utenti, allora posso impostare i valori predefiniti per una località specifica, 826 00:47:24,540 --> 00:47:31,250 per particolari richieste, in quanto JSON file di opzioni di stile che abbiamo 827 00:47:31,250 --> 00:47:33,890 salvato in precedenza, che abbiamo visto in precedenza. 828 00:47:33,890 --> 00:47:36,370 >> E se ho intenzione di scrivere alcune impostazioni ad esso, 829 00:47:36,370 --> 00:47:40,440 poi ho can-- o non appena rileviamo che le impostazioni sono stati scritti 830 00:47:40,440 --> 00:47:44,420 a-- perché per esempio, quelli le impostazioni sono state modificate dall'utente 831 00:47:44,420 --> 00:47:47,335 o direttamente nelle impostazioni file o il pannello di preferenze 832 00:47:47,335 --> 00:47:49,370 ha cambiato le impostazioni presentare direttamente, quindi 833 00:47:49,370 --> 00:47:53,590 Posso realmente aggiornare parte del codice o aggiornare il comportamento del mio plug-in 834 00:47:53,590 --> 00:47:58,710 sulla base di quei cambiamenti che hanno si è verificato sul file di impostazioni come bene. 835 00:47:58,710 --> 00:48:03,380 Ma in realtà, il resto è piuttosto tanto questo che hai già visto. 836 00:48:03,380 --> 00:48:06,040 >> Aggiungiamo un po ', forse qualcosa di nuovo. 837 00:48:06,040 --> 00:48:09,440 Così aggiungiamo un file di preferenze, o meglio un pannello di preferenze, 838 00:48:09,440 --> 00:48:14,250 la finestra delle preferenze, che ancora una volta è possibile trovare ulteriori informazioni 839 00:48:14,250 --> 00:48:16,220 nel Cloud 9 SDK mi legge. 840 00:48:16,220 --> 00:48:18,460 Ma tutto il resto è più o meno, piuttosto 841 00:48:18,460 --> 00:48:25,810 simile a quello che abbiamo visto prima, solo con un po 'di controllo degli errori supplementari 842 00:48:25,810 --> 00:48:30,150 e alcune protezioni aggiuntive e alcune funzionalità aggiuntive 843 00:48:30,150 --> 00:48:33,314 per caratterizzare tutte le varie cose che abbiamo visto. 844 00:48:33,314 --> 00:48:35,230 Se non avete in realtà ancora visto, si potrebbe 845 00:48:35,230 --> 00:48:40,955 essere chiedendo cosa il sottostante il comando si trova nella finestra Statistiche 50. 846 00:48:40,955 --> 00:48:42,840 In realtà è la funzione. 847 00:48:42,840 --> 00:48:48,100 Beh, è-- oh, dannazione. 848 00:48:48,100 --> 00:48:49,410 Un secondo. 849 00:48:49,410 --> 00:48:49,910 Resisti. 850 00:48:49,910 --> 00:48:52,270 OK. 851 00:48:52,270 --> 00:48:58,090 Fammi spostare questo in modo che possiamo in realtà vedere cosa succede quando digito Statistiche 50. 852 00:48:58,090 --> 00:49:02,140 Si noti che in questo caso, la comando che sono fuori mettendo 853 00:49:02,140 --> 00:49:06,310 è davvero nuovo, solo lo script che è andando a produrre un mucchio di informazioni 854 00:49:06,310 --> 00:49:08,040 in formato JSON. 855 00:49:08,040 --> 00:49:10,800 E la ragione per cui lo facciamo in questo modo è che perché 856 00:49:10,800 --> 00:49:15,480 sono operativi, perché abbiamo scritto il codice lato client in JavaScript, 857 00:49:15,480 --> 00:49:19,500 possiamo molto facilmente solo analizzare oggetti JavaScript, 858 00:49:19,500 --> 00:49:23,050 e realmente in grado di manipolare questi oggetti proprio come faremmo 859 00:49:23,050 --> 00:49:24,610 qualsiasi altro oggetto JavaScript. 860 00:49:24,610 --> 00:49:27,650 >> E quindi questo è un molto conveniente modo di fornire alcune informazioni 861 00:49:27,650 --> 00:49:31,950 dal sottostante istanza di Ubuntu, quali il numero di versione, l'host 862 00:49:31,950 --> 00:49:36,360 nome, se un server è in ascolto, ciò che il server è, chi più ne ha più ne metta, 863 00:49:36,360 --> 00:49:39,150 e analizzare che molto facilmente e molto rapidamente 864 00:49:39,150 --> 00:49:44,870 nel plug-in che viene poi andando per mostrarci tutte queste informazioni. 865 00:49:44,870 --> 00:49:47,920 Così ancora una volta, l'intuizione chiave qui da tenere a mente 866 00:49:47,920 --> 00:49:54,260 è questa separazione tra l'istanza di base, 867 00:49:54,260 --> 00:49:57,490 e anche dove si carica il codice. 868 00:49:57,490 --> 00:49:59,870 Che quando ho un cliente, è primo caricamento. 869 00:49:59,870 --> 00:50:03,951 Proprio questo file JavaScript statico dal da qualche parte, forse CDN di qualche tipo. 870 00:50:03,951 --> 00:50:06,450 Noi in realtà non hanno di cura troppo di questo primo passo. 871 00:50:06,450 --> 00:50:08,970 >> Sappiamo solo che si tratta di esecuzione sul lato client 872 00:50:08,970 --> 00:50:12,740 e che quando ho intenzione di comunicare con questa istanza finestra mobile. 873 00:50:12,740 --> 00:50:15,970 Che stiamo andando a farlo attraverso il Cloud 9 SDK. 874 00:50:15,970 --> 00:50:20,460 Noi in realtà non abbiamo la capacità, utilizzando JavaScript o Node.js, 875 00:50:20,460 --> 00:50:21,750 di scrivere direttamente ad esso. 876 00:50:21,750 --> 00:50:29,400 Usiamo quelli esistenti SDK API per fare che l'azione per noi. 877 00:50:29,400 --> 00:50:32,490 E ancora, una delle cose veramente importanti 878 00:50:32,490 --> 00:50:38,990 è che quando ho creato questo, quando ho creato questo plug-in, 879 00:50:38,990 --> 00:50:42,510 e mentre sto lavorando su di esso, un delle cose importanti da fare 880 00:50:42,510 --> 00:50:44,840 è quello di far apparire la console JavaScript. 881 00:50:44,840 --> 00:50:49,400 >> Poiché poiché questo è tutto operanti sul JavaScript, 882 00:50:49,400 --> 00:50:54,700 sul lato client, se uso un console.log method-- quindi basta 883 00:50:54,700 --> 00:50:56,550 per mostrare un esempio qui. 884 00:50:56,550 --> 00:51:07,630 Proviamo modificare questo semplice plug-in per registrare anche alcuni dati. 885 00:51:07,630 --> 00:51:09,895 E noi aggiungeremo fuori standard. 886 00:51:09,895 --> 00:51:13,010 887 00:51:13,010 --> 00:51:16,810 Quindi cerchiamo di cambiare che, per essere proprio qui. 888 00:51:16,810 --> 00:51:19,560 Ora, quando eseguo console.log, tenere a mente 889 00:51:19,560 --> 00:51:21,630 che dal momento che questo è in esecuzione sul lato client, 890 00:51:21,630 --> 00:51:24,900 Vedrò questo nel mio Console JavaScript, che 891 00:51:24,900 --> 00:51:28,540 è come sarò quindi in grado di cercare di risolvere i problemi ed eseguire il debug 892 00:51:28,540 --> 00:51:30,330 alcuni dei problemi che ho. 893 00:51:30,330 --> 00:51:34,110 >> Si noti che, a causa Sono in modalità SDK, sono 894 00:51:34,110 --> 00:51:37,820 quindi in grado di manipolare plug-in di questa istanza. 895 00:51:37,820 --> 00:51:39,800 Quindi, anche se è salvato in questo esempio, 896 00:51:39,800 --> 00:51:47,130 questo è quello del precedente esempio regola violata, dove il Cloud 9 897 00:51:47,130 --> 00:51:51,030 SDK sarà effettivamente tirare plug-in dal sottostante istanza e quindi eseguirli. 898 00:51:51,030 --> 00:51:54,440 Così che in questo modo, sono poi in grado di manipolare e costruire 899 00:51:54,440 --> 00:51:55,750 alcuni plug-in qui. 900 00:51:55,750 --> 00:51:58,080 Ma per per me vedere aggiornamenti su questo plug-in, 901 00:51:58,080 --> 00:52:01,880 perché è sul lato client, Ho bisogno di salvare quel plug-in 902 00:52:01,880 --> 00:52:04,950 e poi ricaricare l'intera area di lavoro, in modo che il nuovo plug-in è quindi 903 00:52:04,950 --> 00:52:09,230 scaricato sul mio cliente, sul mio browser web, e quindi è in uso. 904 00:52:09,230 --> 00:52:14,460 >> Così ora quando faccio clic su questo Seminario Dialog 2, vediamo ancora questo. 905 00:52:14,460 --> 00:52:21,311 Ma ora si spera in mia JavaScript dialogo, dovrebbe vediamo my-- aspettare, 906 00:52:21,311 --> 00:52:21,810 resisti. 907 00:52:21,810 --> 00:52:24,420 Avrei potuto aprire il dialogo fresco. 908 00:52:24,420 --> 00:52:30,230 Dovremmo vedere i miei dati ricevuti qui. 909 00:52:30,230 --> 00:52:32,780 I dati ricevuti, Ciao, Dan, che è si ricorderà, 910 00:52:32,780 --> 00:52:37,770 era un'operazione che console.log abbiamo richiesto nel plug-in. 911 00:52:37,770 --> 00:52:42,140 Quindi questa descrizione allora che ho detto prima, 912 00:52:42,140 --> 00:52:45,460 questo dialogo, o questo schema piuttosto, che mi 913 00:52:45,460 --> 00:52:49,140 accennato prima è ciò che accade. 914 00:52:49,140 --> 00:52:53,150 Ma c'è un importante eccezione solo per lo sviluppo, 915 00:52:53,150 --> 00:52:55,490 che è che il plug-in si potrebbe effettivamente 916 00:52:55,490 --> 00:52:59,160 essere memorizzati nell'istanza finestra mobile temporaneamente, dal momento che presumibilmente Cloud 9 917 00:52:59,160 --> 00:53:02,210 non ci vuole essere in grado di manipolare oggetti sul loro CDN. 918 00:53:02,210 --> 00:53:08,650 >> E i Cloud 9 clienti, al momento del caricamento, troveranno i plug-in che. 919 00:53:08,650 --> 00:53:11,540 Plug-in C9 cartella e caricare quelli. 920 00:53:11,540 --> 00:53:15,780 Ma quelli sono ancora accadendo solo sul lato client. 921 00:53:15,780 --> 00:53:19,440 Allora questo è solo l'una eccezione che si verifica solo 922 00:53:19,440 --> 00:53:23,220 per lo sviluppo di Cloud 9 plug-in. 923 00:53:23,220 --> 00:53:25,000 Ma il resto della tempo-- e la ragione 924 00:53:25,000 --> 00:53:26,708 che vogliamo davvero martello questo home-- 925 00:53:26,708 --> 00:53:30,140 è perché la maggior parte del tempo questo è andando ad essere in esecuzione dalla CDN, 926 00:53:30,140 --> 00:53:33,030 e solo andando a essere eseguito puramente dal lato client. 927 00:53:33,030 --> 00:53:36,110 >> Normalmente non ci sarà interazione con il plug-in, 928 00:53:36,110 --> 00:53:39,840 o non ci hanno nemmeno bisogno di essere qualsiasi ragione che si il plug-ins 929 00:53:39,840 --> 00:53:42,970 sono effettivamente memorizzati sulla sottostante istanza finestra mobile, 930 00:53:42,970 --> 00:53:47,240 tranne nel caso di questo sviluppo SDK. 931 00:53:47,240 --> 00:53:51,510 Quindi, di nuovo, questo cambia solo leggermente a causa del fatto 932 00:53:51,510 --> 00:53:54,650 che stiamo correndo modalità SDK. 933 00:53:54,650 --> 00:53:57,160 Sta andando a caricare quelli plug-in di sviluppo, 934 00:53:57,160 --> 00:54:01,690 e l'unico scopo qui è così che Posso usare Cloud 9 per fare lo sviluppo 935 00:54:01,690 --> 00:54:04,620 per Cloud 9 plugin. 936 00:54:04,620 --> 00:54:07,220 Ma anche così, questo non cambia ancora una volta come tutto questo funziona. 937 00:54:07,220 --> 00:54:09,650 E 'ancora in fase di esecuzione interamente sul lato client. 938 00:54:09,650 --> 00:54:16,260 >> Significa solo che ogni volta che voglio creare Cloud 9 plug-in Cloud 9, 939 00:54:16,260 --> 00:54:19,320 Creo quei plug-in, metterli nel mio. 940 00:54:19,320 --> 00:54:25,110 Cartella / plugins C9 nella mia casa directory, assicurarsi che io sono in modalità di SDK, 941 00:54:25,110 --> 00:54:29,290 ricaricare la pagina ogni volta che in realtà apportare modifiche a tale plug-in, 942 00:54:29,290 --> 00:54:33,590 e vedere cosa succede in mia console JavaScript. 943 00:54:33,590 --> 00:54:36,240 Basta gestire la mia JavaScript consolare per assicurarsi 944 00:54:36,240 --> 00:54:38,930 che la risoluzione dei problemi informazioni che ho posto a consolare, 945 00:54:38,930 --> 00:54:41,920 o qualsiasi altra cosa che potrebbe accadere a causa di errori che ho scritto 946 00:54:41,920 --> 00:54:44,940 nel mio codice o simile, vi appare. 947 00:54:44,940 --> 00:54:48,007 >> E con questo, è davvero abbastanza per iniziare, credo, 948 00:54:48,007 --> 00:54:49,090 con i Cloud 9 plug-in. 949 00:54:49,090 --> 00:54:53,120 Soprattutto dare un'occhiata a l'SDK documentazione Cloud 9 fornisce. 950 00:54:53,120 --> 00:54:56,650 E 'un ottimo modo per ottenere iniziato, e molto facilmente 951 00:54:56,650 --> 00:54:59,900 creare alcuni plug-in per Cloud 9. 952 00:54:59,900 --> 00:55:02,820 E con questo, voglio ringraziare tutti molto per me l'adesione. 953 00:55:02,820 --> 00:55:05,550 Spero che vi divertirete scrivere plug-in per Cloud 9. 954 00:55:05,550 --> 00:55:09,600 Forse migliorando plug-in che abbiamo ora, o forse anche 955 00:55:09,600 --> 00:55:11,360 l'aggiunta di alcune funzionalità di tua scelta. 956 00:55:11,360 --> 00:55:14,540 Non vediamo l'ora di vedere che cosa è che si crea. 957 00:55:14,540 --> 00:55:16,330 Fino ad allora, ciao. 958 00:55:16,330 --> 00:55:18,734