1 00:00:01,600 --> 00:00:03,720 En estos videos, voy a mostrarle el inspector 2 00:00:03,887 --> 00:00:04,750 y cómo usarlo. 3 00:00:05,230 --> 00:00:06,280 ¿Qué es el inspector? 4 00:00:07,000 --> 00:00:09,840 Es una herramienta que permite interactuar con 5 00:00:10,007 --> 00:00:10,920 cualquier objeto del sistema. 6 00:00:11,900 --> 00:00:15,210 Como en Pharo todo está escrito en base a objetos, 7 00:00:15,377 --> 00:00:18,160 puede inspeccionar todos los objetos que componen Pharo 8 00:00:18,810 --> 00:00:21,780 La metáfora más cercana sobre qué es el inspector: 9 00:00:21,947 --> 00:00:26,630 el inspector es un microscopio, pero un microscopio que 10 00:00:26,797 --> 00:00:29,810 tiene capacidades para interactuar con los objetos 11 00:00:30,000 --> 00:00:32,300 que está observando. Es como si estuviera 12 00:00:32,467 --> 00:00:36,820 un biólogo estudiando células o bacterias, 13 00:00:37,030 --> 00:00:39,080 y de repente fuera capaz, gracias a 14 00:00:39,247 --> 00:00:42,780 una aguja, de interactúar con esas bacterias vivas. 15 00:00:42,960 --> 00:00:45,290 He preparado una pequeña expresión. 16 00:00:47,080 --> 00:00:49,040 En la vida real sería muy raro de poner 17 00:00:49,207 --> 00:00:52,040 una fecha, una hora y un "Morph" mezclado en un diccionario. 18 00:00:52,350 --> 00:00:54,190 pero para el propósito de este ejercicio está bien 19 00:00:54,630 --> 00:00:56,620 Veamos esto. La primera cosa que hacer una vez que 20 00:00:56,787 --> 00:01:01,450 escribió la expresión, es llamar 21 00:01:01,617 --> 00:01:04,120 el inspector. Así, obtenemos el inspector 22 00:01:05,240 --> 00:01:08,650 Verá que es un objeto polimórfico 23 00:01:08,817 --> 00:01:10,810 ¿Qué muestra el inspector? 24 00:01:11,080 --> 00:01:15,840 Aquí, muestra que tengo varios elementos en mi 25 00:01:16,007 --> 00:01:18,260 colección. Cada vez que hago clic en un elemento, 26 00:01:18,427 --> 00:01:22,390 se abrirá otro inspector 27 00:01:22,557 --> 00:01:23,800 en el elemento seleccionado. 28 00:01:24,230 --> 00:01:28,060 Tiene que notar que el inspector GT 29 00:01:28,227 --> 00:01:32,800 es la nueva versión de el inspector en Pharo, 30 00:01:33,000 --> 00:01:35,840 es desarrollado por el Equipo GT en la Universidad de Berna. 31 00:01:36,007 --> 00:01:36,640 ¿Qué ofrece? 32 00:01:36,807 --> 00:01:40,510 Ofrece la posibilidad definir diferentes vistas 33 00:01:40,677 --> 00:01:43,890 adaptado a cada objeto particular 34 00:01:44,057 --> 00:01:46,840 No puede inspeccionar un diccionario 35 00:01:47,007 --> 00:01:50,440 de la misma forma que manipula un elemento gráfico. 36 00:01:51,360 --> 00:01:54,440 El punto interesante es que cada uno de estos elementos 37 00:01:54,607 --> 00:01:56,640 puede ofrecer una vista diferente para el usuario. 38 00:01:57,880 --> 00:01:59,760 La vista básica que tiene es la vista en bruto. 39 00:02:00,850 --> 00:02:03,800 Ésta es la vista que muestra la implementación. 40 00:02:04,020 --> 00:02:07,350 Por ejemplo, abro la clase 41 00:02:07,517 --> 00:02:12,400 correspondiente a OrderedDictionary, esta clase tiene 42 00:02:12,567 --> 00:02:16,060 2 variables de instancia, dictionary y orderedKeys. 43 00:02:16,227 --> 00:02:19,780 Aquí, el inspector me muestra los valores en bruto 44 00:02:19,947 --> 00:02:21,770 contenidos en estas variables de instancia. 45 00:02:22,000 --> 00:02:25,640 Si hago clic en dictionary, veo que es un diccionario. 46 00:02:25,807 --> 00:02:29,360 Si hubiera hecho clic en él, veo aquí, es un diccionario 47 00:02:30,550 --> 00:02:34,000 Y allí, veo una vez más la vista en bruto de este objeto. 48 00:02:34,760 --> 00:02:37,500 Tiene orderedKeys que es aparentemente un arreglo. 49 00:02:38,760 --> 00:02:41,080 Tengo un arreglo con Time, Date and Morph.. 50 00:02:44,270 --> 00:02:47,170 Cuando estoy en el modo de elementos - el modo Items es en el 51 00:02:48,860 --> 00:02:53,220 que éste elemento OrderedDictionary me ofrece ver 52 00:02:53,387 --> 00:02:56,590 sus claves y valores de una mejor manera. 53 00:02:56,757 --> 00:02:59,100 Si mira aquí, tiene que ir al interior y 54 00:02:59,267 --> 00:03:01,950 se pone un poco complicado. 55 00:03:02,117 --> 00:03:03,870 Aquí no sabemos ... "¿Cuál es? 56 00:03:04,037 --> 00:03:07,040 Ah, es este, puede ser a las 6 esto significa que 57 00:03:07,450 --> 00:03:11,430 tengo una asociación en la que hay Time, tengo la llave y el valor, etc. " 58 00:03:11,597 --> 00:03:16,080 Entonces, ve que el inspector navega. 59 00:03:16,410 --> 00:03:17,930 Hay esta pequeña barra de navegación 60 00:03:18,220 --> 00:03:22,260 Cuando pongo el cursor sobre estos pequeños círculos, veo 61 00:03:22,427 --> 00:03:24,270 una vista previa de la pantalla a la que iría si hago clic en él. 62 00:03:25,130 --> 00:03:28,060 También puedo reducir o cambiar 63 00:03:28,510 --> 00:03:31,510 el tamaño de las ventanas y el foco que deseo. 64 00:03:31,720 --> 00:03:35,220 Puedo seleccionar los tres, por ejemplo. Aquí elijo el tamaño grane. 65 00:03:35,387 --> 00:03:36,590 para que vea mejor 66 00:03:37,680 --> 00:03:42,460 Cuando estoy en modo Items, 67 00:03:42,627 --> 00:03:44,300 es mejor porque puedo interactuar 68 00:03:44,467 --> 00:03:47,570 Aquí veo una fecha, la clave y el valor. Por ejemplo, 69 00:03:47,737 --> 00:03:52,330 cuando selecciono, veo la fecha, sin formato 70 00:03:52,620 --> 00:03:54,550 de las variables de instancia. 71 00:03:54,820 --> 00:03:58,260 Si hago autoexaminar, puede imaginar lo que veremos. 72 00:03:58,427 --> 00:04:03,220 Veremos exactamente una fecha, Timespan, 73 00:04:03,690 --> 00:04:05,000 entonces tengo start y duration. 74 00:04:06,810 --> 00:04:07,710 Tengo start y duration. 75 00:04:09,000 --> 00:04:11,730 Si miro la pestaña "Details", 76 00:04:15,040 --> 00:04:19,390 la fecha me ofrece verla con, 77 00:04:19,557 --> 00:04:24,280 por ejemplo, un año, un mes, ese tipo de cosas, 78 00:04:24,447 --> 00:04:25,420 en un formato ISO, por ejemplo. 79 00:04:27,150 --> 00:04:28,000 ¿Como funciona? 80 00:04:28,147 --> 00:04:29,730 Lo veremos en otro video, pero en realidad cada objeto 81 00:04:30,370 --> 00:04:33,050 puede decidir los aspectos que mostrará 82 00:04:33,760 --> 00:04:35,430 y ofrezce al inspector. 83 00:04:36,230 --> 00:04:37,640 Aquí está el calendario, por ejemplo. 84 00:04:37,807 --> 00:04:42,330 Puede ver que hay una representación gráfica de lo que es una fecha. 85 00:04:44,400 --> 00:04:45,400 Yo retrocedo 86 00:04:48,570 --> 00:04:52,020 De la misma manera, para Times, Puedes ver que hay las mismas cosas. 87 00:04:52,560 --> 00:04:56,200 Le he mostrado las pestañas "Raw". 88 00:04:57,440 --> 00:04:58,540 También está la pestaña "Meta". 89 00:04:59,840 --> 00:05:03,480 Es un mini navegador de código que muestra los métodos. 90 00:05:03,647 --> 00:05:06,770 Por ejemplo, aquí puedo ver los métodos 91 00:05:06,937 --> 00:05:11,410 porque tal vez desee interactuar con la fecha y la hora. 92 00:05:11,840 --> 00:05:15,310 Imaginemos que no sé lo que puedo enviarle, 93 00:05:15,477 --> 00:05:17,000 tal vez puedo enviarle horas. 94 00:05:17,137 --> 00:05:21,500 Regresa 18. Son 18. 95 00:05:22,350 --> 00:05:25,780 Normalmente, pude verlo allí si busco la hora 96 00:05:27,540 --> 00:05:30,900 Tengo la definición del método. 97 00:05:31,067 --> 00:05:32,550 Es solo estar más en el flujo. 98 00:05:34,140 --> 00:05:36,000 Ahora, si miro a Morph. 99 00:05:37,940 --> 00:05:39,130 Es un objeto más complicado. 100 00:05:39,297 --> 00:05:42,300 Vemos varios diferentes aspectos 101 00:05:43,000 --> 00:05:44,660 Lo que está bien aquí, por ejemplo, es que si hago clic en 102 00:05:44,827 --> 00:05:46,620 Morph, veo su representación. 103 00:05:48,190 --> 00:05:52,640 Veo la representación del objeto Morph 104 00:05:52,900 --> 00:05:57,330 que es de hecho un HSVAColorSelectorMorph. 105 00:06:02,720 --> 00:06:04,720 Solo para mostrarle, de hecho con el inspector, 106 00:06:04,887 --> 00:06:06,560 puedo interactuar con mi objeto. 107 00:06:07,100 --> 00:06:11,470 Puedo decir que se abra en un mundo. y yo puedo 108 00:06:11,637 --> 00:06:13,270 interactuar con mi objeto 109 00:06:16,870 --> 00:06:21,390 Dependerá de qué funcionalidades 110 00:06:22,000 --> 00:06:26,560 ofrece. Puedo hacer 111 00:06:26,727 --> 00:06:29,090 selectedColor. Veremos si funciona. 112 00:06:29,890 --> 00:06:30,590 Si hago: self selectedColor 113 00:06:30,757 --> 00:06:35,590 devuelve un color. 114 00:06:36,000 --> 00:06:39,000 Aquí es interesante porque 115 00:06:39,700 --> 00:06:42,360 con el inspector puedo hacer una impresión, 116 00:06:42,527 --> 00:06:44,260 y devuelve un texto que representa el objeto. 117 00:06:44,940 --> 00:06:49,080 Pude hacer inspect en él 118 00:06:49,740 --> 00:06:51,760 y se abrirá un inspector. 119 00:06:51,927 --> 00:06:52,690 Es lo que estoy haciendo aquí. 120 00:06:52,857 --> 00:06:55,000 Ahora si quiero el resultado de esta 121 00:06:55,167 --> 00:07:00,080 expresión a inyectar en el flujo del inspector, 122 00:07:00,247 --> 00:07:01,000 ¿que puedo hacer? 123 00:07:01,137 --> 00:07:03,190 Solo tengo que hacer "Do it and go". 124 00:07:03,610 --> 00:07:08,360 Si hago "Do it and go", he agregado en el flujo de interacción 125 00:07:08,790 --> 00:07:11,010 un nuevo objeto y un inspector del nuevo objeto 126 00:07:11,530 --> 00:07:15,620 Usted entiende. Aquí están los colores. con la codificación de los colores. 127 00:07:16,580 --> 00:07:17,500 Nada especial. 128 00:07:21,800 --> 00:07:24,250 Vamos hacia atras 129 00:07:26,570 --> 00:07:31,110 Lo que es interesante de ver, es que aqui tengo 130 00:07:31,277 --> 00:07:33,820 una vista de mi objeto, por ejemplo en sub-morphs. 131 00:07:36,000 --> 00:07:38,500 Si quiero tener la misma vista y si quiero encontrar el 132 00:07:38,667 --> 00:07:42,180 sub-morphs que componene mi objeto gráfico, 133 00:07:42,347 --> 00:07:47,030 cuando estoy en modo Raw, yo tengo que navegar 134 00:07:47,200 --> 00:07:52,050 dentro del árbol de componentes gráficos. 135 00:07:53,130 --> 00:07:54,280 Puede ser realmente molesto. 136 00:07:55,080 --> 00:07:57,760 Le daré un buen consejo. 137 00:07:59,190 --> 00:08:03,660 Imaginemos que tengo mi árbol Morph. 138 00:08:05,550 --> 00:08:08,640 Tengo dos vistas que son exactamente lo mismo en el mismo objeto. 139 00:08:11,160 --> 00:08:12,820 Puedo hacer "Submorph". 140 00:08:13,530 --> 00:08:16,540 Hago Submorph en este y allí tengo Morph. 141 00:08:16,830 --> 00:08:20,520 Ahora puedo seleccionar los elementos en el árbol. 142 00:08:22,230 --> 00:08:25,610 Lo digo:"Quiero mostrar allí solo ésta" 143 00:08:25,777 --> 00:08:30,590 O por ejemplo, aquí estoy realmente 144 00:08:30,757 --> 00:08:35,290 en el sub-morph del árbol correspondiente a mi selección 145 00:08:36,360 --> 00:08:38,900 Es muy poderoso porque a menudo, si tuviera que 146 00:08:39,100 --> 00:08:43,350 encontrar el sub-morph correspondiente 147 00:08:43,517 --> 00:08:48,480 al pequeño indicador, aquí Es bastante fácil, es este. 148 00:08:50,440 --> 00:08:54,850 Sin embargo, si estoy en un modo tradicional, 149 00:08:55,017 --> 00:08:58,130 no es tan fácil porque ... 150 00:08:58,297 --> 00:08:59,350 De hecho, no sé cómo hacerlo. 151 00:08:59,517 --> 00:09:02,270 Tengo que entrar 152 00:09:05,440 --> 00:09:06,960 hasta que lo encuentre 153 00:09:07,470 --> 00:09:12,060 Está aqui ... creo. porque aquí está 154 00:09:12,227 --> 00:09:12,860 un objeto simple 155 00:09:14,500 --> 00:09:16,530 Verá en los otros videos. que podemos hacer 156 00:09:16,697 --> 00:09:20,680 este tipo de operación en cada objeto del sistema. 157 00:09:21,370 --> 00:09:23,530 Le mostraré en particular que podemos hacerlo 158 00:09:23,697 --> 00:09:27,850 en sistemas de archivos, las propias clases. 159 00:09:28,160 --> 00:09:30,040 Como conclusión, lo que hemos visto 160 00:09:30,207 --> 00:09:32,560 es que el inspector es un objeto que le permitirá 161 00:09:32,727 --> 00:09:37,230 hablar con, interactuar y modificar objetos vivos, 162 00:09:37,397 --> 00:09:41,010 sus objetos, y por otro lado, cada objeto 163 00:09:41,177 --> 00:09:45,730 mostrará diferentes aspectos o diferentes vistas de sí mismo 164 00:09:45,897 --> 00:09:48,260 para tener una diferente 165 00:09:48,427 --> 00:09:51,640 interacción de acuerdo con sus escenarios 166 00:09:51,807 --> 00:09:53,760 Constituye un muy, pero muy poderoso objeto. 167 00:09:54,190 --> 00:09:56,290 De hecho, GT Inspector es realmente una gran herramienta