DAN Armendáriz: Dobrý den, vítejte na CS50 seminář o přizpůsobení Cloud 9, a CS50 IDE. Takže dnes budeme Jen trochu pohovořit o některých technické informace, které jde za architektury o Cloud 9, a jak jsme realizovali některé z modulů plug-in jako součást Cloud 9 poskytovat CS50 IDE. Tak ať to jen skočit přímo v a začít mluvit o zásuvných modulech. Takže plug-iny jsou opravdu u Jádro Cloud 9 zkušenosti. Cloud 9 je základní technologie který poskytuje nám IDE, a také okno terminálu at the dno, spolu s workspace-- Ubuntu workspace-- že jsme použít ke kompilaci všech našich projektů a plnit své problémové sady, dokončit Náš problém sety. Ale v srdci všechny z toho, všechny technologie je opravdu jen banda plug-inů. Vše je plug-in , které mohou být upraveny, prodloužena, můžete vytvořit Vaše vlastní moduly plug-in, můžete odstranit další plug-inů, aby skutečně změnit poměrně dost funkčnosti stávajícího Cloud 9 IDE. Takže tohle je existující Cloud 9 prostředí. To je opravdu jen default Cloud 9 prostředí. A podívejte se na to, jak to vlastně je odlišný od CS50 IDE. Tak tohle je CS50 IDE. Všimněte si, že tam jsou některé vizuální změny mezi pravidelné Cloud 9 životní prostředí a CS50 IDE. Konkrétně, budete Všimněte si, pár změn. Za prvé, je tam méně položky začít. Tam je vlastně způsob, že můžete změnit. Říká se tomu Jednoduchý režim. Ve výchozím nastavení, Jednoduchý režim je povolen, a který zjednodušuje některé z položek menu. Odstraňuje některé z pokročilejší ty, protože upřímně řečeno, spousta Studenti, kteří přicházejí a nemusí vědět o některých z pokročilejších funkcí nejsou zahlceni s partou možností. Ale my poskytují možnost přijmout off těch takzvaných koleček a odstranit, že lešení tak, aby lidé se může stát více zvyklí na pokročilé funkce IDE. Ihned k právo na to, že tam je také tlačítko ladění, který ve standardním Cloud 9 prostředí je jednoduše nazývá běh. Ale ve výchozím nastavení, jsme nakonfigurovány tlačítko ladění v IDE CS50 vyvolejte debugger, automaticky kompilovat zdrojový kód, připojit ladicí k základnímu GDB-- a od té doby to běh provádět debugging-- a některé jiné kroky také. Také okno terminálu u very-- nebo spíše terminál Karta v sekci panelu na Okno na samém spodní části obrazovky, byla přejmenována prostě být terminál. Zatímco v normě Cloud 9 prostředí, ve skutečnosti ukazuje běžící aplikace. Tímto způsobem, to zjednodušuje, opět, GUI, jen trochu. Přidali jsme také některá tlačítka na pravé horní části IDE ukázat některé základní informace o základní instance. A také jsme odstranili jednu z možností, o položkách od krajní pravice. Takže všechno toto je implementována není změnou nutně Cloud 9 zdrojový kód, ale místo toho prostřednictvím páru plug-inů, které jsme realizovali v průběhu minulého roku, nebo tak nějak. A Cloud 9 hostil a má běží v CS50 prostoru. Nebo spíš v pracovní prostory, které jsou označovány jako CS50 IDE. Takže opravdu to je hlavní rozdíl mezi Cloud 9 a CS50 pracovní plochy. K dispozici je také, v podkladovém instance, primární změna že jsme nainstalovat některé Předem nakonfigurované položky, jako jsou GDB, a některé další základní věci, které jsme vytvořili, stejně jako aktualizace 50, a pár dalších kroků, které činí celý zážitek trochu víc vyrovnané. Ale celkově, to je jen úpravou stávajícího systému že Cloud 9 vytvořil pro nás. Co budeme vykazují o něco později je to, jak se vlastně vytvořit poněkud základní plug-in, který nám umožňuje vložit něco do systém menu, a otevřít dialog. A pokud budeme mít dost čas, budeme vlastně vidět, jak můžeme naplnit, že dialog s informacemi z podkladové instance. Abychom se dostat k tomu bod, pojďme nejprve hovořit trochu o architektuře Cloud 9. Takže způsob, jakým jsme zvyklí k interakci s Cloud 9 je zcela prostřednictvím klienta. Máme otevřít webový prohlížeč, napíšeme v CS50.io. Nakonec jsme, po ověření, jsou prezentovány s IDE. Ale uvědomit si, že je tu pár kroků které nás skutečně dostat do tohoto bodu. Úplně první věc je, že můj klient, webový prohlížeč, na vyžádání a po ověření, načte GUI a moduly plug-in z nějakého CDN, z některých Dodávka obsahové síti. To může být na rovinu kdekoliv. A to je ve skutečnosti samostatná z podkladové instance. Je důležité si uvědomit, že toto je vlastně jen hromada statických souborů. Je to banda JavaScriptu který je stažen z CDN na mé webové prohlížeče, a všechny GUI, které vás viz here-- je to opravdu key-- všechny GUI, které vidíte zde je spuštěn na straně klienta. Vše, co vidíte, v Cloud 9 prostoru je vlastně běží v prohlížeči. A cokoliv, co posíláte spolu se základním instanci sděleno s instancí podél této druhé samostatné kanálu, a je poté uložena na že instance přístavní dělník. Takže důvod, proč říkám toto je instance přístavní dělník je to, že základní technologie Není pomocí virtuálních strojů, ale místo toho je za použití technologie nazývaná přístavní dělník, které v podstatě allows-- nejbližší analogie je virtuální stroj. Ale to je nepatrně odlišná v tom, že jsou spoustu příležitostí ke spuštění Kombinace různých přístavní dělník instance na jednom stroji. A mohou být roztočit ve velmi rychlém sledu. To není úplně více přísné diferenciace mezi různými instancemi Docker jak tam jsou na virtuálních strojích, ale stále je tu spousta diferenciace a separace mezi těmito různými instancemi. DOBŘE. Takže tyto dva kroky, které zde jsou důležité si uvědomit, je, že když jsme se jít do CS50.io, my jsme stahování GUI a moduly plug-in, které jsou napsány v JavaScriptu, na do prohlížeče nebo do prohlížeče. A to je možná pár megabajtů hodnotě informací. V tomto bodě, jakmile má GUI naložený a plug-iny začaly, Pak se začne komunikovat s instance přístavní dělník, který není nezbytně být stejný server. Nyní existuje jedna výjimka z tohoto. Můžeme skutečně mít oba dodávka mechanismus pro GUI samotnou a instance v přístavní dělník všechny stejném serveru, který je ve skutečnosti něco, co děláme pro offline verzi Cloud 9. To není něco, co máme propagoval velmi letos na podzim, ale my také mít online verze, vám umožní stáhnout balený verze všechny tyto věci a umožňují spustit Cloud 9 v offline prostředí. Stěhování to z cloudu a na místním počítači má určitý dopad. Především, vy ne již mají schopnost se podělit o své pracovní prostor s ostatními. Už můžete otevřít Cloud 9 od, a CS50 IDE, z jakéhokoliv počítače a vidět stejné soubory, které jste pracovali s dříve. Ale místo toho to funguje zcela na svém vlastním místním počítači bez nutnosti připojení k internetu. Ale přesto i v tomto modelu, a to i když máme jeden virtuální stroj že je v podstatě spuštění těchto věcí. Máme samostatný server, který je přináší v podstatě Cloud 9 obsah, a pak jsme mají instance Docker , který je zodpovědný za komunikaci s tímto IDE pro back-end. DOBŘE. Takže celá GUI je zapsán úplně v JavaScriptu pomocí Node.js a Cloud 9 SDK, které se dostaneme do chvilku. A všechny plug-inů jsou spouštěny na straně klienta. Takže pojďme zaměřit se pak trochu za předpokladu že tento první krok má ve skutečnosti úspěšně dokončena, a dívat se pouze na této instanci přístavní dělník. Takže v tomto případě to je standardní způsob, přemýšlení o tom Cloud 9 plug-in Vývoj je, že jdete je třeba psaní kódu, který bude být spuštěn v prohlížeči uživatele, a budete mít možnost použitím některých API pro komunikaci s podkladové instance přístavní dělník, spustit nějaký kód tam, a dělat cokoliv, že budete chtít dělat. Takže to bude kontext, že budeme bude používat pro zbytek tohoto rozhovoru. A jen držet tento model na mysli. To bude velmi důležité v několika málo minut. Je tu pár odkazy Chci vám ukázat. Za prvé, Cloud 9 poskytla poměrně dost dokumentace to je docela dobré, že ukazuje, jak provádět základní modul plug-in vývoje. Takže pokud jdete na tuto adresu URL, cloud9-sdk.readme.io, uvidíte v dokumentaci tam. A mnoho těchto informací že jste asi vidět lze také nalézt zde, a další. Můžete si také najít open source verze Cloud 9 na této adrese URL, github.com/c9/core, které používají jako část offline verze IDE, takže budete moci mít stejný Cloud 9 zkušenosti, ale v offline způsobem. Dobře. Takže pojďme se podívat na Skutečná Cloud 9 pracovní prostor zde. A opět, chci zdůraznit se pár věcí. To je, přímo tady, normální CS50 IDE. A já jsem zakázány méně komfortní režim v nabídce Zobrazit takže můžu vidět všechny z menu. To, co chci vám ukázat pravdu Nyní je pár věcí. Za prvé, když půjdu do Předvolby a poté klikněte na plug-in manager, a zadejte CS50 tady, můžeme vidět, že tam jsou, ve skutečnosti, pár CS50 plug-inů, které byly instalovány a náš běh na povolit změny, které jsme Viděl na CS50 IDE. Právě teď je tu v podstatě dva plug-iny, které jsou spuštěny. Je tu jeden s názvem Simple, který je zjednodušený režim, který umožňuje snížit počet položek menu podél horní, a mají tento takzvaný méně pohodlné režim. A pak je tu také CS50 Stats, která je možná jen mírně nesprávně pojmenovaný. Vzhledem k tomu, to je to, co zobrazuje vám informace o základním pracovním prostoru. To vstřikuje tato tlačítka po pravém horním rohu. To také vstřikuje položku nabídky do položka okno, do menu Okno tady, CS50 IDE Info. A to je zodpovědný za spouštění Tento dialog, který jsme tady viděli, se všemi informacemi, že jsme zvyklí vídat v CS50 IDE pracovní prostor. DOBŘE. Takže je to vlastně jeden plug-in že jsme vyvinuli také. A je tu pár dalších, které i my jsme ani zveřejněny. Ale jeden z nich je celkové plug-in, který umožňuje GDB fungovat. Takže jeden z aspektů Cloud 9 je to, že mají za předpokladu již toto GUI realizovat debugger. A jeden z plug-inů, které jsme vytvořili v podstatě háky GDB s tímto GUI založené verze ladicího programu. A je zodpovědný za zprostředkování všechny z požadavků, které by uživatel mohl mít, mezi překračoval nebo vytvoření zarážky nebo cokoliv v tomto směru, že k převedení příkazů, že GDB lze pochopit, vydávání tyto příkazy GDB. A jakmile GDB vydá odpověď, pak interpretujeme, že i Aktualizace grafického uživatelského rozhraní podle potřeby. To je pravděpodobně jedním z složitější z plug-inů, takže místo toho, co jsme bude soustředit na dnes je ve skutečnosti statistiky plug-in, a promluvíme něco málo o jednoduché, stejně. Tak jsem se zmínil dříve, a já opravdu chci, aby se velmi, velmi jasné, že opět, To vše, že jsme vidění je zde v podstatě pracující na straně klienta. Děláme vidět okno terminálu níže, a který, samozřejmě, pokud budeme psát příkazy do že, které se pak bude vydán na podkladové instanci. Podobně, když jsme se otevřít nový soubor a typ nějaké věci do něj a uložit jej, tento soubor bude uložen na základní instance. Ale editor sám, to okno terminálu sám, vše je implementován v JavaScript a vše je plug-in že může spolupracovat s, a proto upravit. Je tu spousta roztažnosti sem. Doporučuji, že pohled v Cloud 9 je GitHub účet vidět obrovské množství plug-inů, které jsou k dispozici, a jak dobře napsáno hodně kódu je pro rozšiřitelnost. Takže je tu něco, že chci zmínit o tom také, který je že existuje spousta of-- je tu mnoho funkcí, které je za předpokladu, v nastavení okno, které jsme viděli jen zmiňoval se jen před pár minutami. Jedna z věcí, které můžeme dělat, co IDE vývojáři, nebo jako Cloud 9 vývojáři, je skutečně aplikovat některé preferenčních panely naše vlastní. Tak jednoduchý režim, nebo méně komfortní režim, a také informace o IDE, nebo statistiky plug-in, má každý nějakou preferenci panely, které nám umožňují upravit chování každého z nich. Všimněte si, že když půjdu do Předvolby a jít do uživatelských nastavení, tam je karta CS50, jeden které říká, že informace o IDE. A mohu změnit Informace obnovovací frekvence. Účinně, co se děje ve statistikách plug-in je to, že každých n-sekund, kde n-sekund je definován tuto preferenci panel, informace jsou načteny z podkladové například odesílání zpět na straně klienta, plug-in je pak výklad informací z podkladové instance a aktualizace GUI podle potřeby. Můžeme vidět, že právě teď je to nastaveno na 30 sekund, a to je výchozí. Ale já si rozhodně změnit jak rychle se to stane jen změnou této hodnoty. A teď jedna z zajímavých věcí je to, že tato preference panel, GUI, je opravdu jen verze GUI z mnoha základních nastavení které jsou uvedeny v JSON. Takže když jsem se jít, například v rámci CS50 IDE menu, nebo menu Cloud 9, podle toho, který Verze se díváte, a zajít do jedné z těchto settings-- v tomto případě, Projekt settings-- nastavení projektu v tomto případě se vztahuje na všechna nastavení Pro tento jeden pracovní prostor. Vzhledem k tomu, uživatelská nastavení se použijí na všechny pracovní prostory že byste mohli mít ve vašem účtu. Takže jen jako stranou tady, být extra jasný, tam je oddělení mezi dvou, protože i když ve výchozím nastavení my mají jednu pracovní plochu, což je CS50 IDE, pokud jste byli kliknout na vaše malá avatar tady a jít do palubní desce, zjistíte, že můžete skutečně vytvořit další pracovní prostory stejně. Můžete vidět, že tady musím IDE 50 pracovní prostor, a také Pro účely tohoto seminář, pracovní prostor volal pracovní prostor, který je tady. Tak jako tak, mám jiné preference. Každý z nich může mít samostatný projekt preference, ale uživatel preference sdílená mezi všechny mé pracovní prostory. Mimochodem, to je také velmi užitečné, pokud Chcete vytvořit pracovní plochu různé možnosti přizpůsobení. A to je velmi užitečné vytvořte nový pracovní prostor. A vybrat ten, který by mohl být Předem nakonfigurované nějakým jiným způsobem, snad pro PHP specificky, nebo Django specificky. Nebo dokonce jen zvyk. CS50 Pracovní plocha Šablona je ten, že jsme použití, které automaticky nainstaluje Aktualizace 50 a všechna nastavení že máme tam, včetně všech plug-inů, které máme pro CS50 IDE. DOBŘE. Ale vraťme se k tomu vrátím. Takže znovu, tam jsou projekty nastavení, a to jsou ty, že se díváme na zde. A všimněte si, že tam jsou banda nastavení, mnoho z nich odpovídá přednostně panely, ale ne všechny z nich. Ale můžeme vidět, že tady, v tohle-- oh Ne, já jsem dal, že v nastavení uživatele? Možná, že jsem ji v nastavení uživatele. A to je to tady. V uživatelském nastavení, můžeme vidět, že máme část CS50, a tato jsou zapisována na těchto Cloud 9 plug-inů že jsme implementována. Je tu jednoduchá, kdo odpovídají, že jednoduché plug-in, a ten, který statistiky odpovídá, že GUI verze preference panelu. Obnovovací frekvence, v tomto případ, je nastavena na 20 sekund. To je všechno, snad se Počátky nějaké informace že budeme skutečně vidět v malém bit více detailů, na okamžik. DOBŘE. Takže řekněme, že chceme, aby skutečně dostat se do toho. Chápeme, že všechny věci, která se děje na straně klienta se provádí skutečně na prohlížeči, který Znamená to, že všechny plug-inů, které píši se bude napsán s prohlížečem v mysli. A když jsem vlastně chtějí dělat cokoliv na pracovní ploše, Budu asi muset zahájit nějaký druh komunikace mezi prohlížečem a pracovní prostor, abyste se ujistili že je ve skutečnosti dosaženo. Ale řekněme, že teď Chci se dostat až na to a skutečně vytvořit svůj první plug-in. No, tak, že byste byli schopni k tomu, že je vlastně docela snadné. Je to uvedeno v Cloud 9 SDK. Ale je to, aby se vaše stávající název pracovního prostoru, který je URL, že jste na vrcholu Váš bar, a přidejte následující k tomu. ? SDK = 1 & Debub = 2. Tak co to bude k tomu, aby je že SDK = 1 se ve skutečnosti nastaven SDK režim true, která umožní několik dalších věcí. A debug = 2 umožní chybové zprávy být trochu upovídaný. A tak pokud jste vyvolat JavaScript konzola na kartě Chrome pro vývojáře, budete skutečně moci vidět mnohem více informací než byste jinak. Tak jsem Doporučuji soustružení obě tyto ve stejnou dobu, protože to opravdu Je vhodné mít všechno dodatečné informace. Je důležité si uvědomit, nicméně, že zapnutí ladění na hodnotu 2 znamená, že je to velmi upovídaný, a to vlastně bude poněkud znatelně zpomalí tvůj IDE, zejména při nakládání nebo když děláte těžké úkoly. Takže jen mějte na paměti, že. Je to užitečné pro rozvoj, ale vy nemusí chtít mít po celou dobu. Takže pojďme vlastně udělat. Ale v tomto případě jsem skutečně Již nastavit pracovní prostor s tím. Tak uvidíme, SDK = 1 & debug = 2. S pár plug-inů doufejme, že již nainstalována. Dobře. Takže teď, že jsem se obrátil na SDK ladění Režim, Všimněte si, že jsme v režimu ladění, takže se můžeme podívat na Vývojové nástroje k vidění nějaké chyby, které budu dělat mimo obrazovku. Můžeme vidět, že je tu banda chyb zde. Teď je to vlastně docela běžné, Cloud 9 mít pár chyb, a já bych si starosti o nich, až vás vidíte něco, co by mohlo být specifické pro plug-in které se stalo, že vytváření. Tak tady, například, dostaneme pár 404s-- nebyl nalezen. Vidíme nejsme schopni načíst některé Informace z podkladové instance sám. A je tu banda další Informace, ale většina z toho, že jsme vlastně bude ignorovat nyní. Protože tohle je dost Společný pro pracovní prostor mít jen pár chyb. DOBŘE. Chystám se přesunout toto ven cesta a vrátit se sem. A nyní snadný způsob, jak se hezky věc, o které tento developer Režim umožnil, je, že mě to dovolí snadno vytvořit nový plug-in. Takže zatímco před rokem jsem vlastně dělal ne má tento nový plug-in možnost k dispozici, kterou můžeme vidět, jestli jsem se vrátit do můj režim bez developer sem, není nový plug-in. Tím, že režim SDK, já mají nový plug-in k dispozici a mohu snadno vytvořit. V tomto případě, je tu pár různých možností, jednoduché, prázdný plug-in, plný plug-in, instalátor, Cloud 9 svazek. Pojďme stačí si jen vybrat prázdný plug-in pro teď takže můžeme vidět velmi Jednoduchá verze jednoho. Nyní si všimněte, že podél levá strana, že to tam je nyní něco pod oblíbeným, což je výpis několik plug-inů které jsou nyní k dispozici ke mně. Pokud bych rozšířit, že budeme být schopni vidět ty. Teď chci, abys všimnete něco, co tu, která je to, že to není ve skutečnosti obsažen v rámci adresáře pracovního prostoru na mém podkladové například Ubuntu, ale je obsažen na pevném disku. A pokud je to nachází, protože to je velmi užitečné vědět, zvláště pokud se chystáte dělat něco s Git, kde se nachází, je to ve složce .c9, / plugins. Takže když jsem se tam, můžeme vidět, že teď seznam plug-inů, které jsou zde odpovídá seznamu moduly plug-in, které jsem viděl na levé straně svého pracovního prostoru. Nyní ve výchozím nastavení, a To je trochu divné, Ve výchozím nastavení, když jsem vytvořit nový plug-in v pracovním prostoru, vytváří tento plug-in, který tím, Výchozí má jméno podtržítko. Obecně platí, že by mohl způsobit určité problémy. Takže hned další krok že jsem většinou provádět Je jen na odstranění, že zejména plug-in a ponechat jen jednoduchý plug-in, který Byl tam zpočátku, plugin.simple. A to je jediný, kdo tam je. DOBŘE. Takže co to vlastně vypadá? No, to je, opět, balík JavaScript že obsahuje některé soubory, včetně plugin.js souboru, kde Hlavní obsah Plug-in se nachází, soubor package.json, který vlastně určuje Některá metadata o tomto plug-in, jako například kdo je jejich autorem, jakékoliv další informace o tom, na popis plug-in, a tak dále. A také výchozím nastavení jej vytvoří prázdný soubor README, a prázdný testovací soubor pro vás vytvořit nějaké další dokumentaci, a testovací postroj, pokud byste chtěli udělat. Takže pojďme stačí se podívat nejprve na, velmi rychle, v souboru package.json. Je to snadné jen projít to a vyplňte v oblastech to že budete chtít vyplnit, jako je poskytne mu jméno, popsat, opakovat číslo verze každý tak často, poskytují autor pro každého člověk, který přispívá, přidejte je do přispěvatelům sekci, a zbytek tohoto vás může do značné míry právě ponechat jak to je nyní. Je tu ještě jedna věc, která je důležité si všimnout, že v rámci moduly plug-in, je klíč nazvaný plug-in. A to je uzavřeno na jméno soubor JavaScript s názvem plugin.js. Tak to je, jak Cloud 9 ví, kdy to čte tento soubor package.json, který z JS soubory skutečně načíst. Mám-li vytvořit další JS soubory, nebo chcete přejmenovat, že js soubor z plug-in, Také jsem se to změnit v souboru package.json. Případné dotazy z publika? Ne. Že jedna osoba, která je Následující spolu se mnou, tak daleko. DOBŘE. Takže jsem vlastně vytvořil několik plug-inů už, Myslím, že v tomto prostoru. Takže pojďme se zbavit některých z nich, přidejte SDK = 1 & debug = 2, obnovte tuto pracovní prostor, a uvidíme, jestli budeme mít ty zásuvné moduly teď. C9 / plugins. Tady jsme. Vidíme nyní v mých C9 / plugins tohoto jedním, máme plugin.1 a plugin.2. Takže budeme jen urychlit the-- stačí zvýšit množství obtížnosti V každém z těchto plug-inů. Ale tady, když jsem vytvořit nový plug-in, Mohu přidat k oblíbeným. A já budu jen odstranit ty, které z základní souborový systém. Pojďme odstranit to. Nyní, když otevřu můj první plug-in, a otevřené plugin.js, vidíme zde základní jednoduchý verze plug-inu. Dovolte mi, abych skutečně jít zpět do tohoto druhého pracovního prostoru protože můžete alespoň tady vidět, co prázdný plug-in ve skutečnosti vypadá. A tak pod kapotou, to vypadá velmi podobné technologii s názvem, Myslím si, že je to RequireJS. Všimněte si, že to není opravdu se, snad, stejně jako některé jiné JavaScript Soubory, které jsme mohli vidět. Ale místo toho, je tu jen pár základní linie, že ve skutečnosti má. Všechny tyto věci se nejprve vykládán IDE, ale není to vlastně běžet až specifikováno. A řeknu vám, že o tom, kdy ve skutečnosti znamená za chvíli. Ale všimněte si, že tady je tu main.consumes čára v řadě 2, a to uvádí všechny plug-inů že tento plug-in je závislá na. Takže ve výchozím nastavení, my snad co dělat, aby se jakékoliv závislosti na jiných plug-inů, ale když jsme vlastně potřebujeme závisí na funkcích dodaných ostatními plug-inů v IDE, musíme vypracovat seznam těchto plug-inů v main.consumes linii. A pak musíme odkaz je na kódu níže, které jsem vám ukážu, v právě O chvíli o tom, jak to můžeme udělat. Main.provides dává název tohoto plug-in že ostatní plug-iny mohl použití ve svém spotřebovává řádku. Takže v tomto případě, můj plug-in tam je jen ve výchozím nastavení, a že bychom měli změnit, že je to vztahující se na naší vlastní plug-in, jak uvidíme za pouhý okamžik. Nyní zde ve funkci hlavní, tato funkce hlavní je vlastně běh a interpretovány, ale to není vlastně dělat moc. Je to prostě dostane vše nastaveno, ale to není skutečně začít plug-in, i přes to, co název zní podobně. Že vlastně děje prostřednictvím posloupnost metod, které jsou obsaženy v této plug-in. Takže když jsem se posunout dolů, vidíme že máme životní cyklus kde na nějaké akce s názvem zatížení, nebo nějaké akce s názvem odlehčovací, některé události ve skutečnosti stalo. Je to opravdu tady, kde jako plug-in Začíná, že tyto metody jsou volány. Takže buďme trochu konkrétnější o tom, a podívat se na příklad. Takže tady pro plugin.1, co Jsme v podstatě dělat je vytvořit položku nabídky volal CS50 Seminář Dialog 1-- protože máme dva them-- a jdeme vnést do nabídky Window. A když jsme se na něj kliknete, my jsme chystá otevřít dialog, který nám ukazuje některé velmi základní informace. V tomto případě, jen Hello World. Tak to je velmi jednoduchý hello world dialog že můžeme realizovat jako plug-in v Cloud 9. Tak uvidíme, jak to vlastně vypadá. Budeme jej krok po kroku, jen poměrně rychle, takže jsme se podívat na další plug-in stejně. Všimněte si, že jsme tady náročné různé plug-inů. Máme náročný dialog plug-in, příkazy, menu a UI. Vypadá to, že ve skutečnosti jsem náročné dialog dvakrát, takže mohu odstranit, že. A všimněte si, že na cestě že jsem jim připojení, To je druh metadat, která nám říká plug-in systém, jaké požadavky jsou skutečně nutné pro tento modul plug-in načíst. Je také důležité si uvědomit, že objednávka, že plug-iny jsou načteny není zaručena. Ale to, co je zaručeno, je, že když jsem upřesnit nějaké plug-in jako požadavek, že plug-in bude načten Než tohle je načten. Takže to znamená, že pokud plug-in vyžaduje, aby na některých funkcí poskytovaných něco jiného v IDE, měli byste ujistěte se, že vaše zásuvné spotřebovává že plug-in, takže závislosti je jisté, že vytvořit plug-in, nebo instanci váš plug-in, jen poté, co že stávající rámec existuje. Tak tady jsem se zmínil o metadata na plug-in manažer, ty, které mi chodí k sežrání. A v hlavní funkce tady, Chystám se pak připojte můj kód na ty dovážené plug-inů. Takže jsem prostě jít vytvořit některé proměnné, které odpovídají jménům každého z těch tak že mohu velmi rychle odkazovat jim v celém mém kódu. Důvod, proč jsem import dialog Je tomu tak proto Chci plug-in působit jako dialogu plug-in. A to tak, že jsem schopen k tomu, že je, samozřejmě, připojit můj kód k dialogu plug-in pomocí importu jej a pak určením podle vytvoření nového dialogu proměnnou a jeho připojení k že dovážené plug-in. A pak se tím, že definuje my plug-in jako nový dialog. Takže v inicializaci I chcete definovat svůj plug-in. A tato proměnná s názvem plug-in uvidíte právě běžně používán v celém Cloud 9 plug-inů. Budu instanci nového dialog s některými vlastnostmi, dát konkrétní název, říkají, že to je možné pro uživatele zavřete. Že to ukážu trochu x In pravém horním roh, nebo o něco tlačítka v pravém dolním rohu. Zda nebo ne mohu vybrat text ze to, co název tohoto dialogu by bylo, a tak dále. Teď to jen definuje dialog, ale to není zatím najevo. Vlastně jsem definovat Žaloba pro něj být ukazován. A opět, doporučujeme vám podívejte se na Cloud 9 SDK, protože tam jsou různé dialogy a oni jsou opravdu dobře zdokumentovány. Můžete vidět různé druhy že tam jsou, a jejich použití v co plug-in máte na mysli. Teď to bude bude část zatížení, a toto zatížení Funkce Jak si jistě vzpomínáte, je používá plug-in životního cyklu skutečně instanci vše a dostat vše připraveno jít. Nyní, když tento modul plug-in zátěže, vůbec se mi nelíbí chci, aby to okamžitě zobrazit dialog, protože tento plug-in se načte spolu se zbytkem IDE. A když jsem jej vložte IDE, nechci dialog se ukázat automaticky. Já jen chci, aby to ukázat, když kliknu na Nabídka možností na mého okna položku menu že budu k němu přidám okamžik. Takže tam dva odlišné kroky tady to muselo stát. Musím vytvořit příkaz a příkaz bude zodpovědný za skutečně zobrazující dialog o Cloud 9 IDE. A pak jsem se připojit, já je nutné vytvořit nové okno nabídky položka, která se spouští tento příkaz. Takže, když jsem klikněte na toto okno položky menu, že příkaz je pak běh a proto můj dialog se pak zobrazí. A tak je to vlastně docela příjemný způsob, jak o tom přemýšlet. Vzhledem k tomu, nejprve jsem si vytvořit příkaz jehož jméno je CS50 seminář Dialog 1, že poskytuje některé obecný kontext pro ni. A důležitý bit je zde Všimněte si atributu EXEC, který uvádí funkce, která bude volána v mém plug-in při spuštění tohoto příkazu. Takže tento příkaz je něco jako je-- je to jen libovolná Cloud 9 Příkaz která je k dispozici na jakoukoli Cloud 9 plug-in. Ale skutečné funkci, že je to Zavolám při spuštění tohoto příkazu je funkce přehlídka dialog v mém plugin.js souboru. A můžeme skutečně vidět Tyto plug-iny a seznam příkazů, které jsou k dispozici k nám Předvolby, vyberte celou cestu down-- podívejme se, vlastně vidíme to nyní? Plug-in správce, Ne, myslím, že je to já-- určitě někde tady. No, tam je seznam příkazů někde, ale musím mít, Zapomněl jsem, kde to je. Tak OK, budeme dál. Dobře. Takže máme seznam příkazů které jsou k dispozici pro nás, a tyto příkazy jsou to prostě libovolné Cloud 9 příkazy, které běží specifický kód. Takže jen mějte na paměti, že budeme spouštět dialogovém okně Zobrazit okamžik fungovat. Teď, když jsem se skutečně chtějí přidat nabídku položka, mohu dodat, že položku cestou, a stačí zadat přesně tam, kde chci, aby to bylo, Window / CS50 seminář Dialog 1. A v tomto bodě, chci vytvořit novou položku, která se chystá spustit příkaz, CS50 seminář Dialog 1. Všimněte si, že se znovu, to je Cloud 9 příkaz Vytvořil jsem těsně nad. Teď chci také vytvořit malou dělič, a tak jsem můžete udělat totéž v následující řadě. Nyní si můžete všimnout, že jak Součástí definování této položky menu, je tu řada s ním spojené, které ve skutečnosti říká, kde přesně Chci, že položka menu bude se nachází v seznamu menu. Ale můžete všimnout že nemám vlastně vidět žádné čísla s Tyto nabídky, ve výchozím nastavení. Takže je tu malá skrytá věc, která co můžeme udělat, trochu změnu naší adresy URL. Takže kromě SDK = 1 & ladění = 2, Budu nastavit menu 1-- a doufejme, že to je menu, není menu. Oh, to je menu = 1. Počkej. A co budeme vidět při překládce, že IDE je, že jsem stále v režimu ladění, ale teď tam jsou čísla které se týká všech nabídkách. A to vám řekne, přesně to, co se počet je, když se snažíte k injekci něco, kdekoli v tomto systému nabídek. Takže v nabídce Okno, mohu vidět, že bod 45 je spolupracovat a bod 38 před ním je instalační program. Takže když chci injekci položka mezi těmi dvěma, Jen bych vyberte číslo mezi těmito dvěma položkami. Tak jsem si vybral 41 a vloží svůj seminář Dialog položka 1 MENU na tomto místě. A to je důvod, proč toto číslo který se objeví zde je Number 41. To je místo toho položka menu v nabídce Cloud 9. Nyní podobně, chtěl jsem k vytvoření dělič a přidat tak, že je tu pěkný rozdělení mezi každou z těchto nabídky položky. Tak jsem dodal, že se na místě 43. Tak daleko, tak dobře, doufám, že? Takže teď pojďme podívat na skutečně specifický kód ve výstavním dialogu to je ve skutečnosti zodpovědný pro otevření tohoto dialogového okna. Rolování dolů, vidím, že chci, aby byla tato funkce Zobrazit dialog, a je to velmi jednoduché. Chystám se spustit show metoda na plug-in proměnné. A nezapomeňte, že jsme definovali to plug-in proměnné výše jako dialog. Takže bar plug-in, v tomto případě, je to Objekt, který jsme vnitřně definovány. A bude to být nový dialog obsažené v tomto plug-in. A tak jsme vlastně odkazoval se na to plug-in proměnné v mnoha místech v typické Cloud 9 vývojové prostředí. Budeme ho naleznete zde. Všimněte si, že když jsme přejděte dolů, je tu další životní cykly. Takže si všimnout, že tito reagují k událostem, které jsou vypáleny tímto objektem, tento dialog objektu. Ve výchozím nastavení, je tu nakládku a vykládku, který jsou k dispozici všem Cloud 9 plug-inů. Ale v případě Tento dialog, je tu Další událostí, která může Oheň také volal Draw, který je zapálený při které má být vypracovány na obrazovce, v prvním stupni dialogu ukazovat. Takže, když je ve skutečnosti bude ukázáno, tam se chystá poskytují nám nějaké HTML. A pouze pomocí standardní HTML praktiky MŮŽEME aplikovat některé velmi jednoduché informace, náš hello world, v tomto dialogu. Takže když jsme se pak přejděte nahoru, můžeme viz pak průvod věcí že je to dochází. Nejprve jsme vytvořili Cloud 9 příkazu že když jsou vykonávané Cloud 9, se děje na oheň této funkce. Bude to spustit tuto funkci volal ukazují dialog, že jsem psaný v mém kódu. Vytvořil jsem si položku menu a spojený s tím, že stejný příkaz že když je, že položka klepnutí v menu, že příkaz je pak spustit a tato funkce je pak spustit. A uvnitř funkce Jsem jen tak zavolat the-- Jsem právě chystá spustit show Způsob tohoto plug-in, který se chystá na první výzvu metoda draw, a jít na oheň této metody se stanoví níže, kreslit obsluhu události, v našem životním cyklu. A pak se to bude ve skutečnosti zobrazí dialog. K dispozici je také skrýt metoda, takže když potřebuji možnost skrýt můj dialog, můžu dělat totéž. Tak to je docela hodně to získat všechny, aby to fungovalo. Všimněte si, že to, kdybychom posunout dolů dále je tu zmrazení veřejné API. To v podstatě jen říká, že jsem Chcete tyto metody efektivně být veřejná, avšak nikoliv overwriteable mimo kontext tohoto plug-inu. A dole, na samém dně, je snad ta poslední věc, že musíme skutečně platit velkou pozornost na tu, která je to, že budeme naše registrovat plug-in se jménem C9 seminář 1, a objekt plug-in. Což, jak si vzpomínáš, je že plug-in, že plug-in Objekt, který jsme byli definování Během celého tohoto zdroje kód. A C9 seminář 1 je Řetězec, který jsme slíbili aby v horní části této definice. DOBŘE. Takže pojďme rozjet to trochu a uvidíme, jestli můžeme něco udělat trochu zajímavější. Teď je to jen tak velký. Chci říct, je to, že je to vlastně docela vychladnout, že tak málo řádků kódu, můžeme upravit stávající IDE a přidat existující položku menu nebo přidat nové položky nabídky, přidejte příkaz, a ukázat dialog, a jen banda funkce, které existuje. Je to opravdu docela skvělý. Ale to nedělá hodně, protože to nemůže komunikovat s podkladové Ubuntu instance. Takže řekněme, že já skutečně chtějí zjistit, Některé informace o základní Ubuntu instance, jako jsou statistiky plug-in dělá. Takže pojďme se podívat na trochu více informací o tom, jak statistiky plug-in práce. A ve skutečnosti, že je velmi podobný tomu. Dalo by se připomenout, že tam je dialog. Dalo by se připomenout, že je tu Některé informace, které je ukázala, podél panelu nabídek spolu vrchol, který doufejme, že jste teď dostat chuť o tom, jak jsme realizovali to, Jen tím, že vloží položky menu na specifické body a vyvoláváním instancí dialogu a zobrazení, že dialog. Ale dosud zobrazeny vám, jak se můžeme připojit na příkaz do Základním instance Ubuntu. Takže pojďme se podívat pak na plugin.2, která dělá právě tuto věc. Jedeme do otevření plugin.js, což je kód pro toto. Ale pod nabídce okno když jsem klikněte na dialog 2, můžeme vidět, že se říká, že toto místo toho, ahoj CS50, který Nevypadá to všechno to Lákavé, že jo? Až na to, dívat se na to. Dovolte mi, abych něco změnit tady dole. Chystám se jít do mého Pracovní prostor a změna seminář říkat něco jiného, ​​jako Dobrý den, Dan. Chystám se zavřít a uložit ji. A teď budu re-run můj položka menu dialog. A všimněte si, že to má nyní změnilo to, co říká. Dobrý den, Dan. Myslím, že jsem udělal něco dolů tady v podkladové instance Ubuntu manipulovat, aniž by jakákoliv Kód, který je opět spuštěn výhradně na straně klienta. Takže tam zřejmě nějaký druh sdělení, že se tady děje. Teď to je místo, kde mnoho z Síla Cloud 9 SDK přijde, je to, že v tomto plugin.2, můžeme skutečně způsobit hovor se stane na základní instance, a spustit nějaký libovolný příkaz. Takže v tomto případě, mám vlastně vytvořil velmi jednoduchý bash skript v mém pracovním prostoru s názvem seminář. Dovolte mi tedy, že až otevře. A my můžeme vidět, že to vypadá takhle. Je to jen velmi jednoduchý bash Skript, jehož jediným cílem v životě bude na echo out tohoto textu, Dobrý den, Dan. Nebo před ním, to řekl Ahoj, CS50. A to je vše, co bude dělat. Vzhledem k tomu, to je nyní příkaz, že můžu běžet. Já si skutečně spustit jej sem. Můžeme vidět, že ve skutečnosti je jen příkaz, který jsem běžet přirozeně. Mohu se zeptat svůj plug-in k provedení této příkaz na podkladové pracovní ploše a analyzovat informace , který byl vrácen z ní, a udělat něco s ním, a upravit Plug-in a chování, které jsem mám v plug-inu jako výsledek. DOBŘE. Tak uvidíme, jak se to stane. Viděli jsme to velmi jednoduché Seminář dávkový skript, který jsem [Neslyšitelný] že může skutečně spustit. A teď se podívejme, změny které jsou nutné se svázat dohromady s dialogovým oknem, a spusťte jej. Tak tady budeme dělat docela to samé, jako jsme viděli předtím. Ale všimněte si, že mezi věci, které jsem spotřebované now-- kromě dialogu, který Znovu jsem náhodou udělal dvakrát, který není necessary-- navíc k dialogu a příkazy a menu pluginy, které byly nutné v první pro mě definovat nový příkaz a injekci položky do menu, Mám také tento proc plug-in. A to proc plug-in umožňuje nám manipulovat procesů na podkladové instanci. Jsem připojen to jsem po jsem řekl, že můj plug-in vyžaduje. Já jsem pak jej připojit k kód, jak jsme viděli v hlavní funkce. Opět platí, že budu inicializovat můj dialog. A pokud se pohybujeme teď dolů, my Můžete vidět, jak tohle je něco jiného. Funkce zatížení je stejné, takže je to jen chystáte vytvořit příkaz a vytvořit položku menu a připojit že položka menu k tomuto příkazu. Ale pokud budeme teď rolovat dolů ukázat dialogu, můžeme začít vidět, kde Rozdíly vznikají. Máme funkci výstavní dialog, který se právě chystá ukázat dialog. Ale když jsem ukázat tento dialog, a když se nazývá výstava metoda, vystřelí funkci draw. A já jdu na zadejte nějaký obsah uvnitř to. Takže jsem prostě jít vytvořit div, poskytnout k němu některé základní text, Hello, world. Ale všimněte si, že tady nejsem se připojit k němu ID. A hned další řádek jdu zjistit, že ID pomocí JavaScriptu, a uložit tento objekt do další proměnné že jsem jen tak zavolat obsahu. Takže teď, když mám obsah, vše, co potřebujete udělat, Je jen upravit vnitřní HTML tohoto objektu. A dialog HTML bude pak být upraven také. Takže když to plug-in je pak je znázorněno, což se může stát a to je nová událost že je na tento nový plug-in, ale se děje v každém plug-in s dialog, kdy tento se nyní zobrazuje, Budu volat Funkce tzv načíst informace. A tato funkce je maso tom zde. Budu používat tento proc plug-in, jsme popsali dříve, což mimochodem, je opravdu jen knihovna Node.js že Cloud 9 používá zde. Takže se můžete skutečně vyhledat informace o tom, jak to funguje, pokud jdete do Node.js dokumentace a dívat se exec soubor Způsob pro procesy tam. Chystám se spustit tento specifický Příkaz, domácí Ubuntu pracovní prostor seminář, který je ten stejný člověk, který Stejný příkaz, který jsem vytvořil předtím. Poskytnout na ní aktuální pracovní adresář, jen být ultra bezpečné v termínech kontext, kde to běží. A jakmile která byla dokončena a vrátil se, Chystám se spustit tento Funkce tzv parse výstup. DOBŘE. Takže to pak bude provádět příkaz na místní, nebo spíše vzdálené instance Ubuntu. Až se vrátím trochu Informace, já jsem pak Zavolám samostatnou funkci volal parse výstup, že má tento podpis tady, ehm, stdout, stderr, a provádět některé výpočty na toto téma. Takže když jsem dostal chybu nějakého druhu vůbec, Já se skutečně zkontroluje, zda Chyba ve skutečnosti má některá data. A pokud ano, pak jsem se změnit vnitřní HTML tohoto obsahu objektu, který je si vzpomenete, my připojený k dialogu na instantiattion toho dialogu, nebo na první kresby tohoto dialogu. Budu jen říct, že nějaká chyba se stalo. Teď je to příliš zjednodušující. Chyba hodnota bude obvykle obsahují něco, co bylo užitečné, snad číslo chyby a Chyba z samotném skriptu. Nebo v případě, že skript napsal něco na standardní chyby, že data by být naplněna se tím, že parametrem i. A mohl bych být trochu více pozor, co chyb Já jsem vlastně ukázat lidem. Ale to zjednodušující příklad je dost dobré pro teď alespoň vidět, jak všechny tyto funkce. V opačném případě, pokud je zde žádná chyba, a pak jsem jen bude poskytovat syrové Výstup z této funkce do vnitřní HTML tohoto obsahu prvek, a pak aktualizovat své plug-in a ukázat, že tady. A to je docela hodně všem, co je nezbytné, aby si to spustit. A tak se pojďme přemýšlet o tom, poté jak to funguje, celkově. Při prvním jsem nahrál tento plug-in, stejně jako první plug-in, Chystám se přidat příkaz, který je k dispozici na cokoli, na jakékoli plug-in v Cloud 9, nazvaný CS50 Seminář Dialog 2, jehož zodpovědnost bude provozovat tuto výstavu dialogu, který je si vzpomínáte, bude skutečně ukáže dialog že jsem požádal níže. Pak jsem se dodat, že Příkaz do menu okna takže mám přístup k to. A když, že dialog požaduje, aby se zobrazí, Zatím přinesu nějaké informace od podkladové instance Ubuntu pomocí příkazu exec souboru. Omluvte mě. Jakmile to je se vrátil a dostanu nějaké informace, pak na straně klienta znovu, budu moci zpracovat výstup tohoto příkazu a aktualizovat vnitřní HTML prvků že jsme se připojit k dříve. A to, že jsme pak Tento plně funkční plug-in která mi umožňuje načíst informace Z tohoto libovolného skriptu že jsme vytvořili na Naše základní instance. Ale na druhou stranu, je to opravdu důležitý a rychlé klíč oddělit, kde každý z těchto věcí se děje, že máme všechny tyto straně klienta kód, který je spuštěn v prohlížeči a ještě nemá přístup se základním systému souborů dokud jsme vlastně spustit některé z nich příkazy, které jsou poskytované Cloud 9 SDK jako proc, a některé ty ostatní které nám umožňují číst některé údaje, nebo přečíst některé soubory, pokud potřebujeme dělat nic takového. Nyní je to poněkud jednoduchý příklad. Existují i ​​jiné věci, které jsme by se možná chtít dělat stejně. Například, možná jsme vlastně chtějí ušetřit nějaké informace preferencím. Nebo snad chceme přidat nové podokno preference nebo něco v tomto směru. Tak to je něco, co vás Můžeš se podívat na Cloud 9 SDK získat více informací o. Ale to je opravdu dost, abyste mohli začít. Takže jen být trochu konkrétnější o tom, jak, že některé z těchto věcí funkce, chtěl jsem ukázat, ještě jeden příklad, který je jen některé kódu z Stats 50 plug-in. A tento kód je v podstatě Na základě těchto příkladů že jste vlastně viděli, ale má některé další záruky a má nějaké větší složitosti za účelem k dosažení některé z dalších věcí že chceme dosáhnout. Například, pokud chci být schopné uložit některá nastavení, pak musím mít přístup Do Nastavení plug-in, a pokaždé, když chci, přečíst nějaké nastavení, Mohu například připojit k různým Události v nastavení plug-in. Takže pokaždé, když je nastavení je červená, Například, ve svém vlastním plug-in, pokud budu číst některé nastavení z uloženého skladování preference uživatele, pak jsem si nastavit výchozí hodnoty pro konkrétní místo, pro specifické preference, v tom, že JSON Volby stylu soubor, který máme uložena dříve, že jsme viděli dříve. A když budu psát Některá nastavení do ní, Pak jsem can-- nebo jakmile zjistíme, že nastavení bylo napsáno to-- proto, že například, ty, které nastavení byly změněny uživatelem a to buď přímo v jejich nastavení soubor, nebo v podokně preference změnil nastavení soubor přímo, pak I může skutečně aktualizovat některé kódu nebo aktualizovat chování mého plug-in založené na těchto změnách, které došlo na souboru nastavení stejně. Ale opravdu, to ostatní je docela moc to, že jste již viděli. Přidáme trochu, snad něco, co je nového. Tak jsme přidat soubor předvoleb, či spíše panel preference, na okně voleb, což je opět můžete dozvědět více informací v Cloud 9 SDK mě číst. Ale všechno ostatní je docela hodně, pěkný podobné tomu, co jsme viděli předtím, jen s některými dalšími kontrolu chyb a některé dodatečné ochrany a některé další funkce do funkce všechny různé věci, které jsme viděli. Pokud nemáte ve skutečnosti Viděl to ještě, možná budete se divíte, co je základem Příkaz je v okně Statistiky 50. Je to vlastně fungovat. No, to je-- oh, sakra. Jedna sekunda. Počkej. DOBŘE. Dovolte mi, abych to posunout nahoru, takže můžeme vlastně uvidíme, co se stane, když jsem typ Statistiky 50. Všimněte si, že v tomto případě je příkaz, který jsem mimo uvedení je opravdu opět, jen skript, který je bude na výstup spoustu informací ve formátu JSON. A důvod, proč to děláme Tento způsob je, že proto, že jsme jsou v provozu, protože jsme písemné na straně klienta kód v JavaScriptu, můžeme velmi snadno jen analyzovat objekty JavaScript, a ve skutečnosti bylo možné manipulovat tyto objekty stejně jako bychom jakýkoliv jiný objekt JavaScript. A tak je to velmi pohodlné způsob poskytování nějaké informace z podkladové instance Ubuntu, jako je například číslo verze, hostiteli jméno, zda server naslouchá, to, co je server, tak dále a tak dále, a analyzovat, že velmi snadno a velmi rychle v plug-in, který je pak jít aby nám ukázal všechny tyto informace. Takže znovu, klíč Insight zde mít na paměti, je toto oddělení mezi základní instance, a také pokud kód je načten. Že když mám klienta, to je nejprve zatížení. Právě tento statický obrázek JavaScript z Někde, snad CDN nějakého druhu. My opravdu nemají na péči příliš mnoho o tomto prvním kroku. Jen Víme, že je to běžící na straně klienta a to je, když budu komunikovat s tímto instance přístavní dělník. Že budeme dělat tak přes Cloud 9 SDK. Nemáme vlastně mít schopnost, pomocí JavaScriptu nebo Node.js, zapisovat přímo do něj. Právě jsme se použít ty stávající SDK API k tomu, že akce, pro nás. A opět, jeden z opravdu důležité věci je, že když jsem vytvořil to, když jsem vytvořil tento plug-in, a jak jsem pracoval na tom, jeden z důležitých věcí, které se je vychovávat konzole JavaScriptu. Vzhledem k tomu, protože je to vše působící na JavaScriptu, na straně klienta, pokud mohu použít console.log method-- takže jen pro zobrazení příklad zde. Zkusme se mění tento jednoduchý plug-in také přihlásit některá data. A přidáme standardní výstup. Takže pojďme změnit, že je to tady. Teď, když jsem se spustit console.log, mějte na paměti, že protože je spuštěn na straně klienta, Budu vidět v mé vlastní JavaScript konzole, což je, jak jsem se pak bude moci se snaží řešit a ladění některé z problémů, které mám. Všimněte si, že proto, Jsem v režimu SDK, já jsem pak schopný manipulovat modulů plug-in v této instance. Takže i když je uložené na tomto stupni, To je jeden příklad toho, že předchozí pravidlo porušována, kde se Cloud 9 SDK bude skutečně tahat plug-inů od základní instanci a pak spustit je. Takže tímto způsobem, já jsem pak schopen manipulovat a postavit Některé moduly plug-in zde. Ale aby mě vidět aktualizace tohoto plug-in, protože je to na straně klienta, Musím kromě toho, že plug-in a pak znovu načíst celý pracovní prostor, tak, aby se nový plug-in je pak stáhnout do mého klienta, na můj webový prohlížeč, a pak je používán. Takže teď, když jsem se na tomto semináři klikněte Dialog 2, stále vidět. Ale teď doufám, že ve svém JavaScriptu dialogu, měli bychom vidět my-- čekat, Počkej. Budu muset otevřít dialog čerstvé. Měli bychom se podívat na moje přijatá data zde. Přijatá data, Hello, Dan, který je si vzpomínáte, Byla to console.log operace, která jsme požádali v plug-inu. Takže tento popis pak že jsem se zmínil dříve, Tento dialog, nebo to spíše schéma, které jsem již bylo zmíněno dříve, je, co se stane. Ale je to důležitá Výjimka pouze pro vývoj, což je to, že plug-in sám by mohl ve skutečnosti být uloženy na instanci Docker dočasně, protože podle všeho Cloud 9 nechce, abychom byli schopni manipulovat s objekty na jejich CDN. A Cloud 9 klienti, po načtení, bude najít ty zásuvné moduly v tom. C9 plug-in složky a vložte ty. Ale ti jsou stále děje pouze na straně klienta. Takže je to jen AN výjimkou, že se vyskytuje pouze pro rozvoj Cloud 9 plug-inů. Ale zbytek z time-- a důvod že chceme opravdu kladivo tento home-- je proto, že po většinu času je bude spuštěn od CDN, a právě chystá spustit čistě ze strany klienta. Normálně tam bude žádná interakce s plug-in, nebo tam ani nemusí být jakýkoli Důvod, že plug-ins sebe jsou ve skutečnosti uložena na základní instanci přístavní dělník, s výjimkou v případě tento vývoj SDK. Takže znovu, to se změní jen mírně vzhledem k tomu, že nám dochází režim SDK. Bude to pak načíst těm modulů plug-in od vývoje, a jediným cílem je, aby se Mohu použít Cloud 9 k tomu rozvoje pro Cloud 9 pluginy. Ale i tak se tím nemění Znovu, jak tohle všechno funguje. Je to stále spuštěn zcela na straně klienta. To jen znamená, že pokud chci vytvořit Cloud 9 plug-iny v Cloud 9, I vytvořit tyto plug-iny, dát do mého. C9 složky / plugins v mém domě adresář, ujistěte se, že jsem v režimu SDK, stránku znovu načíst pokaždé, když jsem vlastně provést změny tohoto plug-in, a uvidíme, co se stane v můj konzole JavaScript. Jen řídit můj JavaScript utěšit, aby se ujistil že každém odstraňování poruch Informace, které jsem místo ke konzole, nebo cokoli jiného, ​​co by mohlo nastat kvůli chybám, které jsem napsal v mém kódu nebo podobně, zobrazí se zde. A s tím, je to opravdu natolik, aby mohli začít, myslím, s Cloud 9 plug-inů. Zvláště při pohledu na SDK dokumentace, která Cloud 9 nabízí. Je to skvělý způsob, jak dostat začala, a velmi snadno vytvořit některé zásuvné moduly pro Cloud 9. A s tím, bych rád poděkoval vám všem děkuji za mě spojování. Doufám, že se budete bavit psaní plug-inů pro Cloud 9. Možná, že zlepšování plug-iny že nyní máme, nebo možná dokonce Přidejme nějakou funkci vlastní. Těšíme se na setkání co to je, co vytvořit. Do té doby, ahoj.