DAN Armendariz: Pozdrav i dobrodošli na CS50 seminar o prilagodbi Cloud 9, i CS50 IDE. Tako danas ćemo samo razgovarati malo o nekim od tehničke informacije koje ide iza arhitekture oblaka 9 i kako primijenili smo neke dodatke u sklopu Cloud 9 pružiti CS50 IDE. Pa neka je samo skočiti pravo i započeti razgovor o plug-ins. Dakle, dodaci su uistinu na Jezgra Cloud 9 iskustva. Cloud 9 je temeljni tehnologija koja pruža nam IDE, i terminal prozor u Dno, uz workspace-- Ubuntu workspace-- da mi koristiti za prikupljanje sve naše projekte i obaviti naš problem skupove, završiti naš problem seta. No, u središtu svega nje, sve tehnologije stvarno samo hrpa dodataka. Sve je plug-in koji se mogu mijenjati, proširena, možete stvoriti vlastite dodatke, možete ukloniti druge dodatke, da se stvarno mijenjaju dosta funkcionalnosti postojećeg Cloud 9 IDE. Dakle, ovo je postojeći Cloud 9 okoliš. To je zapravo samo default Cloud 9 okoliš. A pogledajte kako je to zapravo razlikuje od CS50 IDE. Dakle, ovo je CS50 IDE. Obavijest da postoje neki vizualni Promjene između regularnom Cloud 9 okoliš i CS50 IDE. Naime, vi ćete primijetiti nekoliko promjena. Prije svega, tu je manje Stavke izbornika za početak. Tu je zapravo način koje možete promijeniti. To se zove jednostavan način. Po defaultu, jednostavan mod je uključen i koji pojednostavljuje neke od stavki izbornika. To uklanja neke od one naprednije, jer iskreno, puno studenti koji dolaze u i ne trebate znati o nekim od naprednijih značajki ne osvaja s hrpom opcija. Ali mi pružiti mogućnost da se off tih takozvanih trening kotačima i ukloniti da skele, tako da ljudi može postati više navikli na napredne značajke IDE. Odmah na pravo da postoji Također gumb ispravljanje, koji u standardnom Cloud 9 okolina jednostavno zove run. Ali po defaultu smo konfiguriran gumb debug u CS50 IDE da bi se debugger, automatski sastaviti izvorni kod, spojite debugger na temeljne GDB-- a budući da je pokrenut za obavljanje debugging-- i neki drugi koraci kao. Također terminal prozor u very-- odnosno terminal Kartica na konzole poglavlju na Prozor na samom dnu zaslona, preimenovana je jednostavno biti terminala. Dok u standardu Cloud 9 okoliš, to zapravo pokazuje trčanje aplikacija. Na taj način, to pojednostavljuje, opet, GUI, samo malo. Također je dodao neke tipke u gornjem desnom dijelu IDE pokazati neke osnovne informacije o temeljnom stupnju. I također smo uklonili jedan od opcija o stavkama iz desnoj strani. Dakle, sve ovo se ne provodi mijenjanjem nužno Cloud 9 izvorni kod, ali umjesto kroz par dodataka koje smo provode tijekom proteklih godinu dana ili tako. A Cloud 9 je domaćin i ima trčanje u CS50 radni prostor. Ili radije u radnim prostorima koji su označeni kao CS50 ides. Pa stvarno to je glavna razlika između Cloud 9 i CS50 radne prostore. Tu je, u podlozi primjerice, primarna promjena da smo instalirati neki pre-konfiguriran stavke kao što su GDB, i neke druge osnovne stvari koje smo stvorili, kao Update 50, i nekoliko drugih koraka koji čine cijelo iskustvo malo više jedinstven. No sve u svemu, ovo je samo modifikacijom već postojećeg sustava koji Cloud 9 je stvorio za nas. Što ćemo pokazati malo kasnije kako zapravo stvoriti nešto osnovno plug-in koji omogućuje nam da uložite nešto u sustav izbornika, i otvoriti dijalog. A ako imamo dovoljno Tada će zapravo vidjeti kako možemo popuniti da dijalog s nekim informacijama od temeljne primjer. Kako bi za nas da se na to točka, neka prvi razgovor malo o arhitekturi Cloud 9. Dakle, način na koji smo navikli da u interakciji s Cloud 9 je u potpunosti kroz klijenta. Mi otvoriti web preglednik, mi tip u CS50.io. Mi na kraju, nakon provjere autentičnosti, su prezentirani s IDE. Ali shvatite da postoji par koraka koji zapravo nas doći do ove točke. Prva stvar je da moj klijent, web preglednik, na zahtjev, a nakon provjere autentičnosti, učitava GUI i dodatke iz nekih CDN, iz neke Sadržaj isporuke mreža. To može biti iskreno bilo gdje. A to je zapravo zasebna od temeljne primjer. Važno je shvatiti da je ovo zapravo samo hrpa statičkih datoteka. To je gomila JavaScript koji je preuzet iz CDN na moje web preglednik, i sve GUI koji vam vidi here-- ovo je stvarno key-- sve GUI koje vidite ovdje se izvoditi na strani klijenta. Sve što vidite u Cloud 9 radnog prostora zapravo trčanje u pregledniku. A sve što ste poslali zajedno s temeljnom stupnju je komunicirao s primjerice uz ovog drugog odvojeni kanal, a zatim se spremaju na da lučki radnik instanca. Dakle, razlog što sam rekao ovo je lučki radnik instanca je da je temeljni tehnologija ne koristi virtualne strojeve, već se pomoću Tehnologija se zove lučki radnik, koji u osnovi allows-- najbliži Analogija je virtualni stroj. Ali, to je suptilno različita time, da postoje mnogo mogućnosti za pokretanje Kombinacija različitih lučki radnik slučajevi na jednom stroju. I oni mogu biti dosadan do u vrlo brzom slijedu. To nije baš više strogi diferencijacija između različitih lučki radnik slučajevima kao što postoji u virtualnim strojevima, ali još uvijek postoji puno diferencijacije i odvajanje između tih različitih instanci. U REDU. Tako su dva koraka ovdje da važno je shvatiti je da kad idemo u CS50.io smo Preuzimanjem GUI i dodatke, koje su pisane u JavaScriptu, na na pregledniku ili u pregledniku. A to je možda par megabajta u vrijednosti podataka. U tom trenutku, nakon što je GUI ima učitan i dodaci su počeli, onda počinje komunicirati s lučki radnik instanca, koja ne nužno biti isti poslužitelj. Sada postoji jedna iznimka. Mi zapravo može imati i mehanizam isporuke za samu GUI a lučki radnik instanca u svi istom poslužitelju, koji je zapravo nešto što nam je činiti za offline verziju Cloud 9. To nije nešto što smo objavljen vrlo ove jeseni, ali mi također nemamo Pogledaj verzija koja omogućuje vam da preuzimanje pakirani verzija sve ove stvari i omogućiti vam da pokrenete Cloud 9 u offline okruženju. Premještanje ovaj off oblaku i na vaše lokalne stroj ima neki utjecaj. Konkretno, nema Više imaju sposobnost podijeliti svoj radni prostor s drugima. Više ne možete otvoriti Cloud 9 od, a CS50 IDE, s bilo kojeg računala i vidjeti iste datoteke koje ste radili s prije. No, umjesto da se to radi u cijelosti na vlastitom lokalnom računalu bez potrebe pristupa internetu. No, još uvijek, čak iu tom modelu, pa čak iako imamo jedan virtualni stroj koji je u suštini radi te stvari. Imamo poseban poslužitelj koji je isporukom u suštini Cloud 9 sadržaj, a onda smo imaju lučki radnik instancu koji je odgovoran za komuniciranje s tim IDE za leđa kraj. U REDU. Dakle, cijeli GUI je napisano u cijelosti u JavaScript pomoću Node.js i Cloud 9 SDK, koje ćemo dobiti u samo minutu. I sve dodatke se izvoditi na strani klijenta. Tako ćemo se usredotočiti zatim malo pretpostavljajući da je ovo prvi korak mora Zapravo je uspješno završena, i gledati samo na ovom lučki radnik primjer. Dakle, u ovom slučaju, to je standardni način razmišljanja o radi Cloud 9 plug-in razvoj je da ćete treba pisati kod koji će se izvoditi u korisnikovom pregledniku, i imate mogućnost koristeći neke API za komunikaciju uz temeljne lučki radnik, primjerice, pokrenuti neki kod tamo i ništa da možda želite učiniti. Dakle, to će biti kontekst da ćemo se koristi za ostatak ovog razgovora. I samo bi taj model na umu. To će biti vrlo važno u samo nekoliko minuta. Postoji nekoliko linkovi Želim ti pokazati. Prije svega, Cloud 9 je pod uvjetom dosta dokumentacije to je prilično dobro, koji pokazuje kako učiniti osnovne plug-in razvoj. Dakle, ako idete na ovaj URL, cloud9-sdk.readme.io, vidjet ćete dokumentaciju tamo. I puno ovih informacija da ste o kako bi vidjeli može se naći tamo, plus više. Također možete pronaći open source verzija Cloud 9 na ovom URL, github.com/c9/core, koje smo koristili kao dio offline verzija IDE, tako da ćete biti u mogućnosti da imaju isto Cloud 9 iskustvo, ali u offline način. U redu. Tako ćemo pogledati na Stvarni Cloud 9 radno ovdje. I opet, želim istaknuti iz par stvari. To je, upravo ovdje, normalan CS50 IDE. I sam je onemogućen manje ugodno mod u izborniku View tako da mogu vidjeti sve od opcija izbornika. Želim vam pokazati pravu Sada je par stvari. Prije svega, ako idem u sklonostima i zatim kliknite na Plug-in menadžer, i upišite u CS50 ovdje možemo vidjeti da postoje, u stvari, par CS50 dodataka koji postavljeni su i naše trčanje omogućiti izmjene koje smo Vidio za CS50 IDE. Trenutno nema bitno Dva dodatke koji se izvode. Postoji jedan zove Jednostavno, što je pojednostavljen način rada koji omogućuje vam da se smanji broj opcija izbornika duž vrha, te su to takozvani manje udoban način rada. A tu je i CS50 statistika, što je možda samo malo misnamed. Jer to je ono što prikazuje podatke o podlozi radni prostor. To ubrizgava ove gumbe uz gore desno. Ona je također ubrizgava stavku izbornika Into the Stavka prozor, u izborniku Window upravo ovdje, CS50 IDE info. I to je odgovorna za instantiating ovaj dijalog koji smo vidjeli ovdje, sa svim informacijama koje smo navikli vidjeti u CS50 IDE radni prostor. U REDU. Dakle, tu je zapravo još jedan plug-in koje smo razvili kao dobro. I tu je nekoliko drugih koji mi također nisu javno objavljen. No, jedan od njih je u ukupnom poretku plug-in koji omogućuje GDB funkcionirati. Tako je jedan od aspekata Cloud 9 je da su pod uvjetom da već ovo GUI provesti ispravljanje pogrešaka. A jedan od dodataka koji stvorili smo zapravo kuke GDB s ovim GUI temeljen inačici ispravljanje pogrešaka. I odgovoran je za posredovanje sve od zahtjeva da korisnik može imati, između koračni iznad ili stvara kontrolne točke ili ništa uz one linije, za prevođenje koje na naredbe koje GDB mogu razumjeti, izdavanje one naredbe GDB. I čim GDB izdaje odgovor, a zatim tumačimo da je i ažurirati GUI potrebno. To je vjerojatno jedan od više komplicirano od dodataka, pa umjesto što smo će se usredotočiti na danas je u stvari statistika plug-in, a mi ćemo razgovarati malo o Jednostavno, kao dobro. Pa sam spomenuo prije, a ja stvarno želim da bi vrlo, vrlo jasno, da opet, sve to da smo vidim ovdje je bitno djeluju na strani klijenta. Mi radimo vidjeti prozor terminala niže, i da su, naravno, ako mi tip u naredbi u da, to će biti onda izdati na temeljne primjer. Slično tome, ako smo otvorili novu datoteku i upisati neke stvari u njega i spasiti ga, koji datoteka će biti spremljena na temeljni instanca. Ali sam urednik, ovaj Sam terminala prozor, se sve provodi u JavaScript i sve je plug-in da možemo komunicirati s, i zato mijenjati. Postoji mnogo rastezljivosti ovdje. Preporučujem uzimanje pogled na Cloud 9 je GitHub račun vidjeti ogromnu količinu dodatke koji su dostupni, i koliko dobro napisano mnogo koda je za proširenja. Dakle, postoji nešto da želim spomenuti o tome što je dobro, što je da postoji mnogo of-- postoji puno funkcionalnosti to je pod uvjetom da u postavkama Prozor, koji smo vidjeli samo aludirao na samo nekoliko minuta prije. Jedna od stvari koje možemo učiniti kao IDE programeri, ili kao Cloud 9 programeri, je zapravo uvelo neke povlaštene paneli naše. Tako jednostavan način rada, ili manje udoban način rada, te informacije IDE, ili statistika plug-in, ima svako malo prednost ploče koje nam omogućuju mijenjati ponašanje svakog od njih. Primijetit ćete da ako odem na Postavke i ići na Korisničke postavke, postoji tab CS50, jedan koja kaže IDE podatke. I može promijeniti Informacije osvježavanja. Efektivno, što se događa u statistikama plug-in je da svaki n-sekundi, gdje n-sekundi definiran ovom izboru ploča, podaci se dohvaćaju od temeljne primjer, poslan natrag na strani klijenta, plug-in je onda tumačenje podataka iz stupnju temeljne i ažuriranje GUI potrebno. Možemo vidjeti da je sada ovo je postavljen 30 sekundi, i to je zadana. Ali ja definitivno mogu promijeniti kako brzo se to događa samo mijenjanjem ovu vrijednost. Sada je jedan od zanimljivih stvari je da je ova preferencija ploča, GUI, stvarno samo GUI verzija od mnogo temeljnih postavki koji su prikazani u JSON. Dakle, ako odem, na primjer, pod CS50 IDE izbornik ili izbornik Cloud 9, ovisno o kojem Verzija gledaš, i otići na jedan od njih settings-- u ovom slučaju, projekt settings-- Postavke projekt u ovom slučaju vrijedi za sve postavke za ovaj jedan radni prostor. Dok korisničke postavke vrijede na svim radnim prostorima da možda imate na računu. Tako je samo kao stranu ovdje biti posebno jasna, postoji odvajanje između dva, jer iako je po defaultu mi ima jedan radni prostor, koji se je CS50 IDE, ako vas bili kliknuti na svoje malo avatar ovdje i ići na ploču s instrumentima, vidjet ćete da možete zapravo stvoriti dodatne radne prostore, kao dobro. Ovdje možete vidjeti da ja nemam IDE 50 radni prostor, a također za potrebe ovog Seminar, radni prostor zove radni prostor, što je upravo ovdje. Pa ipak, imam različite preferencije. Svaki od njih može imati zasebne postavke projekta, ali korisničke postavke su dijeli među svim mojim radnih prostora. Usput, ovo je Također je vrlo zgodan ako vas želite stvoriti radni prostor s različite mogućnosti prilagodbe. I to je vrlo zgodan stvoriti novi radni prostor. I odabrati jedan koji bi mogli biti pre-konfiguriran na neki drugi način, možda PHP posebno, ili Django posebno. Ili čak samo običaj. CS50 radni prostor Predložak je onaj koji smo koristiti da automatski instalira Update 50 i sve postavke da imamo tamo, uključujući i sve dodatke koje smo za CS50 IDE. U REDU. Ali neka se vratiti na ovo. Pa opet, postoje projekti Postavke, a to su one da gledamo ovdje. I primijetiti da postoji hrpa postavki, mnogi od njih odgovaraju željama ploče, ali ne sve od njih. Ali možemo vidjeti da je ovdje, u this-- oh ne, sam je stavio u korisničkim postavkama? Možda sam ga stavio u korisničkim postavkama. A to, ovdje mi ići. U korisničkim postavkama, možemo vidim da imamo sekciju CS50, i to se piše na ovim Cloud 9 dodatke da smo provoditi. Tu je jednostavan za odgovaraju tim jednostavnim plug-in, i statistika onaj koji odgovara tom GUI temeljen verzija za povlaštene ploče. Stopa osvježavanja, u ovom slučaj, postavljen na 20 sekundi. To je sve, nadamo se, Počeci neke informacije da smo zapravo ćete vidjeti u malo malo više detalja, na trenutak. U REDU. Dakle, recimo da želimo Zapravo bi se na njega. Shvaćamo da su sve stvari što se događa na strani klijenta vrši zapravo na preglednik, koji znači da je bilo dodatke koje pišem će biti napisan s preglednikom na umu. I ako ja zapravo želim ništa na radnom području Ja možda će morati pokrenuti neka vrsta komunikacije između preglednika i radni prostor kako bi bili sigurni da je zapravo postignuto. No, recimo da je sada Želim doći do njega a zapravo stvoriti svoj prvi plug-in. Pa, na način da će biti u mogućnosti za to je zapravo prilično jednostavan. To je dano u Cloud 9 SDK. No, to je da se vaš Postojeći naziv radnog prostora, koji je URL koji ste na vrhu Vaš bar i dodajte sljedeće na njega. ? SDK = 1 & Debub = 2. Što sad ovo će omogućiti je da SDK = 1 zapravo će postaviti SDK Način na true, koji će omogućiti par dodatnih stvari. I ispravljanje = 2 će vam omogućiti poruke o pogreškama da se malo više govorljiv. I tako, ako bi se u JavaScript konzola u kartici Chrome developer, što će zapravo biti u mogućnosti vidjeti puno više informacija nego što bi inače. Zato preporučujem okretanje oba ova u isto vrijeme, jer je stvarno je korisno imati sve to dodatne informacije. Važno je napomenuti, međutim, da uključivanje ispravljanje vrijednosti od 2 znači da je vrlo preopširan, a to je zapravo nešto će osjetno usporiti Vaša IDE, pogotovo kada utovara ili kada to radi teške poslove. Dakle, samo imajte to na umu. To je korisno za razvoj, ali možda želite imati na sva vremena. Tako ćemo zapravo učiniti. No, u ovom slučaju, zapravo sam se Već postaviti radni prostor s ovim. Pa da vidimo, SDK = 1 & ispravljanje = 2. Uz par dodataka nadam se već instaliran. U redu. Pa sada da sam upalila SDK debug Način, primijetiti da smo u debug modu, tako da možemo pogledate dev alati vidjeti bilo kakve pogreške, što ću učiniti van platna. Možemo vidjeti da postoji hrpa pogrešaka ovdje. Sada je zapravo prilično uobičajena za Cloud 9 ima par grešaka, i ne bih se brinuti o njima do tebe vidi nešto što bi moglo biti specifični za plug-in kako vam se dogoditi da se stvara. Dakle, ovdje je, na primjer, dobili smo par 404s-- nije pronađen. Vidimo da ne možemo učitati neke Informacije s temeljnom stupnju se. I tu je hrpa dodatnih informacije, ali većina toga smo zapravo će ignorirati za sada. Budući da je ovo lijepa zajednička za radni prostor imati samo nekoliko pogrešaka. U REDU. Idem da se presele to iz način i vratiti ovdje. A sada na jednostavan način, lijepo stvar ima ovaj programer Način omogućeno je da mi omogućuje lako stvoriti novi plug-in. Dakle, dok je prije nego što sam zapravo nije ima ovaj novi plug-in opcija dostupna, što možemo vidjeti ako odem natrag moj način rada bez programer ovdje, nema novi plug-in. Omogućavanjem SDK mod, sam imaju novi plug-in dostupno i ja mogu lako stvoriti. U tom slučaju, postoji nekoliko različitih mogućnosti, jednostavan, prazan plug-in, pun plug-in, instalater, Cloud 9 snop. Ajmo izabrati prazna plug-in za sada tako da možemo vidjeti vrlo jednostavna verzija jednog. Sada primijetite da su duž lijeva strana je to što je sada nešto pod favorite, što je popis nekoliko dodataka koji su sada dostupni na mene. Ako sam proširiti da ćemo biti u mogućnosti vidjeti one. Sada želim da primijetite ovdje nešto, što je da to nije zapravo sadržane unutar radnog prostora imeniku na moje temeljne Ubuntu primjer, ali stoji na tvrdom disku. A gdje se to nalazi, jer to je vrlo korisno znati, pogotovo ako ćeš raditi ništa s Git, gdje se to nalazi je u .c9 mapu, / plugins. Dakle, ako ja odem tamo, možemo vidjeti da je sada popis dodataka koji su ovdje odgovara popis dodatke koje sam Vidio na lijevoj strani mog radnog prostora. Sada po defaultu, i To je vrsta čudno, po defaultu kad sam stvoriti Novi plug-in u radnom prostoru, to stvara taj plug-in koji po Zadana ima ime donjom crticom. Općenito da bi mogli uzrokovati neke probleme. Dakle, vrlo sljedeći korak da sam obično obavljaju samo je ukloniti kako Posebno plug-in i ostaviti samo jednostavan plug-in koji bio tamo na početku, plugin.simple. I to je jedini koji je tamo. U REDU. Dakle, što to zapravo izgleda? Pa, to je, opet, JavaScript paket koji uključuje neke datoteke, uključujući plugin.js datoteke, gdje je glavni sadržaj moj plug-in se nalazi, package.json datoteka, koji zapravo određuje neke metapodatke o ovom plug-in, kao što su tko je autor, Sve dodatne informacije o tome, a opis plug-in, i tako dalje. I također po defaultu, to stvara prazan obavijesna datoteka, i prazna Test datoteke za vas stvoriti neke dodatne dokumentacije, i kabelskog testiranje ako želite to učiniti. Pa neka je samo pogledati najprije, vrlo brzo, u package.json datoteke. To je jednostavno dovoljno da jednostavno proći kroz to i ispuniti u područjima to koji biste htjeli ispuniti, kao što su dati joj ime, dati opis, ponoviti broj verzije svaki tako često, osigurati autor za svaki osoba koja doprinosi, dodati ih na suradnika dio, a ostatak ovog tebe mogu prilično jednostavno ostavite kao što je to za sada. Postoji jedna stvar koja je važno primijetiti, da prema odjeljku dodatke, tu je ključ zove plug-in. A to se podudaraju s imenom JavaScript file plugin.js. Dakle, to je kako Cloud 9 zna, kad ga čita ovu package.json datoteku koja od js datoteka zapravo učitavanje. Ako sam stvoriti dodatne JS datoteka ili želite preimenovati tu JS datoteku iz plug-in, Također sam ga promijeniti u package.json datoteke. Sva pitanja iz publike? Ne. To je jedna osoba koja je Sljedeći zajedno sa mnom sada. U REDU. Tako sam zapravo stvorio Nekoliko dodataka je već, Mislim, u ovom radnom prostoru. Tako ćemo se riješiti nekih od tih, dodajte SDK = 1 & ispravljanje = 2, učitajte ovu radni prostor, i neka je vidjeti ako mi imaju one dodatke sada. C9 / dodataka. Idemo. Možemo vidjeti danas u mojim C9 / dodataka ovoga jedan, imamo plugin.1 i plugin.2. Tako ćemo samo pojačati the-- samo povećati količinu težine u svakoj od tih dodataka. Ali ovdje, ako sam stvoriti novi plug-in, Ja mogu dodati u moje omiljene. A ja ću samo izbrisati one iz osnovni datotečni sustav. Idemo uklanjanje toga. Sada, ako sam otvoriti moj prvi plug-in, i otvorena plugin.js, Vidimo ovdje temeljne jednostavna verzija plug-in. Dopustite mi da se zapravo vratiti ovaj drugi radni prostor jer možete barem ovdje vidjeti, što prazan plug-in zapravo izgleda. Dakle ispod haube, ovo izgleda vrlo slične tehnologije zove, Mislim, to je RequireJS. Primijetite da to ne stvarno izgleda, možda, isto kao i neki drugi JavaScript datoteke koje smo mogli vidjeti. No, umjesto toga, tu je par upravo osnovne linije koje ona zapravo ima. Sve ove stvari je prvi tumači IDE, ali to zapravo nije trajati do navedeno. A ja ću vam reći o tome kada to zapravo znači u samo trenutak. Ali primijetite da ovdje postoji main.consumes linija u skladu 2, a to navodi sve dodatke da je ovaj plug-in je ovisna o. Pa po defaultu, mi možda i ne imati bilo ovisnosti o drugim dodacima, ali kad mi zapravo treba da ovisi o značajkama isporučene drugih dodataka u IDE, moramo navesti one dodatke u main.consumes liniji. I onda moramo ih povezati šifru ispod koje ću vam pokazati u samo trenutak o tome kako možemo učiniti. Main.provides daje naziv ovog plug-in da drugi dodaci mogli koristiti u skladu troši. Dakle, u ovom slučaju, moj plug-in je samo postaviti tamo po defaultu, i mi trebali mijenjati kako bi se odnosi se na vlastite plug-in, kao što ćemo vidjeti u samo trenutak. Sada ovdje u funkciji Glavni, ova funkcija glavni zapravo pokrenuti i tumačiti, ali to zapravo ne učiniti mnogo. To samo dobiva sve postaviti, ali ne zapravo pokrenuti plug-in, unatoč tome što je ime zvuči. To se zapravo događa kroz slijed metoda koje sadržani su u cijelom ovom plug-in. Dakle, ako sam se pomaknite prema dolje, možemo vidjeti da imamo životni ciklus gdje na neki događaj pod nazivom opterećenja, ili neki događaj pod nazivom iskrcati, neki događaji zapravo dogoditi. To je stvarno ovdje, gdje je kao plug-in počinje da se te metode nazivaju. Tako ćemo biti malo konkretniji o tome i pogledajte primjer. Dakle ovdje plugin.1, ono mi u osnovi učiniti je stvoriti stavku izbornika zove CS50 Seminar Dijalog 1-- jer imamo dva them-- i idemo to uvelo u izborniku Window. A kad smo kliknite na njega, mi smo će otvoriti dijalog koji nam pokazuje neke vrlo osnovne informacije. U ovom slučaju, samo Hello World. Dakle, ovo je vrlo jednostavna Hello World dijalog da možemo provesti kao plug-in u Cloud 9. Tako ćemo vidjeti kako to zapravo izgleda. Mi ćemo korak kroz njega, samo relativno brzo tako da smo možete pogledati na sljedećem plug-in, kao dobro. Uočite da ovdje smo konzumiranje raznih dodataka. Mi konzumiranje dijalog plug-in, naredbe, izbornike i korisničko sučelje. Izgleda da sam zapravo ja konzumiranje dijalog dva puta, tako da možete ukloniti to. A primijetiti da na putu da sam ih povezuje, To je vrsta metapodataka koji govori plug-in sustav ono zahtjevi zapravo je potrebno za to plug-in za učitavanje. Također je važno napomenuti da poredak koji su dodaci učitava nije zajamčena. No, ono što je zajamčeno je da, ako sam navesti neke plug-in kao uvjet, koji plug-in će biti učitan prije ovo je učitan. Dakle, to znači da ako vaš plug-in traži na neke funkcionalnosti uvjetom nešto drugo u IDE, trebali biti sigurni da vaše plug-in pojesti koji plug-in, tako da su ovisnosti Sigurni da napravite plug-in, ili instancu svoj plug-in, samo nakon toga postojeći okvir postoji. Dakle, ovdje sam spomenuo metapodataka na plug-in menadžer, one koje sam ću pojesti. A u glavnom funkcionirala, Idem onda spojiti moj broj na one uvezene dodataka. Pa ja sam samo ide stvoriti neke varijable koje odgovarati imena svake od njih, tako da sam vrlo brzo ih može referencirati tijekom mog koda. Razlog sam uvozi dijalog je zato što želim moj plug-in djelovati kao dijalog plug-in. A način na koji sam mogao za to je, naravno, povezivanje moj broj na dijalog plug-in ga uvozi a zatim određivanjem strane stvarajući novu varijablu dijalog i priključivanju na koje uvoze plug-in. A onda definiranjem mom plug-in kao novi dijalog. Tako je u inicijalizacije, ja Želite definirati svoj dodatak. I to se zove varijabla plug-in vidjet ćete samo koriste najčešće tijekom Cloud 9 dodataka. Idem instancu novi dijalog s nekim atributima, dati mu određeni naziv, kažu da to moguće je za korisnike da ga zatvoriti. Da će pokazati malo X u gornja desnom kutu, ili malo tipku u donjem desnom kutu. Bilo ili ne mogu odabrati tekst iz to, što je naslov tog dijaloga biti, i tako dalje. Sada je to samo definira dijalog, ali to još uvijek ne pokazuju. Ja zapravo definirati Akcija za to će biti prikazan. I opet, ja Vam savjetujemo da pogledati na Cloud 9 SDK, jer postoje razne dijaloge i oni su jako dobro dokumentirani. Možete vidjeti različite vrste da postoje, i koristiti ih bez obzira na dodatak da imate na umu. Sada će biti opterećenje sekcija, i to opterećenje funkcija kao što je podsjetiti koristi plug-in životnom ciklusu zapravo instantiate sve i dobiti sve spremno ići. Sada kada Ovaj plug-in opterećenja, ja ne Želite odmah pokazati dijalog, jer ovaj plug-in će učitati zajedno s ostatkom IDE. A kad sam učitati tu IDE, ne želim dijalog pojaviti automatski. Ja samo želim da pokazati kad kliknete na opcija izbornika u moj prozor stavku izbornika da ću dodati na njega na trenutak. Dakle, postoje dvije različite korake da se ovdje mora dogoditi. Moram stvoriti naredba i naredba će biti odgovoran za stvari prikazuje dijalog na Cloud 9 IDE. I onda moram spojiti, ja morate stvoriti novi prozor izbornik predmet, koji radi tu naredbu. Tako da kada sam kliknite na tom prozoru stavku izbornika, da je naredba zatim Run i zato mi je dijalog tada se prikazuje. I tako to je zapravo prilično lijep način razmišljanja o tome. Budući da sam prvi put mogu stvoriti naredbu čije ime je CS50 Seminar Dialog 1, koja pruža neke opći kontekst za to. I važno je da se ovdje malo primijetiti EXEC atribut koji navodi funkciju koja će se zvati u mom plug-in kad je to naredba pokrenuti. Dakle, ovo je naredba vrsta kao A- to je samo proizvoljna Cloud 9 naredba koja je dostupna na bilo Cloud 9 plug-in. No stvarna funkcija koja je nazvati kada je to naredba pokrenuti je funkcija prikaži dijalog u mom plugin.js datoteke. A zapravo možemo vidjeti te dodatke i popis naredbi koje su nam na raspolaganju u Postavke, dođite svi put down-- da vidimo, zapravo mi to sada vidjeti? Plug-in menadžer, ne, mislim da je I-- definitivno ovdje negdje. Pa, tu je popis naredbi negdje, ali moram imati, Zaboravio sam gdje je. Pa OK, mi ćemo krenuti dalje. U redu. Dakle, imamo popis naredbi koji su nam dostupni, i one naredbe to samo proizvoljna Cloud 9 naredbe koje se pokreću određeni broj. Dakle, samo imajte to na umu, da je ćemo pokrenuti dijalog showa funkcioniraju na trenutak. Sad kad sam stvarno želite dodati izbornik predmet, ja mogu dodati da je predmet po putu, i samo navesti točno gdje želim da bude, Prozor / CS50 Seminar Dijalog 1. I u tom trenutku, želim stvoriti novu stavku koja će pokrenuti naredbu, CS50 Seminar Dijalog 1. Obavijest da je opet, to je oblak 9 Naredba sam stvorio samo iznad. Sada sam također žele stvoriti malo šestar, i tako ja mogu učiniti isto u slijedećoj liniji. Sada možda primijetiti da kao dio definiranja ovu stavku izbornika, postoji niz povezane s njom koji zapravo govori gdje točno Želim da stavka izbornika se nalazi na popisu izbornika. Ali možda primijetiti da ja zapravo ne vidi sve brojeve ovi izbornici, po defaultu. Tako da je malo skrivena stvar koja možemo učiniti, malo promjene u našem URL. Dakle, osim SDK = 1 & debug = 2, Ja ću postaviti izbornik za 1-- i nadamo se da je izbornik, a ne izbornici. Oh, izbornici = 1. Drži se. I što ćemo vidjeti na prekrcaj koji IRO je da sam još uvijek u debug modu, ali sada postoje brojevi povezan sa svim izbornicima. I to vam govori upravo ono što je broj je kada pokušavate ubrizgati nešto bilo u tom sustavu izbornika. Dakle, u izborniku prozora, mogu vidjeti da je predmet 45 je surađivati, i točke 38. prije nego što je Installer. Dakle, kad želim se uvelo predmet između njih dvoje, Ja bi samo odabir broja između te dvije stavke. Zato sam odabrao 41 i umetnut moj seminar Dijalog stavka 1. izbornika na tom mjestu. I to je razlog zašto je ovaj broj koji se pojavljuje ovdje broj 41. To je mjesto koje stavku izbornika u izborniku Cloud 9. Sada slično, ja sam htjela stvoriti šestar i dodati ga tako da je lijepo podjela između svake od tih izbornik stavke. Tako sam dodao da je na mjestu 43. Do sada, tako dobro, nadam se? Dakle, sada ćemo zapravo pogledajte specifična kod u dijalogu showa to je zapravo odgovoran za otvaranje ovaj dijaloški prozor. Pomicanje prema dolje, vidim da želim da tu funkciju pokazati dijalog, i to je vrlo jednostavan. Idem raditi show Način na plug-in varijable. I zapamtite da smo to definirano plug-in varijable gore kao dijalog. Tako bar plug-in, u ovom slučaju, je li to objekt koji smo definirati iznutra. I to će biti novi dijalog sadržane na ovim plug-in. I tako smo zapravo upućuje ovo plug-in varijable u mnogim mjestima u tipičnom Cloud 9 razvojno okruženje. Mi ćemo ga vidjeti ovdje. Uočite da kao što smo se pomaknite prema dolje, postoji dodatna životnog ciklusa. Dakle, primijetite da ti odgovoriti na događaje koji su pucali ovaj objekt, ovaj objekt dijaloga. Po defaultu, postoji utovar i istovar, kojima dostupni su svim Cloud 9 dodataka. No, u slučaju ovaj dijalog, postoji još jedan događaj koji se može požara kao i naziva Crtanje, koji je otkaz kada je to je o biti izvučeni na zaslonu, u prvom stupnju dijaloga prikazuje. Dakle, kada je zapravo će biti prikazan, tu će pružaju nam neke HTML. I pomoću samo standardni HTML prakse mogu mi uvelo neke vrlo jednostavne informacije, naš Hello World, u tom dijalogu. Dakle, ako smo tada pomičite se gore, možemo vidi zatim procesija stvari da je nastupila. Prvo smo stvorili Cloud 9 naredbu da kada izvršiti Cloud 9, će otpustiti tu funkciju. To će pokrenuti ovu funkciju zove pokazuju dijalog, da imam zapisano u mom kodu. Sam stvorio stavku izbornika i priključen na njega iste zapovjedne da kada se ta stavka kliknuli u izbornik, koji se zatim pokrenuti naredbu i da funkcija zatim pokrenuti. A unutar funkcije sam Samo ću nazvati the-- sam Samo će izvršiti emisiju metoda ovog plug-in koji će se prvi poziv metoda izvlačenja, i ide na vatru ovu metodu dolje je nacrtati event handler, u našem životnom ciklusu. A onda će zapravo pokazati dijalog. Tu je i sakrij način, tako da je ako trebam priliku sakriti moj dijalog, ja mogu učiniti istu stvar. Dakle, to je uglavnom to da se sve to raditi. Obavijest da je, ako se pomaknite prema dolje dalje postoji zamrzavanje javne API. To u osnovi samo kaže da sam Želite ove metode za učinkovito biti javni, ali ne overwriteable izvan konteksta ovog plug-in. I u nastavku, na samom dnu, možda je zadnja stvar da mi stvarno treba platiti mnogo pažnje ovdje, što je da ćemo se registrirati našim plug-in s nazivom C9 Seminar 1, i objekt plug-in. Koji kao što ćete se sjetiti, je koji plug-in koji plug-in objekt koji smo definiranja tijekom cijelosti ovog izvora kodirati. I C9 Seminar 1 je niz koji smo obećali osigurati na vrhu ove definicije. U REDU. Tako ćemo ga rampu malo i vidjeti možemo li nešto učiniti malo više zanimljiv. Sada je to samo tako velik. Mislim, to je, to je zapravo prilično ohladiti da se u tako nekoliko linija koda, možemo mijenjati postojeće IDE i dodati postojeću stavku izbornika ili dodati novu stavku izbornika, dodati naredba, i pokazati dijalog, i samo hrpa funkcionalnost koja postoji. To je stvarno prilično velik. No, to ne čini puno, jer to ne može komunicirati s kojima se temelji Ubuntu primjer. Tako ćemo reći da sam zapravo žele saznati neke informacije o temeljne Ubuntu primjer, kao što su statistika plug-in ne. Tako ćemo pogledati na malo više informacija o tome kako se statistika plug-in radova. A u stvari, to je vrlo slično ovome. Možda ćete se sjetiti da je postoji dijalog. Možda ćete se sjetiti da postoji neke informacije da je prikazano samo uz traci izbornika zajedno vrhu, koji nadamo se da su sada uzimajući okus kako ćemo provoditi ovaj, Samo umetanjem stavke izbornika na specifične bodova i tako instantiating dijalog i prikazivanje taj dijalog. Ali još nismo prikazano ste kako ga možemo povezati na naredbe u Temeljni Ubuntu instanca. Tako ćemo pogledati onda plugin.2, koja radi upravo to. Idemo otvoriti plugin.js, koji je kod za ovo. No, u izborniku Window, ako kliknete na dijalog 2, možemo vidjeti da kaže Umjesto toga, pozdravi CS50, koji ne izgleda sve što mami, zar ne? Osim, gledajte ovo. Dopustite mi nešto promijeniti ovdje. Ja ću ići na moj Radni prostor i promjene seminar reći nešto drugo, kao što Zdravo, Dan. Idem ga zatvoriti i spremiti ga. A sada ću ponovno pokrenuti moj stavku dijalog. I obavijest da je sada promijenilo ono što piše. Pozdrav, Dan. Izgleda da sam učinio nešto dolje Ovdje u temeljne Ubuntu primjer bez da manipulira bilo kod koji opet radi isključivo na strani klijenta. Tako da je očito neka vrsta komunikacija koja se događa ovdje. Sada je to gdje puno od Snaga Cloud 9 SDK dolazi u, da je u ovom plugin.2, mi zapravo može uzrokovati poziv dogoditi da temeljni primjer, i pokrenuti neke proizvoljne naredbe. Dakle, u ovom slučaju, imam zapravo stvorio vrlo jednostavan bash skripta u mom radnom prostoru zove seminar. Pa neka mi otvori to. I možemo vidjeti da to izgleda ovako. To je samo vrlo jednostavan bash Skripta čija je jedina svrha u životu će biti jeka iz ovog teksta, Pozdrav, Dan. Ili prije toga, on je rekao Zdravo, CS50. I to je sve što će učiniti. Budući da je ovo sada naredba da mogu pokrenuti. Ja zapravo mogu pokrenuti ga ovdje. Možemo vidjeti da je to zapravo samo naredba da trčim naravno. Ja mogu pitati moj plug-in za izvršavanje ove Naredba o osnovnom radnom i analizirati podatke koji je vraćen iz nje, i učiniti nešto s njim, i mijenjati moj plug-in i ponašanje koje sam u mom plug-in, kao rezultat. U REDU. Tako ćemo vidjeti kako se to događa. Vidjeli smo to vrlo jednostavno Seminar serije skriptu koja sam [Nečujan] da ona zapravo može raditi. A sada da vidimo izmjene koje su potrebne za vezati to zajedno s dijaloškom prozoru, i pokrenite ga. Dakle ovdje ćemo učiniti prilično koliko ista stvar kao što smo vidjeli prije. Ali primijetite da među stvari koje sam konzumira now-- osim dijalogu koje Ponovno sam se dogoditi da je to učinio dva puta, koji nije necessary-- pored na dijalog i naredbi i izbornici dodatke, koji su bili potrebno je u prvom jedan za mene definirati novu naredbu i uvelo stavke u izbornicima, Imam ovaj proc plug-in. I to proc plug-in omogućuje nas manipuliraju procese na temeljne primjer. Ja sam ga spojiti nakon što ste rekao je da je moj plug-in je potreban. I onda sam ga povezan s kodom, kao što smo vidjeli u glavnoj funkciji. Opet, ja ću inicijalizirati moj dijalog. A ako se krećemo prema dolje sada smo možete vidjeti kako je to drugačije. Funkcija opterećenje je ista, pa to samo će stvoriti naredbu i stvoriti stavku izbornika i povezivanje koja stavku izbornika na tu naredbu. Ali ako mi sada dođite dolje za prikaz dijaloga, možemo početi vidjeti gdje razlike nastaju. Imamo funkciju pokazati dijalog, koji je samo ide pokazati dijalog. Ali kad sam pokazati ovaj dijalog, te kada je metoda emisija se zove, to pali funkciju crtati. I ja ću onda odrediti neki sadržaj unutar toga. Pa ja sam samo ide stvoriti div, dati za njega neki osnovni tekst, Pozdrav, svijet. Ali primijetite da je ovdje sam će pridaju tome ID. A već sljedećeg retka ću pronaći taj ID pomoću JavaScript, i pohraniti da objekt u drugu varijablu da sam samo ću nazvati sadržaja. Pa sad, kad god imam sadržaj, sve što trebate učiniti je samo mijenjanje ovog objekta unutarnji HTML. I HTML dijalog onda se mijenjati kao dobro. Dakle, kada je ovaj plug-in je tada prikazan, što se može dogoditi i to je novi događaj koji je novi na ovom plug-in, ali se događa u svakom plug-in s dijalog, kad se to sada se prikazuje, Idem nazvati funkcija zove dohvatiti podatke. I ovo je funkcija meso ovdje. Idem koristiti taj proc plug-in koji što je prije opisano, koji usput, stvarno samo Node.js knjižnica koji Cloud 9 koristi ovdje. Dakle, možete zapravo gledati kako ovaj radi ako idete u Node.js dokumentacija i gledati gore exec datoteku Postupak za procese tamo. Idem pokrenuti ovu specifičnu naredba, dom Ubuntu radni prostor Seminar, koji je to isti onaj, koji Ista naredba da sam stvorio prije. Osigurati da ga struja rade imenik, samo biti iznimno sigurna u smislu kontekst u kojem to radi. I jednom da je završen i vratio, Idem pokrenuti ovo funkcija zove parsiranje izlaz. U REDU. Dakle, to onda ide na izvršavanje zapovijed na lokalnoj, odnosno daljinski Ubuntu instanca. Kad sam se vratio neke Informacije, ja sam onda nazvati poseban funkciju zove parsiranje izlaz, da ima tu potpis ovdje, griješiti, stdout, stderr, i obavljati neke računanja o tome. Dakle, ako sam dobio na pogrešku neke vrste uopće, Ja sam zapravo će provjeriti je li Pogreška zapravo ima neke podatke. I ako je tako, onda ću mijenjati unutarnje HTML tog sadržaja objekt koji je li se mi spojeni na dijalog na instantiattion toga dijalog, ili na prvom crtežu tog dijaloga. Idem samo reći da Dogodilo neke pogreške. Sada je to pretjerano jednostavna. Vrijednost pogreške obično će sadrže nešto što je korisno, možda i broj pogreške i Pogreška od samog pisma. Ili, ako je scenarij napisao nešto standardne pogreške, da su podaci će biti popunjeno u tom parametra i. I ja bi mogao biti malo više oprezni o tome što pogreške Ja sam zapravo prikazuje ljude. Ali ova jednostavna primjer je dovoljno dobar za sada barem vidjeti kako sve funkcionira. Inače ako postoji Nema pogreške, onda ja sam samo će pružiti sirovi izlaz toj funkciji u unutarnji HTML ovog sadržaja Element, a zatim ažurirati moj plug-in i pokazati ga ovdje. I to je uglavnom sve što je neophodno da se to pokrenuti. I tako ćemo razmišljati o onda kako se to radi, u ukupnom poretku. Kad sam prvi put učita Ovaj plug-in, baš kao i prvi plug-in, Idem dodati naredbu koja je na raspolaganju sve, na bilo plug-in u Cloud 9, zove CS50 seminar Dijalog 2, čija odgovornost će pokrenuti ovaj show dijalog, koji je se sjećate, će zapravo pokazati dijalog da sam zatražio u nastavku. Onda ću dodati da naredba u izborniku prozora tako da imam pristup da. A kad se to dijalog traži se pokazalo, Ja ću donijeti neke informacije iz temeljne Ubuntu instanca pomoću exec datoteke naredbu. Ispričajte me. Nakon što je vratio i ja primili neke informacije, a zatim na strani klijenta opet, ja ću biti u mogućnosti analizirati izlaz te naredbe i ažurirati unutarnja HTML elemenata da smo povezani s ranije. A uz to, onda bismo se to potpuno funkcionalna plug-in koja mi omogućuje da dohvatiti podatke od ove proizvoljne pismu da smo stvorili na naš temeljni instanca. Ali opet, to je stvarno važno i uistinu ključ odvojiti gdje svaki te stvari se događaju, da smo sve ove strane klijenta kod koje se izvoditi u pregledniku, i još ne imati pristup na temeljne datotečni sustav dok smo zapravo pokrenuti neki od tih naredbe koje pruža Cloud 9 SDK kao proc, i neke druge one koji omogućuju nam da pročitate neke podatke, ili čitati neke datoteke, ako nam treba učiniti ništa od vrste. A ovo je nešto jednostavan primjer. Postoje i druge stvari koje smo bi vjerojatno želite učiniti kao dobro. Na primjer, možda smo zapravo želite spremiti neke informacije sklonostima. Ili možda želimo dodavanje novih povlaštenih okno ili nešto uz one linije. Onda je to nešto što vas možete pogledati na Cloud 9 SDK dobiti više informacija o. Ali ovo je stvarno dovoljno za početak. Dakle, samo da se malo više betona o način na koji neke od tih stvari funkcija, sam htio pokazati samo još jedan primjer, a to je samo neki koda iz Statistike 50 plug-in. A to je u osnovi kod temelju ovih primjera da zapravo nisam vidjela, ali ima još zaštitne mjere i ima više složenosti u cilju da se postignu neke od dodatnih stvari koje želimo postići. Na primjer, ako želim biti moći spasiti neke postavke, onda moram imati pristup na Settings plug-in, i svaki put želim čitati neke postavke, Ja mogu, na primjer, pridaju različiti Događanja u postavkama plug-in. Dakle, svaki put postavke je crvena, na primjer, u mojoj plug-in, ako ću pročitati neke postavke iz spremljenog pohrane preferencije korisnika, onda ja mogu postaviti zadane postavke za određenu lokaciju, za određene prednosti, u koji JSON opcije stila datoteka koje smo spremljene ranije, kako smo vidjeli ranije. A ako ću napisati neke postavke na njemu, onda sam can-- ili čim otkriti da su postavke su pisani to-- jer primjerice, one Postavke su modificirani od strane korisnika izravno u svojim postavkama datoteke ili okno sklonost promijenio postavke podnijeti izravno, onda Ja zapravo mogu ažurirati neke od koda ili ažurirati ponašanje mog plug-in na temelju tih promjena koje su dogodila na datoteku s postavkama kao dobro. Ali stvarno, ostalo od njega je prilično koliko to da ste već vidjeli. Mi dodati neke, možda nešto što je novo. Tako smo dodali sklonost datoteku, ili radije okno sklonost, prema prozoru s postavkama, što opet možete saznati više informacija u Cloud 9 me SDK pročitati. Ali sve ostalo je prilično velik, lijepa slično onome što smo vidjeli prije, samo s nekim dodatnim provjere pogreške i neke dodatne zaštite i neke dodatne funkcionalnosti da imaju sve različite stvari koje smo vidjeli. Ako niste zapravo ga još vidio, možda se pitate što je u podlozi naredba je u prozoru Statistika 50. To je zapravo funkcija. Pa, to is-- oh, do vraga. Jednu sekundu. Drži se. U REDU. Dopustite mi da se presele to tako možemo zapravo vidjeti što se događa kad upišete Statistika 50. Obavijest da je u ovom slučaju, Naredba da sam se stavljajući stvarno opet, samo skriptu koja je će izlaz hrpa informacija u JSON formatu. A razlog da to radimo Na taj način je, jer smo rade, jer smo pisana strani klijenta kod u JavaScript, možemo vrlo lako jednostavno analizirati JavaScript objekata, i stvarno biti u mogućnosti manipulirati ti predmeti baš kao i mi bi bilo koji drugi JavaScript predmet. I tako to je vrlo povoljno način pružanja neke informacije od temeljne Ubuntu primjer, kao što je broj verzije, domaćina ime, je li poslužitelj sluša, što poslužitelj je, tako dalje i tako dalje, i analizirati kako je vrlo lako i vrlo brzo u plug-in koji se onda događa pokazati nam sve te podatke. Pa opet, ključ uvid Ovdje treba imati na umu ovo razdvajanje temeljni primjer, i gdje kod se učitava. Da kad imam klijenta, to je prvo opterećenje. Samo ovaj statički JavaScript datoteka negdje, možda CDN neke vrste. Mi stvarno ne morate brinuti previše o tom prvom koraku. Mi samo znamo da je trčanje na strani klijenta a to je kad idem komunicirati s tom lučki radnik primjer. To ćemo učiniti kroz Cloud 9 SDK. Mi zapravo i ne imati sposobnost, pomoću JavaScript ili Node.js, pisati izravno na njega. Mi samo koristiti one postojeće SDK API za napraviti tu radnju za nas. I opet, jedan od stvarno važne stvari je da kad sam stvorio ovaj, kad sam stvorio ovaj plug-in, i kao što ja radim na tome, jedan od važnih stvari koje treba učiniti je dovesti do JavaScript konzole. Zato jer je to sve djeluju na JavaScriptu, na strani klijenta, ako sam koristiti console.log method-- tako jednostavno pokazati primjer ovdje. Pokušajmo mijenjanja ovaj jednostavan plug-in također prijaviti neke podatke. A mi ćemo dodati standardnu ​​out. Tako ćemo promijeniti da bi se upravo ovdje. Sada kada sam izvršavanje console.log, imajte na umu da jer to je trčanje na strani klijenta, Ja ću vidjeti u svom JavaScript konzola, koja kako ću onda moći pokušati otkloniti i ispravljanje neki od problema koje imam. Obavijest da je zbog Ja sam u SDK modu, ja sam onda mogli manipulirati dodatke na ovom slučaju. Dakle, iako je spremljen na ovaj primjer, ovo je jedan od primjera da prethodna Pravilo se povrijedio, gdje Cloud 9 SDK zapravo će povući dodatke iz temeljne instancu i onda ih pokrenuti. Tako da se na taj način, ja sam onda mogli manipulirati i izgradnju Neki dodaci ovdje. No, kako bi za mene da vidim ažuriranja ovog plug-in, jer je na strani klijenta, Moram spremiti plug-in a zatim ponovno učitati cijeli radni prostor, tako da je novi plug-in je onda skinuti na mom klijentu, na mom web preglednik, a zatim se koristi. Dakle, sada kada sam kliknite na ovaj seminar Dijalog 2, još vidjeti. Ali sada, nadamo se u mom JavaScript dijalog, trebali bismo vidjeti my-- čekati, drži se. Možda ću morati otvoriti svježem dijalog. Trebamo vidjeti moje primljene podatke. Primljeni podaci, Hello, Dan, koji je se sjećate, bio console.log operacija koja tražili smo u plug-in. Dakle, ovaj opis onda koje sam spomenuo prije, ovaj dijalog, ili ovaj Dijagram radije da sam prije spomenuo je ono što se događa. No, tu je važna Izuzetak je samo za razvoj, što je da je plug-in Sama bi zapravo biti pohranjeni na primjer lučki radnik privremeno, jer vjerojatno Cloud 9 ne želi da budemo u stanju manipulirati objekte na svom CDN. I oblak 9 klijenti, nakon utovara, naći one dodatke u to. C9 plug-in mape i učitati oni. No, oni su još uvijek događa samo na strani klijenta. Dakle, onda je to samo Iznimka koja se događa samo za razvoj Cloud 9 dodataka. Ali ostatak time-- a razlog da želimo uistinu čekić ovu home-- je zato što većinu vremena je to će se prikazivati ​​od CDN, i samo će se izvoditi isključivo od strane klijenta. Obično postoji neće biti Interakcija s plug-in, ili postoji ni ne moraju biti bilo Razlog da dodatke sebe zapravo pohranjene na temeljne lučki radnik, primjerice, osim u slučaju taj razvoj SDK. Pa opet, to mijenja samo malo, zbog činjenice koje se prikazuju SDK modu. To će zatim učitati onima dodatke od razvoja, a jedini cilj je da se ovdje, tako da Mogu koristiti Cloud 9 učiniti razvoj za Cloud 9 dodataka. Ali čak i tako, to ne mijenja opet koliko je bilo to radi. I dalje se pokrenuti isključivo na strani klijenta. To samo znači da kad god želim stvoriti Cloud 9 dodatke u Cloud 9, Ja stvoriti one dodatke, stavite ih u. C9 mape / dodataka u mom domu imenik, pobrinite se da sam u SDK modu, učitajte stranicu svaki put sam zapravo napraviti izmjene na tom plug-in, i vidjeti što se događa u moja JavaScript konzola. Samo upravljati moje JavaScript tješe kako bi bili sigurni da bilo rješavanje problema informacije koje sam staviti utješiti, ili bilo što drugo što bi moglo dogoditi zbog grešaka koje sam napisao u mom kodu ili slično, pojavi tamo. A uz to, to je stvarno dovoljno za početak, mislim, s Cloud 9 plug-ins. Pogotovo uzimanje pogledati SDK Dokumentacija koja Cloud 9 pruža. To je sjajan način da se počeo, a vrlo jednostavno stvoriti neke dodatke za Cloud 9. A uz to, želim zahvaliti svi jako puno za mene pridružio. Nadam se da ćete se zabaviti pisanje dodatke za Cloud 9. Možda poboljšanje dodatke da imamo sada, ili možda čak i dodao neke funkcionalnosti sami. Radujemo se vidjeti što je to što stvarate. Do tada, zbogom.