1 00:00:00,000 --> 00:00:05,159 2 00:00:05,159 --> 00:00:09,240 >> DAN Armendáriz: Bună ziua, și bun venit la un seminar pe CS50 Personalizarea Cloud 9, 3 00:00:09,240 --> 00:00:11,724 și IDE CS50. 4 00:00:11,724 --> 00:00:13,640 Așa că astăzi vom doar vorbim un pic 5 00:00:13,640 --> 00:00:16,090 despre unele dintre informații tehnice care 6 00:00:16,090 --> 00:00:19,380 merge în spatele arhitecturii de Cloud 9, și cum 7 00:00:19,380 --> 00:00:25,560 am implementat unele dintre plug-in-uri ca parte a Cloud 9 pentru a oferi IDE CS50. 8 00:00:25,560 --> 00:00:28,820 Deci, hai să sară în dreapta și începem să vorbim despre plug-in-uri. 9 00:00:28,820 --> 00:00:32,659 >> Deci, plug-in-uri sunt într-adevăr la de bază de Cloud 9 experiența. 10 00:00:32,659 --> 00:00:37,590 Cloud 9 este tehnologia de bază care oferă pentru a ne IDE, 11 00:00:37,590 --> 00:00:42,160 și, de asemenea, fereastra terminalului la fund, împreună cu workspace-- 12 00:00:42,160 --> 00:00:46,430 Ubuntu workspace-- pe care le utilizați pentru a compila toate proiectele noastre 13 00:00:46,430 --> 00:00:49,190 și de a efectua seturi de problema noastră, seturile complete noastre de probleme. 14 00:00:49,190 --> 00:00:51,820 Dar în inima tuturor de aceasta, toată tehnologia 15 00:00:51,820 --> 00:00:54,590 este de fapt doar o adunatura de plug-in-uri. 16 00:00:54,590 --> 00:00:58,740 Totul este un plug-in care pot fi modificate, 17 00:00:58,740 --> 00:01:00,710 extins, puteți crea propriile plug-inuri, 18 00:01:00,710 --> 00:01:03,060 aveți posibilitatea să eliminați alte plug-in-uri, de a modifica într-adevăr 19 00:01:03,060 --> 00:01:07,540 destul de o mulțime de funcționalitate de Cloud 9 IDE existent. 20 00:01:07,540 --> 00:01:12,040 >> Deci aceasta este o existent Cloud 9 mediu. 21 00:01:12,040 --> 00:01:14,750 Aceasta este într-adevăr doar default Cloud 9 mediu. 22 00:01:14,750 --> 00:01:18,450 Și să ia o privire la modul în care de fapt este diferit de IDE CS50. 23 00:01:18,450 --> 00:01:20,340 Deci aceasta este IDE CS50. 24 00:01:20,340 --> 00:01:25,060 Observați că există unele vizuale Schimbări între regulat Cloud 9 25 00:01:25,060 --> 00:01:28,000 mediu și IDE CS50. 26 00:01:28,000 --> 00:01:30,010 Mai exact, veți observa o pereche de modificări. 27 00:01:30,010 --> 00:01:34,201 Mai întâi de toate, nu e mai puțin elementele de meniu pentru a începe cu. 28 00:01:34,201 --> 00:01:36,200 Există de fapt o modalitate de pe care le poate schimba asta. 29 00:01:36,200 --> 00:01:37,270 Se numește Mode simplă. 30 00:01:37,270 --> 00:01:40,910 >> În mod implicit, modul Simplu este activat, și care simplifică unele dintre elementele de meniu. 31 00:01:40,910 --> 00:01:43,032 Se elimină o parte din cele mai avansate, 32 00:01:43,032 --> 00:01:45,240 pentru că sincer, o mulțime de studenții care vin în 33 00:01:45,240 --> 00:01:48,550 și nu trebuie să știți despre unele dintre cele mai avansate caracteristici 34 00:01:48,550 --> 00:01:50,530 nu sunt copleșiți cu un buchet de opțiuni. 35 00:01:50,530 --> 00:01:55,610 Dar noi nu oferă capacitatea de a lua off acele așa-numite roți de formare 36 00:01:55,610 --> 00:01:57,360 și scoateți că schele, astfel încât oamenii 37 00:01:57,360 --> 00:02:00,832 poate deveni mai obișnuiți să caracteristicile avansate ale IDE. 38 00:02:00,832 --> 00:02:02,540 Imediat la drept de care, nu e 39 00:02:02,540 --> 00:02:05,435 de asemenea, un buton de depanare, care în standardul Cloud 40 00:02:05,435 --> 00:02:08,199 9 mediu este pur și simplu numit alerga. 41 00:02:08,199 --> 00:02:11,990 Dar în mod implicit, ne-am configurat butonul depanare în IDE CS50 42 00:02:11,990 --> 00:02:15,500 pentru a aduce debugger, compila automat codul sursă, 43 00:02:15,500 --> 00:02:17,940 conectați debugger la GDB-- subiacent 44 00:02:17,940 --> 00:02:21,430 și din moment ce rulează pentru a efectua debugging-- și alte măsuri 45 00:02:21,430 --> 00:02:22,580 deasemenea. 46 00:02:22,580 --> 00:02:25,370 De asemenea, fereastra terminalului de la very-- sau mai degrabă terminalul 47 00:02:25,370 --> 00:02:29,010 tab la secțiunea consola de la fereastră în partea de jos a ecranului, 48 00:02:29,010 --> 00:02:31,004 a fost redenumit pentru a fi pur și simplu terminal. 49 00:02:31,004 --> 00:02:32,837 Întrucât, în standardul Cloud 9 mediu, 50 00:02:32,837 --> 00:02:35,830 arată, de fapt, rularea cerere. 51 00:02:35,830 --> 00:02:39,140 În acest fel, se simplifică, din nou, GUI, doar un pic. 52 00:02:39,140 --> 00:02:42,310 >> Am adăugat, de asemenea, unele butoane la dreapta sus a IDE 53 00:02:42,310 --> 00:02:45,740 pentru a afișa unele informații de bază despre instanța de bază. 54 00:02:45,740 --> 00:02:49,700 Și, de asemenea am eliminat o din opțiunile de pe elementele 55 00:02:49,700 --> 00:02:51,730 din extrema dreaptă. 56 00:02:51,730 --> 00:02:55,620 Deci, toate acestea este pusă în aplicare nu prin modificarea în mod necesar Cloud 9 57 00:02:55,620 --> 00:02:58,550 codul sursă, dar în schimb, printr-o pereche 58 00:02:58,550 --> 00:03:03,460 de plug-in-uri pe care le-am implementat pe tot parcursul anului trecut sau cam asa ceva. 59 00:03:03,460 --> 00:03:08,840 Și Cloud 9 a găzduit și are rulează în spațiul de lucru CS50. 60 00:03:08,840 --> 00:03:13,680 Sau, mai degrabă, în spații de lucru care sunt desemnate ca CS50 IDE. 61 00:03:13,680 --> 00:03:17,140 >> Deci într-adevăr că este principala diferență între Cloud 9 și CS50 62 00:03:17,140 --> 00:03:18,130 Spații de lucru. 63 00:03:18,130 --> 00:03:21,780 Există, de asemenea, în activul suport exemplu, schimbarea primar este 64 00:03:21,780 --> 00:03:25,350 că am instala unele elemente pre-configurate, cum ar fi GDB, 65 00:03:25,350 --> 00:03:29,530 și alte lucruri de bază pe care am creat, cum ar fi Actualizare 50, 66 00:03:29,530 --> 00:03:33,310 și un cuplu de alte măsuri care fac întreaga experiență un pic mai mult 67 00:03:33,310 --> 00:03:34,550 unificat. 68 00:03:34,550 --> 00:03:38,520 Dar, in general, aceasta este doar o modificarea unui sistem existent 69 00:03:38,520 --> 00:03:40,979 că Cloud 9-a creat pentru noi. 70 00:03:40,979 --> 00:03:42,770 Ceea ce am de gând să arată un pic mai târziu 71 00:03:42,770 --> 00:03:45,920 este modul de a crea de fapt o plug-in oarecum de bază, care 72 00:03:45,920 --> 00:03:49,461 ne permite să introduceți ceva în sistemul de meniuri, și deschide un dialog. 73 00:03:49,461 --> 00:03:51,210 Și dacă avem suficient timp, vom fapt 74 00:03:51,210 --> 00:03:54,210 vedem cum putem popula că dialogul cu unele informații 75 00:03:54,210 --> 00:03:56,089 de la instanța de bază. 76 00:03:56,089 --> 00:03:58,880 Pentru ca noi să ajungem la acea punct, hai să vorbim mai întâi un pic 77 00:03:58,880 --> 00:04:01,740 despre arhitectura Cloud 9. 78 00:04:01,740 --> 00:04:05,290 >> Deci modul în care suntem obișnuiți pentru a interacționa cu Cloud 9 79 00:04:05,290 --> 00:04:06,610 este în întregime prin clientul. 80 00:04:06,610 --> 00:04:10,610 Am deschide un browser web, am tastați în CS50.io. 81 00:04:10,610 --> 00:04:14,431 Noi în cele din urmă, după autentificare, sunt prezentate cu IDE. 82 00:04:14,431 --> 00:04:16,180 Dar dau seama că nu e o pereche de pași 83 00:04:16,180 --> 00:04:18,180 care de fapt ne-a ajunge la acest punct. 84 00:04:18,180 --> 00:04:22,390 Primul lucru este că clientul meu, browser-ul web, 85 00:04:22,390 --> 00:04:27,440 la cerere și după autentificare, încarcă GUI și plug-in-uri 86 00:04:27,440 --> 00:04:30,170 la unele CDN, de la unele Content Delivery Network. 87 00:04:30,170 --> 00:04:32,700 Acest lucru poate fi deschis oriunde. 88 00:04:32,700 --> 00:04:35,390 >> Și acest lucru este de fapt separat de la instanța de bază. 89 00:04:35,390 --> 00:04:38,890 Este important să realizăm că acest lucru este de fapt, doar o grămadă de fișiere statice. 90 00:04:38,890 --> 00:04:42,600 E o grămadă de JavaScript care este descărcat de pe CDN 91 00:04:42,600 --> 00:04:45,200 pe browser-ul meu web, și toate GUI pe care le 92 00:04:45,200 --> 00:04:48,460 vezi here-- aceasta este într-adevăr key-- toate GUI pe care le vezi aici 93 00:04:48,460 --> 00:04:50,480 se execută pe partea de client. 94 00:04:50,480 --> 00:04:53,820 Tot ceea ce vezi în Cloud 9 spațiul de lucru 95 00:04:53,820 --> 00:04:56,010 este, de fapt rula în browser-ul. 96 00:04:56,010 --> 00:04:59,950 Și nimic din ce le trimiteți de-a lungul a instanței de bază 97 00:04:59,950 --> 00:05:04,000 comunică cu instanta de-a lungul acest al doilea canal separat, 98 00:05:04,000 --> 00:05:07,240 și este apoi salvat pe că exemplu docher. 99 00:05:07,240 --> 00:05:09,660 >> Deci motivul pentru care vreau să spun aceasta este o instanță docher 100 00:05:09,660 --> 00:05:12,650 este faptul că tehnologia de bază nu utilizează mașini virtuale, 101 00:05:12,650 --> 00:05:16,040 dar în schimb este cu ajutorul unui tehnologie numita docher, 102 00:05:16,040 --> 00:05:20,200 care, practic, cel mai aproape de allows-- analogie este o mașină virtuală. 103 00:05:20,200 --> 00:05:24,800 Dar este subtil diferit în care există 104 00:05:24,800 --> 00:05:28,900 o mulțime de oportunități pentru a rula o combinație de diferite docher 105 00:05:28,900 --> 00:05:30,760 cazuri pe o singură mașină. 106 00:05:30,760 --> 00:05:34,660 Și acestea pot fi filate la într-o succesiune foarte rapidă. 107 00:05:34,660 --> 00:05:38,920 Nu este destul de mult diferențiere strictă 108 00:05:38,920 --> 00:05:42,840 între diferite instanțe Docker așa cum există în mașini virtuale, 109 00:05:42,840 --> 00:05:45,730 dar încă există o mulțime de diferențiere și separare 110 00:05:45,730 --> 00:05:48,330 între aceste cazuri diferite. 111 00:05:48,330 --> 00:05:48,830 BINE. 112 00:05:48,830 --> 00:05:50,980 Astfel încât cele două etape de aici că sunt importante pentru a realiza 113 00:05:50,980 --> 00:05:57,370 este că, atunci când vom merge la CS50.io, suntem descărcarea GUI și plug-in-uri, 114 00:05:57,370 --> 00:06:01,640 care sunt scrise în JavaScript, pe pentru browser-ul sau pentru a browser-ul. 115 00:06:01,640 --> 00:06:05,980 Și aceasta este, poate, un cuplu megabytes valoare de informații. 116 00:06:05,980 --> 00:06:09,460 În acel moment, odată ce are GUI încărcate și plug-in-uri au început, 117 00:06:09,460 --> 00:06:12,530 apoi începe să comunice cu instanța docher, care nu 118 00:06:12,530 --> 00:06:15,210 trebuie neapărat să fie același server. 119 00:06:15,210 --> 00:06:16,940 >> Acum există o excepție de la acest lucru. 120 00:06:16,940 --> 00:06:22,130 Putem avea de fapt atât mecanism de livrare pentru GUI sine 121 00:06:22,130 --> 00:06:25,740 și instanța docher în toate de același server, care 122 00:06:25,740 --> 00:06:29,660 este, de fapt ceva ce facem pentru versiunea offline a Cloud 9. 123 00:06:29,660 --> 00:06:33,470 Acest lucru nu este ceva ce ne-am mediatizat foarte mult in aceasta toamna, 124 00:06:33,470 --> 00:06:35,930 dar avem, de asemenea, o deconectat versiune care 125 00:06:35,930 --> 00:06:40,010 vă permite să descărcați un ambalat Versiunea de toate aceste lucruri 126 00:06:40,010 --> 00:06:43,670 și vă va permite să rulați Cloud 9 într-un mediu online. 127 00:06:43,670 --> 00:06:48,325 >> Mutarea aceasta pe nor și pe masina locala are un anumit impact. 128 00:06:48,325 --> 00:06:50,200 În special, pe care nu le mai au capacitatea de 129 00:06:50,200 --> 00:06:52,280 pentru a partaja spațiul de lucru cu alții. 130 00:06:52,280 --> 00:06:58,630 Tu nu mai poate deschide spațiul 9 din, și IDE CS50, de pe orice computer 131 00:06:58,630 --> 00:07:02,950 și a vedea aceleași fișiere care ai fost de lucru cu înainte. 132 00:07:02,950 --> 00:07:06,310 Dar în loc funcționează în întregime pe cont propriu mașină locală 133 00:07:06,310 --> 00:07:09,270 fără a fi nevoie de acces la internet. 134 00:07:09,270 --> 00:07:13,330 Dar, totuși, chiar și în acest model, chiar dacă avem o mașină virtuală 135 00:07:13,330 --> 00:07:15,200 care este în esență rulează aceste lucruri. 136 00:07:15,200 --> 00:07:19,480 >> Avem un server separat, care este livrarea, în esență, Cloud 9 137 00:07:19,480 --> 00:07:23,640 conținut, și apoi ne-am au o instanță docher 138 00:07:23,640 --> 00:07:32,280 care este responsabil pentru comunicarea cu care IDE pentru capătul din spate. 139 00:07:32,280 --> 00:07:32,780 BINE. 140 00:07:32,780 --> 00:07:38,700 Deci întreaga GUI este scris în întregime în JavaScript 141 00:07:38,700 --> 00:07:42,800 folosind Node.js și Cloud 9 SDK, care vom ajunge la doar un minut. 142 00:07:42,800 --> 00:07:46,650 Și toate plug-in-uri sunt rulate pe partea de client. 143 00:07:46,650 --> 00:07:51,780 Deci, haideți să se concentreze apoi un pic prin asumarea 144 00:07:51,780 --> 00:07:55,670 că acest prim pas a de fapt finalizat cu succes, 145 00:07:55,670 --> 00:07:58,990 si uita-te numai la această instanță docher. 146 00:07:58,990 --> 00:08:01,220 >> Deci, în acest caz, aceasta este modul standard 147 00:08:01,220 --> 00:08:04,870 de gândire despre a face Cloud 9 plug-in dezvoltare este că aveți de gând 148 00:08:04,870 --> 00:08:07,940 să fi scris cod care va fi rulat în browser-ul utilizatorului, 149 00:08:07,940 --> 00:08:11,610 și aveți posibilitatea de a utilizarea unor API-uri pentru a comunica 150 00:08:11,610 --> 00:08:16,470 cu care stau la baza instanță docher, rula un cod acolo, și face orice 151 00:08:16,470 --> 00:08:18,860 că ați putea doriți să faceți. 152 00:08:18,860 --> 00:08:22,000 Deci, aceasta va fi contextul că vom 153 00:08:22,000 --> 00:08:24,340 fie folosind pentru restul această discuție. 154 00:08:24,340 --> 00:08:26,400 Și chiar a păstra acest model în minte. 155 00:08:26,400 --> 00:08:28,966 Acest lucru va fi foarte important în doar câteva minute. 156 00:08:28,966 --> 00:08:30,840 Există o serie de link-uri Vreau să-ți arăt. 157 00:08:30,840 --> 00:08:34,150 Mai întâi de toate, Cloud 9 a furnizat destul de o mulțime de documentare 158 00:08:34,150 --> 00:08:38,740 asta e destul de bun, care arată modul în care de a face plug-in dezvoltare de bază. 159 00:08:38,740 --> 00:08:43,320 Deci, dacă te duci la această adresă URL, cloud9-sdk.readme.io, 160 00:08:43,320 --> 00:08:45,261 veți vedea documentația acolo. 161 00:08:45,261 --> 00:08:47,510 Și o mulțime de informații ca esti pe cale de a vedea 162 00:08:47,510 --> 00:08:50,310 poate fi, de asemenea, găsite acolo, plus mai mult. 163 00:08:50,310 --> 00:08:55,880 Puteți găsi, de asemenea open source Versiunea de Cloud 9 la acest URL, 164 00:08:55,880 --> 00:09:04,270 github.com/c9/core, pe care le folosim ca parte a versiunii deconectat de IDE, 165 00:09:04,270 --> 00:09:07,540 astfel că va fi capabil de a avea În același Cloud 9 experiență, 166 00:09:07,540 --> 00:09:09,660 dar într-un mod offline. 167 00:09:09,660 --> 00:09:10,160 In regula. 168 00:09:10,160 --> 00:09:15,560 Deci, haideți să aruncăm o privire la o real Cloud 9 spațiu de lucru aici. 169 00:09:15,560 --> 00:09:17,880 Și din nou, vreau să subliniez o serie de lucruri. 170 00:09:17,880 --> 00:09:21,560 Acest lucru este, aici, un IDE normală CS50. 171 00:09:21,560 --> 00:09:26,830 Și am dezactivat-o mai puțin Modul confortabil în meniul Vizualizare 172 00:09:26,830 --> 00:09:28,807 astfel încât să pot vedea toate din opțiunile de meniu. 173 00:09:28,807 --> 00:09:31,140 Ceea ce vreau să vă arăt dreapta acum este o serie de lucruri. 174 00:09:31,140 --> 00:09:33,140 În primul rând, dacă mă duc în Preferințele și apoi 175 00:09:33,140 --> 00:09:37,040 click pe Plug-in manager, și de tip în CS50 aici, 176 00:09:37,040 --> 00:09:40,590 putem vedea că există, de fapt, un cuplu de CS50 plug-inuri care 177 00:09:40,590 --> 00:09:46,280 au fost instalate și rulează noastră de a permite modificările pe care le-am 178 00:09:46,280 --> 00:09:48,670 văzut de IDE CS50. 179 00:09:48,670 --> 00:09:51,450 >> Chiar acum există, în esență, două pluginuri care se execută. 180 00:09:51,450 --> 00:09:54,980 Există unul numit simplu, care este modul simplificat 181 00:09:54,980 --> 00:10:00,020 vă permite să reducă numărul de opțiuni de meniu de-a lungul partea de sus, 182 00:10:00,020 --> 00:10:03,070 și au această așa-numitele Mod mai puțin confortabil. 183 00:10:03,070 --> 00:10:07,280 Și apoi există, de asemenea CS50 Statistici, care este, poate, doar puțin greșit în botezarea. 184 00:10:07,280 --> 00:10:09,550 Deoarece aceasta este ceea ce vă arată informațiile 185 00:10:09,550 --> 00:10:10,850 despre spațiul de lucru de bază. 186 00:10:10,850 --> 00:10:13,560 Se injecteaza aceste butoane de-a lungul partea din dreapta sus. 187 00:10:13,560 --> 00:10:18,620 Este, de asemenea, injecteaza un element de meniu în element fereastră, în meniul Window 188 00:10:18,620 --> 00:10:21,730 aici, CS50 IDE Info. 189 00:10:21,730 --> 00:10:27,380 Și este responsabil pentru instantierea acest dialog pe care l-am văzut aici, 190 00:10:27,380 --> 00:10:31,460 cu toate informațiile pe care suntem obișnuiți să vadă într-un IDE CS50 191 00:10:31,460 --> 00:10:32,870 spațiu de lucru. 192 00:10:32,870 --> 00:10:33,370 BINE. 193 00:10:33,370 --> 00:10:36,910 Deci nu e de fapt una mai plug-in care ne-am dezvoltat, de asemenea. 194 00:10:36,910 --> 00:10:40,110 Și există o serie de altele care De asemenea, nu au lansat public. 195 00:10:40,110 --> 00:10:45,880 Dar unul dintre ei este de ansamblu plug-in care permite GDB să funcționeze. 196 00:10:45,880 --> 00:10:50,190 Deci unul dintre aspectele Cloud 9 este faptul că acestea au oferit deja 197 00:10:50,190 --> 00:10:53,210 acest GUI pentru a pune în aplicare un program de depanare. 198 00:10:53,210 --> 00:10:57,360 Și unul dintre plug-in-uri care am creat, practic, 199 00:10:57,360 --> 00:11:02,380 cârlige GDB cu acest GUI versiune pe baza de un program de depanare. 200 00:11:02,380 --> 00:11:07,680 Și este responsabil pentru medierea toate a cererilor pe care un utilizator ar putea avea, 201 00:11:07,680 --> 00:11:10,310 între pas cu pas peste sau crearea de puncte de întrerupere sau ceva 202 00:11:10,310 --> 00:11:15,390 a lungul acestor linii, la traducerea că pentru comenzi care GDB pot înțelege, 203 00:11:15,390 --> 00:11:16,920 emiterea aceste comenzi la GDB. 204 00:11:16,920 --> 00:11:19,260 Și de îndată ce GDB emite un răspuns, atunci 205 00:11:19,260 --> 00:11:23,250 interpretăm ca și actualizarea GUI după cum este necesar. 206 00:11:23,250 --> 00:11:25,130 >> Asta e, probabil, unul dintre mai complicat 207 00:11:25,130 --> 00:11:28,840 de plug-in-uri, astfel încât în ​​loc ceea ce suntem O să se concentreze pe ziua de azi este de fapt 208 00:11:28,840 --> 00:11:34,590 de Statistici plug-in, si vom vorbi un pic despre Simple, de asemenea. 209 00:11:34,590 --> 00:11:39,100 Așa că am menționat mai înainte, și chiar vreau pentru a face foarte, foarte clar, că din nou, 210 00:11:39,100 --> 00:11:41,600 toate acestea pe care suntem văzând aici este în esență 211 00:11:41,600 --> 00:11:43,300 operează pe partea de client. 212 00:11:43,300 --> 00:11:45,810 Noi facem vedea o fereastră terminal jos, și că, desigur, 213 00:11:45,810 --> 00:11:49,230 dacă ne scrieți în comenzi în că, care va fi apoi eliberat 214 00:11:49,230 --> 00:11:50,690 la instanța de bază. 215 00:11:50,690 --> 00:11:55,280 În mod similar, în cazul în care vom deschide un nou fișier și tip niște chestii în el și salvați-l, 216 00:11:55,280 --> 00:11:58,240 acel fișier va fi salvat pe instanța de bază. 217 00:11:58,240 --> 00:12:02,310 >> Dar editorul în sine, acest fereastră terminal sine, 218 00:12:02,310 --> 00:12:05,700 este pus în aplicare în toate JavaScript și este tot un plug-in 219 00:12:05,700 --> 00:12:09,800 pe care le poate interacționa cu, și, prin urmare modifica. 220 00:12:09,800 --> 00:12:11,450 Există o mulțime de extensibilitate aici. 221 00:12:11,450 --> 00:12:14,690 Am recomandăm să luați o privire la contul Cloud 9 de GitHub 222 00:12:14,690 --> 00:12:17,790 pentru a vedea cantitatea mare de plug-in-uri care sunt disponibile, 223 00:12:17,790 --> 00:12:23,070 și cât de bine scris o mulțime de codul este pentru extensibilitate. 224 00:12:23,070 --> 00:12:24,920 Deci nu e ceva pe care vreau să menționez 225 00:12:24,920 --> 00:12:30,480 despre aceasta, de asemenea, care este că există o mulțime de-- există 226 00:12:30,480 --> 00:12:33,450 o mulțime de funcționalități care este furnizate în preferințele 227 00:12:33,450 --> 00:12:37,970 fereastră, pe care am văzut doar am a făcut aluzie la doar acum câteva minute. 228 00:12:37,970 --> 00:12:43,690 >> Unul dintre lucrurile pe care le putem face ca IDE dezvoltatori, sau ca Cloud 9 dezvoltatori, 229 00:12:43,690 --> 00:12:47,410 este de a injecta de fapt, unele Panouri de preferință al nostru. 230 00:12:47,410 --> 00:12:50,660 Deci modul simplu, sau modul mai puțin confortabil, 231 00:12:50,660 --> 00:12:54,780 și, de asemenea, informația IDE, sau statisticile plug-in, 232 00:12:54,780 --> 00:12:58,560 are fiecare unele preferinta Panouri care ne permit să modifice 233 00:12:58,560 --> 00:13:00,620 comportamentul fiecăruia dintre aceste. 234 00:13:00,620 --> 00:13:04,140 Veți observa că, dacă mă duc la Preferințele și du-te la setările de utilizator, 235 00:13:04,140 --> 00:13:07,100 există o filă CS50, o care spune că informațiile IDE. 236 00:13:07,100 --> 00:13:09,810 Și pot schimba informații rata de refresh. 237 00:13:09,810 --> 00:13:12,250 >> Efectiv, ce se întâmplă în statisticile plug-in- 238 00:13:12,250 --> 00:13:16,690 este că fiecare n-secunde, unde n-secunde este definit de această preferință 239 00:13:16,690 --> 00:13:22,250 panou, informațiile sunt preluate fiind de la instanța de bază, fiind trimis 240 00:13:22,250 --> 00:13:25,490 Înapoi la partea de client, plug-in este atunci 241 00:13:25,490 --> 00:13:28,650 interpretarea informațiilor de la instanța care stau la baza 242 00:13:28,650 --> 00:13:31,470 și actualizarea GUI după cum este necesar. 243 00:13:31,470 --> 00:13:34,710 Putem vedea că acum acest lucru este setat la 30 de secunde, și asta e implicit. 244 00:13:34,710 --> 00:13:37,950 Dar pot schimba cu siguranta cat de repede se întâmplă acest lucru doar 245 00:13:37,950 --> 00:13:40,520 prin modificarea acestei valori. 246 00:13:40,520 --> 00:13:44,330 >> Acum, unul dintre cele mai interesante lucruri este că acest panou preferință, GUI, 247 00:13:44,330 --> 00:13:49,560 este de fapt doar o versiune GUI de o mulțime de setări de bază 248 00:13:49,560 --> 00:13:52,220 care sunt prezentate în JSON. 249 00:13:52,220 --> 00:13:56,336 Deci, dacă mă duc, de exemplu, în cadrul CS50 meniu IDE, sau meniul Cloud 9, 250 00:13:56,336 --> 00:13:58,210 în funcție de care Versiunea te uiți la, 251 00:13:58,210 --> 00:14:00,460 și du-te la unul dintre acestea settings-- în acest caz, 252 00:14:00,460 --> 00:14:03,420 proiectul settings-- Setări de proiect în acest caz 253 00:14:03,420 --> 00:14:07,740 se aplică la toate setările pentru asta spațiu de lucru. 254 00:14:07,740 --> 00:14:11,620 Întrucât se aplică setările de utilizator la toate spațiile de lucru 255 00:14:11,620 --> 00:14:15,110 care le-ar putea avea în cont. 256 00:14:15,110 --> 00:14:18,520 >> Deci, la fel ca o paranteza aici, să fie foarte clar, 257 00:14:18,520 --> 00:14:22,570 există o separare între două pentru că, deși în mod implicit am 258 00:14:22,570 --> 00:14:26,490 au un spațiu de lucru, care este IDE CS50, dacă 259 00:14:26,490 --> 00:14:31,900 au fost să faceți clic pe mica ta avatar aici și du-te la tabloul de bord, 260 00:14:31,900 --> 00:14:35,820 veți găsi pe care le poate de fapt crea spații de lucru suplimentare, de asemenea. 261 00:14:35,820 --> 00:14:39,140 Puteți vedea aici că nu trebuie un IDE 50 spațiu de lucru, și, de asemenea 262 00:14:39,140 --> 00:14:41,930 în sensul prezentei seminar, un spațiu de lucru 263 00:14:41,930 --> 00:14:45,084 numit spațiu de lucru, care este chiar aici. 264 00:14:45,084 --> 00:14:46,750 Oricum, am preferințe diferite. 265 00:14:46,750 --> 00:14:49,910 Fiecare dintre acestea poate avea preferințele proiect separat, 266 00:14:49,910 --> 00:14:54,091 dar preferințele utilizatorului sunt împărțită între toate spațiile de lucru mele. 267 00:14:54,091 --> 00:14:55,840 Apropo, acest lucru este de asemenea, foarte la îndemână, dacă 268 00:14:55,840 --> 00:14:59,080 doriți să creați un spațiu de lucru cu diferite opțiuni de personalizare. 269 00:14:59,080 --> 00:15:01,640 Și este foarte util pentru a crea un spațiu de lucru nou. 270 00:15:01,640 --> 00:15:04,230 Și alege una care ar putea fi pre-configurate într-un alt mod, 271 00:15:04,230 --> 00:15:07,000 poate pentru PHP specific, sau Django specific. 272 00:15:07,000 --> 00:15:08,960 Sau chiar doar personalizat. 273 00:15:08,960 --> 00:15:11,320 Spațiul de lucru CS50 șablon este cea care ne 274 00:15:11,320 --> 00:15:15,420 folosi acest instalează automat Actualizare 50 și toate setările 275 00:15:15,420 --> 00:15:20,531 pe care le avem acolo, inclusiv toate plug-in-uri pe care le avem pentru IDE CS50. 276 00:15:20,531 --> 00:15:21,030 BINE. 277 00:15:21,030 --> 00:15:22,200 Dar să revenim la asta. 278 00:15:22,200 --> 00:15:25,640 Deci, din nou, există proiecte setări, iar acestea sunt cele 279 00:15:25,640 --> 00:15:27,140 care ne uitam la aici. 280 00:15:27,140 --> 00:15:29,056 Și observa că există sunt o grămadă de setări, 281 00:15:29,056 --> 00:15:32,720 multe dintre ele corespund preferință panouri, dar nu toate dintre ele. 282 00:15:32,720 --> 00:15:40,800 Dar putem vedea că aici, în astea-- oh nu, am pus-o în setările utilizatorului? 283 00:15:40,800 --> 00:15:43,280 Poate l-am pus în setările utilizatorului. 284 00:15:43,280 --> 00:15:45,480 Și aceasta, aici vom merge. 285 00:15:45,480 --> 00:15:49,840 În setările de utilizator, putem vedea că avem o secțiune CS50, 286 00:15:49,840 --> 00:15:53,762 și aceasta este scris a de aceste Cloud 9 plug-inuri 287 00:15:53,762 --> 00:15:54,720 care le-am implementat. 288 00:15:54,720 --> 00:15:57,400 Exista cel simplu la corespund cu simplu plug-in, 289 00:15:57,400 --> 00:16:00,930 și statisticile una care corespunde celei GUI bazat 290 00:16:00,930 --> 00:16:02,440 versiune a panoului preferinta. 291 00:16:02,440 --> 00:16:05,740 Rata de reîmprospătare, în acest caz, este setat la 20 secunde. 292 00:16:05,740 --> 00:16:09,740 >> Acest lucru este, sperăm că, începuturile unor informații 293 00:16:09,740 --> 00:16:14,420 că vom vedea de fapt, într-un mic bit mai multe detalii, momentan. 294 00:16:14,420 --> 00:16:14,920 BINE. 295 00:16:14,920 --> 00:16:17,520 Deci, să spunem că vrem să de fapt, ajunge până la ea. 296 00:16:17,520 --> 00:16:20,600 Noi înțelegem că toate lucrurile care se întâmplă pe partea de client 297 00:16:20,600 --> 00:16:24,560 se face de fapt pe browser-ul, care înseamnă că orice plug-in-uri pe care am scrie 298 00:16:24,560 --> 00:16:27,990 vor fi scrise cu browser-ul în minte. 299 00:16:27,990 --> 00:16:30,830 Și dacă chiar vreau să fac nimic pe spațiul de lucru, 300 00:16:30,830 --> 00:16:33,360 Eu va trebui, probabil, să inițieze un fel de comunicare 301 00:16:33,360 --> 00:16:35,970 între browser-ul și spațiul de lucru pentru a fi sigur 302 00:16:35,970 --> 00:16:38,212 că este, de fapt realizat. 303 00:16:38,212 --> 00:16:40,170 Dar să spunem că acum Vreau să trecem la o 304 00:16:40,170 --> 00:16:43,440 și de a crea de fapt, prima mea plug-in. 305 00:16:43,440 --> 00:16:48,970 Ei bine, modul în care v-ar putea a face acest lucru este, de fapt destul de ușor. 306 00:16:48,970 --> 00:16:51,370 Este dat în Cloud 9 SDK. 307 00:16:51,370 --> 00:16:55,520 Dar e să vă luați Numele spațiu de lucru existent, care 308 00:16:55,520 --> 00:16:59,810 este URL-ul pe care le au la partea de sus a bara de, și se adaugă următoarele la acesta. 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 Acum, ceea ce acest lucru se întâmplă pentru a permite este că SDK-ul = 1 va stabili de fapt SDK 313 00:17:08,260 --> 00:17:11,430 Mod de adevărat, ceea ce va permite câteva lucruri suplimentare. 314 00:17:11,430 --> 00:17:15,770 Și depanare = 2 va permite mesaje de eroare să fie un pic mai mult detaliată. 315 00:17:15,770 --> 00:17:20,170 >> Și așa că, dacă aduce JavaScript consola în fila dezvoltator Chrome, 316 00:17:20,170 --> 00:17:22,829 vă va fi de fapt în măsură să vezi mult mai multe informații 317 00:17:22,829 --> 00:17:24,349 decât v-ar altfel. 318 00:17:24,349 --> 00:17:28,310 Așa că am recomanda de cotitură atât de aceste în același timp, că într-adevăr 319 00:17:28,310 --> 00:17:31,170 este util de a avea toate aceste Informatii aditionale. 320 00:17:31,170 --> 00:17:35,330 Este important de remarcat, totuși, că pornirea depanare la valoarea de 2 321 00:17:35,330 --> 00:17:38,120 înseamnă că este foarte verbose, și este de fapt 322 00:17:38,120 --> 00:17:42,590 oarecum vizibil va încetini IDE-ul, mai ales atunci când încărcare 323 00:17:42,590 --> 00:17:45,657 sau atunci când fac faci sarcini grele. 324 00:17:45,657 --> 00:17:46,740 Deci, doar ține minte asta. 325 00:17:46,740 --> 00:17:51,500 Este util pentru dezvoltare, dar ar putea să nu doriți să-l aibă pe tot timpul. 326 00:17:51,500 --> 00:17:53,080 >> Deci, haideți să facem asta, de fapt. 327 00:17:53,080 --> 00:17:59,374 Dar în acest caz, am de fapt deja înființat un spațiu de lucru cu aceasta. 328 00:17:59,374 --> 00:18:00,540 Să vedem, SDK = 1 & depanare = 2. 329 00:18:00,540 --> 00:18:03,140 330 00:18:03,140 --> 00:18:07,770 Cu un cuplu de plug-in-uri sperăm deja instalat. 331 00:18:07,770 --> 00:18:08,340 In regula. 332 00:18:08,340 --> 00:18:15,050 Deci, acum că am pornit depanare SDK Mod, observați că suntem în modul de depanare, 333 00:18:15,050 --> 00:18:20,430 astfel încât să putem uita la instrumentele dev pentru a vedea orice erori, pe care le voi face offscreen. 334 00:18:20,430 --> 00:18:23,110 Putem vedea că există o grămadă de erori aici. 335 00:18:23,110 --> 00:18:28,090 Acum e de fapt destul de comun pentru Cloud 9 să aibă o pereche de erori, 336 00:18:28,090 --> 00:18:30,680 și nu aș face griji despre ei până când 337 00:18:30,680 --> 00:18:32,930 vezi ceva care ar putea fi specifice plug-in 338 00:18:32,930 --> 00:18:34,510 care se întâmplă să fie crearea. 339 00:18:34,510 --> 00:18:37,620 >> Deci, aici, de exemplu, vom obține o pereche de 404s-- nu a fost găsit. 340 00:18:37,620 --> 00:18:42,910 Vedem nu putem încărca unele informații de pe instanța de bază 341 00:18:42,910 --> 00:18:43,670 în sine. 342 00:18:43,670 --> 00:18:46,545 Și există o grămadă de suplimentare informații, dar cele mai multe din prezentul suntem 343 00:18:46,545 --> 00:18:47,970 de fapt de gând să ignore pentru acum. 344 00:18:47,970 --> 00:18:50,130 Deoarece aceasta este destul de comun pentru un spațiu de lucru 345 00:18:50,130 --> 00:18:53,200 de a avea doar o pereche de erori. 346 00:18:53,200 --> 00:18:53,700 BINE. 347 00:18:53,700 --> 00:18:56,680 Am de gând să se mute din acest drum și mă întorc aici. 348 00:18:56,680 --> 00:19:01,860 Și acum calea usoara, frumos lucru despre care au acest dezvoltator 349 00:19:01,860 --> 00:19:07,330 Modul activat este faptul că mi permite pentru a crea cu ușurință un nou plug-in. 350 00:19:07,330 --> 00:19:12,390 >> Deci, în timp ce înainte de fapt, nu a au aceasta noua optiune plug-in este disponibil, 351 00:19:12,390 --> 00:19:16,460 care putem vedea dacă mă întorc la Modul meu de dezvoltator non aici, 352 00:19:16,460 --> 00:19:18,510 nu exista nici o nou plug-in. 353 00:19:18,510 --> 00:19:23,220 Prin activarea modului SDK, am au un nou plug-in este disponibil 354 00:19:23,220 --> 00:19:25,660 și pot crea cu ușurință unul. 355 00:19:25,660 --> 00:19:28,160 În acest caz, există un cuplu de diferite opțiuni, simple, 356 00:19:28,160 --> 00:19:30,850 un plug-in gol, un plug-in full, instalare, Cloud 9 pachet. 357 00:19:30,850 --> 00:19:33,030 Hai să alegeți un gol plug-in pentru acum 358 00:19:33,030 --> 00:19:37,670 astfel încât să putem vedea o foarte versiune simpla a unui. 359 00:19:37,670 --> 00:19:41,520 >> Acum, observați că de-a lungul partea stângă că e acolo este acum 360 00:19:41,520 --> 00:19:45,080 ceva în Favorite, care este listarea un cuplu de plug-inuri 361 00:19:45,080 --> 00:19:47,020 care sunt acum disponibile pentru mine. 362 00:19:47,020 --> 00:19:50,420 Dacă aș extinde că, vom putea vedea cele. 363 00:19:50,420 --> 00:19:52,730 Acum vreau să observați ceva aici, care 364 00:19:52,730 --> 00:19:58,260 este faptul că acest lucru nu este de fapt conținută în directorul spațiului de lucru 365 00:19:58,260 --> 00:20:03,190 pe care stau la baza Ubuntu meu exemplu, dar este conținut de pe hard disk. 366 00:20:03,190 --> 00:20:06,330 Și în cazul în care acest lucru se află, pentru că acest lucru este foarte util să știm, 367 00:20:06,330 --> 00:20:09,570 mai ales dacă ai de gând să face nimic cu Git, 368 00:20:09,570 --> 00:20:16,870 în cazul în care acest lucru se află este într-un dosar .c9, / plugin-uri. 369 00:20:16,870 --> 00:20:21,110 Deci, dacă mă duc acolo, putem vedea că acum lista de plug-in-uri, care sunt aici 370 00:20:21,110 --> 00:20:26,390 Meciuri lista plug-in-uri pe care am a văzut pe partea stângă a spațiului de lucru meu. 371 00:20:26,390 --> 00:20:28,610 >> Acum, în mod implicit, și acest este un fel de ciudat, 372 00:20:28,610 --> 00:20:31,760 în mod implicit atunci când am crea o Noul plug-in într-un spațiu de lucru, 373 00:20:31,760 --> 00:20:36,620 creează acest plug-in, care prin default are un nume de o subliniere. 374 00:20:36,620 --> 00:20:39,760 În general, care ar putea cauza unele probleme. 375 00:20:39,760 --> 00:20:42,340 Deci pasul următor foarte pe care am efectua, de obicei, 376 00:20:42,340 --> 00:20:45,880 este doar pentru a elimina că special plug-in 377 00:20:45,880 --> 00:20:52,810 și se lasă numai plug-in simplu, care a fost acolo la început, plugin.simple. 378 00:20:52,810 --> 00:20:55,430 Și asta e singurul care e acolo. 379 00:20:55,430 --> 00:20:55,930 BINE. 380 00:20:55,930 --> 00:20:58,380 >> Deci, ce inseamna acest fapt arata ca? 381 00:20:58,380 --> 00:21:01,210 Ei bine, acest lucru este, din nou, un pachet de activarea JavaScript- 382 00:21:01,210 --> 00:21:05,220 care include unele fișiere, inclusiv un fișier plugin.js, în cazul în care 383 00:21:05,220 --> 00:21:07,700 conținutul principal al este situat meu plug-in, 384 00:21:07,700 --> 00:21:10,590 un fișier package.json, care de fapt specifică 385 00:21:10,590 --> 00:21:13,760 unele metadate despre acest plug-in, cum ar fi care autorul este, 386 00:21:13,760 --> 00:21:19,240 orice informații suplimentare despre aceasta, o Descrierea plug-in, și așa mai departe. 387 00:21:19,240 --> 00:21:22,190 Și, de asemenea, în mod implicit, aceasta creează un fișier README gol, 388 00:21:22,190 --> 00:21:26,100 și un fișier de test gol pentru tine de a a crea unele documente suplimentare, 389 00:21:26,100 --> 00:21:29,430 și un ham de testare în cazul în care doriți să fac asta. 390 00:21:29,430 --> 00:21:34,160 >> Deci, haideți să aruncăm o privire mai întâi la, foarte repede, la fișierul package.json. 391 00:21:34,160 --> 00:21:38,240 Este destul de ușor pentru a merge doar prin l și completați în domeniile de acest 392 00:21:38,240 --> 00:21:42,510 care le-ar dori să completeze, ca furniza un nume, da o descriere, 393 00:21:42,510 --> 00:21:45,010 repeta numărul de versiune fiecare atât de des, să ofere 394 00:21:45,010 --> 00:21:47,570 un autor pentru fiecare persoană care contribuie, 395 00:21:47,570 --> 00:21:53,000 adăugați-le la contribuabilii secțiune, iar restul de acest lucru vă 396 00:21:53,000 --> 00:21:56,390 poate destul de mult doar lăsați așa cum este pentru acum. 397 00:21:56,390 --> 00:21:58,490 >> Exista un singur lucru care este important de observat, 398 00:21:58,490 --> 00:22:04,990 că în secțiunea plug-in-uri, există o cheie numit plug-in. 399 00:22:04,990 --> 00:22:11,800 Și acest lucru este potrivit pentru numele fișierul JavaScript numit plugin.js. 400 00:22:11,800 --> 00:22:18,290 Deci, acesta este modul în Cloud 9 știe, atunci când aceasta citește acest fișier package.json, care 401 00:22:18,290 --> 00:22:20,720 de JS fișiere pentru a încărca de fapt. 402 00:22:20,720 --> 00:22:25,440 Dacă am crea fișiere JS suplimentare sau doresc pentru a redenumi acest fișier JS de la plug-in, 403 00:22:25,440 --> 00:22:30,380 Am, de asemenea să-l schimbe în fișierul package.json. 404 00:22:30,380 --> 00:22:33,660 >> Orice întrebări din partea publicului? 405 00:22:33,660 --> 00:22:34,160 Nu. 406 00:22:34,160 --> 00:22:38,100 Că o persoană care este în urma cu mine până acum. 407 00:22:38,100 --> 00:22:38,760 >> BINE. 408 00:22:38,760 --> 00:22:42,300 Așa că de fapt am creat o cuplu de plug-in-uri deja, 409 00:22:42,300 --> 00:22:44,100 Cred că, în acest spațiu de lucru. 410 00:22:44,100 --> 00:22:53,800 Deci, haideți să scăpăm de unele dintre acestea, se adaugă SDK = 1 & depanare = 2, reîncărcați această spațiu de lucru, 411 00:22:53,800 --> 00:22:58,780 și să vedem dacă putem au aceste plug-in-uri acum. 412 00:22:58,780 --> 00:23:01,430 C9 / plugin-uri. 413 00:23:01,430 --> 00:23:01,930 Începem. 414 00:23:01,930 --> 00:23:06,910 Putem vedea acum în C9 mele / plugin-uri de acest o, ne-am plugin.1 și plugin.2. 415 00:23:06,910 --> 00:23:15,260 Deci vom să-și intensifice doar până the-- doar crește cantitatea de dificultate 416 00:23:15,260 --> 00:23:16,660 în fiecare dintre aceste plug-in-uri. 417 00:23:16,660 --> 00:23:20,140 Dar aici dacă am crea un nou plug-in, Pot adauga la favorite. 418 00:23:20,140 --> 00:23:25,560 Și voi șterge doar a celor de la sistemul de fișiere de bază. 419 00:23:25,560 --> 00:23:28,050 >> Să elimina asta. 420 00:23:28,050 --> 00:23:33,206 Acum, dacă am deschis primul meu plug-in, și plugin.js deschise, 421 00:23:33,206 --> 00:23:39,980 putem vedea aici activului suport versiune simpla a unui plug-in. 422 00:23:39,980 --> 00:23:42,170 Lasă-mă să mă întorc de fapt la acest spațiu de lucru alte 423 00:23:42,170 --> 00:23:47,160 pentru că puteți cel puțin, a se vedea aici, ceea ce un plug-in gol, de fapt arată. 424 00:23:47,160 --> 00:23:51,810 Deci sub capota, acest lucru arata foarte asemănător cu tehnologie numita, 425 00:23:51,810 --> 00:23:53,780 Cred, e RequireJS. 426 00:23:53,780 --> 00:23:56,000 Observați că acest lucru nu într-adevăr uite, poate, 427 00:23:56,000 --> 00:23:59,150 la fel ca și alte unele JavaScript fișiere care am putea-am văzut. 428 00:23:59,150 --> 00:24:04,250 Dar, în loc, există o serie de doar Liniile de bază pe care o are de fapt. 429 00:24:04,250 --> 00:24:06,900 >> Toate aceste lucruri este primul interpretat de IDE, 430 00:24:06,900 --> 00:24:09,940 dar nu este de fapt desfășura până specificat. 431 00:24:09,940 --> 00:24:13,610 Și să-ți spun despre atunci când înseamnă, de fapt într-o clipă. 432 00:24:13,610 --> 00:24:17,840 Dar observați că aici există o linie main.consumes în linia 2, 433 00:24:17,840 --> 00:24:23,270 și această listează toate plug-in-uri că acest plug-in este dependentă de. 434 00:24:23,270 --> 00:24:27,150 Deci în mod implicit, noi, probabil, nu pentru a avea orice dependențe pe alte plug-in-uri, 435 00:24:27,150 --> 00:24:30,530 dar atunci când avem nevoie de fapt, să depinde de caracteristicile furnizate 436 00:24:30,530 --> 00:24:34,900 de alte plugin-uri în IDE, avem nevoie pentru a lista aceste plug-in-uri 437 00:24:34,900 --> 00:24:36,890 în linia main.consumes. 438 00:24:36,890 --> 00:24:39,230 Și atunci trebuie să legarea lor la codul de 439 00:24:39,230 --> 00:24:42,860 de mai jos, pe care vă voi arăta în doar un moment despre cum putem face asta. 440 00:24:42,860 --> 00:24:46,100 >> Main.provides dă un nume pentru acest plug-in 441 00:24:46,100 --> 00:24:49,190 că alte plugin-uri ar putea utilizați în linia lor consumă. 442 00:24:49,190 --> 00:24:52,480 Deci, în acest caz, mi plug-in este doar setat acolo în mod implicit, 443 00:24:52,480 --> 00:24:55,820 și ar trebui să se schimbe ca să fie aplicabile propria noastră plug-in, 444 00:24:55,820 --> 00:24:57,540 cum vom vedea în momentul doar. 445 00:24:57,540 --> 00:25:01,230 Acum, aici, în funcția de principal, această funcție principală 446 00:25:01,230 --> 00:25:05,630 este, de fapt a alerga și interpretate, dar ea nu face de fapt foarte mult. 447 00:25:05,630 --> 00:25:08,970 Doar se totul înființat, dar aceasta nu începe de fapt plug-in, 448 00:25:08,970 --> 00:25:11,220 în ciuda ceea ce sună numele cum ar fi. 449 00:25:11,220 --> 00:25:14,690 Asta se întâmplă de fapt prin o secvență de metode care 450 00:25:14,690 --> 00:25:16,820 sunt cuprinse pe parcursul acestui plug-in. 451 00:25:16,820 --> 00:25:20,830 >> Deci, dacă am defila în jos, putem vedea că avem un ciclu de viață în cazul în care 452 00:25:20,830 --> 00:25:25,100 pe unele sarcină eveniment numit, sau un eveniment numit descărcare, 453 00:25:25,100 --> 00:25:26,940 unele evenimente se întâmple de fapt. 454 00:25:26,940 --> 00:25:33,500 Este într-adevăr aici, unde ca plug-in începe că aceste metode sunt numite. 455 00:25:33,500 --> 00:25:37,240 Deci, hai sa fie un pic mai concret despre acest lucru și uita-te la un exemplu. 456 00:25:37,240 --> 00:25:41,010 Deci, aici pentru plugin.1, ceea ce Suntem practic de gând să faci 457 00:25:41,010 --> 00:25:46,010 este de a crea un element de meniu numit CS50 Seminar Dialog 1-- 458 00:25:46,010 --> 00:25:48,070 pentru că avem două them-- și vom 459 00:25:48,070 --> 00:25:50,300 să-l injecta în meniul Window. 460 00:25:50,300 --> 00:25:54,590 Și când ne-am faceți clic pe ea, suntem va deschide un dialog care 461 00:25:54,590 --> 00:25:56,290 ne arată câteva informații foarte de bază. 462 00:25:56,290 --> 00:25:58,050 >> În acest caz, doar o lume salut. 463 00:25:58,050 --> 00:26:01,880 Deci, acesta este un foarte simplu salut dialog lume 464 00:26:01,880 --> 00:26:05,260 că putem pune în aplicare ca un plug-in în Cloud 9. 465 00:26:05,260 --> 00:26:07,960 Deci, hai sa vedem cum acest fapt arată. 466 00:26:07,960 --> 00:26:12,730 Vom pas prin ea, doar relativ rapid, astfel ne-am 467 00:26:12,730 --> 00:26:15,580 sa te uiti la următoarea plug-in, de asemenea. 468 00:26:15,580 --> 00:26:19,510 Observați că aici suntem consuma o varietate de plug-in-uri. 469 00:26:19,510 --> 00:26:26,080 Suntem consumatoare de un dialog plug-in, comenzi, meniuri, și UI. 470 00:26:26,080 --> 00:26:30,440 Se pare ca eu de fapt sunt consumatoare dialog de două ori, așa că am posibilitatea de a elimina acest lucru. 471 00:26:30,440 --> 00:26:32,560 >> Și observați că modul în că eu le-conectare, 472 00:26:32,560 --> 00:26:37,940 acest este un fel de metadate care este spune sistemul plug-in ce cerințe 473 00:26:37,940 --> 00:26:41,480 sunt de fapt necesare pentru acest plug-in pentru a încărca. 474 00:26:41,480 --> 00:26:46,400 Este, de asemenea, important să rețineți că ordinea în care plug-in-uri sunt încărcate 475 00:26:46,400 --> 00:26:48,300 nu este garantată. 476 00:26:48,300 --> 00:26:53,400 Dar ceea ce este garantat este că, dacă am specifica unele plug-in ca o cerință, 477 00:26:53,400 --> 00:26:56,900 că plug-in vor fi încărcate înainte de aceasta este încărcată. 478 00:26:56,900 --> 00:27:00,390 >> Deci asta înseamnă că, dacă dvs. plug-in necesită pe unele funcționalități furnizate 479 00:27:00,390 --> 00:27:04,380 de altceva în IDE, trebuie asigurați-vă că consumă dvs. plug-in 480 00:27:04,380 --> 00:27:09,260 că plug-in, astfel încât dependențele sunt sigur de a vă crea plug-in, 481 00:27:09,260 --> 00:27:15,010 sau instantiate dvs. plug-in, numai după că există cadru existente. 482 00:27:15,010 --> 00:27:18,870 Deci, aici, am menționat metadate la managerul plug-in, 483 00:27:18,870 --> 00:27:20,990 care dintre ele am de gând să consume. 484 00:27:20,990 --> 00:27:24,910 Și în funcția principală de aici, Am de gând să se conecteze apoi 485 00:27:24,910 --> 00:27:30,240 codul meu la aceste plug-in-uri importate. 486 00:27:30,240 --> 00:27:33,420 >> Deci, eu sunt doar de gând să crea unele variabile care 487 00:27:33,420 --> 00:27:36,620 se potrivi cu numele fiecăruia dintre cei atat care le pot referi foarte repede 488 00:27:36,620 --> 00:27:37,840 de-a lungul codul meu. 489 00:27:37,840 --> 00:27:41,840 Motivul pentru care sunt importatoare de dialog este pentru că vreau meu plug-in 490 00:27:41,840 --> 00:27:44,560 pentru a acționa ca un dialog plug-in. 491 00:27:44,560 --> 00:27:49,320 Și modul în care sunt capabili a face acest lucru este, desigur, 492 00:27:49,320 --> 00:27:52,740 conecta codul meu la dialogul plug-in prin importarea ea 493 00:27:52,740 --> 00:27:57,210 și apoi prin specificarea de crearea unei noi variabile dialog 494 00:27:57,210 --> 00:28:00,460 și conectarea la importate plug-in. 495 00:28:00,460 --> 00:28:04,820 Și apoi prin definirea mea plug-in ca un nou dialog. 496 00:28:04,820 --> 00:28:07,650 >> Deci, în initializare, am doriți să definiți meu plug-in. 497 00:28:07,650 --> 00:28:10,440 Și această variabilă numită plug-in veți vedea 498 00:28:10,440 --> 00:28:14,030 este doar utilizate în mod obișnuit de-a lungul Cloud 9 plug-inuri. 499 00:28:14,030 --> 00:28:16,980 Am de gând să instantiate un nou dialogul cu unele atribute, 500 00:28:16,980 --> 00:28:22,300 da un nume specific, spun că este posibil ca utilizatorii pentru ao închide. 501 00:28:22,300 --> 00:28:24,960 Că vom arăta un pic x în colțul din dreapta sus, 502 00:28:24,960 --> 00:28:27,529 sau un pic butonul din colțul din dreapta jos. 503 00:28:27,529 --> 00:28:30,570 Indiferent dacă sunt sau nu pot selecta text din l, ceea ce titlul de dialog care 504 00:28:30,570 --> 00:28:32,400 ar fi, și așa mai departe. 505 00:28:32,400 --> 00:28:36,330 Acum, acest definește doar dialogul, dar nu încă o arate. 506 00:28:36,330 --> 00:28:40,780 De fapt, trebuie să se definească o acțiune pentru a fi afișate. 507 00:28:40,780 --> 00:28:43,490 >> Și din nou, vă încurajez să să ia o privire la Cloud 9 SDK, 508 00:28:43,490 --> 00:28:46,930 pentru că există o varietate dialoguri și sunt foarte bine documentate. 509 00:28:46,930 --> 00:28:50,500 Puteti vedea diferite tipuri că există, și să le utilizeze 510 00:28:50,500 --> 00:28:55,380 în orice plug-in aveți în minte. 511 00:28:55,380 --> 00:28:58,790 Acum nu va fi un secțiune de încărcare, și această sarcină 512 00:28:58,790 --> 00:29:03,390 Funcția ce vă reamintesc este folosit de ciclul de viață plug-in 513 00:29:03,390 --> 00:29:07,060 să instantiate de fapt tot și de a lua totul gata pentru a merge. 514 00:29:07,060 --> 00:29:11,440 Acum, cand aceasta plug-in sarcini, eu nu vrei sa arate imediat un dialog, 515 00:29:11,440 --> 00:29:14,160 pentru că acest plug-in se va încărca împreună cu restul IDE. 516 00:29:14,160 --> 00:29:17,850 Și când am încărca că IDE, nu vreau dialogul să apară automat. 517 00:29:17,850 --> 00:29:24,170 Vreau doar să arăt când dau click pe opțiunea de meniu în meu articol de meniu Window 518 00:29:24,170 --> 00:29:26,760 că voi adăuga la ea momentan. 519 00:29:26,760 --> 00:29:29,480 >> Deci sunt două etape distincte aici trebuie să se întâmple. 520 00:29:29,480 --> 00:29:32,640 Trebuie să creați o comandă, și comanda 521 00:29:32,640 --> 00:29:37,940 va fi responsabil pentru, de fapt arătând dialogul pe Cloud 9 IDE. 522 00:29:37,940 --> 00:29:42,670 Și atunci am să vă conectați, am trebuie să creați o fereastră nouă meniu 523 00:29:42,670 --> 00:29:46,070 element, care ruleaza comanda. 524 00:29:46,070 --> 00:29:49,740 Așa că, atunci când fac clic pe acea fereastră element de meniu, comanda este apoi run 525 00:29:49,740 --> 00:29:52,290 și, prin urmare este indicat dialog mea. 526 00:29:52,290 --> 00:29:55,690 Și astfel încât acesta este de fapt o destul de mod frumos de gândire despre el. 527 00:29:55,690 --> 00:30:01,480 >> Pentru că în primul rând că pot crea o comandă al cărui nume este CS50 Seminar Dialog 1, 528 00:30:01,480 --> 00:30:04,860 care oferă unele context general pentru ea. 529 00:30:04,860 --> 00:30:08,930 Și cel mai important bit aici este de a observa atributul EXEC, care 530 00:30:08,930 --> 00:30:15,160 enumeră o funcție care va fi numit în mea plug-in, atunci când această comandă se execută. 531 00:30:15,160 --> 00:30:21,980 Deci această comandă este un fel de un-- e doar un nor de arbitrar 9 532 00:30:21,980 --> 00:30:25,780 comandă care este disponibil la orice Cloud 9 plug-in. 533 00:30:25,780 --> 00:30:30,290 Dar funcția propriu-zisă, care este O să sun când această comandă se execută 534 00:30:30,290 --> 00:30:35,010 este funcția spectacol de dialog în fișierul meu plugin.js. 535 00:30:35,010 --> 00:30:38,550 >> Și putem vedea de fapt, aceste plug-in-uri și lista 536 00:30:38,550 --> 00:30:45,480 de comenzi care sunt disponibile la noi în Preferințe, derulați tot drumul down-- 537 00:30:45,480 --> 00:30:48,180 să vedem, de fapt, nu vedem acest lucru acum? 538 00:30:48,180 --> 00:30:53,180 Plug-in manager, nu, cred că e Eu-- cu siguranta pe aici pe undeva. 539 00:30:53,180 --> 00:31:00,016 Ei bine, există o listă de comenzi undeva, dar eu trebuie să aibă, 540 00:31:00,016 --> 00:31:01,140 Am uitat unde este. 541 00:31:01,140 --> 00:31:02,430 Deci OK, vom merge mai departe. 542 00:31:02,430 --> 00:31:02,930 In regula. 543 00:31:02,930 --> 00:31:05,790 Deci, avem o listă de comenzi care sunt disponibile pentru noi, 544 00:31:05,790 --> 00:31:08,550 și aceste comenzi sunt acestea doar arbitrar Cloud 9 545 00:31:08,550 --> 00:31:10,870 comenzi care rulează cod specific. 546 00:31:10,870 --> 00:31:13,620 Deci, doar ține minte asta, că vom rula caseta de dialog spectacol 547 00:31:13,620 --> 00:31:15,640 funcționează momentan. 548 00:31:15,640 --> 00:31:19,740 Acum, când am de fapt, doriți să adăugați un meniu articol, pot adăuga elementul de cale, 549 00:31:19,740 --> 00:31:25,570 și doar să specificați exact unde vreau să fie, Window / CS50 Seminar Dialog 1. 550 00:31:25,570 --> 00:31:28,380 Și în acel moment, vreau pentru a crea un nou element care 551 00:31:28,380 --> 00:31:32,040 este de gând să executați o comandă, CS50 Seminar Dialog 1. 552 00:31:32,040 --> 00:31:36,140 Observați că din nou, aceasta este Cloud 9 comandă Am creat chiar deasupra. 553 00:31:36,140 --> 00:31:38,630 >> Acum vreau de asemenea, să a crea un pic de compas, 554 00:31:38,630 --> 00:31:42,260 și așa că am putea face același lucru în linia următoare. 555 00:31:42,260 --> 00:31:46,040 Acum s-ar putea observa că în calitate de parte de a defini acest element de meniu, 556 00:31:46,040 --> 00:31:48,200 există un număr de asociate cu aceasta, care 557 00:31:48,200 --> 00:31:51,260 de fapt spune unde Vreau acel element de meniu să fie 558 00:31:51,260 --> 00:31:53,441 situat în lista de meniuri. 559 00:31:53,441 --> 00:31:55,190 Dar s-ar putea observa că nu face de fapt 560 00:31:55,190 --> 00:31:59,540 vezi orice numere cu Aceste meniuri, în mod implicit. 561 00:31:59,540 --> 00:32:04,630 Deci nu e un lucru mic ascuns care putem face, o mică schimbare a URL-ul nostru. 562 00:32:04,630 --> 00:32:12,920 Deci, în plus față de SDK = 1 & depanare = 2, Meniul Voi setat la 1-- 563 00:32:12,920 --> 00:32:14,690 și, sperăm, este meniul, nu meniuri. 564 00:32:14,690 --> 00:32:17,001 Oh, e meniuri = 1. 565 00:32:17,001 --> 00:32:17,500 Stai asa. 566 00:32:17,500 --> 00:32:20,150 567 00:32:20,150 --> 00:32:24,690 >> Și ce vom vedea pe reîncărcarea că IDE este că eu sunt încă în modul de depanare, 568 00:32:24,690 --> 00:32:27,540 dar acum nu mai sunt numere asociate cu toate meniurile. 569 00:32:27,540 --> 00:32:29,630 Și acest lucru vă spune exact ceea ce numărul 570 00:32:29,630 --> 00:32:34,730 este atunci când sunteți încercarea de a injecta ceva nicăieri în acest sistem meniu. 571 00:32:34,730 --> 00:32:40,365 Deci, în meniul Window, nu pot vedea că elementul 45 este Colaborare, 572 00:32:40,365 --> 00:32:43,820 și punctul 38 înainte de a fi de instalare. 573 00:32:43,820 --> 00:32:47,530 Așa că, atunci când vreau să injecta un articol între cele două, 574 00:32:47,530 --> 00:32:50,570 Mi-ar alege doar un număr între aceste două elemente. 575 00:32:50,570 --> 00:32:56,200 Așa că am ales 41 și introdus seminarul meu Dialog punctul 1 de meniu la acea locație. 576 00:32:56,200 --> 00:33:03,640 >> Și de aceea acest număr care apare aici este numărul 41. 577 00:33:03,640 --> 00:33:08,010 Acesta este amplasarea acestei element de meniu din meniul Cloud 9. 578 00:33:08,010 --> 00:33:11,045 Acum În mod similar, am vrut pentru a crea un divizor 579 00:33:11,045 --> 00:33:13,920 și adauga astfel că există un frumos diviziune între fiecare dintre aceste meniu 580 00:33:13,920 --> 00:33:14,490 articole. 581 00:33:14,490 --> 00:33:18,600 Așa că am adăugat că la locație 43. 582 00:33:18,600 --> 00:33:20,260 Până în prezent, atât de bine, sper? 583 00:33:20,260 --> 00:33:23,920 Deci, acum să se uite la, de fapt codul specific în spectacol de dialog 584 00:33:23,920 --> 00:33:28,050 Asta e de fapt responsabil pentru deschiderea de dialog această fereastră. 585 00:33:28,050 --> 00:33:32,710 >> Defilare în jos, văd că vreau pentru a avea acest dialog funcție spectacol, 586 00:33:32,710 --> 00:33:34,730 și este extrem de simplu. 587 00:33:34,730 --> 00:33:38,570 Mă duc pentru a rula spectacol Metoda pe variabila plug-in. 588 00:33:38,570 --> 00:33:43,900 Și amintiți-vă că am definit această plug-in variabila de mai sus ca un dialog. 589 00:33:43,900 --> 00:33:48,530 Deci, bar plug-in, în acest caz, este acest obiect pe care l-am definit pe plan intern. 590 00:33:48,530 --> 00:33:53,030 Și că va fi un nou dialog conținute în acest plug-in. 591 00:33:53,030 --> 00:33:57,020 Și așa am referit de fapt acest lucru plug-in-variabile în multe locuri 592 00:33:57,020 --> 00:33:59,790 într-un tipic Cloud 9 mediu de dezvoltare. 593 00:33:59,790 --> 00:34:00,867 >> Vom vedea aici. 594 00:34:00,867 --> 00:34:03,450 Observați că pe măsură ce defilați în jos, există cicluri de viață suplimentare. 595 00:34:03,450 --> 00:34:06,970 Deci observați că acestea răspund la evenimente care sunt arse 596 00:34:06,970 --> 00:34:10,500 de acest obiect, acest obiect dialog. 597 00:34:10,500 --> 00:34:12,710 În mod implicit, nu e încărca și descărca, care 598 00:34:12,710 --> 00:34:14,760 sunt disponibile pentru toate Cloud 9 plug-inuri. 599 00:34:14,760 --> 00:34:17,139 Dar în caz de acest dialog, nu e 600 00:34:17,139 --> 00:34:19,139 un alt eveniment care poate foc, precum și numit 601 00:34:19,139 --> 00:34:23,239 Trage, care este concediat atunci când este pe cale de a fi trase pe ecran, 602 00:34:23,239 --> 00:34:27,239 în primă instanță a dialogului arată. 603 00:34:27,239 --> 00:34:29,590 >> Deci, atunci când este de fapt va fi prezentat, 604 00:34:29,590 --> 00:34:31,739 acolo va oferă pentru a ne ceva HTML. 605 00:34:31,739 --> 00:34:34,710 Și folosind doar standard de Practicile HTML Putem 606 00:34:34,710 --> 00:34:41,030 injecta unele informații foarte simplu, lumea noastră salut, în acest dialog. 607 00:34:41,030 --> 00:34:47,780 Deci, dacă atunci parcurgeți în sus, putem vezi apoi procesiunea de lucruri 608 00:34:47,780 --> 00:34:48,989 că este loc. 609 00:34:48,989 --> 00:34:54,070 În primul rând am creat o comandă Cloud 9 că, atunci când executat de Cloud 9, 610 00:34:54,070 --> 00:34:55,765 este de gând să foc această funcție. 611 00:34:55,765 --> 00:34:58,390 Va să ruleze această funcție numit arată dialog, care le-am 612 00:34:58,390 --> 00:34:59,720 scris în codul meu. 613 00:34:59,720 --> 00:35:04,350 >> Am creat un element de meniu și atașat la acesta că aceeași comandă 614 00:35:04,350 --> 00:35:08,550 că, atunci când se face clic pe acel element în meniul, care comanda este apoi executați 615 00:35:08,550 --> 00:35:10,780 și care funcție este apoi executați. 616 00:35:10,780 --> 00:35:14,080 Și în interiorul funcției sunt doar de gând să sun the-- Sunt 617 00:35:14,080 --> 00:35:17,250 doar de gând să execute spectacol metodă de acest plug-in, care 618 00:35:17,250 --> 00:35:20,800 este de gând să primul apel metoda remiză, și merg 619 00:35:20,800 --> 00:35:28,050 la foc această metodă jos de mai jos, trage tratare a evenimentului, în ciclul vieții noastre. 620 00:35:28,050 --> 00:35:30,820 Și apoi va de fapt arată dialogul. 621 00:35:30,820 --> 00:35:34,870 >> Există, de asemenea o metodă de ascundere, astfel încât dacă am nevoie de posibilitatea de a ascunde 622 00:35:34,870 --> 00:35:37,610 dialog meu, pot să fac același lucru. 623 00:35:37,610 --> 00:35:42,060 Așa că e destul de mult pentru a obține toate acestea pentru a lucra. 624 00:35:42,060 --> 00:35:45,160 Observați că este dacă vom derula în jos în plus există un API publică înghețare. 625 00:35:45,160 --> 00:35:51,020 Acest fapt doar spune că am doresc aceste metode pentru a în mod eficient 626 00:35:51,020 --> 00:35:56,670 fie publice, dar nu overwriteable în afara contextului de acest plug-in. 627 00:35:56,670 --> 00:36:00,410 Și de mai jos, chiar în partea de jos, este, probabil, ultimul lucru 628 00:36:00,410 --> 00:36:03,180 că avem cu adevărat nevoie să plătească multă atenție aici, care 629 00:36:03,180 --> 00:36:09,540 este că vom înregistra nostru plug-in cu numele C9 Seminar 1, 630 00:36:09,540 --> 00:36:11,920 și obiectul plug-in. 631 00:36:11,920 --> 00:36:14,870 >> Care, după cum veți aminti, este că plug-in care plug-in 632 00:36:14,870 --> 00:36:18,200 obiect pe care am fost definirea de-a lungul totalitatea acestei surse 633 00:36:18,200 --> 00:36:18,840 cod. 634 00:36:18,840 --> 00:36:23,790 Și C9 Seminar 1 este șir care am promis 635 00:36:23,790 --> 00:36:26,350 să furnizeze, la partea de sus din această definiție. 636 00:36:26,350 --> 00:36:29,280 637 00:36:29,280 --> 00:36:29,780 BINE. 638 00:36:29,780 --> 00:36:34,160 Deci, haideți să-l sol un pic și să vedem dacă putem face ceva 639 00:36:34,160 --> 00:36:36,020 un pic mai interesant. 640 00:36:36,020 --> 00:36:38,350 Acum, acest lucru este doar atât de mare. 641 00:36:38,350 --> 00:36:41,380 Adică, acest lucru este, de fapt destul de rece, care, în atât de puține linii de cod, 642 00:36:41,380 --> 00:36:45,570 putem modifica IDE existent și adaugă un element de meniu existent 643 00:36:45,570 --> 00:36:48,850 sau pentru a adăuga un nou element de meniu, se adaugă o comandă, și arată un dialog, 644 00:36:48,850 --> 00:36:51,040 și doar o grămadă de funcționalitate care există. 645 00:36:51,040 --> 00:36:54,550 Este într-adevăr destul de mare. 646 00:36:54,550 --> 00:36:59,470 >> Dar nu face o mulțime, pentru că nu se poate comunica cu Ubuntu care stau la baza 647 00:36:59,470 --> 00:37:00,450 exemplu. 648 00:37:00,450 --> 00:37:02,560 Deci, haideți să spun că de fapt, vrei sa afli 649 00:37:02,560 --> 00:37:05,400 unele informații despre care stau la baza Ubuntu exemplu, 650 00:37:05,400 --> 00:37:08,260 ca statisticile plug-in nu. 651 00:37:08,260 --> 00:37:11,090 Deci, haideți să aruncăm o privire la o pic mai multe informații 652 00:37:11,090 --> 00:37:13,730 despre modul în care statisticile plug-in lucrari. 653 00:37:13,730 --> 00:37:15,900 Și, de fapt, ea este foarte asemănătoare cu aceasta. 654 00:37:15,900 --> 00:37:17,680 S-ar putea aminti că există un dialog. 655 00:37:17,680 --> 00:37:21,680 S-ar putea aminti că există unele informații care este 656 00:37:21,680 --> 00:37:24,860 arată doar de-a lungul bara de meniu de-a lungul în partea de sus, care sperăm că ești acum 657 00:37:24,860 --> 00:37:27,450 obtinerea unui gust de modul în care am implementat acest lucru, 658 00:37:27,450 --> 00:37:32,360 doar prin introducerea elemente de meniu la specific puncte și de instantierea unui dialog 659 00:37:32,360 --> 00:37:34,360 și afișarea că dialogul. 660 00:37:34,360 --> 00:37:36,580 >> Dar noi nu au demonstrat încă vă cum o putem conecta 661 00:37:36,580 --> 00:37:40,790 la o comandă din care stau la baza exemplu Ubuntu. 662 00:37:40,790 --> 00:37:46,930 Deci, haideți să aruncăm o privire apoi la plugin.2, care face exact acest lucru. 663 00:37:46,930 --> 00:37:50,540 Vom deschide plugin.js, care este codul pentru această. 664 00:37:50,540 --> 00:37:54,570 Dar sub meniul Window, dacă dau click pe dialog 2, 665 00:37:54,570 --> 00:37:58,290 putem vedea că se spune acest în schimb, salut CS50, care 666 00:37:58,290 --> 00:38:01,800 nu arata tot ce ispititoare, nu? 667 00:38:01,800 --> 00:38:04,310 Cu excepția, ma uit la acest. 668 00:38:04,310 --> 00:38:07,020 Lasă-mă să schimbe ceva aici. 669 00:38:07,020 --> 00:38:11,540 >> Am de gând să merg pentru a-mi spațiu de lucru și schimbare seminar 670 00:38:11,540 --> 00:38:15,990 să spună altceva, cum ar fi Buna ziua, Dan. 671 00:38:15,990 --> 00:38:18,150 Am de gând să-l închidă și salvați-l. 672 00:38:18,150 --> 00:38:22,740 Iar acum am de gând să re-rula meu articol de meniu dialog. 673 00:38:22,740 --> 00:38:25,590 Și observați că acesta are acum schimbat ceea ce se spune. 674 00:38:25,590 --> 00:38:26,880 Salut, Dan. 675 00:38:26,880 --> 00:38:30,680 Se pare că am făcut ceva în jos aici, în care stau la baza Ubuntu instanță 676 00:38:30,680 --> 00:38:34,370 fără nici o manipulat cod care se execută din nou numai 677 00:38:34,370 --> 00:38:35,720 pe partea de client. 678 00:38:35,720 --> 00:38:40,380 Deci, există evident un fel de comunicare ce se întâmplă aici. 679 00:38:40,380 --> 00:38:44,550 >> Acum, acest lucru este în cazul în care o mulțime de putere de Cloud 9 SDK vine în, 680 00:38:44,550 --> 00:38:49,440 este că, în acest plugin.2, ne poate provoca de fapt, 681 00:38:49,440 --> 00:38:52,910 un apel să se întâmple la exemplu de bază, 682 00:38:52,910 --> 00:38:55,750 și a alerga unele comanda arbitrare. 683 00:38:55,750 --> 00:39:00,230 Deci, în acest caz, am de fapt a creat un script bash foarte simplu 684 00:39:00,230 --> 00:39:02,350 în spațiul de lucru mea a sunat Seminar. 685 00:39:02,350 --> 00:39:03,610 Așa că haideți să-mi deschid asta. 686 00:39:03,610 --> 00:39:05,370 Și putem vedea că se pare ca acest lucru. 687 00:39:05,370 --> 00:39:08,310 E doar o petrecere foarte simplu script al cărei unic scop în viață 688 00:39:08,310 --> 00:39:11,920 va fi la ecou în acest text, Buna, ziua, Dan. 689 00:39:11,920 --> 00:39:14,360 Sau înainte de a, a spus Buna ziua, CS50. 690 00:39:14,360 --> 00:39:16,000 Și asta e tot ce va face. 691 00:39:16,000 --> 00:39:21,030 >> Deoarece aceasta este acum un comandă care pot rula. 692 00:39:21,030 --> 00:39:23,750 Pot să-l rula de fapt aici. 693 00:39:23,750 --> 00:39:28,440 Putem vedea că de fapt este doar o comandă pe care am alerga natural. 694 00:39:28,440 --> 00:39:32,850 Pot cere-mi plug-in pentru a executa acest comandă pe spațiul de lucru de bază 695 00:39:32,850 --> 00:39:36,510 și analiza informațiilor care a fost întors de la el, 696 00:39:36,510 --> 00:39:40,300 și de a face ceva cu el, și să modifice mi plug-in și comportamentul pe care am 697 00:39:40,300 --> 00:39:43,240 au în mea plug-in, ca rezultat. BINE. 698 00:39:43,240 --> 00:39:45,450 Deci, hai sa vedem cum se intampla acest lucru. 699 00:39:45,450 --> 00:39:48,380 Am văzut acest lucru foarte simplu Script batch Seminar pe care am 700 00:39:48,380 --> 00:39:51,080 [Inaudibil], care poate rula de fapt. 701 00:39:51,080 --> 00:39:54,560 >> Și acum să vedem modificările care sunt necesare pentru a lega acest lucru împreună 702 00:39:54,560 --> 00:39:57,620 cu fereastră de dialog, și rula. 703 00:39:57,620 --> 00:40:02,030 Deci, aici vom face destul de cam același lucru așa cum am văzut mai înainte. 704 00:40:02,030 --> 00:40:05,500 Dar observați că printre lucruri pe care le-am consumat now-- 705 00:40:05,500 --> 00:40:09,090 în plus față de dialogul, care din nou se întâmplă să fi făcut de două ori, 706 00:40:09,090 --> 00:40:14,300 care nu este necessary-- în plus la dialogul și comenzile 707 00:40:14,300 --> 00:40:17,780 și meniurile plug-in-uri, care au fost necesară în primul pentru mine 708 00:40:17,780 --> 00:40:21,560 pentru a defini o nouă comandă și injecta un element în meniuri, 709 00:40:21,560 --> 00:40:25,010 Am, de asemenea, acest proc plug-in. 710 00:40:25,010 --> 00:40:28,500 >> Și acest proc plug-in permite ne manipula procesele de 711 00:40:28,500 --> 00:40:30,950 pe instanța de bază. 712 00:40:30,950 --> 00:40:34,970 Am conectat după ce am a spus că-mi plug-in este nevoie. 713 00:40:34,970 --> 00:40:38,320 Am apoi conectat la codul, așa cum am văzut în funcția principală. 714 00:40:38,320 --> 00:40:40,970 Din nou, am de gând să inițializarea dialogului meu. 715 00:40:40,970 --> 00:40:45,500 Și dacă ne-am muta în jos acum, ne-am se poate vedea cum acest lucru este diferit. 716 00:40:45,500 --> 00:40:49,040 Funcția de încărcare este același, așa este doar de gând să creeze o comandă 717 00:40:49,040 --> 00:40:54,250 și de a crea un element de meniu și conectați acel element de meniu pentru a comanda. 718 00:40:54,250 --> 00:40:56,690 Dar dacă acum ne defilați jos pentru a arăta dialog, 719 00:40:56,690 --> 00:40:59,990 putem începe pentru a vedea unde apar diferențe. 720 00:40:59,990 --> 00:41:04,170 >> Avem spectacol dialog funcție, care este doar de gând să arate dialogul. 721 00:41:04,170 --> 00:41:12,410 Dar când am arăta dialog, și în cazul în care metoda de spectacol se numește, 722 00:41:12,410 --> 00:41:14,430 se trage funcția de tragere. 723 00:41:14,430 --> 00:41:18,990 Și am de gând, apoi să specificați o parte a conținutului din interiorul asta. 724 00:41:18,990 --> 00:41:21,910 Deci, eu sunt doar de gând să a crea un div, oferă să-l 725 00:41:21,910 --> 00:41:24,020 un text de bază, Buna, ziua, lume. 726 00:41:24,020 --> 00:41:27,250 Dar observați că aici eu sunt va atașa la acesta un ID. 727 00:41:27,250 --> 00:41:32,350 Și linia următoare am de gând pentru a găsi că ID folosind JavaScript, 728 00:41:32,350 --> 00:41:36,210 și se păstrează ca obiect într-o altă variabilă 729 00:41:36,210 --> 00:41:38,280 că Mă duc pentru a apela conținut. 730 00:41:38,280 --> 00:41:41,780 >> Deci, ori de câte ori am acum conținut, tot ce trebuie să faceți 731 00:41:41,780 --> 00:41:46,100 este doar modifica HTML interior acest obiect. 732 00:41:46,100 --> 00:41:51,300 Și HTML dialogul va apoi sa fie modificati corespunzator. 733 00:41:51,300 --> 00:41:55,500 Deci, atunci când acest plug-in este apoi se arată, care se poate întâmpla 734 00:41:55,500 --> 00:41:59,820 iar acest lucru este un eveniment nou care este nou la acest plug-in, 735 00:41:59,820 --> 00:42:03,380 dar se întâmplă în fiecare plug-in cu dialogul, atunci când acest lucru este acum prezentat, 736 00:42:03,380 --> 00:42:07,100 Am de gând pentru a apela un funcție numită aduce informatii. 737 00:42:07,100 --> 00:42:10,520 Și aceasta functie este carnea de ea aici. 738 00:42:10,520 --> 00:42:14,930 Am de gând să folosească acest proc plug-in care am descris mai înainte, care de altfel, 739 00:42:14,930 --> 00:42:19,790 este de fapt doar o bibliotecă Node.js că Cloud 9 utilizează aici. 740 00:42:19,790 --> 00:42:21,730 >> Astfel încât să puteți de fapt privi în sus despre modul în care acest 741 00:42:21,730 --> 00:42:25,340 funcționează dacă te duci în Documentație Node.js 742 00:42:25,340 --> 00:42:29,220 și privi în sus fișierul exec metodă pentru procesele de acolo. 743 00:42:29,220 --> 00:42:33,110 Am de gând pentru a rula acest specific comandă, acasă Ubuntu spațiu de lucru 744 00:42:33,110 --> 00:42:38,000 seminar, care este aceeași una, care aceeași comandă pe care am creat înainte. 745 00:42:38,000 --> 00:42:40,680 Furnizează un curent directorul de lucru, doar 746 00:42:40,680 --> 00:42:45,440 pentru a fi în siguranță ultra În ceea ce privește contextul în care acest lucru se execută. 747 00:42:45,440 --> 00:42:49,150 Și odată ce a fost completat și returnat, 748 00:42:49,150 --> 00:42:54,040 Am de gând pentru a rula acest funcție numită de ieșire analizare. 749 00:42:54,040 --> 00:42:54,540 BINE. 750 00:42:54,540 --> 00:42:58,670 Deci, aceasta este apoi va executa o comandă pe local, sau mai degrabă 751 00:42:58,670 --> 00:43:01,700 instanța Ubuntu la distanță. 752 00:43:01,700 --> 00:43:03,490 Când mă întorc niște informații, sunt apoi 753 00:43:03,490 --> 00:43:06,940 merge pentru a apela o funcție separată numita ieșire Parse, care 754 00:43:06,940 --> 00:43:13,790 are această semnătură aici, err, stdout, stderr, 755 00:43:13,790 --> 00:43:15,910 și a efectua unele de calcul în acest sens. 756 00:43:15,910 --> 00:43:18,930 Deci, dacă am primit o eroare de un fel la toate, 757 00:43:18,930 --> 00:43:22,340 Eu va verifica de fapt, pentru a vedea dacă eroare de fapt, are unele date. 758 00:43:22,340 --> 00:43:27,204 Și dacă da, atunci voi modifica interior HTML de acel obiect de conținut, care 759 00:43:27,204 --> 00:43:28,995 este vă amintiți, am conectat la dialogul 760 00:43:28,995 --> 00:43:32,210 la instantiattion de care dialog, sau la primul desen 761 00:43:32,210 --> 00:43:33,370 acestui dialog. 762 00:43:33,370 --> 00:43:35,650 Am de gând să spun doar că o eroare sa întâmplat. 763 00:43:35,650 --> 00:43:37,140 >> Acum, acest lucru este prea simplistă. 764 00:43:37,140 --> 00:43:40,170 Valoarea de eroare va de obicei conțin ceva care a fost util, 765 00:43:40,170 --> 00:43:45,520 probabil un număr de eroare și o Eroare de script-ul în sine. 766 00:43:45,520 --> 00:43:48,430 Sau în cazul în care script-ul scris ceva de eroare standard, 767 00:43:48,430 --> 00:43:50,890 că datele vor fi populate în acest parametru, de asemenea. 768 00:43:50,890 --> 00:43:53,765 Și aș putea fi un pic mai atent la ceea ce eroare 769 00:43:53,765 --> 00:43:55,332 Sunt de fapt arată de oameni. 770 00:43:55,332 --> 00:43:57,415 Dar acest exemplu simplist este destul de bun pentru acum 771 00:43:57,415 --> 00:43:59,715 pentru a vedea cel puțin modul în care toate aceste funcții. 772 00:43:59,715 --> 00:44:01,590 Altfel, dacă există nici o eroare, atunci eu sunt doar 773 00:44:01,590 --> 00:44:05,500 O să furnizeze RAW ieșire din această funcție 774 00:44:05,500 --> 00:44:10,070 în HTML interioară a acestui conținut elementul, apoi actualizați-mi plug-in 775 00:44:10,070 --> 00:44:12,490 și-l arate aici. 776 00:44:12,490 --> 00:44:17,550 Și asta e destul de mult tot ce este necesare pentru a obține acest pentru a rula. 777 00:44:17,550 --> 00:44:22,860 Și astfel sa ne gandim despre atunci cum funcționează acest, în general. 778 00:44:22,860 --> 00:44:29,330 Când am încărcat primul acest plug-in, la fel ca primul plug-in, 779 00:44:29,330 --> 00:44:32,670 Am de gând să adăugați o comandă care este disponibile pentru orice, la orice plug-in- 780 00:44:32,670 --> 00:44:37,120 în Cloud 9, numit Seminar CS50 Dialog 2, a cărui responsabilitate 781 00:44:37,120 --> 00:44:39,670 va fi de a rula acest spectacol dialog, care este vă amintiți, 782 00:44:39,670 --> 00:44:42,730 va arăta de fapt, dialogul că am solicitat de mai jos. 783 00:44:42,730 --> 00:44:45,980 >> Apoi voi adăuga că comandă într-un meniu fereastră 784 00:44:45,980 --> 00:44:48,070 astfel încât să aibă acces la acest lucru. 785 00:44:48,070 --> 00:44:51,420 Și când că dialogul este solicitat să fie prezentat, 786 00:44:51,420 --> 00:44:55,170 Voi aduce unele informații de la care stau la baza Ubuntu instanță 787 00:44:55,170 --> 00:44:58,890 utilizând comanda fișier exec. 788 00:44:58,890 --> 00:44:59,920 Scuza-ma. 789 00:44:59,920 --> 00:45:04,140 Odată ce este returnat și primesc unele informații, apoi pe partea de client 790 00:45:04,140 --> 00:45:08,370 din nou, voi fi capabil pentru a analiza producția de comanda 791 00:45:08,370 --> 00:45:12,650 și actualizarea interior HTML a elementelor 792 00:45:12,650 --> 00:45:16,440 că ne-am conectat la mai devreme. 793 00:45:16,440 --> 00:45:19,910 >> Și cu asta, avem apoi au acest complet funcțional plug-in 794 00:45:19,910 --> 00:45:24,520 care-mi permite să aducă informații din acest script arbitrară 795 00:45:24,520 --> 00:45:27,170 care le-am creat pe exemplu nostru de bază. 796 00:45:27,170 --> 00:45:29,660 Dar, din nou, este foarte și într-adevăr importantă cheie 797 00:45:29,660 --> 00:45:33,030 pentru a separa de unde fiecare aceste lucruri se întâmplă, 798 00:45:33,030 --> 00:45:38,320 că avem toate acestea partea clientului cod care se executa in browser-ul, 799 00:45:38,320 --> 00:45:41,640 și nu are încă acces la sistemul de fișiere de bază 800 00:45:41,640 --> 00:45:44,895 până când vom rula de fapt, unele dintre acestea comenzi care sunt furnizate de către Cloud 801 00:45:44,895 --> 00:45:49,055 9 SDK ca proc, iar unele altele care ne permit să citească unele date, 802 00:45:49,055 --> 00:45:53,500 sau cititi unele fișiere dacă avem nevoie de a face ceva de genul. 803 00:45:53,500 --> 00:45:56,650 >> Acum, acesta este un exemplu oarecum simplu. 804 00:45:56,650 --> 00:46:00,570 Există și alte lucruri pe care le ar dori, probabil, să facă la fel de bine. 805 00:46:00,570 --> 00:46:03,470 De exemplu, poate că de fapt doriți să salvați unele informații 806 00:46:03,470 --> 00:46:04,630 la preferințele. 807 00:46:04,630 --> 00:46:07,900 Sau poate vrem să adăugați un nou panou de preferință 808 00:46:07,900 --> 00:46:09,690 sau ceva de-a lungul acestor linii. 809 00:46:09,690 --> 00:46:13,370 Apoi că este ceva ce poate lua o privire la Cloud 9 SDK 810 00:46:13,370 --> 00:46:15,300 pentru a obține mai multe informații cu privire la. 811 00:46:15,300 --> 00:46:19,990 Dar aceasta este cu adevărat suficient pentru a începe. 812 00:46:19,990 --> 00:46:26,410 Deci, doar pentru a fi un pic mai concret despre modul în care unele dintre aceste lucruri 813 00:46:26,410 --> 00:46:31,370 funcție, am vrut să arate doar încă un exemplu, care este doar un 814 00:46:31,370 --> 00:46:35,580 de codul din 50 Statistica plug-in. 815 00:46:35,580 --> 00:46:39,780 >> Și acest cod este, în principiu bazat pe aceste exemple 816 00:46:39,780 --> 00:46:43,310 care le-ați văzut de fapt, dar are unele mai multe garanții 817 00:46:43,310 --> 00:46:47,460 și are ceva mai mult de complexitate pentru pentru a realiza unele dintre lucrurile suplimentare 818 00:46:47,460 --> 00:46:48,930 care ne-o dorim pentru a atinge. 819 00:46:48,930 --> 00:46:54,510 De exemplu, dacă vreau să fiu capabil de a salva unele setări, 820 00:46:54,510 --> 00:46:57,700 apoi m-am nevoie pentru a avea acces la setările plug-in, 821 00:46:57,700 --> 00:47:01,820 și de fiecare dată vreau pentru a citi unele setări, 822 00:47:01,820 --> 00:47:08,340 Pot, de exemplu, atașați la diverse Evenimente în setările plug-in. 823 00:47:08,340 --> 00:47:13,630 Deci, de fiecare dată setările este de culoare roșie, de exemplu, în propria mea plug-in, 824 00:47:13,630 --> 00:47:18,450 dacă am de gând să citesc ceva setările de la depozitarea salvat 825 00:47:18,450 --> 00:47:24,540 preferințele utilizatorului, atunci pot stabilit valori implicite pentru o anumită locație, 826 00:47:24,540 --> 00:47:31,250 de preferință specifică, în care JSON opțiuni de stil fișier care le-am 827 00:47:31,250 --> 00:47:33,890 salvat anterior, pe care le-am văzut mai devreme. 828 00:47:33,890 --> 00:47:36,370 >> Și dacă am de gând să scrie unele setări să-l, 829 00:47:36,370 --> 00:47:40,440 apoi m-am can-- sau de îndată ce vom detecta că setările au fost scrise 830 00:47:40,440 --> 00:47:44,420 sa-- deoarece de exemplu, cei care Setările au fost modificate de către utilizator 831 00:47:44,420 --> 00:47:47,335 fie direct în setările fișier, sau panoul de preferință 832 00:47:47,335 --> 00:47:49,370 a schimbat setările fișier direct, atunci 833 00:47:49,370 --> 00:47:53,590 Pot actualiza de fapt, unele din codul sau actualiza comportamentul meu plug-in 834 00:47:53,590 --> 00:47:58,710 bazate pe acele modificări care au a avut loc pe fișierul de setări, de asemenea. 835 00:47:58,710 --> 00:48:03,380 Dar, de fapt, restul este destul de mult acest care le-ați văzut deja. 836 00:48:03,380 --> 00:48:06,040 >> Am adăuga unele, poate ceva care este nou. 837 00:48:06,040 --> 00:48:09,440 Așa că am adăuga un fișier preferință, sau mai degrabă un geam preferință, 838 00:48:09,440 --> 00:48:14,250 la fereastra preferințe, care din nou puteți afla mai multe informații 839 00:48:14,250 --> 00:48:16,220 în Cloud 9 SDK-mi citesc. 840 00:48:16,220 --> 00:48:18,460 Dar totul altceva este destul de mult, destul de 841 00:48:18,460 --> 00:48:25,810 similar cu ceea ce am văzut mai înainte, doar cu unele verificarea erorilor suplimentare 842 00:48:25,810 --> 00:48:30,150 și unele protectii suplimentare iar unele funcționalități suplimentare 843 00:48:30,150 --> 00:48:33,314 ce oferă toate a diferitelor lucruri pe care le-am văzut. 844 00:48:33,314 --> 00:48:35,230 Dacă aveți de fapt nu văzut încă, s-ar putea 845 00:48:35,230 --> 00:48:40,955 va intrebati ce activului suport comandă este în 50 Statistica fereastra. 846 00:48:40,955 --> 00:48:42,840 Este de fapt funcția. 847 00:48:42,840 --> 00:48:48,100 Ei bine, este-- oh, la naiba. 848 00:48:48,100 --> 00:48:49,410 O secundă. 849 00:48:49,410 --> 00:48:49,910 Stai asa. 850 00:48:49,910 --> 00:48:52,270 BINE. 851 00:48:52,270 --> 00:48:58,090 Lasă-mă să se deplaseze asta astfel încât să putem, de fapt vedem ce se întâmplă atunci când am tip 50 Statistica. 852 00:48:58,090 --> 00:49:02,140 Observați că, în acest caz, comandă care nu mai am pune 853 00:49:02,140 --> 00:49:06,310 este într-adevăr din nou, doar script-ul care este O să ieșire o grămadă de informații 854 00:49:06,310 --> 00:49:08,040 în format JSON. 855 00:49:08,040 --> 00:49:10,800 Și motivul pentru care o facem în acest fel este că, deoarece noi 856 00:49:10,800 --> 00:49:15,480 funcționează, pentru că ne-am scris codul partea de client în JavaScript, 857 00:49:15,480 --> 00:49:19,500 putem foarte usor doar analiza obiecte JavaScript, 858 00:49:19,500 --> 00:49:23,050 și într-adevăr să fie capabil de a manipula aceste obiecte la fel ca ne-ar 859 00:49:23,050 --> 00:49:24,610 orice alt obiect JavaScript. 860 00:49:24,610 --> 00:49:27,650 >> Și astfel încât acesta este un foarte convenabil mod de a furniza anumite informații 861 00:49:27,650 --> 00:49:31,950 de la care stau la baza Ubuntu instanță, cum ar fi numărul de versiune, gazda 862 00:49:31,950 --> 00:49:36,360 nume, dacă un server este de ascultare, ce serverul este, așa mai departe și așa mai departe, 863 00:49:36,360 --> 00:49:39,150 și analiza care foarte ușor și foarte repede 864 00:49:39,150 --> 00:49:44,870 în plug-in, care este apoi merge să ne arate toate aceste informații. 865 00:49:44,870 --> 00:49:47,920 Deci, din nou, o perspectivă cheie aici pentru a păstra în minte 866 00:49:47,920 --> 00:49:54,260 este această separare între instanța de bază, 867 00:49:54,260 --> 00:49:57,490 și, de asemenea, în cazul în care codul se incarca. 868 00:49:57,490 --> 00:49:59,870 Că atunci când am un client, e prima încărcare. 869 00:49:59,870 --> 00:50:03,951 Doar acest fișier JavaScript static de la undeva, probabil CDN de un anumit fel. 870 00:50:03,951 --> 00:50:06,450 Nu avem cu adevărat să aibă grijă prea mult despre acest prim pas. 871 00:50:06,450 --> 00:50:08,970 >> Știm doar că este rulează pe partea de client 872 00:50:08,970 --> 00:50:12,740 și atunci am de gând să comunica cu acest caz docher. 873 00:50:12,740 --> 00:50:15,970 Că vom face acest lucru prin Cloud 9 SDK. 874 00:50:15,970 --> 00:50:20,460 Noi nu avem de fapt capacitatea, folosind JavaScript sau Node.js, 875 00:50:20,460 --> 00:50:21,750 pentru a scrie direct la ea. 876 00:50:21,750 --> 00:50:29,400 Noi folosim doar cele existente SDK API-uri pentru a face această acțiune pentru noi. 877 00:50:29,400 --> 00:50:32,490 Și din nou, unul dintre cele mai lucrurile cu adevarat importante 878 00:50:32,490 --> 00:50:38,990 este că atunci când am creat acest lucru, când am creat acest plug-in, 879 00:50:38,990 --> 00:50:42,510 și, ca am de lucru pe ea, o dintre cele mai importante lucruri de făcut 880 00:50:42,510 --> 00:50:44,840 este de a aduce consola JavaScript. 881 00:50:44,840 --> 00:50:49,400 >> Deoarece deoarece acest lucru este tot operează pe JavaScript, 882 00:50:49,400 --> 00:50:54,700 pe partea de client, dacă am folosi un console.log method-- asa ca 883 00:50:54,700 --> 00:50:56,550 pentru a arăta un exemplu aici. 884 00:50:56,550 --> 00:51:07,630 Să încercăm să modifice acest simplu plug-in pentru a vă conecta, de asemenea, unele date. 885 00:51:07,630 --> 00:51:09,895 Și vom adăuga în dotare standard. 886 00:51:09,895 --> 00:51:13,010 887 00:51:13,010 --> 00:51:16,810 Deci, haideți să se schimbe, care să fie chiar aici. 888 00:51:16,810 --> 00:51:19,560 Acum, când am executa console.log, tineti minte 889 00:51:19,560 --> 00:51:21,630 că, deoarece aceasta se execută pe partea de client, 890 00:51:21,630 --> 00:51:24,900 Voi vedea acest lucru în propria mea JavaScript consola, care 891 00:51:24,900 --> 00:51:28,540 este modul în care voi putea apoi să încerca pentru a depana și de depanare 892 00:51:28,540 --> 00:51:30,330 unele dintre problemele pe care le am. 893 00:51:30,330 --> 00:51:34,110 >> Observați că, din cauza Eu sunt în mod SDK, eu sunt 894 00:51:34,110 --> 00:51:37,820 apoi capabil de a manipula pluginuri pe acest caz. 895 00:51:37,820 --> 00:51:39,800 Deci, chiar dacă este salvate pe acest exemplu, 896 00:51:39,800 --> 00:51:47,130 aceasta este singurul exemplu de care anterior regulă fiind încălcat, în cazul în care Cloud 9 897 00:51:47,130 --> 00:51:51,030 SDK va trage de fapt plug-in-uri de la care stau la baza instanță și apoi executați-le. 898 00:51:51,030 --> 00:51:54,440 Astfel că, în acest fel, eu sunt apoi capabil de a manipula și a construi 899 00:51:54,440 --> 00:51:55,750 unele plug-in-uri aici. 900 00:51:55,750 --> 00:51:58,080 Dar pentru mine pentru a vedea modificari pentru acest plug-in, 901 00:51:58,080 --> 00:52:01,880 pentru ca este pe partea de client, Am nevoie pentru a salva ca plug-in 902 00:52:01,880 --> 00:52:04,950 și apoi reîncărcați întregul spațiul de lucru, astfel încât noul plug-in este atunci 903 00:52:04,950 --> 00:52:09,230 descărcat pe clientul meu, pe meu browser web, iar apoi este utilizat. 904 00:52:09,230 --> 00:52:14,460 >> Așa că acum, când fac clic pe acest seminar Dialog 2, încă vezi asta. 905 00:52:14,460 --> 00:52:21,311 Dar acum sperăm în JavaScript meu dialog, ar trebui să vedem my-- aștepta, 906 00:52:21,311 --> 00:52:21,810 stai asa. 907 00:52:21,810 --> 00:52:24,420 S-ar putea avea pentru a deschide un dialog proaspăt. 908 00:52:24,420 --> 00:52:30,230 Noi ar trebui să vedeți datele mele primite aici. 909 00:52:30,230 --> 00:52:32,780 Date primite, Buna ziua, Dan, care este vă amintiți, 910 00:52:32,780 --> 00:52:37,770 a fost o operațiune care console.log am solicitat în plug-in. 911 00:52:37,770 --> 00:52:42,140 Deci, această descriere atunci pe care am menționat mai înainte, 912 00:52:42,140 --> 00:52:45,460 acest dialog, sau acest diagrama mai degrabă, că 913 00:52:45,460 --> 00:52:49,140 menționat mai înainte este ceea ce se întâmplă. 914 00:52:49,140 --> 00:52:53,150 Dar există o importantă excepție numai pentru dezvoltare, 915 00:52:53,150 --> 00:52:55,490 care este faptul că plug-in s-ar putea de fapt în sine 916 00:52:55,490 --> 00:52:59,160 fi stocate pe instanța docher temporar, deoarece probabil Cloud 9 917 00:52:59,160 --> 00:53:02,210 nu vrea să fie în măsură să manipula obiecte de pe CDN lor. 918 00:53:02,210 --> 00:53:08,650 >> Și Cloud 9 clienti, la încărcare, va găsi aceste plug-inuri în asta. 919 00:53:08,650 --> 00:53:11,540 C9 plug-in dosar, și încărcați cele. 920 00:53:11,540 --> 00:53:15,780 Dar acestea sunt încă întâmplă numai pe partea de client. 921 00:53:15,780 --> 00:53:19,440 Deci, atunci acest lucru este doar AN excepție care apare numai 922 00:53:19,440 --> 00:53:23,220 pentru dezvoltarea de Cloud 9 plug-inuri. 923 00:53:23,220 --> 00:53:25,000 Dar restul de time-- și motivul 924 00:53:25,000 --> 00:53:26,708 pe care dorim să adevarat ciocan acest home-- 925 00:53:26,708 --> 00:53:30,140 se datorează faptului că cele mai multe ori acest lucru este O să fie difuzate de la CDN, 926 00:53:30,140 --> 00:53:33,030 și doar de gând să fi rulat pur de pe partea de client. 927 00:53:33,030 --> 00:53:36,110 >> În mod normal, nu va fi nici o interacțiunea cu plug-in, 928 00:53:36,110 --> 00:53:39,840 sau nu are nici măcar să fie orice motiv că s-au Pluginuri 929 00:53:39,840 --> 00:53:42,970 sunt de fapt stocate pe care stau la baza exemplu docher, 930 00:53:42,970 --> 00:53:47,240 cu excepția cazului de această dezvoltare SDK. 931 00:53:47,240 --> 00:53:51,510 Deci, din nou, acest schimbă doar ușor datorită faptului 932 00:53:51,510 --> 00:53:54,650 că suntem execută modul SDK. 933 00:53:54,650 --> 00:53:57,160 Va apoi a încărca cele plug-in-uri de la dezvoltare, 934 00:53:57,160 --> 00:54:01,690 și singurul scop de aici este, astfel încât Eu pot folosi Cloud 9 pentru a face dezvoltare 935 00:54:01,690 --> 00:54:04,620 pentru Cloud 9 plugin-uri. 936 00:54:04,620 --> 00:54:07,220 Dar chiar și așa, acest lucru nu schimbă din nou cum funcționează toate astea. 937 00:54:07,220 --> 00:54:09,650 Este încă în curs de a alerga în întregime pe partea de client. 938 00:54:09,650 --> 00:54:16,260 >> Aceasta înseamnă doar că ori de câte ori vreau să crea Cloud 9 plug-in în Cloud 9, 939 00:54:16,260 --> 00:54:19,320 Am crea aceste plug-in-uri, le-a pus în mea. 940 00:54:19,320 --> 00:54:25,110 C9 dosar / plugins în casa mea director, asigurați-vă că eu sunt în modul SDK, 941 00:54:25,110 --> 00:54:29,290 reîncărca pagina de fiecare data cand de fapt face modificări la care plug-in, 942 00:54:29,290 --> 00:54:33,590 și să vedem ce se întâmplă în consola mea JavaScript. 943 00:54:33,590 --> 00:54:36,240 Doar gestiona JavaScript meu consola pentru a se asigura 944 00:54:36,240 --> 00:54:38,930 că orice depanare informații pe care am loc de consola, 945 00:54:38,930 --> 00:54:41,920 sau orice altceva care ar putea apărea din cauza unor erori pe care le-am scris 946 00:54:41,920 --> 00:54:44,940 în codul meu sau altele asemenea, apare acolo. 947 00:54:44,940 --> 00:54:48,007 >> Și cu asta, este într-adevăr suficient pentru a începe, cred, 948 00:54:48,007 --> 00:54:49,090 cu plug-in-uri Cloud 9. 949 00:54:49,090 --> 00:54:53,120 Luând în special o privire la SDK documentația care Cloud 9 oferă. 950 00:54:53,120 --> 00:54:56,650 Este o modalitate foarte bună de a obține început, și foarte ușor 951 00:54:56,650 --> 00:54:59,900 crearea unor plug-in-uri pentru Cloud 9. 952 00:54:59,900 --> 00:55:02,820 Și cu asta, vreau să mulțumesc pe toți foarte mult pentru aderarea mine. 953 00:55:02,820 --> 00:55:05,550 Sper că te vei distra scris plug-inuri pentru Cloud 9. 954 00:55:05,550 --> 00:55:09,600 Îmbunătățirea Poate plug-inuri ca acum avem, sau poate chiar 955 00:55:09,600 --> 00:55:11,360 adăugând putea funcționa de dumneavoastră. 956 00:55:11,360 --> 00:55:14,540 Așteptăm cu nerăbdare să vedem ceea ce este să creați. 957 00:55:14,540 --> 00:55:16,330 Până atunci, la revedere. 958 00:55:16,330 --> 00:55:18,734