>> DAN Armendáriz: Hei, ja tervetuloa CS50 seminaari mukauttaminen Cloud 9,
ja CS50 IDE.
Joten tänään aiomme vain puhua hieman
joistakin teknisiä tietoja
menee takana arkkitehtuuri Cloud 9, ja miten
olemme toteuttaneet joitakin laajennuksia osana Cloud 9 antaa CS50 IDE.
Joten juuri hypätä oikeassa ja alkaa puhua laajennuksia.
>> Joten laajennuksia ovat todella at ydin Cloud 9 kokemusta.
Cloud 9 on taustalla tekniikka joka tarjoaa meille IDE,
ja myös terminaalin ikkunasta pohja, yhdessä workspace--
Ubuntu workspace-- että me käyttää koota kaikki projekteistamme
ja suorittaa meidän ongelma sarjaa, täydentää meidän ongelma sarjaa.
Mutta ytimessä kaikki se, kaikki tekniikka
on oikeastaan ​​vain joukko laajennuksia.
Kaikki on plug-in jota voidaan muokata,
laajennettu, voit luoda oman laajennuksia,
voit poistaa muita laajennuksia, todella muuttaa
melko paljon toiminnallisuutta nykyisten Cloud 9 IDE.
>> Joten tämä on olemassa Cloud 9 ympäristössä.
Tämä on oikeastaan ​​vain default Cloud 9 ympäristössä.
Ja katsomaan, miten se todellisuudessa eroaa CS50 IDE-.
Joten tämä on CS50 IDE.
Huomaa, että on olemassa joitakin visuaalisia muutosten välillä säännöllisesti Cloud 9
ympäristö ja CS50 IDE.
Erityisesti, luultavasti huomata pari muutoksia.
Ensinnäkin, siellä on vähemmän valikkokohtien aluksi.
On oikeastaan ​​tapa että voit muuttaa että.
Sitä kutsutaan Simple Mode.
>> Oletuksena Simple Mode on käytössä, ja joka yksinkertaistaa joitakin valikkotoimintoja.
Se poistaa joitakin kehittyneimmillä,
koska suoraan sanottuna, paljon opiskelijat, jotka ovat tulossa
ja ei tarvitse tietää joitakin ja lisäominaisuuksia
eivät ole ylityöllistettyjä kanssa joukko vaihtoehtoja.
Mutta emme antaa mahdollisuuden ottaa pois ne ns apupyörät
ja poistaa että rakennustelineet jotta ihmiset
voi tulla tottuneet lisäominaisuuksia IDE.
Välittömästi oikealle puolelle, siellä
myös debug-painike, joka standardin Cloud
9 ympäristö on yksinkertaisesti nimeltään aikavälillä.
Mutta oletuksena, olemme määritetty debug painiketta CS50 IDE
esiin debuggeri, automaattisesti kääntää lähdekoodista,
kytke debuggeri alla olevaan GDB--
ja koska se on käynnissä suorittaa debugging-- ja jotkut muut vaiheet
yhtä hyvin.
Myös terminaalin ikkunasta very-- tai pikemminkin päätelaitteen
välilehti konsolin osiossa ikkuna alareunassa näytön,
nimekseen yksinkertaisesti terminaaliin.
Kun taas standardin Cloud 9 ympäristö,
se todella osoittaa käynnissä sovellus.
Tällä tavalla, se helpottaa, uudelleen, GUI, vain hieman.
>> Lisäsimme myös joitakin painikkeita on oikeassa yläkulmassa IDE
näyttää joitakin perustietoja noin taustalla oikeusasteessa.
Ja myös olemme poistaneet yksi on vaihtoehtoja kohdetta
äärioikeiston.
Joten kaikki tämä on toteutettu ei muuttamalla välttämättä Cloud 9
lähdekoodia, mutta sen sijaan kautta pari
laajennuksia, jotka olemme toteuttaneet koko viime vuoden aikana tai niin.
Ja Cloud 9 on isännöinyt ja on käynnissä CS50 työtilassa.
Tai pikemminkin työtilat on nimetty CS50 IDE.
>> Siis todella se suurin ero välillä Cloud 9 ja CS50
työtilat.
Mukana on myös, että taustalla Esimerkiksi ensisijainen muutos on
että me asentaa joitakin esiasennettu kohteita, kuten GDB,
ja joitakin muita perusasioita, jotka olemme luoneet, kuten Update 50,
ja pari muuta askelta, jotka tekevät koko kokemus hieman enemmän
yhtenäinen.
Mutta kaiken kaikkiaan, tämä on vain muutos olemassa olevan järjestelmän
että Cloud 9 on luonut meille.
Mitä aiomme näyttää hieman myöhemmin
on, miten itse luoda hieman perus plug-in, joka
voimme lisätä jotain osaksi valikkojärjestelmä, ja avata vuoropuhelun.
Ja jos meillä on tarpeeksi aika, käymme oikeastaan
miten voimme asuttaa että vuoropuhelua joitakin tietoja
alla olevasta oikeusasteessa.
Jotta voimme päästä tähän kohta, nyt ensimmäinen puhua hieman
noin arkkitehtuuri Cloud 9.
>> Niin että olemme tottuneet on vuorovaikutuksessa Cloud 9
on täysin kautta asiakas.
Avaamme web-selain, me kirjoittaa CS50.io.
Me lopulta, kun todennus, esittelyyn IDE.
Mutta ymmärtää, että on olemassa pari askelta
että todella saada meidät tähän pisteeseen.
Aivan ensimmäinen asia on, että minun asiakas, web-selain,
pyynnöstä ja todennuksen jälkeen, lataa GUI ja laajennukset
joidenkin CDN, joidenkin Content Delivery Network.
Tämä voi olla rehellisesti missä tahansa.
>> Ja tämä on todella erillinen alla olevasta oikeusasteessa.
On tärkeää ymmärtää, että tämä on oikeastaan ​​vain joukko staattisia tiedostoja.
Se on joukko JavaScript- joka on ladattu CDN
on minun web-selain, ja kaikki GUI että olet
katso here-- tämä on todella key-- kaikki GUI että näet täällä
ajetaan asiakkaan puolella.
Kaikki mitä näet Cloud 9 työtilan
on todella ajaa selaimessa.
Ja jotain mitä lähettää pitkin alla olevaan oikeusasteessa
on yhteydessä esimerkiksi pitkin tätä toista erillistä kanavaa,
ja tallennetaan sitten päälle että docker oikeusasteessa.
>> Niin siitä syystä, että sanon tämä on satamatyöntekijänä esimerkiksi
on, että taustalla tekniikka ei käytä virtuaalikoneita,
mutta sen sijaan käyttää tekniikkaa kutsutaan docker,
joka pohjimmiltaan allows-- lähin analogia on virtuaalikone.
Mutta se on hieman toisenlainen että on olemassa
runsaasti mahdollisuuksia suorittaa yhdistelmä eri docker
tapauksissa samalla koneella.
Ja ne voidaan kehrätty ylös hyvin nopeasti peräkkäin.
Se ei ole aivan enemmän tiukka eriyttäminen
eri docker tapauksissa koska ovat virtuaalikoneita,
mutta silti siellä on paljon erilaistumista ja erottaminen
näiden eri tapauksissa.
OK.
Joten kaksi vaihetta tässä, että ovat tärkeitä ymmärtää
on, että kun menemme CS50.io, olemme lataamalla GUI ja laajennuksia,
joka on kirjoitettu JavaScript puolesta selaimen tai selaimen.
Ja tämä on ehkä pari megatavua arvoinen tietoja.
Tässä vaiheessa, kun GUI on ladattu ja laajennuksia ovat alkaneet,
sitten se alkaa kommunikoida docker esimerkiksi joka ei
välttämättä tarvitse olla samalla palvelimella.
>> Nyt on yksi poikkeus.
Meillä saattaa olla sekä toimitus mekanismi GUI itse
ja docker esimerkiksi kaikki samalla palvelimella, joka
on todella jotain, että teemme offline version Cloud 9.
Tämä ei ole jotain, että olemme julkisuutta kovasti tänä syksynä,
mutta meillä on myös offline-versio, joka
mahdollistaa ladata pakattu versio kaikki nämä asiat
ja voit ajaa Cloud 9 offline ympäristössä.
>> Siirrät pois pilvi ja päälle omalla koneellasi on joitakin vaikutuksia.
Erityisesti sinun ei enää ole kykyä
jakaa työtilan muiden kanssa.
Et enää voi avata Cloud 9 alkaen, ja CS50 IDE, miltä tahansa tietokoneelta
ja sama tiedostot olit työskennellyt ennen.
Vaan se toimii täysin oman paikallisen koneen
ilman pääsy internetiin.
Mutta silti jopa että malli, jopa vaikka meillä on yksi virtuaalikone
joka on olennaisesti käynnissä näitä asioita.
>> Meillä on erillinen palvelin, joka on tuottaa olennaisesti Cloud 9
sisältöä, ja sitten me on docker oikeusasteessa
joka on vastuussa viestiä kanssa, että IDE loppupäätä.
OK.
Joten koko GUI kirjoitetaan kokonaan JavaScript
käyttäen Node.js ja Cloud 9 SDK, joka me saamme vain hetken.
Ja kaikki laajennukset ajetaan asiakkaan puolella.
Joten keskittyä sitten hieman ottamalla
että tämä ensimmäinen vaihe on todella onnistunut,
ja katsoa vain tätä docker oikeusasteessa.
>> Joten tässä tapauksessa, tämä on tavallinen
on ajatellut tehdä Cloud 9 plug-in kehitys on, että aiot
on kirjallisesti koodia, joka ajettavaksi käyttäjän selaimessa,
ja sinulla on mahdollisuus käyttäen joitakin API kommunikoida
kanssa taustalla ikkunasta esimerkiksi ajaa koodia siellä, ja tee mitään
että saatat haluta tehdä.
Joten tämä tulee olemaan yhteydessä, että me will
olla käyttäen loput tästä puhua.
Ja vain pitää tätä mallia mielessä.
Tämä on erittäin tärkeää vain muutaman minuutin.
On pari linkkejä Haluan näyttää sinulle.
Ensinnäkin, Cloud 9 on tarjonnut aika paljon dokumentaatiota
se on melko hyvä, joka osoittaa, miten tehdä perus plug-in kehittämiseen.
Joten jos menet tätä URL-osoitetta, cloud9-sdk.readme.io,
näet asiakirjat siellä.
Ja paljon tätä tietoa että olet tulleet
löytyy myös siellä, plus enemmän.
Voit myös löytää avoimen lähdekoodin versio Cloud 9 -sivuilla osoitteessa,
github.com/c9/core, jota käytämme osa offline-version IDE,
niin että voit saada sama Cloud 9 kokemusta,
mutta offline tavalla.
Selvä.
Joten katsomaan Varsinainen Cloud 9 työtila täällä.
Ja vielä, haluan huomauttaa ulos pari asiaa.
Tämä on, täällä, normaali CS50 IDE.
Ja olen käytöstä vähemmän mukava tilassa kohdassa Näytä valikko
jotta voin nähdä kaikki valikon vaihtoehdoista.
Haluan näyttää sinulle oikea nyt on pari asiaa.
Ensinnäkin, jos menen Asetukset ja sitten
klikkaa Plug-in-johtaja, ja kirjoita CS50 täällä,
voimme nähdä, että on olemassa, itse asiassa, pari CS50 laajennuksia, jotka
asennettiin ja meidän Chromebook mahdollistaa muutokset, jotka olemme
nähneet CS50 IDE.
>> Juuri nyt siellä on pohjimmiltaan kaksi laajennuksia, jotka ovat käynnissä.
Siellä on yksi nimeltään yksinkertainen, joka on yksinkertaistettu tila, joka
avulla voit vähentää Valikkovaihtoehtojen yläreunassa,
ja ovat tämän niin sanotun vähemmän mukava tila.
Ja sitten on myös CS50 tilastot, joka on ehkä vain hieman väärin nimetty.
Koska tämä on mitä näyttää tiedot
noin taustalla työtilan.
Se ruiskuttaa nämä painikkeet pitkin oikeassa yläkulmassa.
Se myös ruiskuttaa valikkokohta osaksi ikkuna tuote, osaksi Ikkuna-valikosta
täällä, CS50 IDE Info.
Ja se on vastuussa instantiating tätä vuoropuhelua että olemme nähneet täällä,
kaikki tiedot, että olemme tottuneet näkemään CS50 IDE
työtila.
OK.
Joten ei oikeastaan ​​yksi plug-in että olemme kehittäneet samoin.
Ja siellä on pari muita, meillä on myös ei julkisesti vapautetaan.
Mutta yksi niistä on yleinen plug-in, jonka avulla GDB toimiakseen.
Joten yksi osa Cloud 9 on, että ne ovat antaneet jo
tämä GUI toteuttaa debuggeri.
Ja yksi laajennuksia, olemme luoneet pohjimmiltaan
koukkuja GDB tällä GUI pohjainen versio debuggeri.
Ja vastaa välittäjänä kaikki ja pyytää, että käyttäjä voi olla,
välillä tehostamalla yli tai luoda raja-arvot tai mitään
tämänsuuntaista, kääntämiseen että komentoihin että GDB voi ymmärtää,
antavan niille komentoja GDB.
Ja heti kun GDB antaa vastaus, sitten
me tulkita ja päivittää GUI tarpeen.
>> Se on luultavasti yksi monimutkaisempi
plug-ins, joten sen sijaan mitä olemme menossa keskittyä tänään on itse asiassa
Tilastot plug-in, ja niin jutellaan hieman noin yksinkertainen, samoin.
Joten mainitsin aikaisemmin, ja haluan todella tehdä hyvin, hyvin selväksi, että uudelleen,
kaikki tämä, että olemme näkeminen tässä olennaisesti
toimii asiakkaan puolella.
Me näemme pääteikkunaan alla, ja että, tietenkin,
jos me kirjoittaa komennot että, joita sitten annetaan
alla olevaan oikeusasteessa.
Samoin, jos avaamme uuden tiedoston ja kirjoita joitakin juttuja siihen ja tallentaa sen,
että tiedosto tallennetaan taustalla oikeusasteessa.
>> Mutta toimittaja itse, tämä pääteikkunaa itse,
on kaikki toteutettu JavaScript ja on kaikki plug-in
että voimme vuorovaikutuksessa, ja siksi muuttaa.
Siellä on paljon laajennettavuus täällä.
Suosittelen vilkaisemalla Cloud 9: n GitHub tili
nähdä valtava määrä laajennuksia, jotka ovat käytettävissä,
ja kuinka hyvin kirjoitettu paljon koodi on laajennettavuutta.
Joten siinä on jotain että haluan mainita
tästä myös, mikä on että on olemassa paljon of-- siellä
paljon toiminnallisuutta, joka on säädetään asetuksissa
ikkuna, joka olemme nähneet vain viittasi vain muutama minuutti sitten.
>> Yksi niistä asioista, joita voimme tehdä IDE kehittäjät, tai Cloud 9 kehittäjille,
on todella pistää joitakin etusija paneelit oman.
Niin yksinkertainen tila, tai vähemmän mukava tila,
ja myös IDE tiedot, tai tilastot plug-in,
on kukin jotkut mieluummin paneelit, joiden avulla voimme muuttaa
käyttäytymistä kunkin näistä.
Huomaat, että jos menen Asetukset ja mene Käyttäjän asetukset,
siellä CS50 välilehti, yksi joka sanoo IDE tiedot.
Ja voin vaihtaa tiedot virkistystaajuus.
>> Tehokkaasti, mitä tapahtuu vuonna tilastot plug-in
on se, että joka n: s, jossa n-sekuntia määritellään tämä etusija
paneeli, tiedot noudetaan alkaen taustalla esimerkiksi lähetetään
takaisin asiakkaan puolelta, plug-in on sitten
tulkkaus tiedot alkaen taustalla oikeusasteessa
ja päivittää GUI tarvittaessa.
Voimme nähdä, että nyt tämä on asetettu 30 sekuntia, ja se on oletuksena.
Mutta en voi varmasti muuttaa kuinka nopeasti tämä tapahtuu vain
muokkaamalla tätä arvoa.
>> Nyt yksi mielenkiintoisia asioita on se, että tämä etusija paneeli, GUI,
on oikeastaan ​​vain GUI versio on paljon taustalla asetukset
että esitetään JSON.
Joten jos menen, esimerkiksi alle CS50 IDE valikosta tai Cloud 9 valikosta
riippuen siitä, mikä versio etsit,
ja mene johonkin näistä settings-- tässä tapauksessa,
hanke settings-- Projektiasetukset tässä tapauksessa
sovelletaan kaikki asetukset tämä yksi työtilaan.
Kun taas käyttäjän asetukset koskevat kaikille työtilat
että saatat olla tililläsi.
>> Aivan kuten syrjään täällä, olla erityisen selkeä,
siellä on erotettu toisistaan kaksi sillä vaikka oletuksena me
on yksi työtila, joka on CS50 IDE, jos
olivat napsauttaa pikku avatar täällä ja mene kojelauta,
huomaat, että voit todella luoda uusia työtiloja samoin.
Voit nähdä täällä että minulla on IDE 50 työtila, ja myös
varten tämän seminaari, työtila
nimeltään työtila, joka on täällä.
Niin joka tapauksessa, minulla on erilaiset mieltymykset.
Jokainen näistä voi olla erillinen hanke mieltymykset,
mutta käyttäjän asetukset ovat jaettaisiin kaikki minun työtilat.
Muuten, tämä on myös erittäin kätevä, jos
haluavat luoda työtilan eri muokkausmahdollisuudet.
Ja se on erittäin kätevä Luo uusi työtila.
Ja valitse yksi, joka voisi olla ennalta määritetty jollakin muulla tavalla,
ehkä PHP erityisesti, tai Django erityisesti.
Tai jopa vain mukautettuja.
CS50 työtila malli on yksi että me
käyttää sitä asentaa automaattisesti Päivitys 50 ja kaikki asetukset
että meillä on siellä, mukaan lukien kaikki laajennuksia että meillä on CS50 IDE.
OK.
Mutta katsotaanpa palata tähän.
Joten jälleen, on hankkeita, asetukset, ja ne ovat niitä
että etsimme täällä.
Ja huomaa, että siellä olemassa joukko asetuksia,
monet heistä vastaavat etusija paneelit, mutta ei niitä kaikkia.
Mutta voimme nähdä, että täällä, this-- OH Ei, ei laitan sen käyttäjän asetukset?
Ehkä laitan sen käyttäjän asetukset.
Ja tämä, tässä sitä mennään.
Vuonna käyttäjän asetukset, voimme nähdä, että meillä on CS50 jakso,
ja tämä on kirjoitettu että näiden Cloud 9 laajennukset
että olemme täytäntöön.
On yksinkertainen yksi vastaa, että yksinkertainen plug-in,
ja tilastot joka vastaa, että GUI
versio parempana paneeli.
Virkistystaajuus, tässä tapauksessa on asetettu 20 sekuntia.
>> Tämä on kaikki, toivottavasti, alkuja joitakin tietoja
että me itse nähdä hieman vähän tarkemmin, hetkellisesti.
OK.
Joten sanoa haluamme itse saada alas se.
Ymmärrämme, että kaikki jutut että tapahtuu asiakkaan puolelta
tehdään todella selaimen, joka tarkoittaa, että laajennuksia että kirjoitan
aiotaan kirjallinen selaimella mielessä.
Ja jos minä todella haluavat tehdä mitään työtilan,
Aion kenties aloittaa jonkinlainen viestintä
välillä selain ja työtila olla varma
että on todella suoritettu.
Mutta sanotaan, että nyt Haluan saada alas se
ja itse luoda ensimmäinen plug-in.
No, niin, että sinulla olisi mahdollisuus tehdä se on oikeastaan ​​aika helppoa.
Se annetaan Cloud 9 SDK.
Mutta se ottaa nykyiset työtilan nimi, joka
on URL että olet yläreunassa teidän bar, ja lisää seuraava siihen.
?
SDK = 1 & Debub = 2.
Nyt mitä tämä tulee, jotta on että SDK = 1 todella asettaa SDK
tilassa totta, mikä mahdollistaa pari ylimääräistä asioita.
Ja debug = 2 avulla virheilmoituksia olla hieman monisanainen.
>> Ja joten jos esiin JavaScript konsolin Chrome kehittäjä välilehti,
te todella voi nähdä paljon enemmän tietoa
kuin sinulla olisi muuten.
Joten suosittelen kääntämällä molempia samaan aikaan, koska se todella
on hyödyllistä koota kaikki tähän lisäinformaatio.
On tärkeää huomata kuitenkin, että kääntämällä debug arvoon 2
tarkoittaa, että se on hyvin monisanainen, ja se todella
tulee jonkin verran huomattavasti hidastaa IDE, varsinkin kun lastaus
tai milloin teet raskaita tehtäviä.
Joten pitää tämä mielessä.
Se on hyödyllinen kehitystä, mutta sinä ehkä halua olla sen koko ajan.
>> Joten todella tehdä.
Mutta tässä tapauksessa, Minulla on oikeastaan jo perustettu työtila tämän.
Katsotaanpa, SDK = 1 & debug = 2.
Pari laajennuksia toivottavasti jo asennettu.
Selvä.
Joten nyt olen päällä SDK debug tilassa, huomaa että olemme debug-tilassa,
jotta voimme tarkastella dev työkaluja nähdä virheitä, jotka minä teen offscreen.
Voimme nähdä, että on olemassa joukko virheitä täällä.
Nyt se on oikeastaan ​​aika yleistä Cloud 9 on pari virheitä,
ja En huolehtisi niistä kunnes
nähdä jotain, joka voisi olla erityinen plug-in
että satut olemaan luomiseen.
>> Joten tässä esimerkiksi saamme pari 404s-- ei löytynyt.
Näemme emme voi ladata joitakin tiedot pois taustalla oikeusasteessa
itse.
Ja siellä on joukko muita tietoa, mutta suurin osa tästä olemme
todella menossa sivuuttaa nyt.
Koska tämä on melko yhteinen työtila
on vain pari virheitä.
OK.
Aion siirtää tätä pois miten ja palata tänne.
Ja nyt helposti, mukava asia ottaa tämä kehittäjä
tila käytössä on, että se antaa minulle helposti luoda uuden plug-in.
>> Joten kun ennen olen itse ei on tämä uusi plug-in vaihtoehto,
jossa voimme nähdä, jos menen takaisin minun ei kehittäjätilassa tänne,
ei ole uusi plug-in.
Mahdollistamalla SDK tilassa I on uusi plug-in saatavilla
ja voin helposti luoda yksi.
Tässä tapauksessa on olemassa pari eri vaihtoehtoja, yksinkertainen,
tyhjä plug-in, täysin plug-in, asentaja, Cloud 9 nippu.
Haluan vain valita tyhjä plug-in nyt
jotta voimme nähdä hyvin yksinkertainen version yhden.
>> Nyt huomaa, että pitkin vasen puoli, että siellä on nyt
jotain alle suosikit, joka on listaus pari laajennuksia
jotka ovat nyt saatavilla minulle.
Jos minä laajentaa, että me nähdä niitä.
Nyt haluan teidän huomaavan jotain, joka
on, että tämä ei tosiasiallisesti sisältyvät sisällä työtilan hakemisto
minun taustalla Ubuntu Esimerkiksi mutta se sisältyy kiintolevylle.
Ja missä tämä sijaitsee, koska tämä on erittäin hyödyllistä tietää,
varsinkin jos aiot tehdä mitään Git,
jossa tämä sijaitsee, on vuonna .c9 kansioon, / plugins.
Joten jos menen sinne, voimme nähdä, että nyt Luettelo laajennuksia, jotka ovat täällä
vastaa luettelon laajennuksia, I näkivät vasemmalla puolella minun työtila.
>> Nyt oletusarvoisesti, ja tämä on outoa,
oletuksena, kun luon uusi plug-in työtilassa,
se luo tämän plug-in, että Oletuksena on nimi alaviiva.
Yleisesti, että pitää aiheuttaa ongelmia.
Joten hyvin seuraava askel että olen yleensä tehdä
on vain poistaa että erityisesti plug-in
ja jättää vain yksinkertainen plug-in, joka oli siellä ensin, plugin.simple.
Ja se on ainoa, joka on olemassa.
OK.
>> Mitä tämä oikeastaan ​​näyttää?
Hyvin, tämä on, jälleen, JavaScript paketti
joka sisältää joitakin tiedostoja, lukien plugin.js tiedosto, jossa
pääasiallinen sisältö Plug-in sijaitsee,
package.json tiedoston, joka todella täsmennetään
jotkut metatiedot tästä plug-in, kuten kuka tekijä on,
muita tietoja, kuvaus plug-in, ja niin edelleen.
Ja myös oletuksena, se luo tyhjän README,
ja tyhjä testitiedosto voit luoda joitakin muita asiakirjoja,
ja testaus valjaat jos haluat tehdä.
>> Joten vain katsomaan ensin, hyvin nopeasti, on package.json tiedosto.
Se on helppoa vain mennä läpi se ja täytä alueilla tämän
että haluaisi täyttää, kuten antaa sille nimi, anna kuvaus,
kerrata versionumero joka niin usein, tarjoavat
kirjailija jokaiselle henkilö, joka osallistuu,
lisää ne vastaajat jakso, ja loput tästä sinua
voi melko paljon vain jätä se on nyt.
>> On yksi asia, joka on tärkeää huomata,
että alle laajennuksia osassa, on keskeinen kutsutaan plug-in.
Ja tämä on sovitettu nimi JavaScript-tiedosto nimeltä plugin.js.
Joten tämä on, miten Cloud 9 tietää, milloin se lukee tämän package.json tiedosto, joka
ja js tiedostot todella ladata.
Jos luon ylimääräisiä JS-tiedostoja tai haluat nimetä että js tiedosto plug-in,
Minulla on myös muuttaa sitä vuonna package.json tiedostoon.
>> Mikä tahansa yleisön kysymyksiin?
Ei.
Että yksi henkilö, joka on Seuraavat kanssani toistaiseksi.
>> OK.
Joten olen todella luonut pari laajennuksia jo,
Luulen, tässä työtilassa.
Joten päästä eroon joistakin näistä, lisätä SDK = 1 & debug = 2, lataa tämä työtila,
ja katsotaan, jos me on nämä laajennukset nyt.
C9 / plugins.
No niin.
Voimme nähdä nyt minun C9 / plugins tämän yksi, meillä on plugin.1 ja plugin.2.
Joten aiomme vain tehostamaan the-- vain lisätä määrää vaikeus
kussakin näistä laajennuksia.
Mutta tässä jos luon uuden plug-in, Voin lisätä sen suosikkeihin.
Ja minä vain poistaa ne maasta taustalla tiedostojärjestelmä.
>> Katsotaanpa poistaa sen.
Nyt jos avaan ensimmäinen plug-in, ja avoin plugin.js,
voimme nähdä täällä taustalla yksinkertainen versio plug-in.
Anna minun itse mennä takaisin tähän toiseen työtilaan
koska voit ainakin täällä nähdä, mitä tyhjä plug-in todella näyttää.
Joten alla huppu, tämä näyttää hyvin samankaltainen tekniikkaa kutsutaan,
Luulen, se on RequireJS.
Huomaa, että tämä ei todella katsoa, ​​ehkä,
sama kuin jotkut muut JavaScript tiedostot olisimme nähneet.
Mutta sen sijaan, siellä on pari vain peruslinjat että se todella on.
>> Kaikki tämä tavaraa on ensimmäinen tulkinnut IDE,
mutta se ei ole oikeastaan ajaa kunnes määritelty.
Ja minä kerron teille, kun kyseinen oikeastaan ​​tarkoittaa vain hetken.
Mutta huomaa, että tässä on olemassa main.consumes linja linja 2,
ja tämä luetellaan kaikki laajennukset että tämä plug-in on riippuvainen.
Joten oletusarvoisesti, emme ehkä ei olla kaikki riippuvaisia ​​muiden laajennuksia,
mutta kun me oikeastaan ​​tarvitse riippuvat ominaisuudet mukana
muut plug-ins IDE, meidän luetella laajennuksia
vuonna main.consumes linja.
Ja sitten meidän täytyy yhdistää ne koodi
alapuolella, jonka minä näytän sinulle vain hetki siitä, miten voimme tehdä sen.
>> Main.provides antaa nimi tämän plug-in
että muut laajennuksia voisi käyttää niiden kuluttaa linja.
Joten tässä tapauksessa, Plug-in on juuri perustanut sinne oletuksena,
ja meidän pitäisi muuttaa, että ollakseen sovelletaan oman plug-in,
kuten näemme vain hetken.
Nyt täällä toiminto tärkein, tämä toiminto tärkein
on todella ajaa ja tulkitaan, mutta se ei itse tehdä kovin paljon.
Se vain saa kaiken perustaa, mutta se ei varsinaisesti aloittaa plug-in,
huolimatta siitä, mitä nimi kuulostaa.
Tämä todella tapahtuu kautta sekvenssi menetelmiä, jotka
sisältyvät koko tämän plug-in.
>> Jos siis selaa, voimme nähdä että meillä elinkaari jossa
joitakin tapahtuma nimeltä kuormitus, tai jokin tapahtuma nimeltään purkaa,
Jotkut tapahtumat todella tapahtua.
Se on todella täällä jos sillä plug-in alkaa että näitä menetelmiä kutsutaan.
Joten olla hieman konkreettisempia tästä ja katso esimerkki.
Joten täällä plugin.1, mitä olemme periaatteessa teemme
on luoda valikkokohta nimeltään CS50 Seminaari Dialog 1--
koska meillä on kaksi them-- ja olemme menossa
pistää sen Ikkuna-valikosta.
Ja kun klikkaa sitä, olemme aikoo avata vuoropuhelun
osoittaa meille joitakin hyvin perustietoja.
>> Tässä tapauksessa vain Hello World.
Joten tämä on hyvin yksinkertainen Hello World vuoropuhelu
että voimme toteuttaa plug-in Cloud 9.
Joten miten tämä todella näyttää.
Me selata sitä, vain suhteellisen nopeasti niin me
katsoa seuraavan plug-in samoin.
Huomaa, että tässä ollaan kuluttaa erilaisia ​​laajennuksia.
Olemme vievää vuoropuhelu plug-in, komennot, valikot, ja UI.
Näyttää Olen itse olen vievää vuoropuhelua kahdesti, joten voin poistaa sen.
>> Ja huomaa, että tapa että olen yhdistävät heitä,
tämä on eräänlainen metatietoja kertoo plug-in-järjestelmä, mitä vaatimuksia
ovat todella tarpeen Tämän plug-in ladata.
On myös tärkeää huomata, että jotta laajennuksia ladataan
ei ole taattu.
Mutta mikä on taattu on, että jos minä määritä joitakin plug-in kuin vaatimus,
että plug-in ladataan ennen tämä on ladattu.
>> Niin se tarkoittaa, että jos plug-in vaatii joitakin toiminnallisuudesta
jotain muuta IDE, sinun pitäisi olla varma, että plug-in kuluttaa
että plug-in niin, että riippuvuudet ovat varmasti luoda plug-in,
tai instantiate sinun plug-in, vain jälkeen, että nykyinen kehys on olemassa.
Joten tässä olen maininnut metatiedot plug-in-johtaja,
mitkä Aion kuluttaa.
Ja päätehtävä täällä, Aion kytke
minun koodi tuotuja laajennuksia.
>> Joten olen juuri menossa luoda joitakin muuttujia,
vastaavat nimet kaikkien näiden niin että voin hyvin nopeasti viittaus niitä
koko minun koodi.
Syynä Olen tuovan vuoropuhelu on koska haluan plug-in
toimia vuoropuhelun plug-in.
Ja että pystyn tehdä se on, tietenkin,
kytken koodi vuoropuhelua plug-in tuomalla se
ja sitten määrittämällä mukaan luoda uuden vuoropuhelun muuttuja
ja liittämällä sen että tuotu plug-in.
Ja sitten määrittelemällä minun plug-in uutena vuoropuhelua.
>> Joten alustuksen, I haluat määrittää Plug-in.
Ja tämä muuttuja nimeltä plug-in näet
on vain käytetään yleisesti koko Cloud 9 laajennuksia.
Aion instantiate uusi vuoropuhelua joidenkin ominaisuuksia,
antaa se erityinen nimi, sanovat, että se on mahdollista käyttäjät voivat sulkea.
Että se näytän vähän x oikeassa yläkulmassa,
tai pieni painike vasemmassa alakulmassa.
Vai en voi valita tekstiä se, mitä otsikko että vuoropuhelu
olisi, ja niin edelleen.
Nyt tämä vain määritellään vuoropuhelua, mutta se ei vielä näytä sitä.
Minulla on oikeastaan ​​määritellä toimiin se näytetään.
>> Ja vielä, kehotan teitä katsomaan Cloud 9 SDK,
koska on olemassa erilaisia ​​vuoropuheluja ja he ovat todella hyvin dokumentoitu.
Näet erilaisia että on olemassa, ja käyttää niitä
missä tahansa plug-in sinulla on mielessä.
Nyt tulee olemaan kuormaosan, ja tämä kuormitus
toimivat muistatte on jota plug-in elinkaaren
todella instantiate kaikki ja saada kaikki valmiina.
Nyt kun tämä plug-in kuormia, en haluavat sen heti näyttää vuoropuhelua,
koska tämä plug-in latautuu yhdessä muun IDE.
Ja kun lataan että IDE, en halua vuoropuhelu näy automaattisesti.
En vain halua, että se näyttää, kun napsautan valikon minun Ikkuna valikkokohta
että minä lisään sen hetkellisesti.
>> Joten siellä on kaksi erillistä vaihetta täällä, että täytyy tapahtua.
Minulla on luoda komento, ja komento
vastaa tosiasiallisesti näytetään vuoropuhelua Cloud 9 IDE.
Ja sitten minun täytyy liittää, I on luotava uuteen ikkunaan valikko
erä, joka kulkee komennon.
Niin että kun klikkaa että ikkuna valikkokohta, että komento on valitse Suorita
ja siksi minun vuoropuhelua sitten esitetty.
Ja niin tämä on oikeastaan ​​aika mukava tapa ajatella sitä.
>> Koska ensimmäinen Voin luoda komennon jonka nimi on CS50 Seminaari Dialog 1,
joka tarjoaa joitakin Yleinen tausta sitä.
Ja tärkeä vähän täällä on huomaa EXEC ominaisuus, joka
luetellaan toiminto, jota kutsutaan minun plug-in, kun tämä komento suoritetaan.
Joten tämä käsky on eräänlainen kuten a-- se on vain mielivaltainen Cloud 9
komento, joka on saatavilla Jonkin Cloud 9 plug-in.
Mutta varsinainen toiminto että se on aikoo kutsua kun komento suoritetaan
on show vuoropuhelu toiminto minun plugin.js tiedostoon.
>> Ja voimme todella nähdä nämä laajennukset ja luettelo
komentoja, jotka ovat käytettävissä meille Asetukset, selaa kaikki down--
Katsotaanpa, itse asiassa näemme tämän nyt?
Plug-in-johtaja, ei, mielestäni I-- se ehdottomasti täällä jossain.
No, siellä on luettelo komennoista jonnekin, mutta minun täytyy olla,
Olen unohtanut missä se on.
Joten ok, me eteenpäin.
Selvä.
Joten meillä on lista komennoista jotka ovat käytettävissä meille,
ja nämä komennot ovat nämä vain mielivaltainen Cloud 9
komennot, jotka toimivat koodilla.
Joten pitää tämä mielessä, että aiomme ajaa näyttää valintaikkuna
toimivat hetkellisesti.
Nyt kun olen todella haluavat lisätä valikkoon tuote, voin lisätä, että kohta polun,
ja vain määrittää tarkalleen missä haluan sen olevan, ikkuna / CS50 Seminaari Dialog 1.
Ja siinä vaiheessa, haluan luoda uuden kohteen, joka
aikoo komentoa, CS50 Seminaari Dialog 1.
Huomaa, että jälleen, tämä on Cloud 9 komento Olen luonut yläpuolella.
>> Nyt Haluan myös luoda pieni jakaja,
ja niin voin tehdä samoin seuraavassa linja.
Nyt saatat huomata, että osa määritellään tämän vaihtoehdon,
siellä on useita liittyy se, joka
oikeastaan ​​sanoo missä tarkalleen Haluan, että valikkokohta on
sijaitsevat luettelon valikoista.
Mutta saatat huomata että en ole oikeastaan
näe mitään numeroita Näiden valikoiden oletusarvoisesti.
Joten siellä on vähän piilotettu asia, että voimme tehdä, pieni muutos meidän URL.
Joten lisäksi SDK = 1 & debug = 2, Minä asettaa valikosta 1--
ja toivottavasti se valikko, ei valikoita.
Voi, se on valikot = 1.
Pidä kiinni.
>> Ja mitä näemme, kun asetat, että IDE on, että olen edelleen debug-tilassa,
mutta nyt on olemassa numeroita liittyvät kaikki valikot.
Ja tämä kertoo mitä numero
on kun yrität pistää jotain kaikkialla tässä valikossa järjestelmään.
Joten Ikkuna-valikosta, voin nähdä, että kohta 45 on tehtävä yhteistyötä
ja kohta 38, ennen kuin se on asennusohjelma.
Joten kun haluan pistää erä näiden kahden,
Haluaisin vain valitse numero näiden kahden kohdetta.
Joten Olen valinnut 41 ja lisätään minun seminaari Dialog 1 valikkokohdan kyseisessä paikassa.
>> Ja siksi tämä numero joka näkyy tässä numero 41.
Tämä on sijainti, joka valikkoa Cloud 9 valikosta.
Nyt samoin, halusin luoda jakaja
ja lisätä sen niin, että siellä on mukava jako kukin näistä valikon
kohteita.
Niin lisäsin että paikassa 43.
Toistaiseksi niin hyvä, toivon?
Joten Nyt todella katsoa koodilla näyttelyssä dialogi
se on tosiasiallisesti vastuussa avaamista tämän ikkunan.
>> Vierittämällä, näen, että haluan on tämä toiminto näyttää valintaikkunan,
ja se on erittäin yksinkertainen.
Aion ajaa näyttää menetelmää plug-muuttujaan.
Ja muista, että me määritelty tämän plug-in muuttuja edellä vuoropuhelua.
Joten baari plug-in, tässä tapauksessa, on tämä objekti että olemme määritelty sisäisesti.
Ja se tulee olemaan uusi vuoropuhelu Näillä plug-in.
Ja niin me todella viitattu tämän plug-in muuttuja monin paikoin
tyypillisessä Cloud 9 kehitysympäristö.
>> Näemme sen tässä.
Huomaa, että kun me selaa, siellä on ylimääräistä elinkaarta.
Niin huomaa, että nämä vastata tapahtumia, jotka ammutaan
Tämän esine, tämä vuoropuhelu esine.
Oletuksena siellä lastata ja purkaa, joka
ovat kaikkien Cloud 9 laajennuksia.
Mutta jos Vuoropuhelun siellä
toinen tapahtuma, joka voi palo samoin kutsutaan
Draw, joka on ammuttu, kun se ollaan piirretään näytön,
ensimmäisessä oikeusasteessa vuoropuhelun osoittaa.
>> Joten kun se on todella aiotaan näytetään,
siellä tulee antaa meille joitakin HTML.
Ja käyttämällä vain standardi HTML käytäntöjä voimme
pistää joitakin hyvin yksinkertaisia ​​tietoja, meidän Hello World, että vuoropuhelu.
Jos siis siirry ylös, voimme katso sitten kulkue asioita
että se tapahtuu.
Ensin luotiin Cloud 9 komento että kun suoritetaan Cloud 9,
aikoo ampua tätä toimintoa.
Se tulee suorittaa tämän toiminnon nimeltään osoittavat vuoropuhelu, että olen
kirjoitettu minun koodi.
>> Loin valikkokohta ja on kiinnitetty siihen, että saman komennon
että kun kyseisen kohteen klikataan valikosta, että komento ajetaan sitten
ja että toiminta on sitten ajaa.
Ja sisältä toiminto olen juuri menossa soittaa the-- olen
juuri menossa suorittaa näyttää menetelmä tämän plug-in, joka
aikoo ensimmäinen puhelu piirtää menetelmä, ja menee
ampua tätä menetelmää alhaalla, piirtää tapahtuman käsittelijät, meidän elinkaaren.
Ja sitten se todella osoittavat vuoropuhelua.
>> Mukana on myös piilottaa menetelmä, jotta jos minun täytyy tilaisuus piilottaa
minun vuoropuhelu, voin tehdä saman.
Niin se on aika paljon se saada kaikki tämä toimisi.
Huomaa, että on jos me selaa lisäksi siellä on jäädyttää julkisen API.
Tämä pohjimmiltaan sanoo vain, että olen haluavat näitä menetelmiä tehokkaasti
julkisia, mutta ei overwriteable ulkopuolella yhteydessä tämä plug-in.
Ja alle, alareunassa, on ehkä viimeinen asia
että me todella tarvitse maksaa paljon huomiota täällä, joka
on se, että aiomme rekisteröityä meidän plug-in kanssa nimellä C9 Seminar 1,
ja esine plug-in.
>> Joka kuten muistatte, on että plug-in, joka plug-in
objekti että olemme määritellään koko kokonaisuudessaan tämän lähteen
koodi.
Ja C9 Seminaari 1 on merkkijonon lupasimme
tarjota huipulla Tämän määritelmän.
OK.
Joten ramppi se ylös vähän ja katso jos voimme tehdä jotain
hieman mielenkiintoisempi.
Nyt tämä on vain niin suuri.
Tarkoitan, tämä on, se on oikeastaan ​​aika cool, että siltä muutaman rivin koodia,
voimme muuttaa nykyisiä IDE ja lisätä olemassa olevan valikkokohdan
tai lisätä uuden valikkokohdan, lisätä komento, ja näyttää vuoropuhelua,
ja vain joukko toiminnallisuutta, joka on olemassa.
Se on oikeastaan ​​aika suuri.
>> Mutta se ei tee paljon, koska se ei voi kommunikoida taustalla Ubuntu
Esimerkiksi.
Joten sanoa, että olen todella haluavat selvittää
joitakin tietoja taustalla Ubuntu esimerkiksi
kuten tilastot plug-in tekee.
Joten katsomaan hieman enemmän tietoa
miten tilastot plug-in toimii.
Ja itse asiassa se on hyvin samanlainen kuin tämä.
Saatat muistaa, että siellä vuoropuhelua.
Saatat muistaa, että on olemassa joitakin tietoja se
näytetään vain pitkin valikkopalkki pitkin alkuun, mikä toivottavasti olet nyt
saada maku miten otimme tämän,
vain lisäämällä valikon kohdetta tiettyinä pistettä ja instantiating vuoropuhelu
ja näytetään, että vuoropuhelu.
>> Mutta emme ole vielä osoittaneet miten voimme liittää sen
komentoon vuonna taustalla Ubuntu esimerkiksi.
Joten katsomaan sitten plugin.2, joka tekee juuri tämä asia.
Aiomme avata plugin.js, joka on koodi tähän.
Mutta alle Ikkuna-valikosta, jos napsautan dialogi 2,
voimme nähdä, että se sanoo sen sijaan, hei CS50, joka
ei näytä kaikkia että houkutteleva, eikö?
Paitsi, katsoa tämän.
Sallikaa minun muuttaa jotain tänne.
>> Aion mennä minun työtila ja muutos seminaari
sanoa jotain muuta, kuten Hei, Dan.
Aion sulkea ja tallentaa sen.
Ja nyt aion uusinnassa minun vuoropuhelu valikosta.
Ja huomaa, että se on nyt muuttunut mitä se sanoo.
Hei, Dan.
Olen ilmeisesti tehnyt jotain alas täällä taustalla Ubuntu oikeusasteessa
ilman manipuloitu mitään koodi, joka taas on käynnissä yksinomaan
asiakkaan puolella.
Joten ei ilmeisesti jonkinlainen viestintä, joka tapahtuu täällä.
>> Nyt tämä on silloin paljon teho Cloud 9 SDK tulee,
on, että tässä plugin.2, voimme todella aiheuttaa
puhelu tapahtuu taustalla esimerkiksi
ja suorittaa joitakin mielivaltaisia ​​komento.
Joten tässä tapauksessa, minulla on oikeastaan luonut hyvin yksinkertainen bash skripti
minun työtilan nimeltään seminaari.
Joten haluan avata, että jopa.
Ja voimme nähdä, että se näyttää tältä.
Se on vain hyvin yksinkertainen bash skripti, jonka ainoa tarkoitus elämässä
tulee olemaan yhtyä tätä tekstiä, Hei, Dan.
Tai ennen sitä, se sanoi Hei, CS50.
Ja siinä kaikki se aikoo tehdä.
>> Koska tämä on nyt komento, että voin ajaa.
Voin todella ajaa sen tänne.
Voimme nähdä, että se todella on vain komento, että juoksen luonnollisesti.
Voin kysyä Plug-in suorittaa tämän komento taustalla työtilan
ja jäsentää tiedot että palautettiin siitä,
ja tehdä jotain sen kanssa, ja muuttaa Plug-in ja käyttäytymiseen, että olen
on minun plug-in seurauksena. OK.
Joten miten tämä tapahtuu.
Näimme tämän hyvin yksinkertainen Seminaari erän käsikirjoitus että minä
[Äänetön], että se voi todella ajaa.
>> Ja nyt katsotaanpas muutokset jotka ovat tarpeen sitoa tähän yhdessä
kanssa ikkunan, ja suorita se.
Joten tässä me aiomme tehdä melko paljon samaa kuin näimme aiemmin.
Mutta huomaa, että joukossa asioita, joita olen kulutetaan now--
lisäksi vuoropuhelua, joka jälleen Satun tehnyt kahdesti,
joka ei ole necessary-- lisäksi vuoropuheluun ja komennot
ja valikot laajennuksia, jotka olivat tarpeen ensimmäinen minulle
määritellä uuden komennon ja pistää erä osaksi valikoissa,
Minulla on myös tämä proc plug-in.
>> Ja tämä proc plug-in avulla meitä manipuloida prosesseihin
on taustalla oikeusasteessa.
Olen liittänyt sen jälkeen olen sanoi, että minun plug-in sitä edellyttää.
Olen sitten kytketty sen koodin, kuten näimme päätehtävä.
Jälleen aion alustaa minun vuoropuhelua.
Ja jos siirrymme alas nyt, me nähdä, kuinka tämä on erilainen.
Kuorma-toiminto on sama, niin se juuri menossa luoda komennon
ja luoda valikon kohta ja liitä että valikkokohta komennon.
Mutta jos me nyt selaa alas näyttää vuoropuhelua,
voimme alkaa nähdä, missä erot syntyvät.
>> Meillä on toiminto osoittavat vuoropuhelua, joka on juuri menossa näyttämään vuoropuhelua.
Mutta kun näytän tämän vuoropuhelun, ja kun näyttää menetelmä on nimeltään,
tulipalot piirtää toiminto.
Ja aion määritä Osa sisällöstä sisällä että.
Joten olen juuri menossa luoda div, sille esittää
joitakin perusasioita tekstiä, Hei, maailma.
Mutta huomaan, että täällä minä olen aikoo liittää sen tunnus.
Ja jo seuraavana rivi aion löytää että ID JavaScriptin avulla,
ja tallentaa että esine toiseen vaihteleva
että olen juuri menossa soittaa sisältöä.
>> Joten nyt kun minulla on sisältöä, kaikki minun täytyy tehdä
on vain muokata objektin sisäinen HTML.
Ja vuoropuhelu HTML tulee sitten modifioida samoin.
Joten kun tämä plug-in on sitten on esitetty, mikä voi tapahtua
ja tämä on uusi tapahtuma joka on uusi tässä plug-in,
mutta tapahtuu jokaisessa plug-in kanssa vuoropuhelua, kun tämä on nyt esitetty,
Aion soittaa toiminto nimeltään hakea info.
Ja tämä toiminto on liha sen tässä.
Aion käyttää tätä proc plug-in, joka Olemme edellä on kuvattu, joka muuten,
on oikeastaan ​​vain Node.js kirjasto että Cloud 9 käyttää täällä.
>> Joten voit itse etsiä siitä, miten tämä
toimii jos menet Node.js asiakirjat
ja etsiä exec tiedosto Menetelmä prosessien siellä.
Aion ajaa tätä erityistä komento, koti Ubuntu työtila
seminaari, jonka mukaan sama, joka sama komento, että olen luonut ennen.
Sille esittää nykyisen työhakemiston, vain
olevan erittäin turvallinen kannalta yhteydessä, jos tämä on käynnissä.
Ja kun se on ollut täytettävä ja palautettava,
Aion ajaa tätä toiminto nimeltään Parse tuotos.
OK.
Joten tämä sitten tulee suorittaa komento paikallisen, tai pikemminkin
kauko Ubuntu oikeusasteessa.
Kun saan takaisin joitakin tiedot, olen sitten
menossa hakea erillisen toiminto nimeltään Parse tuotos, että
on tämä allekirjoitus täällä, err, stdout, stderr,
ja tehdä joitakin laskennan tässä.
Joten jos sain virheilmoituksen jonkinlaista lainkaan,
Aion itse tarkistaa, onko virhe todella on joitakin tietoja.
Ja jos on, niin minä muuttaa sisempi HTML tämän sisällön esine, joka
on muistatte, me yhdistetty vuoropuhelun
on instantiattion kyseisen vuoropuhelu, tai ensimmäisessä piirustus
tätä vuoropuhelua.
Aion vain sanoa, että jokin virhe on tapahtunut.
>> Nyt tämä on liian yksinkertaistettu.
Virhe arvo tyypillisesti sisältävät jotain, joka oli hyödyllistä,
ehkä virhe numero ja virheen käsikirjoituksen itse.
Tai jos käsikirjoitus kirjoitti jotain keskivirhe,
että tiedot olisi asuttu että parametri samoin.
Ja voisin olla hieman lisää varovainen, mitä virhe
Olen todella osoittaa ihmisiä.
Mutta tämä yksinkertainen esimerkki on tarpeeksi hyvä nyt
ainakin nähdä, miten kaikki tämä toimii.
Muuten, jos on mitään virhettä, sitten olen vain
aiotaan tarjota raaka lähtö että toiminto
sisemmälle HTML tämän sisällön elementti, ja sitten päivittää plug-in
ja näyttää sen täällä.
Ja se on aika paljon kaikki mitä tarpeen saada tämän toimimaan.
Ja niin Mietitäänpä sitten miten tämä toimii, kaiken kaikkiaan.
Kun ensimmäisen kerran ladattu tämä plug-in, aivan kuten ensimmäinen plug-in,
Aion lisätä komento, joka on käytettävissä mitään, mihin tahansa plug-in
Cloud 9, nimeltään CS50 Seminaari Dialog 2, jonka vastuu
on suorittaa tässä näyttelyssä vuoropuhelu, joka on muistatte,
todella näyttää vuoropuhelu että pyysin alla.
>> Niin minä lisätä, että komento ikkunavalikko
niin että minulla on pääsy siihen.
Ja kun tämä vuoropuhelu pyydetään näytetään,
Minä tuon joitakin info taustalla Ubuntu oikeusasteessa
käyttämällä Exec tiedosto komento.
Anteeksi kuinka.
Kun tämä on palautettu ja saan joitakin tietoa, niin asiakkaan puolelta
taas, voin jäsentää tuotos komennon
ja päivittää sisäinen HTML elementtien
että olimme yhdistetty aikaisemmin.
>> Ja että me sitten tämä täysin toimiva plug-in
jonka avulla voin hakea tietoa Tämän mielivaltaisen kirjoitus
että olemme luotu meidän taustalla esimerkiksi.
Mutta jälleen kerran, se on todella tärkeä ja todella avain
erottaa missä kukin näistä asioista on tapahtumassa,
että meillä on kaikki tämän asiakkaan puolella koodi, joka ajetaan selaimessa,
ja ei vielä ole pääsyä alla olevaan tiedostojärjestelmä
kunnes me todella ajaa joitakin näistä komentoja, joita tarjotaan Cloud
9 SDK kuten proc, ja jotkut toisilla joiden avulla voimme lukea joitakin tietoja,
Lue joitakin tiedostoja jos tarvitsemme tehdä mitään sellaista.
>> Nyt tämä on melko yksinkertainen esimerkki.
On muitakin asioita, joita me olisi ehkä halua tehdä samoin.
Esimerkiksi, ehkä me itse halua tallentaa joitakin tietoja
mieltymyksiä.
Tai ehkä haluamme Lisää uusi osiota
tai jotain tähän suuntaan.
Niin se on jotain, sinun voi katsoa Cloud 9 SDK
saada lisää tietoa.
Mutta tämä todella on riittävästi tietoa alkuun pääsemiseksi.
Joten vain olla hieman konkreettisempia siitä, miten että joitakin näistä asioista
toiminto, halusin näyttää vain yksi esimerkki, joka on vain joitakin
koodi peräisin Tilastot 50 plug-in.
>> Ja tämä koodi on pohjimmiltaan näiden esimerkkien perusteella
että olet todella nähnyt, mutta on joitakin suojatoimia
ja on joitakin enemmän monimutkaisuutta, jotta saavuttaa joitakin muita asioita
että haluamme saavuttaa.
Esimerkiksi, jos haluan olla voi säästää joitakin asetuksia,
sitten minun täytyy saada Asetukset plug-in,
ja joka kerta haluan lukea joitakin asetuksia,
Voin esimerkiksi liittää erilaisiin tapahtumia Asetukset plug-in.
Niin joka kerta asetukset on punainen, esimerkiksi omassa plug-in,
jos aion lukea joitakin asetukset tallennettu varastointi
käyttäjän preferenssejä, niin voin asettaa oletusasetukset tiettyyn paikkaan,
tiettyjä etusija, että JSON Tyyliasetukset tiedosto että olemme
tallennettu aiemmin, että olemme nähneet aiemmin.
>> Ja jos aion kirjoittaa joitakin asetuksia sille,
sitten can-- tai heti kun havaitsemme että asetukset on kirjoitettu
to-- koska esimerkiksi ne, jotka asetukset on muutettu käyttäjä
joko suoraan niiden asetuksia tiedosto, tai osiota
on muuttanut asetuksia tiedosto suoraan, sitten
Itse asiassa voin päivittää joitakin koodi tai päivittää käyttäytymistä minun plug-in
perustuvat muutokset, jotka ovat tapahtui asetustiedosto samoin.
Mutta oikeasti, loput on melko paljon tästä, että olet jo nähnyt.
>> Lisäämme joitakin, ehkä jotain, joka on uutta.
Joten lisäämme etusija tiedoston, tai pikemminkin osiota,
mieltymysten ikkunan, joka taas voit löytää lisää tietoa
Cloud 9 SDK lukea minulle.
Mutta kaikki muu on melko paljon, melko
samanlainen kuin mitä näimme ennen, vain jossa joitakin muita virheentarkistus
ja joitakin muita suojaukset ja joitakin muita toimintoja
ominaisuus kaikki eri asioita, joita olemme nähneet.
Jos et ole oikeastaan nähnyt sitä vielä, saatat
olla miettimättä mitä taustalla komento on Tilastot 50 ikkuna.
Se on itse asiassa funktio.
No, se is-- OH, perkele.
Yksi sekunti.
Pidä kiinni.
OK.
Siirryn tämä niin voimme todella mitä tapahtuu kun kirjoitan tilastot 50.
Huomaa, että tässä tapauksessa, komento, että olen pois laskemisesta
on todella jälleen, vain skripti, joka on menossa tuotos kasan tietoa
JSON-muodossa.
Ja siitä syystä, että teemme sen tällä tavalla on se, että koska me
toimivat, koska olemme kirjoitettu asiakkaan puolella koodi JavaScript,
voimme hyvin helposti vain jäsentää JavaScript esineitä,
ja todella voi manipuloida nämä esineet aivan kuin olisimme
muuta JavaScript olio.
>> Ja niin tämä on erittäin kätevä tapa tarjota joitakin tietoja
alkaen taustalla Ubuntu esimerkiksi kuten versionumeron, isäntä
nimi, onko palvelin kuuntelee, mihin palvelinta, niin edelleen ja niin edelleen,
ja jäsentää että hyvin helposti ja nopeasti
plug-in, joka on sitten menossa näyttää meille kaikki nämä tiedot.
Joten jälleen, Keskeinen oivallus täällä pitää mielessä
on tämä erottelu taustalla esimerkiksi
ja myös joissa koodia ladataan.
Että kun minulla on asiakas, se ensimmäinen lastaus.
Juuri tämä staattinen JavaScript-tiedoston jonnekin, ehkä CDN jonkinlaista.
Emme oikeastaan ​​tarvitse välittää liikaa tätä ensimmäistä askelta.
>> Tiedämme vain, että se on käynnissä asiakkaan puolella
ja silloin aion kommunikoida tämän docker tapauksessa.
Että aiomme tehdä niin kautta Cloud 9 SDK.
Meillä ei oikeastaan ​​ole kykyä, JavaScriptin avulla tai Node.js,
kirjoittaa suoraan siihen.
Me vain käyttää niitä olemassa olevia SDK API tehdä että toiminta meille.
Ja vielä, yksi todella tärkeitä asioita
on että kun olen luonut tämän, kun olen luonut tämän plug-in,
ja koska olen työskennellyt sen, yksi tärkeitä asioita
on tuoda esille JavaScript-konsoli.
>> Koska sillä tämä on kaikki toimivat JavaScript,
asiakkaan puolelta, jos käytän console.log method-- niin vain
näyttää tässä esimerkkiä.
Yritetään muuttamiseksi yksinkertainen plug-in myös kirjautua joitakin tietoja.
Ja me lisäämme standardin ulos.
Joten muuttaa sen olevan täällä.
Nyt kun olen suorittaa console.log, pitää mielessä
että koska tämä on käynnissä asiakkaan puolelta,
Minä näkevät tämän omassa JavaScript-konsoli, joka
on, miten siinä voi sitten yrittää vianmääritys ja debug
joitakin ongelmia, että minulla on.
>> Huomaa, että koska Olen SDK tilassa, olen
Sitten voi manipuloida laajennuksia on tässä tapauksessa.
Joten vaikka se on tallennettu tässä tapauksessa,
Tämä on yksi esimerkki, joka edellisen sääntö rikotaan, jossa Cloud 9
SDK todella vetää Osasovelluksia taustalla oikeusasteessa sitten käyttää niitä.
Niin että tällä tavalla, olen sitten voi manipuloida ja rakentaa
jotkut laajennukset täällä.
Mutta jotta minun nähdä päivitykset tämä plug-in,
koska se on asiakkaan puolelta, Minun täytyy tallentaa, että plug-in
ja sitten uudelleen koko työtilan, jotta uusi plug-in on sitten
ladataan minun asiakas, päälle minun web-selain, ja sitten sitä käytetään.
>> Joten nyt kun klikkaa tästä Seminaari Dialog 2, me vielä nähdä tämän.
Mutta nyt toivottavasti minun JavaScript vuoropuhelua, meidän pitäisi nähdä my-- odottaa,
pidä kiinni.
Olisin voinut avata vuoropuhelun tuore.
Meidän pitäisi nähdä vastaanotetun datan täällä.
Vastaanotetun datan, Hei, Dan, joka on muistatte,
oli console.log toimintaa, joka pyysimme plug-in.
Joten tämä kuvaus sitten että aiemmin mainitsin,
Vuoropuhelun tai tämä kaavio pikemminkin, että olen
aiemmin mainittiin on, mitä tapahtuu.
Mutta on tärkeä poikkeus vain kehitystä,
joka on, että plug-in itse voisi todella
tallennetaan docker oikeusasteessa väliaikaisesti, koska oletettavasti Cloud 9
ei halua meidän pystyä manipuloida esineitä niiden CDN.
>> Ja Cloud 9 asiakkaita, kun lastaus, löytävät ne laajennuksia siihen.
C9 plug-kansiossa, ja lataa ne.
Mutta ne ovat silti tapahtuu vain asiakkaan puolella.
Joten tämä on vain poikkeus, joka tapahtuu vain
kehittämiseen Cloud 9 laajennuksia.
Mutta loput time-- ja syy
että haluamme todella vasara tämä home--
on, koska suurimman osan ajasta tämä on aiotaan alkaa CDN,
ja juuri menossa ajaa puhtaasti asiakkaan puolella.
>> Normaalisti siellä tulee olla mitään vuorovaikutus plug-in,
tai jos ei edes tarvitse olla mitään syystä laajennuksia itse
todella tallennettu taustalla docker esimerkiksi
paitsi jos kyseessä on Tämän SDK kehitys.
Joten jälleen, tämä muuttuu vain hieman johtuu siitä,
että meillä on käynnissä SDK tilassa.
Se tulee sitten ladata nämä laajennuksia tuotekehityksestä,
ja ainoa tarkoitus tässä niin, että Voin käyttää Cloud 9 tehdä kehitys
Cloud 9 lisäosia.
Mutta silti, tämä ei muuta jälleen miten tahansa tämä toimii.
Se on vielä ajaa täysin asiakkaan puolelta.
>> Se vain tarkoittaa, että aina haluan luoda Cloud 9 laajennuksia Cloud 9,
Luon ne laajennuksia, laita ne minun.
C9 / plugins kansio kotini hakemiston, varmista olen SDK tilassa,
Lataa sivu aina kun olen itse tehdä muutoksia, että plug-in,
ja katso, mitä tapahtuu minun JavaScript-konsoli.
Vain hallitsen JavaScript konsoli varmista
että vianmääritys tiedot, jotka Asetan lohduttaa,
tai jotain muuta, joka voisi tapahtua erehdysten että olen kirjoittanut
minun koodi tms, tulee siellä.
>> Ja että, se on todella riittää alkuun, luulen,
kanssa Cloud 9 laajennuksia.
Erityisesti vilkaisemalla SDK dokumentaatiosta Cloud 9 tarjoaa.
Se on hyvä tapa saada alkoi, ja hyvin helposti
luoda joitakin laajennuksia Cloud 9.
Ja että, haluan kiittää te kaikki kovasti tuloaan minulle.
Toivottavasti sinulla on hauskaa kirjallisesti laajennuksia Cloud 9.
Ehkä parantaa laajennuksia että meillä on nyt, tai ehkä jopa
lisäämällä joitakin toimintoja omaa.
Odotamme näkevämme mitä se on luot.
Siihen asti, hei.