Дадзены Armendariz: Добры дзень, і дабро запрашаем у CS50 семінар па наладзе Cloud 9, і CS50 IDE. Такім чынам, сёння мы збіраемся проста пагаварыць трохі аб некаторых з Тэхнічная інфармацыя, ідзе за архітэктуры Воблака 9, і як мы ўкаранілі некаторыя з убудоў у рамках Cloud 9, каб забяспечыць CS50 IDE. Так што давайце проста скакаць прама ў і пачаць гаварыць аб убудовах. Так убудовы сапраўды на Ядро Воблака 9 вопыт. Воблака 9 з'яўляецца базавай тэхналогіі што забяспечвае нам IDE, а таксама акно тэрмінала на Дно, разам з workspace-- Убунту workspace--, што мы выкарыстоўваць для кампіляцыі ўсіх нашых праектаў і выконваць нашы праблемныя наборы, завяршыць нашы праблемныя наборы. Але ў аснове ўсяго гэта, усе тэхналогіі на самай справе проста куча убудоў. Усё гэта убудова якія могуць быць зменены, павялічваецца, вы можаце стварыць Вашы ўласныя убудовы, Вы можаце выдаліць сябра убудовы, каб сапраўды змяніць даволі шмат функцыянальнасці існуючай Cloud 9 IDE. Так што гэта існуючы Cloud 9 навакольнага асяроддзя. Гэта сапраўды проста па змаўчанні Cloud 9 навакольнага асяроддзя. І зірніце на тое, як ён на самай справе адрозніваецца ад CS50 IDE. Так што гэта CS50 IDE. Звярніце ўвагу, што ёсць некаторыя візуальныя змены паміж рэгулярнай Cloud 9 навакольнага асяроддзя і CS50 IDE. У прыватнасці, вы будзеце заўважыць некалькі змен. Перш за ўсё, гэта менш ёсць пункты меню, каб пачаць з. Там на самай справе спосаб што вы можаце змяніць гэта. Гэта называецца просты рэжым. Па змаўчанні, Просты рэжым уключаны, і што спрашчае некаторыя з пунктаў меню. Яна выдаляе некаторыя з больш прасунутыя, таму што, шчыра кажучы, шмат студэнты, якія прыходзяць у і не трэба ведаць аб некаторых з больш прасунутых функцый не перагружаны з кучай опцый. Але мы прадстаўляем магчымасць узяць ад тых так званых навучальных колаў і выдаліць, што лесу, каб людзі можа стаць больш прывыклі да перадавыя асаблівасці IDE. Адразу да Права, што ёсць таксама кнопка адладкі, якія у стандартнай Cloud 9 сераду называецца проста бегчы. Але па змаўчанні, мы наладзілі кнопка адладкі ў IDE CS50 выхоўваць адладчык, аўтаматычна кампіляваць зыходны код, падключыць адладчык да асноўнай GDB-- і так, што гэта працуе, каб выканаць debugging-- і некаторыя іншыя крокі а таксама. Таксама акно тэрмінала на very-- ці, хутчэй, тэрмінал Ўкладка ў раздзеле кансолі на Акно ў самым нізе экрана, была перайменавана ў проста тэрмінал. У той час як у стандарце Воблака 9 навакольнага асяроддзя, гэта на самай справе паказвае працуе прыкладанне. Такім чынам, гэта спрашчае, зноў жа, графічны інтэрфейс, проста трохі. Мы таксама дадалі некалькі кнопак у правым верхнім куце IDE паказаць некаторую базавую інфармацыю аб асноўнай інстанцыі. А таксама мы знялі адзін з варыянтаў па пунктах ад вельмі правых. Такім чынам, усё гэта рэалізавана не шляхам змены абавязкова Воблака 9 Зыходны код, але замест праз пару убудоў, якія мы ўжо ўкаранілі на працягу мінулага года або каля таго. І Cloud 9 прымала і мае працуе ў CS50 працоўнай вобласці. Ці, хутчэй, у тым, што працоўныя прасторы абазначаюцца як CS50 IDE. Так на самой справе, што галоўнае адрозненне паміж Cloud 9 і CS50 рабочыя. Там таксама, якая ляжыць у аснове Напрыклад, змяненне першаснай што мы ўсталёўваем некаторыя Папярэдне настроеныя элементы, такія як GDB, і некаторыя іншыя асноўныя рэчы, якія мы стварылі, як абнаўленне 50, і некалькі іншых крокаў, якія робяць ўвесь вопыт трохі больш адзіная. Але ў цэлым, гэта проста мадыфікацыя існуючай сістэмы што Воблака 9 стварыў для нас. Тое, што мы збіраемся паказаць крыху пазней як на самой справе стварыць некалькі асноўных убудова, які дазваляе нам ўставіць што-то ў Сістэма меню, і адкрыць дыялог. І калі ў нас ёсць дастаткова раз мы на самай справе бачыць, як мы можам запоўніць, што дыялог з некаторай інфармацыяй ад асноўнай інстанцыі. Для таго, каб нам атрымаць да таго, што Кропка, давайце спачатку пагаворым крыху аб архітэктуры Cloud 9. Такім чынам, шлях, які мы выкарыстоўвалі да ўзаемадзеяння з Cloud 9 цалкам праз кліента. Мы адкрываем браўзэр, мы ўводзім ў CS50.io. Мы ў канчатковым рахунку, пасля аўтэнтыфікацыі, прадстаўлены з IDE. Але разумею, што ёсць пару крокаў што на самой справе прымусіць нас да гэтай кропцы. Самае першае, што ў тым, што мой кліент, вэб-браўзэр, Па запыце і пасля аўтэнтыфікацыі, загружае графічны інтэрфейс і ўбудовы з нейкай CDN, ад некаторых Сетка дастаўкі кантэнту. Гэта можа быць адкрыта ў любым месцы. І гэта на самай справе асобны ад асноўнай інстанцыі. Важна разумець, што гэта на самай справе проста куча статычных файлаў. Гэта куча JavaScript якія загружаюцца з CDN на маім вэб-браўзэр, а усё, што вам GUI см here-- гэта сапраўды key-- усе графічным інтэрфейсам, які вы бачыце тут выконваецца на кліенцкім боку. Усё, што вы бачыце у Cloud 9 рабочай на самай справе працаваць у браўзэры. І нічога, што вы пасылаеце разам з асноўнай Напрыклад паведамляецца з асобнікам па гэтым другі асобны канал, і затым захоўваецца на што асобнік Докер. Так што прычына, што я кажу гэта асобнік докер з'яўляецца тое, што ў аснове тэхналогіі не выкарыстоўваючы віртуальныя машыны, але замест гэтага выкарыстоўвае Тэхналогія называецца докер, якія ў асноўным allows-- бліжэй Аналогія ўяўляе сабой віртуальную машыну. Але гэта крыху адрозніваецца у гэтым ёсць шмат магчымасцяў для запуску Спалучэнне розных докер асобнікаў у адной машыне. І яны могуць быць раскручваецца ў вельмі хуткай паслядоўнасці. Гэта не зусім тым строгае размежаванне паміж рознымі выпадках Докер як ёсць на віртуальных машынах, але ўсё яшчэ ёсць шмат дыферэнцыяцыя і падзел паміж гэтымі рознымі інстанцыямі. ДОБРА. Такім чынам, дзве крокі, якія тут важныя, каб зразумець з'яўляецца тое, што, калі мы ідзем у CS50.io, мы запампоўкі графічнага інтэрфейсу і ўбудовы, якія напісаны ў JavaScript, на у браўзэры або ў ў браўзэры. І гэта, можа быць, пару мегабайт каштуе інфармацыі. У той момант, як толькі інтэрфейс мае загружаны і ўбудовы пачалі, Затым ён пачынае ўзаемадзейнічаць з асобнік докер, які не робіць абавязкова павінны быць на тым жа серверы. Зараз ёсць адно выключэнне. Мы можам на самай справе ёсць як механізм дастаўкі для самога GUI і экзэмпляр докер ў усё той жа сервер, які на самай справе што-тое, што мы робім для аўтаномнай версіяй Cloud 9. Гэта не тое, што мы агалоску вельмі гэтай восенню, але мы таксама маюць форуму, што версія дазваляе загрузіць ўпакаваны версія ўсе гэтыя рэчы і дазваляюць запускаць Cloud 9 у аўтаномнай асяроддзі. Перасоўванне гэта ад воблака і на Ваш лакальны кампутар мае некаторы ўплыў. У прыватнасці, вы не больш ёсць магчымасць падзяліцца ваша працоўнае прастору з іншымі. Вам больш не можаце адкрыць Cloud 9 з, і CS50 IDE, з любога кампутара і ўбачыць тыя ж файлы, што Вы працавалі раней. Але замест гэтага ён працуе зусім на вашым лакальным кампутары без неабходнасці доступу ў Інтэрнэт. Але ўсё-ткі нават у гэтай мадэлі, нават хоць у нас ёсць адна віртуальная машына што, па сутнасці, выканання гэтых рэчаў. У нас ёсць асобны сервер, які забяспечваючы, па сутнасці, Воблака 9 Змест, а затым мы ёсць асобнік Docker які адказвае за сувязь з гэтай IDE для задняй часткі. ДОБРА. Такім чынам, уся графічны напісана цалкам у JavaScript з дапамогай Node.js і Cloud 9 SDK, якія мы дабяромся да праз хвіліну. І ўсё убудовы выконваюцца на баку кліента. Так давайце засяродзімся то трохі, мяркуючы, што гэта першы крок фактычна завершана паспяхова, і глядзець толькі на гэтым выпадку Docker. Такім чынам, у гэтым выпадку, гэта з'яўляецца стандартным спосабам думаць аб робіце Cloud 9 убудова развіццё, што вы збіраецеся каб пісаць код, які будзе запусціць у браўзэры карыстальніка, і ў вас ёсць магчымасць выкарыстоўваць некаторыя API, мець зносіны з асобнікам базавага Docker, запусціць код існуе, і зрабіць што-небудзь што вы, магчыма, захочаце зрабіць. Так што гэта будзе кантэкст, што мы будзем выкарыстоўваць для астатняй частцы гэтай гутаркі. І проста трымаць гэтую мадэль на ўвазе. Гэта будзе вельмі важна ўсяго за некалькі хвілін. Там ёсць пара спасылкі я хачу паказаць вам. Перш за ўсё, Воблака 9 забяспечыў даволі шмат дакументацыі гэта вельмі добра, што паказвае, як зрабіць асноўнае развіццё плагіна. Так што, калі вы ідзяце ў гэты URL, cloud9-sdk.readme.io, Вы ўбачыце дакументацыі ёсць. І шмат з гэтай інфармацыі што вы збіраецеся, каб убачыць Таксама там можна знайсці, плюс больш. Вы таксама можаце знайсці адкрытага крыніцы версія Cloud 9 па гэтым адрасе, github.com/c9/core, якія мы выкарыстоўваем у якасці частка аўтаномным версіі IDE, так што вы будзеце мець магчымасць тое ж самае Воблака 9 вопыт, але ў аўтаномным чынам. Добра. Такім чынам, давайце зірнем на бягучая Воблака 9 працоўнае тут. І зноў жа, я хачу, каб паказаць з некалькіх рэчаў. Гэта, прама тут, нармальны CS50 IDE. І я адключыў менш зручны выгляд у меню Выгляд так што я магу бачыць усе з меню. Тое, што я хачу паказаць вам прама цяпер пара рэчаў. Па-першае, калі я іду ў Перавагі, а затым націсніце на убудова менеджэр, і ўвядзіце ў CS50 тут, мы бачым, што ёсць, на самай справе, пару CS50 убудоў, былі ўсталяваныя і наша праца, каб ўключыць змены, якія мы бачыў на CS50 IDE. Цяпер ёсць па сутнасці два плагіна, якія выконваюцца. Там адна называецца просты, які гэта спрошчаная рэжым, які дазваляе паменшыць колькасць пунктаў меню ўздоўж верхняй, і гэтая так званая менш камфортна рэжым. А тут яшчэ і CS50 Статыстыка, што, можа быць, толькі злёгку няправільна названыя. Таму што гэта тое, што паказвае інфармацыю аб асноўнай працоўнай вобласці. Гэта ўводзіць гэтыя кнопкі па верхнім правым куце. Акрамя таго, уводзіць пункт меню Into The Пункт акно, у меню Window прама тут, CS50 IDE інфармацыя. І гэта адказнасць за асобніка гэты дыялог, што мы бачылі тут, з усёй інфармацыяй, што мы знаходзімся прывыклі бачыць у CS50 IDE Працоўная прастора. ДОБРА. Так што на самай справе яшчэ адзін убудова што мы распрацавалі таксама. І ёсць некалькі іншых, якія мы таксама публічна не выпусцілі. Але адзін з іх з'яўляецца ў цэлым убудова, які дазваляе GDB, каб функцыянаваць. Такім чынам, адзін з аспектаў Cloud 9 з'яўляецца тое, што яны забяспечылі ўжо гэта графічны інтэрфейс для рэалізацыі адладчыка. І адзін з убудоў, якія мы стварылі ў асноўным гаплікі GDB з гэтым GUI разраднай версіі адладчыка. І адказнасць за пасрэдніцтва ўсе запытаў, якія карыстальнік можа мець, паміж пераступаючы праз або стварэнне кропак супыну або што-небудзь ўздоўж гэтых ліній, пераводу, што на каманды, якія GDB можа зразумець, выдачы гэтых каманд у GDB. І як толькі GDB выдае адказ, то мы інтэрпрэтуючы, што і абнавіць GUI па меры неабходнасці. Гэта, верагодна, адзін з тым складаней з убудоў, так што замест таго, што мы збіраюся засяродзіцца на сёння, на самай справе даные убудова, і мы пагаворым крыху пра простых, а таксама. Так я ўжо казаў, і я сапраўды хачу зрабіць вельмі, вельмі ясна, што зноў, усё гэта, што мы бачым тут, па сутнасці якія працуюць на боку кліента. Мы бачым акно тэрмінала ніжэй, і гэта, вядома, калі мы набяром у камандах ў што, які будзе выдадзены, то да базавай напрыклад. Сапраўды гэтак жа, калі мы адкрыем новы файл і ўвесці некаторыя рэчы ў ёй і захаваць яго, што файл будзе захаваны на асноўны асобнік. Але сам рэдактар, гэта Сам тэрмінал акно, гэта ўсё рэалізуецца ў JavaScript і ўсё убудова што мы можам ўзаемадзейнічаць, і, такім чынам, змяніць. Там шмат пашыральнасці тут. Я рэкамендую зірнуць на Cloud 9 у кошт GitHub каб убачыць велізарная колькасць убудовы, якія даступныя, і наколькі добра напісана шмат кода для пашыральнасці. Так ёсць нешта што я хачу сказаць, Пра гэта, а таксама, што што ёсць шмат of-- ёсць шмат функцыянальных магчымасцяў, якія гэта пры ўмове, у наладах акно, якое мы бачылі толькі спасылаўся толькі некалькі хвілін таму. Адна з рэчаў, якія мы можам зрабіць, як IDE Распрацоўшчыкі, або, як Cloud 9 распрацоўшчыкаў, з'яўляецца на самой справе ўводзяць некаторыя Прывілеяваныя панэлі наша. Такім чынам, просты рэжым, ці менш зручны выгляд, а таксама інфармацыю IDE, або статыстыка убудова, мае кожны некаторы перавагу панэлі, якія дазваляюць нам змяніць паводзіны кожнага з іх. Вы заўважыце, што, калі я пайду да Перавагі і перайсці да налад карыстальніка, ёсць укладка CS50, адзін што кажа інфармацыі IDE. І я магу змяніць Інфармацыя частатой абнаўлення. Эфектыўна, што адбываецца ў статыстыцы убудова з'яўляецца тое, што кожныя п-секунд, дзе N-секунд вызначаецца гэтага перавагі Панэль, інфармацыя будзе вушы ад асноўнай Напрыклад, накіроўваецца Вярнуцца да баку кліента, убудова затым інтэрпрэтацыі інфармацыі ад асноўнай Напрыклад і абнаўленне GUI па меры неабходнасці. Мы бачым, што цяпер гэта ўсталяваць 30 секунд, і гэта па змаўчанні. Але я магу дакладна змяніць як хутка гэта адбудзецца толькі шляхам мадыфікацыі гэтага значэння. Цяпер адзін з самых цікавых рэчаў што гэта перавагу панэль, графічны інтэрфейс, на самай справе проста версія графічнага інтэрфейсу аб многіх базавых налад якія прадстаўлены ў фармаце JSON. Так што, калі я іду, напрыклад, пад Меню CS50 IDE, або меню Воблака 9, у залежнасці ад версію вы глядзіце, і перайсці да адной з іх settings-- ў дадзеным выпадку, праект settings-- Паводле праекта ў гэтым выпадку распаўсюджваецца на ўсе налады для гэтага адной працоўнай вобласці. У той час як прыстасаваныя наладкі прымяняюцца каб усе працоўныя вобласці што вы маглі б мець у вашай ўліковага запісу. Гэтак жа, як у бок тут, каб быць вельмі ясным, ёсць падзел паміж два, таму што, хоць па змаўчанні мы адзін працоўная прастора, што гэта CS50 IDE, калі вы былі націснуць на ваш маленькі аватар тут і перайсці да прыборнай панэлі, Вы выявіце, што вы можаце фактычна стварыць дадатковыя працоўныя, а таксама. Вы можаце ўбачыць тут, што ў мяне ёсць інтэграванае асяроддзе 50 працоўнае месца, а таксама для мэтаў гэтага Семінар, працоўная прастора называецца працоўная вобласць, што прама тут. Так ці інакш, у мяне ёсць розныя перавагі. Кожны з іх можа мець асобных праектаў, перавагі але карыстацкія перавагі з'яўляюцца размеркаваны паміж усімі маімі рабочымі прасторамі. Дарэчы, гэта Таксама вельмі зручна, калі вам хочаце стварыць працоўную прастору з розныя варыянты налады. І гэта вельмі зручна, каб стварыць новае працоўнае прастору. І выбраць адзін, які можа быць Папярэдне сканфігураваныя ў нейкі іншы спосаб, магчыма, для PHP у прыватнасці, або Django канкрэтна. Ці нават проста звычай. CS50 працоўнае Шаблон з'яўляецца той, які мы выкарыстоўваць, што аўтаматычна ўсталёўвае Абнаўленне 50 і ўсе параметры што ў нас там, у тым ліку ўсе убудовы, якія мы маем для CS50 IDE. ДОБРА. Але давайце вернемся да гэтага. Такім чынам, яшчэ раз, ёсць праекты налады і тыя з іх, што мы глядзім на тут. І звярніце ўвагу, што куча налад, Многія з іх адпавядае выбару панэлі, але не ўсе з іх. Але мы бачым, што тут, у this-- аб няма, я паклаў яго ў наладах карыстальніка? Можа быць, я паклаў яго ў наладах. І гэта, тут мы ідзем. У наладах карыстальніка, мы можам бачыць, што ў нас ёсць раздзел CS50, і гэта пішацца каб гэтыя Воблака 9 убудоў што мы рэалізавалі. Там у просты для адпавядаюць той простай убудова, і той, які Статыстыка адпавядае той графічны інтэрфейс версія панэлі налад. Частата абнаўлення, у гэтым так, усталяваны ў 20 секунд. Гэта ўсё, спадзяюся, то Пачатак некаторай інфармацыі што мы сапраўды ўбачыць у трохі трохі больш дэталяў, на імгненне. ДОБРА. Так што давайце казаць, што мы хочам, каб на самай справе прыступіць да яе. Мы разумеем, што ўсе рэчы што адбываецца на баку кліента робіцца на самай справе на браўзэр, які азначае, што любыя убудовы, якія я пішу будуць напісаны з браўзэрам на ўвазе. А калі я на самой справе хачу рабіць небудзь на працоўнай вобласці, Я, магчыма, прыйдзецца пачаць свайго роду сувязі паміж браўзэрам і працоўная прастора, каб пераканацца, што, фактычна выконваецца. Але, дапусцім, што ў цяперашні час Я хачу, каб дабрацца да яго а на самай справе стварыць свой першы убудова. Ну, так, што вы маглі б зрабіць гэта на самай справе даволі лёгка. Гэта дало ў Cloud 9 SDK, Але гэта ўзяць ваш імя існуючага працоўная вобласць, што гэта адрас, што ў вас ёсць у верхняй частцы Ваш бар, і дадаць да яго наступны. ? Sdk = 1 & Дебуб = 2. Цяпер тое, што гэта будзе для таго, каб гэта што SDK = 1 будзе на самой справе ўсталяваць SDK рэжым праўда, што дазволіць пару дадатковых рэчаў. І адладкі = 2 дазволіць паведамленняў пра памылкі каб быць крыху больш шматслоўным. І таму, калі вы выхоўваць JavaScript Кансоль на ўкладцы распрацоўшчыкаў Chrome, Вы на самой справе будзе ў стане ўбачыць значна больш інфармацыі, чым вы б інакш. Так што я рэкамендую ўключаць абодва гэтыя у той жа самы час, таму што гэта сапраўды Карысна мець усё гэта дадатковая інфармацыя. Важна адзначыць, аднак, што ўключэнне адладкі у значэнне 2 азначае, што гэта вельмі шматслоўны, і гэта на самай справе будзе некалькі прыкметна запаволіць Ваш IDE, асабліва пры загрузцы ці калі рабіць рабіць цяжкія задачы. Так што майце гэта на ўвазе. Гэта карысна для развіцця, але вы магчыма, не хочуць, каб ён увесь час. Такім чынам, давайце на самай справе гэта зрабіць. Але ў гэтым выпадку, я на самой справе ёсць ўжо стварылі працоўную вобласць з гэтага. Такім чынам, давайце паглядзім, SDK = 1 & 2 = адладкі. З парай убудоў спадзяюся, ужо ўсталяваны. Добра. Так што цяпер я ўключыў SDK адладкі Рэжым, звярніце ўвагу, што мы знаходзімся ў рэжыме адладкі, такім чынам, мы можам паглядзець на сродкі распрацоўкі, каб убачыць любыя памылкі, якія я зраблю закадравы. Мы можам бачыць, што ёсць куча памылак тут. Зараз гэта на самай справе даволі агульнымі для Воблака 9 мець пару памылак, і я б не турбавацца не пра іх, пакуль вы ўбачыць нешта, што можа быць спецыфічнымі для плагіна што вам здарыцца быць стварэнне. Дык вось, да прыкладу, мы атрымліваем пару 404s-- не знойдзены. Мы бачым, што мы не ў стане загрузіць некаторыя Інфармацыя ад асноўнага асобніка Сам. І ёсць куча дадатковага інфармацыя, але большасць з гэтага мы на самай справе адбываецца, каб ігнараваць цяпер. Таму што гэта вельмі агульныя для працоўнай вобласці мець толькі пару памылак. ДОБРА. Я збіраюся рухацца гэта з шлях і вярнуцца сюды. А цяпер просты спосаб, сімпатычны рэч аб тым, гэты распрацоўшчык Рэжым уключаны, што яна дазваляе мне лёгка стварыць новы убудова. Так у той час як раней, чым я на самой справе не ёсць гэта новая опцыя убудова даступны, якія мы можам убачыць, калі я вярнуся ў мой не рэжым распрацоўшчык тут, няма новы убудова. Пры ўключэнні рэжыму SDK, я ёсць новы убудова даступны ў і я магу лёгка стварыць. У гэтым выпадку, ёсць некалькі розных варыянтаў, простыя, пусты убудова, поўны убудова, ўстаноўкі, Воблака 9 расслаенне. Давайце проста абярэм пусты убудова зараз так што мы можам бачыць вельмі простая версія аднаго. Зараз звернеце ўвагу, што ўздоўж левы бок, што там цяпер то пад Абранага, які пералічвае некалькі убудоў што ў цяперашні час даступныя для мяне. Калі я пашырацца, што мы будзем змогуць убачыць іх. Цяпер я хачу, каб вы заўважылі што-то тут, што з'яўляецца тое, што гэта не на самай справе змяшчаецца у каталогу працоўнай прасторы на мой, якая ляжыць у аснове Ubuntu, напрыклад, але ён змяшчаецца на цвёрдым дыску. А дзе гэта знаходзіцца, таму што Гэта вельмі карысна ведаць, асабліва калі вы збіраецеся рабіць што-небудзь з Git, дзе гэта знаходзіцца па-за у тэчцы .c9, / ўбудовы. Так што, калі я іду туды, мы бачым, што ў цяперашні час спіс убудоў, якія тут супадае са спісам убудоў, якія я убачыў на левай баку майго працоўнага прасторы. Зараз па змаўчанні, і гэта дзіўна, па змаўчанні, калі я ствараю Новы убудова ў працоўнай вобласці, ён стварае гэты убудова, што па па змаўчанні мае імя падкрэслення. Наогул, што можа выклікаць некаторыя праблемы. Так вельмі наступным кроку што я, як правіла, выконваюць проста выдаліць, што прыватнасці убудова і пакінуць толькі просты убудова, што было першапачаткова, plugin.simple. І гэта толькі адзін, што ёсць. ДОБРА. Такім чынам, што ж гэта на самай справе выглядае? Ну, гэта, зноў жа, пакет Java-script які ўключае ў сябе некалькі файлаў, у тым ліку 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 Дыялог Семінар 1-- таму што ў нас два them--, і мы збіраемся ўводзіць яго ў меню Window. І калі мы націсніце на яе, мы збіраецца адкрыць дыялог, які паказвае нам некаторыя вельмі асноўную інфармацыю. У гэтым выпадку, проста прывітанне свет. Так што гэта вельмі просты прывітанне свет дыялог што мы можам рэалізаваць як убудова ў Cloud 9. Такім чынам, давайце паглядзім, як гэта выглядае на самай справе. Мы будзем крок праз яго, проста адносна хутка, таму мы можна паглядзець на наступным модулі, а таксама. Звярніце ўвагу, што тут мы спажываючы розныя убудоў. Мы спажываючы дыялог убудова, каманды, меню і інтэрфейс. Падобна на тое, я на самой справе маю на спажываючы дыялог у два разы, так што я магу выдаліць гэта. І заўважце, што на шляху што я іх падлучэння, Гэта свайго роду метададзеныя, распавядае убудова сістэма, якія патрабаванні на самай справе трэба для гэтага убудова для загрузкі. Важна таксама адзначыць, што парадак, убудовы загружаюцца не гарантуецца. Але тое, што гарантуецца, што, калі я пазначыць некаторыя убудова ў якасці патрабаванні, што ўбудова будзе загружаны перад гэтым загружаны. Дык гэта значыць, што, калі ваш плягін патрабуе на некаторых функцыянальных магчымасцяў што-то яшчэ ў IDE, вы павінны быць упэўнены, што вашыя падключаюцца спажывае што ўбудова, каб залежнасці ўпэўненыя, каб стварыць свой убудова, або стварыць асобнік убудова, толькі пасля гэтага існуючыя рамкі існуе. Дык вось я згадаў метададзеныя мэнэджэра плагіна, тыя, якія я збіраюся, каб спажываць. А ў галоўнай функцыі тут, Я збіраюся затым падключыце мой код на гэтыя імпартныя убудоў. Так што я проста хачу, каб стварыць некалькі зменных, якія супадаюць з імёнамі кожнага з тых, хто так што я магу вельмі хутка спасылацца на іх на працягу ўсёй маёй кода. Прычына, чаму я імпартаваць дыялог таму што я хачу, каб мой убудова выступаць у якасці дыялогу плагіна. І тое, што я ў стане каб зрабіць гэта, каб, вядома, падключыць код для дыялогу убудова ад яго імпарту а затым, паказаўшы на стварэнне новай зменнай дыялогу і падключыць яго да што імпартнае убудова. А потым, вызначыўшы мой убудова ў якасці новага дыялогу. Такім чынам, у ініцыялізацыі, я хачу, каб вызначыць свой убудова. І гэтая пераменная называецца убудова вы ўбачыце выкарыстоўваецца толькі звычайна па ўсёй Cloud 9 убудоў. Я збіраюся стварыць асобнік новага дыялог з некаторымі атрыбутамі, даць яму пэўны імя, кажуць, што гэта магчыма для карыстальнікаў, каб закрыць яго. Тое, што гэта пакажу трохі х у верхні правы кут, ці маленькая кнопка ў правым ніжнім куце. Будзь ці ня я магу выбраць тэкст з гэта тое, што назва гэтага дыялогу б, і гэтак далей. Зараз гэта проста вызначае дыялог, але гэта яшчэ не паказаць яго. Я на самой справе трэба вызначаць Дзеянне для яго, каб быць паказана на малюнку. І зноў, я заклікаю вас, каб зірнуць на Воблака 9 SDK, таму што ёсць разнастайнасць дыялогі і яны сапраўды добра дакументаваны. Вы можаце ўбачыць розныя тыпы што ёсць, і выкарыстоўваць іх у якой бы убудова вы маеце на ўвазе. Цяпер там будзе раздзел нагрузкі і гэтая нагрузка Функцыя як вы памятаеце гэта выкарыстоўваецца плагіна жыццёвага цыклу на самай справе ўсё асобнікі і атрымаць усё гатовае, каб пайсці. Цяпер, калі гэта убудова нагрузкі, я не хачу, каб гэта неадкладна паказаць дыялог, таму што гэты убудова будзе загрузіць разам з астатняй часткай IDE. І калі я загрузіць IDE, я не хачу дыялог, каб паказаць аўтаматычна. Я хачу, каб паказаць, калі я націскаю на толькі пункт меню ў маім меню Window пункт што я буду дадаваць да яго на імгненне. Так што два розных дзеянні вось што павінна было здарыцца. Я павінен стварыць каманду і каманда будзе адказваць за фактычна паказваючы дыялог па Воблака 9 IDE. А то ў мяне для падлучэння, я павінны стварыць новае меню акна Пункт, які працуе, што каманду. Так што, калі я націскаю на гэта акно Пункт меню, што каманда затым запусціць і, такім чынам, мой дыялог, то паказана. І так гэта на самай справе даволі добры спосаб думаць пра гэта. Таму што спачатку я магу стварыць каманду чыё імя CS50 семінар Дыялог 1, што забяспечвае некаторыя агульны кантэкст для яго. І важна трохі тут, каб заўважыць EXEC атрыбут, які пералічвае функцыі, якая будзе выклікацца ў маім плагіна, калі гэтая каманда выконваецца. Так гэтая каманда накшталт a-- гэта проста адвольнае Воблака 9 Каманда, якая даступная на любы Воблака 9 плагіна. Але фактычная функцыя, што гэта буду называць, калі гэтая каманда выконваецца функцыя шоў дыялог ў маім plugin.js файла. І мы можаце ўбачыць гэтыя убудовы і спіс каманд, якія даступныя для нас у Перавагі, вылучыце ўвесь шлях down-- давайце паглядзім, на самай справе мы бачым гэта цяпер? Plug-менеджэр, няма, я думаю, што гэта i-- безумоўна, дзе-то тут. Ну, ёсць спіс каманд дзе-небудзь, але я павінен мець, Я забыўся, дзе яна ёсць. Так добра, мы будзем рухацца далей. Добра. Таму ў нас ёсць спіс каманд якія даступныя для нас, і гэтыя каманды гэта проста адвольнае Воблака 9 Каманды, якія працуюць пэўны код. Так што майце гэта на ўвазе, што мы збіраемся запусціць дыялог шоў функцыянаваць на імгненне. Цяпер, калі я на самой справе хачу, каб дадаць меню Пункт, я магу дадаць, што па шляху элемент, і проста паказаць, дзе менавіта я хачу гэта будзе, дыялогавае акно, / CS50 Семінар 1. І ў той момант, я хачу каб стварыць новы элемент, які збіраецца запусціць каманду, Семінар CS50 Дыялог 1. Звярніце ўвагу, што, паўтаруся, гэта воблака 9 каманд я стварыў ледзь вышэй. Цяпер я таксама хачу, каб стварыць маленькі дзельнік, і таму я магу зрабіць тое ж самае У наступнай радку. Цяпер вы, напэўна, заўважылі, што, як частка вызначэння гэтага пункта меню, ёсць шэраг звязаныя з ім, якія на самай справе кажа, дзе менавіта Я хачу, каб пункт меню, каб быць размешчаны ў спісе меню, Але вы, напэўна, заўважылі што я на самой справе не бачу ніякіх лікаў з гэтыя меню, па змаўчанні. Так што гэта крыху схаваны рэч, якая мы можам зрабіць, невялікая змена ў нашым URL. Такім чынам, у дадатак да SDK = 1 & адладкі = 2, Я ўсталяваць меню 1-- і, спадзяюся, гэта меню не меню. О, гэта меню = 1. Пачакай. І што мы ўбачым на перагрузку, што IDE з'яўляецца тое, што я ўсё яшчэ ў рэжыме адладкі, але зараз ёсць нумары звязаны з усімі меню. І гэта кажа вам, менавіта тое, што колькасць калі вы спрабуеце, каб надаць Што ў любым пункце гэтай сістэмы меню. Такім чынам, у меню Window, я магу бачыць, што пункт 45 супрацоўнічаць і пункт 38 перад яго ўстаноўкі. Так што, калі я хачу, каб надаць пункт паміж гэтымі двума, Я б проста выбраць нумар паміж гэтых двух пунктаў. Так я выбраў 41 і ўставіў сваю семінар Дыялог пункт 1 меню ў гэтым месцы. І вось чаму гэты лік тут, якое з'яўляецца нумар 41. Гэта месца таго, што Пункт меню ў меню Воблака 9. Зараз сапраўды гэтак жа, я хацеў стварыць падзельнік і дадаць яго так, што ёсць добрая падзел паміж кожнай з гэтых меню прадметы. Так што я дадаў, што на месцы 43. Так далёка, так добра, я спадзяюся? Так што цяпер давайце паглядзім на самай справе удзельная код ў дыялогу шоў што на самой справе адказвае для адкрыцця гэтага дыялогавага акна. Пракрутка ўніз, я бачу, што я хачу, каб гэтая функцыя Дыялог, і гэта надзвычай проста. Я збіраюся запусціць шоў Метад на зменнай плагіна. І памятайце, што мы вызначылі гэта убудова зменнай вышэй, у якасці дыялогу. Так бар убудова, у гэтым выпадку, гэта Аб'ект, які мы вызначылі ўнутры. І гэта будзе новы дыялог якая змяшчаецца ў дадзеным ўбудове. І так мы на самай справе спасылаюцца гэта убудова зменнай ў многіх месцах у тыповым Cloud 9 асяроддзе распрацоўкі. Мы ўбачым яго тут. Звярніце ўвагу, што, як мы пракруціць ўніз, ёсць дадатковыя жыццёвыя цыклы. Так заўважыць, што гэтыя Адказаць да падзей, якія стралялі гэтым аб'ектам, гэты аб'ект дыялогу. Па змаўчанні, ёсць загружаць і выгружаць, што даступныя для ўсіх Воблака 9 убудоў. Але ў выпадку гэты дыялог, ёсць яшчэ адна падзея, якое можа агонь, а называецца Намалюйце, які спрацоўвае, калі што збіраецца быць звернута на экране, у першую чаргу дыялогу паказвае. Таму, калі на самай справе будзе паказаны, там збіраецца забяспечыць нас некаторыя HTML. І, выкарыстоўваючы толькі стандартны Практыкі HTML можам мы прыўнесці некаторыя вельмі просты інфармацыі, наш прывітанне свет, у гэтым дыялогу. Так што, калі мы затым пракруціць ўверх, мы можам см затым шэсце рэчаў што гэта адбываецца. Па-першае, мы стварылі каманду Cloud 9 якія пры выкананні Воблака 9, збіраецца звольніць гэтую функцыю. Гэта збіраецца запусціць гэтую функцыю называецца шоў дыялог, што я напісаў у сваім кодзе. Я стварыў элемент меню і прыкладаецца да яго ў той жа каманднай што калі гэты пункт будзе націснута ў меню, што каманда будзе затым запусціць і што функцыя а затым запусціць. А ўнутры функцыі я проста хачу, каб выклікаць the-- Я проста хачу, каб выканаць шоў Метад гэтага плагіна, які ў будзе першага званка метад нічыя, і збіраецца страляць гэты метад ўніз ніжэй, звярнуць апрацоўшчык падзеі, у нашым жыццёвым цыкле. І тады гэта будзе на самой справе паказаць дыялог. Там таксама метад схаваць, так што калі я патрэбна магчымасць схаваць мой дыялог, я магу зрабіць тое ж самае. Так што ў значнай ступені гэта каб атрымаць усё гэта працуе. Звярніце ўвагу, што, калі мы пракруціць ўніз дадаткова ёсць замарожванне грамадскага API. Гэта ў асноўным толькі кажа, што я хачу, каб гэтыя метады да эфектыўна быць адкрытымі, але не overwriteable па-за кантэкстам гэтага плагіна. А ўнізе, на самым дне, з'яўляецца, бадай, апошняе, што што мы сапраўды павінны плаціць шмат увагі тут, што з'яўляецца тое, што мы збіраемся зарэгістраваць нашу убудова з імем С9 семінар 1, і аб'ект плагіна. Які, як вы памятаеце, з'яўляецца што ўбудова ў гэтым ўбудове Аб'ект, які мы былі вызначэнні па ўсёй паўнаце гэтай крыніцы Код. І С9 семінар 1 з'яўляецца Радок, мы абяцалі забяспечыць у верхняй гэтага вызначэння. ДОБРА. Такім чынам, давайце нарошчваць яго крыху і паглядзець, калі мы можам зрабіць нешта трохі больш цікавым. Зараз гэта толькі так выдатна. Я маю на ўвазе, гэта, на самой справе гэта даволі выдатна, што ў так некалькі радкоў кода, мы можам змяніць існуючую IDE і дадаць існуючы элемент меню або дадаць новы пункт меню, дадаць каманду і паказаць дыялог, і проста куча функцыянальныя магчымасці, якія ёсць. Гэта сапраўды даволі вялікі. Але гэта не робіць шмат, таму што ён не можа мець зносіны з якая ляжыць у аснове Ubuntu асобніка. Так што давайце казаць, што я на самай справе хочаце, каб высветліць, некаторая інфармацыя аб якія ляжаць у аснове асобніка Ubuntu, як статыстыка убудова робіць. Такім чынам, давайце зірнем на трохі больш інфармацыі аб тым, як статыстыка убудова ў працах. І на самай справе, ён вельмі падобны на гэта. Вы, магчыма, памятаеце, што ёсць дыялог. Вы, магчыма, памятаеце, што ёсць некаторая інфармацыя, што гэта Паказана, проста па меню нароўні зверху, які, мы спадзяемся вы зараз атрыманне густ, як мы рэалізавалі гэта, проста уставіўшы пункты меню на канкрэтных кропкі і стварэння асобніка дыялог і адлюстравання, што дыялог. Але мы яшчэ не паказалі, Вы, як мы можам падключыць яго ў каманду ў Асноўны асобнік Ubuntu. Такім чынам, давайце зірнем на тое plugin.2, які робіць менавіта гэта. Мы збіраемся, каб адкрыць plugin.js, што код для гэтага. Але ў меню Window, калі я націскаю на дыялог 2, мы бачым, што ён кажа, гэта замест гэтага, прывітанне CS50, які ня глядзець усё, што павабна, ці не так? Акрамя гэтага, гэта глядзець. Дазвольце мне нешта змяніць тут. Я збіраюся пайсці ў мой працоўнае месца і змяненне семінар каб нешта сказаць, як Hello, Дана. Я збіраюся закрыць яго і захаваць яго. А цяпер я іду зноў запусціць мой пункт меню дыялогу. І заўважце, што яна мае у цяперашні час змянілася, што ён кажа. Прывітанне, Дэн. Я, здаецца, зрабілі што-то ўніз тут у асноўны Напрыклад Ubuntu не будучы маніпуляваць любы код, які зноў працуе выключна на баку кліента. Так што, відавочна, нейкая сувязі, тут адбываецца. Цяпер гэта, дзе шмат з магутнасць Cloud 9 SDK прыходзіць, з'яўляецца тое, што ў гэтым plugin.2, мы можам на самай справе прычына заклік да здарыцца з Асноўны асобнік, і запусціць некаторую адвольную каманду. Такім чынам, у гэтым выпадку, у мяне ёсць на самай справе стварыў вельмі просты скрыпт баш у маёй працоўнай называецца семінар. Такім чынам, дазвольце мне адкрыць, што да. І мы бачым, што гэта выглядае так. Гэта проста вельмі просты Bash Сцэнар, адзінай мэтай у жыцці будзе паўтарыць з гэтага тэксту, Прывітанне, Дэн. Або да яго, ён сказаў Прывітанне, CS50. І гэта ўсё, што ён збіраецца рабіць. Таму што цяпер гэта Каманда, я магу запусціць. Я магу фактычна запусціць яго сюды. Мы бачым, што ён на самай справе гэта проста каманда, што я працаваць натуральным чынам. Я магу спытаць майго убудова, каб выканаць дадзенае Каманда на асноўнай рабочай і прааналізаваць інфармацыю, які быў вернуты з яго, і зрабіць што-то з ім, і змяняць мой убудова і паводзіны, што я ў маім плагіна ў якасці выніку. ДОБРА. Такім чынам, давайце паглядзім, як гэта адбываецца. Мы бачылі гэта вельмі проста Семінар партыя скрыпт, які я [Неразборліва], што ён можа рэальна працаваць. А цяпер давайце паглядзім, мадыфікацыі якія неабходныя, каб звязаць гэта разам у дыялогавым акне, і запусціць яго. Дык вось, мы збіраемся зрабіць даволі тое ж самае, што, як мы бачылі раней. Але звярніце ўвагу, што сярод рэчы, якія я спажываюцца now-- у дадатак да дыялогу, які зноў я, здараецца, зрабілі ў два разы, які ня necessary-- ў дадатак да дыялогу і каманд і меню убудоў, якія былі неабходна ў першым для мяне вызначыць новую каманду і ўвесці элемент у меню, У мяне таксама ёсць гэты ргос плагіна. І гэта працэдура убудова дазваляе нам маніпуляваць працэсамі ад асноўнага асобніка. Я падключыў яго пасля таго як я сказаў, што мой убудова патрабуе. Я тады звязаць яго з кодам, як мы бачылі ў галоўнай функцыі. Зноў жа, я збіраюся ініцыялізаваць мой дыялог. І калі мы будзем рухацца ўніз зараз, мы можна ўбачыць, як гэта адрозніваецца. Функцыя загрузкі тое ж самае, так што гэта проста збіраемся стварыць каманду і стварыць пункт меню і падключыць што пункт меню гэтай каманды. Але калі мы цяпер пракруціць ўніз, каб паказаць дыялог, мы можам пачаць бачыць, дзе адрозненні ўзнікаюць. У нас ёсць функцыя паказаць дыялог, які толькі збіраецца паказаць дыялог. Але, калі я паказваю гэты дыялог, і калі метад шоў называецца, гэта пажары функцыю выцяжкі. І я збіраюся пакажыце некаторы змесціва ўнутры, што. Так што я проста хачу, каб стварыць DIV, забяспечыць яму некаторыя асноўны тэкст, Прывітанне, свет. Але звярніце ўвагу, што тут я збіраецца прыкласці да яго ідэнтыфікатар. І ўжо на наступны лінія я збіраюся каб знайсці, што з дапамогай ID JavaScript, і захоўваць гэты аб'ект у іншай зменнай што я проста хачу, каб выклікаць змест. Так што цяпер, калі ў мяне ёсць Змест, усё што мне трэба зрабіць проста змяніць ўнутраную HTML гэтага аб'екта. І дыялог HTML будзе Затым быць зменены таксама. Таму, калі гэты убудова з'яўляецца Затым паказана, што можа адбыцца і гэта новае падзея што з'яўляецца новым для гэтага плагіна, але бывае ў кожным плагіна з дыялог, калі гэта цяпер паказана, Я збіраюся назваць Функцыя называецца выбаркі інфармацыі. І гэтая функцыя мяса гэтым тут. Я збіраюся выкарыстоўваць гэтую ргос убудова, што мы апісалі раней, што, дарэчы, на самай справе проста бібліятэка Node.js што Воблака 9 з дапамогай тут. Такім чынам, вы можаце фактычна паглядзець пра тое, як гэта працуе, калі вы ісці ў Node.js дакументацыя і паглядзець выкананага файла Спосаб працэсаў там. Я збіраюся запусціць гэтую канкрэтную Каманда, хатні Ubuntu працоўнае Семінар, які з'яўляецца тое, што той жа самы, што тая ж каманда, што я стварыў раней. Прадставіць яму бягучай працоўны каталог, проста для ультра бяспекі ў тэрмінах кантэкст, дзе гэта працуе. І як толькі гэта было запоўненыя і вернуты, Я збіраюся працаваць у гэтым Функцыя называецца выхад разбору. ДОБРА. Такім чынам, гэта тое збіраецца выконваць каманда на мясцовым, ці, дакладней, аддалены асобнік Ubuntu. Калі я вярнуся некаторыя Інфармацыя, я тады буду называць асобную функцыю называецца выхад разбору, што ёсць гэтая подпіс тут, ERR, стандартны вывад, STDERR, і выконваць некаторыя вылічэнні на гэтым. Так што, калі я атрымаў паведамленне пра памылку некаторага віду наогул, Я на самой справе праверыць, калі Памылка на самай справе мае некаторыя дадзеныя. А калі так, то я буду змяняць ўнутраны HTML гэтага аб'екта кантэнту, які гэта вы памятаеце, мы падлучаны да дыялогу у instantiattion таго Дыялог, або на першым чарцяжы з гэтага дыялогу. Я збіраюся проста сказаць, што некаторыя памылкі не адбылося. Цяпер гэта занадта спрошчана. Значэнне памылкі будзе, як правіла, змяшчае тое, што было карысна, магчыма, нумар памылкі і Памылка ад самога сцэнара. Або, калі сцэнар пісаў то стандартная памылка, што дадзеныя будуць запаўняецца у гэтым параметры, а таксама. І я мог бы быць трохі больш асцярожныя, што памылкі Я на самой справе паказаць людзям. Але гэта спрошчаны прыклад дастаткова добра цяпер па меншай меры, паглядзець, як усё гэта функцыі. У адваротным выпадку, калі існуе няма памылкі, то я не буду проста будзе прадастаўляць сыравіну Выхад гэтай функцыі ва ўнутраную HTML гэтага кантэнту элемент, а затым аднавіць плягін і паказаць яго тут. І гэта ў значнай ступені ўсё, што Неабходна, каб атрымаць гэта, каб бегчы. І так давайце думаць пра тое як гэта працуе, ў цэлым. Калі я ўпершыню загружаны гэты убудова, як у першы убудова, Я збіраюся дадаць каманду Вось даступна ні да чаго, каб якія-небудзь убудовы у Cloud 9, называецца семінар CS50 Дыялог 2, чыя адказнасць будзе запускаць гэтае шоў дыялог, які вы памятаеце, будзе на самой справе паказаць дыялог што я прасіў ніжэй. Тады я дадам, што Каманда у меню акна так што ў мяне ёсць доступ да гэтага. І калі што дыялог прапануецца паказана, Я прынясу некаторую інфармацыю ад базавага актыву асобнік Ubuntu з дапамогай каманды выкананага файла. Выбачайце. Як толькі вяртаецца, і я атрымліваю некаторыя Інфармацыя, затым на баку кліента зноў, я буду ў стане разабраць выхад гэтай каманды і абнавіць ўнутранае HTML-элементаў што мы злучаныя з раней. І з гэтым, мы затым гэта цалкам функцыянальны убудова што дазваляе мне для атрымання інфармацыі з гэтага адвольнага скрыпту што мы стварылі на наша асноўная асобнік. Але, зноў жа, гэта сапраўды Важна і сапраўды ключ вылучыць, дзе кожны з гэтых рэчаў адбываецца, што мы маем усё гэта баку кліента код, які быў запушчаны ў браўзэры, і пакуль не маюць доступу да асноўнай файлавай сістэме пакуль мы на самай справе не запусціць некаторыя з іх Каманды, якія прадугледжаны ў воблаку 9 SDK, як яму дапамагчы, і некаторыя астатнія якія дазваляюць нам чытаць некаторыя дадзеныя, ці чытаць некаторыя файлы, калі нам трэба зрабіць што-небудзь у гэтым родзе. Зараз гэта некалькі просты прыклад. Ёсць іншыя рэчы, якія мы будзе, магчыма, хочаце, каб зрабіць таксама. Напрыклад, магчыма, мы на самай справе хочаце захаваць інфармацыю з перавагамі. Або, магчыма, мы хочам, каб дадаць новы панэлі налад або што-то ўздоўж гэтых ліній. Тады гэта тое, што вам можа зірнуць на Воблака 9 SDK каб атрымаць больш падрабязную інфармацыю пра. Але гэта на самай справе дастаткова, каб пачаць працу. Так проста быць трохі больш канкрэтнымі пра тое, як некаторыя з гэтых рэчаў Функцыя, я хачу, каб паказаць, яшчэ адзін прыклад, які толькі некаторыя кода з статыстыкі 50 плагіна. І гэты код у асноўным на аснове гэтых прыкладаў што вы на самой справе бачылі, але мае яшчэ некалькі гарантыі і мае больш некаторую складанасць для таго, для дасягнення некаторых дадатковых рэчаў што мы хочам дасягнуць. Напрыклад, калі я хачу быць магчымасць захаваць некаторыя параметры, то мне трэба, каб мець доступ у паводле плагіна, і кожны раз, калі я хачу чытаць некаторыя налады, Я магу, напрыклад, прымацаваць да розных Падзеі ў наладах ўбудовы. Такім чынам, кожны раз, калі налады чырвоны, Напрыклад, у маім ўласным убудова, калі я збіраюся прачытаць некаторыя налады з захаванага захоўвання перавагі карыстальніка, то я магу ўсталяваць значэнні па змаўчанні для пэўнага месца, для канкрэтнай налады, у тым, што JSON варыянты файл стылю, што мы захоўваюцца раней, што мы бачылі раней. І калі я буду пісаць некаторыя налады да яго, тады я can-- ці як толькі мы выяўляем што параметры былі напісаны , Мэтай якіх з-за, напрыклад, тыя, налады былі змененыя карыстальнікам альбо непасрэдна ў іх налады файл або перавагу панэлі змяніў налады падаць непасрэдна, то Я магу на самой справе абнавіць некаторыя з кода або абнавіць паводзіны майго ўбудовы на аснове гэтых змяненняў, якія маюць адбылося на файл налад, а таксама. Але на самой справе, астатняе даволі шмат гэта, што вы ўжо бачылі. Мы дадаем некаторыя, магчыма, тое, што новага. Такім чынам, мы дадамо файл налад, ці, хутчэй, перавагу панэлі, у акне налад, які зноў Вы можаце даведацца больш інфармацыі у Cloud 9 SDK прачытаць мяне. Але ўсё астатняе даволі шмат, вельмі падобна на тое, што мы бачылі раней, проста з некаторай дадатковай праверкі памылак і некаторыя дадатковыя меры абароны і некаторыя дадатковыя функцыі каб паказаць усе розныя рэчы, якія мы бачылі. Калі ў вас ёсць на самой справе не бачыў яшчэ, вы маглі б быць цікава тое, што ў аснове Каманда ў акне Статыстыка 50. Гэта на самай справе функцыя. Ну, гэта is-- аб, чорт вазьмі. Адна секунда. Пачакай. ДОБРА. Дазвольце мне перайсці гэта так на самой справе, мы можам паглядзім, што адбудзецца, калі я друкую Статыстыка 50. Звярніце ўвагу, што ў гэтым выпадку Каманда, што я з пакласці сапраўды зноў, толькі сцэнар гэта збіраецца выводзіць кучу інфармацыі ў фармаце JSON. І прычына таго, што мы робім гэта гэты шлях, што, таму што мы працуюць, таму што мы напісалі бок кліента JavaScript-код у, мы можам вельмі лёгка проста разабраць прадметы JavaScript, і сапраўды быць у стане маніпуляваць тыя аб'екты, гэтак жа, як мы б любы іншы аб'ект JavaScript. І так гэта вельмі зручна спосаб прадастаўлення некаторую інфармацыю ад асноўнай Напрыклад Ubuntu, такія як нумар версіі, хаста імя, ці з'яўляецца сервер слухае, тое, што сервер, гэтак далей і да таго падобнае, і разабраць, што вельмі лёгка і вельмі хутка ў корку ў тым, што затым адбываецца каб паказаць нам усё, што інфармацыя. Такім чынам, яшчэ раз, ключ разуменне тут, каб мець на ўвазе, гэта падзел паміж асноўны асобнік, а таксама, дзе код загружаецца. Гэта калі ў мяне ёсць кліент, гэта Першая загрузка. Толькі ў гэтым статычны файл JavaScript ад дзе, магчыма, CDN нейкі. Мы сапраўды не павінны клапаціцца занадта шмат пра гэта першым кроку. Мы проста ведаем, што гэта працуе на баку кліента і вось, калі я збіраюся мець зносіны з гэтым асобнікам Docker. Тое, што мы збіраемся зрабіць так праз Cloud 9 SDK. Мы на самай справе не маюць здольнасць, з дапамогай JavaScript або Node.js, напісаць непасрэдна да яго. Мы проста выкарыстоўваем тыя існуючага SDK API-інтэрфейсы, каб зрабіць гэта дзеянне для нас. І зноў, адзін з сапраўды важныя рэчы, з'яўляецца тое, што, калі я стварыў гэта, калі я стварыў гэты плягін, і, як я працую на ім, адна з важных рэчаў, каб зрабіць гэта выклікаць кансоль JavaScript. Таму што, так як гэта ўсё працуе на JavaScript, на баку кліента, калі я выкарыстоўваю console.log method-- так проста каб паказаць прыклад. Давайце паспрабуем гэта простае змена убудова таксама ўвайсці некаторыя дадзеныя. І мы дадамо стандартны вывад. Такім чынам, давайце змяніць, што прама тут. Цяпер, калі я выконваю console.log, майце на ўвазе, што, паколькі гэта працуе на баку кліента, Я бачу гэта ў маёй Кансоль JavaScript, які як я тады будзе ў стане паспрабуйце для ліквідацыі непаладак і адладкі некаторыя з праблем, якія ў мяне ёсць. Звярніце ўвагу, што з-за Я ў рэжыме SDK, я затым у стане кіраваць убудовы на гэтым прыкладзе. Таму, нават калі гэта захоўваецца на гэтым выпадку, гэта адзін з прыкладаў, што папярэдняя Правіла парушаюцца, дзе Воблака 9 SDK будзе на самой справе цягнуць убудовы ад самых якія ляжаць у аснове асобніка, а затым запусціць іх. Так што ў гэтым выпадку, я тады магчымасць кіраваць і будаваць некаторыя ўбудовы тут. Але для мяне, каб убачыць навінках дадзенага плагіна, таму што гэта на баку кліента, Мне трэба, каб захаваць гэтую убудова а затым перазагрузіце ўсёй працоўнай вобласці так што новы убудова, то загружаныя на майго кліента, на мой вэб-браўзэр, а затым выкарыстоўваецца. Так што цяпер, калі я націсніце на гэтую семінара Дыялог 2, мы па-ранейшаму бачым гэта. Цяпер, спадзяюся, Але ў маёй JavaScript дыялог, павінны мы бачым my-- чакаць, пачакай. Я, магчыма, прыйдзецца адкрыць дыялог свежым. Мы павінны ўбачыць мае атрыманыя дадзеныя тут. Атрыманыя дадзеныя, прывітанне, Дэн, які вы памятаеце, быў console.log аперацыя, мы прасілі ў ўбудове. Так гэта апісанне, то што я згадваў раней, гэты дыялог, ці гэта схема, хутчэй, што я згадвалася раней, што адбываецца. Але ёсць важны Выключэнне толькі для развіцця, які з'яўляецца тое, што ўбудова само па сабе можа на самай справе захоўвацца на экзэмпляры Docker часова, так як, верагодна, Воблака 9 не хоча, каб мець магчымасць маніпуляваць аб'ектамі на іх CDN. І Cloud 9 кліентаў, пры загрузцы, будзе знайсці гэтыя убудовы у тым, што. С9 убудова тэчку і загрузіць іх. Але тыя, якія да гэтага часу адбываецца Толькі на баку кліента. Такім чынам, гэта проста ап Выключэнне, якое адбываецца толькі для развіцця Cloud 9 убудоў. Але астатняя частка time-- і прычына што мы хочам на самой справе забіваць гэта home-- таму што вялікую частку часу гэта будзе працаваць з CDN, і проста будзе працаваць чыста на баку кліента. Звычайна не там будзе не ўзаемадзеянне з убудовай, ці там нават не будзе якіх-небудзь Прычына таго, што самі убудоў на самай справе захоўваюцца на якія ляжаць у аснове асобніка Docker, за выключэннем таго, у выпадку гэта развіццё SDK. Такім чынам, яшчэ раз, гэта мяняе толькі трохі з-за таго што мы бяжым рэжым SDK. Гэта будзе затым загрузіць тыя убудовы ад распрацоўкі, і адзіная мэта тут, каб Я магу выкарыстоўваць Cloud 9, каб зрабіць развіццё для Cloud 9 убудоў. Але нават так, гэта не мяняе зноў, як усё гэта працуе. Гэта яшчэ працаваць цалкам на баку кліента. Гэта проста азначае, што кожны раз, калі я хачу, каб стварыць Cloud 9 ўбудовы ў Cloud 9, Я ствараю гэтыя убудовы, пакласці іх у мой. С9 тэчку / ўбудовы ў маім доме Каталог, пераканацца, што я ў рэжыме SDK, Абнавіць старонку кожны раз, калі я на самай справе ўнясення змяненняў у гэты убудова, і паглядзець, што адбываецца ў мой Кансоль JavaScript. Проста кіраваць сваім JavaScript суцешыць, каб пераканацца, што любая ліквідацыі непаладак інфармацыя, якую я месца, каб суцешыць, або што-небудзь яшчэ, што можа адбыцца з-за памылак, якія я напісаў у маім кодзе і да т.п., з'яўляецца там. І з гэтым, гэта сапраўды дастаткова, каб пачаць працу, я думаю, што, з Cloud 9 убудоў. Асабліва зірнуць на SDK дакументацыя, Воблака 9 забяспечвае. Гэта выдатны спосаб, каб атрымаць пачаў, і вельмі лёгка стварыць некалькі убудоў для Cloud 9. І з гэтым, я хачу падзякаваць Вы ўсё вельмі за далучэнне мяне. Я спадзяюся, што вы будзеце мець задавальненне пісаць убудовы для Cloud 9. Магчыма, павышэнне убудовы што мы маем цяпер, ці, магчыма, нават дадаўшы некаторыя функцыі самастойна. Мы з нецярпеннем чакаем сустрэчы з што гэта вы ствараеце. Да таго часу, пакуль.