1 00:00:00,000 --> 00:00:05,159 2 00:00:05,159 --> 00:00:09,240 >> DAN ARMENDARIZ: Hej, og velkommen til en CS50 seminar om Tilpasning Cloud 9, 3 00:00:09,240 --> 00:00:11,724 og CS50 IDE. 4 00:00:11,724 --> 00:00:13,640 Så i dag vil vi bare snakke lidt 5 00:00:13,640 --> 00:00:16,090 om nogle af de tekniske oplysninger, 6 00:00:16,090 --> 00:00:19,380 går bag arkitekturen af Cloud 9, og hvordan 7 00:00:19,380 --> 00:00:25,560 Vi har gennemført nogle af de plug-ins som en del af Cloud 9 at give CS50 IDE. 8 00:00:25,560 --> 00:00:28,820 Så lad os bare hoppe direkte ind og begynder at tale om plug-ins. 9 00:00:28,820 --> 00:00:32,659 >> Så plug-ins er virkelig på Kernen i Cloud 9 oplevelse. 10 00:00:32,659 --> 00:00:37,590 Cloud 9 er den underliggende teknologi der giver os IDE, 11 00:00:37,590 --> 00:00:42,160 og også terminalvinduet på bunden, sammen med workspace-- 12 00:00:42,160 --> 00:00:46,430 Ubuntu workspace-- at vi bruge til at samle alle vores projekter 13 00:00:46,430 --> 00:00:49,190 og udfører vores problem sæt, fuldføre vores problem sæt. 14 00:00:49,190 --> 00:00:51,820 Men i hjertet af alle af det, al den teknologi 15 00:00:51,820 --> 00:00:54,590 er egentlig bare en flok plug-ins. 16 00:00:54,590 --> 00:00:58,740 Alt er en plug-in der kan ændres, 17 00:00:58,740 --> 00:01:00,710 udvidet, kan du oprette dine egne plug-ins, 18 00:01:00,710 --> 00:01:03,060 kan du fjerne andre plug-ins, for virkelig at ændre 19 00:01:03,060 --> 00:01:07,540 en hel del af den funktionalitet, af den eksisterende Cloud 9 IDE. 20 00:01:07,540 --> 00:01:12,040 >> Så det er en eksisterende Cloud 9 miljø. 21 00:01:12,040 --> 00:01:14,750 Det er egentlig bare det standard Cloud 9 miljø. 22 00:01:14,750 --> 00:01:18,450 Og tage et kig på, hvordan det rent faktisk er forskellig fra CS50 IDE. 23 00:01:18,450 --> 00:01:20,340 Så dette er CS50 IDE. 24 00:01:20,340 --> 00:01:25,060 Bemærk at der er en vis visuel ændringer mellem de regelmæssige Cloud 9 25 00:01:25,060 --> 00:01:28,000 miljø og CS50 IDE. 26 00:01:28,000 --> 00:01:30,010 Konkret vil du bemærke et par ændringer. 27 00:01:30,010 --> 00:01:34,201 Først og fremmest, er der færre menupunkter til at begynde med. 28 00:01:34,201 --> 00:01:36,200 Der er faktisk en måde at du kan ændre det. 29 00:01:36,200 --> 00:01:37,270 Det hedder Simple Mode. 30 00:01:37,270 --> 00:01:40,910 >> Som standard er Simple Mode aktiveret, og der forenkler nogle af menupunkterne. 31 00:01:40,910 --> 00:01:43,032 Det fjerner nogle af de mere avancerede dem, 32 00:01:43,032 --> 00:01:45,240 fordi ærligt, en masse studerende, der kommer i 33 00:01:45,240 --> 00:01:48,550 og behøver ikke at vide om nogle af de mere avancerede funktioner 34 00:01:48,550 --> 00:01:50,530 ikke overvældet med en masse muligheder. 35 00:01:50,530 --> 00:01:55,610 Men vi giver evnen til at tage off disse såkaldte uddannelse hjul 36 00:01:55,610 --> 00:01:57,360 og fjern det stilladser, så folk 37 00:01:57,360 --> 00:02:00,832 kan blive mere vant til de avancerede funktioner i IDE. 38 00:02:00,832 --> 00:02:02,540 Umiddelbart til højre for det, der er 39 00:02:02,540 --> 00:02:05,435 også en debug-knap, som i standard Cloud 40 00:02:05,435 --> 00:02:08,199 9 miljø er simpelthen kaldes løb. 41 00:02:08,199 --> 00:02:11,990 Men som standard, har vi konfigureret debug knappen i CS50 IDE 42 00:02:11,990 --> 00:02:15,500 at hente debugger, automatisk kompilere kildekoden, 43 00:02:15,500 --> 00:02:17,940 tilslutte debugger til den underliggende GDB-- 44 00:02:17,940 --> 00:02:21,430 og da der er køre for at udføre den debugging-- og nogle andre skridt 45 00:02:21,430 --> 00:02:22,580 samt. 46 00:02:22,580 --> 00:02:25,370 Også terminalvinduet på very-- eller rettere terminalen 47 00:02:25,370 --> 00:02:29,010 Fanen ved konsollen sektionen på vindue i bunden af ​​skærmen, 48 00:02:29,010 --> 00:02:31,004 blev omdøbt til blot at være terminal. 49 00:02:31,004 --> 00:02:32,837 Mens der i standarden Cloud 9 miljø, 50 00:02:32,837 --> 00:02:35,830 det faktisk viser kørende program. 51 00:02:35,830 --> 00:02:39,140 På denne måde forenkler igen, GUI, bare en lille smule. 52 00:02:39,140 --> 00:02:42,310 >> Vi har også tilføjet nogle knapper til den øverste højre IDE 53 00:02:42,310 --> 00:02:45,740 at vise nogle grundlæggende oplysninger om den underliggende instans. 54 00:02:45,740 --> 00:02:49,700 Og også vi har fjernet en af optioner på de poster 55 00:02:49,700 --> 00:02:51,730 fra det yderste højre. 56 00:02:51,730 --> 00:02:55,620 Så alt dette gennemføres ikke ved at modificere nødvendigvis Cloud 9 57 00:02:55,620 --> 00:02:58,550 kildekode, men i stedet igennem et par 58 00:02:58,550 --> 00:03:03,460 af plug-ins, som vi har gennemført hele det forløbne år eller deromkring. 59 00:03:03,460 --> 00:03:08,840 Og Cloud 9 har været vært og har kører i CS50 arbejdsområde. 60 00:03:08,840 --> 00:03:13,680 Eller rettere i arbejdsområder, der er udpeget som CS50 IDE'er. 61 00:03:13,680 --> 00:03:17,140 >> Så virkelig det er den væsentligste forskel mellem Cloud 9 og CS50 62 00:03:17,140 --> 00:03:18,130 arbejdsområder. 63 00:03:18,130 --> 00:03:21,780 Der er også, i det underliggende Eksempelvis den primære ændring er 64 00:03:21,780 --> 00:03:25,350 at vi installere nogle præ-konfigurerede emner som GDB, 65 00:03:25,350 --> 00:03:29,530 og nogle andre grundlæggende ting, vi har oprettet, ligesom opdatering 50, 66 00:03:29,530 --> 00:03:33,310 og et par andre trin, der gør hele oplevelsen en lille smule mere 67 00:03:33,310 --> 00:03:34,550 forenet. 68 00:03:34,550 --> 00:03:38,520 Men generelt, dette er blot en ændring af et eksisterende system 69 00:03:38,520 --> 00:03:40,979 at Cloud 9 har skabt for os. 70 00:03:40,979 --> 00:03:42,770 Hvad vi vil viser lidt senere 71 00:03:42,770 --> 00:03:45,920 er, hvordan man rent faktisk at skabe en noget grundlæggende plug-in, 72 00:03:45,920 --> 00:03:49,461 tillader os at indsætte noget i menusystem, og åbne op for en dialog. 73 00:03:49,461 --> 00:03:51,210 Og hvis vi har nok tid, vil vi faktisk 74 00:03:51,210 --> 00:03:54,210 se, hvordan vi kan udfylde det dialog med nogle oplysninger 75 00:03:54,210 --> 00:03:56,089 fra den underliggende instans. 76 00:03:56,089 --> 00:03:58,880 For os at komme til at punkt, lad os først snakke lidt 77 00:03:58,880 --> 00:04:01,740 om arkitekturen i Cloud 9. 78 00:04:01,740 --> 00:04:05,290 >> Så den måde, som vi er vant at interagere med Cloud 9 79 00:04:05,290 --> 00:04:06,610 er helt igennem klienten. 80 00:04:06,610 --> 00:04:10,610 Vi åbner op en webbrowser, vi skriver i CS50.io. 81 00:04:10,610 --> 00:04:14,431 Vi til sidst, efter godkendelse, er præsenteret med IDE. 82 00:04:14,431 --> 00:04:16,180 Men indse, at der er et par skridt 83 00:04:16,180 --> 00:04:18,180 der rent faktisk får os til dette punkt. 84 00:04:18,180 --> 00:04:22,390 Den allerførste ting er, at min klient, webbrowseren, 85 00:04:22,390 --> 00:04:27,440 efter anmodning og efter godkendelse, indlæser GUI og plug-ins 86 00:04:27,440 --> 00:04:30,170 fra nogle CDN, fra nogle Content Delivery Network. 87 00:04:30,170 --> 00:04:32,700 Dette kan være ærligt overalt. 88 00:04:32,700 --> 00:04:35,390 >> Og det er faktisk adskilt fra den underliggende instans. 89 00:04:35,390 --> 00:04:38,890 Det er vigtigt at indse, at dette er faktisk bare en masse statiske filer. 90 00:04:38,890 --> 00:04:42,600 Det er en flok JavaScript der er hentet fra CDN 91 00:04:42,600 --> 00:04:45,200 på min webbrowser, og alle GUI, du 92 00:04:45,200 --> 00:04:48,460 se her-- det er virkelig key-- al den GUI, du ser her 93 00:04:48,460 --> 00:04:50,480 køres på klientsiden. 94 00:04:50,480 --> 00:04:53,820 Alt det, du ser i Cloud 9 arbejdsområde 95 00:04:53,820 --> 00:04:56,010 er faktisk køre i browseren. 96 00:04:56,010 --> 00:04:59,950 Og noget, du sender sammen med den underliggende instans 97 00:04:59,950 --> 00:05:04,000 kommunikeres med forekomst langs denne anden separat kanal, 98 00:05:04,000 --> 00:05:07,240 og gemmes derefter på at havnearbejder instans. 99 00:05:07,240 --> 00:05:09,660 >> Så grunden til at jeg siger dette er en havnearbejder instans 100 00:05:09,660 --> 00:05:12,650 er, at den underliggende teknologi ikke bruger virtuelle maskiner, 101 00:05:12,650 --> 00:05:16,040 men i stedet bruger en teknologi kaldet havnearbejder, 102 00:05:16,040 --> 00:05:20,200 som dybest set allows-- tættest analogi er en virtuel maskine. 103 00:05:20,200 --> 00:05:24,800 Men det er subtilt anderledes i, at der er 104 00:05:24,800 --> 00:05:28,900 masser af muligheder for at drive en kombination af forskellige havnearbejder 105 00:05:28,900 --> 00:05:30,760 forekomster på en enkelt maskine. 106 00:05:30,760 --> 00:05:34,660 Og de kan spindes op i meget hurtig rækkefølge. 107 00:05:34,660 --> 00:05:38,920 Det er ikke helt den mere streng differentiering 108 00:05:38,920 --> 00:05:42,840 mellem forskellige Docker instanser som der er i virtuelle maskiner, 109 00:05:42,840 --> 00:05:45,730 men der stadig er en masse differentiering og adskillelse 110 00:05:45,730 --> 00:05:48,330 mellem disse forskellige instanser. 111 00:05:48,330 --> 00:05:48,830 OKAY. 112 00:05:48,830 --> 00:05:50,980 Så de to trin her, er vigtigt at indse, 113 00:05:50,980 --> 00:05:57,370 er, at når vi går til CS50.io, vi er downloade GUI og plug-ins, 114 00:05:57,370 --> 00:06:01,640 der er skrevet i JavaScript, på til browseren eller til browseren. 115 00:06:01,640 --> 00:06:05,980 Og det er måske et par megabyte værd af oplysninger. 116 00:06:05,980 --> 00:06:09,460 På det tidspunkt, når GUI har indlæst og plug-ins er begyndt, 117 00:06:09,460 --> 00:06:12,530 derefter begynder den at kommunikere med den havnearbejder eksempel, som ikke 118 00:06:12,530 --> 00:06:15,210 nødvendigvis skal være den samme server. 119 00:06:15,210 --> 00:06:16,940 >> Nu er der en undtagelse til dette. 120 00:06:16,940 --> 00:06:22,130 Vi kan faktisk have både levering mekanisme til GUI selv 121 00:06:22,130 --> 00:06:25,740 og havnearbeider eksempel i alle af samme server, som 122 00:06:25,740 --> 00:06:29,660 er faktisk noget, vi gør til offline version af Cloud 9. 123 00:06:29,660 --> 00:06:33,470 Det er ikke noget, vi har publiceret meget dette efterår, 124 00:06:33,470 --> 00:06:35,930 men vi har også en offline version, 125 00:06:35,930 --> 00:06:40,010 giver dig mulighed for at downloade en pakket version af alle disse ting 126 00:06:40,010 --> 00:06:43,670 og giver dig mulighed for at køre Cloud 9 i en offline miljø. 127 00:06:43,670 --> 00:06:48,325 >> Flytning dette fra skyen og på din lokale maskine har en vis indflydelse. 128 00:06:48,325 --> 00:06:50,200 I særdeleshed, du ikke længere har evnen 129 00:06:50,200 --> 00:06:52,280 til at dele dit arbejdsområde med andre. 130 00:06:52,280 --> 00:06:58,630 Du behøver ikke længere kan åbne Cloud 9 fra, og CS50 IDE, fra enhver computer 131 00:06:58,630 --> 00:07:02,950 og se de samme filer, du arbejdede med før. 132 00:07:02,950 --> 00:07:06,310 Men i stedet virker det helt på din egen lokale maskine 133 00:07:06,310 --> 00:07:09,270 uden at behøve adgang til internettet. 134 00:07:09,270 --> 00:07:13,330 Men stadig, selv i denne model, selv selvom vi har en virtuel maskine 135 00:07:13,330 --> 00:07:15,200 som i det væsentlige kører disse ting. 136 00:07:15,200 --> 00:07:19,480 >> Vi har en separat server, der er levere væsentlige Cloud 9 137 00:07:19,480 --> 00:07:23,640 indhold, og så vi har en havnearbeider eksempel 138 00:07:23,640 --> 00:07:32,280 der er ansvarlig for at kommunikere med denne IDE til bagenden. 139 00:07:32,280 --> 00:07:32,780 OKAY. 140 00:07:32,780 --> 00:07:38,700 Så hele GUI skrives helt i JavaScript 141 00:07:38,700 --> 00:07:42,800 hjælp node.js og Cloud 9 SDK, som vi vil komme til på bare et minut. 142 00:07:42,800 --> 00:07:46,650 Og alle de plug-ins køres på klientsiden. 143 00:07:46,650 --> 00:07:51,780 Så lad os fokusere derefter en lidt ved at antage 144 00:07:51,780 --> 00:07:55,670 at dette første skridt har faktisk fuldført, 145 00:07:55,670 --> 00:07:58,990 og ser kun på dette havnearbejder instans. 146 00:07:58,990 --> 00:08:01,220 >> Så i dette tilfælde, er dette er den standard måde 147 00:08:01,220 --> 00:08:04,870 at tænke på at gøre Cloud 9 plug-in udvikling er, at du vil 148 00:08:04,870 --> 00:08:07,940 at skrive kode, der vil køres i brugerens browser, 149 00:08:07,940 --> 00:08:11,610 og du har mulighed for at ved hjælp af nogle API'er til at kommunikere 150 00:08:11,610 --> 00:08:16,470 med den underliggende havnearbeider eksempel køre noget kode der, og gøre noget 151 00:08:16,470 --> 00:08:18,860 som du måske ønsker at gøre. 152 00:08:18,860 --> 00:08:22,000 Så dette vil være sammenhæng, at vi vil 153 00:08:22,000 --> 00:08:24,340 skal bruge i resten af ​​denne snak. 154 00:08:24,340 --> 00:08:26,400 Og bare holde denne model i tankerne. 155 00:08:26,400 --> 00:08:28,966 Det vil være meget vigtigt på blot et par minutter. 156 00:08:28,966 --> 00:08:30,840 Der er et par links Jeg vil vise dig. 157 00:08:30,840 --> 00:08:34,150 Først og fremmest har Cloud 9 forudsat en hel del dokumentation 158 00:08:34,150 --> 00:08:38,740 Det er temmelig godt, der viser, hvordan til at gøre grundlæggende plug-in udvikling. 159 00:08:38,740 --> 00:08:43,320 Så hvis du går til denne URL, cloud9-sdk.readme.io, 160 00:08:43,320 --> 00:08:45,261 vil du se dokumentationen der. 161 00:08:45,261 --> 00:08:47,510 Og en masse af disse oplysninger at du er ved at se 162 00:08:47,510 --> 00:08:50,310 kan også findes der, plus mere. 163 00:08:50,310 --> 00:08:55,880 Du kan også finde open source version af Cloud 9 på denne webadresse, 164 00:08:55,880 --> 00:09:04,270 github.com/c9/core, som vi bruger som en del af offline-versionen af ​​IDE, 165 00:09:04,270 --> 00:09:07,540 så du vil være i stand til at have den samme Cloud 9 erfaring, 166 00:09:07,540 --> 00:09:09,660 men i en offline måde. 167 00:09:09,660 --> 00:09:10,160 Okay. 168 00:09:10,160 --> 00:09:15,560 Så lad os tage et kig på en faktiske Cloud 9 arbejdsområde her. 169 00:09:15,560 --> 00:09:17,880 Og igen, jeg ønsker at pege ud et par ting. 170 00:09:17,880 --> 00:09:21,560 Det er, lige her, en normal CS50 IDE. 171 00:09:21,560 --> 00:09:26,830 Og jeg har deaktiveret en mindre behagelig tilstand under menuen Vis 172 00:09:26,830 --> 00:09:28,807 så jeg kan se alle af menupunkterne. 173 00:09:28,807 --> 00:09:31,140 Hvad jeg vil vise dig lige nu er et par ting. 174 00:09:31,140 --> 00:09:33,140 First off, hvis jeg går ind de indstillinger og derefter 175 00:09:33,140 --> 00:09:37,040 klik på Plug-in manager, og skriv CS50 her, 176 00:09:37,040 --> 00:09:40,590 Vi kan se, at der er i virkeligheden, et par CS50 plug-ins, 177 00:09:40,590 --> 00:09:46,280 blev installeret og vores kører til aktivere de ændringer, som vi har 178 00:09:46,280 --> 00:09:48,670 set til CS50 IDE. 179 00:09:48,670 --> 00:09:51,450 >> Lige nu er der væsentlige to plug-ins, der kører. 180 00:09:51,450 --> 00:09:54,980 Der er en kaldet Simple, som er den forenklede tilstand, 181 00:09:54,980 --> 00:10:00,020 giver dig mulighed for at reducere antallet af menupunkter langs toppen, 182 00:10:00,020 --> 00:10:03,070 og har denne såkaldte mindre behagelig tilstand. 183 00:10:03,070 --> 00:10:07,280 Og så er der også CS50 Stats, som er måske kun lidt misvisende. 184 00:10:07,280 --> 00:10:09,550 Fordi det er det, viser dig de oplysninger 185 00:10:09,550 --> 00:10:10,850 om den underliggende arbejdsområde. 186 00:10:10,850 --> 00:10:13,560 Det tilfører disse knapper langs øverst til højre. 187 00:10:13,560 --> 00:10:18,620 Det tilfører også et menupunkt i vindue element, ind i menuen Vindue 188 00:10:18,620 --> 00:10:21,730 lige her, CS50 IDE Info. 189 00:10:21,730 --> 00:10:27,380 Og det er ansvarlig for at instantiere denne dialog, som vi har set her, 190 00:10:27,380 --> 00:10:31,460 med alle de oplysninger, vi er vant til at se i en CS50 IDE 191 00:10:31,460 --> 00:10:32,870 arbejdsområde. 192 00:10:32,870 --> 00:10:33,370 OKAY. 193 00:10:33,370 --> 00:10:36,910 Så der er faktisk en mere plug-in at vi har udviklet så godt. 194 00:10:36,910 --> 00:10:40,110 Og der er et par andre, Vi har heller ikke offentligt frigivet. 195 00:10:40,110 --> 00:10:45,880 Men en af ​​dem er den overordnede plug-in som gør det muligt GDB til at fungere. 196 00:10:45,880 --> 00:10:50,190 Så en af ​​de aspekter af Cloud 9 er, at de har givet allerede 197 00:10:50,190 --> 00:10:53,210 dette GUI at gennemføre en debugger. 198 00:10:53,210 --> 00:10:57,360 Og en af ​​de plug-ins, vi har skabt stort set 199 00:10:57,360 --> 00:11:02,380 kroge GDB med GUI baseret version af en debugger. 200 00:11:02,380 --> 00:11:07,680 Og er ansvarlig for at mediere alle af anmodningerne, som en bruger måtte have, 201 00:11:07,680 --> 00:11:10,310 mellem at træde over eller skabe breakpoints eller noget 202 00:11:10,310 --> 00:11:15,390 langs disse linjer, at oversætte det til kommandoer, GDB kan forstå, 203 00:11:15,390 --> 00:11:16,920 udstede disse kommandoer til GDB. 204 00:11:16,920 --> 00:11:19,260 Og så snart GDB udsteder en reaktion, så 205 00:11:19,260 --> 00:11:23,250 vi fortolker det, og opdatere GUI som nødvendigt. 206 00:11:23,250 --> 00:11:25,130 >> Det er sandsynligvis en af de mere komplicerede 207 00:11:25,130 --> 00:11:28,840 af de plug-ins, så i stedet, hvad vi er vil fokusere på i dag, er i virkeligheden 208 00:11:28,840 --> 00:11:34,590 de Stats plug-in, og vi vil tale en lille smule om Enkel, så godt. 209 00:11:34,590 --> 00:11:39,100 Så jeg nævnte før, og jeg virkelig ønsker at gøre meget, meget klart, det igen, 210 00:11:39,100 --> 00:11:41,600 alt dette, at vi er se her er i det væsentlige 211 00:11:41,600 --> 00:11:43,300 opererer på klientsiden. 212 00:11:43,300 --> 00:11:45,810 Vi kan se et terminalvindue nedenfor, og det er naturligvis, 213 00:11:45,810 --> 00:11:49,230 hvis vi skriver i kommandoer ind at der vil blive udstedt derefter 214 00:11:49,230 --> 00:11:50,690 til den underliggende instans. 215 00:11:50,690 --> 00:11:55,280 Tilsvarende, hvis vi åbner en ny fil og skrive nogle ting i det og gemme det, 216 00:11:55,280 --> 00:11:58,240 denne fil vil blive gemt på den underliggende instans. 217 00:11:58,240 --> 00:12:02,310 >> Men redaktøren selv, dette terminalvindue selv, 218 00:12:02,310 --> 00:12:05,700 er alle gennemført i JavaScript og er alle en plug-in 219 00:12:05,700 --> 00:12:09,800 at vi kan interagere med, og dermed ændre. 220 00:12:09,800 --> 00:12:11,450 Der er en masse udvidelsesmuligheder her. 221 00:12:11,450 --> 00:12:14,690 Jeg anbefaler at tage et kig på Cloud 9 s GitHub konto 222 00:12:14,690 --> 00:12:17,790 at se den enorme mængde plug-ins, der er tilgængelige, 223 00:12:17,790 --> 00:12:23,070 og hvor godt skrevet en masse af koden er for udvidelsesmuligheder. 224 00:12:23,070 --> 00:12:24,920 Så der er noget at jeg ønsker at nævne 225 00:12:24,920 --> 00:12:30,480 om det så godt, som er at der er en masse of-- der er 226 00:12:30,480 --> 00:12:33,450 en masse funktionalitet, der er forudsat i præferencer 227 00:12:33,450 --> 00:12:37,970 vindue, som vi har set lige hentydet til blot et par minutter siden. 228 00:12:37,970 --> 00:12:43,690 >> En af de ting, vi kan gøre som IDE udviklere, eller som Cloud 9 udviklere, 229 00:12:43,690 --> 00:12:47,410 er rent faktisk at injicere nogle præference paneler af vores egne. 230 00:12:47,410 --> 00:12:50,660 Så den enkle tilstand eller Den mindre behagelig tilstand, 231 00:12:50,660 --> 00:12:54,780 og også IDE oplysninger eller statistik plug-in, 232 00:12:54,780 --> 00:12:58,560 har hver nogle præference paneler, der tillader os at ændre 233 00:12:58,560 --> 00:13:00,620 adfærd for hver af dem. 234 00:13:00,620 --> 00:13:04,140 Du vil opdage, at hvis jeg går til Indstillinger og gå til Brugerindstillinger, 235 00:13:04,140 --> 00:13:07,100 der er en fane CS50, en der siger IDE oplysninger. 236 00:13:07,100 --> 00:13:09,810 Og jeg kan ændre oplysninger opdateringshastighed. 237 00:13:09,810 --> 00:13:12,250 >> Effektivt, hvad der sker i statistik plug-in 238 00:13:12,250 --> 00:13:16,690 er, at hvert n-sekund, hvor n-sekunder er defineret af denne præference 239 00:13:16,690 --> 00:13:22,250 panel, er oplysningerne bliver hentet fra den underliggende eksempel sendes 240 00:13:22,250 --> 00:13:25,490 tilbage til klientsiden, plug-in er så 241 00:13:25,490 --> 00:13:28,650 fortolkning af oplysninger fra den underliggende instans 242 00:13:28,650 --> 00:13:31,470 og opdatering af GUI som nødvendigt. 243 00:13:31,470 --> 00:13:34,710 Vi kan se, at lige nu dette er indstillet til 30 sekunder, og det er standard. 244 00:13:34,710 --> 00:13:37,950 Men jeg kan helt sikkert ændre hvor hurtigt det sker bare 245 00:13:37,950 --> 00:13:40,520 ved at ændre denne værdi. 246 00:13:40,520 --> 00:13:44,330 >> Nu er en af ​​de interessante ting er, at denne præference panel, GUI, 247 00:13:44,330 --> 00:13:49,560 er egentlig bare en GUI-version af et parti underliggende indstillinger 248 00:13:49,560 --> 00:13:52,220 der er præsenteret i JSON. 249 00:13:52,220 --> 00:13:56,336 Så hvis jeg går, for eksempel under den CS50 IDE-menuen, eller Cloud 9 menuen 250 00:13:56,336 --> 00:13:58,210 afhængigt af hvilken version, du kigger på, 251 00:13:58,210 --> 00:14:00,460 og gå til en af ​​disse settings-- i denne sag, 252 00:14:00,460 --> 00:14:03,420 projektet settings-- den projektets indstillinger i denne sag 253 00:14:03,420 --> 00:14:07,740 gælder for alle indstillinger for denne ene arbejdsområde. 254 00:14:07,740 --> 00:14:11,620 Ud fra følgende betragtninger brugerindstillinger gælder til alle de arbejdsområder 255 00:14:11,620 --> 00:14:15,110 at du kan have i din konto. 256 00:14:15,110 --> 00:14:18,520 >> Så lige som en sidebemærkning her, at være ekstra klar, 257 00:14:18,520 --> 00:14:22,570 der er en adskillelse mellem to, fordi selvom som standard, vi 258 00:14:22,570 --> 00:14:26,490 har en arbejdsplads, som er CS50 IDE, hvis du 259 00:14:26,490 --> 00:14:31,900 var til at klikke på din lille avatar op her og gå til instrumentbrættet, 260 00:14:31,900 --> 00:14:35,820 du opdage, at du rent faktisk kan skabe yderligere arbejdsområder så godt. 261 00:14:35,820 --> 00:14:39,140 Du kan se her, at jeg har en IDE 50 arbejdsområde, og også 262 00:14:39,140 --> 00:14:41,930 med henblik på dette seminar, et arbejdsområde 263 00:14:41,930 --> 00:14:45,084 kaldet arbejdsområde, som er lige her. 264 00:14:45,084 --> 00:14:46,750 Så alligevel, jeg har forskellige præferencer. 265 00:14:46,750 --> 00:14:49,910 Hver af disse kan have særskilt projekt præferencer, 266 00:14:49,910 --> 00:14:54,091 men brugerindstillinger er deles blandt alle mine arbejdsområder. 267 00:14:54,091 --> 00:14:55,840 Af den måde, det er også meget praktisk, hvis du 268 00:14:55,840 --> 00:14:59,080 ønsker at skabe et arbejdsområde med forskellige muligheder for tilpasning. 269 00:14:59,080 --> 00:15:01,640 Og det er meget praktisk at oprette en ny arbejdsplads. 270 00:15:01,640 --> 00:15:04,230 Og vælge en, der kunne være forudkonfigureret på anden måde, 271 00:15:04,230 --> 00:15:07,000 måske for PHP specifikt eller Django specifikt. 272 00:15:07,000 --> 00:15:08,960 Eller bare skik. 273 00:15:08,960 --> 00:15:11,320 Den CS50 arbejdsområde Skabelonen er den, vi 274 00:15:11,320 --> 00:15:15,420 bruge det automatisk installerer Opdatering 50 og alle indstillingerne 275 00:15:15,420 --> 00:15:20,531 at vi har der, herunder alle plug-ins, som vi har for CS50 IDE. 276 00:15:20,531 --> 00:15:21,030 OKAY. 277 00:15:21,030 --> 00:15:22,200 Men lad os vende tilbage til dette. 278 00:15:22,200 --> 00:15:25,640 Så igen, der er projekter indstillinger, og det er dem 279 00:15:25,640 --> 00:15:27,140 at vi ser på her. 280 00:15:27,140 --> 00:15:29,056 Og bemærk, at der er en flok indstillinger, 281 00:15:29,056 --> 00:15:32,720 mange af dem svarer til præference paneler, men ikke dem alle. 282 00:15:32,720 --> 00:15:40,800 Men vi kan se, at her, i denne-- åh nej, jeg sætter det i brugerindstillingerne? 283 00:15:40,800 --> 00:15:43,280 Måske jeg sætte det i brugerindstillingerne. 284 00:15:43,280 --> 00:15:45,480 Og det, her går vi. 285 00:15:45,480 --> 00:15:49,840 I brugerindstillingerne, vi kan se, at vi har en CS50 sektion, 286 00:15:49,840 --> 00:15:53,762 og dette skrives til disse Cloud 9 plug-ins 287 00:15:53,762 --> 00:15:54,720 at vi har implementeret. 288 00:15:54,720 --> 00:15:57,400 Der er den enkle at svarer til denne enkle plug-in, 289 00:15:57,400 --> 00:16:00,930 og statistik en som svarer til GUI baseret 290 00:16:00,930 --> 00:16:02,440 version af præference panelet. 291 00:16:02,440 --> 00:16:05,740 Opdateringshastigheden, i dette tilfælde er sat til 20 sekunder. 292 00:16:05,740 --> 00:16:09,740 >> Det er alt forhåbentlig den begyndelse af nogle oplysninger 293 00:16:09,740 --> 00:16:14,420 at vi faktisk vil se i en lille lidt flere detaljer, momentant. 294 00:16:14,420 --> 00:16:14,920 OKAY. 295 00:16:14,920 --> 00:16:17,520 Så lad os sige, vi ønsker at faktisk komme ned til det. 296 00:16:17,520 --> 00:16:20,600 Vi forstår, at alle de ting der sker på klientsiden 297 00:16:20,600 --> 00:16:24,560 sker faktisk på browseren, som betyder, at eventuelle plug-ins, som jeg skriver 298 00:16:24,560 --> 00:16:27,990 kommer til at blive skrevet med browseren i tankerne. 299 00:16:27,990 --> 00:16:30,830 Og hvis jeg rent faktisk ønsker at gøre noget på arbejdsområdet, 300 00:16:30,830 --> 00:16:33,360 Jeg vil måske nødt til at indlede en slags kommunikation 301 00:16:33,360 --> 00:16:35,970 mellem browseren og arbejdsområdet for at være sikker 302 00:16:35,970 --> 00:16:38,212 at der faktisk opnås. 303 00:16:38,212 --> 00:16:40,170 Men lad os sige, at nu Jeg ønsker at komme ned til det 304 00:16:40,170 --> 00:16:43,440 og faktisk oprette min første plug-in. 305 00:16:43,440 --> 00:16:48,970 Nå, den måde, du ville være i stand at gøre det er faktisk temmelig nemt. 306 00:16:48,970 --> 00:16:51,370 Det har givet i Cloud 9 SDK. 307 00:16:51,370 --> 00:16:55,520 Men det er at tage din eksisterende arbejdsområde navn, som 308 00:16:55,520 --> 00:16:59,810 er den webadresse, som du har i toppen af din bar, og tilføje følgende til det. 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 Nu, hvad det kommer til at gøre det muligt er at SDK = vil 1 faktisk indstillet SDK 313 00:17:08,260 --> 00:17:11,430 tilstand til sand, hvilket vil gøre det muligt et par ekstra ting. 314 00:17:11,430 --> 00:17:15,770 Og debug = 2 vil give fejlmeddelelser at være en lille smule mere detaljeret. 315 00:17:15,770 --> 00:17:20,170 >> Og så hvis du opdrage JavaScript konsol i din Chrome fanen udvikler, 316 00:17:20,170 --> 00:17:22,829 du rent faktisk vil være i stand til se meget mere information 317 00:17:22,829 --> 00:17:24,349 end du ellers ville. 318 00:17:24,349 --> 00:17:28,310 Så jeg anbefaler at dreje begge disse på samme tid, fordi det virkelig 319 00:17:28,310 --> 00:17:31,170 er nyttigt at have alt dette yderligere information. 320 00:17:31,170 --> 00:17:35,330 Det er vigtigt at bemærke, at tænde debug til værdien af ​​2 321 00:17:35,330 --> 00:17:38,120 betyder, at det er meget verbose, og det faktisk 322 00:17:38,120 --> 00:17:42,590 vil noget mærkbart langsommere din IDE, især når lastning 323 00:17:42,590 --> 00:17:45,657 eller når gør laver tunge opgaver. 324 00:17:45,657 --> 00:17:46,740 Så bare holde det i tankerne. 325 00:17:46,740 --> 00:17:51,500 Det er nyttigt for udvikling, men du måske ikke ønsker at have den på hele tiden. 326 00:17:51,500 --> 00:17:53,080 >> Så lad os rent faktisk gør det. 327 00:17:53,080 --> 00:17:59,374 Men i dette tilfælde, jeg har faktisk allerede oprettet et arbejdsområde med dette. 328 00:17:59,374 --> 00:18:00,540 Så lad os se, SDK = 1 & debug = 2. 329 00:18:00,540 --> 00:18:03,140 330 00:18:03,140 --> 00:18:07,770 Med et par plugins forhåbentlig allerede installeret. 331 00:18:07,770 --> 00:18:08,340 Okay. 332 00:18:08,340 --> 00:18:15,050 Så nu, at jeg har slået SDK debug tilstand, bemærke, at vi er i debug-mode, 333 00:18:15,050 --> 00:18:20,430 så vi kan se på de dev værktøjer til at se eventuelle fejl, som jeg vil gøre Offscreen. 334 00:18:20,430 --> 00:18:23,110 Vi kan se, at der er en flok af fejl her. 335 00:18:23,110 --> 00:18:28,090 Nu er det faktisk temmelig almindeligt for Cloud 9 at have et par fejl, 336 00:18:28,090 --> 00:18:30,680 og jeg ville ikke bekymre dig om dem, indtil du 337 00:18:30,680 --> 00:18:32,930 se noget, der kan være specifikke for plug-in 338 00:18:32,930 --> 00:18:34,510 at du tilfældigvis være at skabe. 339 00:18:34,510 --> 00:18:37,620 >> Så her, for eksempel, får vi et par 404s-- ikke fundet. 340 00:18:37,620 --> 00:18:42,910 Vi ser, vi er i stand til at indlæse nogle informationer fra den underliggende instans 341 00:18:42,910 --> 00:18:43,670 selv. 342 00:18:43,670 --> 00:18:46,545 Og der er en masse ekstra oplysninger, men det meste af dette er vi 343 00:18:46,545 --> 00:18:47,970 faktisk går til at ignorere for nu. 344 00:18:47,970 --> 00:18:50,130 Da dette er temmelig fælles for et arbejdsområde 345 00:18:50,130 --> 00:18:53,200 at have bare et par fejl. 346 00:18:53,200 --> 00:18:53,700 OKAY. 347 00:18:53,700 --> 00:18:56,680 Jeg har tænkt mig at flytte det ud af vejen og komme tilbage her. 348 00:18:56,680 --> 00:19:01,860 Og nu er den nemme måde, den pæne ting om at have denne udvikler 349 00:19:01,860 --> 00:19:07,330 tilstand aktiveret, er, at det giver mig mulighed til nemt at oprette en ny plug-in. 350 00:19:07,330 --> 00:19:12,390 >> Så mens før jeg rent faktisk gjorde ikke har denne nye plug-in-mulighed til rådighed, 351 00:19:12,390 --> 00:19:16,460 som vi kan se, om jeg går tilbage til min ikke udviklertilstand herovre, 352 00:19:16,460 --> 00:19:18,510 der er ingen nye plug-in. 353 00:19:18,510 --> 00:19:23,220 Ved at aktivere SDK-tilstand, jeg har en ny plug-in til rådighed 354 00:19:23,220 --> 00:19:25,660 og jeg kan nemt oprette en. 355 00:19:25,660 --> 00:19:28,160 I dette tilfælde, er der et par af forskellige muligheder, enkle, 356 00:19:28,160 --> 00:19:30,850 en tom plug-in, en fuld plug-in, installatør, Cloud 9 bundt. 357 00:19:30,850 --> 00:19:33,030 Lad os bare vælge en tomme plug-in til nu 358 00:19:33,030 --> 00:19:37,670 så vi kan se en meget simpel version af en. 359 00:19:37,670 --> 00:19:41,520 >> Nu mærke til, at langs venstre side, der er der nu 360 00:19:41,520 --> 00:19:45,080 noget under Foretrukne, som er notering et par plug-ins 361 00:19:45,080 --> 00:19:47,020 der er nu tilgængelige for mig. 362 00:19:47,020 --> 00:19:50,420 Hvis jeg udvide denne, vil vi kunne se dem. 363 00:19:50,420 --> 00:19:52,730 Nu jeg vil have dig til at lægge mærke til noget her, som 364 00:19:52,730 --> 00:19:58,260 er, at dette ikke er faktisk indeholdt inden arbejdsområdet biblioteket 365 00:19:58,260 --> 00:20:03,190 på min underliggende Ubuntu eksempel, men den er indeholdt på harddisken. 366 00:20:03,190 --> 00:20:06,330 Og hvor det er placeret, fordi dette er meget nyttigt at vide, 367 00:20:06,330 --> 00:20:09,570 især hvis du kommer til at gøre noget med Git, 368 00:20:09,570 --> 00:20:16,870 hvor det er placeret er i en .c9 mappe / plugins. 369 00:20:16,870 --> 00:20:21,110 Så hvis jeg går der, kan vi se, at nu listen over plug-ins, der er her 370 00:20:21,110 --> 00:20:26,390 matcher listen plug-ins, som jeg så på den venstre side af mit arbejdsområde. 371 00:20:26,390 --> 00:20:28,610 >> Nu som standard, og dette er lidt mærkeligt, 372 00:20:28,610 --> 00:20:31,760 som standard, når jeg opretter en nye plug-in i et arbejdsområde, 373 00:20:31,760 --> 00:20:36,620 det skaber denne plug-in, ved standard har et navn på en understregning. 374 00:20:36,620 --> 00:20:39,760 Generelt, der kan forårsage nogle problemer. 375 00:20:39,760 --> 00:20:42,340 Så meget næste trin at jeg normalt udfører 376 00:20:42,340 --> 00:20:45,880 er bare at fjerne den særlige plug-in 377 00:20:45,880 --> 00:20:52,810 og lade kun den simple plug-in, var der i starten, plugin.simple. 378 00:20:52,810 --> 00:20:55,430 Og det er den eneste, der er der. 379 00:20:55,430 --> 00:20:55,930 OKAY. 380 00:20:55,930 --> 00:20:58,380 >> Så hvad betyder det egentlig ud? 381 00:20:58,380 --> 00:21:01,210 Nå, det er, igen, en JavaScript-pakke 382 00:21:01,210 --> 00:21:05,220 der omfatter nogle filer, herunder en plugin.js fil, hvor 383 00:21:05,220 --> 00:21:07,700 hovedindholdet af min plug-in er placeret, 384 00:21:07,700 --> 00:21:10,590 en package.json fil, som faktisk angiver 385 00:21:10,590 --> 00:21:13,760 nogle metadata om denne plug-in, såsom hvem forfatteren er, 386 00:21:13,760 --> 00:21:19,240 yderligere oplysninger om det, et beskrivelse af plug-in, og så videre. 387 00:21:19,240 --> 00:21:22,190 Og også som standard, det skaber en tom README-fil, 388 00:21:22,190 --> 00:21:26,100 og en tom testfil for dig at skabe nogle yderligere dokumentation, 389 00:21:26,100 --> 00:21:29,430 og en test sele, hvis du gerne vil gøre det. 390 00:21:29,430 --> 00:21:34,160 >> Så lad os bare tage et kig først på, meget hurtigt, på package.json fil. 391 00:21:34,160 --> 00:21:38,240 Det er let nok at bare gå igennem det og udfylde de områder af dette 392 00:21:38,240 --> 00:21:42,510 at du ønsker at udfylde, ligesom give det et navn, giver en beskrivelse, 393 00:21:42,510 --> 00:21:45,010 gentage versionsnummeret alle så ofte, giver 394 00:21:45,010 --> 00:21:47,570 en forfatter for hver person, der bidrager, 395 00:21:47,570 --> 00:21:53,000 tilføje dem til bidragyderne sektionen, og resten af ​​det du 396 00:21:53,000 --> 00:21:56,390 kan temmelig meget bare forlade som det er for nu. 397 00:21:56,390 --> 00:21:58,490 >> Der er én ting, der er vigtigt at bemærke, 398 00:21:58,490 --> 00:22:04,990 at under plug-ins sektion, der er en nøgle kaldet plug-in. 399 00:22:04,990 --> 00:22:11,800 Og det er tilpasset til navnet JavaScript fil kaldet plugin.js. 400 00:22:11,800 --> 00:22:18,290 Så dette er, hvordan Cloud 9 ved, når det læser denne package.json fil, som 401 00:22:18,290 --> 00:22:20,720 af js filer til rent faktisk at indlæse. 402 00:22:20,720 --> 00:22:25,440 Hvis jeg oprette yderligere js filer eller ønsker at omdøbe at js fil fra plug-in, 403 00:22:25,440 --> 00:22:30,380 Jeg har også nødt til at ændre det i package.json filen. 404 00:22:30,380 --> 00:22:33,660 >> Eventuelle spørgsmål fra publikum? 405 00:22:33,660 --> 00:22:34,160 Ingen. 406 00:22:34,160 --> 00:22:38,100 At en person, der er efter sammen med mig indtil videre. 407 00:22:38,100 --> 00:22:38,760 >> OKAY. 408 00:22:38,760 --> 00:22:42,300 Så jeg faktisk har skabt en par plug-ins, der allerede, 409 00:22:42,300 --> 00:22:44,100 Jeg tror, ​​i dette arbejdsområde. 410 00:22:44,100 --> 00:22:53,800 Så lad os komme af med nogle af disse, tilføj sdk = 1 & debug = 2, genindlæse denne arbejdsområde, 411 00:22:53,800 --> 00:22:58,780 og lad os se om vi har disse plug-ins nu. 412 00:22:58,780 --> 00:23:01,430 C9 / plugins. 413 00:23:01,430 --> 00:23:01,930 Nu sker det. 414 00:23:01,930 --> 00:23:06,910 Vi kan se nu i mine C9 / plugins i denne en, har vi plugin.1 og plugin.2. 415 00:23:06,910 --> 00:23:15,260 Så vi kommer til at bare optrappe til-- blot øge mængden af ​​vanskeligheder 416 00:23:15,260 --> 00:23:16,660 i hver af disse plug-ins. 417 00:23:16,660 --> 00:23:20,140 Men her, hvis jeg opretter en ny plug-in, Jeg kan tilføje det til mine favoritter. 418 00:23:20,140 --> 00:23:25,560 Og jeg vil bare slette dem fra det underliggende filsystem. 419 00:23:25,560 --> 00:23:28,050 >> Lad os fjerne det. 420 00:23:28,050 --> 00:23:33,206 Nu, hvis jeg åbner min første plug-in, og åbne plugin.js, 421 00:23:33,206 --> 00:23:39,980 vi kan se her den underliggende simpel version af en plug-in. 422 00:23:39,980 --> 00:23:42,170 Lad mig faktisk gå tilbage til denne anden arbejdsrum 423 00:23:42,170 --> 00:23:47,160 fordi du kan i det mindste, her ser, hvad en tom plug-in faktisk ser ud. 424 00:23:47,160 --> 00:23:51,810 Så under kølerhjelmen, det ser meget lig teknologi kaldet, 425 00:23:51,810 --> 00:23:53,780 Jeg synes, det er RequireJS. 426 00:23:53,780 --> 00:23:56,000 Bemærk at dette ikke er tilfældet virkelig se, måske, 427 00:23:56,000 --> 00:23:59,150 det samme som en anden JavaScript filer, som vi måske har set. 428 00:23:59,150 --> 00:24:04,250 Men i stedet, er der et par bare grundlæggende linjer, at det faktisk har. 429 00:24:04,250 --> 00:24:06,900 >> Alt det her er første fortolket af IDE, 430 00:24:06,900 --> 00:24:09,940 men det er faktisk ikke løbe frem specificeret. 431 00:24:09,940 --> 00:24:13,610 Og jeg vil fortælle dig om, når der faktisk betyder på blot et øjeblik. 432 00:24:13,610 --> 00:24:17,840 Men se, at her er der en main.consumes linje på linje 2, 433 00:24:17,840 --> 00:24:23,270 og dette viser alle de plug-ins at denne plug-in er afhængig af. 434 00:24:23,270 --> 00:24:27,150 Så som standard, vi måske ikke at have eventuelle afhængighed af andre plug-ins, 435 00:24:27,150 --> 00:24:30,530 men når vi faktisk har brug for at afhængige af funktioner, der leveres 436 00:24:30,530 --> 00:24:34,900 af andre plug-ins i IDE, vi nødt til at nævne disse plug-ins 437 00:24:34,900 --> 00:24:36,890 i main.consumes linje. 438 00:24:36,890 --> 00:24:39,230 Og så er vi nødt til at knytte dem til koden 439 00:24:39,230 --> 00:24:42,860 nedenfor, som jeg vil vise dig på bare et øjeblik om, hvordan vi kan gøre det. 440 00:24:42,860 --> 00:24:46,100 >> Main.provides giver en navn til denne plug-in 441 00:24:46,100 --> 00:24:49,190 at andre plug-ins kunne brug i deres forbruger linje. 442 00:24:49,190 --> 00:24:52,480 Så i dette tilfælde, min plug-in er netop sat der som standard, 443 00:24:52,480 --> 00:24:55,820 og vi bør ændre det til at være gældende for vores egen plug-in, 444 00:24:55,820 --> 00:24:57,540 som vi vil se på bare øjeblik. 445 00:24:57,540 --> 00:25:01,230 Nu her i funktionen vigtigste, denne funktion vigtigste 446 00:25:01,230 --> 00:25:05,630 er faktisk køre og fortolkes, men det gør faktisk ikke gøre meget. 447 00:25:05,630 --> 00:25:08,970 Det bare bliver alt sat op, men det gør faktisk ikke starte plug-in, 448 00:25:08,970 --> 00:25:11,220 trods hvad navnet lyder. 449 00:25:11,220 --> 00:25:14,690 Det sker der egentlig gennem en sekvens af metoder, 450 00:25:14,690 --> 00:25:16,820 er indeholdt i hele dette plug-in. 451 00:25:16,820 --> 00:25:20,830 >> Så hvis jeg rulle ned, kan vi se at vi har en livscyklus, hvor 452 00:25:20,830 --> 00:25:25,100 på nogle begivenhed kaldet belastning, eller nogle begivenhed kaldet unload, 453 00:25:25,100 --> 00:25:26,940 nogle arrangementer rent faktisk sker. 454 00:25:26,940 --> 00:25:33,500 Det er virkelig i her, hvor som plug-in begynder at disse metoder kaldes. 455 00:25:33,500 --> 00:25:37,240 Så lad os være lidt mere konkret om dette og se på et eksempel. 456 00:25:37,240 --> 00:25:41,010 Så her for plugin.1, hvad vi grundlæggende vil gøre 457 00:25:41,010 --> 00:25:46,010 er at skabe et menupunkt kaldet CS50 Seminar Dialog 1-- 458 00:25:46,010 --> 00:25:48,070 fordi vi har to af them-- og vi vil 459 00:25:48,070 --> 00:25:50,300 at injicere det i menuen Vindue. 460 00:25:50,300 --> 00:25:54,590 Og når vi klikker på det, vi er kommer til at åbne op for en dialog, 461 00:25:54,590 --> 00:25:56,290 viser os nogle meget grundlæggende oplysninger. 462 00:25:56,290 --> 00:25:58,050 >> I dette tilfælde blot en Hej verden. 463 00:25:58,050 --> 00:26:01,880 Så det er en meget simpel hej dialog verden 464 00:26:01,880 --> 00:26:05,260 at vi kan implementere som en plug-in i Cloud 9. 465 00:26:05,260 --> 00:26:07,960 Så lad os se, hvordan det rent faktisk ser ud. 466 00:26:07,960 --> 00:26:12,730 Vi vil gå gennem det, bare relativt hurtigt, så vi 467 00:26:12,730 --> 00:26:15,580 kan se på næste plug-in så godt. 468 00:26:15,580 --> 00:26:19,510 Bemærk, at her er vi forbrugende en række plug-ins. 469 00:26:19,510 --> 00:26:26,080 Vi indtager en dialog plug-in, kommandoer, menuer, og UI. 470 00:26:26,080 --> 00:26:30,440 Ligner jeg faktisk er tidskrævende dialog to gange, så jeg kan fjerne det. 471 00:26:30,440 --> 00:26:32,560 >> Og bemærk, at den måde, at jeg forbinder dem, 472 00:26:32,560 --> 00:26:37,940 dette er slags metadata, der fortæller plug-in system, hvilke krav 473 00:26:37,940 --> 00:26:41,480 faktisk er nødvendige for denne plug-in for at indlæse. 474 00:26:41,480 --> 00:26:46,400 Det er også vigtigt at bemærke, den rækkefølge, plug-ins er indlæst 475 00:26:46,400 --> 00:26:48,300 er ikke garanteret. 476 00:26:48,300 --> 00:26:53,400 Men hvad er garanteret, at hvis jeg angive nogle plug-in som et krav, 477 00:26:53,400 --> 00:26:56,900 at plug-in vil blive indlæst før denne er indlæst. 478 00:26:56,900 --> 00:27:00,390 >> Så det betyder, at hvis din plug-in kræver på nogle funktioner forudsat 479 00:27:00,390 --> 00:27:04,380 af noget andet i IDE, bør du være sikker på at dine plug-in-forbruger 480 00:27:04,380 --> 00:27:09,260 at plug-in, så afhængigheder er sikker på at oprette din plug-in, 481 00:27:09,260 --> 00:27:15,010 eller instantiere din plug-in, kun efter at der foreligger eksisterende rammer. 482 00:27:15,010 --> 00:27:18,870 Så her jeg har nævnt metadata til plug-in manager, 483 00:27:18,870 --> 00:27:20,990 som dem, jeg har tænkt mig at forbruge. 484 00:27:20,990 --> 00:27:24,910 Og i den vigtigste funktion her, Jeg har tænkt mig at tilslut derefter 485 00:27:24,910 --> 00:27:30,240 min kode til de importerede plug-ins. 486 00:27:30,240 --> 00:27:33,420 >> Så jeg vil blot skabe nogle variabler, 487 00:27:33,420 --> 00:27:36,620 matche navnene på hver af dem, så at jeg meget hurtigt kan referere dem 488 00:27:36,620 --> 00:27:37,840 hele min kode. 489 00:27:37,840 --> 00:27:41,840 Grunden til jeg importerer dialog er fordi jeg vil have min plug-in 490 00:27:41,840 --> 00:27:44,560 til at fungere som en dialog plug-in. 491 00:27:44,560 --> 00:27:49,320 Og den måde, at jeg er i stand til at gøre det er at, selvfølgelig, 492 00:27:49,320 --> 00:27:52,740 forbinde min kode til dialogen plug-in ved at importere det 493 00:27:52,740 --> 00:27:57,210 og derefter ved at specificere ved at skabe en ny dialog variabel 494 00:27:57,210 --> 00:28:00,460 og tilslutte den til at importerede plug-in. 495 00:28:00,460 --> 00:28:04,820 Og så ved at definere min plug-in som en ny dialog. 496 00:28:04,820 --> 00:28:07,650 >> Så i initialiseringen, jeg ønsker at definere min plug-in. 497 00:28:07,650 --> 00:28:10,440 Og denne variabel kaldet plug-in du vil se 498 00:28:10,440 --> 00:28:14,030 bliver bare brugt almindeligt hele Cloud 9 plug-ins. 499 00:28:14,030 --> 00:28:16,980 Jeg har tænkt mig at instantiere en ny dialog med nogle attributter, 500 00:28:16,980 --> 00:28:22,300 give den et bestemt navn, siger, at det er muligt for brugerne at lukke den. 501 00:28:22,300 --> 00:28:24,960 At det vil vise lidt x i øverste højre hjørne, 502 00:28:24,960 --> 00:28:27,529 eller lidt knap i nederste højre hjørne. 503 00:28:27,529 --> 00:28:30,570 Hvorvidt jeg kan vælge tekst fra det, hvad titlen på denne dialog 504 00:28:30,570 --> 00:28:32,400 ville være, og så videre. 505 00:28:32,400 --> 00:28:36,330 Nu er dette bare definerer dialogen, men det er endnu ikke viser det. 506 00:28:36,330 --> 00:28:40,780 Jeg faktisk nødt til at definere en handling for at blive vist. 507 00:28:40,780 --> 00:28:43,490 >> Og igen, jeg opfordre dig til at tage et kig på Cloud 9 SDK, 508 00:28:43,490 --> 00:28:46,930 fordi der er en række dialoger og de er virkelig veldokumenteret. 509 00:28:46,930 --> 00:28:50,500 Du kan se de forskellige typer at der er, og bruge dem 510 00:28:50,500 --> 00:28:55,380 uanset plug-in du har i tankerne. 511 00:28:55,380 --> 00:28:58,790 Nu er der kommer til at være en lastdel, og denne belastning 512 00:28:58,790 --> 00:29:03,390 funktion som du husker, er bruges af plug-in livscyklus 513 00:29:03,390 --> 00:29:07,060 faktisk instantiere alt og få alt klar til at gå. 514 00:29:07,060 --> 00:29:11,440 Nu når denne plug-in belastninger, det gør jeg ikke ønsker, at det straks vise en dialog, 515 00:29:11,440 --> 00:29:14,160 fordi dette plug-in vil indlæse sammen med resten af ​​IDE. 516 00:29:14,160 --> 00:29:17,850 Og når jeg indlæser, at IDE, jeg ønsker ikke dialogen til at dukke op automatisk. 517 00:29:17,850 --> 00:29:24,170 Jeg ønsker kun det at vise, når jeg klikker på menupunktet i mit vindue menupunkt 518 00:29:24,170 --> 00:29:26,760 at jeg vil tilføje til det øjeblik. 519 00:29:26,760 --> 00:29:29,480 >> Så der er to adskilte trin her, der er nødt til at ske. 520 00:29:29,480 --> 00:29:32,640 Jeg er nødt til at skabe en kommando, og kommandoen 521 00:29:32,640 --> 00:29:37,940 vil være ansvarlig for faktisk viser dialog om Cloud 9 IDE. 522 00:29:37,940 --> 00:29:42,670 Og så er jeg nødt til at tilslutte, jeg nødt til at oprette et nyt vindue i menuen 523 00:29:42,670 --> 00:29:46,070 element, der kører denne kommando. 524 00:29:46,070 --> 00:29:49,740 Så når jeg klikker på det vindue menupunkt, at kommandoen er derefter køre 525 00:29:49,740 --> 00:29:52,290 og derfor min dialog derefter vist. 526 00:29:52,290 --> 00:29:55,690 Og så det er faktisk en temmelig pæn måde at tænke over det. 527 00:29:55,690 --> 00:30:01,480 >> Fordi først kan jeg oprette en kommando hvis navn er CS50 Seminar Dialog 1, 528 00:30:01,480 --> 00:30:04,860 der giver nogle generelle kontekst for det. 529 00:30:04,860 --> 00:30:08,930 Og det vigtige bit her er at mærke til EXEC attribut, som 530 00:30:08,930 --> 00:30:15,160 opregner en funktion, som vil blive kaldt i min plug-in, når denne kommando køres. 531 00:30:15,160 --> 00:30:21,980 Så denne kommando er lidt ligesom en-- det er bare en vilkårlig Cloud 9 532 00:30:21,980 --> 00:30:25,780 kommando, der er til rådighed til enhver Cloud 9 plug-in. 533 00:30:25,780 --> 00:30:30,290 Men den aktuelle funktion, at det er vil kalde, når denne kommando køres 534 00:30:30,290 --> 00:30:35,010 er funktionen show dialog i min plugin.js fil. 535 00:30:35,010 --> 00:30:38,550 >> Og vi kan faktisk se disse plug-ins og listen 536 00:30:38,550 --> 00:30:45,480 kommandoer, der er tilgængelige for os i Indstillinger, rul hele vejen down-- 537 00:30:45,480 --> 00:30:48,180 lad os se, faktisk ser vi det nu? 538 00:30:48,180 --> 00:30:53,180 Plug-in manager, nej, jeg tror jeg-- det er absolut her omkring et eller andet sted. 539 00:30:53,180 --> 00:31:00,016 Tja, der er en liste over kommandoer et eller andet sted, men jeg må have, 540 00:31:00,016 --> 00:31:01,140 Jeg har glemt, hvor det er. 541 00:31:01,140 --> 00:31:02,430 Så OK, vil vi gå videre. 542 00:31:02,430 --> 00:31:02,930 Okay. 543 00:31:02,930 --> 00:31:05,790 Så vi har en liste over kommandoer der er til rådighed for os, 544 00:31:05,790 --> 00:31:08,550 og disse kommandoer er disse blot vilkårlige Cloud 9 545 00:31:08,550 --> 00:31:10,870 kommandoer, der kører specifikke kode. 546 00:31:10,870 --> 00:31:13,620 Så bare holde det i tankerne, at vi kommer til at køre showet dialogen 547 00:31:13,620 --> 00:31:15,640 fungere øjeblik. 548 00:31:15,640 --> 00:31:19,740 Nu når jeg rent faktisk ønsker at tilføje en menu post, kan jeg tilføje, at elementet af stien, 549 00:31:19,740 --> 00:31:25,570 og bare angive præcis, hvor jeg vil det at være, Vindue / CS50 Seminar Dialog 1. 550 00:31:25,570 --> 00:31:28,380 Og på det tidspunkt, jeg ønsker at oprette en ny post, der 551 00:31:28,380 --> 00:31:32,040 kommer til at køre en kommando, CS50 Seminar Dialog 1. 552 00:31:32,040 --> 00:31:36,140 Bemærk, at igen, det er Cloud 9 kommando Jeg har oprettet lige over. 553 00:31:36,140 --> 00:31:38,630 >> Nu ønsker jeg også at oprette en lille skillevæg, 554 00:31:38,630 --> 00:31:42,260 og så jeg kan gøre det samme i den efterfølgende linje. 555 00:31:42,260 --> 00:31:46,040 Nu kan du måske mærke til, at så del af at definere dette menupunkt, 556 00:31:46,040 --> 00:31:48,200 der er en række forbundet med det, som 557 00:31:48,200 --> 00:31:51,260 faktisk siger hvor præcis Jeg vil have, at menupunkt til at være 558 00:31:51,260 --> 00:31:53,441 placeret på listen over menuer. 559 00:31:53,441 --> 00:31:55,190 Men du måske bemærke at jeg faktisk ikke 560 00:31:55,190 --> 00:31:59,540 se nogen tal med disse menuer, som standard. 561 00:31:59,540 --> 00:32:04,630 Så der er en lille skjult ting, vi kan gøre, en lille ændring til vores webadresse. 562 00:32:04,630 --> 00:32:12,920 Så ud over SDK = 1 & debug = 2, Jeg vil sætte menuen til at 1-- 563 00:32:12,920 --> 00:32:14,690 og forhåbentlig er det menuen, ikke menuer. 564 00:32:14,690 --> 00:32:17,001 Åh, det er menuer = 1. 565 00:32:17,001 --> 00:32:17,500 Hold fast. 566 00:32:17,500 --> 00:32:20,150 567 00:32:20,150 --> 00:32:24,690 >> Og hvad vi vil se, når omladning, at IDE er, at jeg stadig er i debug-mode, 568 00:32:24,690 --> 00:32:27,540 men nu er der tal forbundet med alle menuerne. 569 00:32:27,540 --> 00:32:29,630 Og dette fortæller dig præcis, hvad antallet 570 00:32:29,630 --> 00:32:34,730 er, når du forsøger at injicere noget som helst i denne menu system. 571 00:32:34,730 --> 00:32:40,365 Så i menuen Vindue, kan jeg se, at punkt 45 er Samarbejd, 572 00:32:40,365 --> 00:32:43,820 og punkt 38, før det er installatør. 573 00:32:43,820 --> 00:32:47,530 Så når jeg ønsker at injicere et emne mellem de to, 574 00:32:47,530 --> 00:32:50,570 Jeg ville bare vælge et nummer mellem disse to elementer. 575 00:32:50,570 --> 00:32:56,200 Så jeg valgte 41 og indsat min Seminar Dialog 1 menupunkt på det sted. 576 00:32:56,200 --> 00:33:03,640 >> Og det er derfor, dette antal der vises her er nummer 41. 577 00:33:03,640 --> 00:33:08,010 Det er placeringen af ​​denne menupunkt i Cloud 9 menuen. 578 00:33:08,010 --> 00:33:11,045 Nu tilsvarende, ville jeg at skabe en skillevæg 579 00:33:11,045 --> 00:33:13,920 og tilføje det, så der er en dejlig opdeling mellem hver af disse menuen 580 00:33:13,920 --> 00:33:14,490 varer. 581 00:33:14,490 --> 00:33:18,600 Så tilføjede jeg, at på placering 43. 582 00:33:18,600 --> 00:33:20,260 Så langt, så godt, jeg håber? 583 00:33:20,260 --> 00:33:23,920 Så lad os nu faktisk se på den specifikke kode i show dialogen 584 00:33:23,920 --> 00:33:28,050 det er faktisk ansvarlige til åbning denne dialog vindue. 585 00:33:28,050 --> 00:33:32,710 >> Rulle ned, ser jeg, at jeg vil at have denne funktion show dialog, 586 00:33:32,710 --> 00:33:34,730 og det er yderst simpel. 587 00:33:34,730 --> 00:33:38,570 Jeg har tænkt mig at køre showet metode på plug-in variabel. 588 00:33:38,570 --> 00:33:43,900 Og husk, at vi definerede dette plug-in variabel ovenstående som dialog. 589 00:33:43,900 --> 00:33:48,530 Så bar plug-in, i dette tilfælde, er det objekt, som vi har defineret internt. 590 00:33:48,530 --> 00:33:53,030 Og det kommer til at blive en ny dialog indeholdt i denne plug-in. 591 00:33:53,030 --> 00:33:57,020 Og så vi faktisk refereres dette plug-in variabel i mange steder 592 00:33:57,020 --> 00:33:59,790 i en typisk Cloud 9 udviklingsmiljø. 593 00:33:59,790 --> 00:34:00,867 >> Vi vil se det her. 594 00:34:00,867 --> 00:34:03,450 Bemærk at da vi rulle ned, Der er yderligere livscyklus. 595 00:34:03,450 --> 00:34:06,970 Så bemærke, at disse reagerer til begivenheder, der er fyret 596 00:34:06,970 --> 00:34:10,500 af dette formål, denne dialog objekt. 597 00:34:10,500 --> 00:34:12,710 Som standard, er der laste og losse, som 598 00:34:12,710 --> 00:34:14,760 er tilgængelige for alle Cloud 9 plug-ins. 599 00:34:14,760 --> 00:34:17,139 Men i tilfælde af denne dialog, er der 600 00:34:17,139 --> 00:34:19,139 anden begivenhed, der kan brand samt kaldt 601 00:34:19,139 --> 00:34:23,239 Draw, som er fyret, når der er ved at blive trukket på skærmen, 602 00:34:23,239 --> 00:34:27,239 i første instans af dialogen viser. 603 00:34:27,239 --> 00:34:29,590 >> Så når det er faktisk vil blive vist, 604 00:34:29,590 --> 00:34:31,739 der vil give os nogle HTML. 605 00:34:31,739 --> 00:34:34,710 Og ved hjælp af bare standard HTML praksis kan vi 606 00:34:34,710 --> 00:34:41,030 injicere nogle meget enkle oplysninger, vores hello verden, i den dialog. 607 00:34:41,030 --> 00:34:47,780 Så hvis vi derefter rulle op, vi kan se derefter procession af ting 608 00:34:47,780 --> 00:34:48,989 at det der sker. 609 00:34:48,989 --> 00:34:54,070 Først skabte vi en Cloud 9 kommando at når henrettet af Cloud 9, 610 00:34:54,070 --> 00:34:55,765 kommer til at affyre denne funktion. 611 00:34:55,765 --> 00:34:58,390 Det kommer til at køre denne funktion kaldet viser dialog, at jeg har 612 00:34:58,390 --> 00:34:59,720 skrevet i min kode. 613 00:34:59,720 --> 00:35:04,350 >> Jeg har oprettet et menupunkt og knyttet til det samme kommando 614 00:35:04,350 --> 00:35:08,550 at når denne post er klikket på menuen, der kommando derefter køre 615 00:35:08,550 --> 00:35:10,780 og at funktionen er derefter køre. 616 00:35:10,780 --> 00:35:14,080 Og inde i funktionen jeg bare vil kalde til-- jeg er 617 00:35:14,080 --> 00:35:17,250 bare at udføre showet fremgangsmåde af denne plug-in, som 618 00:35:17,250 --> 00:35:20,800 vil første opkald lodtrækningen metoden, og gå 619 00:35:20,800 --> 00:35:28,050 at affyre denne metode ned under den tegne event handler, i vores livscyklus. 620 00:35:28,050 --> 00:35:30,820 Og så vil det faktisk viser dialogen. 621 00:35:30,820 --> 00:35:34,870 >> Der er også en skjul metode, således at hvis jeg har brug mulighed for at skjule 622 00:35:34,870 --> 00:35:37,610 min dialog, kan jeg gøre det samme. 623 00:35:37,610 --> 00:35:42,060 Så det er temmelig meget det at få alt dette til at arbejde. 624 00:35:42,060 --> 00:35:45,160 Bemærk, det er hvis vi rulle ned yderligere er der en fastfrysning offentlige API. 625 00:35:45,160 --> 00:35:51,020 Dette dybest set bare siger, at jeg ønsker, at disse metoder til effektivt 626 00:35:51,020 --> 00:35:56,670 offentlige, men ikke kan overskrives uden for rammerne af denne plug-in. 627 00:35:56,670 --> 00:36:00,410 Og derunder, i bunden, er måske den sidste, 628 00:36:00,410 --> 00:36:03,180 at vi virkelig nødt til at betale meget opmærksom på her, hvilket 629 00:36:03,180 --> 00:36:09,540 er, at vi kommer til at registrere vores plug-in med navnet C9 Seminar 1, 630 00:36:09,540 --> 00:36:11,920 og objektet plug-in. 631 00:36:11,920 --> 00:36:14,870 >> Hvilket som du vil huske, er at plug-in, plug-in 632 00:36:14,870 --> 00:36:18,200 objekt, vi har været at definere hele hele denne kilde 633 00:36:18,200 --> 00:36:18,840 kode. 634 00:36:18,840 --> 00:36:23,790 Og C9 Seminar 1 er den streng, vi lovede 635 00:36:23,790 --> 00:36:26,350 at tilvejebringe øverst af denne definition. 636 00:36:26,350 --> 00:36:29,280 637 00:36:29,280 --> 00:36:29,780 OKAY. 638 00:36:29,780 --> 00:36:34,160 Så lad os rampe det op en lille smule og se, om vi kan gøre noget 639 00:36:34,160 --> 00:36:36,020 lidt mere interessant. 640 00:36:36,020 --> 00:36:38,350 Nu er dette er kun så stor. 641 00:36:38,350 --> 00:36:41,380 Jeg mener, det er, det er faktisk temmelig cool, at i så få linjer kode, 642 00:36:41,380 --> 00:36:45,570 kan vi ændre den eksisterende IDE og tilføje en eksisterende menupunkt 643 00:36:45,570 --> 00:36:48,850 eller tilføje et nyt menupunkt, tilføje en kommando, og vise en dialog, 644 00:36:48,850 --> 00:36:51,040 og bare en masse funktion, der findes. 645 00:36:51,040 --> 00:36:54,550 Det er virkelig temmelig stor. 646 00:36:54,550 --> 00:36:59,470 >> Men det betyder ikke gøre meget, fordi det ikke kan kommunikere med den underliggende Ubuntu 647 00:36:59,470 --> 00:37:00,450 instans. 648 00:37:00,450 --> 00:37:02,560 Så lad os sige, at jeg faktisk ønsker at finde ud af 649 00:37:02,560 --> 00:37:05,400 nogle oplysninger om underliggende Ubuntu eksempel, 650 00:37:05,400 --> 00:37:08,260 ligesom statistik plug-in gør. 651 00:37:08,260 --> 00:37:11,090 Så lad os tage et kig på en lidt mere information 652 00:37:11,090 --> 00:37:13,730 om, hvordan statistik plug-in værker. 653 00:37:13,730 --> 00:37:15,900 Og faktisk er det meget lig dette. 654 00:37:15,900 --> 00:37:17,680 Du måske huske, at der er en dialog. 655 00:37:17,680 --> 00:37:21,680 Du husker muligvis, at der er nogle oplysninger, der er 656 00:37:21,680 --> 00:37:24,860 vist lige langs menulinjen sammen toppen, som forhåbentlig er du nu 657 00:37:24,860 --> 00:37:27,450 få en smag af hvordan vi implementeret det, 658 00:37:27,450 --> 00:37:32,360 bare ved at indsætte menupunkter på specifikke point og ved at instantiere en dialog 659 00:37:32,360 --> 00:37:34,360 og vise, at dialog. 660 00:37:34,360 --> 00:37:36,580 >> Men vi har endnu ikke vist dig, hvordan vi kan forbinde det 661 00:37:36,580 --> 00:37:40,790 til en kommando i underliggende Ubuntu instans. 662 00:37:40,790 --> 00:37:46,930 Så lad os tage et kig derefter på plugin.2, der gør netop denne ting. 663 00:37:46,930 --> 00:37:50,540 Vi kommer til at åbne plugin.js, som er koden for dette. 664 00:37:50,540 --> 00:37:54,570 Men under menuen Vindue, hvis jeg klikker på dialog 2, 665 00:37:54,570 --> 00:37:58,290 Vi kan se, at der står det stedet, hej CS50, som 666 00:37:58,290 --> 00:38:01,800 ser ikke alt det lokkende, ikke? 667 00:38:01,800 --> 00:38:04,310 Bortset, se denne. 668 00:38:04,310 --> 00:38:07,020 Lad mig ændre noget hernede. 669 00:38:07,020 --> 00:38:11,540 >> Jeg har tænkt mig at gå til min arbejdsområde og forandring seminar 670 00:38:11,540 --> 00:38:15,990 til at sige noget andet, ligesom Hej, Dan. 671 00:38:15,990 --> 00:38:18,150 Jeg har tænkt mig at lukke den og gemme den. 672 00:38:18,150 --> 00:38:22,740 Og nu jeg har tænkt mig at re-run min menu dialog element. 673 00:38:22,740 --> 00:38:25,590 Og bemærk, at det har nu ændret, hvad der står. 674 00:38:25,590 --> 00:38:26,880 Hej, Dan. 675 00:38:26,880 --> 00:38:30,680 Jeg synes at have gjort noget ned her i den underliggende Ubuntu instans 676 00:38:30,680 --> 00:38:34,370 uden at have manipuleret nogen kode, der igen kører alene 677 00:38:34,370 --> 00:38:35,720 på klientsiden. 678 00:38:35,720 --> 00:38:40,380 Så der er selvfølgelig en slags kommunikation, der sker her. 679 00:38:40,380 --> 00:38:44,550 >> Nu er det her en stor del af magt Cloud 9 SDK kommer ind, 680 00:38:44,550 --> 00:38:49,440 er, at i denne plugin.2, Vi kan faktisk forårsage 681 00:38:49,440 --> 00:38:52,910 en opfordring til at ske med underliggende eksempel 682 00:38:52,910 --> 00:38:55,750 og køre nogle arbitrær kommando. 683 00:38:55,750 --> 00:39:00,230 Så i dette tilfælde, har jeg faktisk skabt en meget simpel bash script 684 00:39:00,230 --> 00:39:02,350 i min arbejdsplads hedder Seminar. 685 00:39:02,350 --> 00:39:03,610 Så lad mig åbne det op. 686 00:39:03,610 --> 00:39:05,370 Og vi kan se, at det ser sådan ud. 687 00:39:05,370 --> 00:39:08,310 Det er bare en meget simpel bash script, hvis eneste formål i livet 688 00:39:08,310 --> 00:39:11,920 vil være at echo denne tekst, Hej, Dan. 689 00:39:11,920 --> 00:39:14,360 Eller før det, det sagde Hej, CS50. 690 00:39:14,360 --> 00:39:16,000 Og det er alt det kommer til at gøre. 691 00:39:16,000 --> 00:39:21,030 >> Da dette er nu en kommando, jeg kan køre. 692 00:39:21,030 --> 00:39:23,750 Jeg kan faktisk køre det ned her. 693 00:39:23,750 --> 00:39:28,440 Vi kan se, at det faktisk er lige en kommando, som jeg kører naturligt. 694 00:39:28,440 --> 00:39:32,850 Jeg kan spørge min plug-in til at udføre dette kommandoen på den underliggende arbejdsområde 695 00:39:32,850 --> 00:39:36,510 og parse oplysningerne der blev returneret fra det, 696 00:39:36,510 --> 00:39:40,300 og gøre noget med det, og ændre min plug-in og den adfærd, som jeg 697 00:39:40,300 --> 00:39:43,240 har i mit plug-in som et resultat. OKAY. 698 00:39:43,240 --> 00:39:45,450 Så lad os se, hvordan det sker. 699 00:39:45,450 --> 00:39:48,380 Vi så det meget simpelt Seminar batch script, jeg 700 00:39:48,380 --> 00:39:51,080 [Uhørligt], at det rent faktisk kan køre. 701 00:39:51,080 --> 00:39:54,560 >> Og lad os nu se ændringerne der er nødvendige for at binde det sammen 702 00:39:54,560 --> 00:39:57,620 med dialogvinduet, og køre den. 703 00:39:57,620 --> 00:40:02,030 Så her vil vi gøre stort meget det samme som vi så før. 704 00:40:02,030 --> 00:40:05,500 Men se, at blandt de ting, som jeg har forbruges nu-- 705 00:40:05,500 --> 00:40:09,090 Ud over den dialog, som igen jeg tilfældigvis har gjort to gange, 706 00:40:09,090 --> 00:40:14,300 der ikke necessary-- derudover til dialogen og kommandoerne 707 00:40:14,300 --> 00:40:17,780 og menuerne plug-ins, der var nødvendigt i første for mig 708 00:40:17,780 --> 00:40:21,560 at definere en ny kommando og injicere et element i menuerne, 709 00:40:21,560 --> 00:40:25,010 Jeg har også denne proc plug-in. 710 00:40:25,010 --> 00:40:28,500 >> Og denne proc plug-in gør det muligt os at manipulere processer 711 00:40:28,500 --> 00:40:30,950 på den underliggende instans. 712 00:40:30,950 --> 00:40:34,970 Jeg har tilsluttet det efter jeg har sagde, at min plug-in kræver det. 713 00:40:34,970 --> 00:40:38,320 Jeg har så tilsluttet den til koden, som vi så i den vigtigste funktion. 714 00:40:38,320 --> 00:40:40,970 Igen, vil jeg initialisere min dialog. 715 00:40:40,970 --> 00:40:45,500 Og hvis vi flytte ned nu, vi kan se, hvordan det er anderledes. 716 00:40:45,500 --> 00:40:49,040 Belastningen funktionen er den samme, så det bare at gå til at oprette en kommando 717 00:40:49,040 --> 00:40:54,250 og skabe et menupunkt, og tilslut at menupunkt til denne kommando. 718 00:40:54,250 --> 00:40:56,690 Men hvis vi nu rulle ned for at vise dialogen, 719 00:40:56,690 --> 00:40:59,990 kan vi begynde at se, hvor de forskelle opstår. 720 00:40:59,990 --> 00:41:04,170 >> Vi har funktion show dialog, som er bare at vise dialogen. 721 00:41:04,170 --> 00:41:12,410 Men når jeg viser denne dialog, og når showet metode kaldes, 722 00:41:12,410 --> 00:41:14,430 det brande lodtrækningen funktionen. 723 00:41:14,430 --> 00:41:18,990 Og jeg har tænkt mig at derefter angive noget indhold inde i det. 724 00:41:18,990 --> 00:41:21,910 Så jeg vil blot oprette en div, give det 725 00:41:21,910 --> 00:41:24,020 nogle grundlæggende tekst, Hej, verden. 726 00:41:24,020 --> 00:41:27,250 Men se, at her er jeg kommer til at knytte til det et id. 727 00:41:27,250 --> 00:41:32,350 Og meget næste linje jeg vil at opdage, at id ved hjælp af JavaScript, 728 00:41:32,350 --> 00:41:36,210 og gemme det pågældende objekt i en anden variabel 729 00:41:36,210 --> 00:41:38,280 at jeg bare tænkt mig at ringe til indhold. 730 00:41:38,280 --> 00:41:41,780 >> Så nu når jeg har indhold, alt hvad jeg skal gøre 731 00:41:41,780 --> 00:41:46,100 blot ændre denne objektets indre HTML. 732 00:41:46,100 --> 00:41:51,300 Og dialogen HTML vil derefter modificeres så godt. 733 00:41:51,300 --> 00:41:55,500 Så når denne plug-in er derefter vises, hvilket kan ske 734 00:41:55,500 --> 00:41:59,820 og dette er en ny begivenhed der er nyt for denne plug-in, 735 00:41:59,820 --> 00:42:03,380 men der sker i hvert plug-in med dialogen, når dette vises nu, 736 00:42:03,380 --> 00:42:07,100 Jeg har tænkt mig at kalde en funktion kaldet hente info. 737 00:42:07,100 --> 00:42:10,520 Og denne funktion er kød af den her. 738 00:42:10,520 --> 00:42:14,930 Jeg har tænkt mig at bruge denne proc plug-in, vi beskrevet ovenfor, som ved måde, 739 00:42:14,930 --> 00:42:19,790 er egentlig bare en node.js bibliotek at Cloud 9 bruger her. 740 00:42:19,790 --> 00:42:21,730 >> Så du kan faktisk ser op om, hvordan det 741 00:42:21,730 --> 00:42:25,340 virker, hvis du går ind i Node.js dokumentation 742 00:42:25,340 --> 00:42:29,220 og se op exec fil Fremgangsmåde til processer der. 743 00:42:29,220 --> 00:42:33,110 Jeg har tænkt mig at køre denne specifikke kommando, hjem Ubuntu arbejdsområde 744 00:42:33,110 --> 00:42:38,000 seminar, som er den samme én, der samme kommando, som jeg oprettede før. 745 00:42:38,000 --> 00:42:40,680 Give det en aktuel arbejder mappe, bare 746 00:42:40,680 --> 00:42:45,440 at være ultra sikkert i forhold til forbindelse med hvor det kører. 747 00:42:45,440 --> 00:42:49,150 Og når der har været udfyldes og returneres, 748 00:42:49,150 --> 00:42:54,040 Jeg har tænkt mig at køre dette funktion kaldet parse output. 749 00:42:54,040 --> 00:42:54,540 OKAY. 750 00:42:54,540 --> 00:42:58,670 Så, det kommer til at udføre en kommando på den lokale, eller rettere 751 00:42:58,670 --> 00:43:01,700 fjernbetjeningen Ubuntu instans. 752 00:43:01,700 --> 00:43:03,490 Når jeg får tilbage nogle oplysninger, jeg er så 753 00:43:03,490 --> 00:43:06,940 vil kalde en separat funktion kaldes parse output, der 754 00:43:06,940 --> 00:43:13,790 har denne signatur her, err, stdout, stderr, 755 00:43:13,790 --> 00:43:15,910 og udføre nogle beregninger på dette. 756 00:43:15,910 --> 00:43:18,930 Så hvis jeg fik en fejl af en slags overhovedet, 757 00:43:18,930 --> 00:43:22,340 Jeg vil faktisk kontrollere, om fejl faktisk har nogle data. 758 00:43:22,340 --> 00:43:27,204 Og hvis ja, så vil jeg ændre den indre HTML af dette indhold objekt, som 759 00:43:27,204 --> 00:43:28,995 er du husker, vi forbundet til dialogen 760 00:43:28,995 --> 00:43:32,210 ved instantiattion af denne dialog, eller på det første tegning 761 00:43:32,210 --> 00:43:33,370 af denne dialog. 762 00:43:33,370 --> 00:43:35,650 Jeg har tænkt mig at bare sige, at er sket en fejl. 763 00:43:35,650 --> 00:43:37,140 >> Nu er dette er alt for forenklet. 764 00:43:37,140 --> 00:43:40,170 Fejlværdien vil typisk indeholder noget, der var nyttigt, 765 00:43:40,170 --> 00:43:45,520 måske en fejl nummer og en fejl fra selve scriptet. 766 00:43:45,520 --> 00:43:48,430 Eller hvis scriptet skrev noget at standardfejlen, 767 00:43:48,430 --> 00:43:50,890 at data ville blive befolket i denne parameter samt. 768 00:43:50,890 --> 00:43:53,765 Og jeg kunne være en lille smule mere forsigtig med, hvad fejl 769 00:43:53,765 --> 00:43:55,332 Jeg er faktisk vise folk. 770 00:43:55,332 --> 00:43:57,415 Men dette simplistiske eksempel er godt nok for nu 771 00:43:57,415 --> 00:43:59,715 til mindst se, hvordan alle disse funktioner. 772 00:43:59,715 --> 00:44:01,590 Ellers, hvis der er ingen fejl, så er jeg bare 773 00:44:01,590 --> 00:44:05,500 vil give den rå produktion af denne funktion 774 00:44:05,500 --> 00:44:10,070 ind i den indre HTML af dette indhold element, og derefter opdatere min plug-in 775 00:44:10,070 --> 00:44:12,490 og vise det her. 776 00:44:12,490 --> 00:44:17,550 Og det er temmelig meget alle, der er nødvendigt at få dette til at køre. 777 00:44:17,550 --> 00:44:22,860 Og så lad os tænke på da hvordan dette fungerer, samlet. 778 00:44:22,860 --> 00:44:29,330 Da jeg først indlæst denne plug-in, ligesom den første plug-in, 779 00:44:29,330 --> 00:44:32,670 Jeg har tænkt mig at tilføje en kommando, der er rådighed til noget, ethvert plug-in 780 00:44:32,670 --> 00:44:37,120 i Cloud 9, kaldet CS50 Seminar Dialog 2, hvis ansvar 781 00:44:37,120 --> 00:44:39,670 vil være at køre dette show dialog, som er du husker, 782 00:44:39,670 --> 00:44:42,730 faktisk vil vise dialogen at jeg anmodede nedenfor. 783 00:44:42,730 --> 00:44:45,980 >> Så vil jeg tilføje, at kommando i et vindue menu 784 00:44:45,980 --> 00:44:48,070 så jeg har adgang til det. 785 00:44:48,070 --> 00:44:51,420 Og når denne dialog anmodes om at blive vist, 786 00:44:51,420 --> 00:44:55,170 Jeg vil hente nogle info fra den underliggende Ubuntu instans 787 00:44:55,170 --> 00:44:58,890 ved at bruge exec fil kommando. 788 00:44:58,890 --> 00:44:59,920 Undskyld mig. 789 00:44:59,920 --> 00:45:04,140 Når der returneres, og jeg modtager nogle oplysninger, så på klientsiden 790 00:45:04,140 --> 00:45:08,370 igen, vil jeg være i stand til at parse produktionen af ​​denne kommando 791 00:45:08,370 --> 00:45:12,650 og opdatere den indre HTML af elementerne 792 00:45:12,650 --> 00:45:16,440 at vi havde tilsluttet tidligere. 793 00:45:16,440 --> 00:45:19,910 >> Og med det, vi så har denne fuldt funktionelle plug-in 794 00:45:19,910 --> 00:45:24,520 der tillader mig at hente oplysninger fra denne vilkårlige script 795 00:45:24,520 --> 00:45:27,170 at vi har skabt på vores underliggende instans. 796 00:45:27,170 --> 00:45:29,660 Men igen, det er virkelig vigtigt og virkelig nøglen 797 00:45:29,660 --> 00:45:33,030 at adskille hvor hver af disse ting, der sker, 798 00:45:33,030 --> 00:45:38,320 at vi har alt dette klientsiden kode, der køres i browseren, 799 00:45:38,320 --> 00:45:41,640 og endnu ikke har adgang til det underliggende filsystem 800 00:45:41,640 --> 00:45:44,895 indtil vi faktisk køre nogle af disse kommandoer, der leveres af Cloud 801 00:45:44,895 --> 00:45:49,055 9 SDK ligesom proc, og nogle andre dem der giver os mulighed for at læse nogle data, 802 00:45:49,055 --> 00:45:53,500 eller læse nogle filer, hvis vi har brug for at gøre noget sådant. 803 00:45:53,500 --> 00:45:56,650 >> Nu er en noget simpelt eksempel. 804 00:45:56,650 --> 00:46:00,570 Der er andre ting, som vi ville måske ønsker at gøre så godt. 805 00:46:00,570 --> 00:46:03,470 For eksempel, måske vi faktisk ønsker at spare nogle oplysninger 806 00:46:03,470 --> 00:46:04,630 til de præferencer. 807 00:46:04,630 --> 00:46:07,900 Eller måske vil vi tilføje en ny præference rude 808 00:46:07,900 --> 00:46:09,690 eller noget i den retning. 809 00:46:09,690 --> 00:46:13,370 Så det er noget, du kan tage et kig på Cloud 9 SDK 810 00:46:13,370 --> 00:46:15,300 at få mere information om. 811 00:46:15,300 --> 00:46:19,990 Men dette er virkelig nok til at komme i gang. 812 00:46:19,990 --> 00:46:26,410 Så bare for at være en lille smule mere konkret om den måde, at nogle af disse ting 813 00:46:26,410 --> 00:46:31,370 funktion, jeg havde lyst til at vise bare endnu et eksempel, som er blot nogle 814 00:46:31,370 --> 00:46:35,580 af koden fra Stats 50 plug-in. 815 00:46:35,580 --> 00:46:39,780 >> Og denne kode er dybest set baseret på disse eksempler 816 00:46:39,780 --> 00:46:43,310 at du faktisk har set, men har nogle flere sikkerhedsforanstaltninger 817 00:46:43,310 --> 00:46:47,460 og har nogle mere komplekse med henblik på at opnå nogle af de ekstra ting 818 00:46:47,460 --> 00:46:48,930 at vi ønsker at opnå. 819 00:46:48,930 --> 00:46:54,510 For eksempel, hvis jeg ønsker at være stand til at gemme nogle indstillinger, 820 00:46:54,510 --> 00:46:57,700 så er jeg nødt til at have adgang til Indstillinger plug-in, 821 00:46:57,700 --> 00:47:01,820 og hver gang jeg vil have at læse nogle indstillinger, 822 00:47:01,820 --> 00:47:08,340 Jeg kan for eksempel tillægger forskellige begivenheder i Indstillinger plug-in. 823 00:47:08,340 --> 00:47:13,630 Så hver gang indstillingerne er rød, for eksempel i min egen plug-in, 824 00:47:13,630 --> 00:47:18,450 hvis jeg vil læse nogle indstillinger fra den gemte opbevaring 825 00:47:18,450 --> 00:47:24,540 præferencer for brugeren, så kan jeg sætte standardindstillinger for et bestemt sted, 826 00:47:24,540 --> 00:47:31,250 for specifik præference, idet JSON stil muligheder fil, som vi har 827 00:47:31,250 --> 00:47:33,890 gemt tidligere, at vi har set tidligere. 828 00:47:33,890 --> 00:47:36,370 >> Og hvis jeg har tænkt mig at skrive nogle indstillinger til det, 829 00:47:36,370 --> 00:47:40,440 så jeg can-- eller så snart vi opdager at indstillingerne er blevet skrevet 830 00:47:40,440 --> 00:47:44,420 at-- fordi for eksempel dem, indstillinger er ændret af brugeren 831 00:47:44,420 --> 00:47:47,335 enten direkte i deres indstillinger fil eller præference ruden 832 00:47:47,335 --> 00:47:49,370 har ændret indstillingerne fil direkte, så 833 00:47:49,370 --> 00:47:53,590 Jeg kan faktisk opdatere nogle af koden eller opdatere opførsel min plug-in 834 00:47:53,590 --> 00:47:58,710 baseret på de ændringer, der opstod på indstillingsfilen så godt. 835 00:47:58,710 --> 00:48:03,380 Men virkelig, resten af ​​det er temmelig meget denne, som du allerede har set. 836 00:48:03,380 --> 00:48:06,040 >> Vi tilføjer nogle, måske noget, der er nyt. 837 00:48:06,040 --> 00:48:09,440 Så tilføjer vi en præference-fil, eller snarere en præference rude, 838 00:48:09,440 --> 00:48:14,250 til vinduet Indstillinger, som igen kan du finde ud af mere information 839 00:48:14,250 --> 00:48:16,220 i Cloud 9 SDK læste mig. 840 00:48:16,220 --> 00:48:18,460 Men alt andet er temmelig meget, temmelig 841 00:48:18,460 --> 00:48:25,810 svarer til, hvad vi så før, bare med nogle ekstra fejl kontrol 842 00:48:25,810 --> 00:48:30,150 og nogle yderligere beskyttelse og nogle yderligere funktionalitet 843 00:48:30,150 --> 00:48:33,314 til funktionen alle de forskellige ting, som vi har set. 844 00:48:33,314 --> 00:48:35,230 Hvis du har faktisk ikke set det endnu, kan du 845 00:48:35,230 --> 00:48:40,955 være gad vide hvad den underliggende kommando er i Statistikker 50 vinduet. 846 00:48:40,955 --> 00:48:42,840 Det er faktisk funktion. 847 00:48:42,840 --> 00:48:48,100 Tja, det is-- åh, for fanden. 848 00:48:48,100 --> 00:48:49,410 Et sekund. 849 00:48:49,410 --> 00:48:49,910 Hold fast. 850 00:48:49,910 --> 00:48:52,270 OKAY. 851 00:48:52,270 --> 00:48:58,090 Lad mig flytte denne op, så vi rent faktisk kan se hvad der sker, når jeg skriver Stats 50. 852 00:48:58,090 --> 00:49:02,140 Bemærk, at i dette tilfælde kommando, jeg er ude at sætte 853 00:49:02,140 --> 00:49:06,310 er virkelig igen, bare det script, der er gå til at afgive et bundt af oplysninger 854 00:49:06,310 --> 00:49:08,040 i JSON format. 855 00:49:08,040 --> 00:49:10,800 Og grunden til, at vi gør det denne måde er, at fordi vi 856 00:49:10,800 --> 00:49:15,480 opererer, fordi vi har skrevet klientsiden kode i JavaScript, 857 00:49:15,480 --> 00:49:19,500 vi kan meget nemt bare parse JavaScript objekter, 858 00:49:19,500 --> 00:49:23,050 og virkelig kunne manipulere disse objekter ligesom vi ville 859 00:49:23,050 --> 00:49:24,610 enhver anden JavaScript objekt. 860 00:49:24,610 --> 00:49:27,650 >> Og så dette er en meget bekvem måde at give nogle oplysninger 861 00:49:27,650 --> 00:49:31,950 fra den underliggende Ubuntu eksempel, såsom versionsnummer, værten 862 00:49:31,950 --> 00:49:36,360 navn, om en server lytter, hvad serveren er, så videre og så videre, 863 00:49:36,360 --> 00:49:39,150 og parse netop let og meget hurtigt 864 00:49:39,150 --> 00:49:44,870 i plug-in, som derefter går at vise os alle af disse oplysninger. 865 00:49:44,870 --> 00:49:47,920 Så igen, nøglen indsigt her at huske på 866 00:49:47,920 --> 00:49:54,260 Denne adskillelse mellem den underliggende instans, 867 00:49:54,260 --> 00:49:57,490 og også hvor koden bliver indlæst. 868 00:49:57,490 --> 00:49:59,870 At når jeg har en klient, Det er første læsning. 869 00:49:59,870 --> 00:50:03,951 Bare denne statiske JavaScript-fil fra et eller andet sted, måske CDN af en slags. 870 00:50:03,951 --> 00:50:06,450 Vi har egentlig ikke at pleje for meget om dette første skridt. 871 00:50:06,450 --> 00:50:08,970 >> Vi ved bare, at det er kører på klientsiden 872 00:50:08,970 --> 00:50:12,740 og det er når jeg har tænkt mig at kommunikere med denne havnearbejder instans. 873 00:50:12,740 --> 00:50:15,970 At vi kommer til at gøre det gennem Cloud 9 SDK. 874 00:50:15,970 --> 00:50:20,460 Vi behøver faktisk ikke mulighed for, ved hjælp af JavaScript eller node.js, 875 00:50:20,460 --> 00:50:21,750 at skrive direkte til det. 876 00:50:21,750 --> 00:50:29,400 Vi bruger kun de eksisterende SDK API'er til at gøre denne handling for os. 877 00:50:29,400 --> 00:50:32,490 Og igen, en af ​​de virkelig vigtige ting 878 00:50:32,490 --> 00:50:38,990 er, at når jeg har oprettet denne, når jeg har oprettet denne plug-in, 879 00:50:38,990 --> 00:50:42,510 og da jeg arbejder på det, man af de vigtige ting at gøre 880 00:50:42,510 --> 00:50:44,840 er at bringe op JavaScript-konsol. 881 00:50:44,840 --> 00:50:49,400 >> Fordi da dette er alt opererer på JavaScript, 882 00:50:49,400 --> 00:50:54,700 på klientsiden, hvis jeg bruger en console.log method-- så bare 883 00:50:54,700 --> 00:50:56,550 at vise et eksempel her. 884 00:50:56,550 --> 00:51:07,630 Lad os prøve at ændre denne enkle plug-in til også logge nogle data. 885 00:51:07,630 --> 00:51:09,895 Og vi vil tilføje standard ud. 886 00:51:09,895 --> 00:51:13,010 887 00:51:13,010 --> 00:51:16,810 Så lad os ændre det til at være lige her. 888 00:51:16,810 --> 00:51:19,560 Nu når jeg udfører console.log, huske på 889 00:51:19,560 --> 00:51:21,630 at eftersom dette kører på klientsiden, 890 00:51:21,630 --> 00:51:24,900 Jeg vil se dette i min egen JavaScript-konsol, som 891 00:51:24,900 --> 00:51:28,540 er, hvordan jeg vil så være i stand til forsøge at fejlfinde og debug 892 00:51:28,540 --> 00:51:30,330 nogle af de problemer, som jeg har. 893 00:51:30,330 --> 00:51:34,110 >> Bemærk, at fordi Jeg er i SDK-tilstand, er jeg 894 00:51:34,110 --> 00:51:37,820 derefter stand til at manipulere plug-ins på dette tilfælde. 895 00:51:37,820 --> 00:51:39,800 Så selvom det er gemt på det foreliggende tilfælde, 896 00:51:39,800 --> 00:51:47,130 dette er et eksempel på det tidligere regel overtrædes, hvor Cloud 9 897 00:51:47,130 --> 00:51:51,030 SDK faktisk vil trække plug-ins fra underliggende instans og derefter køre dem. 898 00:51:51,030 --> 00:51:54,440 Således at på denne måde, er jeg så stand til at manipulere og konstruere 899 00:51:54,440 --> 00:51:55,750 nogle plug-ins her. 900 00:51:55,750 --> 00:51:58,080 Men for mig at se opdateringer til dette plug-in, 901 00:51:58,080 --> 00:52:01,880 fordi det er på klientsiden, Jeg har brug for at redde denne plug-in 902 00:52:01,880 --> 00:52:04,950 og læg hele arbejdsområdet, så det nye plug-in er så 903 00:52:04,950 --> 00:52:09,230 downloadet på min klient, på min webbrowser, og derefter bliver brugt. 904 00:52:09,230 --> 00:52:14,460 >> Så nu når jeg klikker på dette seminar Dialog 2, ser vi fortsat dette. 905 00:52:14,460 --> 00:52:21,311 Men nu forhåbentlig i min JavaScript dialog, såfremt vi finder my-- vente, 906 00:52:21,311 --> 00:52:21,810 hold fast. 907 00:52:21,810 --> 00:52:24,420 Jeg måske nødt til at åbne dialogen frisk. 908 00:52:24,420 --> 00:52:30,230 Vi bør se mine modtagne data her. 909 00:52:30,230 --> 00:52:32,780 Modtagne data, Hej, Dan, som er du husker, 910 00:52:32,780 --> 00:52:37,770 var en console.log operation, vi anmodet om i plug-in. 911 00:52:37,770 --> 00:52:42,140 Så denne beskrivelse derefter som jeg nævnte før, 912 00:52:42,140 --> 00:52:45,460 denne dialog, eller det diagram snarere, at jeg 913 00:52:45,460 --> 00:52:49,140 nævnt før er hvad der sker. 914 00:52:49,140 --> 00:52:53,150 Men der er en vigtig undtagelse kun for udvikling, 915 00:52:53,150 --> 00:52:55,490 som er, at plug-in selv kan faktisk 916 00:52:55,490 --> 00:52:59,160 gemmes på havnearbejder instans midlertidigt, da antagelig Cloud 9 917 00:52:59,160 --> 00:53:02,210 ikke ønsker os at være i stand til at manipulere objekter på deres CDN. 918 00:53:02,210 --> 00:53:08,650 >> Og Cloud 9 klienter efter lastning, vil finde disse plug-ins i det. 919 00:53:08,650 --> 00:53:11,540 C9 plug-in mappe, og indlæse dem. 920 00:53:11,540 --> 00:53:15,780 Men de er stadig sker kun på klientsiden. 921 00:53:15,780 --> 00:53:19,440 Så det er bare at en undtagelse, forekommer kun 922 00:53:19,440 --> 00:53:23,220 til udvikling af Cloud 9 plug-ins. 923 00:53:23,220 --> 00:53:25,000 Men resten af time-- og grunden 924 00:53:25,000 --> 00:53:26,708 at vi ønsker at virkelig hammer denne home-- 925 00:53:26,708 --> 00:53:30,140 er fordi det meste af tiden er det kommer til at køre fra CDN, 926 00:53:30,140 --> 00:53:33,030 og lige til at blive kørt udelukkende fra klientsiden. 927 00:53:33,030 --> 00:53:36,110 >> Normalt er der vil ikke være nogen interaktion med plug-in, 928 00:53:36,110 --> 00:53:39,840 eller der ikke engang at være nogen grunden til, at plug-ins selv 929 00:53:39,840 --> 00:53:42,970 faktisk gemt på underliggende havnearbeider eksempel, 930 00:53:42,970 --> 00:53:47,240 undtagen i tilfælde af dette SDK udvikling. 931 00:53:47,240 --> 00:53:51,510 Så igen, dette ændrer bare lidt på grund af det faktum, 932 00:53:51,510 --> 00:53:54,650 at vi kører SDK tilstand. 933 00:53:54,650 --> 00:53:57,160 Det kommer til at læg dem plug-ins fra udvikling, 934 00:53:57,160 --> 00:54:01,690 og det eneste formål her er så Jeg kan bruge Cloud 9 til at gøre udvikling 935 00:54:01,690 --> 00:54:04,620 til Cloud 9 plugins. 936 00:54:04,620 --> 00:54:07,220 Men alligevel, ændrer det ikke igen, hvordan noget af det virker. 937 00:54:07,220 --> 00:54:09,650 Det er stadig at blive kørt udelukkende på klientsiden. 938 00:54:09,650 --> 00:54:16,260 >> Det betyder blot, at når jeg ønsker at oprette Cloud 9 plug-ins i Cloud 9, 939 00:54:16,260 --> 00:54:19,320 Jeg skaber disse plug-ins, sætte dem i min. 940 00:54:19,320 --> 00:54:25,110 C9 / plugins mappe i mit hjem mappe, skal du sørge for jeg er i SDK-tilstand, 941 00:54:25,110 --> 00:54:29,290 genindlæse siden hver gang jeg faktisk foretage ændringer af denne plug-in, 942 00:54:29,290 --> 00:54:33,590 og se hvad der sker i min JavaScript-konsol. 943 00:54:33,590 --> 00:54:36,240 Bare styre min JavaScript trøste at sørge 944 00:54:36,240 --> 00:54:38,930 at enhver fejlfinding oplysninger, som jeg placerer for at trøste, 945 00:54:38,930 --> 00:54:41,920 eller noget andet, der måtte opstå på grund af fejl, som jeg har skrevet 946 00:54:41,920 --> 00:54:44,940 i min kode eller lignende, vises der. 947 00:54:44,940 --> 00:54:48,007 >> Og med det, det er virkelig nok til at komme i gang, tror jeg, 948 00:54:48,007 --> 00:54:49,090 med Cloud 9 plug-ins. 949 00:54:49,090 --> 00:54:53,120 Især tage et kig på SDK dokumentation, Cloud 9 giver. 950 00:54:53,120 --> 00:54:56,650 Det er en fantastisk måde at få gang, og meget let 951 00:54:56,650 --> 00:54:59,900 skabe nogle plug-ins til Cloud 9. 952 00:54:59,900 --> 00:55:02,820 Og med det, vil jeg gerne takke jer alle meget for sammenføjning mig. 953 00:55:02,820 --> 00:55:05,550 Jeg håber, du vil have det sjovt skriver plug-ins til Cloud 9. 954 00:55:05,550 --> 00:55:09,600 Måske forbedre plug-ins at vi har nu, eller måske endda 955 00:55:09,600 --> 00:55:11,360 tilføje nogle funktioner af din egen. 956 00:55:11,360 --> 00:55:14,540 Vi glæder os til at se hvad det er, du opretter. 957 00:55:14,540 --> 00:55:16,330 Indtil da, farvel. 958 00:55:16,330 --> 00:55:18,734