DAN Armendariz به: سلام، و به استقبال یک سمینار CS50 در سفارشی ابر 9، و IDE CS50 است. بنابراین، امروز ما در حال رفتن به فقط بحث کمی در مورد برخی از اطلاعات فنی که در پشت معماری می رود از ابر 9، و چگونه ما برخی از پلاگین اجرا به عنوان بخشی از ابر 9 به ارائه CS50 IDE. بنابراین اجازه دهید فقط پرش به حق در و شروع به صحبت کردن در مورد پلاگین. بنابراین پلاگین واقعا در هسته ابر 9 تجربه. ابر 9 فن آوری زمینه ای است که به ما فراهم می کند IDE، و همچنین پنجره ترمینال در پایین، همراه با workspace-- اوبونتو workspace-- که ما استفاده به کامپایل تمام پروژه های ما و انجام مجموعه مسائل ما، مجموعه کامل مشکل ما است. اما در قلب همه از آن، تمام تکنولوژی است که واقعا فقط یک دسته از پلاگین. همه چیز را یک پلاگین در است که می تواند اصلاح شود، توسعه یافته، شما می توانید ایجاد خود را پلاگین، شما می توانید حذف دیگر پلاگین، واقعا تغییر می دهد بسیار زیادی از قابلیت های از موجود ابر 9 IDE. پس این است که یک موجود ابر 9 محیط زیست است. این است که واقعا فقط به طور پیش فرض ابر 9 محیط زیست است. و نگاهی که چگونه آن را در واقع از IDE CS50 است. بنابراین این IDE CS50 است. توجه داشته باشید که برخی از بصری وجود دارد تغییرات بین ابر به طور منظم 9 محیط زیست و IDE CS50 است. به طور خاص، به شما متوجه یک زن و شوهر از تغییرات. اول از همه، کمتر وجود دارد آیتم های منو برای شروع با. در واقع وجود دارد راه که شما می توانید تغییر دهید. این حالت ساده نامیده می شود. به طور پیش فرض، حالت ساده فعال باشد، و که ساده برخی از آیتم های منو. آن را حذف برخی از آنهایی که پیشرفته تر، به دلیل رک و پوست کنده، بسیاری از دانش آموزان که در آینده و لازم نیست تا در مورد برخی مطمئن شوید از ویژگی های پیشرفته تر هستند غرق نمی با یک دسته از گزینه. اما ما ارائه توانایی را به کردن آن به اصطلاح چرخ آموزش و حذف است که داربست به طوری که مردم می توانید بیشتر به عادت کرده ویژگی های پیشرفته از محیط برنامه نویسی. بلافاصله به حق که، وجود دارد همچنین یک دکمه اشکال زدایی، که در ابر استاندارد 9 محیط زیست است که به سادگی اجرا نامیده می شود. اما به طور پیش فرض، ما پیکربندی شده اند دکمه اشکال زدایی در CS50 IDE به مطرح کردن دیباگر، به طور خودکار کامپایل کد منبع، اتصال دیباگر به GDB-- زمینه و از آنجا که که در حال اجرا را به انجام debugging-- و برخی از گام های دیگر به خوبی. همچنین پنجره ترمینال در very-- و یا به جای ترمینال تب در بخش کنسول در پنجره در پایین بسیار از صفحه نمایش، تغییر نام داد به سادگی به ترمینال باشد. در حالی که در استاندارد ابر 9 محیط زیست، آن را در واقع نشان می دهد در حال اجرا نرم افزار. به این ترتیب، آن را ساده، دوباره، رابط کاربری گرافیکی، فقط کمی. ما همچنین افزود: برخی از دکمه های به سمت راست بالای IDE برای نشان دادن برخی اطلاعات عمومی در مورد مثال زمینه ای است. و همچنین ما باید حذف یک از گزینه های بر روی آیتم از سمت راست. به طوری که همه از این است که اجرا نشده با تغییر لزوما ابر 9 کد منبع، اما به جای از طریق چند از پلاگین که ما به پیاده سازی در طول سال گذشته. و ابر 9 میزبان و در حال اجرا در فضای کاری CS50 است. و یا نه در فضای کاری که به عنوان CS50 IDE ها تعیین شده است. بنابراین واقعا که تفاوت اصلی این بین ابر 9 و CS50 فضای کاری. نیز وجود دارد، در زمینه به عنوان مثال، تغییر اولیه است که ما نصب برخی از آیتم های از پیش پیکربندی شده مانند GDB، و بعضی چیز اساسی دیگر که ما ایجاد کرده اید، مانند به روز رسانی 50، و چند قدم دیگر که کل تجربه کمی بیشتر واحد. اما به طور کلی، این فقط یک اصلاح یک سیستم موجود که ابر 9 برای ما ایجاد کرده است. چیزی که ما در حال رفتن به نشان می دهد کمی بعد است که چگونه در واقع ایجاد یک پلاگین در تا حدودی اساسی است که ما اجازه می دهد به قرار دادن چیزی را به سیستم منو، و باز کردن یک گفت و گو. و اگر ما به اندازه کافی زمان، ما در واقع ببینید که چگونه ما می توانیم جمعیت که گفت و گو با برخی از اطلاعات از نمونه های زمینه ای. به منظور برای ما برای رسیدن به آن نقطه، اجازه دهید اول بحث کمی در در مورد معماری از ابر 9. پس راه که ما در حال استفاده به تعامل با ابر 9 طور کامل از طریق مشتری است. ما برای باز کردن یک مرورگر وب، ما در CS50.io. نوع ما در نهایت، پس از احراز هویت، با IDE ارائه شده است. اما متوجه وجود دارد که چند گام که در واقع ما به این نقطه. اولین چیزی که است که مشتری من، مرورگر وب، بنا به درخواست و پس از احراز هویت، بارهای رابط کاربری گرافیکی و پلاگین از CDN، از برخی از شبکه تحویل محتوا. این می تواند در هر نقطه رک و پوست کنده شود. و این در واقع جداگانه از نمونه های زمینه ای. این مهم است که متوجه باشد که این در واقع فقط یک دسته از فایل های استاتیک می باشد. آن دسته از جاوا اسکریپت است که از CDN دانلود در به مرورگر وب من، و همه از رابط کاربری گرافیکی که شما here-- ببینید این است که واقعا key-- همه از رابط کاربری گرافیکی که شما در اینجا ببینید است در سمت سرویس گیرنده اجرا کنید. همه چیز که شما را ببینید در ابر 9 فضای کاری در واقع در مرورگر اجرا شود. و هر چیزی که شما ارسال به همراه مثال های زمینه با ابلاغ به عنوان مثال در طول این کانال جداگانه دوم، و سپس بر روی ذخیره که به عنوان مثال کارگر بارانداز. بنابراین به این دلیل است که من می گویم این یک نمونه است بارانداز این است که از تکنولوژی زیر بنایی با استفاده از ماشین های مجازی نیست، اما به جای استفاده از یک تکنولوژی به نام کارگر بارانداز، که اساسا allows-- نزدیک ترین قیاس یک ماشین مجازی است. اما از آن است ماهرانه مختلف در که وجود دارد مقدار زیادی از فرصت برای اجرای یک ترکیبی از بارانداز مختلف موارد در یک دستگاه واحد. و آنها تابیده می شود تا در پی بسیار سریع. این است که کاملا تر تمایز دقیق بین نمونه های مختلف بارانداز در ماشین های مجازی وجود دارد، اما هنوز هم در بسیاری از وجود دارد و تفکیک بین این موارد متفاوت است. باشه. بنابراین دو مرحله است که در اینجا مهم است که متوجه می این است که زمانی که ما به CS50.io بروید، ما دانلود GUI و پلاگین، که در جاوا اسکریپت نوشته شده است، در به مرورگر و یا در به مرورگر. و این است که شاید چند ارزش مگابایت از اطلاعات است. در آن نقطه، پس از آن که رابط کاربری گرافیکی است بارگذاری شده و پلاگین شروع کرده اند، پس از آن شروع به برقراری ارتباط با به عنوان مثال کارگر بارانداز، که نمی کند لزوما باید همان سرور است. در حال حاضر یک استثنا برای این وجود دارد. ما در واقع می توانید هر دو را دارند مکانیسم تحویل برای رابط کاربری گرافیکی خود را و به عنوان مثال در بارانداز همه همان سرور، که است که در واقع چیزی است که ما انجام می دهیم برای نسخه آنلاین از ابر 9. این چیزی است که ما نه عموم بسیار این سقوط، اما ما نیز دارند نسخه آفلاین که اجازه می دهد تا شما را به دانلود بسته بندی نسخه همه این چیزها و اجازه می دهد شما را به اجرای ابر 9 در یک محیط آنلاین نیست. این حرکت به دور از ابر و بر روی ماشین محلی خود را دارای تاثیر. به طور خاص، شما دیگر توانایی برای به اشتراک گذاشتن فضای کاری خود را با دیگران است. شما دیگر نمی تواند ابر 9 از باز کردن، و CS50 IDE، از هر کامپیوتر و دیدن فایل ها همان است که شما با قبل از کار شد. اما به جای آن کار می کند به طور کامل در ماشین محلی خود را بدون نیاز به دسترسی به اینترنت است. اما هنوز هم حتی در این مدل، حتی هر چند که ما یک ماشین مجازی است که اساسا در حال اجرا این چیزها. ما یک سرور جداگانه است که ارائه اساسا ابر 9 محتوا، و سپس ما یک مثال کارگر بارانداز که مسئول برای برقراری ارتباط با IDE برای پایان دادن به عقب. باشه. به طوری که کل رابط کاربری گرافیکی نوشته شده است به طور کامل در جاوا اسکریپت با استفاده از Node.js و ابر 9 SDK، که ما آن را به در فقط یک دقیقه است. و همه از پلاگین در سمت سرویس گیرنده اجرا کنید. بنابراین اجازه دهید تمرکز سپس کمی با فرض که این گام اول است در واقع با موفقیت انجام شد، و نگاه فقط در این مثال کارگر بارانداز. بنابراین در این مورد، این راه استاندارد است از فکر کردن در مورد انجام ابر 9 پلاگین در توسعه است که شما در حال رفتن برای نوشتن کد است که در مرورگر کاربر اجرا شود، و شما این فرصت از با استفاده از برخی از API برای برقراری ارتباط با زمینه ای به عنوان مثال کارگر بارانداز، اجرای برخی از کد وجود دارد، و انجام هر کاری که شما ممکن است خواهید انجام دهید. پس این است که برای رفتن به زمینه است که ما با استفاده از برای بقیه این بحث. و فقط به خاطر داشته باشید این مدل. این بسیار مهم خواهد بود فقط در چند دقیقه. یک زن و شوهر وجود دارد لینک من می خواهم به شما نشان دهد. اول از همه، ابر 9 ارائه شده است بسیار زیادی از اسناد و مدارک که خیلی خوب است، که نشان می دهد چگونه به انجام عمومی پلاگین در حال توسعه است. بنابراین اگر شما به این URL بروید، cloud9-sdk.readme.io، شما اسناد و مدارک وجود دارد. و بسیاری از این اطلاعات که شما در مورد را ببینید همچنین می توانید وجود دارد یافت می شود، به علاوه موارد بیشتر. شما همچنین می توانید متن باز پیدا نسخه ابر 9 در این آدرس، github.com/c9/core، که ما به عنوان استفاده بخشی از نسخه آنلاین از IDE، به طوری که شما قادر خواهید بود به همان ابر 9 تجربه، اما در یک راه آنلاین نیست. خیلی خوب. بنابراین اجازه دهید یک نگاهی به واقعی ابر 9 فضای کاری در اینجا. و دوباره، من می خواهم به نقطه یک چند چیز است. این است، درست است در اینجا، یک IDE CS50 طبیعی است. و من کمتر از کار افتاده اند حالت راحت تحت منوی View به طوری که من می توانید ببینید همه از گزینه های منو. چیزی که من می خواهم به شما نشان می دهد سمت راست اکنون چند چیز است. اول از همه، اگر من به رفتن تنظیمات و سپس با کلیک بر روی پلاگین در بدهید، و نوع در CS50 در اینجا، ما می توانید ببینید که وجود دارد، در واقع، یک زن و شوهر از CS50 پلاگین است که نصب شده و در حال اجرا ما را به فعال کردن تغییرات ایم که برای IDE CS50 دیده می شود. در حال حاضر اساسا وجود دارد دو پلاگین است که در حال اجرا هستند. یکی به نام ساده وجود دارد، که حالت ساده شده است که شما اجازه می دهد به منظور کاهش تعداد از گزینه های منو در بالای صفحه، و این به اصطلاح حالت کمتر راحت است. و پس از آن نیز وجود دارد آمار CS50، که است که شاید فقط کمی غلط نامگذاری. از آنجا که این چیزی است که اطلاعات شما نشان می دهد در مورد فضای کاری زمینه ای است. تزریق این دکمه ها در سمت راست بالای صفحه. آن را نیز به تزریق یک آیتم منو پنجره مورد، به منوی پنجره CS50 IDE اطلاعات در اینجا،. و آن را برای نمونه سازی این گفت و گو که ما در اینجا دیده می شود، با تمام اطلاعات است که ما عادت به دیدن در یک CS50 IDE فضای کاری. باشه. بنابراین در واقع وجود دارد یک پلاگین در که ما را توسعه داده اند و همچنین. و یک زن و شوهر از دیگران وجود دارد که ما نیز علنا ​​منتشر نشده است. اما یکی از آنها به طور کلی است پلاگین است که اجازه می دهد تا GDB به کار کند. بنابراین یکی از جنبه های ابر 9 این است که آنها در حال حاضر ارائه شده است این رابط کاربری گرافیکی برای پیاده سازی یک ابزار اشکالزدایی. و یکی از افزونه هایی که ما اساسا ایجاد قلاب GDB با این رابط کاربری گرافیکی نسخه مبتنی بر یک دیباگر. و مسئول میانجیگری است از درخواست که یک کاربر ممکن است، بین پله و یا بیش از ایجاد نقاط شکست و یا هر چیز امتداد آن خطوط، به ترجمه که به دستورات است که GDB می توانید درک، صدور دستورات به GDB. و به محض GDB یک پاسخ، پس از آن نتیجه می گیریم که و به روز رسانی GUI در صورت لزوم. که احتمالا یکی از پیچیده تر از پلاگین، بنابراین به جای چیزی است که ما رفتن به در امروز، تمرکز در واقع آمار پلاگین، و ما صحبت کمی در مورد ساده، و همچنین. بنابراین من قبلا ذکر شد، و من واقعا می خواهم به بسیار، بسیار روشن است، که دوباره، همه از این است که ما دیدن اینجا است که در اصل عامل در سمت سرویس گیرنده. ما در انجام یک پنجره ترمینال را ببینید زیر، و، البته، اگر ما در دستورات تایپ که، که پس از آن صادر خواهد شد به عنوان مثال زمینه ای است. به طور مشابه، اگر ما باز کردن یک فایل جدید و نوع برخی از مسائل را در آن و ذخیره آن، آن فایل را در ذخیره به عنوان مثال زمینه ای است. اما سردبیر خود، این پنجره ترمینال خود، است که همه در اجرا جاوا اسکریپت و یک پلاگین در است که ما می توانیم با تعامل، و در نتیجه تغییر دهید. در بسیاری از توسعه وجود دارد. من توصیه می گرفتن یک نگاه در حساب GitHub به ابر 9 برای دیدن مقدار گسترده ای از پلاگین است که در دسترس هستند، و چقدر خوب نوشته شده است بسیاری از کد است که برای توسعه پذیری. بنابراین چیزی وجود دارد که من می خواهم به ذکر است در مورد این عنوان است، که که بسیاری وجود دارد of-- وجود دارد بسیاری از قابلیت های که ارائه شده در تنظیمات پنجره، که ما فقط دیده می شود فقط چند دقیقه پیش اشاره کرد. یکی از چیزهایی که ما می تواند به عنوان IDE انجام توسعه دهندگان، و یا به عنوان ابر 9 توسعه دهندگان، است که در واقع تزریق برخی از پانل های اولویت خود ما است. بنابراین حالت ساده، و یا حالت کمتر و راحت، و همچنین اطلاعات IDE، و یا آمار پلاگین، است هر چند ترجیح پانل های که به ما اجازه تغییر رفتار هر یک از این. شما متوجه خواهید شد که اگر من به رفتن تنظیمات و رفتن به تنظیمات کاربر، یک تب CS50 وجود دارد، یکی که می گوید اطلاعات IDE. و من می توانم تغییر اطلاعات نرخ تازه کردن. به طور موثر، چه اتفاقی می افتد در آمار پلاگین در این است که هر N-ثانیه، که در آن N-ثانیه است که توسط این همه تعریف پانل، اطلاعات است که از ذهن از نمونه های زمینه ای، در حال ارسال برگشت به سمت سرویس گیرنده، پلاگین در است پس از آن تفسیر اطلاعات از نمونه های اساسی و به روز رسانی GUI در صورت لزوم. ما می توانید ببینید که در حال حاضر این قرار است تا 30 ثانیه، و این که به طور پیش فرض است. اما من قطعا می تواند تغییر چگونه به سرعت این اتفاق می افتد فقط با تغییر این مقدار است. در حال حاضر یکی از چیزهای جالب این است که این پنل تنظیمات، رابط کاربری گرافیکی، واقعا فقط یک نسخه رابط کاربری گرافیکی از بسیاری از تنظیمات اساسی که در JSON ارائه شده است. بنابراین اگر من، به عنوان مثال، تحت CS50 IDE منو، و یا منو ابر 9، بسته به این که نسخه شما به دنبال در، و رفتن به یکی از این settings-- در این مورد، پروژه settings-- تنظیمات پروژه در این مورد امر به تمام تنظیمات برای این یکی فضای کاری. در حالی که تنظیمات کاربر اعمال می شود به همه از فضای کاری که شما ممکن است در حساب خود داشته باشد. پس فقط به عنوان یک کنار در اینجا، به فوق العاده روشن، یک جدایی بین وجود دارد دو زیرا اگر چه به طور پیش فرض ما یک فضای کاری، که در CS50 IDE است، اگر شما به کلیک بر روی کوچک خود را نماد تا اینجا و رفتن به داشبورد، شما پیدا کنید که واقع شما می توانید ایجاد فضای کاری اضافی و همچنین. شما می توانید در اینجا مشاهده کنید که من لازم یک IDE 50 فضای کاری، و همچنین برای اهداف این سمینار، یک فضای کاری نام فضای کاری است که در اینجا ببینید. پس به هر حال، من سلایق متفاوتی دارند. هر یک از این ممکن است تنظیمات پروژه جداگانه، اما تنظیمات کاربر می به اشتراک گذاشته شده در میان تمام فضای کاری من. به هر حال، این است همچنین بسیار مفید اگر شما می خواهید برای ایجاد یک فضای کاری با گزینه های سفارشی سازی متفاوت است. و آن را بسیار مفید برای ایجاد یک فضای کاری جدید است. و یکی که ممکن است را انتخاب کنید از پیش تنظیم شده در برخی از راه های دیگر، شاید برای PHP به طور خاص، و یا جنگو به طور خاص. و یا حتی فقط سفارشی. فضای کاری CS50 قالب یکی این است که ما استفاده از آن به طور خودکار نصب به روز رسانی 50 و تمام تنظیمات که ما وجود دارد، از جمله تمام پلاگین است که ما برای IDE CS50 داشته باشد. باشه. اما اجازه دهید به این آمده است. پس دوباره، پروژه وجود دارد تنظیمات، و کسانی که آنهایی هستند که ما به دنبال در اینجا. و توجه کنید که وجود دارد یک دسته از تنظیمات، بسیاری از آنها را به اولویت دارد پانل، اما نه همه آنها. اما ما می توانید ببینید که در اینجا، در this-- آه نه، من آن را در تنظیمات کاربران قرار داده است؟ شاید من آن را در تنظیمات کاربر قرار داده است. و این، اینجا ما بروید. در تنظیمات کاربر، ما می توانیم دید که ما یک بخش CS50، و این است که نوشته شده به این ابر 9 پلاگین که ما اجرا کرده ام. این یکی از ساده به وجود با پلاگین در ساده مطابقت دارد، و یکی که آمار مربوط به آن رابط کاربری گرافیکی مبتنی نسخه پانل اولویت است. نرخ تجدید، در این مورد، به 20 ثانیه تنظیم کنید. این همه، این امیدوارم، آغاز برخی از اطلاعات که ما در واقع در یک کمی را ببینید کمی جزئیات بیشتر، لحظه ای. باشه. بنابراین اجازه دهید بگویم که ما می خواهید در واقع پایین به آن است. ما درک می کنیم که همه چیزهای که اتفاق می افتد در سمت سرویس گیرنده در واقع در مرورگر انجام می شود که بدان معنی است که هر پلاگین که من ارسال در حال رفتن به نوشته شود با مرورگر در ذهن است. و اگر من در واقع می خواهید به انجام هر چیزی بر روی فضای کاری، من شاید باید برای شروع نوعی از ارتباطات بین مرورگر و فضای کاری تا مطمئن شوید که که است که در واقع انجام می شود. اما اجازه دهید بگویم که در حال حاضر من می خواهم به پایین به آن و در واقع برای اولین بار من پلاگین در ایجاد. خب، در راه است که شما قادر خواهد بود برای انجام این کار است که در واقع بسیار آسان است. آن را در ابر 9 SDK داده شده است. اما آن را به خود نام فضای کاری موجود، که URL است که شما در بالای است نوار خود را، و اضافه کردن زیر به آن است. ؟ SDK = 1 & 2 debub =. در حال حاضر چه این است که به فعال است که SDK = 1 خواهد شد در واقع مجموعه ای از SDK حالت درست باشد، که قادر خواهد یک زن و شوهر از چیزهایی اضافی. و اشکال زدایی = 2 اجازه خواهد داد که پیام های خطا به کمی طولانی تر است. و بنابراین اگر شما را تا جاوا اسکریپت کنسول در تب توسعه کروم خود را، شما در واقع قادر خواهد بود اطلاعات بسیار بیشتری را ببینید از شما را در غیر این صورت. بنابراین توصیه میکنم تبدیل هر دو از این در در همان زمان، چون واقعا مفید است که همه این اطلاعات اضافی. این مهم است که توجه داشته باشید، با این حال، روشن اشکال زدایی به ارزش 2 بدان معنی است که آن را بسیار طولانی، و در واقع خواهد تا حدودی به طرز محسوسی کاهش سرعت IDE خود را، به ویژه هنگامی که در حال بارگیری یا زمانی که انجام انجام کارهای سنگین. پس فقط باشید که در ذهن. آن را برای توسعه مفید است، اما شما ممکن است می خواهم به آن را در تمام وقت. بنابراین اجازه دهید در واقع انجام این کار. اما در این مورد، من در واقع در حال حاضر راه اندازی یک فضای کاری با این. بنابراین اجازه دهید که، SDK = 1 & 2 اشکال زدایی =. با چند پلاگین امیدوارم در حال حاضر نصب شده است. خیلی خوب. بنابراین در حال حاضر که من در اشکال زدایی SDK تبدیل به حالت، توجه کنید که ما در حالت اشکال زدایی هستند، بنابراین ما می توانیم در ابزار توسعه تمدن نگاه کنید تا ببینید هر گونه خطا، که من انجام خواهد داد بازی Offscreen. ما می توانید ببینید که وجود دارد یک دسته از خطاها در اینجا. در حال حاضر آن را در واقع بسیار رایج برای ابر 9 به یک زن و شوهر از اشتباهات، و من نمی خواهد نگران باشید در مورد آنها تا زمانی که شما چیزی را ببینید که ممکن است خاص به پلاگین در شود که شما اتفاق می افتد به ایجاد شود. بنابراین در اینجا، برای مثال، ما یک زن و شوهر از 404s-- یافت نشد. ما می بینیم که ما قادر به بار کردن بعضی از ما اطلاعاتی از عنوان مثال زمینه است. و یک دسته از اضافی وجود دارد اطلاعات، اما بسیاری از این ما در واقع رفتن به چشم پوشی در حال حاضر. دلیل این است که بسیار برای یک فضای کاری مشترک به فقط چند خطا است. باشه. من قصد دارم به این حرکت از راه و به اینجا می آیند. و در حال حاضر راه آسان، خوب چیز در مورد داشتن این توسعه دهنده حالت فعال باشد که آن را به من اجازه می دهد تا به راحتی یک پلاگین های جدید در ایجاد کنید. بنابراین در حالی که قبل از من در واقع نمی این پلاگین در گزینه های موجود، که ما می توانید ببینید اگر من به بازگشت به حالت غیر نویس من در اینجا، هیچ پلاگین های جدید در آن وجود دارد. با فعال کردن حالت SDK، من یک پلاگین در جدید در دسترس و من به راحتی می توانید آن را ایجاد کنید. در این مورد، یک زن و شوهر وجود دارد از گزینه های مختلف، ساده، پلاگین در خالی، یک پلاگین در کامل، نصب، ابر 9 بسته نرم افزاری. بیایید فقط یک را انتخاب کنید خالی پلاگین در حال حاضر به طوری که ما بسیار می توانید ببینید نسخه ساده از یک است. حالا توجه کنید که در امتداد سمت چپ که در حال حاضر وجود دارد چیزی زیر علاقه مندی ها، که لیست است زن و شوهر از پلاگین که در حال حاضر در دسترس به من. اگر من گسترش است که، ما قادر به دیدن آن. حالا من می خواهم شما را به توجه چیزی در اینجا، که این است که این است که در واقع موجود نیست در داخل دایرکتوری فضای کاری در زمینه ای به عنوان مثال اوبونتو من، اما آن را بر روی هارد دیسک موجود است. و جایی که این واقع شده است، به دلیل این است که بسیار مفید می دانم، به خصوص اگر شما در حال رفتن به انجام هر چیزی را با دستگاه گوارش، که در آن واقع شده است این در یک پوشه .c9، / پلاگین ها. بنابراین اگر من به آنجا، ما هم اکنون می توانید دید که لیست پلاگین است که اینجا هستید مسابقات لیست پلاگین که من دیدم در سمت چپ فضای کاری من. در حال حاضر به طور پیش فرض، و این نوع از عجیب و غریب، به طور پیش فرض وقتی که من ایجاد یک پلاگین های جدید در در یک فضای کاری، آن را ایجاد این پلاگین در که توسط به طور پیش فرض دارای یک نام تاکید. به طور کلی که ممکن است باعث برخی از مشکلات. بنابراین گام بعدی که من معمولا انجام فقط به حذف آن خاص پلاگین در و ترک تنها پلاگین در ساده است که وجود دارد در ابتدا، plugin.simple. و این تنها یکی که وجود دارد. باشه. پس چه چیزی این در واقع شبیه؟ خوب، این است، دوباره، یک بسته جاوا اسکریپت که شامل برخی از فایل ها، از جمله یک فایل plugin.js، که در آن محتوای اصلی من پلاگین در واقع شده است، فایل package.json، که در واقع مشخص برخی از ابرداده در مورد این پلاگین در، مانند که نویسنده است، هر گونه اطلاعات اضافی در مورد آن، یک شرح پلاگین، و غیره. و همچنین به طور پیش فرض، آن یک فایل README خالی ایجاد، و یک فایل خالی آزمون را برای شما به ایجاد برخی از اسناد و مدارک اضافی، و یک مهار تست اگر شما می خواهم به انجام این کار. بنابراین اجازه دهید فقط یک نگاه برای اولین بار در، بسیار به سرعت، در فایل package.json. این به اندازه کافی آسان به فقط از طریق رفتن آن را پر کنید در زمینه های این که شما می خواهید برای پر کردن در، مانند ارائه آن نام، شرح دادن، تکرار شماره نسخه هر از چند گاهی، ارائه یک نویسنده برای هر فرد که، آنها را به همکاران اضافه بخش، و بقیه از این شما تقریبا می توانید فقط ترک آن را به عنوان در حال حاضر. یک چیز است که وجود دارد مهم است که متوجه، که در زیر بخش پلاگین، است که یک کلید به نام پلاگین در آن وجود دارد. و این است که به نام همسان فایل جاوا اسکریپت به نام plugin.js. پس این است که چگونه Cloud 9 می داند، که آن را می خواند این فایل package.json که از فایل های JS به واقع بارگذاری. اگر من فایل های JS اضافی ایجاد و یا می خواهید به تغییر نام آن فایل JS از پلاگین، من هم آن را تغییر دهید در فایل package.json. هر گونه سوال از مخاطبان؟ شماره که یک نفر است که زیر همراه با من تا کنون. باشه. بنابراین من در واقع ایجاد یک زن و شوهر از پلاگین در حال حاضر، من فکر می کنم، در این فضای کاری. بنابراین اجازه دهید برخی از این شر، اضافه کردن SDK = 1 & 2 اشکال زدایی =، بارگذاری مجدد این فضای کاری، و اجازه دهید اگر ببینید که ما کسانی که پلاگین در حال حاضر. C9 / پلاگین ها. در اینجا ما به. ما می توانیم در حال حاضر در C9 من / پلاگین از این دید یکی، ما باید plugin.1 و plugin.2. بنابراین ما قصد داریم فقط به گام تا the-- فقط افزایش میزان دشواری در هر یک از این پلاگین. اما در اینجا اگر من یک پلاگین در جدید ایجاد کنید، من می توانم آن را به علاقه مندی های من اضافه کنید. و من فقط کسانی که از حذف سیستم فایل زمینه ای است. اجازه دهید حذف شده است. در حال حاضر اگر برای اولین بار من را باز کنم پلاگین، و plugin.js باز، ما در اینجا می توانید ببینید اساسی نسخه ساده از یک پلاگین در. اجازه دهید من در واقع به تماس این فضای کاری دیگر چون شما می توانید حداقل، اینجا را ببینید، چه یک پلاگین در واقع خالی به نظر می رسد. بنابراین در زیر هود، این به نظر می رسد بسیار شبیه به تکنولوژی به نام، من فکر می کنم، آن را RequireJS. توجه کنید که این را نمی کند واقعا نگاه کنید، شاید، همان برخی از جاوا اسکریپت دیگر فایل های که ما ممکن است دیده می شود. اما در عوض، یک زن و شوهر فقط وجود دارد خطوط اساسی است که آن را در واقع است. همه این مسائل است برای اولین بار تفسیر شده توسط IDE، اما در واقع نمی اجرا تا مشخص شده است. و من شما را در مورد زمانی که به در واقع در یک لحظه این معنی است. اما توجه کنید که در اینجا یک وجود دارد خط main.consumes در خط 2، و این لیستی از پلاگین که از این پلاگین در وابسته است. بنابراین به طور پیش فرض، ما شاید لازم نیست که هر گونه وابستگی در دیگر پلاگین، اما زمانی که ما در واقع به نیاز در ویژگی های عرضه بستگی دارد توسط دیگر پلاگین در IDE، ما نیاز به لیست کسانی که پلاگین در خط main.consumes. و سپس ما به نیاز لینک آنها را به کد در زیر، که من شما را در فقط نشان می دهد یک لحظه در مورد چگونه ما می توانیم این کار را انجام. Main.provides می دهد نام این پلاگین در که دیگر پلاگین می تواند استفاده در خط مصرف کنند. بنابراین در این مورد، من پلاگین در فقط وجود دارد به طور پیش فرض تنظیم شده است، و ما باید تغییر دهید که به قابل اجرا به خود ما پلاگین، همانطور که ما فقط در لحظه را ببینید. حالا در اینجا در تابع اصلی، این تابع اصلی است که در واقع اجرا و تفسیر، اما آن را نمی کند در واقع بسیار است. این فقط می شود همه چیز را تنظیم، اما آن در واقع شروع به پلاگین در نه، با وجود آنچه که به نام برای تلفن های موبایل مانند. که در واقع از طریق اتفاق می افتد دنباله ای از روش های است که در سراسر این پلاگین در آمده است. بنابراین اگر من پایین حرکت کنید، ما می توانید ببینید که ما یک چرخه زندگی که در آن در برخی از رویداد به نام بار، یا برخی از رویداد به نام خالی کردن، برخی از حوادث واقع اتفاق می افتد. این واقعا در اینجا که در آن به عنوان پلاگین در شروع می شود که این روش هستند. بنابراین اجازه دهید کمی بیشتر بتن در این مورد و نگاهی به عنوان مثال. بنابراین در اینجا برای plugin.1، چه ما در واقع رفتن به انجام است که برای ایجاد یک آیتم منو نام CS50 سمینار گفت و گو 1-- چرا که ما دو نفر از them-- و ما قصد داریم به آن تزریق به منوی پنجره. و هنگامی که ما روی آن کلیک کنید، ما رفتن به باز کردن یک گفت و گو که ما برخی از اطلاعات بسیار اساسی را نشان می دهد. در این مورد، فقط یک سلام جهان. پس این است که بسیار ساده سلام جهان گفت و گو پیاده سازی که ما می توانیم به عنوان یک پلاگین در ابر 9. بنابراین بیایید ببینید که چگونه این در واقع به نظر می رسد. ما را از طریق آن مرحله، فقط نسبتا سریع، بنابراین ما می توانید در پلاگین در آینده به عنوان به خوبی نگاه کنید. توجه داشته باشید که در اینجا ما مصرف انواع پلاگین. ما در حال مصرف یک گفت و گو پلاگین، دستورات، منوها، و UI. به نظر می رسد می کنم در واقع من گیر گفت و گو دو بار، به طوری که من می توانید حذف آن. و توجه کنید که راه که من آنها را اتصال، این نوع از ابرداده است که گفتن است پلاگین در سیستم آنچه مورد نیاز در واقع لازم برای این پلاگین برای بارگذاری. این نیز مهم است توجه داشته باشید که نظم است که پلاگین لود تضمین شده نیست. اما آنچه تضمین شده است است که اگر من مشخص برخی از پلاگین در به عنوان یک نیاز، که پلاگین در بارگذاری خواهد شد قبل از این یکی لود شده است. به طوری که معنی است که اگر شما پلاگین در نیاز در برخی از قابلیت های ارائه شده با چیز دیگری در IDE، شما باید مطمئن باشید که پلاگین در خود مصرف که پلاگین در به طوری که وابستگی خاص به ایجاد پلاگین در خود هستند، و یا نمونه خود را پلاگین، تنها پس از آن چارچوب موجود وجود دارد. بنابراین در اینجا من ذکر کرده اند ابرداده به پلاگین در مدیر، آنهایی که من قصد دارم به مصرف می کند. و در تابع اصلی در اینجا، من قصد دارم به و سپس اتصال کد من به کسانی وارد پلاگین. بنابراین من فقط رفتن به ایجاد برخی از متغیرهایی که مطابقت با نام هر یک از افرادی که به آن که من بسیار به سرعت می توانید آنها را مرجع در سراسر کد من. دلیل من وارد گفت و گو است که می خواهم من پلاگین در به عنوان یک گفت و گو پلاگین در عمل می کنند. و راهی که من قادر هستم برای انجام این کار، البته، اتصال کد من به گفت و گو پلاگین در آن با وارد و پس از آن با مشخص شده توسط ایجاد یک متغیر گفتگوی جدید و اتصال آن به وارد پلاگین در. و سپس با تعریف من پلاگین در به عنوان یک گفتگوی جدید. بنابراین در مقدار دهی اولیه، من می خواهیم به تعریف من پلاگین در. و این متغیر به نام پلاگین در شما خواهید دید تنها معمولا استفاده می شود در سراسر ابر 9 پلاگین. من قصد دارم به یک نمونه از یک جدید گفت و گو با برخی از ویژگی های، آن یک نام خاص را، می گویند که آن را ممکن است برای کاربران به آن نزدیک است. که آن را کمی در x را نشان می دهد در گوشه سمت راست بالا، و یا یک دکمه کوچک در گوشه سمت راست پایین تر است. یا نه من می توانید متن را انتخاب کنید از آن، آنچه به عنوان که گفت و گو خواهد بود، و به همین ترتیب. در حال حاضر این فقط تعریف گفت و گو، اما هنوز آن را نشان نمی دهد. من در واقع برای تعریف یک اقدام برای آن نشان داده شود. و دوباره، من شما را تشویق به نگاهی به ابر 9 SDK، چرا که دیالوگ وجود دارد انواع و آنها واقعا به خوبی مستند. شما می توانید انواع مختلف ببینید که وجود دارد، و استفاده از آنها در هر پلاگین شما در ذهن دارند. در حال حاضر برای رفتن به یک وجود دارد بخش بار، و این بار عملکرد شما را به یاد است استفاده شده توسط چرخه زندگی پلاگین در به واقع همه چیز نمونه و همه چیز آماده رفتن است. حالا وقتی که این پلاگین در بارهای، من نمی خواهید آن را به سرعت نشان گفتگو، چرا که این پلاگین در بارگذاری خواهد شد همراه با بقیه IDE. و وقتی که من که IDE بار، من نمی خواهم گفت و گو نشان می دهد تا به صورت خودکار. من فقط می خواهم آن را به نشان می دهد زمانی که من در کلیک کنید گزینه منو در پنجره آیتم منو من که من به آن لحظه ای اضافه کنید. بنابراین دو مرحله مجزا وجود دارد در اینجا است که باید اتفاق می افتد. من باید برای ایجاد یک دستور و فرمان مسئول واقع خواهد شد نشان دادن گفت و گو در ابر 9 IDE. و بعد من باید برای اتصال، من باید به ایجاد یک پنجره منوی جدید آیتم، اجرا می شود که که به فرمان. به طوری که زمانی که من در آن پنجره کلیک کنید آیتم های منو، که فرمان پس از آن اجرا و در نتیجه گفت و گو من است و سپس نشان داده شده است. و این است که در واقع بسیار راه خوب فکر کردن در مورد آن است. از آنجا که اول من می توانم یک دستور ایجاد که نام CS50 سمینار گفت و گو 1، که برخی از فراهم می کند چهار چوب کلی برای آن است. و مهم این است که کمی در اینجا متوجه ویژگی EXEC، که لیست یک تابع است که نامیده خواهد شد در من پلاگین در زمانی که این دستور اجرا شده است. بنابراین این دستور به این نوع مانند a-- آن را فقط یک ابر دلخواه 9 دستور است که در دسترس به هر ابر 9 پلاگین در. اما عملکرد واقعی که آن را رفتن به پاسخ زمانی که این دستور اجرا شده است تابع گفت و گو نشان می دهد در فایل plugin.js من. و ما در واقع می توانید ببینید این پلاگین و لیست از دستورات است که در دسترس ما هستند در ترجیحات، حرکت تمام راه down-- بیایید ببینید، در واقع ما این را در حال حاضر؟ پلاگین در بدهید، نه، من فکر می کنم آن را I-- قطعا در اینجا جایی. خوب، یک لیست از دستورات وجود دارد جایی، اما من باید داشته باشد، را فراموش کرده ام که در آن است. بنابراین خوب، ما را در حرکت می کند. خیلی خوب. بنابراین ما باید یک لیست از دستورات که در دسترس ما هستند، و کسانی که دستورات این فقط خودسرانه ابر 9 دستورات است که اجرای کد خاص. پس فقط نگه داشتن آن در ذهن، که ما قصد داریم به اجرا محاوره ای نشان می دهد عملکرد لحظه ای. حالا وقتی که من در واقع می خواهم برای اضافه کردن یک منوی آیتم، من می توانم که آیتم های مسیر را اضافه کنید، و فقط مشخص دقیقا همان جایی که من می خواهم به آن باشد، پنجره / CS50 سمینار گفت و گو 1. و در آن نقطه، من می خواهم برای ایجاد یک آیتم جدید که است که به اجرای یک فرمان، CS50 سمینار گفت و گو 1. توجه داشته باشید که دوباره، این است که ابر 9 فرمان من فقط بالا ایجاد کرده اید. در حال حاضر من همچنین می خواهم ایجاد یک تقسیم کمی، و بنابراین من می توانید همین کار در خط بعدی. در حال حاضر شما ممکن است متوجه است که به عنوان بخشی از تعریف این آیتم منو، یک تعداد وجود دارد مرتبط با آن که در واقع می گوید که در آن دقیقا من می خواهم که آیتم های منو به واقع در لیست منوها. اما شما ممکن است متوجه که من در واقع نه هر شماره را با این منوها، به طور پیش فرض. بنابراین چیزی که پنهان کمی وجود دارد که ما می توانیم انجام، یک تغییر کوچک به URL است. بنابراین علاوه بر SDK = 1 & اشکال زدایی = 2، من منوی خواهید مجموعه ای به 1-- و امیدوارم آن منو، نمی منوهای است. آه، آن منوها = 1 است. صبر کن. و آنچه ما را بر آن را ببینید بارگذاری IDE است که من هنوز هم در حالت اشکال زدایی هستم، اما در حال حاضر اعداد وجود دارد در ارتباط با تمام منوها. و این به شما می گوید دقیقا همان چیزی است تعداد زمانی است که شما در حال تلاش برای تزریق چیزی در هر نقطه در این سیستم منو. بنابراین در منوی پنجره، من می توانم دید که مورد 45 همکاری است، و آیتم 38 قبل از آن نصب است. بنابراین، هنگامی که من می خواهم برای تزریق یک آیتم بین آن دو، من فقط می یک شماره انتخاب کنید بین این دو مورد است. بنابراین من انتخاب 41 و سمینار من قرار داده گفت و گو مورد 1 منوی در آن محل. و به همین دلیل این شماره به نظر می رسد که در اینجا شماره 41 است. که محل است که آیتم های منو را در منوی ابر 9. در حال حاضر به طور مشابه، من می خواستم برای ایجاد یک تقسیم و اضافه کردن آن به طوری که یک خوب وجود دارد تقسیم بین هر یک از این منو موارد. بنابراین من افزود که در محل 43. تا کنون، خیلی خوب، من امیدوارم که؟ بنابراین در حال حاضر اجازه دهید در واقع نگاه کد خاص در گفت و گو نشان می دهد که در واقع مسئول برای باز کردن این پنجره محاوره. اسکرول به پایین، من می بینم که من می خواهم به این تابع را نشان می دهد محاوره ای، و آن را بسیار ساده است. من قصد دارم به اجرا نشان می دهد روش در پلاگین در متغیر است. و به یاد داشته باشید که ما این تعریف پلاگین در متغیر بالا به عنوان یک گفت و گو. بنابراین نوار پلاگین، در این مورد، این است شی که ما در داخل تعریف است. و آن را به یک گفتگوی جدید موجود در این پلاگین در. و بنابراین ما در واقع این اشاره پلاگین در متغیر در بسیاری از مکان در یک ابر 9 معمولی محیط توسعه. ما آن را در اینجا ببینید. توجه داشته باشید که به عنوان ما پایین حرکت کنید، این چرخه زندگی اضافی وجود دارد. بنابراین توجه کنید که این پاسخ به اتفاقاتی که از کار اخراج شدند این شی، این شیء گفت و گو. به طور پیش فرض، وجود دارد بارگذاری و تخلیه، که در دسترس همه ابر 9 پلاگین می باشد. اما در صورت این گفت و گو، وجود دارد اتفاق دیگری که می توانید آتش و همچنین نام قرعه کشی، که اخراج زمانی که که در مورد به روی صفحه نمایش کشیده شده است، در وهله اول از گفت و گو نشان دادن. بنابراین، هنگامی که آن را در واقع رفتن به نشان داده شود، در حال رفتن به وجود ارائه به ما برخی از HTML. و فقط با استفاده از استاندارد شیوه های HTML می تواند ما تزریق برخی از اطلاعات بسیار ساده است، سلام جهان ما، در گفت و گو. بنابراین اگر ما پس از آن رفته، ما می توانیم ببینید و سپس در صفوف منظم از همه چیز که آن را اتفاق می افتد. اول ما ایجاد یک فرمان ابر 9 که هنگامی که توسط ابر 9 اعدام، در حال رفتن به آتش این تابع. آن را به اجرای این تابع نام گفتگو نشان می دهد، که من نوشته شده در کد من. من یک آیتم منو ایجاد شده و متصل به آن است که همان دستور که وقتی که در مورد در کلیک منو، که فرمان است پس از آن اجرا و تابع سپس اجرا کنید. و در داخل تابع من فقط رفتن به پاسخ the-- من فقط رفتن به اجرای نمایش روش این پلاگین در که در حال رفتن به اولین تماس روش قرعه کشی، و رفتن به آتش این روش پایین زیر، رسم رویداد، در چرخه زندگی ما. و سپس آن را در واقع خواهد شد گفت و گو نشان می دهد. نیز وجود دارد یک روش مخفی کردن، به طوری که اگر من این فرصت را نیاز به پنهان کردن گفت و گو من، من می توانید همین کار را انجام. به طوری که تقریبا آن به همه از این کار. توجه داشته باشید که اگر ما در پایین حرکت بیشتر یک API عمومی یخ وجود دارد. این اساسا فقط می گوید که من می خواهید این روش به طور موثر عمومی، اما overwriteable نمی شود خارج از چارچوب این پلاگین در. و در زیر، در پایین، شاید این آخرین چیزی است که ما واقعا نیاز به پرداخت توجه زیادی به اینجا، که این است که ما می رویم به ثبت نام ما پلاگین در با نام C9 سمینار 1، و جسم پلاگین در. که به عنوان شما یاد، است که پلاگین که پلاگین در شی است که ما تعریف شده است در سراسر کل این منبع کد. و C9 سمینار 1 است رشته ای که به ما وعده داده به ارائه در بالای این تعریف. باشه. بنابراین اجازه دهید آن تا سطح شیب دار کمی و ببینید که اگر ما می توانیم چیزی را انجام دهید کمی جالب تر است. در حال حاضر این است که تنها آنقدر بزرگ است. منظورم این است، آن را در واقع بسیار خنک که در چند خط کد، می توانید IDE های موجود ما تغییر و اضافه کردن یک آیتم منو های موجود و یا اضافه کردن یک آیتم منو جدید، اضافه کردن یک فرمان، و نشان می دهد گفت و گو، و فقط یک دسته از قابلیت های که وجود دارد. این واقعا خیلی بزرگ است. اما آن مقدار زیادی نمی کند چرا که آن را نمی تواند ارتباط با اوبونتو اساسی به عنوان مثال. بنابراین اجازه دهید بگویم که من در واقع می خواهم برای پیدا کردن برخی از اطلاعات در مورد به عنوان مثال اساسی اوبونتو، مانند آمار پلاگین در می کند. بنابراین اجازه دهید یک نگاهی به کمی اطلاعات بیشتر در مورد چگونگی آمار پلاگین در آثار. و در واقع، آن را بسیار شبیه به این است. شما ممکن است به یاد آورید که یک گفت و گو وجود دارد. شما ممکن است به خاطر وجود دارد که برخی از اطلاعات که فقط در کنار نوار منو نشان داده شده است به همراه بالای، که امیدوارم شما در حال حاضر گرفتن عطر و طعم از چگونه ما این اجرا، فقط با قرار دادن آیتم های منو در خاص امتیاز و با نمونه سازی گفت و گو و نمایش که گفت و گو. اما ما هنوز نشان داده نشده شما چگونه ما می توانیم آن را برای اتصال به یک دستور در زمینه به عنوان مثال اوبونتو. بنابراین اجازه دهید نگاهی سپس در plugin.2، که دقیقا این چیز. ما قصد داریم برای باز کردن plugin.js، که در آن کد برای این است. اما تحت منوی پنجره، اگر من در گفت و گو 2 کلیک کنید، ما می توانید ببینید که این می گوید به جای آن، سلام CS50، که نگاه که فریبنده، درست است؟ به جز، این ساعت مچی. اجازه دهید من چیزی را تغییر دهید در اینجا. من قصد دارم برای رفتن به من فضای کاری و تغییر سمینار به چیز دیگری، مانند سلام، دن. من قصد دارم به آن را ببندید و آن را ذخیره کنید. و در حال حاضر من قصد دارم به دوباره اجرا آیتم منو گفت و گو است. و توجه کنید که آن را تا در حال حاضر تغییر آن را می گوید. سلام، دن. من به نظر می رسد انجام داده اند چیزی را در اینجا به عنوان مثال در زمینه اوبونتو بدون دستکاری هر کد است که دوباره در حال اجرا است تنها در سمت سرویس گیرنده. بنابراین بدیهی است که نوعی از وجود دارد ارتباطات که در اینجا اتفاق می افتد. در حال حاضر این است که در آن بسیاری از قدرت ابر 9 SDK در می آید، است که در این plugin.2، ما در واقع می تواند باعث یک تماس به اتفاق می افتد به به عنوان مثال زمینه ای، و اجرای برخی از فرمان های دلخواه. بنابراین در این مورد، من در واقع ایجاد یک اسکریپت bash بسیار ساده در فضای کاری من به نام سمینار. بنابراین، اجازه دهید باز کردن آن است. و ما می توانید ببینید که آن را مانند این به نظر می رسد. این فقط یک پارتی بسیار ساده است اسکریپت که تنها هدف در زندگی در حال رفتن به به اکو این متن، سلام، دن. و یا قبل از آن، آن را گفت سلام، CS50. و این که همه آن را به انجام است. از آنجا که این در حال حاضر دستور است که من می تواند اجرا شود. من در واقع می توانید آن را اجرا کنید را در اینجا. ما می توانید ببینید که در واقع تنها یک فرمان که من اجرا به طور طبیعی. من می توانم من پلاگین در درخواست برای اجرای این دستور بر روی فضای کاری اساسی و تجزیه اطلاعات که از آن بازگردانده شد، و انجام کاری با آن، و تغییر من پلاگین و رفتار که من در من پلاگین در به عنوان یک نتیجه داشته باشد. باشه. بنابراین بیایید ببینید که چگونه این اتفاق می افتد. ما شاهد این بسیار ساده است سمینار اسکریپت دسته ای که من [نامفهوم] که در واقع می تواند اجرا شود. و اکنون اجازه دهید تغییرات را مشاهده کنید که لازم به بستن این با هم هستند با پنجره محاوره ای، و اجرای آن. بنابراین در اینجا ما قصد داریم برای انجام خیلی به همان چیزی که به عنوان که قبلا دیدیم. اما توجه کنید که در میان چیزهایی که من now-- مصرف این در علاوه بر این به گفت و گو، که دوباره من به اتفاق دو بار انجام می شود، است که علاوه بر necessary-- نیست به گفتگو و دستورات و منوها پلاگین، که در یکی از اولین برای من لازم تعریف یک فرمان جدید و تزریق یک آیتم را به منوها، من هم این پلاگین در مجموعه مقالات است. و این مجموعه مقالات پلاگین اجازه می دهد ما به دستکاری فرآیندهای در نمونه زمینه ای است. من آن متصل شده اید پس از ام گفت که من پلاگین در آن نیاز دارد. من پس از آن آن را به کد متصل شده اید، همانطور که ما در تابع اصلی را دیدم. باز هم، من قصد دارم به مقداردهی اولیه گفت و گو است. و اگر ما در حال حاضر حرکت به پایین، ما می توانید ببینید که چگونه این متفاوت است. تابع بار همان است، بنابراین آن را فقط برای ایجاد یک دستور و ایجاد یک آیتم منو و اتصال که آیتم های منو به که به فرمان. اما اگر ما در حال حاضر حرکت پایین برای نشان دادن گفت و گو، ما می توانیم شروع به دیدن جایی که تفاوت بوجود می آیند. ما باید تابع گفت و گو نشان می دهد، که فقط رفتن برای نشان دادن گفت و گو. اما زمانی که من این گفت و گو را نشان می دهد، و زمانی که روش نشان می دهد نامیده می شود، آن را به آتش تابع قرعه کشی. و من قصد دارم به پس از آن مشخص برخی از مطالب داخل آن. بنابراین من فقط رفتن به ایجاد یک DIV، ارائه آن برخی از متن عمومی، سلام، جهان است. اما توجه کنید که در اینجا من رفتن به متصل به آن یک ID. و خط بعد من برای پیدا کردن که ID با استفاده از جاوا اسکریپت، و ذخیره آن شیء به یک متغیر دیگر که من فقط رفتن به محتوا تماس بگیرید. بنابراین در حال حاضر هر زمان که من محتوا، همه من نیاز به انجام تنها تغییر HTML درونی این شیء است. و گفت و گو خواهد HTML پس از آن اصلاح شود و همچنین. بنابراین، هنگامی که از این پلاگین در است پس از آن نشان داده شده است، که می تواند اتفاق می افتد و این یک رویداد جدید است که به این پلاگین در جدید است، اما با اتفاق می افتد در هر پلاگین در گفت و گو، که این در حال حاضر نشان داده شده است، من قصد دارم به یک تابع به نام واکشی اطلاعات. و این تابع این است گوشت آن را در اینجا. من قصد دارم که به استفاده از مجموعه مقالات پلاگین که ما قبل از که توسط راه توصیف،، است که واقعا فقط یک کتابخانه نود.جیاس که ابر 9 با استفاده از در اینجا. بنابراین شما در واقع می توانید نگاه کردن در مورد چگونگی این کار می کند اگر شما را به رفتن اسناد و مدارک نود.جیاس و نگاه کردن به فایل EXEC روش برای فرآیندهای وجود دارد. من قصد دارم برای اجرای این خاص دستور، خانه اوبونتو فضای کاری سمینار، این است که همان یکی، که همان دستور است که من قبل از ایجاد. ارائه آن را به یک جریان راهنمای کار، فقط به امن فوق العاده از نظر زمینه که در آن این حال اجرا است. و یک بار که شده است تکمیل و بازگشت، من قصد دارم برای اجرای این تابع به نام خروجی تجزیه. باشه. بنابراین این پس از آن است که به اجرا یک دستور بر روی محلی، و یا به جای به عنوان مثال اوبونتو از راه دور. وقتی که من بازگشت برخی از اطلاعات، من پس از آن هستم رفتن به پاسخ یک تابع جداگانه نام خروجی پارسه، که است این امضا در اینجا، گمراه، خروجی استاندارد، stderr را، و انجام برخی محاسبات در این. بنابراین اگر من یک خطا دریافت از نوعی در همه، من در واقع خواهد چک کنید اگر خطا در واقع تا به برخی از داده ها. و اگر چنین است، پس من درونی تغییر خواهد HTML که شی محتوا، که است شما را به یاد ما متصل به گفت و گو در instantiattion که گفت و گو، و یا در نقاشی اول که گفت و گو. من قصد دارم فقط می گویند که برخی از خطا اتفاق افتاده است. در حال حاضر این است بیش از حد ساده انگارانه است. مقدار خطا معمولا شامل چیزی است که مفید بود، شاید تعداد خطا و خطا از اسکریپت خود را. و یا اگر فیلمنامه نوشته چیزی برای خطای استاندارد، که داده می شود جمعیت در آن پارامتر است. و من می تواند یک کمی در مورد چه خطا دقت بیشتری من در واقع نشان دادن مردم است. اما این مثال ساده به اندازه کافی خوب است در حال حاضر به حداقل ببینید که چگونه همه این توابع. در غیر این صورت اگر وجود دارد بدون خطا، پس از آن من فقط رفتن به ارائه خام خروجی آن تابع به HTML داخلی این مطلب به این عنصر، و پس از آن به روز رسانی من پلاگین در و آن را در اینجا نشان می دهد. و که تقریبا همه که لازم برای دریافت این را اجرا کنند. و به این ترتیب اجازه دهید در مورد فکر می کنم پس از آن چگونه این عمل، به طور کلی. هنگامی که من برای اولین بار از این پلاگین در بارگذاری می شود، درست مثل اولین پلاگین، من قصد دارم به اضافه کردن یک فرمان که در دسترس به هر چیزی، به هر پلاگین در در ابر 9، به نام سمینار CS50 گفت و گو 2، که مسئولیت خواهد بود برای اجرای این نمایش گفت و گو، است که شما را به یاد، در واقع گفت و گو را نشان می دهد که من درخواست زیر کلیک کنید. سپس من اضافه خواهد شد که فرمان را به یک منوی پنجره به طوری که من دسترسی به آن را داشته باشد. و زمانی که گفت و گو درخواست شده نشان داده شود، من برخی از اطلاعات از واکشی زمینه به عنوان مثال اوبونتو با استفاده از دستور EXEC فایل. ببخشید. به محض این که برگشته و من دریافت برخی از اطلاعات، و سپس در سمت سرویس گیرنده دوباره، من قادر خواهد بود به تجزیه خروجی آن فرمان و به روز رسانی داخلی HTML از عناصر که ما زودتر متصل بود. و با آن، ما پس از آن این کاملا کاربردی پلاگین در که اجازه می دهد من به واکشی اطلاعات از این اسکریپت دلخواه که ما در ایجاد به عنوان مثال اساسی ما است. اما باز هم، آن را واقعا مهم و واقعا کلیدی برای جدا کردن که در آن هر از این چیزها اتفاق می افتد، که ما همه از این سمت سرویس گیرنده کد است که در حال اجرا در مرورگر، و هنوز دسترسی ندارد به فایل های سیستم قرار تا زمانی که ما در واقع برخی از این اجرا دستورات که توسط ابر ارائه 9 SDK مانند مجموعه مقالات، و برخی از آنهایی که دیگر که به ما اجازه خواندن برخی از داده ها، و یا خواندن بعضی از فایل ها اگر ما نیاز برای انجام هر کاری از نوع. در حال حاضر این یک مثال تا حدودی ساده است. چیزهای دیگر وجود دارد که ما شاید می خواهید به انجام است. به عنوان مثال، شاید ما در واقع می خواهید برای ذخیره برخی از اطلاعات به تنظیمات. یا شاید ما می خواهیم افزودن یک صفحه اولویت جدید یا چیزی در امتداد این خطوط. پس از آن که چیزی است که شما می توانید یک نگاهی به ابر 9 SDK را برای دریافت اطلاعات بیشتر در. اما این واقعا به اندازه کافی برای شروع. بنابراین فقط به کمی بیشتر بتن در مورد راه است که برخی از این چیزها تابع، من می خواهم به نشان می دهد که یک مثال دیگر، است که فقط برخی از این کد از آمار 50 پلاگین در. و این کد را اساسا بر اساس این نمونه که شما در واقع دیده می شود، اما برخی از پادمان بیشتر و برخی از پیچیدگی بیشتر در برای دستیابی به برخی از چیز های اضافی که ما می خواهیم برای رسیدن به. برای مثال، اگر من می خواهم به قادر به ذخیره برخی از تنظیمات، پس از آن من نیاز به دسترسی به به تنظیمات پلاگین، و هر بار که من می خواهم به خواندن برخی از تنظیمات، من می توانم، برای مثال، ضمیمه های مختلف حوادث در تنظیمات پلاگین در. بنابراین هر بار که تنظیمات قرمز است، برای مثال، در خود من پلاگین، اگر من می خواهم به خواندن برخی از تنظیمات از ذخیره سازی ذخیره تنظیمات کاربر، پس از آن من می توانم پیش فرض تعیین شده برای یک مکان خاص، برای اولویت خاص، در آن JSON گزینه های سبک فایل است که ما را پیش از آن نجات داد، که ما قبلا دیده ام. و اگر من قصد دارم به ارسال برخی از تنظیمات به آن، پس از آن من can-- و یا در اسرع وقت ما تشخیص که این تنظیمات نوشته شده است to-- چرا که برای مثال، کسانی که تنظیمات توسط کاربر قابل تغییر است یا به طور مستقیم در تنظیمات خود فایل، و یا پنجره اولویت تنظیمات تغییر کرده است فایل به طور مستقیم، پس از آن من در واقع می تواند به روز رسانی برخی از کد یا به روز رسانی رفتار من پلاگین در بر اساس این تغییرات که بر روی فایل تنظیمات رخ داده است. اما در واقع، بقیه از آن بسیار است خیلی این است که شما در حال حاضر دیده می شود. ما اضافه کردن برخی، شاید چیزی که جدید است. بنابراین ما اضافه کردن یک فایل اولویت، و یا به جای یک پنجره اولویت، در پنجره ترجیحات، که دوباره شما می توانید پیدا کردن اطلاعات بیشتر در ابر 9 SDK من به عنوان خوانده. اما هر چیز دیگری خیلی، خیلی شبیه به آنچه که قبلا دیدیم، فقط با برخی از چک کردن خطا اضافی و برخی از حفاظت اضافی و برخی از قابلیت های اضافی به ویژگی های مختلف همه از چیزهایی که ما را دیده ام. اگر شما در واقع دیده آن نشده است، شما ممکن است بدانم چه اساسی فرمان در پنجره آمار 50 است. این در واقع تابع. خوب، آن is-- آه، لعنتی. یک ثانیه. صبر کن. باشه. اجازه بدهید من این حرکت به بالا پس ما در واقع می توانید دیدن وقتی که من نوع آمار 50 چه اتفاقی می افتد. توجه کنید که در این مورد، دستور است که من هستم قرار دادن است که واقعا دوباره، فقط اسکریپت که رفتن به خروجی یک دسته از اطلاعات در فرمت JSON. و به همین دلیل است که ما آن را انجام این راه این است که چون ما در عامل، چرا که ما نوشته شده است کد سمت سرویس گیرنده در جاوا اسکریپت، ما می توانیم به راحتی فقط تجزیه اشیاء جاوا اسکریپت، و واقعا قادر به دستکاری شود کسانی که اشیاء درست مثل ما که هر شی جاوا اسکریپت است. و به این ترتیب این است که بسیار مناسب راه ارائه برخی از اطلاعات از اساسی به عنوان مثال اوبونتو، مانند شماره نسخه، میزبان نام، چه یک سرور است گوش دادن، چه سرور است، بنابراین و غیره، و تجزیه که بسیار راحتی و به سرعت در پلاگین که پس از رفتن تمام آن اطلاعات به ما نشان دهد. بنابراین دوباره، بینش کلیدی در اینجا به خاطر داشته باشید این جدایی بین است به عنوان مثال زمینه ای، و همچنین که در آن کد است که لود می شود. که زمانی که من یک مشتری، آن را بارگذاری برای اولین بار است. فقط این فایل جاوا اسکریپت استاتیک از جایی، شاید CDN از نوعی است. ما واقعا باید به مراقبت بیش از حد در مورد این مرحله اول است. فقط می دانیم که آن را در حال اجرا در سمت سرویس گیرنده و این زمانی که من قصد دارم به برقراری ارتباط با این عنوان مثال کارگر بارانداز. که ما قصد داریم به انجام این کار از طریق ابر 9 SDK. ما در واقع نه توانایی دارند، با استفاده از جاوا اسکریپت و یا نود.جیاس، به طور مستقیم به آن. ما فقط استفاده از آن SDK موجود رابط های برنامه کاربردی به انجام این کار اقدام برای ما. و دوباره، یکی از چیزهایی که واقعا مهم این است که زمانی که من این را ایجاد کرده اند، زمانی که من این پلاگین در ایجاد کرده اید، و به عنوان من در آن کار می کنم، یکی از مهم را به انجام است را به کنسول جاوا اسکریپت. از آنجا که از این است که همه عامل در جاوا اسکریپت، در سمت سرویس گیرنده، اگر من با استفاده از console.log method-- بنابراین فقط برای نشان دادن یک عنوان مثال در اینجا. بیایید سعی کنید تغییر این ساده پلاگین در به برخی از داده نیز وارد شوید. و ما استاندارد و اضافه کنید. بنابراین تغییر دهید که به حق در اینجا اجازه دهید. حالا وقتی که من اجرا console.log، در ذهن داشته که چون این در حال اجرا است در سمت سرویس گیرنده، من این را در خود من را ببینید جاوا اسکریپت کنسول، که است که چگونه من پس از آن قادر خواهید بود به سعی کنید به عیب یابی و اشکال زدایی برخی از مشکلاتی که من دارم. توجه داشته باشید که به دلیل من در حالت SDK هستم، من پس از آن قادر به دستکاری افزونه ها در این مثال. بنابراین حتی اگر آن ذخیره شده بر روی این مثال، این یک نمونه از آن گذشته است حکومت نقض، که در آن ابر 9 SDK در واقع پلاگین از جلو به عنوان مثال اساسی و سپس آنها را اجرا کنید. به طوری که در این راه، من پس از آن هستم قادر به دستکاری و ساخت برخی از پلاگین در اینجا. اما برای من برای دیدن به روز رسانی به این پلاگین در، چرا که آن را در سمت سرویس گیرنده است، من نیاز به ذخیره که پلاگین در و سپس بارگذاری مجدد کل فضای کاری، به طوری که پلاگین های جدید در پس از آن است دریافت را بر روی موکل من، بر روی من مرورگر وب، و پس از آن استفاده شده است. بنابراین در حال حاضر زمانی که من در این سمینار کلیک کنید گفت و گو 2، ما هنوز هم این را ببینید. اما در حال حاضر جاوا اسکریپت من امیدوارم در گفت و گو، باید ما می بینیم my-- صبر کنید، صبر کن. من ممکن است برای باز کردن تازه گفت و گو. ما باید داده های دریافت شده من اینجا را ببینید. داده های دریافتی، سلام، دن است که شما را به یاد، عملیات console.log بود که ما در پلاگین در درخواست شده است. بنابراین این شرح پس از آن که من قبلا ذکر شد، این گفت و گو، و یا این نمودار و نه، که من پیش از این ذکر است چه اتفاقی می افتد. اما یک مهم وجود دارد استثنا تنها برای توسعه، که این است که پلاگین در خود را ممکن است در واقع به عنوان مثال بر روی بارانداز ذخیره شده به طور موقت، از احتمالا ابر 9 نمیخواهد ما قادر به دستکاری اشیاء در CDN خود. و ابر 9 مشتریان، پس از بارگذاری، خواهد کسانی که پلاگین در آن پیدا کنید. C9 پلاگین در پوشه، و بارگذاری آن. اما کسانی که هنوز هم اتفاق می افتد تنها در سمت سرویس گیرنده. بنابراین پس از آن این است که فقط یک IS استثنا رخ می دهد که تنها برای توسعه ابر 9 پلاگین. اما بقیه time-- و به همین دلیل که ما واقعا می خواهید چکش این home-- دلیل است که بسیاری از زمان این است رفتن به در حال اجرا از CDN، و فقط رفتن به اجرا می شود صرفا از سمت سرویس گیرنده. به طور معمول شما وجود داشته باشد هیچ تعامل با پلاگین، و یا وجود دارد حتی لازم نیست که به هر همین دلیل است که پلاگین خود در واقع در ذخیره شده به عنوان مثال اساسی کارگر بارانداز، به جز در مورد این توسعه SDK. بنابراین دوباره، این تغییر فقط کمی به دلیل این واقعیت که ما در حال اجرا هستند حالت SDK. آن را به پس از آن کسانی بار پلاگین از توسعه، و تنها هدف در اینجا این است به طوری که من می توانم ابر 9 به انجام توسعه استفاده برای ابر 9 پلاگین ها. اما با این حال، این تغییر نمی کند دیگر چگونه هر یک از این کار می کند. آن را هنوز هم در حال اجرا به طور کامل در سمت سرویس گیرنده. این فقط بدان معناست که هر زمان که من می خواهم ایجاد ابر 9 پلاگین در ابر 9، من ایجاد آن پلاگین، آنها را در من. C9 پوشه / پلاگین در خانه من دایرکتوری، مطمئن شوید که من در حالت SDK هستم، بارگذاری مجدد صفحه هر بار که من در واقع ایجاد تغییرات به که پلاگین، و ببینید چه اتفاقی می افتد در کنسول جاوا اسکریپت است. فقط جاوا اسکریپت من مدیریت کنسول مطمئن شوید که هر عیب یابی اطلاعاتی که من جای به کنسول، و یا هر چیز دیگری که ممکن است رخ دهد به دلیل اشتباهات که من نوشته ام در کد من یا مانند آن، به نظر می رسد وجود دارد. و با آن، آن را واقعا به اندازه کافی برای شروع، من فکر می کنم، با ابر 9 پلاگین. به خصوص در نظر گرفتن نگاه در SDK اسناد و مدارک که ابر 9 فراهم می کند. این یک راه عالی برای به دست آوردن آغاز شده، و به راحتی ایجاد برخی از پلاگین برای ابر 9. و با آن، من می خواهم از از همه شما بسیار برای پیوستن به من. من امیدوارم که شما سرگرم کننده را نوشتن پلاگین برای ابر 9. شاید بهبود پلاگین که ما در حال حاضر، و یا شاید حتی اضافه کردن برخی از قابلیت های خود را. ما مشتاقانه منتظر دیدن آنچه در آن است را ایجاد می کنید. تا آن زمان، خداحافظ.