1 00:00:00,000 --> 00:00:05,159 2 00:00:05,159 --> 00:00:09,240 >> DAN Armendáriz: Ola, e benvido a un seminario sobre a personalización CS50 Cloud 9, 3 00:00:09,240 --> 00:00:11,724 eo IDE CS50. 4 00:00:11,724 --> 00:00:13,640 Entón, hoxe nós estamos indo a só falar un pouco 5 00:00:13,640 --> 00:00:16,090 sobre algúns dos información técnica que 6 00:00:16,090 --> 00:00:19,380 vai detrás da arquitectura de Cloud 9, e como 7 00:00:19,380 --> 00:00:25,560 temos implantado algúns dos plugins como parte Cloud 9 para proporcionar CS50 IDE. 8 00:00:25,560 --> 00:00:28,820 Entón imos ir á dereita e comezar a falar sobre os plugins. 9 00:00:28,820 --> 00:00:32,659 >> Así, os plugins son realmente no núcleo da experiencia Cloud 9. 10 00:00:32,659 --> 00:00:37,590 Cloud 9 é a tecnoloxía subxacente que ofrece-nos o IDE 11 00:00:37,590 --> 00:00:42,160 e tamén o terminal na fiestra parte inferior, xunto co workspace-- 12 00:00:42,160 --> 00:00:46,430 Ubuntu que workspace-- usar para compilar todos os nosos proxectos 13 00:00:46,430 --> 00:00:49,190 e realizar os nosos conxuntos de problemas, completar os nosos conxuntos de problemas. 14 00:00:49,190 --> 00:00:51,820 Pero no corazón de todo diso, toda a tecnoloxía 15 00:00:51,820 --> 00:00:54,590 é realmente só unha morea de plugins. 16 00:00:54,590 --> 00:00:58,740 Todo é un plug-in que pode ser modificado, 17 00:00:58,740 --> 00:01:00,710 estendido, pode crear seus propios plugins, 18 00:01:00,710 --> 00:01:03,060 pode eliminar outro plugins, para realmente cambiar 19 00:01:03,060 --> 00:01:07,540 unha morea de funcionalidade do Cloud 9 IDE existente. 20 00:01:07,540 --> 00:01:12,040 >> Polo tanto, este é un existente Cloud 9 ambiente. 21 00:01:12,040 --> 00:01:14,750 Isto é realmente só o default Cloud 9 ambiente. 22 00:01:14,750 --> 00:01:18,450 E dar un ollo a como realmente é diferente do IDE CS50. 23 00:01:18,450 --> 00:01:20,340 Entón que é o IDE CS50. 24 00:01:20,340 --> 00:01:25,060 Teña en conta que hai algúns visuais cambios entre a Nube regulares 9 25 00:01:25,060 --> 00:01:28,000 ambiente e do IDE CS50. 26 00:01:28,000 --> 00:01:30,010 En concreto, vai notar algúns cambios. 27 00:01:30,010 --> 00:01:34,201 En primeiro lugar, hai menos elementos de menú para comezar. 28 00:01:34,201 --> 00:01:36,200 Hai realmente un xeito que pode cambiar iso. 29 00:01:36,200 --> 00:01:37,270 Chámase así simple. 30 00:01:37,270 --> 00:01:40,910 >> Por defecto, o modo sinxelo é activado, e que simplifica algúns dos elementos do menú. 31 00:01:40,910 --> 00:01:43,032 El elimina algunhas das os máis avanzados, 32 00:01:43,032 --> 00:01:45,240 porque, francamente, unha morea de estudantes que están chegando 33 00:01:45,240 --> 00:01:48,550 e non ten que saber sobre algúns dos recursos máis avanzados 34 00:01:48,550 --> 00:01:50,530 non están sobrecarregados con unha morea de opcións. 35 00:01:50,530 --> 00:01:55,610 Pero nós fornecen a capacidade de asumir fóra os chamados rodinhas 36 00:01:55,610 --> 00:01:57,360 e eliminar ese estadas para que a xente 37 00:01:57,360 --> 00:02:00,832 pode chegar a ser máis afeitos os recursos avanzados do IDE. 38 00:02:00,832 --> 00:02:02,540 Inmediatamente ao dereito de que, hai 39 00:02:02,540 --> 00:02:05,435 tamén un botón de depuración, o que na nube estándar 40 00:02:05,435 --> 00:02:08,199 9 ambiente é simplemente chamado de execución. 41 00:02:08,199 --> 00:02:11,990 Pero por defecto, nós configuran o botón de depuración no IDE CS50 42 00:02:11,990 --> 00:02:15,500 para abrir o depurador, compilar automaticamente o código fonte, 43 00:02:15,500 --> 00:02:17,940 conectar o depurador ao GDB-- subxacente 44 00:02:17,940 --> 00:02:21,430 e unha vez que está en execución para realizar o debugging-- e algúns outros pasos 45 00:02:21,430 --> 00:02:22,580 ben. 46 00:02:22,580 --> 00:02:25,370 Ademais, a fiestra de terminal no very-- ou mellor, o terminal 47 00:02:25,370 --> 00:02:29,010 guía na sección de consola no ventá na parte inferior da pantalla, 48 00:02:29,010 --> 00:02:31,004 foi renomeado para simplemente ser terminal. 49 00:02:31,004 --> 00:02:32,837 Tendo en conta que, no estándar Cloud 9 ambiente, 50 00:02:32,837 --> 00:02:35,830 mostra que realmente o execución do programa. 51 00:02:35,830 --> 00:02:39,140 Deste xeito, simplifica, de novo, o GUI, só un pouco. 52 00:02:39,140 --> 00:02:42,310 >> Tamén engadimos algúns botóns na parte superior dereita do IDE 53 00:02:42,310 --> 00:02:45,740 para mostrar unha información básica sobre a instancia subxacente. 54 00:02:45,740 --> 00:02:49,700 E tamén nós eliminamos un das opcións sobre os elementos 55 00:02:49,700 --> 00:02:51,730 da extrema dereita. 56 00:02:51,730 --> 00:02:55,620 Entón, todo isto non é aplicado modificando necesariamente o Cloud 9 57 00:02:55,620 --> 00:02:58,550 código fonte, pero en vez a través dun par 58 00:02:58,550 --> 00:03:03,460 de plugins que Implementar ao longo do ano pasado ou así. 59 00:03:03,460 --> 00:03:08,840 E Cloud 9 ten acollido e en execución no escritorio CS50. 60 00:03:08,840 --> 00:03:13,680 Ou mellor, nos espazos de traballo que son designados como CS50 Ides. 61 00:03:13,680 --> 00:03:17,140 >> Entón, realmente esta é a principal diferenza entre o Cloud 9 eo CS50 62 00:03:17,140 --> 00:03:18,130 espazos de traballo. 63 00:03:18,130 --> 00:03:21,780 Hai tamén, no subxacente exemplo, a principal modificación é 64 00:03:21,780 --> 00:03:25,350 que instalar algún elementos pre-configurados como GDB, 65 00:03:25,350 --> 00:03:29,530 e algunhas outras cousas básicas que creamos, como actualización de 50, 66 00:03:29,530 --> 00:03:33,310 e un par de outras medidas que fan toda a experiencia un pouco máis 67 00:03:33,310 --> 00:03:34,550 unificado. 68 00:03:34,550 --> 00:03:38,520 Pero en xeral, este é só un modificación dun sistema existente 69 00:03:38,520 --> 00:03:40,979 Cloud 9 que creou para nós. 70 00:03:40,979 --> 00:03:42,770 O que nós estamos indo a amosar un pouco máis tarde 71 00:03:42,770 --> 00:03:45,920 é a forma de realmente crear unha plugin algo básicos que 72 00:03:45,920 --> 00:03:49,461 permítenos introducir algo na sistema de menús, e abrir un diálogo. 73 00:03:49,461 --> 00:03:51,210 E se temos o suficiente vez, imos realmente 74 00:03:51,210 --> 00:03:54,210 ver como podemos cubrir ese diálogo con información 75 00:03:54,210 --> 00:03:56,089 do exemplo subxacente. 76 00:03:56,089 --> 00:03:58,880 Para que nós para chegar a ese punto, imos primeiro falar un pouco 77 00:03:58,880 --> 00:04:01,740 sobre a arquitectura de Cloud 9. 78 00:04:01,740 --> 00:04:05,290 >> Así, o xeito que estamos afeitos para interactuar con Cloud 9 79 00:04:05,290 --> 00:04:06,610 é enteiramente a través do cliente. 80 00:04:06,610 --> 00:04:10,610 Nós abrimos un navegador web, digitamos no CS50.io. 81 00:04:10,610 --> 00:04:14,431 Nós finalmente, tras a identificación, preséntanse co IDE. 82 00:04:14,431 --> 00:04:16,180 Pero entender que hai un par de pasos 83 00:04:16,180 --> 00:04:18,180 que realmente levar a este punto. 84 00:04:18,180 --> 00:04:22,390 O primeiro é que meu cliente, o navegador web, 85 00:04:22,390 --> 00:04:27,440 mediante solicitude e despois da identificación, leva o GUI e os plugins 86 00:04:27,440 --> 00:04:30,170 dalgúns CDN, dalgún Content Delivery Network. 87 00:04:30,170 --> 00:04:32,700 Isto pode ser verdade en calquera lugar. 88 00:04:32,700 --> 00:04:35,390 >> E iso é realmente separado do exemplo subxacente. 89 00:04:35,390 --> 00:04:38,890 É importante entender que este é en realidade, só unha morea de arquivos estáticos. 90 00:04:38,890 --> 00:04:42,600 É unha chea de JavaScript que é descargado do CDN 91 00:04:42,600 --> 00:04:45,200 no meu navegador web, e toda a GUI que 92 00:04:45,200 --> 00:04:48,460 aqui-- ver iso é realmente key-- toda a GUI que ve aquí 93 00:04:48,460 --> 00:04:50,480 execútase no lado do cliente. 94 00:04:50,480 --> 00:04:53,820 Todo o que ve no Cloud 9 espazo de traballo 95 00:04:53,820 --> 00:04:56,010 é realmente executada no navegador. 96 00:04:56,010 --> 00:04:59,950 E todo o que envía xunto á instancia subxacente 97 00:04:59,950 --> 00:05:04,000 é comunicada á instancia ao longo desta segunda canle separado, 98 00:05:04,000 --> 00:05:07,240 e é entón gardada en esa instancia estivador. 99 00:05:07,240 --> 00:05:09,660 >> Polo tanto, a razón que eu estou dicindo este é un exemplo estivador 100 00:05:09,660 --> 00:05:12,650 é que a tecnoloxía subxacente non está a usar máquinas virtuais, 101 00:05:12,650 --> 00:05:16,040 pero en vez diso utiliza unha tecnoloxía chamada xanela de encaixe, 102 00:05:16,040 --> 00:05:20,200 que basicamente allows-- o máis próximo analoxía é unha máquina virtual. 103 00:05:20,200 --> 00:05:24,800 Pero é sutilmente diferente en que hai 104 00:05:24,800 --> 00:05:28,900 moitas oportunidades para realizar un combinación de diálogo de encaixe diferente 105 00:05:28,900 --> 00:05:30,760 instancias nunha única máquina. 106 00:05:30,760 --> 00:05:34,660 E pode ser xirado cara arriba en sucesión moi rápida. 107 00:05:34,660 --> 00:05:38,920 Non é exactamente a máis diferenciación estrita 108 00:05:38,920 --> 00:05:42,840 entre diferentes instancias Dock como hai en máquinas virtuais, 109 00:05:42,840 --> 00:05:45,730 pero aínda hai unha morea de diferenciación e separación 110 00:05:45,730 --> 00:05:48,330 entre estes diferentes casos. 111 00:05:48,330 --> 00:05:48,830 Aceptar. 112 00:05:48,830 --> 00:05:50,980 Así, os dous pasos aquí que son importantes para entender 113 00:05:50,980 --> 00:05:57,370 é que cando imos para CS50.io, estamos descargar o GUI e os plugins, 114 00:05:57,370 --> 00:06:01,640 que están escritos en JavaScript, en para o navegador ou o navegador. 115 00:06:01,640 --> 00:06:05,980 E este é quizais un par megabytes de información. 116 00:06:05,980 --> 00:06:09,460 Nese punto, xa que ten a GUI cargado e os plugins xa comezaron, 117 00:06:09,460 --> 00:06:12,530 a continuación, el comeza a comunicarse con a instancia xanela de encaixe, o que non fai 118 00:06:12,530 --> 00:06:15,210 teñen necesariamente que ser o mesmo servidor. 119 00:06:15,210 --> 00:06:16,940 >> Agora hai unha excepción a isto. 120 00:06:16,940 --> 00:06:22,130 Podemos realmente ter tanto o mecanismo de entrega para o propio GUI 121 00:06:22,130 --> 00:06:25,740 ea instancia estivador en todos o mesmo servidor, a cal 122 00:06:25,740 --> 00:06:29,660 é realmente algo que nós facemos para a versión offline do Cloud 9. 123 00:06:29,660 --> 00:06:33,470 Isto non é algo que temos divulgado moi esta caída, 124 00:06:33,470 --> 00:06:35,930 pero tamén teñen unha versión offline que 125 00:06:35,930 --> 00:06:40,010 permite que baixo un embalado versión de todas esas cousas 126 00:06:40,010 --> 00:06:43,670 e permiten que executa Nube 9 nun ambiente fóra de liña. 127 00:06:43,670 --> 00:06:48,325 >> Movendo esta fóra da nube e para súa máquina local ten algún impacto. 128 00:06:48,325 --> 00:06:50,200 En particular, non xa non teñen a capacidade 129 00:06:50,200 --> 00:06:52,280 para compartir o seu espazo de traballo con outras persoas. 130 00:06:52,280 --> 00:06:58,630 Non pode abrir Cloud 9 de, e CS50 o IDE, desde calquera ordenador 131 00:06:58,630 --> 00:07:02,950 e visualizalos arquivos que estaba a traballar antes. 132 00:07:02,950 --> 00:07:06,310 Pero en vez diso funciona totalmente na súa propia máquina local 133 00:07:06,310 --> 00:07:09,270 sen necesidade de conexión a internet. 134 00:07:09,270 --> 00:07:13,330 Pero, aínda así, mesmo nese modelo, aínda aínda que unha máquina virtual 135 00:07:13,330 --> 00:07:15,200 que é esencialmente executando estas cousas. 136 00:07:15,200 --> 00:07:19,480 >> Temos un servidor separado que é entregando esencialmente o Cloud 9 137 00:07:19,480 --> 00:07:23,640 contido, e entón nós teño unha instancia estivador 138 00:07:23,640 --> 00:07:32,280 que é responsable da comunicación que IDE para o back-end. 139 00:07:32,280 --> 00:07:32,780 Aceptar. 140 00:07:32,780 --> 00:07:38,700 Entón, todo o GUI está escrito enteiramente en JavaScript 141 00:07:38,700 --> 00:07:42,800 usando Node.js eo Cloud 9 SDK, que nós imos chegar a en só un minuto. 142 00:07:42,800 --> 00:07:46,650 E todo plugins son executados no lado do cliente. 143 00:07:46,650 --> 00:07:51,780 Entón, imos concentrar a continuación, un pouco asumindo 144 00:07:51,780 --> 00:07:55,670 que este primeiro paso ten realmente rematada con éxito, 145 00:07:55,670 --> 00:07:58,990 e mirar só para esa instancia estivador. 146 00:07:58,990 --> 00:08:01,220 >> Polo tanto, neste caso, este é a forma estándar 147 00:08:01,220 --> 00:08:04,870 de pensar en facer Cloud 9 plugin desenvolvemento é que está indo 148 00:08:04,870 --> 00:08:07,940 para ser código escrito, que será executar no navegador do usuario, 149 00:08:07,940 --> 00:08:11,610 e ten a oportunidade de usando algúns APIs para comunicarse 150 00:08:11,610 --> 00:08:16,470 coa instancia estivador subxacente, realizar algún código alí, e facer algo 151 00:08:16,470 --> 00:08:18,860 que pode querer facer. 152 00:08:18,860 --> 00:08:22,000 Polo tanto, esta será o contexto que imos 153 00:08:22,000 --> 00:08:24,340 estar a usar para o resto da conversa. 154 00:08:24,340 --> 00:08:26,400 E basta manter este modelo en mente. 155 00:08:26,400 --> 00:08:28,966 Isto ser moi importante en só uns minutos. 156 00:08:28,966 --> 00:08:30,840 Hai un par de ligazóns que quero te amosar. 157 00:08:30,840 --> 00:08:34,150 En primeiro lugar, Nube 9 proporcionou unha morea de documentación 158 00:08:34,150 --> 00:08:38,740 iso é moi bo, que mostra como facer plugin de desenvolvemento básico. 159 00:08:38,740 --> 00:08:43,320 Entón, se vai para este URL, cloud9-sdk.readme.io, 160 00:08:43,320 --> 00:08:45,261 podes ver a documentación alí. 161 00:08:45,261 --> 00:08:47,510 E unha morea de esta información que está a piques de ver 162 00:08:47,510 --> 00:08:50,310 tamén se pode acceder alí, ademais de máis. 163 00:08:50,310 --> 00:08:55,880 Tamén pode atopar o código fonte aberto versión do Cloud 9 neste URL, 164 00:08:55,880 --> 00:09:04,270 github.com/c9/core, que usan como parte da versión offline do IDE, 165 00:09:04,270 --> 00:09:07,540 de xeito que será capaz de ter a mesma experiencia Cloud 9, 166 00:09:07,540 --> 00:09:09,660 pero dun modo fóra de liña. 167 00:09:09,660 --> 00:09:10,160 Todo ben. 168 00:09:10,160 --> 00:09:15,560 Entón, imos dar un ollo a un real Cloud 9 espazo de traballo aquí. 169 00:09:15,560 --> 00:09:17,880 E de novo, quero apuntar un par de cousas. 170 00:09:17,880 --> 00:09:21,560 Esta é, aquí, unha IDE CS50 normal. 171 00:09:21,560 --> 00:09:26,830 E eu desactivado salvo modo cómodo baixo o menú Ver 172 00:09:26,830 --> 00:09:28,807 para que eu poida ver todo das opcións do menú. 173 00:09:28,807 --> 00:09:31,140 O que quero amosar-lle dereito agora é un par de cousas. 174 00:09:31,140 --> 00:09:33,140 En primeiro lugar, se eu entrar Preferencias e, a continuación, 175 00:09:33,140 --> 00:09:37,040 prema en Plug-in xerente, e escriba CS50 aquí, 176 00:09:37,040 --> 00:09:40,590 vemos que hai, de feito, un par de CS50 plugins que 177 00:09:40,590 --> 00:09:46,280 Instaláronse e nosa carreira para permitir que as modificacións que temos 178 00:09:46,280 --> 00:09:48,670 visto para o IDE CS50. 179 00:09:48,670 --> 00:09:51,450 >> Agora hai, esencialmente, dous plugins que están en execución. 180 00:09:51,450 --> 00:09:54,980 Hai un chamado simple, que é o de que xeito simplificado 181 00:09:54,980 --> 00:10:00,020 permite reducir o número de opcións de menú na parte superior, 182 00:10:00,020 --> 00:10:03,070 e ter esa chamada modo menos cómodo. 183 00:10:03,070 --> 00:10:07,280 E despois hai tamén Stats CS50, que é quizais un pouco misnamed. 184 00:10:07,280 --> 00:10:09,550 Porque iso é o que móstralle a información 185 00:10:09,550 --> 00:10:10,850 sobre o espazo de traballo subxacente. 186 00:10:10,850 --> 00:10:13,560 Introduce estes botóns na parte superior dereita. 187 00:10:13,560 --> 00:10:18,620 Tamén inxecta un elemento de menú para o elemento de fiestra, no menú Ventá 188 00:10:18,620 --> 00:10:21,730 aquí, CS50 IDE Info. 189 00:10:21,730 --> 00:10:27,380 E é responsable de instanciar este diálogo que vimos aquí, 190 00:10:27,380 --> 00:10:31,460 con todo o que somos afeitos ver nun CS50 IDE 191 00:10:31,460 --> 00:10:32,870 espazo de traballo. 192 00:10:32,870 --> 00:10:33,370 Aceptar. 193 00:10:33,370 --> 00:10:36,910 Polo tanto, hai, en realidade, máis un plugin que desenvolvemos ben. 194 00:10:36,910 --> 00:10:40,110 E hai un par de outros que nós tamén non divulgou publicamente. 195 00:10:40,110 --> 00:10:45,880 Pero un deles é o global plugin que permite que o GDB para funcionar. 196 00:10:45,880 --> 00:10:50,190 Así, un dos aspectos da Cloud 9 é que teñen xa previsto 197 00:10:50,190 --> 00:10:53,210 este GUI para aplicar un depurador. 198 00:10:53,210 --> 00:10:57,360 E un dos plugins que creamos basicamente 199 00:10:57,360 --> 00:11:02,380 garras GDB con este GUI versión en base dun depurador. 200 00:11:02,380 --> 00:11:07,680 E é responsable de mediar todo das solicitudes que un usuario pode ter, 201 00:11:07,680 --> 00:11:10,310 entre pasando por riba ou a creación de puntos de interrupción ou nada 202 00:11:10,310 --> 00:11:15,390 nese sentido, para que traducindo para ordes que GDB pode entender, 203 00:11:15,390 --> 00:11:16,920 emitindo os comandos para GDB. 204 00:11:16,920 --> 00:11:19,260 E logo que GDB emite unha resposta, entón 205 00:11:19,260 --> 00:11:23,250 nós interpretamos iso e actualizar o GUI polo que sexa. 206 00:11:23,250 --> 00:11:25,130 >> Isto pode ser un dos o máis complicado 207 00:11:25,130 --> 00:11:28,840 dos plugins, entón en vez do que somos vai centrar hoxe é de feito 208 00:11:28,840 --> 00:11:34,590 o plugin Stats, e imos falar un pouco sobre simple, tamén. 209 00:11:34,590 --> 00:11:39,100 Entón eu mencionei antes, e eu realmente quero para facer moi, moi claro, que unha vez máis, 210 00:11:39,100 --> 00:11:41,600 todo isto que somos ver aquí é esencialmente 211 00:11:41,600 --> 00:11:43,300 operando no lado do cliente. 212 00:11:43,300 --> 00:11:45,810 Vemos unha fiestra de terminal a continuación, e que, por suposto, 213 00:11:45,810 --> 00:11:49,230 se escribir comandos que, que será entón emitida 214 00:11:49,230 --> 00:11:50,690 á instancia de base. 215 00:11:50,690 --> 00:11:55,280 Do mesmo xeito, se abrimos un novo arquivo e escriba algunhas cousas para el e garda-lo, 216 00:11:55,280 --> 00:11:58,240 o ficheiro serán gardados en o exemplo subxacente. 217 00:11:58,240 --> 00:12:02,310 >> Pero o editor en si, esta propia fiestra de terminal, 218 00:12:02,310 --> 00:12:05,700 é aplicado en toda Javascript e todo é un plug-in 219 00:12:05,700 --> 00:12:09,800 que podemos interactuar con, e, polo tanto, modificar. 220 00:12:09,800 --> 00:12:11,450 Hai unha morea de extensibilidade aquí. 221 00:12:11,450 --> 00:12:14,690 Recomendo dar un ollo en Cloud 9 de conta GitHub 222 00:12:14,690 --> 00:12:17,790 para ver a gran cantidade de plugins que están dispoñibles, 223 00:12:17,790 --> 00:12:23,070 e ben escrito moito do código é para extensibilidade. 224 00:12:23,070 --> 00:12:24,920 Polo tanto, hai algo que quero mencionar 225 00:12:24,920 --> 00:12:30,480 sobre isto, así, o que é que hai un gran número de-- hai 226 00:12:30,480 --> 00:12:33,450 unha serie de funcións que se proporcionada nas preferencias 227 00:12:33,450 --> 00:12:37,970 ventá, o que vimos só aludido a poucos minutos. 228 00:12:37,970 --> 00:12:43,690 >> Unha das cousas que podemos facer como IDE desenvolvedores, ou como Cloud 9 desenvolvedores, 229 00:12:43,690 --> 00:12:47,410 é realmente inxectar algunha Paneis de preferencia da nosa propia. 230 00:12:47,410 --> 00:12:50,660 Así, o modo sinxelo, ou o modo menos cómodo, 231 00:12:50,660 --> 00:12:54,780 e tamén a información de IDE, ou plugin as estatísticas, 232 00:12:54,780 --> 00:12:58,560 cada ten algunha preferencia paneis que nos permiten modificar 233 00:12:58,560 --> 00:13:00,620 o comportamento de cada un deles. 234 00:13:00,620 --> 00:13:04,140 Vai notar que, se eu ir ao Preferencias e ir ás opcións do usuario, 235 00:13:04,140 --> 00:13:07,100 hai unha guía CS50, un que di que a información IDE. 236 00:13:07,100 --> 00:13:09,810 E podo cambiar o información taxa de actualización. 237 00:13:09,810 --> 00:13:12,250 >> Efectivamente, o que está a suceder nas estatísticas de plugin 238 00:13:12,250 --> 00:13:16,690 é que cada n-segundos, onde n-segundos defínese por esta preferencia 239 00:13:16,690 --> 00:13:22,250 panel, a información está a ser buscado do exemplo subxacente, sendo enviado 240 00:13:22,250 --> 00:13:25,490 ao seu lado do cliente, o plugin é, entón, 241 00:13:25,490 --> 00:13:28,650 interpretar a información da instancia subxacente 242 00:13:28,650 --> 00:13:31,470 e actualizar o GUI polo que sexa. 243 00:13:31,470 --> 00:13:34,710 Podemos ver que agora iso é definido a 30 segundos, e iso é o estándar. 244 00:13:34,710 --> 00:13:37,950 Pero podo cambiar definitivamente a rapidez con que isto ocorre só 245 00:13:37,950 --> 00:13:40,520 modificando ese valor. 246 00:13:40,520 --> 00:13:44,330 >> Agora, unha das cousas interesantes é que este panel de preferencias, GUI, 247 00:13:44,330 --> 00:13:49,560 é realmente só unha versión GUI de unha chea de opcións subxacentes 248 00:13:49,560 --> 00:13:52,220 que aparecen en JSON. 249 00:13:52,220 --> 00:13:56,336 Entón, se eu for, por exemplo, baixo a Menú CS50 IDE, ou o menú de Cloud 9, 250 00:13:56,336 --> 00:13:58,210 dependendo de cales versión que está mirando, 251 00:13:58,210 --> 00:14:00,460 e ir a un deses settings-- neste caso 252 00:14:00,460 --> 00:14:03,420 o proxecto do settings-- características do proxecto, neste caso, 253 00:14:03,420 --> 00:14:07,740 aplícase a todas as opcións para este espazo de traballo. 254 00:14:07,740 --> 00:14:11,620 Considerando a configuración do usuario aplicar para todos os espazos de traballo 255 00:14:11,620 --> 00:14:15,110 que pode ter en conta. 256 00:14:15,110 --> 00:14:18,520 >> Así só como un aparte aquí, para ser máis claro, 257 00:14:18,520 --> 00:14:22,570 hai unha separación entre o dous, porque aínda por nós estándar 258 00:14:22,570 --> 00:14:26,490 ter un espazo de traballo, que é o CS50 IDE, se 259 00:14:26,490 --> 00:14:31,900 estaban a facer clic no seu pouco avatar aquí e ir ao panel de control, 260 00:14:31,900 --> 00:14:35,820 vai descubrir que realmente pode crear espazos de traballo adicional. 261 00:14:35,820 --> 00:14:39,140 Podes ver aquí que eu teño un IDE de 50 de espazo de traballo, e tamén 262 00:14:39,140 --> 00:14:41,930 para os efectos da presente seminario, un espazo de traballo 263 00:14:41,930 --> 00:14:45,084 chamado espazo de traballo, que é aquí mesmo. 264 00:14:45,084 --> 00:14:46,750 En calquera caso, eu teño preferencias diferentes. 265 00:14:46,750 --> 00:14:49,910 Cada un destes pode ter preferencias do proxecto separados, 266 00:14:49,910 --> 00:14:54,091 pero as preferencias do usuario son compartido entre todos os meus espazos de traballo. 267 00:14:54,091 --> 00:14:55,840 By the way, este é tamén moi útil se 268 00:14:55,840 --> 00:14:59,080 quere crear un espazo de traballo con diferentes opcións de personalización. 269 00:14:59,080 --> 00:15:01,640 E é moi útil para crear un novo espazo de traballo. 270 00:15:01,640 --> 00:15:04,230 E elixir aquel que se pode preconfigurado dalgunha outra forma, 271 00:15:04,230 --> 00:15:07,000 quizais para PHP concreto, ou especificamente Django. 272 00:15:07,000 --> 00:15:08,960 Ou mesmo só a pedido. 273 00:15:08,960 --> 00:15:11,320 O espazo de traballo CS50 modelo é o que nós 274 00:15:11,320 --> 00:15:15,420 usar que instala automaticamente Actualización de 50 e todas as opcións 275 00:15:15,420 --> 00:15:20,531 que ten alí, incluíndo toda a Os plugins que temos para o IDE CS50. 276 00:15:20,531 --> 00:15:21,030 Aceptar. 277 00:15:21,030 --> 00:15:22,200 Pero imos volver a este. 278 00:15:22,200 --> 00:15:25,640 Entón, de novo, hai proxectos configuración, e eses son os que 279 00:15:25,640 --> 00:15:27,140 que estamos a ver aquí. 280 00:15:27,140 --> 00:15:29,056 E teña en conta que non hai son unha banda de configuración, 281 00:15:29,056 --> 00:15:32,720 moitos deles corresponden ás preferencias paneis, pero non todos eles. 282 00:15:32,720 --> 00:15:40,800 Pero podemos ver que aquí, en isto-- oh non, eu poñelas na configuración do usuario? 283 00:15:40,800 --> 00:15:43,280 Poida que eu poñelas na configuración do usuario. 284 00:15:43,280 --> 00:15:45,480 E isto, aquí imos nós. 285 00:15:45,480 --> 00:15:49,840 Na configuración do usuario, podemos ver que temos unha sección CS50, 286 00:15:49,840 --> 00:15:53,762 e isto está a ser escrito para estes Nube 9 plugins 287 00:15:53,762 --> 00:15:54,720 que temos implementado. 288 00:15:54,720 --> 00:15:57,400 Hai o simple para coincide con ese plugin simple, 289 00:15:57,400 --> 00:16:00,930 e as estatísticas que un corresponde á interface gráfica baseada 290 00:16:00,930 --> 00:16:02,440 versión do panel de preferencias. 291 00:16:02,440 --> 00:16:05,740 A taxa de actualización, neste caso, defínese como 20 segundos. 292 00:16:05,740 --> 00:16:09,740 >> Isto é todo, espero, o comezos de información 293 00:16:09,740 --> 00:16:14,420 que imos realmente ver en algo pouco máis detalladamente, momentaneamente. 294 00:16:14,420 --> 00:16:14,920 Aceptar. 295 00:16:14,920 --> 00:16:17,520 Entón, imos dicir que queremos realmente comezar a el. 296 00:16:17,520 --> 00:16:20,600 Entendemos que todas as cousas que está a suceder no lado do cliente 297 00:16:20,600 --> 00:16:24,560 está feito, en realidade, o navegador, que significa que calquera plugins que eu escriba 298 00:16:24,560 --> 00:16:27,990 van ser escrito co navegador presente. 299 00:16:27,990 --> 00:16:30,830 E se realmente quero facer nada no espazo de traballo, 300 00:16:30,830 --> 00:16:33,360 Eu quizais teña que iniciar algún tipo de comunicación 301 00:16:33,360 --> 00:16:35,970 entre o navegador eo o espazo de traballo para estar seguro 302 00:16:35,970 --> 00:16:38,212 que é realmente realizado. 303 00:16:38,212 --> 00:16:40,170 Pero imos dicir que agora Eu quero comezar a el 304 00:16:40,170 --> 00:16:43,440 e realmente crear o meu primeiro plugin. 305 00:16:43,440 --> 00:16:48,970 Ben, o xeito que sería capaz de facelo é realmente moi fácil. 306 00:16:48,970 --> 00:16:51,370 É dado o Cloud 9 SDK. 307 00:16:51,370 --> 00:16:55,520 Pero é para tomar o seu Nome do espazo de traballo existente, que 308 00:16:55,520 --> 00:16:59,810 é a URL que ten na parte superior da bar, e engadir o seguinte a el. 309 00:16:59,810 --> 00:17:00,310 ? 310 00:17:00,310 --> 00:17:00,893 SDK = 1 & Debub = 2. 311 00:17:00,893 --> 00:17:04,369 312 00:17:04,369 --> 00:17:08,260 Agora, o que é que isto vai permitir é que o SDK = 1 vai realmente facer que o SDK 313 00:17:08,260 --> 00:17:11,430 modo a verdade, o que permitirá un par de cousas adicionais. 314 00:17:11,430 --> 00:17:15,770 E depuración = 2 permitirá que as mensaxes de erro para ser un pouco máis detallada. 315 00:17:15,770 --> 00:17:20,170 >> E por iso, se abre o JavaScript consola no seu guía creador Chrome, 316 00:17:20,170 --> 00:17:22,829 vai realmente ser capaz de ver máis información 317 00:17:22,829 --> 00:17:24,349 que faría doutro xeito. 318 00:17:24,349 --> 00:17:28,310 Entón, eu recomendo transformando ambos á vez, porque realmente 319 00:17:28,310 --> 00:17:31,170 É útil dispor de toda esta Información adicional. 320 00:17:31,170 --> 00:17:35,330 É importante ter en conta, con todo, que conectar de depuración para o valor de 2 321 00:17:35,330 --> 00:17:38,120 significa que é moi detallado, e realmente 322 00:17:38,120 --> 00:17:42,590 vai un pouco visiblemente máis lento o IDE, especialmente cando a carga 323 00:17:42,590 --> 00:17:45,657 ou cando facer facer tarefas pesadas. 324 00:17:45,657 --> 00:17:46,740 Entón, só tes que manter isto presente. 325 00:17:46,740 --> 00:17:51,500 É útil para o desenvolvemento, pero Non podes querer telo conectado o tempo. 326 00:17:51,500 --> 00:17:53,080 >> Entón imos realmente facelo. 327 00:17:53,080 --> 00:17:59,374 Pero, neste caso, eu realmente teño xa creou un espazo de traballo con este. 328 00:17:59,374 --> 00:18:00,540 Entón imos ver, SDK = 1 & depuración = 2. 329 00:18:00,540 --> 00:18:03,140 330 00:18:03,140 --> 00:18:07,770 Cun par de plugins espero xa instalado. 331 00:18:07,770 --> 00:18:08,340 Todo ben. 332 00:18:08,340 --> 00:18:15,050 Polo tanto, agora que eu teño conectado a depuración SDK modo, repare en que estamos en modo de depuración, 333 00:18:15,050 --> 00:18:20,430 para que poidamos mirar para as ferramentas dev para ver posibles erros, que eu vou facer fóra de campo. 334 00:18:20,430 --> 00:18:23,110 Podemos ver que non hai unha morea de erros aquí. 335 00:18:23,110 --> 00:18:28,090 Agora é realmente moi común para Cloud 9 para ter un par de erros, 336 00:18:28,090 --> 00:18:30,680 e eu non me preocuparía sobre eles ata que 337 00:18:30,680 --> 00:18:32,930 vexa algo que pode ser específico para o plugin 338 00:18:32,930 --> 00:18:34,510 que ocorrer de estar creando. 339 00:18:34,510 --> 00:18:37,620 >> Entón, aquí, por exemplo, obtemos un par de 404s-- non atopado. 340 00:18:37,620 --> 00:18:42,910 Vemos non podemos cargar algún información fóra da instancia subxacente 341 00:18:42,910 --> 00:18:43,670 si. 342 00:18:43,670 --> 00:18:46,545 E hai unha morea de adicional información, pero a maior parte deste que estamos 343 00:18:46,545 --> 00:18:47,970 realmente indo para ignorar por agora. 344 00:18:47,970 --> 00:18:50,130 Porque iso é moi común para un espazo de traballo 345 00:18:50,130 --> 00:18:53,200 ter só un par de erros. 346 00:18:53,200 --> 00:18:53,700 Aceptar. 347 00:18:53,700 --> 00:18:56,680 Eu estou indo a ir esta fóra de o camiño e volver aquí. 348 00:18:56,680 --> 00:19:01,860 E agora o camiño máis doado, o Niza cousa sobre ter este creador 349 00:19:01,860 --> 00:19:07,330 modo activado é que me permite para crear facilmente un novo plugin. 350 00:19:07,330 --> 00:19:12,390 >> Así, mentres que antes eu realmente non fixen ter esta nova opción plugin está dispoñible, 351 00:19:12,390 --> 00:19:16,460 que podemos ver se eu volver meu modo non creador aquí, 352 00:19:16,460 --> 00:19:18,510 non hai ningún novo plugin. 353 00:19:18,510 --> 00:19:23,220 Ao activar o modo SDK, I ten un novo plugin está dispoñible 354 00:19:23,220 --> 00:19:25,660 e podo facilmente crear unha. 355 00:19:25,660 --> 00:19:28,160 Neste caso, hai unha parella de diferentes opcións, simple, 356 00:19:28,160 --> 00:19:30,850 un plugin baleiro, un plugin completo, instalador, Cloud 9 Bundle. 357 00:19:30,850 --> 00:19:33,030 Nós só escoller un plugin baleiro polo de agora 358 00:19:33,030 --> 00:19:37,670 para que poidamos ver un moi versión simple dun. 359 00:19:37,670 --> 00:19:41,520 >> Agora conta que ao longo da á esquerda que está aí é agora 360 00:19:41,520 --> 00:19:45,080 algo en favoritos, que está list un par de plugins 361 00:19:45,080 --> 00:19:47,020 que agora están dispoñibles para min. 362 00:19:47,020 --> 00:19:50,420 Se eu ampliar iso, imos vexa aqueles. 363 00:19:50,420 --> 00:19:52,730 Agora quero que teña en conta algo aquí, que 364 00:19:52,730 --> 00:19:58,260 é que este non é, en realidade contida dentro do directorio do espazo de traballo 365 00:19:58,260 --> 00:20:03,190 no meu exemplo Ubuntu subxacente, pero está contida no disco duro. 366 00:20:03,190 --> 00:20:06,330 E onde está situado, porque iso é moi útil para saber, 367 00:20:06,330 --> 00:20:09,570 especialmente se está indo a estar facendo nada con Git, 368 00:20:09,570 --> 00:20:16,870 onde reside este é nun cartafol .c9, / plugins. 369 00:20:16,870 --> 00:20:21,110 Entón, se eu for alí, podemos ver que agora a lista de plugins que está aquí 370 00:20:21,110 --> 00:20:26,390 corresponda á lista de plugins que viu na parte esquerda da miña zona de traballo. 371 00:20:26,390 --> 00:20:28,610 >> Agora, por defecto, e este é o tipo de raro, 372 00:20:28,610 --> 00:20:31,760 por defecto cando crear unha novo plugin nun espazo de traballo, 373 00:20:31,760 --> 00:20:36,620 crea este plugin que por estándar ten un nome dun subliñado. 374 00:20:36,620 --> 00:20:39,760 Xeralmente que pode causar algúns problemas. 375 00:20:39,760 --> 00:20:42,340 Así, o seguinte paso que normalmente realizar 376 00:20:42,340 --> 00:20:45,880 é só para eliminar esa plugin específico 377 00:20:45,880 --> 00:20:52,810 e deixar só o plugin simple que Foi hai inicialmente, plugin.simple. 378 00:20:52,810 --> 00:20:55,430 E iso é o único que está aí. 379 00:20:55,430 --> 00:20:55,930 Aceptar. 380 00:20:55,930 --> 00:20:58,380 >> Entón o que iso realmente se parece? 381 00:20:58,380 --> 00:21:01,210 Ben, é dicir, de novo, un paquete JavaScript 382 00:21:01,210 --> 00:21:05,220 que inclúe algúns ficheiros, incluíndo un ficheiro plugin.js, onde 383 00:21:05,220 --> 00:21:07,700 o contido principal do meu plugin está situado, 384 00:21:07,700 --> 00:21:10,590 un arquivo package.json, que realmente especifica 385 00:21:10,590 --> 00:21:13,760 algúns metadatos sobre este plugin, como quen é o autor, 386 00:21:13,760 --> 00:21:19,240 calquera información adicional sobre iso, un Descrición do plugin, e así por diante. 387 00:21:19,240 --> 00:21:22,190 E tamén por defecto, crea un ficheiro README en branco, 388 00:21:22,190 --> 00:21:26,100 e un ficheiro de proba en branco para ti crear documentación adicional, 389 00:21:26,100 --> 00:21:29,430 e un látego de fíos de proba se desexa facer isto. 390 00:21:29,430 --> 00:21:34,160 >> Entón imos dar un ollo á primeira, moi rapidamente, o ficheiro package.json. 391 00:21:34,160 --> 00:21:38,240 É doado abondo para só pasar por Lo e cubrir as áreas deste 392 00:21:38,240 --> 00:21:42,510 que desexa cubrir, como proporcionar-lle un nome, unha descrición, 393 00:21:42,510 --> 00:21:45,010 iterado o número de versión de cando en vez, proporcionar 394 00:21:45,010 --> 00:21:47,570 un autor para cada persoa que contribúe, 395 00:21:47,570 --> 00:21:53,000 engadila los para os contribuíntes sección, eo resto deste vostede 396 00:21:53,000 --> 00:21:56,390 Pode moi ben só deixar como é para agora. 397 00:21:56,390 --> 00:21:58,490 >> Hai unha cousa que é importante ter en conta, 398 00:21:58,490 --> 00:22:04,990 que na sección de plugins, existe unha clave chamada plugin. 399 00:22:04,990 --> 00:22:11,800 E este é comparado co nome de o ficheiro JavaScript chamado plugin.js. 400 00:22:11,800 --> 00:22:18,290 Entón é así Cloud 9 sabe, cando se le este ficheiro package.json, que 401 00:22:18,290 --> 00:22:20,720 dos js arquivos para realmente cargar. 402 00:22:20,720 --> 00:22:25,440 Se eu crear arquivos js adicionais ou quere renomear o ficheiro js do plugin, 403 00:22:25,440 --> 00:22:30,380 Eu tamén teño que mudalo no arquivo package.json. 404 00:22:30,380 --> 00:22:33,660 >> Calquera preguntas do público? 405 00:22:33,660 --> 00:22:34,160 Non. 406 00:22:34,160 --> 00:22:38,100 Que unha persoa que é a continuación xunto comigo ata agora. 407 00:22:38,100 --> 00:22:38,760 >> Aceptar. 408 00:22:38,760 --> 00:22:42,300 Entón, realmente crearon unha par de plugins xa, 409 00:22:42,300 --> 00:22:44,100 Eu creo que, neste espazo de traballo. 410 00:22:44,100 --> 00:22:53,800 Entón, imos nos librar de algúns deles, engade SDK = 1 & depuración = 2, recargue esta área de traballo, 411 00:22:53,800 --> 00:22:58,780 e veremos si ten eses plugins agora. 412 00:22:58,780 --> 00:23:01,430 C9 / plugins. 413 00:23:01,430 --> 00:23:01,930 Alá imos. 414 00:23:01,930 --> 00:23:06,910 Vemos agora nos meus C9 / plugins deste un, temos plugin.1 e plugin.2. 415 00:23:06,910 --> 00:23:15,260 Entón, nós estamos indo só para intensificar as-- só aumentar a cantidade de dificultade 416 00:23:15,260 --> 00:23:16,660 en cada un destes plug-ins. 417 00:23:16,660 --> 00:23:20,140 Pero aquí si crear un novo plugin, I pode engadir lo a favoritos. 418 00:23:20,140 --> 00:23:25,560 E eu vou simplemente borrar os de o sistema de ficheiros subxacente. 419 00:23:25,560 --> 00:23:28,050 >> Imos eliminar iso. 420 00:23:28,050 --> 00:23:33,206 Agora, se eu abrir a miña primeira plug-in, e plugin.js abertas, 421 00:23:33,206 --> 00:23:39,980 podemos ver aquí o subxacente versión simple dun plugin. 422 00:23:39,980 --> 00:23:42,170 Déixeme realmente volver Este outro espazo de traballo 423 00:23:42,170 --> 00:23:47,160 porque pode, polo menos, aquí ver, o que un plugin baleiro realmente parece. 424 00:23:47,160 --> 00:23:51,810 Entón, baixo o capo, iso parece moi semellante á tecnoloxía chamada, 425 00:23:51,810 --> 00:23:53,780 Eu creo, é RequireJS. 426 00:23:53,780 --> 00:23:56,000 Lembre que isto non fai realmente ollar, quizais, 427 00:23:56,000 --> 00:23:59,150 o mesmo que algunha outra JavaScript arquivos que poderiamos ver. 428 00:23:59,150 --> 00:24:04,250 Pero en vez diso, hai un par de só liñas básicas que realmente ten. 429 00:24:04,250 --> 00:24:06,900 >> Todo este material é primeiro interpretado polo IDE, 430 00:24:06,900 --> 00:24:09,940 pero non é, en realidade, executar ata que sexa indicado. 431 00:24:09,940 --> 00:24:13,610 E eu vou che dicir sobre cando iso significa, en realidade, en só un momento. 432 00:24:13,610 --> 00:24:17,840 Pero teña en conta que aquí hai unha main.consumes liña na liña 2, 433 00:24:17,840 --> 00:24:23,270 e esta lista todo plugins que este plugin é dependente. 434 00:24:23,270 --> 00:24:27,150 Entón, por defecto, nós quizais non calquera dependencias doutros plugins, 435 00:24:27,150 --> 00:24:30,530 pero cando realmente precisa depender características ofrecidos 436 00:24:30,530 --> 00:24:34,900 por outros plugins do IDE, necesitamos incluír os plugins 437 00:24:34,900 --> 00:24:36,890 na liña main.consumes. 438 00:24:36,890 --> 00:24:39,230 E entón necesitamos vincula-los ao código 439 00:24:39,230 --> 00:24:42,860 a continuación, que eu vou lle amosar en só un momento sobre como podemos facelo. 440 00:24:42,860 --> 00:24:46,100 >> Main.provides dá un nome a este plugin 441 00:24:46,100 --> 00:24:49,190 que outros plugins podería usar na súa liña consome. 442 00:24:49,190 --> 00:24:52,480 Polo tanto, neste caso, o meu plugin é só un conxunto alí por defecto, 443 00:24:52,480 --> 00:24:55,820 e debemos cambiar isto para ser aplicable ao noso propio plugin, 444 00:24:55,820 --> 00:24:57,540 como veremos en só momento. 445 00:24:57,540 --> 00:25:01,230 Agora, aquí en función principal, esta función principal 446 00:25:01,230 --> 00:25:05,630 é realmente executada e interpretados, pero realmente non facer moito. 447 00:25:05,630 --> 00:25:08,970 El só queda todo configurado, pero en realidade non iniciar o plug-in, 448 00:25:08,970 --> 00:25:11,220 a pesar do que o nome soa como. 449 00:25:11,220 --> 00:25:14,690 Isto realmente acontece través unha secuencia de métodos que 450 00:25:14,690 --> 00:25:16,820 están contidos ao longo deste plugin. 451 00:25:16,820 --> 00:25:20,830 >> Entón, se eu rolar para abaixo podemos ver que temos un ciclo de vida en que 452 00:25:20,830 --> 00:25:25,100 nalgún evento denominado de carga, ou algún evento chamado de descarga, 453 00:25:25,100 --> 00:25:26,940 algúns eventos realmente ocorrer. 454 00:25:26,940 --> 00:25:33,500 Realmente aquí onde, como o plugin comeza que estes métodos son chamados. 455 00:25:33,500 --> 00:25:37,240 Entón, imos ser un pouco máis concreto sobre iso e mirar un exemplo. 456 00:25:37,240 --> 00:25:41,010 Entón aquí para plugin.1, o que estamos basicamente vai facer 457 00:25:41,010 --> 00:25:46,010 é crear un elemento de menú CS50 chamado Seminario de Diálogo 1-- 458 00:25:46,010 --> 00:25:48,070 porque temos dous eles-- e imos 459 00:25:48,070 --> 00:25:50,300 para inxecta-lo no menú Ventá. 460 00:25:50,300 --> 00:25:54,590 E cando premer sobre el, somos abrirá un diálogo que 461 00:25:54,590 --> 00:25:56,290 móstranos unha información moi básico. 462 00:25:56,290 --> 00:25:58,050 >> Neste caso, só un Ola mundo. 463 00:25:58,050 --> 00:26:01,880 Polo tanto, esta é unha forma moi simples Ola diálogo mundo 464 00:26:01,880 --> 00:26:05,260 que pode aplicar como un plugin en Cloud 9. 465 00:26:05,260 --> 00:26:07,960 Entón, imos ver como isto realmente parece. 466 00:26:07,960 --> 00:26:12,730 Nós imos percorrelo lo, só de forma relativamente rápida para que 467 00:26:12,730 --> 00:26:15,580 pode ver na seguinte plugin tamén. 468 00:26:15,580 --> 00:26:19,510 Lembre que aquí estamos consumir unha variedade de plugins. 469 00:26:19,510 --> 00:26:26,080 Estamos consumindo un diálogo plug-in, comandos, menús, e UI. 470 00:26:26,080 --> 00:26:30,440 Parece que realmente estou consumindo diálogo dúas veces, para que eu poida eliminar iso. 471 00:26:30,440 --> 00:26:32,560 >> E teña en conta que o camiño que estou conectando-os, 472 00:26:32,560 --> 00:26:37,940 este é o tipo de metadatos que está dicindo o sistema plugin que requisitos 473 00:26:37,940 --> 00:26:41,480 son realmente necesario para este plugin a carga. 474 00:26:41,480 --> 00:26:46,400 Tamén é importante notar que a fin de que os plugins carga 475 00:26:46,400 --> 00:26:48,300 non se pode garantir. 476 00:26:48,300 --> 00:26:53,400 Pero o que se pode garantir é que se eu especificar algúns plugin como un requisito, 477 00:26:53,400 --> 00:26:56,900 que plugin será cargado antes de que é cargado. 478 00:26:56,900 --> 00:27:00,390 >> Entón isto significa que se o plugin require dalgunha función dada 479 00:27:00,390 --> 00:27:04,380 por outra cousa no IDE, ten que estar seguro de que os seus plugin consome 480 00:27:04,380 --> 00:27:09,260 que plug-in, de xeito que as dependencias están determinados a crear o seu plugin, 481 00:27:09,260 --> 00:27:15,010 ou instanciar seu plugin, única despois existe ese cadro existente. 482 00:27:15,010 --> 00:27:18,870 Entón aquí eu mencionado a metadatos para o director de plug-in, 483 00:27:18,870 --> 00:27:20,990 que eses que eu estou indo a consumir. 484 00:27:20,990 --> 00:27:24,910 E na función principal aquí, Vou a continuación, conectar 485 00:27:24,910 --> 00:27:30,240 meu código para estes plugins importados. 486 00:27:30,240 --> 00:27:33,420 >> Entón, eu estou indo só para crear algunhas variables que 487 00:27:33,420 --> 00:27:36,620 coincidir cos nomes de cada un destes tan que eu poida moi rapidamente referencia a eles 488 00:27:36,620 --> 00:27:37,840 en todo o meu código. 489 00:27:37,840 --> 00:27:41,840 A razón que eu estou importar diálogo é porque quero o meu plugin 490 00:27:41,840 --> 00:27:44,560 para actuar como un plugin de diálogo. 491 00:27:44,560 --> 00:27:49,320 E o xeito que eu son capaz para facer isto é, por suposto, 492 00:27:49,320 --> 00:27:52,740 conectar o meu código ao diálogo plugin importando- 493 00:27:52,740 --> 00:27:57,210 e, a continuación, por especificando creando unha nova variable de diálogo 494 00:27:57,210 --> 00:28:00,460 e conecta-lo ao que plugin de importación. 495 00:28:00,460 --> 00:28:04,820 E, a continuación, a través da definición de meu plugin como un novo diálogo. 496 00:28:04,820 --> 00:28:07,650 >> Así, no inicio, eu quere facer que o meu plugin. 497 00:28:07,650 --> 00:28:10,440 E esa variable chamada plugin verás 498 00:28:10,440 --> 00:28:14,030 só é usado comunmente todo Cloud 9 plugins. 499 00:28:14,030 --> 00:28:16,980 Eu estou indo a instanciar un novo diálogo con algúns atributos, 500 00:28:16,980 --> 00:28:22,300 darlle un nome específico, dicir que é posible para os usuarios para a pechar. 501 00:28:22,300 --> 00:28:24,960 Que vai mostrar un pouco de x en o ángulo superior dereito, 502 00:28:24,960 --> 00:28:27,529 ou un pequeno botón no ángulo inferior dereito. 503 00:28:27,529 --> 00:28:30,570 Ou non podo seleccionar o texto Lo, o que o título deste diálogo 504 00:28:30,570 --> 00:28:32,400 sería, e así por diante. 505 00:28:32,400 --> 00:28:36,330 Agora, esta só define o diálogo, pero aínda non mostra-lo. 506 00:28:36,330 --> 00:28:40,780 En realidade, teño que definir unha acción para que poida ser demostrado. 507 00:28:40,780 --> 00:28:43,490 >> E de novo, eu encouraged-lo a Bótalle un ollo ao Cloud 9 SDK, 508 00:28:43,490 --> 00:28:46,930 porque hai unha variedade de diálogos e son moi ben documentados. 509 00:28:46,930 --> 00:28:50,500 Podes ver os distintos tipos que existen, e usalos 510 00:28:50,500 --> 00:28:55,380 en calquera plugin que ten en mente. 511 00:28:55,380 --> 00:28:58,790 Agora non vai ser un sección de carga, e esta carga 512 00:28:58,790 --> 00:29:03,390 función como recorda é utilizada por ciclo de vida do plugin 513 00:29:03,390 --> 00:29:07,060 para realmente instanciar todo e deixar todo preparado para ir. 514 00:29:07,060 --> 00:29:11,440 Agora, cando este plugin cargas, non quere amosar inmediatamente un diálogo, 515 00:29:11,440 --> 00:29:14,160 porque este plugin será cargado xunto co resto do IDE. 516 00:29:14,160 --> 00:29:17,850 E cando cargar o IDE, eu non quero o diálogo para aparecer automaticamente. 517 00:29:17,850 --> 00:29:24,170 Eu só quero iso para mostrar cando clic en a opción de menú no meu elemento de menú Ventá 518 00:29:24,170 --> 00:29:26,760 que eu vou engadir a el momentaneamente. 519 00:29:26,760 --> 00:29:29,480 >> Polo tanto, hai dúas etapas distintas aquí que ten que pasar. 520 00:29:29,480 --> 00:29:32,640 Teño que crear un mando eo mando 521 00:29:32,640 --> 00:29:37,940 será responsable da verdade mostrando o diálogo sobre o Cloud 9 IDE. 522 00:29:37,940 --> 00:29:42,670 E entón eu teño que chamar, eu ten que crear un novo menú fiestra 523 00:29:42,670 --> 00:29:46,070 elemento, que executa este comando. 524 00:29:46,070 --> 00:29:49,740 De xeito que cando clic en que Xanela elemento de menú, o comando é entón executado 525 00:29:49,740 --> 00:29:52,290 e, polo tanto, o meu diálogo móstrase. 526 00:29:52,290 --> 00:29:55,690 E así esta é realmente unha fermosa Nice forma de pensar sobre iso. 527 00:29:55,690 --> 00:30:01,480 >> Porque primeiro podo crear un comando cuxo nome é CS50 Seminario de Diálogo 1, 528 00:30:01,480 --> 00:30:04,860 que ofrece algúns contexto xeral para el. 529 00:30:04,860 --> 00:30:08,930 E o pouco importante aquí é teña en conta o atributo exec, que 530 00:30:08,930 --> 00:30:15,160 enumera unha función que será chamada no meu plugin cando este comando é executado. 531 00:30:15,160 --> 00:30:21,980 Así, este comando é unha especie de um-- é só unha nube arbitraria 9 532 00:30:21,980 --> 00:30:25,780 mando que está dispoñible a calquera Cloud 9 plugin. 533 00:30:25,780 --> 00:30:30,290 Pero a función real que é vai chamar cando ese comando execútase 534 00:30:30,290 --> 00:30:35,010 é a función concerto de diálogo no meu arquivo plugin.js. 535 00:30:35,010 --> 00:30:38,550 >> E podemos realmente ver estes plugins ea lista 536 00:30:38,550 --> 00:30:45,480 de comandos que están dispoñibles para nós en Preferencias, percorrer todo o camiño down-- 537 00:30:45,480 --> 00:30:48,180 imos ver, en realidade, é que imos ver iso agora? 538 00:30:48,180 --> 00:30:53,180 Plugin manager, non, eu creo que é i-- definitivamente por aquí nalgún lugar. 539 00:30:53,180 --> 00:31:00,016 Así, hai unha lista de comandos nalgún lugar, pero eu teño que ter, 540 00:31:00,016 --> 00:31:01,140 Esquecín o meu onde está. 541 00:31:01,140 --> 00:31:02,430 Así, OK, imos seguir adiante. 542 00:31:02,430 --> 00:31:02,930 Todo ben. 543 00:31:02,930 --> 00:31:05,790 Polo tanto, temos unha lista de comandos que están dispoñibles para nós, 544 00:31:05,790 --> 00:31:08,550 e as ordes son estes só arbitraria Cloud 9 545 00:31:08,550 --> 00:31:10,870 comandos que executan código específico. 546 00:31:10,870 --> 00:31:13,620 Entón, só tes que manter isto presente, que nós estamos indo a executar o programa de diálogo 547 00:31:13,620 --> 00:31:15,640 funcionar momentaneamente. 548 00:31:15,640 --> 00:31:19,740 Agora, cando realmente quero engadir un menú elemento, podo engadir este elemento por camiño, 549 00:31:19,740 --> 00:31:25,570 e só especificar exactamente onde quero que sexa, Xanela / Seminario CS50 Dialog 1. 550 00:31:25,570 --> 00:31:28,380 E nese punto, quero para crear un novo elemento 551 00:31:28,380 --> 00:31:32,040 vai a executar un comando, CS50 Seminario de Diálogo 1. 552 00:31:32,040 --> 00:31:36,140 Teña en conta que, de novo, esta é a Nube 9 mando Eu creei un pouco máis arriba. 553 00:31:36,140 --> 00:31:38,630 >> Agora eu tamén quero crear un pequeno divisor, 554 00:31:38,630 --> 00:31:42,260 e para que eu poida facer o mesmo na liña seguinte. 555 00:31:42,260 --> 00:31:46,040 Agora podes ter en conta que como parte da definición deste elemento de menú, 556 00:31:46,040 --> 00:31:48,200 hai un número asociada con el que 557 00:31:48,200 --> 00:31:51,260 realmente di onde exactamente Quero que este elemento do menú para ser 558 00:31:51,260 --> 00:31:53,441 situado na lista de menús. 559 00:31:53,441 --> 00:31:55,190 Pero pode notar que eu non sei, en realidade, 560 00:31:55,190 --> 00:31:59,540 ver todos os números con estes menús, por defecto. 561 00:31:59,540 --> 00:32:04,630 Polo tanto, hai unha pequena cousa oculta que o que podemos facer, un pequeno cambio para a nosa URL. 562 00:32:04,630 --> 00:32:12,920 Así, ademais de SDK = 1 & depuración = 2, Vou definir menú para 1-- 563 00:32:12,920 --> 00:32:14,690 e espero que sexa de menú, non menús. 564 00:32:14,690 --> 00:32:17,001 Oh, é menús = 1. 565 00:32:17,001 --> 00:32:17,500 Espere un pouco. 566 00:32:17,500 --> 00:32:20,150 567 00:32:20,150 --> 00:32:24,690 >> E o que imos ver enriba de recarga que IDE é que eu aínda estou no modo de depuración, 568 00:32:24,690 --> 00:32:27,540 pero agora hai números asociado con todos os menús. 569 00:32:27,540 --> 00:32:29,630 E iso di a vostede o que o número 570 00:32:29,630 --> 00:32:34,730 é cando estás a inxectar algo en calquera lugar neste sistema de menú. 571 00:32:34,730 --> 00:32:40,365 Así, no menú Ventá, podo vexa o artigo 45 é colaborar, 572 00:32:40,365 --> 00:32:43,820 e punto 38, antes de que sexa instalador. 573 00:32:43,820 --> 00:32:47,530 Entón, cando quere inxectar un elemento entre os dous, 574 00:32:47,530 --> 00:32:50,570 Quere só de seleccionar un número entre estes dous elementos. 575 00:32:50,570 --> 00:32:56,200 Entón, eu seleccionei 41 e inserida meu Seminario Dialog o elemento 1 do menú naquel local. 576 00:32:56,200 --> 00:33:03,640 >> E é por iso que este número que aparece aquí é o número 41. 577 00:33:03,640 --> 00:33:08,010 Esta é a situación dese elemento de menú no menú de Cloud 9. 578 00:33:08,010 --> 00:33:11,045 Agora do mesmo xeito, eu quería para crear un divisor 579 00:33:11,045 --> 00:33:13,920 e engadir lo de xeito que hai un nice división entre cada un deles de menú 580 00:33:13,920 --> 00:33:14,490 elementos. 581 00:33:14,490 --> 00:33:18,600 Entón eu dixo que no lugar 43. 582 00:33:18,600 --> 00:33:20,260 Tan lonxe, tan bo, eu espero? 583 00:33:20,260 --> 00:33:23,920 Entón agora imos realmente ollar para o código específico no cadro de diálogo mostra 584 00:33:23,920 --> 00:33:28,050 que é realmente responsable para abrir esta xanela de diálogo. 585 00:33:28,050 --> 00:33:32,710 >> Desprazamento para abaixo, vexo que quero para ter este diálogo función concerto, 586 00:33:32,710 --> 00:33:34,730 e é moi sinxelo. 587 00:33:34,730 --> 00:33:38,570 Eu estou indo a executar o concerto método no variable plugin. 588 00:33:38,570 --> 00:33:43,900 E lembre de que definimos esta plugin variable anterior como un diálogo. 589 00:33:43,900 --> 00:33:48,530 Así, o plugin de barras, neste caso, é este obxecto que definimos internamente. 590 00:33:48,530 --> 00:33:53,030 E vai ser un novo diálogo contidos neste plugin. 591 00:33:53,030 --> 00:33:57,020 E así nós realmente referenciado este plugin variable en moitos lugares 592 00:33:57,020 --> 00:33:59,790 nun típico Cloud 9 ambiente de desenvolvemento. 593 00:33:59,790 --> 00:34:00,867 >> Imos velo aquí. 594 00:34:00,867 --> 00:34:03,450 Teña en conta que a medida que rolar para abaixo, hai ciclos de vida adicional. 595 00:34:03,450 --> 00:34:06,970 Entón, teña en conta que estes responden para eventos que son accionados 596 00:34:06,970 --> 00:34:10,500 por este obxecto, este obxecto do diálogo. 597 00:34:10,500 --> 00:34:12,710 Por defecto, non hai cargar e descargar, que 598 00:34:12,710 --> 00:34:14,760 están dispoñibles para todos Nube 9 plugins. 599 00:34:14,760 --> 00:34:17,139 Pero en caso de este diálogo, non hai 600 00:34:17,139 --> 00:34:19,139 Outro evento que pode lume tamén chamado 601 00:34:19,139 --> 00:34:23,239 Draw, que é disparado cando iso Está a piques de ser deseñado na pantalla, 602 00:34:23,239 --> 00:34:27,239 en primeira instancia do diálogo amosando. 603 00:34:27,239 --> 00:34:29,590 >> Así, cando en realidade é será mostrado, 604 00:34:29,590 --> 00:34:31,739 alí vai fornecer algún HTML. 605 00:34:31,739 --> 00:34:34,710 E usando só estándar Prácticas HTML pode nós 606 00:34:34,710 --> 00:34:41,030 inxectar unha información moi simple, noso mundo Ola, en que o diálogo. 607 00:34:41,030 --> 00:34:47,780 Entón, se nós, a continuación, vai para arriba, podemos ver, a continuación, a procesión de cousas 608 00:34:47,780 --> 00:34:48,989 que se produciron. 609 00:34:48,989 --> 00:34:54,070 En primeiro lugar, creamos un comando Cloud 9 que, cando se executa por Cloud 9, 610 00:34:54,070 --> 00:34:55,765 vai disparar esta función. 611 00:34:55,765 --> 00:34:58,390 Está indo a executar esta función chamado concerto de diálogo, que eu teño 612 00:34:58,390 --> 00:34:59,720 escrito no meu código. 613 00:34:59,720 --> 00:35:04,350 >> Eu creei un elemento de menú e anexo a el que mesmo comando 614 00:35:04,350 --> 00:35:08,550 que, cando ese elemento é premendo en o menú, que mando é entón executado 615 00:35:08,550 --> 00:35:10,780 e que a función é entón executado. 616 00:35:10,780 --> 00:35:14,080 E dentro da función que eu son só vai chamar as-- son 617 00:35:14,080 --> 00:35:17,250 indo só para executar o concerto método deste plugin, que 618 00:35:17,250 --> 00:35:20,800 vai primeira chamada o método de sorteo, e vai 619 00:35:20,800 --> 00:35:28,050 para disparar este método a continuación, o deseñar manipulador de eventos, no noso ciclo de vida. 620 00:35:28,050 --> 00:35:30,820 E entón el vai realmente amosar o diálogo. 621 00:35:30,820 --> 00:35:34,870 >> Hai tamén un método de ocultar, así que se eu ter a oportunidade de ocultar 622 00:35:34,870 --> 00:35:37,610 meu diálogo, podo facer o mesmo. 623 00:35:37,610 --> 00:35:42,060 Entón, iso é moi fermoso isto para obter todo isto para traballar. 624 00:35:42,060 --> 00:35:45,160 Teña en conta que é desprazarse para abaixo aínda hai unha API pública conxelación. 625 00:35:45,160 --> 00:35:51,020 Este só di basicamente que quere estes métodos para efectivamente 626 00:35:51,020 --> 00:35:56,670 ser público, pero non overwriteable fóra do contexto deste plugin. 627 00:35:56,670 --> 00:36:00,410 E a continuación, na parte inferior, é, quizais, o último 628 00:36:00,410 --> 00:36:03,180 que realmente ten que pagar moita atención aos aquí, que 629 00:36:03,180 --> 00:36:09,540 é que imos rexistrar o noso plugin co nome de Seminario C9 1, 630 00:36:09,540 --> 00:36:11,920 eo obxecto plugin. 631 00:36:11,920 --> 00:36:14,870 >> Que, como ten que se lembrar, é que plugin que plugin 632 00:36:14,870 --> 00:36:18,200 obxecto que vimos definición en toda a totalidade desa fonte 633 00:36:18,200 --> 00:36:18,840 código. 634 00:36:18,840 --> 00:36:23,790 E Seminario C9 1 é o cadea que prometemos 635 00:36:23,790 --> 00:36:26,350 proporcionar superior desta definición. 636 00:36:26,350 --> 00:36:29,280 637 00:36:29,280 --> 00:36:29,780 Aceptar. 638 00:36:29,780 --> 00:36:34,160 Entón, imos rampla-lo un pouco para ver se podemos facer algo 639 00:36:34,160 --> 00:36:36,020 un pouco máis interesante. 640 00:36:36,020 --> 00:36:38,350 Agora esta é só tan grande. 641 00:36:38,350 --> 00:36:41,380 Quero dicir, que é, é realmente moi arrefecer que en tan poucas liñas de código, 642 00:36:41,380 --> 00:36:45,570 podemos modificar o IDE existente e engadir un elemento de menú existente 643 00:36:45,570 --> 00:36:48,850 ou engadir un novo elemento de menú, engadir unha mando e mostrar un diálogo, 644 00:36:48,850 --> 00:36:51,040 e só unha banda de funcionalidade que existe. 645 00:36:51,040 --> 00:36:54,550 É realmente moi grande. 646 00:36:54,550 --> 00:36:59,470 >> Pero non fai moito, porque non pode comunicar con Ubuntu subxacente 647 00:36:59,470 --> 00:37:00,450 instancia. 648 00:37:00,450 --> 00:37:02,560 Entón, digamos que eu Realmente quere descubrir 649 00:37:02,560 --> 00:37:05,400 unha información sobre o subxacente instancia Ubuntu, 650 00:37:05,400 --> 00:37:08,260 como as estatísticas de plugin fai. 651 00:37:08,260 --> 00:37:11,090 Entón, imos dar un ollo a un pouco máis de información 652 00:37:11,090 --> 00:37:13,730 sobre como as estatísticas de plug-in de obras. 653 00:37:13,730 --> 00:37:15,900 E, de feito, é moi semellante a esta. 654 00:37:15,900 --> 00:37:17,680 Ten que se lembrar que hai un diálogo. 655 00:37:17,680 --> 00:37:21,680 Ten que se lembrar que non hai información que se 656 00:37:21,680 --> 00:37:24,860 mostra só ao longo da barra de menús ao longo arriba, que espero que agora 657 00:37:24,860 --> 00:37:27,450 obter un sabor de como Implementar iso, 658 00:37:27,450 --> 00:37:32,360 só a través da inserción de elementos de menú en concreto puntos e pola instanciação dun diálogo 659 00:37:32,360 --> 00:37:34,360 e mostrando ese diálogo. 660 00:37:34,360 --> 00:37:36,580 >> Pero aínda non demostraron como podemos conecta-lo 661 00:37:36,580 --> 00:37:40,790 a un comando no Ubuntu instancia subxacente. 662 00:37:40,790 --> 00:37:46,930 Entón, imos dar un ollo a continuación, en plugin.2, e que fai precisamente iso. 663 00:37:46,930 --> 00:37:50,540 Nós imos abrir plugin.js, que é o código para iso. 664 00:37:50,540 --> 00:37:54,570 Pero, baixo o menú Ventá, se eu premer na caixa de diálogo 2, 665 00:37:54,570 --> 00:37:58,290 vemos que di iso no seu lugar, Ola CS50, que 666 00:37:58,290 --> 00:38:01,800 non mirar todo o que atractivo, non? 667 00:38:01,800 --> 00:38:04,310 Excepto, ver isto. 668 00:38:04,310 --> 00:38:07,020 Deixe-me cambiar algo aquí debaixo. 669 00:38:07,020 --> 00:38:11,540 >> Eu estou indo a ir ao meu espazo de traballo e cambio seminario 670 00:38:11,540 --> 00:38:15,990 para dicir algo máis, como Ola, Dan. 671 00:38:15,990 --> 00:38:18,150 Vou pechalo e salvalo. 672 00:38:18,150 --> 00:38:22,740 E agora eu estou indo a re-run meu elemento de menú diálogo. 673 00:38:22,740 --> 00:38:25,590 E teña en conta que ten agora cambiou o que di. 674 00:38:25,590 --> 00:38:26,880 Ola, Dan. 675 00:38:26,880 --> 00:38:30,680 Eu parezo ter feito algo para baixo aquí na instancia Ubuntu subxacente 676 00:38:30,680 --> 00:38:34,370 sen ter ningún manipulado código que está en execución de novo unicamente 677 00:38:34,370 --> 00:38:35,720 do lado do cliente. 678 00:38:35,720 --> 00:38:40,380 Polo tanto, hai, por suposto, algún tipo de comunicación que está a suceder aquí. 679 00:38:40,380 --> 00:38:44,550 >> Agora, este é o lugar onde unha chea de poder do Cloud 9 SDK vén, 680 00:38:44,550 --> 00:38:49,440 é que, nese plugin.2, que realmente pode causar 681 00:38:49,440 --> 00:38:52,910 unha chamada ocorrer co exemplo subxacente, 682 00:38:52,910 --> 00:38:55,750 e realizar algúns comandos arbitrarios. 683 00:38:55,750 --> 00:39:00,230 Polo tanto, neste caso, eu teño realmente creado un script moi sinxelo 684 00:39:00,230 --> 00:39:02,350 na miña zona de traballo chamado Seminario. 685 00:39:02,350 --> 00:39:03,610 Entón deixe-me abrir iso. 686 00:39:03,610 --> 00:39:05,370 E vemos que se parece con isto. 687 00:39:05,370 --> 00:39:08,310 É só unha festa moi sinxelo guión, cuxo único obxectivo na vida 688 00:39:08,310 --> 00:39:11,920 será a ecoar este texto, Ola, Dan. 689 00:39:11,920 --> 00:39:14,360 Ou, antes diso, el dixo Ola, CS50. 690 00:39:14,360 --> 00:39:16,000 E iso é todo o que vai facer. 691 00:39:16,000 --> 00:39:21,030 >> Porque este é agora un mando que podo correr. 692 00:39:21,030 --> 00:39:23,750 Podo realmente executa-lo aquí. 693 00:39:23,750 --> 00:39:28,440 Podemos ver que realmente é só un comando que eu corro naturalmente. 694 00:39:28,440 --> 00:39:32,850 Podo pedir ao meu plugin para realizar este mando no espazo de traballo subxacente 695 00:39:32,850 --> 00:39:36,510 e analizar a información que foi devolto a partir del, 696 00:39:36,510 --> 00:39:40,300 e facer algo con el, e modificar meu plugin eo comportamento que 697 00:39:40,300 --> 00:39:43,240 ter na miña plugin como un resultado. Aceptar. 698 00:39:43,240 --> 00:39:45,450 Entón imos ver como isto ocorre. 699 00:39:45,450 --> 00:39:48,380 Vimos isto moi sinxelo Script en lotes seminario que 700 00:39:48,380 --> 00:39:51,080 [Inaudível] que realmente pode ser executado. 701 00:39:51,080 --> 00:39:54,560 >> E agora imos ver as modificacións que son necesarios para amarre iso xuntos 702 00:39:54,560 --> 00:39:57,620 coa ventá de diálogo, e executalo. 703 00:39:57,620 --> 00:40:02,030 Entón aquí imos facer moito moi o mesmo que vimos antes. 704 00:40:02,030 --> 00:40:05,500 Pero teña en conta que entre os cousas que consumidos agora-- 705 00:40:05,500 --> 00:40:09,090 en adición ao diálogo, que novo ocorrer de ter feito dúas veces, 706 00:40:09,090 --> 00:40:14,300 que non é necessary-- ademais ao diálogo e as ordes 707 00:40:14,300 --> 00:40:17,780 e os menús os plugins, que foron necesario, en primeiro un para me 708 00:40:17,780 --> 00:40:21,560 para definir un novo mando e inxectar un elemento nos menús, 709 00:40:21,560 --> 00:40:25,010 Eu tamén teño ese proc plugin. 710 00:40:25,010 --> 00:40:28,500 >> E este proc plugin permite nós para manipular procesos 711 00:40:28,500 --> 00:40:30,950 no exemplo subxacente. 712 00:40:30,950 --> 00:40:34,970 Eu conecta-lo despois que eu dixo que o meu plugin esixe. 713 00:40:34,970 --> 00:40:38,320 Eu, a continuación, conecta-lo ao código, como vimos na función principal. 714 00:40:38,320 --> 00:40:40,970 Unha vez máis, eu vou iniciar o meu diálogo. 715 00:40:40,970 --> 00:40:45,500 E se nós nos movemos para abaixo agora, pode ver como iso é diferente. 716 00:40:45,500 --> 00:40:49,040 A función de carga é o mesmo, entón el só vai crear un comando 717 00:40:49,040 --> 00:40:54,250 e crear un elemento do menú e conectar este elemento de menú para este comando. 718 00:40:54,250 --> 00:40:56,690 Pero agora rolar abaixo para amosar o diálogo, 719 00:40:56,690 --> 00:40:59,990 podemos empezar a ver onde as diferenzas xorden. 720 00:40:59,990 --> 00:41:04,170 >> Temos función concerto de diálogo, que está indo só para mostrar o diálogo. 721 00:41:04,170 --> 00:41:12,410 Pero cando mostrar este diálogo, e cando o método concerto se chama, 722 00:41:12,410 --> 00:41:14,430 el acciona a función draw. 723 00:41:14,430 --> 00:41:18,990 E eu vou especificar, a continuación, algún contido do que iso. 724 00:41:18,990 --> 00:41:21,910 Entón, eu estou indo só para crear un div, proporcionar a el 725 00:41:21,910 --> 00:41:24,020 texto básico, Ola, mundo. 726 00:41:24,020 --> 00:41:27,250 Pero teña en conta que aquí son vai achegar a el unha identificación. 727 00:41:27,250 --> 00:41:32,350 E a liña seguinte vou ao descubrir que ID usando JavaScript, 728 00:41:32,350 --> 00:41:36,210 e almacenar ese obxecto noutra variable 729 00:41:36,210 --> 00:41:38,280 que eu estou indo só para chamar contido. 730 00:41:38,280 --> 00:41:41,780 >> Entón, agora cada vez que eu teño contido, todo o que eu teño que facer 731 00:41:41,780 --> 00:41:46,100 é só modificar HTML interior deste obxecto. 732 00:41:46,100 --> 00:41:51,300 E o diálogo vai HTML a continuación, ser modificado, así. 733 00:41:51,300 --> 00:41:55,500 Así, cando este plugin é entón mostradas, o que pode ocorrer 734 00:41:55,500 --> 00:41:59,820 e este é un novo evento que é novo para este plugin, 735 00:41:59,820 --> 00:42:03,380 pero acontece en todos os plugin con o diálogo, cando este é agora mostra, 736 00:42:03,380 --> 00:42:07,100 Vou chamar un función chamada buscar información. 737 00:42:07,100 --> 00:42:10,520 E esta función é a carne del aquí. 738 00:42:10,520 --> 00:42:14,930 Vou usar este plugin que proc describimos antes, que por certo, 739 00:42:14,930 --> 00:42:19,790 é realmente só unha biblioteca Node.js que Cloud 9 emprega aquí. 740 00:42:19,790 --> 00:42:21,730 >> Entón pode realmente mirar para arriba sobre como este 741 00:42:21,730 --> 00:42:25,340 funciona se ir ao Documentación Node.js 742 00:42:25,340 --> 00:42:29,220 e mirar para arriba o ficheiro exec método para procesos de alí. 743 00:42:29,220 --> 00:42:33,110 Eu estou indo a executar este específico mando, casa Ubuntu espazo de traballo 744 00:42:33,110 --> 00:42:38,000 seminario, que é o mesmo, isto mesmo orde que eu creei antes. 745 00:42:38,000 --> 00:42:40,680 Facilitar a el unha corrente directorio de traballo, só 746 00:42:40,680 --> 00:42:45,440 para ser seguro en termos de Ultra-a contexto onde este está en execución. 747 00:42:45,440 --> 00:42:49,150 E xa que foi cuberto e devolto, 748 00:42:49,150 --> 00:42:54,040 Eu estou indo a executar este función chamada de saída de análise. 749 00:42:54,040 --> 00:42:54,540 Aceptar. 750 00:42:54,540 --> 00:42:58,670 Polo tanto, este, a continuación, vai para realizar un comando no lugar, ou mellor, 751 00:42:58,670 --> 00:43:01,700 a instancia remota Ubuntu. 752 00:43:01,700 --> 00:43:03,490 Cando volten algúns información, eu son a continuación, 753 00:43:03,490 --> 00:43:06,940 vai chamar unha función separada chamado de saída de análise, que 754 00:43:06,940 --> 00:43:13,790 ten esa sinatura aquí, err, saída estándar, stderr, 755 00:43:13,790 --> 00:43:15,910 e realizar algúns cálculos sobre iso. 756 00:43:15,910 --> 00:43:18,930 Entón, se eu recibín un erro de calquera tipo de todo, 757 00:43:18,930 --> 00:43:22,340 Realmente comprobar a ver se erro de feito ten algúns datos. 758 00:43:22,340 --> 00:43:27,204 E se é así, entón eu vou modificar o interior HTML do obxecto de contidos, que 759 00:43:27,204 --> 00:43:28,995 é lembrar, nós ligado ao diálogo 760 00:43:28,995 --> 00:43:32,210 no instantiattion dese diálogo, ou no primeiro deseño 761 00:43:32,210 --> 00:43:33,370 de que o diálogo. 762 00:43:33,370 --> 00:43:35,650 Vou só dicir que algún erro ocorreu. 763 00:43:35,650 --> 00:43:37,140 >> Agora que é demasiado simplista. 764 00:43:37,140 --> 00:43:40,170 O valor de erro será tipicamente conter algo que fose útil, 765 00:43:40,170 --> 00:43:45,520 quizais un número de erro e unha erro do propio guión. 766 00:43:45,520 --> 00:43:48,430 Ou se o script escribiu algo para o erro estándar, 767 00:43:48,430 --> 00:43:50,890 que os datos serían cubertos en que o parámetro ben. 768 00:43:50,890 --> 00:43:53,765 E eu podería ser un pouco máis coidado co erro 769 00:43:53,765 --> 00:43:55,332 En realidade, estou mostrando persoas. 770 00:43:55,332 --> 00:43:57,415 Pero este exemplo simplista é bo o suficiente para agora 771 00:43:57,415 --> 00:43:59,715 para, polo menos, ver como todo funciona. 772 00:43:59,715 --> 00:44:01,590 Se non, se hai ningún erro, entón eu son só 773 00:44:01,590 --> 00:44:05,500 vai facilitar a matéria- saída do que a función 774 00:44:05,500 --> 00:44:10,070 no interior do HTML este contido elemento, e, a continuación, actualizar o meu plugin 775 00:44:10,070 --> 00:44:12,490 e mostra-lo aquí. 776 00:44:12,490 --> 00:44:17,550 E iso é moi fermoso todo o que é necesaria para obter este para ser executado. 777 00:44:17,550 --> 00:44:22,860 E entón imos pensar logo como funciona, en xeral. 778 00:44:22,860 --> 00:44:29,330 Cando cargado por primeira vez este plugin, así como o primeiro plugin, 779 00:44:29,330 --> 00:44:32,670 Eu estou indo a engadir un comando que se dispoñible para calquera cousa, en calquera plugin 780 00:44:32,670 --> 00:44:37,120 en Cloud 9, chamado Seminario CS50 Diálogo 2, cuxa responsabilidade 781 00:44:37,120 --> 00:44:39,670 será para executar este concerto diálogo, que é se recorda, 782 00:44:39,670 --> 00:44:42,730 mostrará realmente o diálogo que solicitadas continuación. 783 00:44:42,730 --> 00:44:45,980 >> Entón eu vou engadir que mando nun menú fiestra 784 00:44:45,980 --> 00:44:48,070 para que eu teña acceso a iso. 785 00:44:48,070 --> 00:44:51,420 E cando este diálogo é solicitado para ser mostrado, 786 00:44:51,420 --> 00:44:55,170 Vou buscar unha información de a instancia de Ubuntu subxacente 787 00:44:55,170 --> 00:44:58,890 mediante o comando ficheiro exec. 788 00:44:58,890 --> 00:44:59,920 Desculpe-me. 789 00:44:59,920 --> 00:45:04,140 Xa que é de retorno e recibir algún información, a continuación, no lado do cliente 790 00:45:04,140 --> 00:45:08,370 de novo, vou ser capaz de analizar a saída do comando 791 00:45:08,370 --> 00:45:12,650 e actualizar o interior HTML dos elementos 792 00:45:12,650 --> 00:45:16,440 que tiñan que realiza anterior. 793 00:45:16,440 --> 00:45:19,910 >> E con iso, entón temos esta totalmente funcional plugin 794 00:45:19,910 --> 00:45:24,520 que me permite buscar información dese script arbitrario 795 00:45:24,520 --> 00:45:27,170 que creamos en nosa instancia subxacente. 796 00:45:27,170 --> 00:45:29,660 Pero, de novo, é realmente importante e realmente clave 797 00:45:29,660 --> 00:45:33,030 de forma a separar cada onde desas cousas está a suceder, 798 00:45:33,030 --> 00:45:38,320 que temos todo isto do lado do cliente código que está en execución no navegador, 799 00:45:38,320 --> 00:45:41,640 e que aínda non teñen acceso para o sistema de ficheiros subxacente 800 00:45:41,640 --> 00:45:44,895 ata que realmente realizar algúns destes comandos que son proporcionados pola nube 801 00:45:44,895 --> 00:45:49,055 9 SDK como proc, e algúns outros que nos permiten ler algúns datos, 802 00:45:49,055 --> 00:45:53,500 ou ler algúns arquivos se necesitamos para facer calquera cousa do tipo. 803 00:45:53,500 --> 00:45:56,650 >> Agora, este é un exemplo un tanto simple. 804 00:45:56,650 --> 00:46:00,570 Hai outras cousas que quizais queira facer tamén. 805 00:46:00,570 --> 00:46:03,470 Por exemplo, é posible realmente quere gardar unha información 806 00:46:03,470 --> 00:46:04,630 coas preferencias. 807 00:46:04,630 --> 00:46:07,900 Ou que queremos engadir un novo panel de preferencias 808 00:46:07,900 --> 00:46:09,690 ou algo nese sentido. 809 00:46:09,690 --> 00:46:13,370 Entón, iso é algo que pode dar un ollo ao Cloud 9 SDK 810 00:46:13,370 --> 00:46:15,300 para obter máis información sobre. 811 00:46:15,300 --> 00:46:19,990 Pero iso é realmente abondo para comezar. 812 00:46:19,990 --> 00:46:26,410 Entón, só para ser un pouco máis concreto sobre a forma que algunhas destas cousas 813 00:46:26,410 --> 00:46:31,370 función, eu quería amosar só un exemplo, que non é máis que algúns 814 00:46:31,370 --> 00:46:35,580 do código do Stats 50 plug-in. 815 00:46:35,580 --> 00:46:39,780 >> E ese código é basicamente Con base nestes exemplos 816 00:46:39,780 --> 00:46:43,310 que realmente visto, pero ten máis algunhas copia 817 00:46:43,310 --> 00:46:47,460 e ten máis algunha complexidade, a fin para alcanzar algunhas das cousas adicional 818 00:46:47,460 --> 00:46:48,930 que queremos alcanzar. 819 00:46:48,930 --> 00:46:54,510 Por exemplo, se quero ser capaz de salvar algunhas opcións, 820 00:46:54,510 --> 00:46:57,700 entón eu teño para acceder para a configuración de plug-in, 821 00:46:57,700 --> 00:47:01,820 e cada vez que quero para ler algunhas opcións, 822 00:47:01,820 --> 00:47:08,340 Podo, por exemplo, engadir a varios eventos na configuración do plugin. 823 00:47:08,340 --> 00:47:13,630 Entón, cada vez que a configuración é vermello, por exemplo, na miña propia plug-in, 824 00:47:13,630 --> 00:47:18,450 se eu vou ler algúns configuración do almacenamento gardados 825 00:47:18,450 --> 00:47:24,540 preferencias do usuario, entón podo definir patróns a un lugar específico, 826 00:47:24,540 --> 00:47:31,250 preferentemente específica, en que JSON ficheiro de opcións de estilo que temos 827 00:47:31,250 --> 00:47:33,890 salvo anteriormente, que xa vimos antes. 828 00:47:33,890 --> 00:47:36,370 >> E se eu vou escribir algunhas opcións para el, 829 00:47:36,370 --> 00:47:40,440 entón eu can-- ou así que detectar que os axustes foron escritos 830 00:47:40,440 --> 00:47:44,420 a-- porque, por exemplo, os configuración foron modificadas polo usuario 831 00:47:44,420 --> 00:47:47,335 directamente nas súas definicións ficheiro, ou no panel de preferencias 832 00:47:47,335 --> 00:47:49,370 cambiou a configuración arquivo directamente, 833 00:47:49,370 --> 00:47:53,590 Podo realmente actualizar parte do código ou actualizar o comportamento do meu plugin 834 00:47:53,590 --> 00:47:58,710 con base neses cambios que teñen ocorreu o ficheiro de configuración tamén. 835 00:47:58,710 --> 00:48:03,380 Pero, realmente, o resto é bastante moi presente que xa viu. 836 00:48:03,380 --> 00:48:06,040 >> Nós engadimos algúns, quizais algo que é novo. 837 00:48:06,040 --> 00:48:09,440 Por iso, engadir un ficheiro de preferencia, ou mellor, un panel de preferencias, 838 00:48:09,440 --> 00:48:14,250 para o diálogo de preferencias, o que de novo podes atopar máis información 839 00:48:14,250 --> 00:48:16,220 no Cloud 9 SDK me ler. 840 00:48:16,220 --> 00:48:18,460 Pero o resto é moi fermoso, fermoso 841 00:48:18,460 --> 00:48:25,810 semellante ao que vimos antes, só con algunha comprobación de erros adicional 842 00:48:25,810 --> 00:48:30,150 e algunhas proteccións adicionais e algunha funcionalidade adicional 843 00:48:30,150 --> 00:48:33,314 para aplicar as diversas cousas que vimos. 844 00:48:33,314 --> 00:48:35,230 Se non ten, en realidade, viu aínda, pode 845 00:48:35,230 --> 00:48:40,955 estar se pregunta o que o subxacente mando é a fiestra Estadísticas 50. 846 00:48:40,955 --> 00:48:42,840 É, en realidade función. 847 00:48:42,840 --> 00:48:48,100 Ben, iso é-- oh, caramba. 848 00:48:48,100 --> 00:48:49,410 Un segundo. 849 00:48:49,410 --> 00:48:49,910 Espere un pouco. 850 00:48:49,910 --> 00:48:52,270 Aceptar. 851 00:48:52,270 --> 00:48:58,090 Déixeme pasar iso para que poidamos realmente ver o que acontece cando tecleo Stats 50. 852 00:48:58,090 --> 00:49:02,140 Nótese que neste caso, o orde que eu estou fóra putting 853 00:49:02,140 --> 00:49:06,310 é realmente novo, só o script que é indo para a saída de unha morea de información 854 00:49:06,310 --> 00:49:08,040 en formato JSON. 855 00:49:08,040 --> 00:49:10,800 E a razón que facemos deste xeito é que, porque 856 00:49:10,800 --> 00:49:15,480 están operando porque escribimos o código do lado do cliente en JavaScript, 857 00:49:15,480 --> 00:49:19,500 podemos moi facilmente só analizar obxectos JavaScript, 858 00:49:19,500 --> 00:49:23,050 e realmente ser capaz de manipular eses obxectos só como fariamos 859 00:49:23,050 --> 00:49:24,610 calquera outro obxecto JavaScript. 860 00:49:24,610 --> 00:49:27,650 >> E así, este é un moi cómodo forma de proporcionar unha información 861 00:49:27,650 --> 00:49:31,950 da instancia Ubuntu subxacente, tales como o número de versión, o anfitrión 862 00:49:31,950 --> 00:49:36,360 nomear, se un servidor está escoitando, o que o servidor é, así por diante e así por diante, 863 00:49:36,360 --> 00:49:39,150 e analizar que moi facilmente e moi rapidamente 864 00:49:39,150 --> 00:49:44,870 no plugin que está indo, a continuación, para mostrarnos toda a información. 865 00:49:44,870 --> 00:49:47,920 Entón, de novo, o insight clave aquí para ter en conta 866 00:49:47,920 --> 00:49:54,260 É esta separación entre o exemplo subxacente, 867 00:49:54,260 --> 00:49:57,490 e tamén onde o código está cargado. 868 00:49:57,490 --> 00:49:59,870 Que cando eu teño un cliente, é o primeiro carga. 869 00:49:59,870 --> 00:50:03,951 Só este ficheiro JavaScript estática nalgún lugar, quizais CDN de calquera tipo. 870 00:50:03,951 --> 00:50:06,450 Nós realmente non se preocupe moito sobre ese primeiro paso. 871 00:50:06,450 --> 00:50:08,970 >> Nós só sabemos que é en execución no lado do cliente 872 00:50:08,970 --> 00:50:12,740 e é aí onde eu vou comunicarse con esta instancia estivador. 873 00:50:12,740 --> 00:50:15,970 Iso nós imos facelo a través da Cloud 9 SDK. 874 00:50:15,970 --> 00:50:20,460 Nós realmente non teñen a capacidade, usando JavaScript ou Node.js, 875 00:50:20,460 --> 00:50:21,750 para escribir directamente a el. 876 00:50:21,750 --> 00:50:29,400 Nós só usar os SDK existente APIs para facer esta acción para nós. 877 00:50:29,400 --> 00:50:32,490 E de novo, un dos cousas realmente importantes 878 00:50:32,490 --> 00:50:38,990 é que, cando eu creei este, cando eu creei este plugin, 879 00:50:38,990 --> 00:50:42,510 e como eu estou a traballar nel, nun das cousas importantes que facer 880 00:50:42,510 --> 00:50:44,840 é traer a consola JavaScript. 881 00:50:44,840 --> 00:50:49,400 >> Porque unha vez que este é o único operando no JavaScript, 882 00:50:49,400 --> 00:50:54,700 do lado do cliente, se eu usar un console.log method-- entón só 883 00:50:54,700 --> 00:50:56,550 para mostrar un exemplo aquí. 884 00:50:56,550 --> 00:51:07,630 Imos tentar modificar este sinxelo plugin para tamén rexistrar algúns datos. 885 00:51:07,630 --> 00:51:09,895 E nós imos engadir a norma. 886 00:51:09,895 --> 00:51:13,010 887 00:51:13,010 --> 00:51:16,810 Entón imos cambiar isto para estar ben aquí. 888 00:51:16,810 --> 00:51:19,560 Agora, cando eu executar console.log, ten en conta 889 00:51:19,560 --> 00:51:21,630 sempre que este estea a executar do lado do cliente, 890 00:51:21,630 --> 00:51:24,900 Vou ver iso no meu propio JavaScript consola, que 891 00:51:24,900 --> 00:51:28,540 é como eu, entón, ser capaz de tentar solucionar problemas e depurar 892 00:51:28,540 --> 00:51:30,330 algúns dos problemas que eu teño. 893 00:51:30,330 --> 00:51:34,110 >> Nótese que xa Estou en modo SDK, eu son 894 00:51:34,110 --> 00:51:37,820 entón, capaz de manipular Plugins nesta instancia. 895 00:51:37,820 --> 00:51:39,800 Entón, aínda que sexa salvo no caso en apreciado, 896 00:51:39,800 --> 00:51:47,130 este é o único exemplo de que anterior regra sendo violados, onde a Cloud 9 897 00:51:47,130 --> 00:51:51,030 SDK vai realmente tirar plugins do subxacente instancia e, a continuación, executa-los. 898 00:51:51,030 --> 00:51:54,440 Para que, deste xeito, entón eu son capaz de manipular e construír 899 00:51:54,440 --> 00:51:55,750 algúns plugins aquí. 900 00:51:55,750 --> 00:51:58,080 Pero para me ver actualizacións para este plugin, 901 00:51:58,080 --> 00:52:01,880 porque é do lado do cliente, Necesito salvar o plugin 902 00:52:01,880 --> 00:52:04,950 e recarregar todo o espazo de traballo, de xeito que o plugin novo é entón 903 00:52:04,950 --> 00:52:09,230 descargar para o meu cliente, para o meu navegador web, e, a continuación, está a ser usado. 904 00:52:09,230 --> 00:52:14,460 >> Entón agora cando premer neste Seminario Diálogo 2, aínda vemos isto. 905 00:52:14,460 --> 00:52:21,311 Pero agora espero que na miña JavaScript diálogo, que verse meu-- esperar, 906 00:52:21,311 --> 00:52:21,810 soster. 907 00:52:21,810 --> 00:52:24,420 Podería ter que abrir o diálogo fresco. 908 00:52:24,420 --> 00:52:30,230 Debemos ver os meus datos recibidos aquí. 909 00:52:30,230 --> 00:52:32,780 Os datos recibidos, ola, Dan, que é se recorda, 910 00:52:32,780 --> 00:52:37,770 era unha operación que console.log foi solicitada no plugin. 911 00:52:37,770 --> 00:52:42,140 Polo tanto, esta descrición, a continuación, que mencionei antes, 912 00:52:42,140 --> 00:52:45,460 este diálogo, ou este diagrama vez, que eu 913 00:52:45,460 --> 00:52:49,140 mencionado antes é o que pasa. 914 00:52:49,140 --> 00:52:53,150 Pero hai unha importante excepción só para o desenvolvemento, 915 00:52:53,150 --> 00:52:55,490 que é o que o plugin en si pode, de feito, 916 00:52:55,490 --> 00:52:59,160 ser almacenados na instancia xanela de encaixe temporalmente, xa que presuntamente Nube 9 917 00:52:59,160 --> 00:53:02,210 non queren que sexamos capaces de manipular obxectos na súa CDN. 918 00:53:02,210 --> 00:53:08,650 >> E a nube 9 clientes, tras a carga, vai atopar os plugins en que. 919 00:53:08,650 --> 00:53:11,540 Plugin C9 cartafol e prema eses. 920 00:53:11,540 --> 00:53:15,780 Pero os que aínda están a suceder só do lado do cliente. 921 00:53:15,780 --> 00:53:19,440 Entón, a continuación, esta é só a unha excepción de que ocorre só 922 00:53:19,440 --> 00:53:23,220 para o desenvolvemento de Cloud 9 plugins. 923 00:53:23,220 --> 00:53:25,000 Pero o resto do tempo-- ea razón 924 00:53:25,000 --> 00:53:26,708 que queremos realmente martelar este casa-- 925 00:53:26,708 --> 00:53:30,140 é porque a maioría das veces iso é indo a ser executado desde o CDN, 926 00:53:30,140 --> 00:53:33,030 e só será executado puramente do lado do cliente. 927 00:53:33,030 --> 00:53:36,110 >> Normalmente, non haberá interacción co plug-in, 928 00:53:36,110 --> 00:53:39,840 ou non ten sequera a ser calquera razón que os plugins 929 00:53:39,840 --> 00:53:42,970 son efectivamente almacenados na subxacente instancia xanela de encaixe, 930 00:53:42,970 --> 00:53:47,240 agás no caso de este desenvolvemento SDK. 931 00:53:47,240 --> 00:53:51,510 Entón, de novo, iso cambia só lixeiramente debido a que 932 00:53:51,510 --> 00:53:54,650 que estamos executando o modo SDK. 933 00:53:54,650 --> 00:53:57,160 Vai entón cargar os plugins de desenvolvemento, 934 00:53:57,160 --> 00:54:01,690 eo único propósito de xeito que é aquí Podo usar Cloud 9 para facer o desenvolvemento 935 00:54:01,690 --> 00:54:04,620 para Cloud 9 plugins. 936 00:54:04,620 --> 00:54:07,220 Pero, aínda así, iso non cambia novo como funciona isto. 937 00:54:07,220 --> 00:54:09,650 El aínda está en execución enteiramente no lado do cliente. 938 00:54:09,650 --> 00:54:16,260 >> Isto só significa que cada vez que quero crear Cloud 9 plugins en Cloud 9, 939 00:54:16,260 --> 00:54:19,320 Eu crear eses plugins, colocalos no meu. 940 00:54:19,320 --> 00:54:25,110 Cartafol / plugins C9 na miña casa directorio, asegúrese de que eu estou en modo SDK, 941 00:54:25,110 --> 00:54:29,290 actualizar a páxina cada vez que eu realmente facer cambios para que plug-in, 942 00:54:29,290 --> 00:54:33,590 e ver que pasa no meu consola JavaScript. 943 00:54:33,590 --> 00:54:36,240 Só xestionar a miña JavaScript Consola para asegurarse de 944 00:54:36,240 --> 00:54:38,930 que calquera solución de problemas información que eu coloque a consolar, 945 00:54:38,930 --> 00:54:41,920 ou calquera outra cousa que poida ocorrer por mor de erros que escribín 946 00:54:41,920 --> 00:54:44,940 no meu código ou similares, aparece alí. 947 00:54:44,940 --> 00:54:48,007 >> E con iso, é realmente abondo para comezar, eu creo, 948 00:54:48,007 --> 00:54:49,090 coa nube 9 plugins. 949 00:54:49,090 --> 00:54:53,120 Especialmente tendo un ollar para o SDK documentación que Cloud 9 ofrece. 950 00:54:53,120 --> 00:54:56,650 É unha boa forma de comezar iniciado, e de forma moi fácil 951 00:54:56,650 --> 00:54:59,900 crear algúns plugins para Cloud 9. 952 00:54:59,900 --> 00:55:02,820 E con iso, quero agradecer a todos moi para unirse a min. 953 00:55:02,820 --> 00:55:05,550 Espero que vai divertirse escribir plugins para Cloud 9. 954 00:55:05,550 --> 00:55:09,600 Mellorar Quizais plugins que temos agora, ou que mesmo 955 00:55:09,600 --> 00:55:11,360 engadindo algunhas características do seu propio país. 956 00:55:11,360 --> 00:55:14,540 Estamos ansiosos para vê- que é o que se crea. 957 00:55:14,540 --> 00:55:16,330 Ata entón, adeus. 958 00:55:16,330 --> 00:55:18,734