1 00:00:00,000 --> 00:00:05,159 2 00:00:05,159 --> 00:00:09,240 >> DAN ARMENDARIZ: Hallo, en welkom by 'n CS50 seminaar oor aanpas Cloud 9, 3 00:00:09,240 --> 00:00:11,724 en die CS50 IDE. 4 00:00:11,724 --> 00:00:13,640 So vandag gaan ons net praat 'n bietjie 5 00:00:13,640 --> 00:00:16,090 oor 'n paar van die tegniese inligting wat 6 00:00:16,090 --> 00:00:19,380 gaan agter die argitektuur wolk 9, en hoe 7 00:00:19,380 --> 00:00:25,560 Ons het 'n paar van die plug-ins geïmplementeer as deel van Cloud 9 tot CS50 IDE verskaf. 8 00:00:25,560 --> 00:00:28,820 So laat ons net spring reg in en begin praat oor plug-ins. 9 00:00:28,820 --> 00:00:32,659 >> So plug-ins is regtig op die kern van die Cloud 9 ervaring. 10 00:00:32,659 --> 00:00:37,590 Wolk 9 is die onderliggende tegnologie wat voorsiening maak vir ons die IDE, 11 00:00:37,590 --> 00:00:42,160 en ook die terminale venster by die onder, saam met die workspace-- 12 00:00:42,160 --> 00:00:46,430 die Ubuntu workspace-- dat ons gebruik om al ons projekte saam te stel 13 00:00:46,430 --> 00:00:49,190 en voer ons probleem stelle, voltooi ons probleem stelle. 14 00:00:49,190 --> 00:00:51,820 Maar in die hart van al dit, al die tegnologie 15 00:00:51,820 --> 00:00:54,590 is regtig net 'n klomp van die plug-ins. 16 00:00:54,590 --> 00:00:58,740 Alles is 'n plug-in wat kan verander word, 17 00:00:58,740 --> 00:01:00,710 verleng, kan jy skep jou eie plug-ins, 18 00:01:00,710 --> 00:01:03,060 jy kan ander verwyder plug-ins, om werklik te verander 19 00:01:03,060 --> 00:01:07,540 nogal 'n baie van die funksies van die bestaande Cloud 9 IDE. 20 00:01:07,540 --> 00:01:12,040 >> So, dit is 'n bestaande Wolk 9 omgewing. 21 00:01:12,040 --> 00:01:14,750 Dit is eintlik net die standaard Cloud 9 omgewing. 22 00:01:14,750 --> 00:01:18,450 En neem 'n blik op hoe dit eintlik verskil van die CS50 IDE. 23 00:01:18,450 --> 00:01:20,340 So dit is die CS50 IDE. 24 00:01:20,340 --> 00:01:25,060 Let daarop dat daar is 'n paar visuele veranderinge tussen die gereelde Cloud 9 25 00:01:25,060 --> 00:01:28,000 omgewing en die CS50 IDE. 26 00:01:28,000 --> 00:01:30,010 Spesifiek, sal jy sien 'n paar van die veranderinge. 27 00:01:30,010 --> 00:01:34,201 Eerste van alles, daar is minder menu items om te begin. 28 00:01:34,201 --> 00:01:36,200 Daar is eintlik 'n manier dat jy dit kan verander. 29 00:01:36,200 --> 00:01:37,270 Dit is bekend as eenvoudige modus. 30 00:01:37,270 --> 00:01:40,910 >> By verstek, is eenvoudig af aangeskakel, en wat vereenvoudig sommige van die menu items. 31 00:01:40,910 --> 00:01:43,032 Dit verwyder sommige van die meer gevorderde kinders, 32 00:01:43,032 --> 00:01:45,240 want eerlik, 'n baie studente wat kom in 33 00:01:45,240 --> 00:01:48,550 en het nie nodig om te weet oor 'n paar van die meer gevorderde funksies 34 00:01:48,550 --> 00:01:50,530 is nie oorweldig met 'n klomp van die opsies. 35 00:01:50,530 --> 00:01:55,610 Maar ons doen die vermoë om te neem af diegene sogenaamde opleiding wiele 36 00:01:55,610 --> 00:01:57,360 en verwyder wat steierwerk sodat mense 37 00:01:57,360 --> 00:02:00,832 kan meer gewoond te raak die gevorderde funksies van die IDE. 38 00:02:00,832 --> 00:02:02,540 Onmiddellik na die reg van daardie, is daar 39 00:02:02,540 --> 00:02:05,435 ook 'n debug knoppie, wat in die standaard Wolk 40 00:02:05,435 --> 00:02:08,199 9 omgewing gewoon genoem termyn. 41 00:02:08,199 --> 00:02:11,990 Maar by verstek, het ons ingestel die debug knoppie in die CS50 IDE 42 00:02:11,990 --> 00:02:15,500 om die debugger bring, Die bron-kode outomaties stel, 43 00:02:15,500 --> 00:02:17,940 verbind die debugger om die onderliggende GDB-- 44 00:02:17,940 --> 00:02:21,430 en sedert daardie hardloop om te presteer die debugging-- en 'n paar ander stappe 45 00:02:21,430 --> 00:02:22,580 ook. 46 00:02:22,580 --> 00:02:25,370 Ook die terminale venster by die very-- of eerder die terminale 47 00:02:25,370 --> 00:02:29,010 blad by die afdeling konsole by die venster by die heel onderkant van die skerm, 48 00:02:29,010 --> 00:02:31,004 herdoop om net terminale wees. 49 00:02:31,004 --> 00:02:32,837 Terwyl dit in die standaard Wolk 9 omgewing, 50 00:02:32,837 --> 00:02:35,830 dit eintlik toon die hardloop aansoek. 51 00:02:35,830 --> 00:02:39,140 Hierdie manier, dit vereenvoudig, weer, die GUI, net 'n bietjie. 52 00:02:39,140 --> 00:02:42,310 >> Ons het ook bygevoeg 'n paar knoppies na die boonste regterkant van die IDE 53 00:02:42,310 --> 00:02:45,740 om 'n paar basiese inligting te wys oor die onderliggende byvoorbeeld. 54 00:02:45,740 --> 00:02:49,700 En ook het ons een verwyder van die opsies op die items 55 00:02:49,700 --> 00:02:51,730 uit die heel regs. 56 00:02:51,730 --> 00:02:55,620 So al is dit nie geïmplementeer deur die wysiging van die Cloud 9 noodwendig 57 00:02:55,620 --> 00:02:58,550 bronkode, maar plaas deur middel van 'n paar 58 00:02:58,550 --> 00:03:03,460 van plug-ins wat ons geïmplementeer Gedurende die afgelope jaar of so. 59 00:03:03,460 --> 00:03:08,840 En Cloud 9 aangebied het en het wat in die CS50 werkspasie. 60 00:03:08,840 --> 00:03:13,680 Of liewer in die werkruimtes wat is aangewys as CS50 IDES. 61 00:03:13,680 --> 00:03:17,140 >> So regtig dit is die belangrikste verskil tussen die Cloud 9 en die CS50 62 00:03:17,140 --> 00:03:18,130 werkruimtes. 63 00:03:18,130 --> 00:03:21,780 Daar is ook, in die onderliggende Byvoorbeeld, die primêre verandering is 64 00:03:21,780 --> 00:03:25,350 dat ons 'n paar te installeer pre-ingestel items soos GDB, 65 00:03:25,350 --> 00:03:29,530 en 'n paar ander basiese dinge wat ons geskep het, soos Update 50, 66 00:03:29,530 --> 00:03:33,310 en 'n paar van die ander stappe wat maak die hele ervaring 'n bietjie meer 67 00:03:33,310 --> 00:03:34,550 verenigde. 68 00:03:34,550 --> 00:03:38,520 Maar algehele, dit is net 'n verandering van 'n bestaande stelsel 69 00:03:38,520 --> 00:03:40,979 dat Cloud 9 geskep het vir ons. 70 00:03:40,979 --> 00:03:42,770 Wat ons gaan wys 'n bietjie later 71 00:03:42,770 --> 00:03:45,920 is hoe om werklik te skep 'n ietwat basiese plug-in wat 72 00:03:45,920 --> 00:03:49,461 kan ons iets in die steek menu stelsel, en maak 'n dialoog. 73 00:03:49,461 --> 00:03:51,210 En as ons genoeg tyd, sal ons eintlik 74 00:03:51,210 --> 00:03:54,210 sien hoe ons kan vul wat dialoog met inligting 75 00:03:54,210 --> 00:03:56,089 van die onderliggende byvoorbeeld. 76 00:03:56,089 --> 00:03:58,880 Ten einde vir ons om te kry wat punt, laat ons eerste praat 'n bietjie 77 00:03:58,880 --> 00:04:01,740 oor die argitektuur van Cloud 9. 78 00:04:01,740 --> 00:04:05,290 >> So die manier waarop ons gebruik om interaksie met Cloud 9 79 00:04:05,290 --> 00:04:06,610 is heeltemal deur die kliënt. 80 00:04:06,610 --> 00:04:10,610 Ons maak 'n webblaaier, ons tik in die CS50.io. 81 00:04:10,610 --> 00:04:14,431 Ons het uiteindelik, na verifikasie, word aangebied met die IO. 82 00:04:14,431 --> 00:04:16,180 Maar besef dat daar ' 'n paar stappe 83 00:04:16,180 --> 00:04:18,180 wat eintlik kry ons hierdie punt. 84 00:04:18,180 --> 00:04:22,390 Die heel eerste ding is dat my kliënt, die webblaaier, 85 00:04:22,390 --> 00:04:27,440 op versoek en na verifikasie, laai die GUI en die plug-ins 86 00:04:27,440 --> 00:04:30,170 van sommige CDN, van sommige Inhoud Delivery Network. 87 00:04:30,170 --> 00:04:32,700 Dit kan eerlik enige plek wees. 88 00:04:32,700 --> 00:04:35,390 >> En dit is eintlik afsonderlike van die onderliggende byvoorbeeld. 89 00:04:35,390 --> 00:04:38,890 Dit is belangrik om te besef dat dit eintlik net 'n klomp van die statiese lêers. 90 00:04:38,890 --> 00:04:42,600 Dit is 'n klomp van die JavaScript wat afgelaai word vanaf die CDN 91 00:04:42,600 --> 00:04:45,200 op my webblaaier, en al die GUI dat jy 92 00:04:45,200 --> 00:04:48,460 sien here-- dit is regtig key-- al die GUI wat jy hier sien 93 00:04:48,460 --> 00:04:50,480 is loop op die kliënt kant. 94 00:04:50,480 --> 00:04:53,820 Alles wat jy sien in die wolk 9 werkspasie 95 00:04:53,820 --> 00:04:56,010 is eintlik loop in die leser. 96 00:04:56,010 --> 00:04:59,950 En enigiets wat jy stuur saam na die onderliggende byvoorbeeld 97 00:04:59,950 --> 00:05:04,000 gekommunikeer met die instansie langs hierdie tweede aparte kanaal, 98 00:05:04,000 --> 00:05:07,240 en word dan gered op dat Docker byvoorbeeld. 99 00:05:07,240 --> 00:05:09,660 >> So die rede dat ek sê dit is 'n Docker byvoorbeeld 100 00:05:09,660 --> 00:05:12,650 is dat die onderliggende tegnologie is nie die gebruik van virtuele masjiene, 101 00:05:12,650 --> 00:05:16,040 maar in plaas daarvan is die gebruik van 'n tegnologie genaamd Docker, 102 00:05:16,040 --> 00:05:20,200 wat basies allows-- die naaste analogie is 'n virtuele masjien. 103 00:05:20,200 --> 00:05:24,800 Maar dit is subtiel verskillende in dat daar 104 00:05:24,800 --> 00:05:28,900 baie geleenthede om 'n loop kombinasie van verskillende Docker 105 00:05:28,900 --> 00:05:30,760 gevalle op 'n masjien. 106 00:05:30,760 --> 00:05:34,660 En hulle kan word gespin in 'n baie vinnige opvolging. 107 00:05:34,660 --> 00:05:38,920 Dit is nie heeltemal die meer streng onderskeid 108 00:05:38,920 --> 00:05:42,840 tussen verskillende Docker gevalle as daar in die virtuele masjiene, 109 00:05:42,840 --> 00:05:45,730 maar nog steeds daar is 'n baie differensiasie en skeiding 110 00:05:45,730 --> 00:05:48,330 tussen hierdie verskillende gevalle. 111 00:05:48,330 --> 00:05:48,830 OK. 112 00:05:48,830 --> 00:05:50,980 So het die twee stappe wat hier is belangrik om te besef 113 00:05:50,980 --> 00:05:57,370 is dat wanneer ons gaan na CS50.io, ons is die aflaai van die GUI en die plug-ins, 114 00:05:57,370 --> 00:06:01,640 wat geskryf is in JavaScript, op om die leser of in die leser. 115 00:06:01,640 --> 00:06:05,980 En dit is miskien 'n paar megagrepe werd van inligting. 116 00:06:05,980 --> 00:06:09,460 Op daardie punt, wanneer die GUI het gelaai en die plug-ins het begin, 117 00:06:09,460 --> 00:06:12,530 dan is dit begin om te kommunikeer met die Docker byvoorbeeld, wat nie 118 00:06:12,530 --> 00:06:15,210 noodwendig dieselfde bediener. 119 00:06:15,210 --> 00:06:16,940 >> Nou is daar 'n uitsondering op hierdie. 120 00:06:16,940 --> 00:06:22,130 Ons kan eintlik beide die leweringsmeganisme vir die GUI self 121 00:06:22,130 --> 00:06:25,740 en die Docker byvoorbeeld in almal van dieselfde bediener, wat 122 00:06:25,740 --> 00:06:29,660 is eintlik iets wat ons doen vir die regte weergawe van Cloud 9. 123 00:06:29,660 --> 00:06:33,470 Dit is nie iets wat ons het gepubliseerde baie Dit val, 124 00:06:33,470 --> 00:06:35,930 maar ons het nie ook 'n offline weergawe wat 125 00:06:35,930 --> 00:06:40,010 kan jy 'n aflaai verpak weergawe van al hierdie dinge 126 00:06:40,010 --> 00:06:43,670 en toelaat dat jy Wolk hardloop 9 in 'n regte omgewing. 127 00:06:43,670 --> 00:06:48,325 >> Beweeg dit af en op die wolk jou plaaslike masjien het 'n impak. 128 00:06:48,325 --> 00:06:50,200 In die besonder, het jy geen meer die vermoë 129 00:06:50,200 --> 00:06:52,280 om jou werkspasie met ander te deel. 130 00:06:52,280 --> 00:06:58,630 Jy nie meer kan oopmaak Cloud 9 uit, en die CS50 IDE, vanaf enige rekenaar 131 00:06:58,630 --> 00:07:02,950 en sien dieselfde lêers wat jy werk met tevore. 132 00:07:02,950 --> 00:07:06,310 Maar in plaas dit werk geheel en al op jou eie plaaslike masjien 133 00:07:06,310 --> 00:07:09,270 sonder toegang tot die internet. 134 00:07:09,270 --> 00:07:13,330 Maar nog steeds, selfs in daardie model, selfs al het ons een virtuele masjien 135 00:07:13,330 --> 00:07:15,200 wat in wese hardloop hierdie dinge. 136 00:07:15,200 --> 00:07:19,480 >> Ons het 'n aparte bediener wat lewering wese die Cloud 9 137 00:07:19,480 --> 00:07:23,640 inhoud, en dan sal ons 'n Docker byvoorbeeld 138 00:07:23,640 --> 00:07:32,280 wat verantwoordelik is vir die kommunikasie met daardie IDE vir die agterkant. 139 00:07:32,280 --> 00:07:32,780 OK. 140 00:07:32,780 --> 00:07:38,700 So die hele GUI is geskryf heeltemal in JavaScript 141 00:07:38,700 --> 00:07:42,800 gebruik van Node.js en die wolk 9 SDK, wat ons kry in net 'n minuut. 142 00:07:42,800 --> 00:07:46,650 En al die plug-ins is loop op die kliënt se kant. 143 00:07:46,650 --> 00:07:51,780 So laat ons fokus dan 'n bietjie deur te aanvaar 144 00:07:51,780 --> 00:07:55,670 dat dit die eerste stap het eintlik suksesvol voltooi, 145 00:07:55,670 --> 00:07:58,990 en kyk net na hierdie Docker byvoorbeeld. 146 00:07:58,990 --> 00:08:01,220 >> So in hierdie geval, is hierdie is die standaard manier 147 00:08:01,220 --> 00:08:04,870 dink oor die doen Cloud 9 plug-in ontwikkeling is dat jy gaan 148 00:08:04,870 --> 00:08:07,940 word kode skryf wat sal in die gebruiker se webblaaier te loop, 149 00:08:07,940 --> 00:08:11,610 en jy het die geleentheid met behulp van 'n paar APIs om te kommunikeer 150 00:08:11,610 --> 00:08:16,470 met die onderliggende Docker byvoorbeeld hardloop paar code daar en doen niks 151 00:08:16,470 --> 00:08:18,860 wat jy dalk wil om te doen. 152 00:08:18,860 --> 00:08:22,000 So dit gaan wees die konteks dat ons sal 153 00:08:22,000 --> 00:08:24,340 gebruik word om vir die res van hierdie praat. 154 00:08:24,340 --> 00:08:26,400 En hou net hierdie model in gedagte. 155 00:08:26,400 --> 00:08:28,966 Dit sal baie belangrik wees in net 'n paar minute. 156 00:08:28,966 --> 00:08:30,840 Daar is 'n paar van die links wil ek om jou te wys. 157 00:08:30,840 --> 00:08:34,150 Eerste van alles, het Cloud 9 verskaf nogal 'n baie dokumentasie 158 00:08:34,150 --> 00:08:38,740 dit is redelik goed, wat wys hoe om basiese plug-in die ontwikkeling te doen. 159 00:08:38,740 --> 00:08:43,320 So as jy gaan na hierdie skakel, cloud9-sdk.readme.io, 160 00:08:43,320 --> 00:08:45,261 jy sal die dokumentasie daar te sien. 161 00:08:45,261 --> 00:08:47,510 En 'n baie van hierdie inligting dat jy oor om te sien 162 00:08:47,510 --> 00:08:50,310 kan ook daar gevind, plus nog baie meer. 163 00:08:50,310 --> 00:08:55,880 Jy kan ook die open source vind weergawe van Cloud 9 op hierdie URL, 164 00:08:55,880 --> 00:09:04,270 github.com/c9/core, wat ons gebruik as deel van die regte weergawe van die IDE, 165 00:09:04,270 --> 00:09:07,540 sodat jy in staat is om te hê sal dieselfde Cloud 9 ervaring, 166 00:09:07,540 --> 00:09:09,660 maar in 'n regte manier. 167 00:09:09,660 --> 00:09:10,160 Alles reg. 168 00:09:10,160 --> 00:09:15,560 So laat ons neem 'n blik op 'n werklike Cloud 9 werkspasie hier. 169 00:09:15,560 --> 00:09:17,880 En weer, ek wil om te wys uit 'n paar van die dinge. 170 00:09:17,880 --> 00:09:21,560 Dit is, reg hier, 'n normale CS50 IDE. 171 00:09:21,560 --> 00:09:26,830 En ek het 'n minder afgeskakel gemaklik af onder die kieslys 172 00:09:26,830 --> 00:09:28,807 sodat ek kan almal sien van die opsies. 173 00:09:28,807 --> 00:09:31,140 Wat ek wil jou regterkant wys is nou 'n paar dinge. 174 00:09:31,140 --> 00:09:33,140 Eerstens, as ek gaan in die voorkeure en dan 175 00:09:33,140 --> 00:09:37,040 klik op Plug-in-bestuurder, en tik in CS50 hier 176 00:09:37,040 --> 00:09:40,590 ons kan sien dat daar, in werklikheid, 'n paar van CS50 plug-ins wat 177 00:09:40,590 --> 00:09:46,280 geïnstalleer en ons loop om staat stel om die veranderinge wat ons het 178 00:09:46,280 --> 00:09:48,670 gesien vir die CS50 IDE. 179 00:09:48,670 --> 00:09:51,450 >> Nou is daar in wese twee plug-ins wat uitgevoer word. 180 00:09:51,450 --> 00:09:54,980 Daar is een wat geroep Simple, wat is die vereenvoudig af wat 181 00:09:54,980 --> 00:10:00,020 kan jy die getal te verminder spyskaart opsies langs die top, 182 00:10:00,020 --> 00:10:03,070 en hulle het hierdie sogenaamde minder gemaklik af. 183 00:10:03,070 --> 00:10:07,280 En dan is daar ook CS50 Statistiek, wat is dalk net effens Verkeerd benoem. 184 00:10:07,280 --> 00:10:09,550 Want dit is wat wys jou die inligting 185 00:10:09,550 --> 00:10:10,850 oor die onderliggende werkspasie. 186 00:10:10,850 --> 00:10:13,560 Spuit dit hierdie knoppies langs die bo regs. 187 00:10:13,560 --> 00:10:18,620 Spuit dit ook 'n menu-item in die venster item, in die menu venster 188 00:10:18,620 --> 00:10:21,730 reg hier, CS50 IDE Info. 189 00:10:21,730 --> 00:10:27,380 En dit is wat verantwoordelik is vir die instantiëren hierdie dialoog wat ons hier gesien het, 190 00:10:27,380 --> 00:10:31,460 met al die inligting wat ons is gewoond om te sien in 'n CS50 IDE 191 00:10:31,460 --> 00:10:32,870 werkspasie. 192 00:10:32,870 --> 00:10:33,370 OK. 193 00:10:33,370 --> 00:10:36,910 So daar is eintlik 'n meer plug-in dat ons so goed ontwikkel het. 194 00:10:36,910 --> 00:10:40,110 En daar is 'n paar van die ander wat ons het ook nie publiek vrygestel. 195 00:10:40,110 --> 00:10:45,880 Maar een van hulle is die algehele plug-in wat dit moontlik maak GDB om te funksioneer. 196 00:10:45,880 --> 00:10:50,190 So een van die aspekte van Cloud 9 is dat hulle reeds voorsien 197 00:10:50,190 --> 00:10:53,210 hierdie GUI te implementeer 'n debugger. 198 00:10:53,210 --> 00:10:57,360 En een van die plug-ins wat ons het basies geskep 199 00:10:57,360 --> 00:11:02,380 haak GDB met hierdie GUI gebaseerde weergawe van 'n debugger. 200 00:11:02,380 --> 00:11:07,680 En is verantwoordelik vir bemiddeling al van die versoeke wat 'n gebruiker kan hê, 201 00:11:07,680 --> 00:11:10,310 tussen versterking oor of skep inspeksiepunte of enigiets 202 00:11:10,310 --> 00:11:15,390 langs die lyne, om die vertaling wat om opdragte wat GDB kan verstaan ​​nie, 203 00:11:15,390 --> 00:11:16,920 uitreiking daardie opdragte te GDB. 204 00:11:16,920 --> 00:11:19,260 En so gou as GDB reik 'n reaksie, dan 205 00:11:19,260 --> 00:11:23,250 ons dat interpreteer en werk die GUI soos nodig. 206 00:11:23,250 --> 00:11:25,130 >> Dit is waarskynlik een van die meer ingewikkelde 207 00:11:25,130 --> 00:11:28,840 van die plug-ins, so in plaas wat ons gaan om te fokus op vandag is in werklikheid 208 00:11:28,840 --> 00:11:34,590 die Statistiek plug-in, en ons sal praat 'n bietjie oor Simple, as well. 209 00:11:34,590 --> 00:11:39,100 So ek voorheen genoem, en ek wil regtig om baie, baie duidelik dat weer maak, 210 00:11:39,100 --> 00:11:41,600 al hierdie dat ons hier sien is in wese 211 00:11:41,600 --> 00:11:43,300 wat op die kliënt kant. 212 00:11:43,300 --> 00:11:45,810 Ons sien 'n terminale venster hieronder, en dat, natuurlik, 213 00:11:45,810 --> 00:11:49,230 as ons tik opdragte in dat wat sal dan uitgereik word 214 00:11:49,230 --> 00:11:50,690 om die onderliggende byvoorbeeld. 215 00:11:50,690 --> 00:11:55,280 Net so, as ons 'n nuwe lêer oop te maak en tik 'n paar dinge in dit en stoor dit, 216 00:11:55,280 --> 00:11:58,240 dat 'n lêer sal gered word op die onderliggende byvoorbeeld. 217 00:11:58,240 --> 00:12:02,310 >> Maar die redakteur self, dit terminale venster self, 218 00:12:02,310 --> 00:12:05,700 is al in werking gestel JavaScript en is al 'n plug-in 219 00:12:05,700 --> 00:12:09,800 dat ons kan kommunikeer met, en dus verander. 220 00:12:09,800 --> 00:12:11,450 Daar is 'n baie rekbaarheid hier. 221 00:12:11,450 --> 00:12:14,690 Ek beveel die neem van 'n blik op Cloud 9 se GitHub rekening 222 00:12:14,690 --> 00:12:17,790 die oorgrote hoeveelheid sien plug-ins wat beskikbaar is, 223 00:12:17,790 --> 00:12:23,070 en net hoe goed geskryf baie van die kode is vir rekbaarheid. 224 00:12:23,070 --> 00:12:24,920 So daar is iets wat ek wil noem 225 00:12:24,920 --> 00:12:30,480 oor hierdie so goed, wat is dat daar 'n baie of-- daar 226 00:12:30,480 --> 00:12:33,450 'n baie van die funksies wat voorsien in die voorkeure 227 00:12:33,450 --> 00:12:37,970 venster, wat ons nou net gesien het verwys na 'n paar minute gelede. 228 00:12:37,970 --> 00:12:43,690 >> Een van die dinge wat ons kan doen as IDE ontwikkelaars, of as Cloud 9 ontwikkelaars, 229 00:12:43,690 --> 00:12:47,410 is om werklik te spuit sommige voorkeur panele van ons eie. 230 00:12:47,410 --> 00:12:50,660 So het die eenvoudige modus, of die minder gemaklike af, 231 00:12:50,660 --> 00:12:54,780 en ook die IDE inligting, of die statistieke plug-in, 232 00:12:54,780 --> 00:12:58,560 het elke paar voorkeur panele wat ons toelaat om te verander 233 00:12:58,560 --> 00:13:00,620 die gedrag van elk van daardie. 234 00:13:00,620 --> 00:13:04,140 Jy sal sien dat as ek gaan na die Voorkeure en gaan na instellings wat 235 00:13:04,140 --> 00:13:07,100 daar is 'n blad CS50, een wat sê IDE inligting. 236 00:13:07,100 --> 00:13:09,810 En ek kan die verander inligting verfris tempo. 237 00:13:09,810 --> 00:13:12,250 >> Effektief, wat gebeur in die statistieke plug-in 238 00:13:12,250 --> 00:13:16,690 is dat elke N-sekondes, waar N-sekondes word gedefinieer deur hierdie voorkeur 239 00:13:16,690 --> 00:13:22,250 paneel, word inligting gehaal van die onderliggende byvoorbeeld gestuur 240 00:13:22,250 --> 00:13:25,490 terug na die kliënt se kant, die plug-in is dan 241 00:13:25,490 --> 00:13:28,650 interpretasie van die inligting van die onderliggende byvoorbeeld 242 00:13:28,650 --> 00:13:31,470 en die opdatering van die GUI soos nodig. 243 00:13:31,470 --> 00:13:34,710 Ons kan sien dat die reg nou is dit gestel tot 30 sekondes, en dit is die standaard. 244 00:13:34,710 --> 00:13:37,950 Maar ek kan beslis verander hoe vinnig dit gebeur net 245 00:13:37,950 --> 00:13:40,520 deur die wysiging van hierdie waarde. 246 00:13:40,520 --> 00:13:44,330 >> Nou een van die interessante dinge is dat hierdie voorkeur paneel, GUI, 247 00:13:44,330 --> 00:13:49,560 is regtig net 'n GUI weergawe van 'n baie van die onderliggende instellings 248 00:13:49,560 --> 00:13:52,220 wat aangebied word in into. 249 00:13:52,220 --> 00:13:56,336 So as ek gaan, byvoorbeeld, onder die CS50 IDE menu, of die Cloud 9 menu, 250 00:13:56,336 --> 00:13:58,210 afhangende van watter weergawe jy op soek is na, 251 00:13:58,210 --> 00:14:00,460 en gaan na een van hierdie settings-- in hierdie geval, 252 00:14:00,460 --> 00:14:03,420 die projek settings-- die projek instellings in hierdie geval 253 00:14:03,420 --> 00:14:07,740 geld vir alle instellings vir hierdie een werkplek. 254 00:14:07,740 --> 00:14:11,620 AANGESIEN gebruikers instellings van toepassing om al die werkruimtes 255 00:14:11,620 --> 00:14:15,110 dat jy kan hê in jou rekening. 256 00:14:15,110 --> 00:14:18,520 >> So, net soos 'n eenkant hier, om ekstra duidelik te wees, 257 00:14:18,520 --> 00:14:22,570 daar is 'n skeiding tussen die twee want hoewel by verstek ons 258 00:14:22,570 --> 00:14:26,490 een werkplek, wat is die CS50 IDE, as jy 259 00:14:26,490 --> 00:14:31,900 was om te klik op jou klein avatar hier en gaan na dashboard, 260 00:14:31,900 --> 00:14:35,820 sal jy vind dat jy kan eintlik skep bykomende werkruimtes as well. 261 00:14:35,820 --> 00:14:39,140 Jy kan hier sien dat ek het nie 'n IDE 50 werkspasie, en ook 262 00:14:39,140 --> 00:14:41,930 vir die doeleindes van hierdie seminaar, 'n werkplek 263 00:14:41,930 --> 00:14:45,084 genoem werkspasie, wat is reg hier. 264 00:14:45,084 --> 00:14:46,750 So in elk geval, ek het verskillende voorkeure. 265 00:14:46,750 --> 00:14:49,910 Elkeen van hierdie mag hê aparte projek voorkeure, 266 00:14:49,910 --> 00:14:54,091 maar die gebruiker voorkeure is gedeel tussen al my werkruimtes. 267 00:14:54,091 --> 00:14:55,840 By the way, dit is ook baie handig as jy 268 00:14:55,840 --> 00:14:59,080 wil 'n werkplek te skep met verskillende aanpassing opsies. 269 00:14:59,080 --> 00:15:01,640 En dit is baie handig om skep 'n nuwe werkplek. 270 00:15:01,640 --> 00:15:04,230 En kies die een wat kan wees vooraf ingestel in 'n ander manier, 271 00:15:04,230 --> 00:15:07,000 miskien vir PHP spesifiek of Django spesifiek. 272 00:15:07,000 --> 00:15:08,960 Of selfs net persoonlike. 273 00:15:08,960 --> 00:15:11,320 Die CS50 werkspasie sjabloon is die een wat ons 274 00:15:11,320 --> 00:15:15,420 gebruik wat outomaties installeer Update 50 en al die instellings 275 00:15:15,420 --> 00:15:20,531 dat ons daar, insluitend al die plug-ins wat ons vir die CS50 IDE. 276 00:15:20,531 --> 00:15:21,030 OK. 277 00:15:21,030 --> 00:15:22,200 Maar laat ons terug kom. 278 00:15:22,200 --> 00:15:25,640 So weer, daar is projekte instellings, en dit is die kinders 279 00:15:25,640 --> 00:15:27,140 dat ons is op soek na hier. 280 00:15:27,140 --> 00:15:29,056 En agterkom dat daar is 'n klomp van die instellings, 281 00:15:29,056 --> 00:15:32,720 baie van hulle ooreenstem met voorkeur panele, maar nie almal van hulle. 282 00:15:32,720 --> 00:15:40,800 Maar ons kan dit hier sien, in this-- oh Nee, ek het dit op die gebruikers instellings? 283 00:15:40,800 --> 00:15:43,280 Miskien het ek dit in die gebruiker instellings. 284 00:15:43,280 --> 00:15:45,480 En dit, hier gaan ons. 285 00:15:45,480 --> 00:15:49,840 In die gebruikers instellings, kan ons sien dat ons 'n CS50 artikel, 286 00:15:49,840 --> 00:15:53,762 en dit word geskryf om deur hierdie Cloud 9 plug-ins 287 00:15:53,762 --> 00:15:54,720 wat ons het geïmplementeer. 288 00:15:54,720 --> 00:15:57,400 Daar is die eenvoudige een tot ooreenstem met dié eenvoudige plug-in, 289 00:15:57,400 --> 00:16:00,930 en die statistieke wat een ooreenstem met dié GUI gebaseer 290 00:16:00,930 --> 00:16:02,440 weergawe van die voorkeur paneel. 291 00:16:02,440 --> 00:16:05,740 Die refresh rate, in hierdie geval, is ingestel om 20 sekondes. 292 00:16:05,740 --> 00:16:09,740 >> Dit is alles, hopelik, die begin van 'n paar inligting 293 00:16:09,740 --> 00:16:14,420 dat ons eintlik sien in 'n bietjie bietjie meer detail, 'n oomblik. 294 00:16:14,420 --> 00:16:14,920 OK. 295 00:16:14,920 --> 00:16:17,520 So kom ons sê ons wil eintlik kry neer. 296 00:16:17,520 --> 00:16:20,600 Ons verstaan ​​dat al die dinge wat gebeur op die kliënt kant 297 00:16:20,600 --> 00:16:24,560 is eintlik gedoen op die leser, wat beteken dat enige plug-ins wat ek skryf 298 00:16:24,560 --> 00:16:27,990 gaan geskryf word met die leser in gedagte. 299 00:16:27,990 --> 00:16:30,830 En as ek wil eintlik te doen enigiets op die werkplek, 300 00:16:30,830 --> 00:16:33,360 Ek sal dalk te inisieer 'n soort van kommunikasie 301 00:16:33,360 --> 00:16:35,970 tussen die leser en die werkplek om seker te wees 302 00:16:35,970 --> 00:16:38,212 dat dit eintlik vermag. 303 00:16:38,212 --> 00:16:40,170 Maar laat ons sê dat dit nou Ek wil om te kry om dit te 304 00:16:40,170 --> 00:16:43,440 en eintlik maak my eerste plug-in. 305 00:16:43,440 --> 00:16:48,970 Wel, die manier wat jy wil in staat wees om te doen wat eintlik redelik maklik. 306 00:16:48,970 --> 00:16:51,370 Dit is wat in die Cloud 9 SDK. 307 00:16:51,370 --> 00:16:55,520 Maar dit is om te neem jou bestaande werkspasie naam, wat 308 00:16:55,520 --> 00:16:59,810 is die URL wat jy het op die top van jou bar, en voeg die volgende om dit te. 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 Nou wat dit gaan stel is dat die SDK = 1 sal eintlik het die SDK 313 00:17:08,260 --> 00:17:11,430 af waar, wat in staat sal stel 'n paar van bykomende dinge. 314 00:17:11,430 --> 00:17:15,770 En debug = 2 sal fout boodskappe toelaat te wees 'n bietjie meer verbose. 315 00:17:15,770 --> 00:17:20,170 >> En so as jy bring die JavaScript konsole in jou Chrome blad ontwikkelaar, 316 00:17:20,170 --> 00:17:22,829 sal jy eintlik in staat wees om sien 'n baie meer inligting 317 00:17:22,829 --> 00:17:24,349 as jy sou anders. 318 00:17:24,349 --> 00:17:28,310 So ek raai beide van hierdie draai op dieselfde tyd, want dit is werklik 319 00:17:28,310 --> 00:17:31,170 nuttig om dit alles te hê Bykomende inligting. 320 00:17:31,170 --> 00:17:35,330 Dit is belangrik om daarop te let, maar dat draai op debug om die waarde van 2 321 00:17:35,330 --> 00:17:38,120 beteken dat dit baie verbose, en dit is eintlik 322 00:17:38,120 --> 00:17:42,590 sal ietwat merkbaar stadiger jou IDE, veral wanneer die laai 323 00:17:42,590 --> 00:17:45,657 of wanneer doen nie swaar take. 324 00:17:45,657 --> 00:17:46,740 Dus net dit in gedagte hou. 325 00:17:46,740 --> 00:17:51,500 Dit is nuttig vir die ontwikkeling, maar jy mag nie wil hê om dit op al die tyd te hê. 326 00:17:51,500 --> 00:17:53,080 >> So laat eintlik dit te doen. 327 00:17:53,080 --> 00:17:59,374 Maar in hierdie geval, ek het eintlik reeds 'n werkplek met hierdie. 328 00:17:59,374 --> 00:18:00,540 So laat ons sien, SDK = 1 & debug = 2. 329 00:18:00,540 --> 00:18:03,140 330 00:18:03,140 --> 00:18:07,770 Met 'n paar van die plug-ins hopelik reeds geïnstalleer. 331 00:18:07,770 --> 00:18:08,340 Alles reg. 332 00:18:08,340 --> 00:18:15,050 So nou dat ek het op die SDK debug af, sien dat ons in debug modus 333 00:18:15,050 --> 00:18:20,430 sodat ons kan kyk na die dev gereedskap om te sien enige foute wat ek sal agter skerm te doen. 334 00:18:20,430 --> 00:18:23,110 Ons kan sien dat daar is 'n klomp van foute hier. 335 00:18:23,110 --> 00:18:28,090 Nou is dit eintlik redelik algemeen vir Wolk 9 om 'n paar van die foute, 336 00:18:28,090 --> 00:18:30,680 en ek wil nie bekommerd oor hulle totdat jy 337 00:18:30,680 --> 00:18:32,930 iets sien wat dalk spesifiek te wees om die plug-in 338 00:18:32,930 --> 00:18:34,510 dat jy gebeur skep. 339 00:18:34,510 --> 00:18:37,620 >> So hier, byvoorbeeld, kry ons 'n paar van 404s-- nie gevind nie. 340 00:18:37,620 --> 00:18:42,910 Ons sien ons nie 'n paar te laai inligting uit die onderliggende byvoorbeeld 341 00:18:42,910 --> 00:18:43,670 self. 342 00:18:43,670 --> 00:18:46,545 En daar is 'n klomp van die addisionele inligting, maar die meeste van hierdie is ons 343 00:18:46,545 --> 00:18:47,970 eintlik gaan om te ignoreer vir nou. 344 00:18:47,970 --> 00:18:50,130 Want dit is mooi algemeen vir 'n werkplek 345 00:18:50,130 --> 00:18:53,200 om net 'n paar van die foute. 346 00:18:53,200 --> 00:18:53,700 OK. 347 00:18:53,700 --> 00:18:56,680 Ek gaan hierdie skuif uit die pad en terug te kom hier. 348 00:18:56,680 --> 00:19:01,860 En nou het die maklike manier, die lekker ding oor met hierdie ontwikkelaar 349 00:19:01,860 --> 00:19:07,330 geaktiveer is dat dit laat my om 'n nuwe plug-in maklik te skep. 350 00:19:07,330 --> 00:19:12,390 >> So terwyl voordat ek het eintlik nie hierdie nuwe opsie plug-in wat beskikbaar is, 351 00:19:12,390 --> 00:19:16,460 wat ons kan sien as ek gaan terug na my nie ontwikkelaar modus hier, 352 00:19:16,460 --> 00:19:18,510 daar is geen nuwe plug-in. 353 00:19:18,510 --> 00:19:23,220 Deur gebruik te maak van die SDK af, ek het 'n nuwe plug-in beskikbaar 354 00:19:23,220 --> 00:19:25,660 en ek kan maklik 'n. 355 00:19:25,660 --> 00:19:28,160 In hierdie geval, daar is 'n paar van verskillende opsies, eenvoudig, 356 00:19:28,160 --> 00:19:30,850 'n leë plug-in, 'n volledige plug-in, installeerder, Cloud 9 bondel. 357 00:19:30,850 --> 00:19:33,030 Kom ons kies net 'n leë plug-in vir nou 358 00:19:33,030 --> 00:19:37,670 sodat ons 'n baie kan sien eenvoudige weergawe van die een. 359 00:19:37,670 --> 00:19:41,520 >> Sien nou dat langs die linkerkant dis daar is nou 360 00:19:41,520 --> 00:19:45,080 iets onder gunstelinge, wat is die lys van 'n paar van plug-ins 361 00:19:45,080 --> 00:19:47,020 wat nou beskikbaar is vir my. 362 00:19:47,020 --> 00:19:50,420 As ek dit uit te brei, sal ons in staat wees om die te sien. 363 00:19:50,420 --> 00:19:52,730 Nou wil ek julle aan om in kennis iets hier, wat 364 00:19:52,730 --> 00:19:58,260 is dat dit nie eintlik vervat binne die werkplek gids 365 00:19:58,260 --> 00:20:03,190 op my onderliggende Ubuntu byvoorbeeld maar dit is vervat op die hardeskyf. 366 00:20:03,190 --> 00:20:06,330 En waar dit geleë, want Dit is baie nuttig om te weet, 367 00:20:06,330 --> 00:20:09,570 veral as jy gaan enigiets te doen met Git, 368 00:20:09,570 --> 00:20:16,870 waar dit geleë is in 'n .c9 gids, / plugins. 369 00:20:16,870 --> 00:20:21,110 So as ek daar gaan, kan ons nou sien dat die lys van plug-ins wat hier 370 00:20:21,110 --> 00:20:26,390 ooreenstem met die lys van die plug-ins wat ek sien aan die linkerkant van my werkplek. 371 00:20:26,390 --> 00:20:28,610 >> Nou by verstek, en dit is soort van vreemde, 372 00:20:28,610 --> 00:20:31,760 deur verstek wanneer ek 'n nuwe plug-in in 'n werkplek, 373 00:20:31,760 --> 00:20:36,620 dit hierdie plug-in wat deur skep verstek het 'n naam van 'n onderstreping. 374 00:20:36,620 --> 00:20:39,760 Algemeen wat dalk veroorsaak dat sommige probleme. 375 00:20:39,760 --> 00:20:42,340 So die volgende stap dat ek gewoonlik verrig 376 00:20:42,340 --> 00:20:45,880 is net om te verwyder wat spesifieke plug-in 377 00:20:45,880 --> 00:20:52,810 en laat slegs die eenvoudige plug-in wat was daar aanvanklik, plugin.simple. 378 00:20:52,810 --> 00:20:55,430 En dit is die enigste een wat daar is. 379 00:20:55,430 --> 00:20:55,930 OK. 380 00:20:55,930 --> 00:20:58,380 >> So wat beteken dit eintlik lyk? 381 00:20:58,380 --> 00:21:01,210 Wel, dit is, weer, 'n JavaScript pakket 382 00:21:01,210 --> 00:21:05,220 wat sluit 'n paar lêers, insluitend 'n plugin.js lêer, waar 383 00:21:05,220 --> 00:21:07,700 die belangrikste inhoud van my plug-in is geleë, 384 00:21:07,700 --> 00:21:10,590 'n package.json lêer, wat eintlik spesifiseer 385 00:21:10,590 --> 00:21:13,760 sommige metadata oor hierdie plug-in, soos wie die skrywer is, 386 00:21:13,760 --> 00:21:19,240 enige bykomende inligting oor dit, 'n beskrywing van die plug-in, en so aan. 387 00:21:19,240 --> 00:21:22,190 En ook by verstek, is dit skep 'n leeg README lêer, 388 00:21:22,190 --> 00:21:26,100 en 'n leë toets lêer vir jou skep 'n paar addisionele dokumentasie, 389 00:21:26,100 --> 00:21:29,430 en 'n toets harnas as jy wil om dit te doen. 390 00:21:29,430 --> 00:21:34,160 >> So laat ons net 'n blik op die eerste, baie vinnig, by die package.json lêer. 391 00:21:34,160 --> 00:21:38,240 Dit is maklik genoeg om net te gaan deur en dit in die gebiede van hierdie te vul 392 00:21:38,240 --> 00:21:42,510 wat jy graag wil hê om in te vul, soos bied dit 'n naam, gee 'n beskrywing, 393 00:21:42,510 --> 00:21:45,010 Itereer die weergawe elke so dikwels, verskaf 394 00:21:45,010 --> 00:21:47,570 'n skrywer vir elke persoon wat bydra, 395 00:21:47,570 --> 00:21:53,000 voeg dit by die bydraers artikel, en die res van dit wat jy 396 00:21:53,000 --> 00:21:56,390 kan pretty much net laat as wat dit is vir nou. 397 00:21:56,390 --> 00:21:58,490 >> Daar is een ding wat belangrik om op te let, 398 00:21:58,490 --> 00:22:04,990 wat onder die afdeling plug-ins, daar is 'n sleutel genoem plug-in. 399 00:22:04,990 --> 00:22:11,800 En dit is gekoppel aan die naam van die JavaScript lêer genaamd plugin.js. 400 00:22:11,800 --> 00:22:18,290 So dit is hoe Cloud 9 weet, wanneer dit lees hierdie package.json lêer, wat 401 00:22:18,290 --> 00:22:20,720 van die JS lêers om werklik te laai. 402 00:22:20,720 --> 00:22:25,440 As ek skep bykomende js lêers of wil dat die JS lêer hernoem van plug-in, 403 00:22:25,440 --> 00:22:30,380 Ek het ook om dit te verander in die package.json lêer. 404 00:22:30,380 --> 00:22:33,660 >> Enige vrae uit die gehoor? 405 00:22:33,660 --> 00:22:34,160 Geen. 406 00:22:34,160 --> 00:22:38,100 Dat een persoon wat volgende saam met my so ver. 407 00:22:38,100 --> 00:22:38,760 >> OK. 408 00:22:38,760 --> 00:22:42,300 So ek eintlik geskep het 'n paar plug-ins reeds 409 00:22:42,300 --> 00:22:44,100 Ek dink in hierdie werkspasie. 410 00:22:44,100 --> 00:22:53,800 So laat ontslae te raak van 'n paar van hierdie, voeg SDK = 1 & debug = 2, herlaai die werkplek, 411 00:22:53,800 --> 00:22:58,780 en laat ons kyk of ons het nou die plug-ins. 412 00:22:58,780 --> 00:23:01,430 C9 / plugins. 413 00:23:01,430 --> 00:23:01,930 Hier gaan ons. 414 00:23:01,930 --> 00:23:06,910 Ons kan nou sien in my C9 / plugins van hierdie een, ons het plugin.1 en plugin.2. 415 00:23:06,910 --> 00:23:15,260 So ons gaan net stap the-- net die verhoging van die bedrag van die probleme 416 00:23:15,260 --> 00:23:16,660 in elk van hierdie plug-ins. 417 00:23:16,660 --> 00:23:20,140 Maar hier as ek 'n nuwe plug-in, Ek kan dit by my gunstelinge. 418 00:23:20,140 --> 00:23:25,560 En ek sal net verwyder diegene uit die onderliggende lêerstelsel. 419 00:23:25,560 --> 00:23:28,050 >> Kom ons verwyder dit. 420 00:23:28,050 --> 00:23:33,206 Nou as ek oop my eerste plug-in, en oop plugin.js, 421 00:23:33,206 --> 00:23:39,980 kan ons hier sien die onderliggende eenvoudige weergawe van 'n plug-in. 422 00:23:39,980 --> 00:23:42,170 Laat my eintlik terug te gaan hierdie ander werkplek 423 00:23:42,170 --> 00:23:47,160 want jy kan ten minste, hier te sien, wat 'n leë plug-in lyk eintlik soos. 424 00:23:47,160 --> 00:23:51,810 So onder die enjinkap, dit lyk baie soortgelyk aan tegnologie genoem, 425 00:23:51,810 --> 00:23:53,780 Ek dink dit is RequireJS. 426 00:23:53,780 --> 00:23:56,000 Let daarop dat dit nie regtig lyk, miskien, 427 00:23:56,000 --> 00:23:59,150 dieselfde as 'n ander JavaScript lêers wat ons kan gesien. 428 00:23:59,150 --> 00:24:04,250 Maar in plaas daarvan, daar is 'n paar van net basiese lyne dat dit eintlik. 429 00:24:04,250 --> 00:24:06,900 >> Al hierdie dinge is die eerste vertolk deur die IDE, 430 00:24:06,900 --> 00:24:09,940 maar dit is nie eintlik hardloop totdat gespesifiseerde. 431 00:24:09,940 --> 00:24:13,610 En ek sal jou vertel oor wanneer daardie beteken eintlik in net 'n oomblik. 432 00:24:13,610 --> 00:24:17,840 Maar let dat hier is daar 'n main.consumes lyn in lyn 2, 433 00:24:17,840 --> 00:24:23,270 en dit bevat 'n lys van al die plug-ins dat dit plug-in is afhanklik van. 434 00:24:23,270 --> 00:24:27,150 So by verstek, ons dalk te doen te hê nie enige afhanklikhede op ander plug-ins, 435 00:24:27,150 --> 00:24:30,530 maar wanneer ons werklik nodig het om afhang van funksies verskaf 436 00:24:30,530 --> 00:24:34,900 deur ander plug-ins in die IDE, ons nodig het om 'n lys van die plug-ins 437 00:24:34,900 --> 00:24:36,890 in die main.consumes lyn. 438 00:24:36,890 --> 00:24:39,230 En dan moet ons koppel aan die kode 439 00:24:39,230 --> 00:24:42,860 hieronder, wat ek jou sal wys in net 'n oomblik oor hoe ons dit kan doen. 440 00:24:42,860 --> 00:24:46,100 >> Main.provides gee 'n noem hierdie plug-in 441 00:24:46,100 --> 00:24:49,190 dat die ander plug-ins kon gebruik in hul verbruik lyn. 442 00:24:49,190 --> 00:24:52,480 So in hierdie geval, my plug-in is net daar te stel by verstek, 443 00:24:52,480 --> 00:24:55,820 en ons moet verander om te wees van toepassing op ons eie plug-in, 444 00:24:55,820 --> 00:24:57,540 soos ons sal sien in net oomblik. 445 00:24:57,540 --> 00:25:01,230 Nou hier in die funksie belangrikste, hierdie funksie belangrikste 446 00:25:01,230 --> 00:25:05,630 is eintlik loop en geïnterpreteer is, maar dit nie eintlik doen baie. 447 00:25:05,630 --> 00:25:08,970 Dit raak net alles opgestel, maar dit nie eintlik die plug-in begin, 448 00:25:08,970 --> 00:25:11,220 ten spyte van wat die naam klink soos. 449 00:25:11,220 --> 00:25:14,690 Dit gebeur eintlik deur 'n reeks van metodes wat 450 00:25:14,690 --> 00:25:16,820 vervat in hierdie plug-in. 451 00:25:16,820 --> 00:25:20,830 >> So as ek rol af, kan ons sien dat ons 'n lewensiklus waar 452 00:25:20,830 --> 00:25:25,100 op 'n gebeurtenis genaamd las, of 'n gebeurtenis genaamd los, 453 00:25:25,100 --> 00:25:26,940 sommige gebeure werklik gebeur. 454 00:25:26,940 --> 00:25:33,500 Dit is regtig hier waar as die plug-in begin dat diegene metodes genoem word. 455 00:25:33,500 --> 00:25:37,240 So laat ons 'n bietjie meer konkrete oor hierdie en kyk na 'n voorbeeld. 456 00:25:37,240 --> 00:25:41,010 So hier vir plugin.1, wat Ons is basies gaan doen 457 00:25:41,010 --> 00:25:46,010 is om 'n menu-item te skep genoem CS50 Seminaar Dialog 1-- 458 00:25:46,010 --> 00:25:48,070 want ons het twee van them-- en ons gaan 459 00:25:48,070 --> 00:25:50,300 om dit te spuit in die menu venster. 460 00:25:50,300 --> 00:25:54,590 En wanneer ons kliek op dit, ons is gaan om oop te maak 'n dialoog wat 461 00:25:54,590 --> 00:25:56,290 wys ons 'n paar baie basiese inligting. 462 00:25:56,290 --> 00:25:58,050 >> In hierdie geval, net 'n hello world. 463 00:25:58,050 --> 00:26:01,880 So, dit is 'n baie eenvoudige hello world dialoog 464 00:26:01,880 --> 00:26:05,260 dat ons kan implementeer as 'n plug-in in Cloud 9. 465 00:26:05,260 --> 00:26:07,960 So laat ons sien hoe dit eintlik lyk. 466 00:26:07,960 --> 00:26:12,730 Ons sal stap vir stap deur dit net relatief vinnig, sodat ons 467 00:26:12,730 --> 00:26:15,580 kan kyk na die volgende plug-in sowel. 468 00:26:15,580 --> 00:26:19,510 Let daarop dat ons hier is inname van 'n verskeidenheid van plug-ins. 469 00:26:19,510 --> 00:26:26,080 Ons inname van 'n dialoog plug-in, opdragte, spyskaarte, en UI. 470 00:26:26,080 --> 00:26:30,440 Lyk soos ek eintlik is beslag dialoog twee keer, so ek kan verwyder nie. 471 00:26:30,440 --> 00:26:32,560 >> En sien dat die pad dat Ek hulle is verbind, 472 00:26:32,560 --> 00:26:37,940 dit is soort van metadata wat is vertel die plug-in-stelsel wat vereistes 473 00:26:37,940 --> 00:26:41,480 is eintlik wat nodig is vir hierdie plug-in te laai. 474 00:26:41,480 --> 00:26:46,400 Dit is ook belangrik om daarop te let dat volgorde plug-ins gelaai 475 00:26:46,400 --> 00:26:48,300 word nie gewaarborg nie. 476 00:26:48,300 --> 00:26:53,400 Maar wat is gewaarborg is dat as ek spesifiseer sommige plug-in as 'n vereiste, 477 00:26:53,400 --> 00:26:56,900 dat plug-in sal gelaai word voor hierdie een is gelaai. 478 00:26:56,900 --> 00:27:00,390 >> So dit beteken dat as jou plug-in vereis op sommige funksies wat 479 00:27:00,390 --> 00:27:04,380 deur iets anders in die IDE, moet jy seker wees dat jou plug-in verbruik 480 00:27:04,380 --> 00:27:09,260 dat plug-in sodat die afhanklikhede is sekere om jou plug-in te skep, 481 00:27:09,260 --> 00:27:15,010 of instansieer jou plug-in, net nadat bestaande raamwerk bestaan. 482 00:27:15,010 --> 00:27:18,870 So hier het ek genoem die metadata om die plug-in-bestuurder, 483 00:27:18,870 --> 00:27:20,990 watter ek gaan om te verteer. 484 00:27:20,990 --> 00:27:24,910 En in die belangrikste funksie hier Ek gaan dan koppel 485 00:27:24,910 --> 00:27:30,240 my kode vir diegene ingevoer plug-ins. 486 00:27:30,240 --> 00:27:33,420 >> So ek is net gaan om te skep 'n paar veranderlikes wat 487 00:27:33,420 --> 00:27:36,620 ooreenstem met die name van elkeen van daardie so sodat Ek hulle kan baie vinnig verwys 488 00:27:36,620 --> 00:27:37,840 regdeur my kode. 489 00:27:37,840 --> 00:27:41,840 Die rede waarom ek die invoer dialoog is, want ek wil my plug-in 490 00:27:41,840 --> 00:27:44,560 om op te tree as 'n dialoog plug-in. 491 00:27:44,560 --> 00:27:49,320 En die manier waarop ek is in staat om dit te doen, is om, natuurlik, 492 00:27:49,320 --> 00:27:52,740 koppel my kode om die dialoog plug-in deur die invoer van dit 493 00:27:52,740 --> 00:27:57,210 en dan deur die spesifiseer deur skep van 'n nuwe dialoog veranderlike 494 00:27:57,210 --> 00:28:00,460 en dit aan te sluit dat ingevoerde plug-in. 495 00:28:00,460 --> 00:28:04,820 En dan deur die definisie van my plug-in 'n nuwe dialoog. 496 00:28:04,820 --> 00:28:07,650 >> So in die inisialisering, ek wil my plug-in te definieer. 497 00:28:07,650 --> 00:28:10,440 En hierdie veranderlike genoem plug-in wat jy sien 498 00:28:10,440 --> 00:28:14,030 is net wat algemeen gebruik word regdeur Cloud 9 plug-ins. 499 00:28:14,030 --> 00:28:16,980 Ek gaan 'n nuwe instansieer dialoog met 'n paar eienskappe, 500 00:28:16,980 --> 00:28:22,300 gee dit 'n spesifieke naam, sê dat dit moontlik vir gebruikers om dit te sluit. 501 00:28:22,300 --> 00:28:24,960 Dat dit 'n bietjie x in sal wys die boonste regterkantste hoek, 502 00:28:24,960 --> 00:28:27,529 of 'n bietjie knoppie in die laer regterhoek. 503 00:28:27,529 --> 00:28:30,570 Of ek kan teks kies uit dit wat die titel van die dialoog 504 00:28:30,570 --> 00:28:32,400 sou wees, en so aan. 505 00:28:32,400 --> 00:28:36,330 Nou is hierdie net definieer die dialoog, maar dit is nog nie wys nie. 506 00:28:36,330 --> 00:28:40,780 Ek het eintlik 'n definieer aksie om dit te bewys. 507 00:28:40,780 --> 00:28:43,490 >> En weer, ek wil u aanmoedig om neem 'n blik op die wolk 9 SDK, 508 00:28:43,490 --> 00:28:46,930 want daar is 'n verskeidenheid dialoë en hulle is baie goed gedokumenteer. 509 00:28:46,930 --> 00:28:50,500 Jy kan die verskillende tipes te sien dat daar, en hulle gebruik 510 00:28:50,500 --> 00:28:55,380 in watter plug-in wat jy in gedagte het. 511 00:28:55,380 --> 00:28:58,790 Nou is daar gaan 'n wees vrag artikel, en hierdie las 512 00:28:58,790 --> 00:29:03,390 funksie as jy onthou is wat gebruik word deur die plug-in lewensiklus 513 00:29:03,390 --> 00:29:07,060 om werklik alles instansieer en kry alles gereed om te gaan. 514 00:29:07,060 --> 00:29:11,440 En toe hierdie plug-in vragte, doen ek nie, dit wil onmiddellik wys 'n dialoog, 515 00:29:11,440 --> 00:29:14,160 want dit plug-in sal laai saam met die res van die IDE. 516 00:29:14,160 --> 00:29:17,850 En toe ek las wat IDE, wil ek nie die dialoog outomaties vertoon. 517 00:29:17,850 --> 00:29:24,170 Ek wil dit net om te wys wanneer ek op die kieslys opsie in my Venster kieslys item 518 00:29:24,170 --> 00:29:26,760 dat ek vir 'n oomblik sal voeg by dit. 519 00:29:26,760 --> 00:29:29,480 >> So is daar twee afsonderlike stappe hier wat gebeur. 520 00:29:29,480 --> 00:29:32,640 Ek het 'n te skep bevel, en die opdrag 521 00:29:32,640 --> 00:29:37,940 sal verantwoordelik wees vir eintlik wat die dialoog op die wolk 9 IDE. 522 00:29:37,940 --> 00:29:42,670 En dan moet ek aansluit, ek 'n nuwe venster menu skep 523 00:29:42,670 --> 00:29:46,070 item, wat loop dat opdrag. 524 00:29:46,070 --> 00:29:49,740 Sodat wanneer ek op die venster menu-item, wat opdrag is dan run 525 00:29:49,740 --> 00:29:52,290 en daarom is my dialoog word dan getoon. 526 00:29:52,290 --> 00:29:55,690 En so is dit eintlik 'n mooi mooi manier van dink oor dit. 527 00:29:55,690 --> 00:30:01,480 >> Omdat die eerste kan ek 'n opdrag te skep wie se naam is CS50 Seminaar Dialog 1, 528 00:30:01,480 --> 00:30:04,860 wat bied 'n paar algemene konteks vir dit. 529 00:30:04,860 --> 00:30:08,930 En die belangrike bietjie hier is om kennis van die EXEC kenmerk, wat 530 00:30:08,930 --> 00:30:15,160 noem 'n funksie wat genoem sal word in my plug-in wanneer hierdie opdrag is hardloop. 531 00:30:15,160 --> 00:30:21,980 So hierdie bevel is soort van soos a-- dit is net 'n arbitrêre Cloud 9 532 00:30:21,980 --> 00:30:25,780 opdrag wat beskikbaar is enige Cloud 9 plug-in. 533 00:30:25,780 --> 00:30:30,290 Maar die werklike funksie wat dit is gaan om te bel as hierdie opdrag is uitgevoer 534 00:30:30,290 --> 00:30:35,010 is die show dialoog funksie in my plugin.js lêer. 535 00:30:35,010 --> 00:30:38,550 >> En ons kan eintlik sien hierdie plug-ins en die lys 536 00:30:38,550 --> 00:30:45,480 instruksies wat beskikbaar is vir ons in Voorkeure, blaai al die pad down-- 537 00:30:45,480 --> 00:30:48,180 Kom ons kyk, eintlik sien ons dit nou? 538 00:30:48,180 --> 00:30:53,180 Plug-in-bestuurder, Nee, ek dink dit is I-- beslis hier rond iewers. 539 00:30:53,180 --> 00:31:00,016 Wel, daar is 'n lys van instruksies iewers, maar ek moet, 540 00:31:00,016 --> 00:31:01,140 Ek het vergeet waar dit is. 541 00:31:01,140 --> 00:31:02,430 So OK, sal ons aan te beweeg. 542 00:31:02,430 --> 00:31:02,930 Alles reg. 543 00:31:02,930 --> 00:31:05,790 So het ons 'n lys van instruksies wat tot ons beskikking is, 544 00:31:05,790 --> 00:31:08,550 en daardie opdragte is hierdie net arbitrêre Cloud 9 545 00:31:08,550 --> 00:31:10,870 opdragte wat spesifieke kode hardloop. 546 00:31:10,870 --> 00:31:13,620 Dus net dit in gedagte hou dat ons gaan die dialoog show hardloop 547 00:31:13,620 --> 00:31:15,640 funksioneer oomblik. 548 00:31:15,640 --> 00:31:19,740 Nou wanneer ek eintlik wil 'n spyskaart voeg item, ek kan daardie item by te voeg by die pad, 549 00:31:19,740 --> 00:31:25,570 en net spesifiseer presies waar ek wil dit moet wees, Venster / CS50 Seminaar Dialog 1. 550 00:31:25,570 --> 00:31:28,380 En op daardie punt, ek wil om 'n nuwe item te skep wat 551 00:31:28,380 --> 00:31:32,040 gaan 'n opdrag uit te voer, CS50 Seminaar Dialog 1. 552 00:31:32,040 --> 00:31:36,140 Let daarop dat weer, dit is die Wolk 9 opdrag Ek het net bokant geskep. 553 00:31:36,140 --> 00:31:38,630 >> Nou wil ek ook skep 'n bietjie deler, 554 00:31:38,630 --> 00:31:42,260 en so kan ek dieselfde doen in die daaropvolgende lyn. 555 00:31:42,260 --> 00:31:46,040 Nou mag jy dalk agterkom dat as deel van die definisie van hierdie kieslys item, 556 00:31:46,040 --> 00:31:48,200 daar is 'n aantal wat verband hou met dit wat 557 00:31:48,200 --> 00:31:51,260 eintlik sê presies waar Ek wil hê dat die menu-item te wees 558 00:31:51,260 --> 00:31:53,441 geleë in die lys van spyskaarte. 559 00:31:53,441 --> 00:31:55,190 Maar jy dalk agterkom dat ek nie eintlik 560 00:31:55,190 --> 00:31:59,540 sien enige nommers met hierdie spyskaarte, by verstek. 561 00:31:59,540 --> 00:32:04,630 So is daar 'n bietjie verborge ding wat wat ons kan doen, 'n bietjie verandering aan ons URL. 562 00:32:04,630 --> 00:32:12,920 So bykomend tot SDK = 1 & debug = 2, Ek sal spyskaart stel om 1-- 563 00:32:12,920 --> 00:32:14,690 en hopelik is dit menu, nie spyskaarte. 564 00:32:14,690 --> 00:32:17,001 O, dit is spyskaarte = 1. 565 00:32:17,001 --> 00:32:17,500 Hou op. 566 00:32:17,500 --> 00:32:20,150 567 00:32:20,150 --> 00:32:24,690 >> En wat ons sal oor herlaai die wat sien IDE is dat ek nog in debug modus 568 00:32:24,690 --> 00:32:27,540 maar nou is daar nommers wat verband hou met al die spyskaarte. 569 00:32:27,540 --> 00:32:29,630 En dit vir jou vertel presies wat die aantal 570 00:32:29,630 --> 00:32:34,730 is wanneer jy probeer om te spuit iets op enige plek in die kieslys stelsel. 571 00:32:34,730 --> 00:32:40,365 So in die menu venster, kan ek sien dat item 45 is saamwerk, 572 00:32:40,365 --> 00:32:43,820 en item 38 voordat dit installeerder. 573 00:32:43,820 --> 00:32:47,530 So wanneer ek wil spuit 'n item tussen die twee, 574 00:32:47,530 --> 00:32:50,570 Ek wil net kies 'n aantal tussen die twee items. 575 00:32:50,570 --> 00:32:56,200 So ek gekies 41 en plaas my Seminaar Dialog 1 menu-item op die plek. 576 00:32:56,200 --> 00:33:03,640 >> En dit is hoekom hierdie nommer hier wat verskyn is nommer 41. 577 00:33:03,640 --> 00:33:08,010 Dit is die plek van daardie menu-item in die wolk 9 spyskaart. 578 00:33:08,010 --> 00:33:11,045 Nou insgelyks, ek wou 'n deler te skep 579 00:33:11,045 --> 00:33:13,920 en voeg dit so dat daar 'n mooi skeiding tussen elk van hierdie spyskaart 580 00:33:13,920 --> 00:33:14,490 items. 581 00:33:14,490 --> 00:33:18,600 So ek het bygevoeg dat op plek 43. 582 00:33:18,600 --> 00:33:20,260 So ver, so goed, ek hoop? 583 00:33:20,260 --> 00:33:23,920 So nou, laat ons eintlik kyk na die spesifieke kode in dialoog show 584 00:33:23,920 --> 00:33:28,050 dit is eintlik verantwoordelik vir die opening van hierdie dialoog venster. 585 00:33:28,050 --> 00:33:32,710 >> Blaai af, ek sien dat ek wil om hierdie dialoog funksie show het, 586 00:33:32,710 --> 00:33:34,730 en dit is baie eenvoudig. 587 00:33:34,730 --> 00:33:38,570 Ek gaan die show hardloop metode op die plug-in veranderlike. 588 00:33:38,570 --> 00:33:43,900 En onthou dat ons dit gedefinieer plug-in veranderlike hierbo as 'n dialoog. 589 00:33:43,900 --> 00:33:48,530 So bar plug-in, in hierdie geval, is dit voorwerp wat ons intern het gedefinieer. 590 00:33:48,530 --> 00:33:53,030 En dit gaan om 'n nuwe dialoog vervat in hierdie plug-in. 591 00:33:53,030 --> 00:33:57,020 En so het ons eintlik hierdie verwys plug-in veranderlike in baie plekke 592 00:33:57,020 --> 00:33:59,790 in 'n tipiese Cloud 9 ontwikkeling omgewing. 593 00:33:59,790 --> 00:34:00,867 >> Ons sal dit hier te sien. 594 00:34:00,867 --> 00:34:03,450 Let daarop dat as ons scroll down, daar is bykomende lewensiklusse. 595 00:34:03,450 --> 00:34:06,970 So sien dat hierdie reageer om gebeure wat afgedank 596 00:34:06,970 --> 00:34:10,500 deur hierdie voorwerp, hierdie dialoog voorwerp. 597 00:34:10,500 --> 00:34:12,710 By verstek, is daar laai en los, wat 598 00:34:12,710 --> 00:34:14,760 is beskikbaar vir alle Cloud 9 plug-ins. 599 00:34:14,760 --> 00:34:17,139 Maar in die geval van hierdie dialoog, daar is 600 00:34:17,139 --> 00:34:19,139 'n ander gebeurtenis wat kan vuur sowel genoem 601 00:34:19,139 --> 00:34:23,239 Teken, wat afgevuur toe dat is oor getrek word op die skerm, 602 00:34:23,239 --> 00:34:27,239 by die eerste instansie van die dialoog toon. 603 00:34:27,239 --> 00:34:29,590 >> So wanneer dit is eintlik gaan word getoon, 604 00:34:29,590 --> 00:34:31,739 daar gaan ' verskaf aan ons 'n paar HTML. 605 00:34:31,739 --> 00:34:34,710 En die gebruik van net die standaard HTML praktyke kan ons 606 00:34:34,710 --> 00:34:41,030 spuit 'n paar baie eenvoudige inligting, ons hello world, in dialoog. 607 00:34:41,030 --> 00:34:47,780 So as ons dan scroll up, ons kan dan sien die optog van die dinge 608 00:34:47,780 --> 00:34:48,989 dat dit plaasvind. 609 00:34:48,989 --> 00:34:54,070 Eerste het ons 'n Cloud 9 opdrag dat wanneer uitgevoer deur Cloud 9, 610 00:34:54,070 --> 00:34:55,765 gaan om hierdie funksie te vuur. 611 00:34:55,765 --> 00:34:58,390 Dit gaan om hierdie funksie uit te voer genoem show dialoog, wat ek 612 00:34:58,390 --> 00:34:59,720 geskryf in my kode. 613 00:34:59,720 --> 00:35:04,350 >> Ek het 'n menu-item en geheg aan dit wat dieselfde opdrag 614 00:35:04,350 --> 00:35:08,550 dat wanneer daardie item word gebruik in die spyskaart, wat beveel word dan hardloop 615 00:35:08,550 --> 00:35:10,780 en daardie funksie word dan hardloop. 616 00:35:10,780 --> 00:35:14,080 En binnekant van die funksie Ek is net gaan om te bel the-- Ek is 617 00:35:14,080 --> 00:35:17,250 net gaan om die show te voer metode van hierdie plug-in, wat 618 00:35:17,250 --> 00:35:20,800 gaan eerste oproep die trekking metode, en gaan 619 00:35:20,800 --> 00:35:28,050 hierdie metode hieronder, is die vuur trek event handler, in ons lewe siklus. 620 00:35:28,050 --> 00:35:30,820 En dan sal dit eintlik wys die dialoog. 621 00:35:30,820 --> 00:35:34,870 >> Daar is ook 'n skuiling metode, sodat as ek nodig het die geleentheid om weg te steek 622 00:35:34,870 --> 00:35:37,610 my dialoog, kan ek dieselfde ding te doen. 623 00:35:37,610 --> 00:35:42,060 So dit is pretty much dit om al hierdie te kry om te werk. 624 00:35:42,060 --> 00:35:45,160 Let daarop dat is as ons scroll down verder is daar 'n vries openbare API. 625 00:35:45,160 --> 00:35:51,020 Dit het basies net sê dat ek wil hierdie metodes om effektief 626 00:35:51,020 --> 00:35:56,670 wees publiek, maar nie overwriteable buite die konteks van hierdie plug-in. 627 00:35:56,670 --> 00:36:00,410 En onder, op die heel onderste, is dalk die laaste ding 628 00:36:00,410 --> 00:36:03,180 dat ons regtig nodig het om te betaal veel aandag hier, wat 629 00:36:03,180 --> 00:36:09,540 is dat ons gaan om te registreer ons plug-in met die naam C9 Seminaar 1, 630 00:36:09,540 --> 00:36:11,920 en die voorwerp plug-in. 631 00:36:11,920 --> 00:36:14,870 >> Wat soos jy sal onthou, is dat plug-in wat plug-in 632 00:36:14,870 --> 00:36:18,200 voorwerp wat ons het is die definisie dwarsdeur die hele van hierdie bron 633 00:36:18,200 --> 00:36:18,840 kode. 634 00:36:18,840 --> 00:36:23,790 En C9 Seminaar 1 is die string dat ons belowe 635 00:36:23,790 --> 00:36:26,350 by die top om voorsiening te maak van hierdie definisie. 636 00:36:26,350 --> 00:36:29,280 637 00:36:29,280 --> 00:36:29,780 OK. 638 00:36:29,780 --> 00:36:34,160 So laat oprit dit 'n bietjie en kyk of ons iets kan doen 639 00:36:34,160 --> 00:36:36,020 'n bietjie meer interessant. 640 00:36:36,020 --> 00:36:38,350 Nou is dit net so groot. 641 00:36:38,350 --> 00:36:41,380 Ek bedoel, dit is, dit is eintlik redelik koel wat in so min reëls van die kode, 642 00:36:41,380 --> 00:36:45,570 kan ons die bestaande IDE verander en voeg 'n bestaande menu-item 643 00:36:45,570 --> 00:36:48,850 of voeg 'n nuwe menu-item, voeg 'n opdrag, en toon 'n dialoog, 644 00:36:48,850 --> 00:36:51,040 en net 'n klomp van die funksies wat bestaan. 645 00:36:51,040 --> 00:36:54,550 Dit is regtig mooi groot. 646 00:36:54,550 --> 00:36:59,470 >> Maar dit beteken nie 'n baie te doen, want dit kan nie kommunikeer met die onderliggende Ubuntu 647 00:36:59,470 --> 00:37:00,450 byvoorbeeld. 648 00:37:00,450 --> 00:37:02,560 So kom ons sê dat ek eintlik wil uitvind 649 00:37:02,560 --> 00:37:05,400 inligting oor die onderliggende Ubuntu byvoorbeeld 650 00:37:05,400 --> 00:37:08,260 soos die statistieke plug-in nie. 651 00:37:08,260 --> 00:37:11,090 So laat ons neem 'n blik op 'n bietjie meer inligting 652 00:37:11,090 --> 00:37:13,730 oor hoe die statistieke plug-in werke. 653 00:37:13,730 --> 00:37:15,900 En in die feit, dit is baie soortgelyk aan hierdie. 654 00:37:15,900 --> 00:37:17,680 Jy sal onthou dat daar is 'n dialoog. 655 00:37:17,680 --> 00:37:21,680 Jy sal onthou dat daar inligting wat 656 00:37:21,680 --> 00:37:24,860 getoon net langs die menu bar saam die top, wat hopelik is jy nou 657 00:37:24,860 --> 00:37:27,450 om 'n geur van hoe Ons geïmplementeer hierdie, 658 00:37:27,450 --> 00:37:32,360 net deur die invoeging menu items op spesifieke punte en 'n dialoog instantiëren 659 00:37:32,360 --> 00:37:34,360 en vertoon dialoog. 660 00:37:34,360 --> 00:37:36,580 >> Maar ons het nog nie gewys hoe kan ons dit te koppel 661 00:37:36,580 --> 00:37:40,790 om 'n bevel in die onderliggende Ubuntu byvoorbeeld. 662 00:37:40,790 --> 00:37:46,930 So laat ons neem 'n blik dan ten plugin.2, wat doen juis hierdie ding. 663 00:37:46,930 --> 00:37:50,540 Ons gaan oop plugin.js, wat is die kode vir hierdie. 664 00:37:50,540 --> 00:37:54,570 Maar onder die menu venster As ek op dialoog 2, 665 00:37:54,570 --> 00:37:58,290 ons kan sien dat dit op hierdie sê plaas, hello CS50, wat 666 00:37:58,290 --> 00:38:01,800 nie al wat aanloklike kyk, reg? 667 00:38:01,800 --> 00:38:04,310 Behalwe, kyk na hierdie. 668 00:38:04,310 --> 00:38:07,020 Laat my iets te verander hier af. 669 00:38:07,020 --> 00:38:11,540 >> Ek gaan om te gaan na my werkspasie en verandering seminaar 670 00:38:11,540 --> 00:38:15,990 om iets anders, soos Hallo, Dan sê. 671 00:38:15,990 --> 00:38:18,150 Ek gaan om dit te sluit en stoor dit. 672 00:38:18,150 --> 00:38:22,740 En nou gaan ek weer run my dialoog menu-item. 673 00:38:22,740 --> 00:38:25,590 En sien dat dit nou verander wat dit sê. 674 00:38:25,590 --> 00:38:26,880 Hello, Dan. 675 00:38:26,880 --> 00:38:30,680 Dit lyk asof ek het iets neer gedoen hier in die onderliggende Ubuntu byvoorbeeld 676 00:38:30,680 --> 00:38:34,370 sonder dat enige gemanipuleer kode wat weer uitsluitlik loop 677 00:38:34,370 --> 00:38:35,720 op die kliënt kant. 678 00:38:35,720 --> 00:38:40,380 So is daar natuurlik 'n soort van kommunikasie wat hier gebeur. 679 00:38:40,380 --> 00:38:44,550 >> Nou is dit waar 'n baie van die krag van die wolk 9 SDK kom in, 680 00:38:44,550 --> 00:38:49,440 is dat in hierdie plugin.2, kan ons eintlik veroorsaak 681 00:38:49,440 --> 00:38:52,910 'n oproep om te gebeur met die onderliggende byvoorbeeld 682 00:38:52,910 --> 00:38:55,750 en hardloop 'n arbitrêre opdrag. 683 00:38:55,750 --> 00:39:00,230 So in hierdie geval, ek het eintlik geskep 'n baie eenvoudige script bash 684 00:39:00,230 --> 00:39:02,350 in my werkplek genoem Seminaar. 685 00:39:02,350 --> 00:39:03,610 So laat my oop te maak. 686 00:39:03,610 --> 00:39:05,370 En ons kan sien dat dit lyk soos hierdie. 687 00:39:05,370 --> 00:39:08,310 Dit is net 'n baie eenvoudige bash script wie se enigste doel in die lewe 688 00:39:08,310 --> 00:39:11,920 gaan wees om eggo uit hierdie teks, Hello, Dan. 689 00:39:11,920 --> 00:39:14,360 Voor of dit, het hy gesê Hallo, CS50. 690 00:39:14,360 --> 00:39:16,000 En dit is al wat dit gaan doen. 691 00:39:16,000 --> 00:39:21,030 >> Want dit is nou 'n opdrag dat ek kan loop. 692 00:39:21,030 --> 00:39:23,750 Ek kan eintlik loop dit af hier. 693 00:39:23,750 --> 00:39:28,440 Ons kan sien dat dit eintlik net 'n opdrag wat ek natuurlik hardloop. 694 00:39:28,440 --> 00:39:32,850 Ek kan my plug-in te vra om hierdie te voer opdrag op die onderliggende werkspasie 695 00:39:32,850 --> 00:39:36,510 en ontleed die inligting wat weer van dit, 696 00:39:36,510 --> 00:39:40,300 en iets te doen met dit, en verander my plug-in en die gedrag wat ek 697 00:39:40,300 --> 00:39:43,240 in my plug-in as 'n gevolg. OK. 698 00:39:43,240 --> 00:39:45,450 So laat ons sien hoe dit gebeur. 699 00:39:45,450 --> 00:39:48,380 Ons het dit baie eenvoudig Seminaar joernaal script wat ek 700 00:39:48,380 --> 00:39:51,080 [Onhoorbaar] dat dit eintlik kan hardloop. 701 00:39:51,080 --> 00:39:54,560 >> En nou, laat ons sien die veranderinge wat nodig is om dit saam te bind is 702 00:39:54,560 --> 00:39:57,620 met die dialoog venster, en voer dit uit. 703 00:39:57,620 --> 00:40:02,030 Ons is so hier gaan mooi doen much dieselfde ding as wat ons voor gesien. 704 00:40:02,030 --> 00:40:05,500 Maar let dat onder die dinge wat ek verteer now-- 705 00:40:05,500 --> 00:40:09,090 bykomend tot die dialoog, wat ek weer gebeur twee keer gedoen het, 706 00:40:09,090 --> 00:40:14,300 wat nie necessary-- bykomend om die dialoog en die opdragte 707 00:40:14,300 --> 00:40:17,780 en die spyskaarte plug-ins, wat was nodig is in die eerste een vir my 708 00:40:17,780 --> 00:40:21,560 om 'n nuwe opdrag definieer en spuit 'n item in die spyskaarte, 709 00:40:21,560 --> 00:40:25,010 Ek het ook hierdie proc plug-in. 710 00:40:25,010 --> 00:40:28,500 >> En dit proc plug-in kan ons prosesse manipuleer 711 00:40:28,500 --> 00:40:30,950 op die onderliggende byvoorbeeld. 712 00:40:30,950 --> 00:40:34,970 Ek het dit verbind nadat ek het gesê dat my plug-in dit vereis. 713 00:40:34,970 --> 00:40:38,320 Ek het dan verbind dit aan kode, soos ons gesien het in die belangrikste funksie. 714 00:40:38,320 --> 00:40:40,970 Weereens, ek gaan inisialiseer my dialoog. 715 00:40:40,970 --> 00:40:45,500 En as ons af beweeg nou, ons kan sien hoe dit is anders. 716 00:40:45,500 --> 00:40:49,040 Die vrag funksie is dieselfde, so dit is net gaan om 'n bevel te skep 717 00:40:49,040 --> 00:40:54,250 en die skep van 'n menu-item en verbind wat menu-item om opdrag. 718 00:40:54,250 --> 00:40:56,690 Maar as ons nou blaai af na dialoog te wys, 719 00:40:56,690 --> 00:40:59,990 ons kan begin om te sien waar die verskille ontstaan. 720 00:40:59,990 --> 00:41:04,170 >> Ons het funksie show dialoog, wat net gaan om die dialoog te wys. 721 00:41:04,170 --> 00:41:12,410 Maar toe ek sien hierdie dialoog, en toe die show metode genoem word, 722 00:41:12,410 --> 00:41:14,430 dit brande die trekking funksie. 723 00:41:14,430 --> 00:41:18,990 En ek gaan dan spesifiseer 'n paar inhoud binnekant van dit. 724 00:41:18,990 --> 00:41:21,910 So ek is net gaan om te skep 'n div, bied dit 725 00:41:21,910 --> 00:41:24,020 'n paar basiese teks, Hello, world. 726 00:41:24,020 --> 00:41:27,250 Maar let dat hier Ek is gaan heg om dit 'n ID. 727 00:41:27,250 --> 00:41:32,350 En die volgende lyn gaan ek dat die ID vind met behulp van JavaScript, 728 00:41:32,350 --> 00:41:36,210 en bêre daardie voorwerp in 'n ander veranderlike 729 00:41:36,210 --> 00:41:38,280 dat ek net gaan om die inhoud te bel. 730 00:41:38,280 --> 00:41:41,780 >> So nou wanneer ek inhoud, al wat ek nodig het om te doen 731 00:41:41,780 --> 00:41:46,100 is net verander innerlike HTML hierdie voorwerp. 732 00:41:46,100 --> 00:41:51,300 En die dialoog HTML sal dan sowel verander. 733 00:41:51,300 --> 00:41:55,500 En wanneer hierdie plug-in is dan getoon, wat kan gebeur 734 00:41:55,500 --> 00:41:59,820 en dit is 'n nuwe gebeurtenis wat nuut is in hierdie plug-in, 735 00:41:59,820 --> 00:42:03,380 maar gebeur in elke plug-in met die dialoog, as dit is nou getoon het, 736 00:42:03,380 --> 00:42:07,100 Ek gaan om te bel 'n funksie genoem haal inligting. 737 00:42:07,100 --> 00:42:10,520 En dit funksie is die vleis van dit hier. 738 00:42:10,520 --> 00:42:14,930 Ek gaan dit proc plug-in gebruik wat ons voor beskryf, wat deur die pad, 739 00:42:14,930 --> 00:42:19,790 is regtig net 'n Node.js biblioteek dat Cloud 9 word hier gebruik nie. 740 00:42:19,790 --> 00:42:21,730 >> So jy kan eintlik kyk oor hoe om hierdie 741 00:42:21,730 --> 00:42:25,340 werk as jy gaan in die Node.js dokumentasie 742 00:42:25,340 --> 00:42:29,220 en kyk op die exec lêer metode vir die prosesse daar. 743 00:42:29,220 --> 00:42:33,110 Ek gaan hierdie spesifieke hardloop opdrag, huis Ubuntu werkspasie 744 00:42:33,110 --> 00:42:38,000 seminaar, wat is dat dieselfde een wat dieselfde opdrag wat Ek voor geskep. 745 00:42:38,000 --> 00:42:40,680 Verskaf om dit 'n stroom werk gids, net 746 00:42:40,680 --> 00:42:45,440 ultra veilig wees in terme van die konteks van waar dit loop. 747 00:42:45,440 --> 00:42:49,150 En sodra dit was voltooi en teruggestuur, 748 00:42:49,150 --> 00:42:54,040 Ek gaan hierdie hardloop funksie genoem parse uitset. 749 00:42:54,040 --> 00:42:54,540 OK. 750 00:42:54,540 --> 00:42:58,670 So dit dan gaan voer 'n opdrag op die plaaslike, of liewer 751 00:42:58,670 --> 00:43:01,700 die afgeleë Ubuntu byvoorbeeld. 752 00:43:01,700 --> 00:43:03,490 Wanneer ek terug sommige inligting, ek is dan 753 00:43:03,490 --> 00:43:06,940 gaan 'n aparte funksie noem genoem parse uitset, wat 754 00:43:06,940 --> 00:43:13,790 het hierdie handtekening hier dwaal stdout, stderr, 755 00:43:13,790 --> 00:43:15,910 en 'n paar berekening op hierdie punt. 756 00:43:15,910 --> 00:43:18,930 So as ek 'n fout ontvang van 'n soort te wees, 757 00:43:18,930 --> 00:43:22,340 Ek sal eintlik gaan om te sien of fout het eintlik 'n paar data. 758 00:43:22,340 --> 00:43:27,204 En as dit so is, dan sal ek die binneste verander HTML van die inhoud voorwerp, wat 759 00:43:27,204 --> 00:43:28,995 is jy onthou, ons gekoppel aan die dialoog 760 00:43:28,995 --> 00:43:32,210 by die instantiattion van daardie dialoog, of by die eerste teken 761 00:43:32,210 --> 00:43:33,370 van daardie dialoog. 762 00:43:33,370 --> 00:43:35,650 Ek gaan net sê dat sommige fout gebeur het. 763 00:43:35,650 --> 00:43:37,140 >> Nou is dit té simplisties. 764 00:43:37,140 --> 00:43:40,170 Die fout waarde sal tipies bevat iets wat nuttig was, 765 00:43:40,170 --> 00:43:45,520 dalk 'n fout nommer en 'n fout van die script self. 766 00:43:45,520 --> 00:43:48,430 Of indien die script geskryf iets om standaard fout, 767 00:43:48,430 --> 00:43:50,890 dat data sal bevolk in daardie parameter as well. 768 00:43:50,890 --> 00:43:53,765 En ek kon 'n bietjie wees meer versigtig oor wat fout 769 00:43:53,765 --> 00:43:55,332 Ek is eintlik mense te wys. 770 00:43:55,332 --> 00:43:57,415 Maar dit eenvoudige voorbeeld is goed genoeg vir nou 771 00:43:57,415 --> 00:43:59,715 om ten minste sien hoe al hierdie funksies. 772 00:43:59,715 --> 00:44:01,590 Anders as daar geen fout, dan is ek net 773 00:44:01,590 --> 00:44:05,500 gaan die rou lewer uitset van daardie funksie 774 00:44:05,500 --> 00:44:10,070 in die binneste van hierdie HTML inhoud element, en dan werk my plug-in 775 00:44:10,070 --> 00:44:12,490 en wys dit hier. 776 00:44:12,490 --> 00:44:17,550 En dit is pretty much al wat nodig om te kry hierdie om te hardloop. 777 00:44:17,550 --> 00:44:22,860 En so laat dink oor dan hoe dit bedryf, algehele. 778 00:44:22,860 --> 00:44:29,330 Toe ek die eerste gelaai hierdie plug-in, net soos die eerste plug-in, 779 00:44:29,330 --> 00:44:32,670 Ek gaan 'n opdrag wat voeg beskikbaar is om enigiets, enige plug-in 780 00:44:32,670 --> 00:44:37,120 in Cloud 9, genaamd CS50 Seminaar Dialog 2, wie se verantwoordelikheid 781 00:44:37,120 --> 00:44:39,670 sal wees om hierdie show hardloop dialoog, wat jy onthou, 782 00:44:39,670 --> 00:44:42,730 sal eintlik wys die dialoog dat ek hieronder versoek. 783 00:44:42,730 --> 00:44:45,980 >> Dan sal ek byvoeg dat opdrag in 'n venster menu 784 00:44:45,980 --> 00:44:48,070 sodat ek toegang tot dit. 785 00:44:48,070 --> 00:44:51,420 En wanneer daardie dialoog versoek getoon word, 786 00:44:51,420 --> 00:44:55,170 Ek sal 'n paar info van haal die onderliggende Ubuntu byvoorbeeld 787 00:44:55,170 --> 00:44:58,890 deur die gebruik van die exec lêer opdrag. 788 00:44:58,890 --> 00:44:59,920 Verskoon my. 789 00:44:59,920 --> 00:45:04,140 Sodra dit teruggekeer en ek ontvang 'n inligting, dan op die kliënt kant 790 00:45:04,140 --> 00:45:08,370 weer, sal ek in staat wees om te ontleed wees die uitset van daardie opdrag 791 00:45:08,370 --> 00:45:12,650 en werk die innerlike HTML van die elemente 792 00:45:12,650 --> 00:45:16,440 dat ons het verbind om vroeër. 793 00:45:16,440 --> 00:45:19,910 >> En met die dat ons dan Hierdie ten volle funksionele plug-in 794 00:45:19,910 --> 00:45:24,520 wat toelaat dat my om inligting te gaan haal Van hierdie arbitrêre script 795 00:45:24,520 --> 00:45:27,170 wat ons geskep het op ons onderliggende byvoorbeeld. 796 00:45:27,170 --> 00:45:29,660 Maar weereens, dit is regtig belangrike en werklik die sleutel 797 00:45:29,660 --> 00:45:33,030 om te skei uit, waar elke hierdie dinge gebeur, 798 00:45:33,030 --> 00:45:38,320 dat ons al hierdie kliënt kant kode wat word gelei in die leser, 799 00:45:38,320 --> 00:45:41,640 en nog nie toegang om die onderliggende lêerstelsel 800 00:45:41,640 --> 00:45:44,895 totdat ons eintlik loop sommige van hierdie opdragte wat deur die Wolk 801 00:45:44,895 --> 00:45:49,055 9 SDK soos proc, en 'n paar ander kinders wat ons toelaat om 'n paar data te lees, 802 00:45:49,055 --> 00:45:53,500 of lees 'n paar lêers as ons nodig om enigiets van die aard nie. 803 00:45:53,500 --> 00:45:56,650 >> Nou is dit 'n ietwat eenvoudige voorbeeld. 804 00:45:56,650 --> 00:46:00,570 Daar is ander dinge wat ons sou dalk wil so goed te doen. 805 00:46:00,570 --> 00:46:03,470 Byvoorbeeld, miskien eintlik ons wil 'n paar inligting te red 806 00:46:03,470 --> 00:46:04,630 om die voorkeure. 807 00:46:04,630 --> 00:46:07,900 Of miskien wil ons voeg 'n nuwe voorkeur paneel 808 00:46:07,900 --> 00:46:09,690 of iets langs die lyne. 809 00:46:09,690 --> 00:46:13,370 Dan is dat iets wat jy kan 'n blik op die wolk 9 SDK neem 810 00:46:13,370 --> 00:46:15,300 om meer inligting te kry. 811 00:46:15,300 --> 00:46:19,990 Maar dit is regtig genoeg om te begin. 812 00:46:19,990 --> 00:46:26,410 So net om 'n bietjie meer konkrete wees oor die manier waarop sommige van hierdie dinge 813 00:46:26,410 --> 00:46:31,370 funksie, ek het net wil wys nog 'n voorbeeld, wat net 'n paar 814 00:46:31,370 --> 00:46:35,580 van die kode van die Statistiek 50 plug-in. 815 00:46:35,580 --> 00:46:39,780 >> En hierdie kode is basies gebaseer op hierdie voorbeelde 816 00:46:39,780 --> 00:46:43,310 dat jy eintlik gesien het, maar het 'n paar meer voorsorgmaatreëls 817 00:46:43,310 --> 00:46:47,460 en het 'n paar meer kompleksiteit ten einde om sommige van die bykomende dinge te bereik 818 00:46:47,460 --> 00:46:48,930 wat ons wil bereik. 819 00:46:48,930 --> 00:46:54,510 Byvoorbeeld, as ek wil wees in staat wees om 'n paar instellings te red, 820 00:46:54,510 --> 00:46:57,700 dan moet ek om toegang te hê om die instellings plug-in, 821 00:46:57,700 --> 00:47:01,820 en elke keer as ek wil sommige instellings te lees, 822 00:47:01,820 --> 00:47:08,340 Ek kan, byvoorbeeld, heg aan verskeie gebeure in die instellings plug-in. 823 00:47:08,340 --> 00:47:13,630 So elke keer as die instellings is rooi, Byvoorbeeld, in my eie plug-in, 824 00:47:13,630 --> 00:47:18,450 as ek gaan 'n paar gelees instellings van die wat gered stoor 825 00:47:18,450 --> 00:47:24,540 voorkeure van die gebruiker, dan kan ek Die verstek instellings vir 'n spesifieke plek, 826 00:47:24,540 --> 00:47:31,250 vir spesifieke voorkeur, in daardie Into styl opsies lêer wat ons het 827 00:47:31,250 --> 00:47:33,890 vroeër gered, sodat ons vroeër gesien het. 828 00:47:33,890 --> 00:47:36,370 >> En as ek gaan skryf sommige instellings om dit, 829 00:47:36,370 --> 00:47:40,440 dan can-- ek of so gou as ons spoor dat die instellings is geskryf 830 00:47:40,440 --> 00:47:44,420 aan- omdat byvoorbeeld dié instellings is aangepas deur die gebruiker 831 00:47:44,420 --> 00:47:47,335 hetsy direk in hul instellings lêer, of die paneel voorkeur 832 00:47:47,335 --> 00:47:49,370 het die instellings verander lêer direk, dan 833 00:47:49,370 --> 00:47:53,590 Ek kan eintlik werk sommige van die kode of die gedrag van my plug-in werk 834 00:47:53,590 --> 00:47:58,710 gebaseer op die veranderinge wat plaasgevind het op die lêer instellings as well. 835 00:47:58,710 --> 00:48:03,380 Maar regtig, die res van dit is redelik veel dit dat jy reeds gesien het. 836 00:48:03,380 --> 00:48:06,040 >> Ons voeg 'n paar, miskien iets wat nuut. 837 00:48:06,040 --> 00:48:09,440 So voeg ons 'n voorkeur lêer, of eerder 'n paneel voorkeur 838 00:48:09,440 --> 00:48:14,250 om die voorkeure venster weer wat jy kan uitvind meer inligting 839 00:48:14,250 --> 00:48:16,220 in die wolk 9 SDK lees my. 840 00:48:16,220 --> 00:48:18,460 Maar alles anders is redelik baie, mooi 841 00:48:18,460 --> 00:48:25,810 soortgelyk aan wat ons voor gesien, net met 'n paar ekstra foutopsporing 842 00:48:25,810 --> 00:48:30,150 en 'n paar ekstra beskerming en 'n paar ekstra funksies 843 00:48:30,150 --> 00:48:33,314 om al die verskillende funksie dinge wat ons gesien het. 844 00:48:33,314 --> 00:48:35,230 As jy nie eintlik dit nog nie gesien is, kan jy 845 00:48:35,230 --> 00:48:40,955 wonder wat die onderliggende opdrag is in die venster Statistiek 50. 846 00:48:40,955 --> 00:48:42,840 Dit is eintlik funksioneer. 847 00:48:42,840 --> 00:48:48,100 Wel, dit is-- O, dammit. 848 00:48:48,100 --> 00:48:49,410 Een sekonde. 849 00:48:49,410 --> 00:48:49,910 Hou op. 850 00:48:49,910 --> 00:48:52,270 OK. 851 00:48:52,270 --> 00:48:58,090 Laat my beweeg dit op sodat ons kan eintlik kyk wat gebeur wanneer ek tik Statistiek 50. 852 00:48:58,090 --> 00:49:02,140 Let daarop dat in hierdie geval, die opdrag wat ek uit om 853 00:49:02,140 --> 00:49:06,310 is regtig weer, net die script wat gaan uitset 'n klomp van die inligting 854 00:49:06,310 --> 00:49:08,040 in into formaat. 855 00:49:08,040 --> 00:49:10,800 En die rede dat ons dit doen hierdie manier is dat omdat ons 856 00:49:10,800 --> 00:49:15,480 werksaam is, want ons het geskryf die kliënt se kant-kode in JavaScript, 857 00:49:15,480 --> 00:49:19,500 ons kan baie maklik net ontleed JavaScript voorwerpe, 858 00:49:19,500 --> 00:49:23,050 en werklik in staat wees om te manipuleer die voorwerpe net soos ons sou 859 00:49:23,050 --> 00:49:24,610 enige ander JavaScript voorwerp. 860 00:49:24,610 --> 00:49:27,650 >> En so dit is 'n baie gerieflike manier om 'n paar inligting 861 00:49:27,650 --> 00:49:31,950 van die onderliggende Ubuntu byvoorbeeld soos die weergawe nommer, die gasheer 862 00:49:31,950 --> 00:49:36,360 noem, of 'n bediener luister, wat die bediener is, so aan en so voort, 863 00:49:36,360 --> 00:49:39,150 en ontleed daardie vinnig en maklik 864 00:49:39,150 --> 00:49:44,870 in die plug-in wat dan gaan vir ons almal van daardie inligting te wys. 865 00:49:44,870 --> 00:49:47,920 So weer, die sleutel insig hier in gedagte te hou 866 00:49:47,920 --> 00:49:54,260 is hierdie skeiding tussen die onderliggende byvoorbeeld 867 00:49:54,260 --> 00:49:57,490 en ook waar die kode is gelaai. 868 00:49:57,490 --> 00:49:59,870 Dat wanneer ek 'n kliënt, dit is die eerste keer aan die laai. 869 00:49:59,870 --> 00:50:03,951 Net hierdie statiese JavaScript-lêer uit iewers, miskien CDN van 'n soort. 870 00:50:03,951 --> 00:50:06,450 Ons het nie regtig moet versorg te veel oor hierdie eerste stap. 871 00:50:06,450 --> 00:50:08,970 >> Ons weet net dat dit is loop op die kliënt kant 872 00:50:08,970 --> 00:50:12,740 en dit is wanneer ek gaan kommunikeer met hierdie Docker byvoorbeeld. 873 00:50:12,740 --> 00:50:15,970 Dat ons gaan om dit te doen deur die wolk 9 SDK. 874 00:50:15,970 --> 00:50:20,460 Ons het nie eintlik die vermoë, die gebruik van JavaScript of Node.js, 875 00:50:20,460 --> 00:50:21,750 direk skryf. 876 00:50:21,750 --> 00:50:29,400 Ons gebruik net diegene bestaande SDK APIs om die aksie te doen vir ons. 877 00:50:29,400 --> 00:50:32,490 En weer, een van die regtig belangrike dinge 878 00:50:32,490 --> 00:50:38,990 is dat wanneer ek dit geskep het, toe ek dit plug-in gemaak het, 879 00:50:38,990 --> 00:50:42,510 en as Ek werk op hom, een van die belangrike dinge om te doen 880 00:50:42,510 --> 00:50:44,840 is om die JavaScript konsole te bring. 881 00:50:44,840 --> 00:50:49,400 >> Want sedert dit is al wat op die JavaScript, 882 00:50:49,400 --> 00:50:54,700 op die kliënt kant, as ek 'n console.log method-- so net 883 00:50:54,700 --> 00:50:56,550 om 'n voorbeeld hier wys. 884 00:50:56,550 --> 00:51:07,630 Kom ons probeer verander hierdie eenvoudige plug-in om ook 'n paar data te meld. 885 00:51:07,630 --> 00:51:09,895 En ons sal die standaard uit te voeg. 886 00:51:09,895 --> 00:51:13,010 887 00:51:13,010 --> 00:51:16,810 So laat verander na regs hier te wees. 888 00:51:16,810 --> 00:51:19,560 Nou toe ek voer console.log, in gedagte hou 889 00:51:19,560 --> 00:51:21,630 dat sedert hierdie loop op die kliënt kant, 890 00:51:21,630 --> 00:51:24,900 Ek sal sien in my eie JavaScript konsole, wat 891 00:51:24,900 --> 00:51:28,540 is hoe ek sal in staat wees om probeer om op te los en debug 892 00:51:28,540 --> 00:51:30,330 sommige van die probleme wat ek het. 893 00:51:30,330 --> 00:51:34,110 >> Let daarop dat, omdat Ek is in SDK af, ek is 894 00:51:34,110 --> 00:51:37,820 dan in staat om te manipuleer plug-ins op hierdie geval. 895 00:51:37,820 --> 00:51:39,800 So selfs al is dit gestoor op hierdie geval, 896 00:51:39,800 --> 00:51:47,130 dit is die een voorbeeld van wat die vorige reël geskend word, waar die wolk 9 897 00:51:47,130 --> 00:51:51,030 SDK sal eintlik trek plug-ins uit die onderliggende byvoorbeeld en dan hardloop hulle. 898 00:51:51,030 --> 00:51:54,440 So dat op hierdie manier, ek is dan in staat wees om te manipuleer en te bou 899 00:51:54,440 --> 00:51:55,750 sommige plug-ins hier. 900 00:51:55,750 --> 00:51:58,080 Maar om vir my om te sien updates om hierdie plug-in, 901 00:51:58,080 --> 00:52:01,880 want dit is op die kliënt kant, Ek moet daardie plug-in red 902 00:52:01,880 --> 00:52:04,950 en dan herlaai die hele werkplek, sodat die nuwe plug-in is dan 903 00:52:04,950 --> 00:52:09,230 afgelaai op my kliënt, op my webblaaier, en dan gebruik word. 904 00:52:09,230 --> 00:52:14,460 >> So nou wanneer ek op hierdie Seminaar Dialog 2, het ons nog sien. 905 00:52:14,460 --> 00:52:21,311 Maar nou hopelik in my JavaScript dialoog, moet ons sien my-- wag, 906 00:52:21,311 --> 00:52:21,810 hou op. 907 00:52:21,810 --> 00:52:24,420 Ek kan hê om die dialoog vars oop te maak. 908 00:52:24,420 --> 00:52:30,230 Ons moet hier my ontvang data te sien. 909 00:52:30,230 --> 00:52:32,780 Ontvang data, Hello, Dan, wat jy onthou, 910 00:52:32,780 --> 00:52:37,770 was 'n operasie wat console.log Ons versoek die plug-in. 911 00:52:37,770 --> 00:52:42,140 So hierdie beskrywing dan dat ek voorheen genoem, 912 00:52:42,140 --> 00:52:45,460 hierdie dialoog, of dit diagram eerder dat ek 913 00:52:45,460 --> 00:52:49,140 voorheen genoem is wat gebeur. 914 00:52:49,140 --> 00:52:53,150 Maar daar is 'n belangrike uitsondering net vir ontwikkeling, 915 00:52:53,150 --> 00:52:55,490 wat is dat die plug-in self kan eintlik 916 00:52:55,490 --> 00:52:59,160 gestoor word op die Docker byvoorbeeld tydelik, want vermoedelik Cloud 9 917 00:52:59,160 --> 00:53:02,210 nie wil hê ons moet in staat wees om manipuleer voorwerpe op hul CDN. 918 00:53:02,210 --> 00:53:08,650 >> En die wolk 9 kliënte, op laai, sal diegene plug-ins in daardie vind. 919 00:53:08,650 --> 00:53:11,540 C9 plug-in gids, en laai hulle. 920 00:53:11,540 --> 00:53:15,780 Maar dit is nog steeds gebeur net op die kliënt kant. 921 00:53:15,780 --> 00:53:19,440 So dan is dit net die 'n uitsondering dat slegs plaasvind 922 00:53:19,440 --> 00:53:23,220 vir die ontwikkeling van Cloud 9 plug-ins. 923 00:53:23,220 --> 00:53:25,000 Maar die res van die time-- en die rede 924 00:53:25,000 --> 00:53:26,708 wat ons wil regtig hamer hierdie home-- 925 00:53:26,708 --> 00:53:30,140 is omdat die meeste van die tyd is dit gaan die loop van die CDN, 926 00:53:30,140 --> 00:53:33,030 en net gaan om te loop suiwer uit die kliënt se kant. 927 00:53:33,030 --> 00:53:36,110 >> Normaalweg sal geen wees daar interaksie met die plug-in, 928 00:53:36,110 --> 00:53:39,840 of daar nie eens wees aan enige rede dat die plug-ins hulself 929 00:53:39,840 --> 00:53:42,970 is eintlik gestoor word op die onderliggende Docker byvoorbeeld 930 00:53:42,970 --> 00:53:47,240 behalwe in die geval van hierdie SDK ontwikkeling. 931 00:53:47,240 --> 00:53:51,510 So weer, hierdie veranderinge net effens gevolg van die feit 932 00:53:51,510 --> 00:53:54,650 dat ons hardloop SDK af. 933 00:53:54,650 --> 00:53:57,160 Dit gaan dan laai die plug-ins van ontwikkeling, 934 00:53:57,160 --> 00:54:01,690 en die uitsluitlike doel hier is, sodat Ek kan Cloud 9 gebruik om die ontwikkeling te doen 935 00:54:01,690 --> 00:54:04,620 vir Cloud 9 plugins. 936 00:54:04,620 --> 00:54:07,220 Maar selfs so, beteken dit nie verander weer hoe enige van hierdie werk. 937 00:54:07,220 --> 00:54:09,650 Dit is nog steeds aan die gang is geheel en al op die kliënt kant. 938 00:54:09,650 --> 00:54:16,260 >> Dit beteken net dat wanneer ek wil skep Cloud 9 plug-ins in Cloud 9, 939 00:54:16,260 --> 00:54:19,320 Ek skep die plug-ins, sit hulle in my. 940 00:54:19,320 --> 00:54:25,110 C9 gids / plugins in my huis gids, maak seker ek is in SDK af, 941 00:54:25,110 --> 00:54:29,290 herlaai die bladsy elke keer as ek eintlik veranderinge aan dat plug-in maak, 942 00:54:29,290 --> 00:54:33,590 en kyk wat gebeur in my JavaScript console. 943 00:54:33,590 --> 00:54:36,240 Bestuur net my JavaScript troos om seker te maak 944 00:54:36,240 --> 00:54:38,930 dat enige probleme oplos inligting wat ek plaas om te troos, 945 00:54:38,930 --> 00:54:41,920 of enigiets anders wat mag voorkom as gevolg van foute wat ek geskryf het 946 00:54:41,920 --> 00:54:44,940 in my kode of die wil, blyk daar. 947 00:54:44,940 --> 00:54:48,007 >> En met dié, dit is regtig genoeg om te begin, dink ek, 948 00:54:48,007 --> 00:54:49,090 met die wolk 9 plug-ins. 949 00:54:49,090 --> 00:54:53,120 Veral 'n blik op die SDK dokumentasie wat Cloud 9 bied. 950 00:54:53,120 --> 00:54:56,650 Dit is 'n goeie manier om te kry begin, en baie maklik 951 00:54:56,650 --> 00:54:59,900 skep 'n paar plug-ins vir Cloud 9. 952 00:54:59,900 --> 00:55:02,820 En met dié, ek wil dankie julle almal baie dankie vir saam met my. 953 00:55:02,820 --> 00:55:05,550 Ek hoop jy sal pret hê skryf plug-ins vir Cloud 9. 954 00:55:05,550 --> 00:55:09,600 Miskien verbetering plug-ins dat ons nou, of dalk selfs 955 00:55:09,600 --> 00:55:11,360 voeg 'n paar funksies van jou eie. 956 00:55:11,360 --> 00:55:14,540 Ons sien uit daarna om te sien hoe wat dit is wat jy skep. 957 00:55:14,540 --> 00:55:16,330 Tot dan, bye. 958 00:55:16,330 --> 00:55:18,734