>> DAN ARMENDARIZ: Sveiki, un laipni aicināti CS50 seminārs par pielāgot Cloud 9,
un CS50 IDE.
Tātad šodien mēs ejam tikai runāt mazliet
par kādu tehniskā informācija, kas
iet aiz arhitektūru mākonis 9, un cik
mums ir jāīsteno daži spraudņi kā daļa no Cloud 9 sniegt CS50 IDE.
Tātad pieņemsim tikai lēkt tiesības un sākt runāt par spraudņiem.
>> Tātad plug-ins ir patiešām pie kodols Cloud 9 pieredzi.
Cloud 9 ir pamatā tehnoloģija kas nodrošina mums IDE,
un arī termināļa logs pie dibens, kopā ar workspace--
Ubuntu workspace-- ka mēs izmantot, lai apkopotu visus mūsu projektiem
un veikt mūsu problēma komplekti, pabeigtu mūsu problēma kopas.
Bet pie sirds visu no tā, visas tehnoloģijas
patiešām ir tikai ķekars plug-ins.
Viss ir plug-in kas var tikt pārveidots,
pagarināts, jūs varat izveidot Savu spraudņi,
Jūs varat noņemt cits plug-ins, lai tiešām mainīt
diezgan daudz funkcionalitāti Esošās Cloud 9 IDE.
>> Tātad šis ir esošs Cloud 9 vidi.
Tas ir patiešām tikai noklusējuma Cloud 9 vidi.
Un to apskatīt, kā to faktiski ir atšķirīgs no CS50 IDE.
Tātad tas ir CS50 IDE.
Ievērojiet, ka ir daži vizuāli izmaiņas starp regulārā Cloud 9
vide un CS50 IDE.
Proti, jūs pamanīt pāris izmaiņas.
Pirmkārt, tur ir mazāk izvēlnes elementi, lai sāktu ar.
Tur tiešām ir veids, ka jūs varat mainīt.
To sauc Simple Mode.
>> Pēc noklusējuma Simple Mode ir iespējots, un kas vienkāršo daži no izvēlnes elementiem.
Tas noņem dažas no spēcīgākās tiem,
jo godīgi sakot, daudz studenti, kas nāk
un nav nepieciešams zināt par kādu no vairāk uzlabotas funkcijas
nav nomākti ar ķekars iespējas.
Bet mēs sniedz iespēju veikt off šīm tā saucamajām mācību riteņiem
un noņemt ka sastatnes, lai cilvēki
var kļūt vairāk pieraduši uzlabotas funkcijas IDE.
Nekavējoties tiesības, ka tur ir
arī atkļūdot poga, kas standarta Cloud
9 vide ir vienkārši sauc palaist.
Bet pēc noklusējuma, mēs esam konfigurēts atkļūdošanas pogu CS50 IDE
audzināt atkļūdotājs, automātiski apkopo pirmkodu,
savienot atkļūdotājs ar pamatslimību GDB--
un tā, kas ir darbojas, lai veiktu debugging-- un daži citi pasākumi
arī.
Arī termināla logu pie very-- vai drīzāk termināla
tab pie konsoles daļu ar logu pašā apakšā ekrāna,
tika pārdēvēta par vienkārši terminālis.
Tā kā standartā Cloud 9 vide,
tā faktiski parāda rādīt pieteikumu.
Tādā veidā, tas vienkāršo, atkal, GUI, tikai nedaudz.
>> Mēs arī piebilda dažas pogas uz augšējā labajā IDE
parādīt dažus pamata informāciju par pamata instancē.
Un arī mēs esam noņēmuši vienu no variantiem par vienību
No labajā.
Tātad tas viss tiek īstenots nav grozot vienmēr Cloud 9
pirmkodu, bet vietā caur pāris
plug-ins, ka mums ir jāīsteno visa pagājušā gada laikā, vai arī tā.
Un Cloud 9 ir izvietoti un ir darbojas CS50 darbvietā.
Vai drīzāk darba telpu, kas tiek izraudzīta par CS50 IDES.
>> Tik tiešām, ka ir galvenā atšķirība starp Cloud 9 un CS50
darbvietas.
Tur ir arī, kas pamatinstrumentu Piemēram, primārais izmaiņas
ka mēs instalēt dažus iepriekš konfigurēta precēm, piemēram, GDB,
un dažas citas pamata lietas, kas mēs esam izveidojuši, piemēram Update 50,
un pāris citiem pasākumiem, kas padara visa pieredze mazliet vairāk
vienota.
Bet kopumā, tas ir tikai modifikācija esoša sistēmas
ka Cloud 9 ir radījis mums.
Ko mēs ejam parādīt mazliet vēlāk
ir, kā patiesībā izveidot nedaudz pamata plug-in, kas
ļauj mums, lai ievietotu kaut Into izvēlnes sistēmu, un atvērt dialogu.
Un, ja mums ir pietiekami daudz laiks, mēs faktiski
redzēt, kā mēs varam aizpildīt, ka dialogs ar kādu informāciju
no pamata instancē.
Lai mēs varētu nokļūt, ka punkts, pieņemsim vispirms runāt mazliet
par arhitektūru Cloud 9.
>> Tātad tā, ka mēs esam pieraduši lai saskarsme ar Cloud 9
ir pilnīgi caur klientam.
Mēs atvērt interneta pārlūku, mēs ierakstiet CS50.io.
Mēs galu galā, pēc autentifikāciju, ir iesniegta informācija ar IDE.
Bet saprotu, ka tur ir pāris soļiem
kas faktiski mūs uz šo jautājumu.
Pati pirmā lieta ir tā, ka mans klients, interneta pārlūku,
pēc pieprasījuma un pēc autentifikāciju, slodzes GUI un spraudņi
no dažām CDN, no dažām Satura Piegāde Network.
Tas var būt atklāti jebkur.
>> Un tas ir faktiski atsevišķa no pamata instancē.
Ir svarīgi saprast, ka tas ir faktiski tikai ķekars statiskos failus.
Tas ir ķekars JavaScript kas tiek lejupielādēts no CDN
uz manu interneta pārlūku, un visu GUI, kas jums
redzēt here-- tas ir patiešām key-- visu GUI, ka jūs redzēt šeit
darbojas uz klienta pusē.
Viss, kas jums redzēt mākonis 9 darbvietā
faktiski darbojas pārlūkprogrammā.
Un viss, kas jums nosūtīt gar pamata instancē
tiek paziņots ar instancē pa šo otro atsevišķu kanālu,
un pēc tam tiek saglabātas uz ka dokers instance.
>> Tātad iemesls, ka es saku tas ir dokers instance
ir tas, ka pamatā tehnoloģija neizmanto virtuālās mašīnas,
bet tā vietā ir, izmantojot tehnoloģija sauc krāvējs,
kas būtībā allows-- vistuvāk analoģija ir virtuālā mašīna.
Bet tas ir nemanāmi atšķirīgs ar to, ka ir
daudz iespēju, lai palaistu kombinācija dažādu dokers
gadījumi uz vienu mašīnu.
Un viņi var centrēt uz augšu ļoti ātrā secībā.
Tas nav gluži vairāk stingra diferenciācija
starp dažādām dokers instancēs jo ir virtuālās mašīnas,
bet joprojām ir daudz diferenciācija un atdalīšana
starp šiem dažādās instancēs.
LABI.
Tātad divi soļi šeit, ka Ir svarīgi saprast,
ir tas, ka tad, kad mēs ejam uz CS50.io, mēs esam lejupielādējot GUI un spraudņus,
kas ir rakstīts JavaScript, uz pārlūku vai uz pārlūku.
Un tas ir varbūt pāris megabaiti vērts informācijas.
Tajā brīdī, kad GUI ir ielādes un spraudņi ir sākusies,
tad tas sāk sazināties ar dokers instance, kas nav
obligāti jābūt pats serveris.
>> Tagad ir izņēmums tas viens.
Mums faktiski var būt gan piegāde mehānisms GUI pats
un dokers instance visi no tā paša servera, kas
ir tiešām kaut kas, ko mēs darām par bezsaistes versiju Cloud 9.
Tas nav kaut kas, ko mēs esam publiskoti ļoti šoruden,
bet mums ir arī offline versija, kas
ļauj lejupielādēt iepakots versija visas šīs lietas
un ļauj jums vadīt Cloud 9 bezsaistes vidē.
>> Pārvietojas šis off mākonī un uz jūsu vietējā mašīna ir zināma ietekme.
Jo īpaši, jums vairs vairs ir iespēja
dalīties savu darba vietu ar citiem.
Jūs vairs nevar atvērt Cloud 9 no, un CS50 IDE, no jebkura datora
un redzēt tos pašus failus, Jūs strādājāt ar pirms tam.
Bet tā vietā tā darbojas pilnīgi uz savu vietējo mašīna
bez nepieciešamības piekļuvi internetam.
Bet tomēr pat šajā modelī, pat lai gan mums ir viena virtuālā mašīna
ka būtībā rādīt šīs lietas.
>> Mums ir atsevišķa servera, kas ir nodrošinot būtībā Cloud 9
saturs, un pēc tam mēs ir dokers instance
kas ir atbildīgs par komunikāciju ar šo IDE atpakaļ beigās.
LABI.
Tātad viss GUI ir rakstīts pilnīgi JavaScript
izmantojot Node.js un Cloud 9 SDK, ko mēs sāksim tikai minūti.
Un visi spraudņi darbojas uz klienta pusē.
Tātad pieņemsim koncentrēties tad mazliet, pieņemot
ka šis pirmais solis ir faktiski veiksmīgi pabeigta,
un skatīties tikai šajā dokers instancē.
>> Tātad, šajā gadījumā, šī ir standarta veids
domāt par darot Cloud 9 spraudni attīstība ir tā, ka jūs dodaties
lai rakstot kodu, kas tiks palaist lietotāja pārlūkprogrammā,
un jums ir iespēja izmantojot dažus API, lai sazinātos
ar pamata dokers piemēram, palaist daži kodu tur, un darīt kaut ko
ka jūs varētu vēlēties darīt.
Tātad tas būs konteksts, ka mēs
būt izmantojot par pārējo šo runāt.
Un tikai saglabāt šo modeli prātā.
Tas būs ļoti svarīgi tikai dažas minūtes.
Tur ir pāris saites es vēlos parādīt jums.
Pirmkārt, Cloud 9 ir sniegusi diezgan daudz dokumentācijas
tas ir diezgan labs, kas parāda, kā darīt pamata plug-in attīstību.
Tātad, ja jums iet uz šo URL, cloud9-sdk.readme.io,
jūs redzēsiet dokumentāciju tur.
Un daudz šo informāciju ka jūs gatavojaties redzēt
var atrast arī tur, plus vairāk.
Jūs varat arī atrast open source versija Cloud 9 pie šo URL,
github.com/c9/core, kuru mēs izmantojam kā daļa bezsaistes versijas IDE,
tā, ka jums būs iespēja būt pats Cloud 9 pieredze,
bet bezsaistes veidā.
Viss kārtībā.
Tātad, pieņemsim to apskatīt Faktiskais Cloud 9 darbvietas šeit.
Un atkal, es vēlos norādīt ārā pāris lietas.
Tas ir, tieši šeit, normāla CS50 IDE.
Un man ir invalīdiem mazāk ērts veids zem izvēlnē Skats
lai es varētu redzēt visu no izvēlnes opcijas.
Ko es vēlos parādīt jums tiesības tagad ir pāris lietas.
First off, ja es iedziļināties Preferences un pēc tam
noklikšķiniet uz Plug-in menedžeris, un ierakstiet CS50 šeit,
mēs varam redzēt, ka tur ir, faktiski, pāris CS50 spraudņi, ka
Tika uzstādītas un mūsu darbības, lai ļautu grozījumus, kas mēs esam
redzējis par CS50 IDE.
>> Tieši tagad tur ir būtībā divi spraudņi, kas darbojas.
Tur ir viens sauc vienkāršs, kas ir vienkāršots veids, kas
ļauj samazināt skaitu Izvēlnes iespējas gar augšu,
un ir šī tā sauktā mazāk apmierināti režīmā.
Un tad tur ir arī CS50 Stats, kas ir varbūt tikai nedaudz misnamed.
Tāpēc, ka tas ir tas, ko parāda informāciju
par pamata darbvietas.
Tas iesmidzina šīs pogas gar augšējā labajā stūrī.
Tā arī injects izvēlnes Into logu priekšmets, uz Window izvēlni
tieši šeit, CS50 IDE Info.
Un tas ir atbildīgs par instantiating Šis dialogs, ko mēs esam redzējuši šeit,
ar visu informāciju, ka mēs esam pieraduši redzēt kādā CS50 IDE
darbvietas.
LABI.
Tātad tur ir faktiski viens vairāk plug-in ka mēs esam izstrādājuši, kā arī.
Un tur ir pāris citiem, ka mēs arī neesam publiski paziņots.
Bet viens no tiem ir vispārējā plug-in, kas ļauj GDB darboties.
Tātad viens no aspektiem, Cloud 9 ir tas, ka viņi jau ir sniegta
Tas GUI īstenot atkļūdotājs.
Un viens no spraudņi, ka mēs esam radījuši būtībā
āķi gdb ar šo GUI balstīta versija atkļūdotājs.
Un ir atbildīga par starpnieka visiem par pieprasījumiem, kas lietotājam varētu būt,
starp kāpj pāri vai radot kontrolpunkti vai jebko
pa šo līniju, lai tulkojot ka uz komandām, kas GDB var saprast,
izsniedzot šos komandas uz GDB.
Un tiklīdz GDB klajā ar atbildi, tad
mēs interpretēt, ka un atjaunināt GUI kā nepieciešams.
>> Tas ir iespējams, ir viens no sarežģītāka
no spraudņi, tā vietā to, ko mēs esam gatavojas koncentrēties uz šodienu ir patiesībā
stats plug-in, un mēs runāsim mazliet par Simple, kā arī.
Tāpēc es minēju iepriekš, un es tiešām gribu izdarīt ļoti, ļoti skaidrs, ka atkal,
viss tas, ko mēs esam redzot šeit būtībā
darbojas uz klienta pusē.
Mēs redzam termināla logu zemāk, un ka, protams,
ja mēs ierakstiet komandas stājas kas, kas pēc tam tiks izsniegts
uz pamata instancē.
Tāpat, ja mēs atveram jaunu failu un ierakstiet daži sīkumi to un saglabājiet to,
ka fails tiks saglabāts pamatā instance.
>> Bet redaktors pati, šis termināla logu pati,
ir visi īstenoti JavaScript un ir viss plug-in
ka mēs varam mijiedarboties ar, un tādējādi mainīt.
Tur ir daudz paplašināšanas šeit.
Es ieteiktu ņemot apskatīt at 9 Cloud s GitHub kontu
redzēt milzīgo daudzumu plug-ins, kas ir pieejami,
un cik labi uzrakstīts daudz koda ir paplašināšanu.
Tātad tur ir kaut kas ka es gribu pieminēt
par to, kā arī, kas ir ka tur ir daudz of-- tur
daudz funkcionalitāti, kas ir paredzētā preferenču
logs, ko mēs esam redzējuši tikai pieminēja tikai pirms dažām minūtēm.
>> Viena no lietām, ko mēs varam darīt, kā IDE attīstītāji, vai kā Cloud 9 izstrādātājiem,
ir faktiski injicēt daži priekšrocību paneļi mūsu pašu.
Tik vienkāršs veids, vai mazāk ērts veids,
un arī IDE informācija, vai statistika plug-in,
ir katra dažas priekšrocības paneļiem, kas ļauj mums, lai mainītu
uzvedība katrā no tiem.
Jūs pamanīsiet, ka, ja es eju uz Vēlmes un iet uz lietotāja iestatījumiem,
tur ir tab CS50, viens ka saka IDE informāciju.
Un es varu mainīt informācija atsvaidzes intensitāte.
>> Efektīvi, kas notiek in stats plug-in
ir tas, ka ik pēc n-sekundes, kur n-sekundes ir definēts ar šo priekšroka
panelis, informācija tiek ienesta no pamata, piemēram, tiek nosūtīts
atpakaļ uz klienta pusē, spraudņa ir tad
interpretējot informāciju No pamatā instancē
un atjaunināšanu GUI kā nepieciešams.
Mēs varam redzēt, ka šobrīd tas ir noteikts 30 sekundes, un tas ir noklusējuma.
Bet es varu noteikti mainīt cik ātri tas notiek tikai
grozot šo vērtību.
>> Tagad viens no interesantas lietas ir tas, ka šī izvēle panelis, GUI,
patiešām ir tikai GUI versija no daudz pakārtoto iestatījumus
kas ir parādīti JSON.
Tātad, ja es eju, piemēram, saskaņā ar CS50 IDE izvēlnes, vai Cloud 9 izvēlni,
atkarībā no tā, kas versija jūs meklējat pie,
un doties uz vienu no šiem settings-- šajā gadījumā,
projekta settings-- Projekta uzstādījumi šajā gadījumā
attiecas uz visiem iestatījumiem par šo vienu darba vietu.
Tā lietotāja iestatījumi attiecas ar visiem darbvietas
ka jūs varētu būt jūsu kontā.
>> Tik vienkārši kā malā šeit, lai būtu papildu skaidrs,
tur ir atdalīšana starp divi jo, lai gan pēc noklusējuma mēs
ir viena darbvietu, kas ir CS50 IDE, ja jums
bija noklikšķināt uz jūsu maz avatar šeit un doties uz paneļa,
Jūs atradīsiet, ka jūs faktiski var radīt papildu darbvietas, kā arī.
Jūs varat redzēt šeit, ka man ir IDE 50 darbvietas, un arī
Piemērojot šo mērķiem seminārs, darbvietas
sauc darbvietas, kas ir tepat.
So anyway, man ir dažādas preferences.
Katrs no šiem varētu būt atsevišķas projekta preferences,
bet lietotājs preferences sadala starp visiem maniem darbvietas.
Starp citu, tas ir arī ļoti ērts, ja jums
vēlaties izveidot darbvietas ar dažādas pielāgošanas iespējas.
Un tas ir ļoti ērts, lai izveidot jaunu darba vietu.
Un izvēlēties vienu, kas varētu būt iepriekš konfigurēta kādā citā veidā,
varbūt PHP īpaši, vai Django konkrēti.
Vai pat tikai pēc pasūtījuma.
CS50 darbvieta veidne ir viens, ka mēs
izmantot, kas automātiski instalē Update 50 un visi iestatījumi
ka mēs esam tur, ieskaitot visus plug-ins, kas mums ir, lai CS50 IDE.
LABI.
Bet pieņemsim atgriezties pie šī.
Tātad vēlreiz, ir projekti iestatījumus, un tie ir tie,
ka mēs raugāmies šeit.
Un ievēroju, ka tur ir ķekars uzstādījumus,
daudzi no tiem atbilst vēlmēm paneļi, bet ne visi no tiem.
Bet mēs varam redzēt, ka šeit, this-- oh nē, tomēr man to lietotāja uzstādījumus?
Varbūt man to lietotāja iestatījumiem.
Un tas, šeit mēs iet.
Jo lietotāja iestatījumiem, mēs varam redzam, ka mums ir CS50 sadaļa,
un tas tiek rakstīts uz šo Cloud 9 spraudņiem
ka mēs esam īstenoti.
Tur ir vienkārši viens sarakstīties ar šo vienkāršo plug-in,
un statistika tāds, kas atbilst šai GUI balstītu
versija preferenču panelī.
Atsvaidzes intensitāte, šajā gadījumā, ir iestatīts uz 20 sekundēm.
>> Tas ir viss, cerams, tad iesākums kādu informāciju
ka mēs patiešām redzam maz mazliet sīkāk, momentāni.
LABI.
Tātad pieņemsim, ka mēs vēlamies, lai faktiski nokļūt uz leju, lai to.
Mēs saprotam, ka visi sīkumi kas notiek uz klienta pusē
tiek darīts faktiski par pārlūku, kas nozīmē, ka jebkuras plug-ins, ka es rakstīt
gatavojas jāraksta ar pārlūku prātā.
Un, ja es tiešām gribu darīt kaut uz darbvietas,
Man varbūt ir uzsākt daži no komunikācijas veida
starp pārlūkprogrammu un Darbvietas, lai pārliecinātos
ka tas ir faktiski paveikts.
Bet pieņemsim, ka tagad Es vēlos saņemt uz leju, lai to
un faktiski izveidot savu pirmo plug-in.
Nu, tā, ka jūs varētu to darīt, ir faktiski diezgan viegli.
Tas ir dots Cloud 9 SDK.
Bet tas ir veikt savu esošās darbvietas nosaukums, kurā
ir URL, kas jums ir augšpusē Jūsu bar, un pievienot šādu to.
?
SDK = 1 & debub = 2.
Tagad to, kas tas notiek, lai nodrošinātu, ir ka SDK = 1 faktiski iestatītu SDK
režīmā, lai patiesība, kas ļaus pāris papildu lietām.
Un atkļūdot = 2 ļaus kļūdu ziņojumus būt mazliet vairāk runīgs.
>> Un tā, ja jūs audzināt JavaScript konsole jūsu tab Chrome izstrādātāju,
jūs faktiski būs iespēja redzēt daudz vairāk informācijas
nekā jūs būtu citādi.
Tāpēc es ieteiktu pagrieziena abi šie uz tajā pašā laikā, jo tā patiešām
ir lietderīgi jau tas viss Papildus informācija.
Ir svarīgi atzīmēt, ka tomēr pagrieziena par atkļūdot ar vērtību 2
nozīmē, ka tas ir ļoti runīgs, un tas faktiski
būs nedaudz ievērojami palēnināt Jūsu IDE, jo īpaši, ja iekraušana
vai tad, kad to dara smagie uzdevumus.
Tik vienkārši paturiet to prātā.
Tas ir noderīgi attīstībai, bet tu var nevēlēties, lai to visu laiku.
>> Tātad, pieņemsim faktiski darīt.
Bet šajā gadījumā, es tiešām ir jau izveidot darbvietas ar šo.
Tātad, pieņemsim redzēt, SDK = 1 & debug = 2.
Ar pāris spraudņiem cerams, jau ir instalēta.
Viss kārtībā.
Tāpēc tagad, ka es esmu ieslēdzis SDK atkļūdot režīms, paziņojums, ka mēs esam atkļūdošanas režīmā,
lai mēs varētu apskatīt Izstrādes rīki, lai redzētu jebkādas kļūdas, ko es darīšu offscreen.
Mēs varam redzēt, ka tur ir ķekars kļūdas šeit.
Tagad tas ir faktiski diezgan parasts Cloud 9 ir pāris kļūdas,
un es nebūtu jāuztraucas par tiem, līdz jūs
redzēt kaut ko, kas varētu uz konkrēto plug-in
kas tev gadās būt radīt.
>> Tātad šeit, piemēram, mēs iegūt pāris 404s-- nav atrasts.
Mēs redzam, mēs nevaram ielādēt dažus informācija off bāzes instancē
pati.
Un tur ir ķekars papildu informācija, bet lielākā daļa no tā mēs esam
faktiski gatavojas ignorēt tagad.
Tāpēc, ka tas ir diezgan parasts darbvietas
ir tikai pāris kļūdas.
LABI.
Es esmu gatavojas pārcelties šo no ceļu un atgriezties šeit.
Un tagad viegls ceļš, jauks lieta, par kuru šo attīstītāju
režīms ļāva ir, ka tas ļauj man viegli izveidot jaunu plug-in.
>> Tātad, tā kā pirms es tiešām nebija ir pieejams šis jaunais plug-in variants,
ko mēs varam redzēt, ja es dodos atpakaļ mans non attīstītājs režīms nekā šeit,
tur nav jauns plug-in.
Ļaujot SDK režīmā, es ir jauna plug-in pieejams
un es varētu viegli izveidot vienu.
Šajā gadījumā, tur ir pāris dažādas iespējas, vienkārša,
tukša plug-in, pilna plug-in, uzstādītājs, Cloud 9 saišķis.
Pieņemsim tikai izvēlēties tukšs plug-in tagad
lai mēs varētu redzēt ļoti vienkāršs versija vienu.
>> Tagad ievēroju, ka gar kreisā puse tas ir tagad
kaut kas, saskaņā Favorīti, kas tiek uzskaitīti pāris spraudņiem
kas tagad ir pieejami, lai mani.
Ja es paplašināt, ka mēs varēs redzēt tos.
Tagad es gribu, lai jūs novērojat kaut kas šeit, kas
ir tā, ka tas nav reāli ietverts ietvaros darbvietas direktorijā
manā pamatā Ubuntu Piemēram, taču tas ir ietverts uz cietā diska.
Un kur tas atrodas, jo Tas ir ļoti noderīgi zināt,
it īpaši, ja jūs gatavojas darīt kaut ko ar GIT,
kur tas atrodas, ir kādā .c9 mapē / plugins.
Tātad, ja es eju uz turieni, mēs varam redzēt, ka tagad saraksts, spraudņi, kas ir šeit
atbilst sarakstu plug-ins, ka es redzēja kreisajā pusē manu darbvietā.
>> Tagad pēc noklusējuma, un Tas ir sava veida dīvaini,
pēc noklusējuma, kad es izveidoju Jaunais plug-in kādā darbvietā,
tas rada šo plug-in, kas ar Noklusējuma ir nosaukums pasvītrojumu.
Parasti tas varētu izraisīt dažas problēmas.
Tik ļoti nākamo soli ka es parasti veic
ir tikai, lai novērstu, ka īpaši plug-in
un atstāt tikai vienkāršu plug-in, kas tur bija sākotnēji, plugin.simple.
Un tas ir tikai viens, kas ir tur.
LABI.
>> Tātad, ko tas patiesībā izskatās?
Nu, tas ir, atkal, JavaScript pakete
kas ietver dažus failus, tostarp plugin.js failu, kur
galvenais saturs Plug-in atrodas,
package.json fails, kas faktiski ir noteikts,
daži metadati par šo plug-in, piemēram, kurš ir autors,
jebkādu papildu informāciju par to, kā apraksts plug-in, un tā tālāk.
Un arī pēc noklusējuma, to rada tukšu README failu,
un tukša testa failu, lai jūs varētu izveidot kādu papildu dokumentāciju,
un testēšanas iejūgs ja jūs vēlaties darīt.
>> Tātad pieņemsim tikai to apskatīt vispirms, ļoti ātri, pie package.json failu.
Tas ir viegli pietiekami, lai tikai iet cauri tas un aizpildīt jomās šis
ka jūs vēlaties, lai aizpildītu, piemēram, nodrošināt tā nosaukumu, sniedz aprakstu,
atkārtot versijas numuru ik tik bieži, sniedz
autors par katru persona, kas veicina,
pievienot tos ziedotājiem iedaļā, un pārējie šī jums
var diezgan daudz tikai atstāt kā tas ir tagad.
>> Ir viena lieta, kas ir svarīgi ievērot,
ka saskaņā ar plug-ins nodaļā, tur ir galvenais sauc plug-in.
Un tas ir saskaņota ar nosaukumu JavaScript failu sauc plugin.js.
Tātad, tas ir, kā Cloud 9 zina, kad to lasa šo package.json failu, kas
no JS failus faktiski slodze.
Ja es izveidot papildu JS failus vai vēlaties pārdēvēt ka js failu no plug-in,
Man arī ir to mainīt šajā package.json failā.
>> Jebkuri jautājumi no auditorijas?
Nē.
Ka viens cilvēks, kurš ir pēc kopā ar mani līdz šim.
>> LABI.
Tāpēc man tiešām ir izveidojis Pāris spraudņi jau,
Es domāju, ka šajā darbvietā.
Tātad, pieņemsim atbrīvoties no daži no tiem, pievieno SDK = 1 & atkļūdot = 2, pārlādēt šo darbvietas,
un pieņemsim redzēt, ja mēs ir šos spraudņus tagad.
C9 / plugins.
Te nu mēs esam.
Mēs varam redzēt tagad manā C9 / plugins šā viens, mums ir plugin.1 un plugin.2.
Tātad mēs ejam, lai tikai pastiprināt the-- vienkārši palielināt grūtības
katrā no šiem spraudņiem.
Bet šeit, ja es izveidotu jaunu plug-in, Es varu pievienot to maniem favorītiem.
Un es ņemšu tikai izdzēst tos no pamatā esošo failu sistēma.
>> Pieņemsim, ka noņemt.
Tagad, ja es atvērtu mans pirmais plug-in, un atvērtas plugin.js,
mēs varam redzēt šeit pamatinstrumentu vienkāršs versija plug-in.
Ļaujiet man tiešām iet atpakaļ uz šo citu darbvietu
jo jūs varat vismaz, šeit redzēt, ko tukšu plug-in tiešām izskatās.
Tātad zem motora pārsega, tas izskatās ļoti līdzīgs tehnoloģiju sauc,
Es domāju, tas ir RequireJS.
Ievērojiet, ka tas nav patiešām izskatās, iespējams,
tāds pats kā kādu citu JavaScript failus, kas mēs varētu būt redzējis.
Bet tā vietā, tur ir pāris vienkārši pamata līnijas, kas tas patiesībā ir.
>> Visas šīs lietas ir pirmais interpretējusi IDE,
bet tas nav reāli darboties, līdz precizēts.
Un es jums pastāstīt par to, kad tas patiesībā nozīmē tikai brīdi.
Bet paziņo, ka šeit tur ir main.consumes line 2. līniju,
un tas ir uzskaitīti visi spraudņi ka šis spraudnis ir atkarīga no.
Tātad pēc noklusējuma, mēs, iespējams, nav jābūt jebkādi atkarība no citiem spraudņiem,
bet, kad mēs tiešām ir nepieciešams, lai atkarīgs no funkcijām, ko piegādā
ar citiem spraudņiem šajā IDE, mums ir nepieciešams uzskaitīt šos spraudņus
ar main.consumes līniju.
Un tad mums ir nepieciešams, lai saistīt tos ar kodu
zemāk, ko es jums parādīs tikai mirklis par to, kā mēs varam darīt.
>> Main.provides dod nosaukt šo plug-in
ka citi spraudņi varētu izmantot savā patērē līniju.
Tātad, šajā gadījumā, mans spraudnis ir tikai noteikts, ka pēc noklusējuma,
un mums vajadzētu mainīt, ka, lai būtu piemērojami mūsu pašu plug-in,
kā mēs redzēsim tikai brīdi.
Tagad šeit funkcijas Galvenais, šī funkcija galvenā
faktiski darbojas un interpretē, bet tas nav reāli darīt ļoti daudz.
Tas tikai izpaužas viss, kas izveidota, bet tas nav reāli sāktu plug-in,
neskatoties uz to, ko vārds izklausās.
Kas patiesībā notiek caur secība metodes, kas
ir ietverti visā Šis plug-in.
>> Tātad, ja es ritiniet uz leju, mēs varam redzēt ka mums ir dzīves ciklu, kurā
par kādu notikumu sauc slodzi, vai kāds notikums sauc izkraut,
daži notikumi faktiski notikt.
Tas ir patiešām šeit, kur kā plug-in sākas, ka šīs metodes ir sauc.
Tātad pieņemsim būt mazliet vairāk betona par šo un apskatīt piemēru.
Tātad šeit plugin.1, ko mēs būtībā gatavojas darīt
ir izveidot izvēlnes sauc CS50 Seminārs Dialog 1--
jo mums ir divi them-- un mēs ejam
injicēt to Window izvēlnē.
Un, kad mēs noklikšķiniet uz to, mēs esam gatavojas atvērt dialogu, kas
rāda mums kādu ļoti pamatinformāciju.
>> Šajā gadījumā, tikai hello world.
Tātad tas ir ļoti vienkāršs hello world dialogs
ka mēs varam īstenot kā plug-in Cloud 9.
Tātad, pieņemsim redzēt, kā tas patiesībā izskatās.
Mēs soli pa to, tikai salīdzinoši ātri, lai mēs
var apskatīt nākamajā spraudņa kā labi.
Ievērojiet, ka šeit mēs esam patērē dažādas spraudņiem.
Mēs esam patērē dialogu plug-in, komandas, izvēlnes, un UI.
Izskatās, ka es tiešām esmu patērē dialogs divreiz, lai es varētu noņemt to.
>> Un ievēroju, ka ceļu ka es esmu, kas savieno tos,
Tas ir sava veida metadatiem, kas stāsta plug-in sistēma, kādas prasības
faktiski ir vajadzīgas šo plug-in, lai slodze.
Tas ir arī svarīgi atzīmēt, ka pasūtījums, kas spraudņi tiek ielādēti
nav garantēta.
Bet to, kas ir garantēta, ka, ja es norādiet kādu plug-in kā prasību,
ka plug-in tiks ielādēta Pirms šī ir piekrauts.
>> Tātad tas nozīmē, ka, ja jūsu plug-in prasa par dažiem funkcionalitāti sniegto
ar kaut ko citu, kas IDE, jums vajadzētu pārliecinieties, ka jūsu plug-in patērē
ka plug-in, lai atkarības ir pārliecināts, lai izveidotu savu plug-in,
vai instantiate savu plug-in, tikai pēc ka esošā sistēma eksistē.
Tātad, šeit man ir jāmin metadati ar plug-in menedžeris,
kādi es esmu gatavojas patērēt.
Un galvenā funkcija šeit, Es esmu gatavojas tam pievienojiet
mans kods šiem importētajiem plug-ins.
>> Tāpēc es esmu tikai gatavojas izveidot dažas mainīgos,
saskaņot vārdus katrs no tiem tik ka es varu ļoti ātri atsaukties tos
visā manā kodu.
Iemesls, kāpēc es esmu importējot dialogu ir tāpēc, ka es gribu savu plug-in
darboties kā dialoga plug-in.
Un tā, ka es esmu spējīgs to darīt, ir, protams,
savienot manu kodu uz dialogu plug-in, importējot to
un pēc tam nosakot, ko veidojot jaunu dialogu mainīgo
un savienojot to ar kas importēti plug-in.
Un tad, nosakot manu plug-in kā jaunu dialogu.
>> Tātad inicializācijas, es vēlas definēt savu plug-in.
Un šis mainīgais sauc plug-in jūs redzēsiet
ir tikai izmanto visbiežāk Visā Cloud 9 spraudņiem.
Es esmu gatavojas instantiate jaunu dialogs ar dažiem atribūtiem,
piešķir tai īpašu nosaukumu, teikt, ka tā ir iespējams lietotājiem, lai to aizvērtu.
Ka tas būs parādīt nedaudz X augšējā labajā stūrī,
vai nedaudz poga apakšējā labajā stūrī.
Tas, vai es varu izvēlēties tekstu no tā, kāds nosaukums šajā dialogā
būtu, un tā tālāk.
Tagad tas vienkārši definē dialogu, bet tas vēl nav parādīt to.
Man tiešām ir definēt jāuzrāda prasība par to.
>> Un atkal, es aicinu jūs uz ieskatieties tajā Cloud 9 SDK,
jo pastāv dažādi dialogi un tie ir ļoti labi dokumentēta.
Jūs varat redzēt dažādus ka tur ir, un izmantot tos
jebkādā plug-in jums ir prātā.
Tagad tur būs slodzes sadaļu, un šo slodzi
funkcija, kā jūs atceraties, ir ar plug-in dzīves ciklā izmanto
faktiski instantiate visu un saņemt viss gatavs iet.
Tagad, kad šis plug-in slodzes, man nav vēlas, lai nekavējoties parādīt dialogu,
jo šis plug-in būs slodze kopā ar pārējo IDE.
Un, kad es slodze ka IDE, es nevēlos dialogs, kas parādās automātiski.
Es tikai gribu, lai parādītu, kad es noklikšķiniet uz izvēlnes opcija mana loga izvēlnes elementu
ka es pievienot to momentāni.
>> Tātad tur ir divas atšķirīgas darbības šeit tas ir noticis.
Man ir, lai izveidotu komanda, un komandu
būs atbildīga par faktiski parādot dialogu par Cloud 9 IDE.
Un tad man ir savienot, es ir izveidot jaunu logu izvēlni
postenis, kas vada šo komandu.
Tāpēc, ka tad, kad es noklikšķiniet uz šī Window izvēlnes elementu, ka komanda ir tad palaist
un tāpēc tam tiek parādīts mans dialogs.
Un tā tas ir faktiski diezgan jauks veids, kā domāt par to.
>> Jo vispirms es varu izveidot komandu kura vārds ir CS50 seminārs Dialog 1,
kas sniedz dažus Vispārīgais konteksts par to.
Un svarīgi, mazliet šeit ir paziņojums exec atribūtu, kas
uzskaitīti funkcija, kas tiks izsaukta manā plug-in, kad šī komanda ir palaist.
Tātad šī komanda ir veida, piemēram, a-- tas ir tikai patvaļīgs Cloud 9
komanda, kas ir pieejams jebkurai Cloud 9 plug-in.
Bet faktiskā funkcija, kas tas ir dodas uz zvanu, kad šī komanda ir palaist
ir parādīt dialogs funkcija manā plugin.js failā.
>> Un mēs tiešām varam redzēt šie spraudņi un saraksts
komandu, kas ir pieejami, lai mums Preferences, ritiniet visu ceļu down--
pieņemsim redzēt, patiesībā mēs redzam tagad?
Plug-in menedžeris, nē, es domāju, ka I-- tas ir noteikti šeit tuvumā kaut kur.
Nu, tur ir saraksts ar komandu kaut kur, bet man ir jābūt,
Esmu aizmirsis, kur tas ir.
Tātad OK, mēs doties tālāk.
Viss kārtībā.
Tāpēc mums ir komandu sarakstu kas ir pieejami pie mums,
un šie komandas ir tie vienkārši patvaļīgi Cloud 9
komandas, kas darbojas īpašu kodu.
Tik vienkārši paturiet to prātā, ka mēs ejam palaist parādīt dialogu
funkcionēt momentāni.
Tagad, kad es tiešām gribu, lai pievienotu izvēlni posteni, es varu pievienot šo posteni ar ceļu,
un tikai precīzi norādīt, kur es gribu tas būtu, Window / CS50 Seminārs Dialog 1.
Un tajā brīdī, es gribu izveidot jaunu posteni, kas
gatavojas palaist komandu, CS50 Seminārs Dialog 1.
Ievērojiet, ka atkal, tas ir Cloud 9 komandu Esmu izveidojis tieši virs.
>> Tagad es arī gribu izveidot nelielu dalītāju,
un lai es varētu darīt to pašu turpmākajā līniju.
Tagad jūs ievērosiet, ka, tā kā daļa definējot šo izvēlnes vienumu,
tur ir vairāki kas saistītas ar to, kas
patiesībā saka kur tieši Es gribu, ka izvēlnes punkts būt
atrodas sarakstā izvēlnes.
Bet jūs varētu paziņojums ka man nav reāli
redzēt visus numurus Šīs izvēlnes, pēc noklusējuma.
Tātad tur ir maz slēptās lieta, ka mēs varam darīt, nedaudz izmaiņas mūsu URL.
Tātad papildus SDK = 1 & debug = 2, Es noteikti izvēlni 1--
un cerams, ka tas ir izvēlne, nav izvēlnes.
Ak, tas ir izvēlnes = 1.
Uzgaidi.
>> Un ko mēs redzēsim pēc pārkraušanas ka IDE ir tas, ka es esmu vēl atkļūdošanas režīmā,
bet tagad tur ir numuri saistīta ar visām izvēlnēm.
Un tas stāsta jums tieši to skaits
ir tad, kad jūs mēģināt injicēt kaut jebkur šajā izvēlnes sistēmu.
Tātad Window izvēlnē, es varu redzēt, ka posteni 45 ir Sadarboties,
un 38. punkts, pirms tā ir uzstādītājam.
Tātad, ja es gribu, lai injicēt postenis starp tiem diviem,
Es vienkārši izvēlieties numuru starp šiem diviem priekšmetiem.
Tāpēc es atlasīti 41 un ievieto manu seminārs Dialog 1 izvēlnes elements šajā vietā.
>> Un tas ir iemesls, kāpēc šis skaitlis kas parādās šeit ir numur 41.
Tas ir vieta, kas izvēlnes vienums Cloud 9 izvēlnē.
Tagad līdzīgi, es gribēju lai izveidotu dalītāju
un pievienot to tā, ka tur ir jauki sadalījums starp katru no šiem izvēlnes
priekšmeti.
Tāpēc es piebilda, ka vietā 43.
Līdz šim tik labi, es ceru?
Tāpēc tagad pieņemsim faktiski apskatīt īpašo kodu šova dialog
tas ir faktiski atbildīgas atvēršanai šo dialoga logu.
>> Ritinot uz leju, es redzu, ka es gribu lai šo funkciju parādīt dialogu,
un tas ir ļoti vienkārši.
Es esmu gatavojas palaist parādīt metode uz plug-in mainīga.
Un atcerieties, ka mēs definēts šis plug-in mainīgā augstāk kā dialogs.
Tā bārs plug-in, šajā gadījumā, ir šī objekts, kas mēs esam iekšēji definēts.
Un tas būs jauns dialogs ietvertas Šis plug-in.
Un tāpēc mēs faktiski piesaistītas šis plug-in mainīgo daudzās vietās
tipisks Cloud 9 izstrādes vide.
>> Mēs redzēsim to šeit.
Ievērojiet, ka, ja mēs ritinātu uz leju, tur ir papildu dzīves cikli.
Tātad paziņojums, ka šie atbildēt uz notikumiem, kas tiek kurināti
ar šo objektu, šajā dialogā objektu.
Pēc noklusējuma, tur ir iekraut un izkraut, kas
Ir pieejams visiem Cloud 9 spraudņiem.
Bet gadījumā, ja šis dialogs, tur ir
cits notikums, kas var uguns kā arī aicināja
Draw, kas tiek atlaisti, ja kas ir par ko var izdarīt uz ekrāna,
pie pirmās instances dialoga rāda.
>> Tad, kad tas faktiski tiks parādīts,
tur gatavojas sniegt mums kādu HTML.
Un, izmantojot tikai standarta HTML prakses mēs varam
injicēt daži ļoti vienkāršu informāciju, Mūsu hello world, šajā dialogā.
Tātad, ja mēs pēc tam ritiniet uz augšu, mēs varam sk tad gājiens lietas
ka tas ir noticis.
Vispirms mēs izveidojām Cloud 9 komandu ka tad, kad izpildīja Cloud 9,
gatavojas atlaist šo funkciju.
Tas notiek, lai palaistu šo funkciju sauc show dialogs, kas es esmu
rakstīts manā kodu.
>> I izveidojis izvēlnes un piestiprinātas pie tā, ka tas pats komandu
ka tad, kad tas postenis ir noklikšķinājis izvēlne, ka komanda ir tad palaist
un ka funkcija ir tad palaist.
Un iekšpusē funkciju es esmu tikai gatavojas aicināt the-- es esmu
tikai gatavojas izpildīt izrādi metode šī plug-in, kas
gatavojas pirmo zvanu izloze metode, un iet
uguns šo metodi zemāk, tad zīmēt notikumu apdarinātājs, mūsu dzīves ciklā.
Un tad tas patiešām parādīt dialogu.
>> Pastāv arī slēpt metode, lai ja man vajag iespēja slēpt
mans dialogs, es varu darīt to pašu.
Tātad tas ir diezgan daudz to iegūt visu šo darbu.
Ievērojiet, ka tas, ja mēs ritinātu uz leju turklāt tur ir iesaldēt publiskā API.
Tas būtībā tikai saka, ka es gribu šīs metodes, lai efektīvi
ir atklātas, bet ne overwriteable ārpus kontekstā Šis plug-in.
Un tālāk, pašā apakšā, varbūt ir pēdējā lieta
ka mums tiešām ir nepieciešams maksāt daudz uzmanības, lai šeit, kas
ir tas, ka mēs gatavojamies reģistrēt mūsu plug-in ar nosaukumu C9 Seminārs 1,
un objekts plug-in.
>> Kas, kā jūs atceraties, ir ka plug-in, kas plug-in
objekts, kas mēs esam, nosakot visā kopumā šī avota
kods.
Un C9 Seminārs 1 ir virkne, kas mums solīja
nodrošināt augšpusē no šīs definīcijas.
LABI.
Tātad, pieņemsim perona to uz augšu mazliet un redzēt, ja mēs varam kaut ko darīt
nedaudz vairāk interesants.
Tagad tas ir tikai tik liels.
Es domāju, tas ir, tas ir faktiski diezgan atdzesē, ka tik dažas rindiņas kodu,
mēs varam mainīt esošo IDE un pievienot esošu izvēlnes punktu
vai pievienot jaunu izvēlnes, pievienot komandu, un parādīt dialogu,
un tikai ķekars funkcionalitāti, kas pastāv.
Tas ir tiešām diezgan liels.
>> Bet tas nav jādara daudz, jo tas nevar sazināties ar pamatā Ubuntu
instance.
Tātad pieņemsim, ka es tiešām vēlaties uzzināt
kādu informāciju par pamatā Ubuntu piemēram,
Tāpat kā stats plug-in dara.
Tātad pieņemsim apskatīt Mazliet vairāk informācijas
par to, kā stats plug-in darbos.
Un patiesībā, tas ir ļoti līdzīgs šim.
Jūs varētu atgādināt, ka tur ir dialogs.
Jūs varētu atgādināt, ka tur ir daži informāciju, kas ir
parādīts tikai gar izvēlņu joslā gar top, kas, cerams, jūs tagad
iegūt garšu, kā mēs īstenots šis,
vienkārši ievietojot izvēlnes īpašām punktiem un instantiating dialogu
un attēlot šo dialogu.
>> Bet mēs vēl neesam pierādīts jums, kā mēs varam savienot to
ar komandu pamatā Ubuntu instance.
Tātad, pieņemsim to apskatīt, tad pie plugin.2, kas dara tieši šo lietu.
Mēs ejam, lai atvērtu plugin.js, kas ir kods, lai šis.
Bet zem loga izvēlnē ja es noklikšķiniet uz dialog 2,
mēs varam redzēt, ka tā saka, ka tas vietā, hello CS50, kas
neizskatās visu, kas vilinošs, vai ne?
Izņemot, skatīties šo.
Ļaujiet man kaut ko mainīt uz leju šeit.
>> Es iešu uz manu darbvietas un maiņa seminārs
pateikt kaut ko citu, piemēram, Hello, Dan.
Es esmu gatavojas slēgt to un saglabājiet to.
Un tagad es esmu gatavojas atkārtoti palaist mans dialogs izvēlnes elementu.
Un paziņo, ka tā ir tagad ir mainījies, ko tā saka.
Sveiki, Dan.
Man šķiet, ir darījuši kaut ko uz leju šeit pamatā Ubuntu instancē
bez tam manipulēt jebkurš kods, kas atkal darbojas vienīgi
uz klienta pusē.
Tātad tur ir acīmredzami daži veida komunikācija, kas notiek šeit.
>> Tagad tas ir, ja daudz no jauda Cloud 9 SDK nāk,
ir tā, ka šajā plugin.2, mēs faktiski var izraisīt
aicinājums notikt uz pamatā instance,
un palaist kādu patvaļīgu komandu.
Tātad šajā gadījumā, es tiešām izveidoja ļoti vienkāršu bash skriptu
manā darbvietā sauc seminārs.
Tāpēc ļaujiet man atvērt, ka līdz.
Un mēs redzam, ka tas izskatās šādi.
Tas ir tikai ļoti vienkāršs bash skripts kuru vienīgais mērķis dzīvē
būs atkārtot out šo tekstu, Hello, Dan.
Vai pirms tam, tā teica Sveiki, CS50.
Un tas ir viss, tas ir gatavojas darīt.
>> Tā kā šis ir tagad komanda, kas es varu palaist.
Es tiešām varu palaist to uz leju šeit.
Mēs varam redzēt, ka tas tiešām ir tikai komanda, kas es palaist dabiski.
Es varu uzdot savu plug-in, lai izpildītu šīs komandu par pamata darbvietā
un apstrādāt informāciju kas bija atgriezies no tā,
un kaut ko ar to darīt, un modificēt Plug-in un uzvedība, kas man
ir manā plug-in, kā rezultātā. LABI.
Tātad, pieņemsim redzēt, kā tas notiek.
Mēs redzējām šo ļoti vienkāršs Seminārs partijas skriptu, kas man
[Dzirdams], ka tas tiešām var darboties.
>> Un tagad pieņemsim redzēt izmaiņas kas ir nepieciešami, lai tie šo kopā
ar dialoga logu, un palaist to.
Tātad, šeit mēs esam gatavojas darīt diezgan daudz pats kā mēs redzējām iepriekš.
Bet paziņo, ka starp lietas, ka es esmu patērē now--
papildus dialogu, kas atkal es notikt esmu darījis divreiz,
kas nav necessary-- papildus dialogam un komandas
un izvēlnes plug-ins, kas bija nepieciešams pirmajā ir man
noteikt jaunu komandu un injicēt posteni uz izvēlnes,
Man arī ir šī proc plug-in.
>> Un tas proc plug-in ļauj mums manipulēt procesus
par pamata instancē.
Es esmu savienots pēc tam, kad es esmu teica, ka mana plug-in to prasa.
Esmu tad savienots to kodu, kā mēs redzējām galvenā funkcija.
Atkal, es esmu gatavojas inicializēt manu dialogu.
Un, ja mēs virzāmies uz leju tagad, mēs var redzēt, cik tas ir atšķirīgs.
Slodze ir tāda pati funkcija, tā tas ir tikai gatavojas, lai izveidotu komandu
un izveidot izvēlnes un savienot ka izvēlnes punkts šai komandai.
Bet, ja mēs tagad ritināt uz leju, lai parādītu dialogu,
mēs varam sākt, lai redzētu, kur atšķirības rodas.
>> Mums ir funkcija parādīt dialogu, kas ir tikai gatavojas parādīt dialogu.
Bet, kad es parādītu šo dialogu, un kad izrāde metodi sauc,
tas ugunsgrēki pagatavošanas funkciju.
Un es esmu gatavojas tad norādiet daži saturs iekšpusē no tā.
Tāpēc es esmu tikai gatavojas izveidot div, nodrošināt to
dažas pamata teksts, Hello, world.
Bet paziņo, ka šeit es esmu gatavojas pievienot tai ID.
Un jau nākamajā rindā es dodos lai atrastu, ka ID, izmantojot JavaScript,
un uzglabāt šo objektu citā mainīgo
ka es esmu tikai gatavojas zvanīt saturu.
>> Tāpēc tagad, kad man ir saturs, visi man ir jādara
ir tikai mainīt šī objekta iekšējo HTML.
Un dialogs HTML būs tad jāmaina arī.
Tātad, ja šis plug-in ir tad parādīts, kas var notikt
un tas ir jauns notikums kas ir jauns, lai šo plug-in,
bet notiek katrā plug-in ar dialogs, kad tas tagad ir pierādīts,
Es esmu gatavojas, lai izsauktu funkcija sauc atnest info.
Un šī funkcija ir gaļa to šeit.
Es esmu gatavojas izmantot šo proc plug-in, kas mēs minēts iepriekš, kas, starp citu,
ir tiešām tikai Node.js bibliotēka ka Cloud 9 izmanto šeit.
>> Tātad jūs faktiski var uzmeklēt par to, kā šis
darbojas, ja jūs iedziļināties Node.js dokumentācija
un uzmeklēt exec failu metode procesiem tur.
Es esmu gatavojas palaist šo specifisko komanda, mājas Ubuntu darbvieta
Seminārs, kas ir tāds, ka tas pats viens, ka pati komanda, kas man radīja pirms tam.
Nodrošināt, lai to pašreizējo darba direktoriju, vienkārši
būt ļoti drošs, pēc darbības kontekstu, kurā tas darbojas.
Un, kad tas ir pabeigts un atpakaļ,
Es esmu gatavojas palaist šo funkcija sauc parsēt produkciju.
LABI.
Tātad šis tad gatavojas izpildīt komanda par vietējā, vai drīzāk
tālvadības Ubuntu instance.
Kad es nokļūt atpakaļ kādu informācija, es esmu tad
dodas uz zvanu atsevišķu funkciju sauc Parsēšanas produkcija, kas
ir šo parakstu šeit, ERR, stdout, stderr,
un veikt dažas aprēķinu par šo.
Tātad, ja es saņēmu kļūdu par kādu vispār,
Es tiešām pārbaudīt, lai redzētu, vai kļūda tiešām ir dažas dati.
Un ja tā, tad es būs mainīt iekšējo HTML šī satura objektu, kas
ir jūs atceraties, mēs savienots ar dialoga
pie instantiattion par tiem, kas dialogu, vai pie pirmās zīmējumu
šī dialoga.
Es esmu gatavojas tikai teikt, ka ir noticis dažas kļūdas.
>> Tagad tas ir pārāk vienkāršots.
Kļūdas vērtība parasti ir kaut kas bija noderīgi,
varbūt kļūda numurs un kļūda no skripta pati.
Vai, ja skripts uzrakstīja kaut standarta kļūda,
ka dati tiks apdzīvots šajā parametru, kā arī.
Un es varētu būt mazliet rūpīgāka par ko kļūdu
Es tiešām parāda cilvēkiem.
Bet tas vienkāršots piemērs ir pietiekami labs, lai tagad
lai vismaz redzētu, kā visu šo funkciju.
Pretējā gadījumā, ja ir nav kļūda, tad es esmu tikai
gatavojas sniegt izejvielu izeja no šīs funkcijas
uz iekšējo HTML šā saturu elements, un pēc tam atjaunināt savu plug-in
un parādīt to šeit.
Un tas ir diezgan daudz viss, kas ir nepieciešams, lai iegūtu šo palaist.
Un tāpēc pieņemsim domāt par, tad kā tas darbojas, kopumā.
Kad es pirmoreiz iekrauj šo plug-in, tāpat kā pirmajā plug-in,
Es esmu gatavojas pievienot komandu, kas ir pieejams kaut ko, jebkurā plug-in
mākonis 9, sauc CS50 seminārs Dialog 2, kura atbildība
būs vadīt šo šovu dialogs, kas ir jums atgādināt,
faktiski parādīs dialogu ka man pieprasīja zemāk.
>> Tad es piebildīšu, ka Komanda uz loga izvēlni
tāpēc, ka man ir pieeja, kas.
Un, kad tas dialogs tiek prasīts pierādīt,
Es atnest kādu info no pamatinstrumentu Ubuntu instance
izmantojot exec failu komandu.
Atvainojiet.
Kad tas ir atgriezies, un es saņemt dažas informācija, tad par klienta pusē
atkal, es būs iespēja izanalizēt izlaide šī komandu
un aktualizēt iekšējo HTML elementu
ka mums bija saistīts ar agrāk.
>> Un ar to, ka mēs pēc tam ir Tas pilnībā funkcionāls plug-in
kas ļauj man atnest informāciju No šīs patvaļīgas skriptu
ka mēs esam radījuši par Mūsu pamata instance.
Bet atkal, tas ir patiešām svarīgi un patiešām taustiņš
nodalīt, kur katrs no šīm lietām, kas notiek,
ka mums ir visa šī klienta pusē kods, kas tiek darbojas pārlūkprogrammā,
un vēl nav pieejams ar pamatā esošo failu sistēmu
kamēr mēs faktiski vada dažas no tām komandas, kurus sniedz Cloud
9 SDK tāpat proc, un daži citi tiem kas ļauj nolasīt dažus datus,
vai lasīt dažus failus, ja mums ir nepieciešams neko veida darīt.
>> Tagad tas ir nedaudz vienkāršs piemērs.
Ir arī citas lietas, kas mums varbūt vēlaties to darīt, kā labi.
Piemēram, varbūt mēs faktiski vēlaties saglabāt kādu informāciju
uz atvieglojumiem.
Vai varbūt mēs gribam pievienot jaunu priekšrocību rūti
vai kaut kas pa šo līniju.
Tad tas ir kaut kas jums var apskatīt Cloud 9 SDK
lai iegūtu vairāk informācijas par.
Bet tas tiešām ir pietiekami, lai sāktu.
Tik vienkārši, lai būtu mazliet vairāk betona par tā, ka daži no šiem lietām
funkcija, es tomēr gribu parādīt tikai vēl viens piemērs, kas ir tikai daži
koda no Stats 50 plug-in.
>> Un šis kods ir būtībā pamatojoties uz šiem piemēriem
ka jūs esat faktiski redzējis, bet ir vēl daži drošības pasākumi
un ir dažas vairāk sarežģītību, lai lai panāktu vairākas no papildu lietām
ka mēs vēlamies sasniegt.
Piemēram, ja es gribu būt iespēja ietaupīt dažus iestatījumus,
tad man ir nepieciešama piekļuve uzstādījumiem plug-in,
un katru reizi, kad es gribu lasīt dažus iestatījumus,
Es var, piemēram, pievienot, lai dažādiem notikumi Settings plug-in.
Tātad, katru reizi, kad iestatījumi ir sarkans, Piemēram, manā plug-in,
ja es esmu gatavojas lasīt dažus iestatījumus no saglabāto uzglabāšanai
preferences lietotājs, tad es varu iestatīt noklusējumus par konkrētu atrašanās vietu,
īpašam priekšroka, jo tas JSON stila iespējas, failu, kas mēs esam
saglabāti agrāk, ka mēs esam redzējuši agrāk.
>> Un, ja es esmu gatavojas rakstīt Daži iestatījumi IT,
tad es can-- vai tiklīdz mēs atklāt ka iestatījumi ir rakstīts
kuri paredzēti, jo, piemēram, tie, uzstādījumi ir pārveidot lietotājs
nu tieši to uzstādījumiem fails, vai priekšroka rūts
ir mainījis iestatījumus failu tieši, tad
Es patiesībā var atjaunināt daži kodu vai atjaunināt uzvedību mana plug-in
pamatojoties uz šīm izmaiņām, kas ir notika iestatījumu failu, kā arī.
Bet tiešām, pārējais no tā ir diezgan daudz tas, ka jūs jau esat redzējuši.
>> Mēs pievienot dažas, iespējams, kaut kas jauns.
Tātad mēs pievienot priekšroka failu, vai drīzāk priekšroka rūts,
uz atvieglojumiem logu, kas atkal Jūs varat uzzināt vairāk informācijas
Cloud 9 SDK lasīt mani.
Bet viss pārējais ir diezgan daudz, diezgan
līdzīgs tam, ko mēs redzējām agrāk, tikai ar papildu kļūdu pārbaudi
un daži papildu aizsardzības un daži papildu funkcionalitāti
iezīme visu dažādo lietas, ko mēs esam redzējuši.
Ja jums nav faktiski redzējis vēl, jūs varētu
būt jautājums, ko pamatā komanda ir stats 50 loga.
Tas ir tiešām funkcija.
Nu, tas is-- oh, dammit.
Vienu sekundi.
Uzgaidi.
LABI.
Ļaujiet man virzīties uz šo augšu, lai mēs faktiski var redzēt, kas notiek, kad es tipa Stats 50.
Paziņojums, ka šajā gadījumā komanda, kas es esmu, kas liekot
tiešām atkal, tikai skripts, kas ir gatavojas izejas ķekars informācijas
JSON formātā.
Un iemesls, ka mēs to darām Tādā veidā ir tas, ka jo mēs
darbojas, jo mēs esam rakstīts klienta pusē kodu JavaScript,
mēs varam ļoti viegli vienkārši apstrādāt JavaScript objektus,
un tiešām varētu manipulēt šie objekti, tāpat kā mēs to darītu
jebkurš cits JavaScript objekts.
>> Un tā tas ir ļoti ērts veids, kā sniegt kādu informāciju
No pamatā Ubuntu, piemēram, piemēram, versijas numurs, uzņēmēja
nosaukt, vai serveris ir klausīšanās, kas serveris ir, tā tālāk un tā tālāk,
un izanalizēt, ka ļoti viegli un ļoti ātri
tapā-ar to, ka tiek pēc tam notiek lai parādītu mums visu šo informāciju.
Tātad vēlreiz, galvenais ieskats šeit paturēt prātā
ir šo nošķīrumu starp pamatā instance,
un arī, kur kods tiek ielādēta.
Ka tad, kad man ir klients, tas ir pirmais slogošanas.
Tikai šo statiskā JavaScript failu no kaut kur, varbūt CDN par kādu.
Mums nav īsti ir jārūpējas pārāk daudz par šo pirmo soli.
>> Mēs tikai zinām, ka tas ir darbojas uz klienta pusē
un tas ir tad, kad es esmu gatavojas sazināties ar šo dokers instancē.
Ka mēs esam gatavojas darīt caur Cloud 9 SDK.
Mums nav tiešām ir iespēja, izmantojot JavaScript vai Node.js,
rakstīt tieši uz to.
Mēs tikai izmantot šo esošo SDK API to darīt, ka prasību par mums.
Un atkal, viens no patiešām svarīgas lietas
ir tā, ka tad, kad esmu izveidojis šo, kad es esmu izveidojis šo plug-in,
un kā es esmu strādā pie tā, kas ir viens no svarīgākajām lietām, ko darīt
ir audzināt JavaScript konsoli.
>> Tāpēc, ka tā tas ir viss darbojas uz JavaScript,
uz klienta pusē, ja es izmantot console.log method-- tik vienkārši
rādīt piemēru šeit.
Mēģināsim modificējot šo vienkāršo plug-in, lai arī pieteikties dažus datus.
Un mēs pievienot standarta out.
Tātad pieņemsim mainīt, ka, lai būtu šeit.
Tagad, kad es izpildīt console.log, paturiet prātā
ka, tā kā šis darbojas uz klienta pusē,
Es redzu manā JavaScript konsole, kas
ir, kā es pēc tam varētu mēģināt novērst un atkļūdot
dažas no problēmām, kas man ir.
>> Ievērojiet, ka tāpēc, ka Es esmu SDK režīmā, es esmu
tad iespēja manipulēt spraudņus šajā instancē.
Tātad, pat ja tas ir saglabāti šajā gadījumā,
šis ir viens piemērs, ka iepriekšējais noteikums tiek pārkāpts, ja Cloud 9
SDK faktiski pull spraudņus no pamatā instancē un pēc tam palaist tos.
Tā, ka šādā veidā, es esmu tad spēj manipulēt un būvēt
daži spraudņi šeit.
Bet, lai man, lai redzētu atjauninājumi Šis plug-in,
jo tas ir uz klienta pusē, Man vajag, lai saglabātu šo plug-in
un pēc tam pārlādēt visu darbvietu, lai jaunā spraudnis tad
lejupielādēt uz manu klientu, uz manu interneta pārlūku, un pēc tam tiek izmantots.
>> Tāpēc tagad, kad es noklikšķiniet uz šo semināru Dialog 2, mēs joprojām redzam.
Bet tagad, cerams, manā JavaScript dialogs, mums vajadzētu redzēt my-- gaidīt,
uzgaidi.
Es varētu būt, lai atvērtu dialoga svaiga.
Mums vajadzētu redzēt manus saņemtos datus šeit.
Saņemtie dati, Sveiki, Dan, kas ir jums atgādināt,
bija console.log operācija, kas mēs pieprasīts plug-in.
Tātad šis apraksts, tad ka jau minēju iepriekš,
šis dialogs, vai šis diagramma drīzāk, ka es
minēts iepriekš, ir tas, kas notiek.
Bet tur ir svarīgs Izņēmums tikai attīstībai,
kas ir tāds, ka spraudnis pati varētu faktiski
glabāt uz dokers instancē uz laiku, jo, iespējams, Cloud 9
nevēlas, lai mēs spētu manipulēt objektiem savā CDN.
>> Un Cloud 9 klienti, pēc iekraušanas, atradīs šos spraudņus that.
C9 plug-in mapē, un ielādēt tos.
Bet tie joprojām notiek tikai uz klienta pusē.
Tātad tas ir tikai Izņēmums, kas notiek tikai
attīstībai mākonis 9 spraudņiem.
Bet pārējā LAIKU_ un iemesls
ka mēs vēlamies, lai tiešām āmurs šo home--
ir tāpēc, ka lielāko daļu laika, tas ir būs sākot no CDN,
un tikai gatavojas palaist vienīgi no klienta pusē.
>> Parasti tur būs nav mijiedarbība ar plug-in,
vai tur nav pat jābūt jebkurš Iemesls, ka spraudņi sevi
faktiski uzglabā uz pamatā dokers instancē,
izņemot attiecībā uz šis SDK attīstība.
Tātad vēlreiz, tas mainās tikai nedaudz tāpēc,
ka mēs darbojas SDK režīmā.
Tas būs tad slodze tiem plug-ins no attīstības,
un vienīgais mērķis šeit ir tā, ka Es varu izmantot Cloud 9 darīt attīstību
par Cloud 9 plugins.
Bet pat tā, tas nemaina atkal kā jebkuru tas darbojas.
Tas joprojām tiek palaist pilnīgi uz klienta pusē.
>> Tas tikai nozīmē, ka ikreiz, kad es gribu izveidot 9 Cloud spraudņus Cloud 9,
Es veidoju šos spraudņus, nodot tos manā.
C9 / plugins mape manā mājā katalogs, pārliecinieties, ka es esmu SDK režīmā
pārlādēt lapu katru reizi, kad es tiešām veikt izmaiņas šajā plug-in,
un redzēt, kas notiek mans JavaScript konsole.
Just pārvaldīt savas JavaScript konsole, lai pārliecinātos,
ka jebkuru problēmu novēršanu informācija, I vieta, lai mierinātu,
vai kaut kas cits, kas varētu rasties jo kļūdas, ko es esmu uzrakstījis
manā kodu vai tamlīdzīgi, tur parādās.
>> Un ar to, ka tā ir patiešām pietiekami, lai sāktu darbu, es domāju,
ar Cloud 9 spraudņiem.
Jo īpaši ņemot apskatīt SDK dokumentācija, kas Cloud 9 nodrošina.
Tas ir lielisks veids, kā iegūt sākusies, un ir ļoti viegli
izveidot dažas spraudņi Cloud 9.
Un ar to, es vēlos pateikties jūs visi ļoti, lai pievienotos man.
Es ceru, ka jums ir jautri rakstot spraudņi Cloud 9.
Varbūt uzlabojot spraudņus ka mums ir tagad, vai varbūt pat
pievienojot dažas funkcionalitāti savu.
Mēs ceram redzēt kas tas ir jums izveidot.
Līdz tam, bye.