>> DAN Armendariz: Здравейте, и добре дошли на а CS50 семинар по Персонализиране Cloud 9,
и CS50 IDE.
Така че днес ние ще просто да поговорим малко
относно някои от техническа информация, която
отива зад архитектура на Cloud 9, и как
въведохме някои от плъгините като част от Cloud 9 да предоставят CS50 IDE.
Така че нека просто скочи право и започнем да говорим за плъгини.
>> Така плъгини са наистина най- сърцевина от опита Cloud 9.
Облак 9 е основната технология която предоставя на нас логическо устройство,
а също и терминален прозорец в дъно, заедно с workspace--
на Ubuntu workspace-- че ние използвате, за да се съберат всички наши проекти
и изпълняваме нашите проблемни комплекти, завършите нашите проблемни комплекти.
Но в основата на всичко на това, всички технологии
наистина е само един куп плъгини.
Всичко е приставка които могат да бъдат модифицирани,
удължен, можете да създадете Вашите собствени плъгини,
можете да премахнете друг плъгини, наистина да променят
доста от функционалността на съществуващата Cloud 9 IDE.
>> Така че това е съществуваща Облак 9 среда.
Това наистина е само на подразбиране Cloud 9 среда.
И да погледнем как всъщност е различен от CS50 IDE.
Така че това е най-CS50 IDE.
Забележете, че има някои, визуална промени между редовен Cloud 9
среда и CS50 IDE.
Конкретно, ще забележите няколко промени.
На първо място, има по-малко елементите от менюто, за да се започне.
Там всъщност е начин че можете да промените това.
Тя се нарича Simple Mode.
>> По подразбиране, Simple Mode е активиран, и който опростява някои от елементите на менюто.
Тя премахва някои от по-напредналите от тях,
защото, честно казано, много студенти, които идват в
и не е нужно да знаете за някои на по-разширени функции
не са претоварени с един куп опции.
Но ние осигуряваме възможността да се вземат на разстояние от тези така наречени помощни колела
и премахване, че скеле, така че хората
може да стане по-свикнали разширените функции на логическо устройство.
Веднага на право на това, там е
и бутон за отстраняване на грешки, които в стандартния Облака
9 среда се нарича просто тече.
Но по подразбиране, ние сме конфигуриран бутона за отстраняване на грешки в CS50 IDE
за да пренесат дебъгер, автоматично съставяне на изходния код,
свържете дебъгер до основната GDB--
и тъй като това е движение за извършване на debugging-- и някои други стъпки
както добре.
Също терминален прозорец в very-- или по-скоро на терминала
таб в секцията пулт за управление на прозорец в самото долната част на екрана,
е преименувана просто да бъде терминал.
Докато в стандарта Cloud 9 среда,
тя всъщност показва работещо приложение.
По този начин, той опростява, отново, графичния интерфейс, само малко.
>> Ние също така добавя някои бутони до горния десен ъгъл на IDE
да покажа някои основни данни за базовия модел.
И също така ние премахнахме една от опциите по точките
от крайната десница.
Така че всичко това не е изпълнена чрез модифициране задължително Облака 9
изходния код, но вместо през няколко
на плъгини, които са приложили през цялата изминала година и нещо.
И Cloud 9 е домакин и има използвате в работното пространство CS50.
Или по-скоро в работни пространства, които са определени като CS50 ИДЕС.
>> Така че наистина това е основната разлика между Облака 9 и CS50
работни пространства.
Има също така и, в базисния Например, основната промяна е
че ние инсталирате някаква предварително конфигурирани елементи като GDB,
и някои други основни неща, които която сме създали, като Актуализация 50,
и няколко други стъпки, които правят цялото преживяване е малко по-
единна.
Но като цяло, това е само една изменение на съществуващата система
че Cloud 9 е създал за нас.
Това, което ще показват малко по-късно
е как всъщност да се създаде донякъде основния плъг-ин,
ни позволява да поставите нещо в меню система, и да се отворят диалог.
И ако имаме достатъчно време, ние всъщност ще
видим как можем да населят тази диалог с някаква информация
от базовия модел.
За да можем да стигнем до това точка, нека първо поговорим малко
за архитектурата на Cloud 9.
>> Така че начинът, по който сме свикнали да взаимодейства с Cloud 9
е изцяло чрез клиента.
Ние се отворят уеб браузър, ние въведете в CS50.io.
Ние в крайна сметка, след удостоверяване, са представени с логическо устройство.
Но осъзнавам, че има Няколко стъпки
които всъщност ни да стигнем до тази точка.
Първото нещо е, че моя клиент, уеб браузър,
при поискване и след удостоверяване, зарежда GUI и плъгините
от някои CDN, от някои Content Delivery Network.
Това може да бъде казано никъде.
>> И това всъщност е отделен от базовия модел.
Важно е да се осъзнае, че това е всъщност само един куп статични файлове.
Това е един куп JavaScript който е изтеглен от CDN
за да ми уеб браузър, и всички от графичния интерфейс, който
виж here-- това е наистина key-- всички от графичния интерфейс, който можете да видите тук
се управлява от страна на клиента.
Всичко, което виждате в Cloud 9 работното пространство
е действително работи в браузъра.
И всичко, което ви изпратим заедно с основната инстанция
е съобщена с инстанция по този втори отделен канал,
и след това се записва върху че докер инстанция.
>> Така че причината, поради която искам да кажа, това е докер инстанция
е, че основната технология не използва виртуални машини,
но вместо това се използва технология, наречена докер,
които основно allows-- най-близо Аналогично е на виртуална машина.
Но това е едва доловимо различен с това, че има
много възможности да се движат по- комбинация от различни докер
инстанции на една машина.
И те могат да се завъртя нагоре в много бърза последователност.
Това не е съвсем толкова повече строга диференциация
между различните инстанции Docker като има в виртуални машини,
но все още има много диференциация и отделяне
между тези различни инстанции.
ДОБРЕ.
Така двата етапа, че тук са важно да се осъзнае
е, че когато отидем в CS50.io, ние сме изтегляне на графичния интерфейс и плъгините,
които са написани на JavaScript, за към браузъра или в към браузъра.
И това е може би една двойка мегабайта стойност на информация.
В този момент, след като има GUI зареден и плъгините са започнали,
След това тя започва да общува с на докер инстанция, която не
е задължително да бъде на същия сървър.
>> Сега има едно изключение от това.
Ние можем действително да има както на механизъм за доставка на самата GUI
и докер инстанция в Всички същия сървър, който
всъщност е нещо, което правим за офлайн версия на Cloud 9.
Това не е нещо, което ние сме популяризирана много тази есен,
но ние също нямате офлайн версия, която
позволява изтеглянето на опакован версия на всички тези неща
и ще ви позволи да стартирате Cloud 9 в онлайн среда.
>> Преместването това разстояние облака и върху локалната машина има някакво въздействие.
По-специално, вие не вече имат способността
да споделите вашето работно място с други хора.
Вече не може да се отвори Cloud 9 от, и CS50 IDE, от всеки компютър
и да видим, че едни и същи файлове сте работили с преди.
Но вместо това тя работи изцяло на собствения си локалната машина
без да се налага достъп до интернет.
Но все пак дори и в този модел, дори въпреки че ние имаме една виртуална машина
който е по същество използвате тези неща.
>> Имаме отделен сървър, който е доставяне същество Облака 9
съдържание, а след това ние имат докер инстанция
който е отговорен за комуникацията с тази IDE за задния край.
ДОБРЕ.
Така че цялата GUI е писано изцяло в JavaScript
използване на Node.js и Cloud 9 SDK, които ние ще се заемем в само минутка.
И всичко плъгините се експлоатират от страна на клиента.
Така че нека да се съсредоточи тогава Малко като се предполага,
че тази първа стъпка всъщност приключи успешно,
и само погледнете този докер инстанция.
>> Така че в този случай, това е стандартен начин
на мислене за правене на Cloud 9 приставка развитие е, че вие ​​ще
да се пише код, който ще се изпълнява в браузъра на потребителя,
и имате възможност на използване на някои APIs да общуват
с прилежащата докер инстанция, тече някакъв код там, и да направи нищо
че може да искате да направите.
Така че това ще бъде контекста, че ние ще
да се използва за останалата част от този разговор.
И просто продължавай този модел в ума.
Това ще бъде много важна само за няколко минути.
Има няколко връзки, които искам да ви покажа.
На първо място, Cloud 9 е предоставил доста документация
това е доста добра, който показва как да се направи основен плъг-ин за развитие.
Така че, ако отидете на този URL, cloud9-sdk.readme.io,
ще видите документацията там.
И много от тази информация че сте на път да видите
също може да се намери там, плюс още.
Можете също така да намерите отворен код версия на Cloud 9 в този URL,
github.com/c9/core, които ние използваме като част от офлайн версия на IDE,
така че ще бъде в състояние да имат по същия Cloud 9 опита,
но в офлайн начин.
Всичко е наред.
Така че нека да разгледаме един действителната Cloud 9 работно място тук.
И отново искам да подчертая от няколко неща.
Това е, точно тук, нормално CS50 IDE.
И аз да е забранил на по-малко комфортен режим в менюто View
така че мога да видя всички на опциите на менюто.
Това, което искам да ви покажа полето сега е няколко неща.
Първо, ако отида в Предпочитания и след това
кликнете върху Plug-в мениджър, и напишете CS50 тук,
можем да видим, че има, в действителност, Няколко CS50 плъгини, че
са инсталирани и нашето движение да даде възможност на модификациите, които сме
виждал за CS50 IDE.
>> Точно сега има по същество две приставки, които се изпълняват.
Има едно нарича Simple, които е опростен режим, който
ви позволява да се намали броят на опции от менюто по протежение на върха,
и са този така наречен по-малко удобни режим.
И тогава там е също CS50 Stats, което е може би само малко по-сполучлив термин.
Защото това е, което ви показва информацията
около основната работното пространство.
Той инжектира тези бутони заедно в горния десен ъгъл.
Той също така инжектира елемент от менюто в прозорец т, в менюто Window
точно тук, CS50 IDE Info.
И това е отговорен за инстанциира този диалог, който сме виждали тук,
цялата информация, която сме свикнали да виждаме в CS50 IDE
работно място.
ДОБРЕ.
Така че всъщност има още една приставка че ние сме разработили, както добре.
А има и няколко други, които ние също не са публично освободени.
Но един от тях е цялостната плъг-ин, който позволява на GDB да функционира.
Така че един от аспектите на Cloud 9 е, че те вече са предоставили
това GUI за изпълнение на дебъгер.
И един от плъгините, че ние сме създали основно
куки GDB с този GUI базирана версия на дебъгер.
И е отговорен за медииране всички от исканията, които потребителят може да имат,
между прекрачвайки или създаване на точки на прекъсване или нещо
в тази насока, за да превеждат, че команди, които да могат да разберат GDB,
издаване на тези команди към GDB.
И веднага след като GDB издава отговор, а след това
ние тълкуваме, че и актуализиране на GUI, колкото е необходимо.
>> Това е може би една от по-сложно
на плъгините, така че вместо това, което ние сме ще се съсредоточи върху днес е в действителност
статистиките щепселни и ние ще говорим малко за Simple, както добре.
Така че аз споменах и преди, и аз наистина искам да се направи много, много ясно, че отново,
всичко това, че ние сме виждаме тук е по същество
оперира от страна на клиента.
Виждаме терминален прозорец по-долу, и че, разбира се,
ако сме написали в команди в че, че след това ще бъдат издадени
до базовия модел.
По същия начин, ако ние отваряме нов файл и написали някои неща в него и да го запишете,
този файл ще бъде записан на базовия модел.
>> Но самата редактор, това Самата терминален прозорец,
се осъществява в цялата JavaScript и всичко е приставка
че можем да си взаимодействат с, и следователно променят.
Има много неща, на разтегливост тук.
Аз препоръчвам да погледнете в GitHub акаунт Cloud 9-ки
да се види огромното количество плъгини, които са налични,
и колко добре написани много на кода е за разтегливост.
Така че има нещо че искам да спомена
за това, както и, което е че има много of-- има
много функционалност, която е предвидено в предпочитанията
прозорец, който сме виждали само намекнато само преди няколко минути.
>> Едно от нещата, които можем да направим като IDE разработчиците, или като Cloud 9 разработчици,
е действително да се инжектират някои привилегировани групи от нашата собствена.
Така че просто режим, или толкова по-малко удобни режима,
а също и информацията, IDE, или статистиката плъг-ин
има всяка някои предпочитания панели, които ни позволяват да се променят
поведението на всеки от тях.
Ще забележите, че ако отида до Предпочитания и отидете в настройките на потребителя,
има един таб CS50, една която казва IDE информация.
И мога да променя информация опресняване курс.
>> Реално, това, което се случва във статистиката плъг-ин
е, че всеки N-секунди, където н-секунди се определя от това предпочитание
панел, информация, се е пресилено от базовия модел, изгонването
обратно към страната на клиента, плъг-ина е тогава
тълкуването на информацията от базовия модел
и актуализиране на GUI, колкото е необходимо.
Виждаме, че в момента това е зададено до 30 секунди, а това е по подразбиране.
Но определено мога да променя колко бързо това се случва само
чрез модифициране на тази стойност.
>> Сега един от най-интересните неща е, че това предпочитание панел, GUI,
в действителност е просто GUI версия на много от основните настройки
които са представени в JSON.
Така че ако отида, например, при Меню CS50 IDE или менюто Cloud 9,
в зависимост от версия, която търсите,
и отидете на един от тях settings-- в този случай,
проекта на settings-- Настройки на проекта в този случай
се прилага за всички настройки за тази една работно място.
Като има предвид, прилагат потребителските настройки до всички работни пространства
че може да се наложи в профила си.
>> Така че просто като отмени тук, за да бъдете изключително ясни,
има разделение между две, защото въпреки че по подразбиране, ние
има право на един работен плот, който е CS50 IDE, ако
бяха да кликнете върху вашето малко аватар тук и отидете на таблото,
вие ще откриете, че всъщност можете да създаване на допълнителни работни места, както добре.
Тук можете да видите, че аз нямам един IDE 50 работно пространство, а също и
за целите на настоящия семинар, на работното място
нарича работно пространство, което е точно тук.
Така или иначе, аз имам различни предпочитания.
Всеки един от тях може да има отделни предпочитания за проекта,
но предпочитанията на потребителите са споделена между всички мои работни пространства.
Между другото, това е също е много удобно, ако
искате да създадете работно пространство с различни опции за персонализиране.
И това е много удобен за създаване на нова работна площ.
И избере един, който може да бъде предварително конфигурирани по някакъв друг начин,
може би за конкретно PHP, или Django конкретно.
Или дори само по поръчка.
Работното пространство на CS50 шаблон е този, който ние
използвате, че автоматично инсталира Актуализация 50 и всички настройки
че имаме там, включително всички плъгини, които имаме за CS50 IDE.
ДОБРЕ.
Но нека се върнем към този.
Така че отново, има проекти настройки, и тези, са тези,
че ние търсим най-тук.
И забележите, че има един куп настройки,
много от тях съответстват на предпочитанията панели, но не всички от тях.
Но ние можем да видим, че тук, в this-- ох не, съм го постави в потребителските настройки?
Може би ще мога да я тури в потребителските настройки.
И това, започваме.
В настройките на потребителя, ние можем виждаме, че имаме раздел CS50,
и е написано да от тези Cloud 9 приставки
че сме изпълнени.
Там е прост, за да съответства с тази проста приставка,
и статистиката по един, който отговаря на това, GUI базиран
версия на предпочитание панел.
Скоростта на опресняване, в това случай, е настроен на 20 секунди.
>> Това е всичко, надявам се, на начало на някаква информация
че ние всъщност ще видим след малко малко по-подробно, за миг.
ДОБРЕ.
Така че нека да кажем, ние искаме да всъщност стигнете до него.
Ние разбираме, че всички неща, , което се случва от страна на клиента
се прави действително на браузъра, който означава, че всички плъгини, които пиша
Ще бъдат написани с браузъра в ума.
И ако аз действително искам да правя нищо на работното място,
Аз може би ще трябва да се започне някакъв вид комуникация
между браузъра и работното място, за да бъдете сигурни,
че това действително е постигнато.
Но нека да кажем, че сега Аз искам да отида до него
и действително създаде първата си добавка.
Е, начинът, по който ще бъде в състояние да направя, че всъщност е доста лесно.
Той е даден в Cloud 9 SDK.
Но това е да си вземете съществуващо име на работното пространство, което
е URL, че имате най-отгоре на Вашата бар, и да добавите следното към него.
?
SDK = 1 & debub = 2.
Сега това, което това ще даде възможност е че SDK = 1 всъщност ще определи SDK
режим вярно, което ще позволи Няколко допълнителни неща.
И дебъгване = 2 ще позволи на съобщения за грешки да бъде малко по-многословен.
>> И така, ако сте пренесат JavaScript конзола в раздела разработчик Chrome,
вие всъщност ще бъде в състояние да Виждам много повече информация
отколкото бихте друго.
Така че аз препоръчвам да се обърна и двете от тях в същото време, тъй като той наистина
Полезно е да има всичко това Допълнителна информация.
Важно е да се отбележи обаче, че включване на отстраняване на грешки на стойност 2
означава, че това е много многословно, и тя всъщност
малко ще се забави значително Вашата IDE, особено при товарене
или когато правим правиш тежки задачи.
Така че просто имайте това предвид.
Това е полезно за развитие, но вие Не може да искате да го има през цялото време.
>> Така че нека да всъщност направи това.
Но в този случай, аз всъщност трябва Вече се създаде работна област с това.
Така че нека да видим, SDK = 1 & отстраняване на грешки = 2.
С няколко приставки надявам се вече е инсталиран.
Всичко е наред.
Така че сега, че съм се обърна на SDK отстраняване на грешки режим, забележите, че ние сме в режим на отстраняване на грешки,
така че можем да разгледаме инструментите на Dev да видите всички грешки, които аз ще направя извън екрана.
Ние можем да видим, че има куп грешки тук.
Сега това е всъщност доста често за Cloud 9 да има няколко грешки,
и аз не бих се притеснявал за тях, докато не
видим нещо, което може да са специфични за плъг-ина
че ти се случи да се създаде.
>> Така че тук, например, получаваме Няколко 404s-- не е намерен.
Ние виждаме, че не можем да се зареди някаква информация на разстояние от базовия модел
себе си.
И има един куп допълнителни информация, но повечето от това, че сме
всъщност ще се игнорира за сега.
Тъй като това е доста обща за работно пространство
да има само няколко грешки.
ДОБРЕ.
Отивам да извадим това от Между другото и да се върне тук.
И сега по лесния начин, на хубаво нещо, за да се налага този програмист
активиран режим е, че тя ми позволява за лесно създаване на нова добавка.
>> Така че докато преди аз всъщност не го направи имат тази нова опция налична приставка,
които можем да видим, ако се върна, за да ми режим не е разработчик тук,
че няма нова добавка.
С активирането на режима на SDK, I имаме нова налична приставка
и мога лесно да създадете такъв.
В този случай, има една двойка за различните варианти, прости,
празен плъг-ин, пълен плъг-ин, монтажник, Cloud 9 сноп.
Нека просто да изберем празна приставка за сега
така че ние можем да видим много проста версия на един.
>> Сега забелязвам, че по протежение на лява страна, че е там в момента е
нещо под Favorites, която се изброяват няколко приставки
които вече са на разположение за мен.
Ако аз се разшири, че ние ще можете да видите тези.
Сега искам да забележите нещо тук, което
е, че това не е действително съдържащи в указателя работно място
в основата на моя например Ubuntu, но той се съдържа на твърдия диск.
И когато това се намира, тъй като това е много полезно да се знае,
особено ако ти започваш да се да се прави нищо с Git,
когато това се намира е в папка .c9, / плъгини.
Така че, ако аз отида там, можем да видим, че сега списъка на плъгини, че сте тук
съвпада списъка плъгините, че аз видях от лявата страна на моя работен плот.
>> Сега по подразбиране, и това е странно,
по подразбиране, когато създам нова приставка в работното пространство,
тя създава тази приставка, че от подразбиране има име на долна черта.
Като цяло, които биха могли причини проблеми.
Така че още на следващия етап че аз обикновено изпълнява
е просто да се премахне, че специално приставка
и да оставите само прост плъгин, че беше там първоначално, plugin.simple.
И това е само едно, че е там.
ДОБРЕ.
>> Е, какво значи това всъщност изглежда?
Е, това е, отново, пакет JavaScript
който включва някои файлове, включително plugin.js файл, където
основното съдържание на моята приставка се намира,
файл package.json, което всъщност уточнява
някои метаданни за този плъг-ин, като кой е авторът,
всякаква допълнителна информация за него, а Описание на приставката, и така нататък.
И също така по подразбиране, то създава празен README файл,
и празен тест файл, за да създаде някаква допълнителна документация,
и сбруя изпитване, ако бихте искали да направите това.
>> Така че нека просто да погледнем първо в, много бързо, при файла package.json.
Това е достатъчно лесно просто проверете то и да попълните в областта на настоящата
че вие ​​ще искате да въведете, като тя предоставя име, да се даде описание,
превъртите номера на версията от време на време, да предостави
автор за всеки лице, което допринася,
да ги добавите към дарителите вписванията, а останалата част от това,
може доста много просто напусне, тъй като е за сега.
>> Има едно нещо, което е важно да се отбележи,
че в раздела за плъгини, там е ключов нарича добавка.
И това е съпътствано с името на файла JavaScript нарича plugin.js.
Така че това е начина, Cloud 9 знае, когато става прочете това package.json файл,
на Js файлове действително да се зареждат.
Ако аз се създадат допълнителни JS файлове или искате да преименувате, че JS файл от плъг-ин,
Аз също трябва да го промени във файла package.json.
>> Всякакви въпроси от публиката?
Не.
Това един човек, който е след заедно с мен досега.
>> ДОБРЕ.
Така че аз всъщност създадохме Няколко плъгини вече,
Мисля, че в това работно място.
Така че нека да се отървете от някои от тях, добави SDK = 1 & отстраняване на грешки = 2, презаредете работно място,
и нека да видим дали можем имат тези приставки сега.
C9 / плъгини.
Ето ни.
Ние можем да видим сега в моите C9 / плъгини на настоящата един, имаме plugin.1 и plugin.2.
Така че ние ще се увеличат само the-- Просто се увеличи размерът на трудност
във всяка от тези плъгини.
Но тук, ако създам нова приставка, Мога да го добавите към любимите ми.
И аз просто ще изтрие тези от основната файлова система.
>> Да се ​​премахне това.
Сега, ако си отворя първо плъг-ин, и отворени plugin.js,
можем да видим тук до базисния проста версия на добавка.
Позволете ми всъщност се върна до този друг работен плот
защото можете да най-малко, тук вижте, това, което празно приставка действително прилича.
Така че под предния капак, това изглежда много подобен на технология, наречена,
Мисля, че е RequireJS.
Забележете, че това не е така наистина изглеждат, може би,
същите като друг JavaScript файлове, които може да сме видели.
Но вместо това, има няколко просто основни линии, че тя действително има.
>> Всички тези неща е първата тълкува от IDE,
но това не е реално продължи до определен.
И аз ще ви кажа за това, кога, че всъщност означава в един момент.
Но забележете, че тук има main.consumes линия в линия 2,
и това се изброяват всички плъгините че този плъгин е зависим.
Така че по подразбиране, ние може би не трябва да всякакви зависимости от други плъгини,
но когато ние действително трябва да зависи от функции, доставени
от други плъгини в IDE, ние трябва да се изброят тези плъгини
в линията main.consumes.
И тогава ние трябва да се връзката им с кода
по-долу, които аз ще ви покажа само миг за това как можем да направим това.
>> Main.provides дава Име на тази приставка
че други плъгини могъл употребата на своя консумира линия.
Така че в този случай, моята приставка е само в стаята има по подразбиране,
и ние трябва да се промени, че да бъде приложим към нашия собствен плъг-ин,
както ще видим само миг.
Сега тук във функцията Основната, тази функция основна
всъщност се движи и тълкува, но тя всъщност не правим много.
Той просто получава всичко, създаден, но тя всъщност не започне плъг-ин,
въпреки това, което звучи като име.
Това всъщност се случва през поредица от методи,
се съдържат в цялата тази добавка.
>> Така че, ако превъртите надолу, можем да видим, че имаме жизнен цикъл, където
на някакво събитие, наречено натоварване, или някакво събитие, наречено разтоварване,
някои събития се случват в действителност.
Това е наистина тук, където, както е плъг-ина започва че тези методи се наричат.
Така че нека да е малко по-конкретна за това и разгледаме един пример.
Така че тук за plugin.1, това, което ние основно ще правим
е да се създаде елемент от менюто наречено CS50 Семинар Dialog 1--
защото имаме две от them-- и отиваме
да го инжектират в менюто Window.
И когато ние кликнете върху него, ние сме Ще се отвори диалог, който
ни показва някои много основна информация.
>> В този случай, само на здравей свят.
Така че това е един много прост Здравей, свят диалог
че можем да се приложат като плъг-ин в Cloud 9.
Така че нека да видим как това всъщност изглежда.
Ще преминете през нея, просто сравнително бързо, така че ние
Посетете следващата приставката, както добре.
Забележете, че ние сме тук консумират различни плъгини.
Ние сме отнема диалог плъг-ин, команди, менюта, и UI.
Изглежда, че аз всъщност съм отнема диалог два пъти, за да мога да го отстрани.
>> И забележи, че начинът, че аз съм ги свързва,
това е нещо като метаданни, което се казваше Системата на плъг-ин какви изисквания
всъщност са необходими за този плъг-ин за да се зареди.
Важно е също да се отбележи, че реда, в който плъгини се зареждат
не е гарантирано.
Но това, което е гарантирано е, че ако аз зададени някои плъг-ин като изискване,
че плъг-ин ще бъде зареден преди да бъде натоварен този.
>> Така че това означава, че ако си приставка изисква по някои функционалност условие
от нещо друго в IDE, вие трябва бъдете сигурни, че вашите консумира сменяеми
че плъг-ин, така че зависимостите сме сигурни, за да създадете своя плъг-ин,
или конкретни примери си приставка, само след това съществуващата рамка съществува.
Така че тук Вече споменах метаданни за управителя на плъг-ин,
кои от тях аз ще консумират.
И в основната функция тук, Отивам да я свържете
ми код за тези внесени плъгини.
>> Така че аз съм просто ще създаде някои променливи, които
отговарят на имената на всяка от тези толкова че аз много бързо могат да ги справки
през целия си код.
Причината аз съм вносител на диалога е защото искам моята приставка
да действа като диалог добавка.
И начинът, по който аз съм в състояние да направите това е да, разбира се,
свържете моя код за диалога плъг-ин, като го вносител
и след това, като се посочва от създаване на нова променлива диалог
и свързването му към че внесените добавка.
И след това, като определя моя плъг-ин като нов диалог.
>> Така че в инициализация, I Искам да се определи моя добавка.
И тази променлива, наречена плъг-ин ще видите
е просто използва често в целия Облак 9 приставки.
Отивам да се конкретни примери нов диалог с някои атрибути,
я дам конкретно име, казват, че тя е възможно за потребителите да го затворят.
Това ще покаже малко х в горния десен ъгъл,
или малък бутон в долния десен ъгъл.
Дали не мога да изберете текст от това, какво заглавието на този диалог
ще бъде, и така нататък.
Сега това просто определя диалога, но тя все още не го показват.
Аз всъщност е необходимо да дефинирате действия, за да бъде показана.
>> И отново, аз Ви препоръчваме да се да погледнем на Cloud 9 SDK,
защото има диалози на сортовете и те наистина са добре документирани.
Можете да видите различните видове че има и ги използва
в каквато и плъг-ин имате в предвид.
Сега там се случва да бъде раздел натоварване, и това натоварване
функция, както си спомняте, е използвана от плъг-ин жизнения цикъл на
действително конкретни примери всичко и да получите всичко готов да отида.
Сега, когато тази приставка натоварвания, аз не Искам веднага да покаже на диалог,
защото тази приставка ще зареди заедно с останалата част на IDE.
И когато се зареди, че IDE, аз не искам диалогът да се появи автоматично.
Аз само искам да покажа, когато кликнете върху опцията в моя елемент от менюто Window
че аз ще добави към него момент.
>> Така че има две отделни стъпки тук, че трябва да се случи.
Аз трябва да се създаде команда и командата
ще отговаря за действително показване на диалога за Cloud 9 IDE.
И тогава аз трябва да се свържете, I трябва да се създаде нов прозорец с меню
елемент, който работи тази команда.
Така, че когато щракнете върху които Window елемент от менюто, че командата е след пробег
и затова ми диалог след това се показва.
И така, това е всъщност е доста хубаво начин на мислене за това.
>> Защото първо аз да създадете команден чието име е CS50 Семинар Dialog 1,
която осигурява известна общ контекст за него.
И важното тук е да се бит забележите EXEC атрибута, които
изброява функция, която ще се нарича в моя плъг-ин, когато тази команда се изпълнява.
Така че тази команда е нещо като A-- това е просто произволно Cloud 9
команда, която е на разположение всяка Cloud 9 добавка.
Но действителната функция, че това е Ще се обадя, когато тази команда се изпълнява
е функция на шоуто диалог в моя plugin.js файл.
>> И всъщност ние можем да видим тези плъгини и списъка
от команди, които са достъпни за нас в Preferences, превъртете целия път down--
нека да видим, всъщност виждаме това сега?
Включете в мениджър, не, мисля, че това е I-- Определено тук някъде.
Е, има списък от команди някъде, но аз трябва да има,
Аз съм забравил къде се намира.
Така OK, ние ще продължим.
Всичко е наред.
Така че ние имаме списък от команди които са на разположение за нас,
и тези команди са те просто произволно Cloud 9
команди, които се изпълняват специален код.
Така че просто да се има предвид, че отиваме да тече диалога шоу
функционира момент.
Сега, когато аз всъщност искате да добавите меню т, мога да добавя, че т от пътя,
и само да уточним точно къде искам тя да бъде, Window / CS50 Семинар Dialog 1.
И в този момент, искам за да създадете нов елемент, който
ще стартира команда, CS50 Семинар Dialog 1.
Забележете, че отново, това е Клауд 9 команда съм създал точно над.
>> Сега аз също искам да създаде малък делител,
и за да мога да направя същото в следващия ред.
Сега можете да забележите, че като част от определянето на този елемент от менюто,
има редица свързани с нея, които
всъщност казва къде точно Искам този елемент от менюто, за да бъде
разположен в списъка на менюта.
Но е възможно да забележите че аз всъщност не
виж всички числа с тези менюта, по подразбиране.
Така че там е малко скрито нещо, че което можем да направим, малка промяна в нашия URL.
Така че в допълнение към SDK = 1 & отстраняване на грешки = 2, Ще фиксирано меню да 1--
и да се надяваме, че е меню не, менюта.
О, това е менюта = 1.
Дръж се.
>> И това, което ние ще видим, че при повторно натоварване IDE е, че аз все още съм в режим на отстраняване на грешки,
но сега има номера свързана с всички менюта.
И това ви казва какво точно броя
е, когато се опитвате да инжектирате нещо, навсякъде в тази система на менюто.
Така че в менюто Window, което мога се види, че т 45 е сътрудничат
и № 38, преди да е инсталатор.
Така че, когато аз искам да инжектирате елемент между тези две,
Бих искал само изберете номер между тези две позиции.
Така че съм избрал 41 и добавя моя семинар Dialog т.1 от менюто на това място.
>> И ето защо този брой който се появява тук е номер 41.
Това е мястото на тази елемент от менюто в менюто Cloud 9.
Сега по същия начин, аз исках за създаване на разделител
и да го добавите, така че там е хубаво разделение между всеки от тях меню
елементи.
Така че аз се добави, че в населено място 43.
Дотук добре, надявам се?
Така че сега нека да погледнем реално специален код в шоу диалоговия
че всъщност е отговорен за отваряне на този диалогов прозорец.
>> Превъртане надолу, виждам, че искам да имат тази функция шоу диалоговия,
и това е изключително прост.
Отивам да тече шоуто метод на променливата на добавка.
И не забравяйте, че ние определено това плъг-ин-горе променлива като диалог.
Така бар плъг-ин, в този случай, е това обект, който сме определено вътрешно.
И това ще бъде нов диалог съдържаща се в рамките на тази добавка.
И така, ние всъщност този еталон плъг-ин променлива на много места
в типичен Cloud 9 развитие на околната среда.
>> Ние ще го видите тук.
Забележете, че както ние превъртете надолу, Има допълнителни жизнени цикли.
Така че забележите, че те отговарят, на събития, които са уволнени
от този обект, този диалог обект.
По подразбиране, има товаренето и разтоварването, които
са на разположение на всички Cloud 9 приставки.
Но в случай на този диалог, има
друго събитие, което може да пожар, както нарича
Равен, с което се захранва, когато това е на път да бъде съставен на екрана,
на първа инстанция на диалога показва.
>> Така че, когато това е всъщност Ще бъде показано,
там ще предостави на нас някои HTML.
И като се използва само стандартна HTML практики можем да
инжектирате някои много проста информация, нашата Здравей, свят, в този диалог.
Така че, ако ние след това превъртете нагоре, можем виж след това шествието на нещата
че това е настъпване.
Първо създадохме команда Cloud 9 че когато бъдат изпълнени от Cloud 9,
ще уволни тази функция.
Това ще стартирате тази функция наречено шоу диалог, че съм
написана в моя код.
>> Създадох елемент от менюто и прикрепен към него, че една и съща команда
че когато тази позиция е кликнал в менюто, които командват тогава се управлява
и тази функция е тогава тичам.
А вътре на функцията съм просто ще се обадя the-- съм
просто ще изпълни шоуто метод за тази приставка, която
ще се първата покана метода на равенство и залез
да уволни този метод по-долу, за изготвят боравене със събития, в нашия жизнен цикъл.
И тогава тя действително ще покаже диалога.
>> Има също така и метод скрий, така че ако имам нужда от възможност да се скрие
ми диалог, което мога да направя същото нещо.
Така че това е доста много го за да получите всичко това, за да работят.
Забележете, че това е, ако ние превъртете надолу допълнително има замразяване публично API.
Това основно просто казва, че аз Искам тези методи за ефективно
е публичен, но не overwriteable извън контекста на тази добавка.
И по-долу, на самото дъно, е може би последното нещо,
че ние наистина трябва да плати много внимание тук, които
е, че ние ще да се регистрирате в нашия плъг-ин с името C9 Семинар 1,
и обект плъг-ин.
>> Което, както си спомняш, е че плъг-ин, плъг-ин
обект, който ние сме били определящ през съвкупността от този източник
код.
И C9 Семинар 1 е низ, който обещахме
за осигуряване на върха на това определение.
ДОБРЕ.
Така че нека да го повиши малко и да видим дали можем да направим нещо
малко по-интересна.
Сега това е само толкова голяма.
Искам да кажа, това е, това е всъщност доста охлади, че в така няколко реда код,
можем ли да се промени съществуващото IDE и добавяне на съществуваща точка от менюто
или да добавите нов елемент от менюто, добавете команда, и да се покаже на диалог,
и просто един куп функционалност, която съществува.
Това е наистина доста голяма.
>> Но това не прави много, защото тя не може да общуват с прилежащата Ubuntu
инстанция.
Така че нека да кажа, че аз всъщност искате да разберете
някаква информация за в основата например Ubuntu,
като статистиката щепселни прави.
Така че нека да разгледаме по- Малко повече информация
за това как статистиката щепселни произведения.
И в действителност, това е много подобен на този.
Може да се припомни, че има диалог.
Може да се припомни, че има част от информацията, която е
показан само по лентата с менюта по на върха, която се надяваме, че сега сме
удар с вкус на това как реализирахме този,
просто чрез поставяне на опция в менюто на специфична точки и от инстанциира диалог
и показване, че диалогът.
>> Но ние все още не са показани вие как можем да го свържете
на команда в базовия например Ubuntu.
Така че нека да погледнем след това при plugin.2, която прави точно това нещо.
Отиваме да отворите plugin.js, която е кодът за това.
Но под менюто Window, ако щракнете върху диалоговия 2,
можем да видим, че той казва, че това вместо това, здравей CS50, които
не изглежда всичко това примамливо, нали?
С изключение, да гледате това.
Позволете ми да се промени нещо тук.
>> Отивам да отидат да ми работно пространство и промяна семинар
да каже нещо друго, като Hello, Дан.
Отивам да го затворите и да го спаси.
И сега аз отивам да пуснете отново моята позиция от менюто диалог.
И забележи, че тя има сега е променена, което казва.
Здравейте, Дан.
Изглежда съм направил нещо надолу тук в основата инстанция Ubuntu
без да са манипулирани всеки код, който отново се изпълнява единствено
от страна на клиента.
Така че има явно някакъв вид комуникация, което се случва тук.
>> Сега това е мястото, където много от мощност на Cloud 9 SDK идва,
е, че в тази plugin.2, всъщност ние може да предизвика
призив да се случи с базовия модел,
и работят с някои произволна команда.
Така че в този случай, аз имам действително създаде много прост скрипт Баш
в моето работно място, наречено Семинар.
Така че нека да се отвори, че до.
И ние можем да видим, че тя изглежда така.
Това е просто един много прост Баш скрипт, чиято единствена цел в живота
ще бъде да повторя този текст, Hello, Дан.
Или преди него, той каза Здравейте, CS50.
И това е всичко това ще направя.
>> Защото сега е това е команда, която мога да тичам.
Аз всъщност може да го стартирате тук.
Ние можем да видим, че тя всъщност е само команда, която аз тичам по естествен път.
Мога да попитам моя плъг-ин за да изпълни това команда в базовия работното пространство
и разбор на информацията че се върна от него,
и да направим нещо с него, и променяте ми плъг-ин и поведението, което съм
имам в моята плъг-ин като резултат. ДОБРЕ.
Така че нека да видим как това се случва.
Видяхме това много проста Семинар партида скрипт, който I
[Недоловим], че тя действително може да се изпълнява.
>> А сега нека да видим модификациите които са необходими, за да завърже това заедно
с диалоговия прозорец, и да го ползвате.
Така че тук ние ще направим доста много по едно и също нещо, както видяхме преди.
Но забележете, че сред неща, които съм консумирани now--
В допълнение към диалог, който отново се случи да са направили два пъти,
които не се necessary-- в допълнение за диалога и командите
и менютата плъгини, които са били необходимо в първата ми
да се определи нова команда и инжектирате елемент в менютата,
Аз също имам този ргос добавка.
>> И това ргос плъгин позволява ни да манипулира процеси
в базовия модел.
Аз съм го свързва след като съм каза, че ми плъгин го изисква.
Аз бях тогава той свързан с код, както видяхме в основната функция.
Отново, аз отивам да инициализира ми диалог.
И ако ние се движат надолу сега, ние може да се види как това е различно.
Функцията за натоварване е същото, така че това е просто ще създаде команда
и да се създаде елемент от менюто и да се свържете че елемент от менюто на тази команда.
Но ако ние сега превъртете надолу, за да се покаже диалог,
можем да започнем да се види къде възникват различията.
>> Имаме функция шоу диалог, който е просто ще покаже на диалога.
Но когато се покаже този диалог, и когато шоу метод се нарича,
тя изстрелва функцията за равенство.
И аз отивам да укажете част от съдържанието на тази вътре.
Така че аз съм просто ще създадете Разделения, да го предостави
някои основни текстови, Hello, свят.
Но забележете, че тук съм Ще се прикрепя към нея с ID.
И още на следващия ред аз отивам да се намери, че ID използвайки JavaScript,
и съхраняване на този обект в друга променлива
че аз съм просто ще се обадя на съдържанието.
>> Така че сега, когато имам съдържание, всичко, което трябва да направите,
е просто променя вътрешната HTML този обект е.
И HTML диалог ще след това да бъде модифицирана, както добре.
Така че, когато тази приставка е След това е показано, което може да се случи
и това е ново събитие който е нов в този плъг-ин,
но се случва във всяка приставка с диалога, когато това вече е доказано,
Отивам да се обадя на функция, наречена донесе информация.
И тази функция е месо от него тук.
Отивам да се използва това ргос плъг-ин, описахме преди, което, между другото,
наистина е само една библиотека Node.js че Cloud 9 използва тук.
>> Така че всъщност можете да гледам как това
работи, ако отидете в Node.js документация
и погледнете нагоре на EXEC файл метод за процесите там.
Отивам да стартирате тази специфична команда, дома работно пространство Ubuntu
семинар, която е същата, че същата команда, която съм създал преди.
Осигурете да го текущ работна директория, просто
да бъде ултра безопасна от гледна точка на контекст на случаите, когато това се изпълнява.
И след като това е било попълнен и върнат,
Отивам да стартирате тази синтактична функция, наречена изход.
ДОБРЕ.
Така че това, тогава ще се изпълни команда на местно, или по-скоро
дистанционното инстанция Ubuntu.
Като се върна някои информация, аз съм след това
Ще се обадя на отделна функция нарича синтактична изход, че
има този подпис тук, заблуждават, стандартния изход, STDERR,
и да изпълнява някои изчисления по този въпрос.
Така че, ако аз получих грешка на някакъв вид на всички,
Аз всъщност ще провери дали грешка всъщност има някои данни.
И ако е така, тогава аз ще променя вътрешната HTML на това съдържание обект, който
е си спомняте, ние свързан към диалог
в instantiattion на това диалог, или в първия чертеж
на този диалог.
Отивам да се каже, че просто някаква грешка се е случило.
>> Сега това е прекалено опростено.
Стойността за грешка ще обикновено съдържа нещо, което е полезно,
може би номер на грешка и грешка от самия скрипт.
Или ако скриптът е написал нещо, което да стандартна грешка,
че данните ще бъдат населен в този параметър, както добре.
И аз може да бъде малко по- по-внимателни за това, грешка
Аз всъщност показва на хората.
Но този простичък пример: е достатъчно добър, за сега
на най-малко да видим как всички тези функции.
В противен случай, ако има няма грешка, тогава аз съм просто
ще предостави на суровините изход от тази функция
във вътрешната HTML на това съдържание елемент, а след това се актуализира моята приставка
и да го покажа тук.
И това е почти всичко, което е е необходимо да се получи това да се изпълнява.
И така, нека да мислим за после как това работи, като цяло.
Когато за първи път зареден този плъг-ин, точно като първия плъг-ин,
Отивам да добавите команда, която е достъпни за нищо, и да е плъг-ин
в Cloud 9, наречена CS50 Семинар Dialog 2, чиято отговорност
ще бъде да тече това шоу диалог, който е си спомняте,
всъщност ще покаже диалога че съм поискала по-долу.
>> Тогава аз ще добавя, че команда в меню прозорец
така че имам достъп до тази.
И когато този диалог се иска да бъде показано,
Аз ще донеса малко информация от базовия модел Ubuntu
чрез използване на командата EXEC файл.
Извинете ме.
След като това се върна и да получа някаква информация, а след това от страна на клиента
отново, аз ще бъда в състояние да прави разбор на изхода на тази команда
и актуализиране на вътрешната HTML на елементите
че сме свързани с по-рано.
>> И с това, ние след това да Това напълно функционална добавка
който ми позволява да донесе информация от този произвол скрипт
че ние сме създали за нашата базовия модел.
Но отново, това е наистина важно и наистина ключовата
за отделяне, където всеки тези неща се случва,
че имаме всичко това от страна на клиента код, който се изпълнява в браузъра,
и все още няма достъп до основната файлова система
докато ние всъщност работят с някои от тях команди, които се предоставят от Облака
9 SDK като ргос, както и някои други такива които ни позволяват да прочетете някои данни,
или да прочетете някои файлове, ако имаме нужда да се направи нещо подобно.
>> Сега това е малко по-прост пример.
Има и други неща, които ние може би ще искате да направите, както добре.
Например, може би ние всъщност искате да спестите малко информация
на преференции.
Или може би ние искаме да добавите нов панел предпочитания
или нещо в тази насока.
След това, че е нещо, което може да погледнете на Cloud 9 SDK
за да получите повече информация относно.
Но това наистина е достатъчно, за да започнете.
Така че просто да бъде малко по-конкретна за начина, че някои от тези неща
функция, аз исках да покажа само още един пример, който е само част
на кода от Stats 50 плъг-ин.
>> И този код е основно въз основа на следните примери
които сте виждали, но има някои повече предпазни клаузи
и има някаква по-голяма сложност, за за постигане на някои от допълнителните неща
че искаме да постигнем.
Например, ако аз искам да бъда в състояние да спаси някои настройки,
тогава аз трябва да имат достъп на настройките плъг-ин,
и всеки път, когато искам да прочетете някои настройки,
Аз може, например, да се добави към различни събития в Настройки добавка.
Така че всеки път, когато настройките са червени, например, в моята собствена плъг-ин,
ако аз отивам да прочетете някои настройки от запазена съхранение
предпочитанията на потребителя, тогава мога да зададете настройки по подразбиране за определено място,
за специфично предпочитание, в които JSON опции стил файл, който ние сме
спасен по-рано, че сме виждали по-рано.
>> И ако аз отивам да пиша някои настройки към него,
тогава аз can-- или веднага след като се открие че настройките са написани
to-- защото например тези, настройки са били променени от потребителя
или директно в техните настройки файл или прозореца за предпочитания
е променило настройките подаде директно, а след това
Аз всъщност може да актуализира някои от кода или актуализиране на поведението на моя плъгин
въз основа на тези промени, които имат настъпило на файла с настройките, както добре.
Но наистина, останалата част от него е доста много по това, че вие ​​вече сте виждали.
>> Ние добавите някой, може би нещо, което е ново.
Така че ние добавите файл предпочитания, или по-скоро Фасади предпочитания,
към прозореца на преференции, които отново можете да намерите повече информация
в Облака 9 SDK ми прочете.
Но всичко останало е доста много, много
подобно на това, което видяхме преди, просто с някои допълнителни проверка за грешки
и някои допълнителни защити и допълнителна функционалност
да разполагат с целия спектър от неща, които сме виждали.
Ако не сте в действителност го видели още, може да се
се чудех какво се до базисния команда е в прозореца на Stats 50.
Това всъщност функция.
Е, това is-- О, по дяволите.
Една секунда.
Дръж се.
ДОБРЕ.
Позволете ми да се премести тази така можем действително видим какво ще стане, когато пиша Stats 50.
Забележете, че в този случай, команда, че съм извън извеждайки
е наистина отново, просто скрипт, който е Ще изход един куп информация
в JSON формат.
И причината, че ние го правим по този начин е, че тъй като
работят, защото сме написали клиентската страна код в JavaScript,
ние можем много лесно просто разбор на JavaScript обекти,
и наистина да може да се манипулира тези обекти, точно както бихме
всеки друг обект JavaScript.
>> И така, това е много удобно начин за осигуряване на някаква информация
от базовия модел Ubuntu, като номерът на версията, приемащата
име, независимо дали на сървъра слуша, което сървърът, така нататък и така нататък,
и разбор, че много лесно и много бързо
в приставката, която след това се случва да ни покаже цялата тази информация.
Така че отново, ключовият прозрението тук, за да имате предвид,
е това разделение между базовия модел,
и също така, когато се зарежда кода.
Това, когато имам клиент, това е първото зареждане.
Точно това статично JavaScript файл от някъде, може би CDN от някакъв вид.
Ние наистина не трябва да се грижи твърде много за тази първа стъпка.
>> Ние просто знам, че това е тичане от страна на клиента
и това е, когато аз отивам да общуват с този докер инстанция.
Това ние ще го направят чрез Cloud 9 SDK.
В действителност ние не сме в състояние, използвайки JavaScript или Node.js,
да пишат директно към него.
Ние просто използвайте такива, които съществуващата SDK APIs да направя, че действията за нас.
И пак, един от наистина важни неща
е, че когато съм създал този, когато съм създал този плъг-ин,
и както аз работя върху него, една от най-важните неща за вършене
е да изведете на конзолата JavaScript.
>> Тъй тъй като всичко това е опериращи на JavaScript,
от страна на клиента, ако използвам а console.log method-- така че просто
да покажа един пример тук.
Нека се опитаме да променят тази проста плъг-ин за да влезете някои данни.
И ние ще добавим стандартно навън.
Така че нека да се промени, че да бъде точно тук.
Сега, когато се изпълни console.log, имайте предвид,
че тъй като това е стартиран от страна на клиента,
Ще видите това в собствения си JavaScript конзола, която
е как тогава ще бъде в състояние да опитайте да отстранявате неизправности и отстраняване на грешки
някои от проблемите, които имам.
>> Забележете, че поради Аз съм в режим на SDK, аз съм
След това може да се манипулира плъгини за този случай.
Така че, въпреки че той е записан на този случай,
това е един пример на предишната правило се нарушава, когато Облакът 9
SDK действително ще дръпне плъгини от в основата инстанция и след това да ги изпълнява.
Така че по този начин, аз съм след това в състояние да манипулират и конструиране
някои плъгини тук.
Но за мен да видя новости за този плъг-ин,
защото това е от страна на клиента, Имам нужда да спаси приставка
и след това да се презарежда цялата работното пространство, така че новата приставка е тогава
изтегля на моя клиент, на моя се използва уеб браузър и след това.
>> Така че сега, когато кликнете върху този семинар Dialog 2, все още виждаме това.
Но сега се надяваме в моя JavaScript диалог, трябва да виждаме my-- изчакайте,
дръж се.
Аз може би трябва да се отвори свеж диалог.
Ние трябва да видите моите получените данни тук.
Получени данни, здравей, Дан, който е си спомняте,
Беше console.log операция, която поискахме в приложението.
Така че това описание след това които споменах и преди,
този диалог, или това диаграма по-скоро, че аз
споменах и преди, е какво ще се случи.
Но има важна Изключение само за развитие,
което е, че приставката Самата може в действителност
да се съхранява на докер инстанция временно, тъй като се предполага, Cloud 9
не иска от нас да бъдем в състояние да манипулират обекти на тяхната CDN.
>> И Cloud 9 клиенти, при товарене, Ще намерите тези плъгини в това.
C9 приставка папка и заредите тези.
Но тези, които все още се случва само от страна на клиента.
Така че след това е само на АН изключение, че се появява само
за развитие на Cloud 9 приставки.
Но останалата част от time-- и причината
че искаме да наистина чука тази home--
е така, защото в повечето случаи това е Ще се работи от CDN,
и просто ще се управлява чисто от страна на клиента.
>> Обикновено няма да има взаимодействие с плъг-ин,
или там дори не трябва да бъде всеки причина, че самите плъгини
всъщност са съхранени на в основата на докер например,
освен в случай на това развитие SDK.
Така че отново, това се променя само малко поради факта,
че ние използвате режим SDK.
Това ще след това заредете тези, плъгини от развитие,
и единствената цел тук е така, че Мога да използвам Cloud 9 да направя развитие
за Cloud 9 плъгини.
Но дори и така, това не променя отново как някой от този производител.
Тя все още се работи изцяло от страна на клиента.
>> Това просто означава, че всеки път, когато искам да създадете Cloud 9 приставки в Cloud 9,
Създавам тези плъгини, сложете ги в моя.
C9 папка / плъгини в моя дом директория, уверете се, че съм в режим на SDK,
презаредите страницата всеки път, когато всъщност правят промени в тази приставка,
и да видим какво се случва в JavaScript конзолата ми.
Просто управлявам JavaScript конзола да се уверите,
че всяко отстраняване на проблеми информация, която мога да поставя, за да утеши,
или нещо друго, което може да се случи поради грешки, които съм написал
в моя код или други подобни, ще се появи там.
>> И с това, че е наистина достатъчно, за да започнете, аз мисля,
с Cloud 9 плъгини.
Особено като се погледнете в SDK документация, която Cloud 9 предвижда.
Това е чудесен начин да получите започнал, и много лесно
създаде някои плъгини за Cloud 9.
И с това, искам да благодаря всички ви много за мен се присъедини.
Надявам се, че ще се забавляваме написването плъгини за Cloud 9.
Може би подобряване на плъгини че ние имаме сега, или може би дори
добавяне на някои функции на вашата собствена.
Очакваме с нетърпение да се видим какво е да създадете.
До тогава, чао.