Wikiversidad eswikiversity https://es.wikiversity.org/wiki/Portada MediaWiki 1.46.0-wmf.21 first-letter Medio Especial Discusión Usuario Usuario discusión Wikiversidad Wikiversidad discusión Archivo Archivo discusión MediaWiki MediaWiki discusión Plantilla Plantilla discusión Ayuda Ayuda discusión Categoría Categoría discusión TimedText TimedText talk Módulo Módulo discusión Evento Evento discusión Usuario:MementoCruciatus/Taller 2 28726 178676 178675 2026-03-29T17:12:19Z MementoCruciatus 62136 178676 wikitext text/x-wiki == Raphael Woolf sobre Sócrates == == Contextualización == Este artículo aborda la figura de Sócrates tal como aparece en los diálogos de Platón. La exposición se centra en su caracterización como una figura compleja, provocadora y dedicada al examen de las virtudes mediante el diálogo. Junto con ello, se considera el problema de la reconstrucción histórica de Sócrates, dado que no dejó escritos propios, por lo que su figura debe examinarse a partir de testimonios como los de Platón, Jenofonte y Aristófanes. También se atiende a algunas de las cuestiones filosóficas ligadas a esta representación, en particular la relación entre virtud, conocimiento e investigación filosófica. === Mapa del contenido === * Sócrates en los diálogos de Platón * El problema de Sócrates * La extrañeza del personaje socrático * Virtud y conocimiento * Sócrates y la forma dialógica de Platón 5h244ze1hjzuip3j7tt1ouja9asalwy 178677 178676 2026-03-29T18:22:04Z MementoCruciatus 62136 178677 wikitext text/x-wiki == Raphael Woolf sobre Sócrates == == Contextualización == Este artículo aborda la figura de Sócrates tal como aparece en los diálogos de Platón. La exposición se centra en su caracterización como una figura compleja, provocadora y dedicada al examen de las virtudes mediante el diálogo. Junto con ello, se considera el problema de la reconstrucción histórica de Sócrates, dado que no dejó escritos propios, por lo que su figura debe examinarse a partir de testimonios como los de Platón, Jenofonte y Aristófanes. También se atiende a algunas de las cuestiones filosóficas ligadas a esta representación, en particular la relación entre virtud, conocimiento e investigación filosófica. === Mapa del contenido === * Sócrates en los diálogos de Platón * El problema de Sócrates * La extrañeza del personaje socrático * Virtud y conocimiento * Sócrates y la forma dialógica de Platón == Sócrates en los diálogos de Platón == En los diálogos de Platón, Sócrates aparece como una figura compleja que se presenta a sí misma como un tábano que busca despertar a Atenas. Su actividad consiste en interrogar a otros acerca de la virtud y de las distintas virtudes, con la expectativa de encontrar a alguien capaz de explicar en qué consisten. Sin embargo, quienes intentan responder suelen fracasar, porque Sócrates los somete a una serie de preguntas que muestran que no saben realmente de qué están hablando. Esta representación lo muestra como una figura molesta, provocadora y pública, que pone en evidencia una ignorancia que sus interlocutores no creían tener o no querían ver expuesta. En ese sentido, Platón lo presenta como alguien difícil de tratar, pero al mismo tiempo comprometido con una forma de examen que busca mover a otros hacia una vida mejor. == El problema de Sócrates == Uno de los problemas centrales para estudiar a Sócrates es que no dejó ninguna obra escrita. Por ello, su figura debe reconstruirse a partir de testimonios ajenos, entre los que destacan Platón, Jenofonte y Aristófanes. Esta situación da lugar al llamado problema de Sócrates: la dificultad de determinar quién fue realmente a partir de fuentes de carácter y propósito distintos. Aristófanes constituye un testimonio cercano en el tiempo, pero su retrato tiene un carácter satírico y paródico. Platón y Jenofonte, por su parte, fueron seguidores de Sócrates, aunque lo presentan de maneras diferentes. En Platón aparece como una figura provocadora y molesta, mientras que en Jenofonte su figura resulta menos inquietante. Esta diferencia influye en la valoración de cuál de los testimonios puede acercarse mejor a la figura histórica de Sócrates. == La extrañeza del personaje socrático == Sócrates es presentado como una figura extraña y peculiar, alguien que no parece tener un lugar ordinario entre los demás. En este sentido, aparece como un personaje admirable, pero también difícil de tomar simplemente como modelo de imitación. Su singularidad no depende solo de sus ideas, sino también de ciertos rasgos de vida y de carácter que lo distinguen con claridad. Entre esos rasgos se encuentran su pobreza, el hecho de andar descalzo y una notable resistencia física. Se le atribuye la capacidad de soportar extremos de calor y frío, así como la de beber más que otros sin perder el control. Sin embargo, estos rasgos no lo convierten en una figura ascética en sentido estricto. Se lo presenta más bien como alguien indiferente a los placeres físicos: come, bebe y participa en la vida ordinaria, pero sin conceder a esas actividades un valor especial. Así, su rareza consiste menos en retirarse del mundo físico que en vivir en él sin quedar determinado por él. == Virtud y conocimiento == En la representación socrática examinada aquí, la virtud aparece estrechamente ligada al conocimiento. Sócrates sostiene que, si alguien no sabe qué es la virtud, no puede ser verdaderamente virtuoso, o al menos no puede serlo de manera confiable. Por eso insiste en pedir definiciones de las virtudes particulares, como la piedad, con el fin de poder distinguir con seguridad qué acciones corresponden a ellas y cuáles no. Esta concepción da a la virtud un carácter fuertemente intelectual. No basta con acertar por costumbre o por instinto en una acción correcta; para que una acción sea verdaderamente virtuosa debe estar acompañada por el conocimiento de lo que esa virtud es. A partir de ello, también se plantea una tesis más fuerte: que quien sabe realmente qué es lo bueno o correcto actuará de acuerdo con ese conocimiento. En este marco, la debilidad de la voluntad aparece como algo imposible, porque nada podría interponerse entre el conocimiento genuino de lo mejor y la realización de la acción correspondiente. == Sócrates y la forma dialógica de Platón == La figura de Sócrates ayuda a entender por qué la filosofía platónica adopta la forma del diálogo. Su manera de proceder depende de la confrontación con otras personas, de la puesta a prueba de sus pretensiones de saber y del examen de creencias que, al ser interrogadas, muestran sus dificultades y contradicciones. Por ello, el diálogo no aparece aquí solo como un recurso literario, sino como una forma adecuada para mostrar el tipo de investigación que Sócrates promueve. En este marco, lo importante no es únicamente establecer una doctrina positiva, sino provocar a los interlocutores para que reconozcan la insuficiencia de sus creencias y continúen investigando. Incluso cuando Sócrates parece menos combativo y más dispuesto a desarrollar una posición, sigue siendo difícil determinar con precisión qué cree él mismo. De este modo, la forma dialógica permite mostrar tanto el examen crítico de las opiniones como la convicción de que la indagación filosófica no debe abandonarse. == Véase también == * [[El problema de Sócrates]] * [[Filosofía antigua]] * [[Líneas principales del pensamiento de Platón]] * [[Ética]] * [[Introducción a la Filosofía]] == Notas == * La imagen del «tábano» procede de la ''Apología'' y sirve para caracterizar a Sócrates como una figura que provoca e incomoda a la ciudad. * El término griego ''atopos'' se usa para describir a Sócrates como alguien extraño o peculiar, literalmente alguien que «no tiene lugar». * El llamado problema de Sócrates surge, entre otras razones, porque Sócrates no dejó escritos propios y su figura debe reconstruirse a partir de testimonios ajenos. * La imposibilidad de la ''akrasia'' se presenta como la tesis según la cual nada puede interponerse entre el conocimiento genuino de lo que se debe hacer y la acción correspondiente. == Bibliografía == * Adamson, Peter. ''Classical Philosophy: A History of Philosophy Without Any Gaps''. Volumen 1. First Edition. Oxford: Oxford University Press, 2014. ISBN 978-0-19-166203-4. * Adamson, Peter; Woolf, Raphael. ''HoP 017 - Raphael Woolf on Socrates''. clnts54rt6fyvv6vawkvbznk585f76o 178680 178677 2026-03-29T18:32:35Z MementoCruciatus 62136 Página reemplazada por «== En diálogo: la vida y las obras de Platón ==» 178680 wikitext text/x-wiki == En diálogo: la vida y las obras de Platón == ixhy17b56bb2pnpwanc7u0oc9t367bh Usuario:MementoCruciatus 2 28728 178679 178674 2026-03-29T18:24:16Z MementoCruciatus 62136 /* Historia de la Filosofía Sin Lagunas */ 178679 wikitext text/x-wiki == Sobre mí == Trabajo en una sociedad de conocimiento, enfocado en acompañar procesos de aprendizaje y discusión académica Me interesa especialmente la filosofía, tanto en su dimensión teórica como en su aplicación para leer, argumentar y pensar con más claridad == Qué hago en Wikiversidad == Principalmente voy a * editar y crear cursos/bloques de filosofía * redactar y mejorar artículos y materiales de estudio * organizar contenidos por unidades, lecturas y actividades == Líneas de trabajo == Mis temas centrales de trabajo incluyen * escepticismo * epistemología (teoría del conocimiento) * historia de la filosofía griega antigua * filosofía moral * estética filosófica * lógica y argumentación == Mis cursos y publicaciones == === Cursos === * [[Escepticismo]] * [[Epistemología]] * [[Relativismo]] * [[Pluralismo]] * [[Pragmatismo]] * [[Parménides]] === Publicaciones === * [[La apoteosis de la guerra]] * [[El tacaño cognitivo]] === Historia de la Filosofía Sin Lagunas === * HoP 1 [[Todo está lleno de dioses - Tales de Mileto]] * HoP 2 [[El infinito y más allá - Anaximandro y Anaxímenes]] * HoP 3 [[Creados a nuestra imagen - Jenófanes contra la religión griega]] * HoP 4 [[El hombre del muslo de oro - Pitágoras]] * HoP 5 [[El viejo río - Heráclito]] * Hop 6 [[MM McCabe sobre Heráclito]] * HoP 7 [[El camino menos transitado - Parménides]] * HoP 8 [[No se puede llegar allí desde aquí - Zenón y Meliso]] * HoP 9 [[El corte final - Demócrito y Leucipo]] * HoP 10 [[Mente sobre la mezcla - Anaxágoras]] * HoP 11 [[Todo lo que necesitas es amor, y otras cinco cosas - Empédocles]] * HoP 12 [[Malcolm Schofield sobre los presocráticos]] * HoP 13 [[Los hombres de buen humor: los hipocráticos]] * HoP 14 [[Cómo convertir el argumento más débil en el más fuerte: los sofistas]] * HoP 15 [[Sócrates sin Platón: las representaciones de Aristófanes y Jenofonte]] * HoP 16 [[Hombre de método - El Sócrates de Platón]] * HoP 17 [[Raphael Woolf sobre Sócrates]] ss0vyn2s8k2i0sh1q0218soavx5kwaq Usuario:Emir.Herrera/Taller/Plan de estudio 2 28762 178681 178670 2026-03-29T19:26:02Z ~2026-19539-53 62272 /* Bloque 1: TypeScript e Ingeniería de Tipos */ 178681 wikitext text/x-wiki = Plan de Estudio de Ingeniería de Software y Cloud= == Bloque 1: TypeScript e Ingeniería de Tipos == '''Objetivo:''' Dominar la manipulación de datos y la seguridad de tipos en situaciones de entrevista técnica. ==== Fundamentos y Tipado de Primitivos ==== * '''Tipado Explícito vs. Inferido:''' Cuándo dejar que TypeScript trabaje solo y cuándo forzar el tipo. * '''Union Types y Literales:''' Definir variables que solo acepten valores específicos (ej. <nowiki>type Status = 'loading' | 'success' | 'error'</nowiki>). * '''Enums vs. Const Objects:''' Pros y contras en términos de tamaño de bundle y legibilidad. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/everyday-types.html TS Handbook: Everyday Types] ==== Manipulación de Strings y Listas (Arrays) ==== * '''Métodos de Array Inmutables:''' Dominio de <nowiki>map(), filter(), reduce(), find() y some()/every()</nowiki>. * '''Tuplas:''' Definición de arrays de longitud fija con tipos específicos por posición. * '''Template Literal Types:''' Tipado avanzado basado en strings (ej. <nowiki>`${Protocol}://${Domain}`</nowiki>). * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html TS Handbook: Template Literal Types] ==== Diccionarios y Objetos (Mapping) ==== * '''Index Signatures:''' Cómo tipar objetos donde no conoces todas las llaves de antemano (<nowiki>{ [key: string]: T }</nowiki>). * '''Record Utility Type:''' La forma idiomática de definir diccionarios: <nowiki>Record<K, T></nowiki>. * '''Mapas y Sets:''' Uso de Map o Set nativos de JS para mejorar el rendimiento en búsquedas de complejidad $O(1)$. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html TS Handbook: Indexed Access Types] ==== Resolución de Problemas (Algoritmia) ==== * '''Narrowing Dinámico:''' Uso de <nowiki>typeof, instanceof</nowiki> y Type Guards personalizados para procesar datos mixtos. * '''Tipado de Funciones:''' Definición de firmas, parámetros opcionales y valores por defecto. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/functions.html TS Handbook: More on Functions] === Uniones Discriminadas y Pattern Matching === * '''Type Narrowing''': Uso de tags para estrechamiento de tipos (Type Narrowing). * '''Never''': Implementación de tipos exhaustivos con el operador never. Referencia: [https://www.typescriptlang.org/docs/handbook/2/narrowing.html TS Handbook: Narrowing] === Tipos Utilitarios y Genéricos === * Extract, Exclude, ReturnType y Parameters. * Creación de tipos condicionales complejos. Referencia: [https://www.typescriptlang.org/docs/handbook/utility-types.html TS Handbook: Utility Types] === Evaluación Bloque 1 === [[/Evaluación: TypeScript | Evaluación de TypeScript]] == Bloque 2: Next.js y Patrones de Renderizado == Objetivo: Dominar los límites (boundaries) entre el servidor y el cliente, y optimizar el rendimiento mediante estrategias de renderizado. === App Router y Límites de Segmento === Jerarquía de layout.js, template.js, error.js y loading.js. Manejo de estados de carga con Streaming y Suspense. Referencia: [https://nextjs.org/docs/app/api-reference/file-conventions Next.js: File Conventions] === La Frontera Servidor-Cliente === Serialización de datos a través de la directiva 'use client'. Composición de componentes: Cuándo mover el estado al cliente y cuándo mantener la lógica en el servidor. Referencia: [https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns Next.js: Server & Client Components] == Bloque 3: Redes en AWS y Seguridad == Objetivo: Articular con precisión cómo fluye el tráfico en una nube pública y cómo se protege. === Topología de Red en VPC === Diseño de Subredes (Públicas vs. Privadas). Uso de Internet Gateways (IGW) y NAT Gateways para salida segura. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html AWS Documentation: VPC Fundamentals] === Estrategias de Seguridad de Red === Security Groups: Microsegmentación a nivel de instancia (Stateful). Network ACLs: Control de tráfico a nivel de subred (Stateless). Diferencias críticas en el orden de evaluación de reglas. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html AWS: Security Groups vs. NACLs] rqkikbmz0cgcjccx1u5m6mcgl371e6g 178684 178681 2026-03-29T19:42:48Z Emir.Herrera 51293 /* Evaluación Bloque 1 */ 178684 wikitext text/x-wiki = Plan de Estudio de Ingeniería de Software y Cloud= == Bloque 1: TypeScript e Ingeniería de Tipos == '''Objetivo:''' Dominar la manipulación de datos y la seguridad de tipos en situaciones de entrevista técnica. ==== Fundamentos y Tipado de Primitivos ==== * '''Tipado Explícito vs. Inferido:''' Cuándo dejar que TypeScript trabaje solo y cuándo forzar el tipo. * '''Union Types y Literales:''' Definir variables que solo acepten valores específicos (ej. <nowiki>type Status = 'loading' | 'success' | 'error'</nowiki>). * '''Enums vs. Const Objects:''' Pros y contras en términos de tamaño de bundle y legibilidad. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/everyday-types.html TS Handbook: Everyday Types] ==== Manipulación de Strings y Listas (Arrays) ==== * '''Métodos de Array Inmutables:''' Dominio de <nowiki>map(), filter(), reduce(), find() y some()/every()</nowiki>. * '''Tuplas:''' Definición de arrays de longitud fija con tipos específicos por posición. * '''Template Literal Types:''' Tipado avanzado basado en strings (ej. <nowiki>`${Protocol}://${Domain}`</nowiki>). * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html TS Handbook: Template Literal Types] ==== Diccionarios y Objetos (Mapping) ==== * '''Index Signatures:''' Cómo tipar objetos donde no conoces todas las llaves de antemano (<nowiki>{ [key: string]: T }</nowiki>). * '''Record Utility Type:''' La forma idiomática de definir diccionarios: <nowiki>Record<K, T></nowiki>. * '''Mapas y Sets:''' Uso de Map o Set nativos de JS para mejorar el rendimiento en búsquedas de complejidad $O(1)$. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html TS Handbook: Indexed Access Types] ==== Resolución de Problemas (Algoritmia) ==== * '''Narrowing Dinámico:''' Uso de <nowiki>typeof, instanceof</nowiki> y Type Guards personalizados para procesar datos mixtos. * '''Tipado de Funciones:''' Definición de firmas, parámetros opcionales y valores por defecto. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/functions.html TS Handbook: More on Functions] === Uniones Discriminadas y Pattern Matching === * '''Type Narrowing''': Uso de tags para estrechamiento de tipos (Type Narrowing). * '''Never''': Implementación de tipos exhaustivos con el operador never. Referencia: [https://www.typescriptlang.org/docs/handbook/2/narrowing.html TS Handbook: Narrowing] === Tipos Utilitarios y Genéricos === * Extract, Exclude, ReturnType y Parameters. * Creación de tipos condicionales complejos. Referencia: [https://www.typescriptlang.org/docs/handbook/utility-types.html TS Handbook: Utility Types] === Evaluación Bloque 1 === [[/Evaluación: TypeScript | Evaluación de Everyday Types]] == Bloque 2: Next.js y Patrones de Renderizado == Objetivo: Dominar los límites (boundaries) entre el servidor y el cliente, y optimizar el rendimiento mediante estrategias de renderizado. === App Router y Límites de Segmento === Jerarquía de layout.js, template.js, error.js y loading.js. Manejo de estados de carga con Streaming y Suspense. Referencia: [https://nextjs.org/docs/app/api-reference/file-conventions Next.js: File Conventions] === La Frontera Servidor-Cliente === Serialización de datos a través de la directiva 'use client'. Composición de componentes: Cuándo mover el estado al cliente y cuándo mantener la lógica en el servidor. Referencia: [https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns Next.js: Server & Client Components] == Bloque 3: Redes en AWS y Seguridad == Objetivo: Articular con precisión cómo fluye el tráfico en una nube pública y cómo se protege. === Topología de Red en VPC === Diseño de Subredes (Públicas vs. Privadas). Uso de Internet Gateways (IGW) y NAT Gateways para salida segura. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html AWS Documentation: VPC Fundamentals] === Estrategias de Seguridad de Red === Security Groups: Microsegmentación a nivel de instancia (Stateful). Network ACLs: Control de tráfico a nivel de subred (Stateless). Diferencias críticas en el orden de evaluación de reglas. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html AWS: Security Groups vs. NACLs] q08jfsqmknzcgpqx091164dmdtrudof 178685 178684 2026-03-29T19:45:52Z Emir.Herrera 51293 /* Evaluación Bloque 1 */ 178685 wikitext text/x-wiki = Plan de Estudio de Ingeniería de Software y Cloud= == Bloque 1: TypeScript e Ingeniería de Tipos == '''Objetivo:''' Dominar la manipulación de datos y la seguridad de tipos en situaciones de entrevista técnica. ==== Fundamentos y Tipado de Primitivos ==== * '''Tipado Explícito vs. Inferido:''' Cuándo dejar que TypeScript trabaje solo y cuándo forzar el tipo. * '''Union Types y Literales:''' Definir variables que solo acepten valores específicos (ej. <nowiki>type Status = 'loading' | 'success' | 'error'</nowiki>). * '''Enums vs. Const Objects:''' Pros y contras en términos de tamaño de bundle y legibilidad. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/everyday-types.html TS Handbook: Everyday Types] ==== Manipulación de Strings y Listas (Arrays) ==== * '''Métodos de Array Inmutables:''' Dominio de <nowiki>map(), filter(), reduce(), find() y some()/every()</nowiki>. * '''Tuplas:''' Definición de arrays de longitud fija con tipos específicos por posición. * '''Template Literal Types:''' Tipado avanzado basado en strings (ej. <nowiki>`${Protocol}://${Domain}`</nowiki>). * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html TS Handbook: Template Literal Types] ==== Diccionarios y Objetos (Mapping) ==== * '''Index Signatures:''' Cómo tipar objetos donde no conoces todas las llaves de antemano (<nowiki>{ [key: string]: T }</nowiki>). * '''Record Utility Type:''' La forma idiomática de definir diccionarios: <nowiki>Record<K, T></nowiki>. * '''Mapas y Sets:''' Uso de Map o Set nativos de JS para mejorar el rendimiento en búsquedas de complejidad $O(1)$. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html TS Handbook: Indexed Access Types] ==== Resolución de Problemas (Algoritmia) ==== * '''Narrowing Dinámico:''' Uso de <nowiki>typeof, instanceof</nowiki> y Type Guards personalizados para procesar datos mixtos. * '''Tipado de Funciones:''' Definición de firmas, parámetros opcionales y valores por defecto. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/functions.html TS Handbook: More on Functions] === Uniones Discriminadas y Pattern Matching === * '''Type Narrowing''': Uso de tags para estrechamiento de tipos (Type Narrowing). * '''Never''': Implementación de tipos exhaustivos con el operador never. Referencia: [https://www.typescriptlang.org/docs/handbook/2/narrowing.html TS Handbook: Narrowing] === Tipos Utilitarios y Genéricos === * Extract, Exclude, ReturnType y Parameters. * Creación de tipos condicionales complejos. Referencia: [https://www.typescriptlang.org/docs/handbook/utility-types.html TS Handbook: Utility Types] === Evaluación Bloque 1 === [[/Evaluación: TypeScript | Evaluación de Everyday Types]] [[/Evaluación de TypeScript: Clases de TypeScript]] == Bloque 2: Next.js y Patrones de Renderizado == Objetivo: Dominar los límites (boundaries) entre el servidor y el cliente, y optimizar el rendimiento mediante estrategias de renderizado. === App Router y Límites de Segmento === Jerarquía de layout.js, template.js, error.js y loading.js. Manejo de estados de carga con Streaming y Suspense. Referencia: [https://nextjs.org/docs/app/api-reference/file-conventions Next.js: File Conventions] === La Frontera Servidor-Cliente === Serialización de datos a través de la directiva 'use client'. Composición de componentes: Cuándo mover el estado al cliente y cuándo mantener la lógica en el servidor. Referencia: [https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns Next.js: Server & Client Components] == Bloque 3: Redes en AWS y Seguridad == Objetivo: Articular con precisión cómo fluye el tráfico en una nube pública y cómo se protege. === Topología de Red en VPC === Diseño de Subredes (Públicas vs. Privadas). Uso de Internet Gateways (IGW) y NAT Gateways para salida segura. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html AWS Documentation: VPC Fundamentals] === Estrategias de Seguridad de Red === Security Groups: Microsegmentación a nivel de instancia (Stateful). Network ACLs: Control de tráfico a nivel de subred (Stateless). Diferencias críticas en el orden de evaluación de reglas. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html AWS: Security Groups vs. NACLs] hdcoc8g1n0lpfowhbse35inmhlhj0os 178686 178685 2026-03-29T19:46:21Z Emir.Herrera 51293 /* Evaluación Bloque 1 */ 178686 wikitext text/x-wiki = Plan de Estudio de Ingeniería de Software y Cloud= == Bloque 1: TypeScript e Ingeniería de Tipos == '''Objetivo:''' Dominar la manipulación de datos y la seguridad de tipos en situaciones de entrevista técnica. ==== Fundamentos y Tipado de Primitivos ==== * '''Tipado Explícito vs. Inferido:''' Cuándo dejar que TypeScript trabaje solo y cuándo forzar el tipo. * '''Union Types y Literales:''' Definir variables que solo acepten valores específicos (ej. <nowiki>type Status = 'loading' | 'success' | 'error'</nowiki>). * '''Enums vs. Const Objects:''' Pros y contras en términos de tamaño de bundle y legibilidad. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/everyday-types.html TS Handbook: Everyday Types] ==== Manipulación de Strings y Listas (Arrays) ==== * '''Métodos de Array Inmutables:''' Dominio de <nowiki>map(), filter(), reduce(), find() y some()/every()</nowiki>. * '''Tuplas:''' Definición de arrays de longitud fija con tipos específicos por posición. * '''Template Literal Types:''' Tipado avanzado basado en strings (ej. <nowiki>`${Protocol}://${Domain}`</nowiki>). * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html TS Handbook: Template Literal Types] ==== Diccionarios y Objetos (Mapping) ==== * '''Index Signatures:''' Cómo tipar objetos donde no conoces todas las llaves de antemano (<nowiki>{ [key: string]: T }</nowiki>). * '''Record Utility Type:''' La forma idiomática de definir diccionarios: <nowiki>Record<K, T></nowiki>. * '''Mapas y Sets:''' Uso de Map o Set nativos de JS para mejorar el rendimiento en búsquedas de complejidad $O(1)$. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html TS Handbook: Indexed Access Types] ==== Resolución de Problemas (Algoritmia) ==== * '''Narrowing Dinámico:''' Uso de <nowiki>typeof, instanceof</nowiki> y Type Guards personalizados para procesar datos mixtos. * '''Tipado de Funciones:''' Definición de firmas, parámetros opcionales y valores por defecto. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/functions.html TS Handbook: More on Functions] === Uniones Discriminadas y Pattern Matching === * '''Type Narrowing''': Uso de tags para estrechamiento de tipos (Type Narrowing). * '''Never''': Implementación de tipos exhaustivos con el operador never. Referencia: [https://www.typescriptlang.org/docs/handbook/2/narrowing.html TS Handbook: Narrowing] === Tipos Utilitarios y Genéricos === * Extract, Exclude, ReturnType y Parameters. * Creación de tipos condicionales complejos. Referencia: [https://www.typescriptlang.org/docs/handbook/utility-types.html TS Handbook: Utility Types] === Evaluación Bloque 1 === * [[/Evaluación: TypeScript | Evaluación de Everyday Types]] * [[/Evaluación de TypeScript: Clases de TypeScript | Clases de TypeScript]] == Bloque 2: Next.js y Patrones de Renderizado == Objetivo: Dominar los límites (boundaries) entre el servidor y el cliente, y optimizar el rendimiento mediante estrategias de renderizado. === App Router y Límites de Segmento === Jerarquía de layout.js, template.js, error.js y loading.js. Manejo de estados de carga con Streaming y Suspense. Referencia: [https://nextjs.org/docs/app/api-reference/file-conventions Next.js: File Conventions] === La Frontera Servidor-Cliente === Serialización de datos a través de la directiva 'use client'. Composición de componentes: Cuándo mover el estado al cliente y cuándo mantener la lógica en el servidor. Referencia: [https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns Next.js: Server & Client Components] == Bloque 3: Redes en AWS y Seguridad == Objetivo: Articular con precisión cómo fluye el tráfico en una nube pública y cómo se protege. === Topología de Red en VPC === Diseño de Subredes (Públicas vs. Privadas). Uso de Internet Gateways (IGW) y NAT Gateways para salida segura. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html AWS Documentation: VPC Fundamentals] === Estrategias de Seguridad de Red === Security Groups: Microsegmentación a nivel de instancia (Stateful). Network ACLs: Control de tráfico a nivel de subred (Stateless). Diferencias críticas en el orden de evaluación de reglas. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html AWS: Security Groups vs. NACLs] o0k5fq76svle133p1ibwpywv22x3qzw 178688 178686 2026-03-29T19:58:41Z Emir.Herrera 51293 /* Evaluación Bloque 1 */ 178688 wikitext text/x-wiki = Plan de Estudio de Ingeniería de Software y Cloud= == Bloque 1: TypeScript e Ingeniería de Tipos == '''Objetivo:''' Dominar la manipulación de datos y la seguridad de tipos en situaciones de entrevista técnica. ==== Fundamentos y Tipado de Primitivos ==== * '''Tipado Explícito vs. Inferido:''' Cuándo dejar que TypeScript trabaje solo y cuándo forzar el tipo. * '''Union Types y Literales:''' Definir variables que solo acepten valores específicos (ej. <nowiki>type Status = 'loading' | 'success' | 'error'</nowiki>). * '''Enums vs. Const Objects:''' Pros y contras en términos de tamaño de bundle y legibilidad. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/everyday-types.html TS Handbook: Everyday Types] ==== Manipulación de Strings y Listas (Arrays) ==== * '''Métodos de Array Inmutables:''' Dominio de <nowiki>map(), filter(), reduce(), find() y some()/every()</nowiki>. * '''Tuplas:''' Definición de arrays de longitud fija con tipos específicos por posición. * '''Template Literal Types:''' Tipado avanzado basado en strings (ej. <nowiki>`${Protocol}://${Domain}`</nowiki>). * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html TS Handbook: Template Literal Types] ==== Diccionarios y Objetos (Mapping) ==== * '''Index Signatures:''' Cómo tipar objetos donde no conoces todas las llaves de antemano (<nowiki>{ [key: string]: T }</nowiki>). * '''Record Utility Type:''' La forma idiomática de definir diccionarios: <nowiki>Record<K, T></nowiki>. * '''Mapas y Sets:''' Uso de Map o Set nativos de JS para mejorar el rendimiento en búsquedas de complejidad $O(1)$. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html TS Handbook: Indexed Access Types] ==== Resolución de Problemas (Algoritmia) ==== * '''Narrowing Dinámico:''' Uso de <nowiki>typeof, instanceof</nowiki> y Type Guards personalizados para procesar datos mixtos. * '''Tipado de Funciones:''' Definición de firmas, parámetros opcionales y valores por defecto. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/functions.html TS Handbook: More on Functions] === Uniones Discriminadas y Pattern Matching === * '''Type Narrowing''': Uso de tags para estrechamiento de tipos (Type Narrowing). * '''Never''': Implementación de tipos exhaustivos con el operador never. Referencia: [https://www.typescriptlang.org/docs/handbook/2/narrowing.html TS Handbook: Narrowing] === Tipos Utilitarios y Genéricos === * Extract, Exclude, ReturnType y Parameters. * Creación de tipos condicionales complejos. Referencia: [https://www.typescriptlang.org/docs/handbook/utility-types.html TS Handbook: Utility Types] === Evaluación Bloque 1 === * [[/Evaluación: TypeScript | Evaluación de Everyday Types]] * [[/Evaluación de TypeScript: Clases de TypeScript | Clases de TypeScript]] * [[/Evaluación de TypeScript: ENUMS | Evaluación TypeScript - ENUMS ]] == Bloque 2: Next.js y Patrones de Renderizado == Objetivo: Dominar los límites (boundaries) entre el servidor y el cliente, y optimizar el rendimiento mediante estrategias de renderizado. === App Router y Límites de Segmento === Jerarquía de layout.js, template.js, error.js y loading.js. Manejo de estados de carga con Streaming y Suspense. Referencia: [https://nextjs.org/docs/app/api-reference/file-conventions Next.js: File Conventions] === La Frontera Servidor-Cliente === Serialización de datos a través de la directiva 'use client'. Composición de componentes: Cuándo mover el estado al cliente y cuándo mantener la lógica en el servidor. Referencia: [https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns Next.js: Server & Client Components] == Bloque 3: Redes en AWS y Seguridad == Objetivo: Articular con precisión cómo fluye el tráfico en una nube pública y cómo se protege. === Topología de Red en VPC === Diseño de Subredes (Públicas vs. Privadas). Uso de Internet Gateways (IGW) y NAT Gateways para salida segura. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html AWS Documentation: VPC Fundamentals] === Estrategias de Seguridad de Red === Security Groups: Microsegmentación a nivel de instancia (Stateful). Network ACLs: Control de tráfico a nivel de subred (Stateless). Diferencias críticas en el orden de evaluación de reglas. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html AWS: Security Groups vs. NACLs] gotajhx6585dfx16fezw2hi49u8b1gl 178691 178688 2026-03-29T20:04:02Z Emir.Herrera 51293 /* Evaluación Bloque 1 */ 178691 wikitext text/x-wiki = Plan de Estudio de Ingeniería de Software y Cloud= == Bloque 1: TypeScript e Ingeniería de Tipos == '''Objetivo:''' Dominar la manipulación de datos y la seguridad de tipos en situaciones de entrevista técnica. ==== Fundamentos y Tipado de Primitivos ==== * '''Tipado Explícito vs. Inferido:''' Cuándo dejar que TypeScript trabaje solo y cuándo forzar el tipo. * '''Union Types y Literales:''' Definir variables que solo acepten valores específicos (ej. <nowiki>type Status = 'loading' | 'success' | 'error'</nowiki>). * '''Enums vs. Const Objects:''' Pros y contras en términos de tamaño de bundle y legibilidad. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/everyday-types.html TS Handbook: Everyday Types] ==== Manipulación de Strings y Listas (Arrays) ==== * '''Métodos de Array Inmutables:''' Dominio de <nowiki>map(), filter(), reduce(), find() y some()/every()</nowiki>. * '''Tuplas:''' Definición de arrays de longitud fija con tipos específicos por posición. * '''Template Literal Types:''' Tipado avanzado basado en strings (ej. <nowiki>`${Protocol}://${Domain}`</nowiki>). * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html TS Handbook: Template Literal Types] ==== Diccionarios y Objetos (Mapping) ==== * '''Index Signatures:''' Cómo tipar objetos donde no conoces todas las llaves de antemano (<nowiki>{ [key: string]: T }</nowiki>). * '''Record Utility Type:''' La forma idiomática de definir diccionarios: <nowiki>Record<K, T></nowiki>. * '''Mapas y Sets:''' Uso de Map o Set nativos de JS para mejorar el rendimiento en búsquedas de complejidad $O(1)$. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html TS Handbook: Indexed Access Types] ==== Resolución de Problemas (Algoritmia) ==== * '''Narrowing Dinámico:''' Uso de <nowiki>typeof, instanceof</nowiki> y Type Guards personalizados para procesar datos mixtos. * '''Tipado de Funciones:''' Definición de firmas, parámetros opcionales y valores por defecto. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/functions.html TS Handbook: More on Functions] === Uniones Discriminadas y Pattern Matching === * '''Type Narrowing''': Uso de tags para estrechamiento de tipos (Type Narrowing). * '''Never''': Implementación de tipos exhaustivos con el operador never. Referencia: [https://www.typescriptlang.org/docs/handbook/2/narrowing.html TS Handbook: Narrowing] === Tipos Utilitarios y Genéricos === * Extract, Exclude, ReturnType y Parameters. * Creación de tipos condicionales complejos. Referencia: [https://www.typescriptlang.org/docs/handbook/utility-types.html TS Handbook: Utility Types] === Evaluación Bloque 1 === * [[/Evaluación: TypeScript | Evaluación de Everyday Types]] * [[/Evaluación de TypeScript: Clases de TypeScript | Clases de TypeScript]] * [[/Evaluación de TypeScript: ENUMS | Evaluación TypeScript - ENUMS ]] * [[/Evaluación de TypeScript: Template Literals | Evaluación TypeScript - Template Literals]] * [[/Evaluación de TypeScript: Indexed Access Types | Evaluación TypeScript - Indexed Access Types]] * [[/Evaluación de TypeScript: More on Functions | Evaluación TypeScript - More on Functions]] * [[/Evaluación de TypeScript: Utility Types | Evaluación TypeScript - Utility Types]] [[/Evaluación de TypeScript: Narowing | Evaluación TypeScript - Narrowing]] == Bloque 2: Next.js y Patrones de Renderizado == Objetivo: Dominar los límites (boundaries) entre el servidor y el cliente, y optimizar el rendimiento mediante estrategias de renderizado. === App Router y Límites de Segmento === Jerarquía de layout.js, template.js, error.js y loading.js. Manejo de estados de carga con Streaming y Suspense. Referencia: [https://nextjs.org/docs/app/api-reference/file-conventions Next.js: File Conventions] === La Frontera Servidor-Cliente === Serialización de datos a través de la directiva 'use client'. Composición de componentes: Cuándo mover el estado al cliente y cuándo mantener la lógica en el servidor. Referencia: [https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns Next.js: Server & Client Components] == Bloque 3: Redes en AWS y Seguridad == Objetivo: Articular con precisión cómo fluye el tráfico en una nube pública y cómo se protege. === Topología de Red en VPC === Diseño de Subredes (Públicas vs. Privadas). Uso de Internet Gateways (IGW) y NAT Gateways para salida segura. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html AWS Documentation: VPC Fundamentals] === Estrategias de Seguridad de Red === Security Groups: Microsegmentación a nivel de instancia (Stateful). Network ACLs: Control de tráfico a nivel de subred (Stateless). Diferencias críticas en el orden de evaluación de reglas. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html AWS: Security Groups vs. NACLs] 9yhyt4tm9crv1frhckg4nj8mvi5d4o4 178693 178691 2026-03-29T20:04:49Z Emir.Herrera 51293 /* Evaluación Bloque 1 */ 178693 wikitext text/x-wiki = Plan de Estudio de Ingeniería de Software y Cloud= == Bloque 1: TypeScript e Ingeniería de Tipos == '''Objetivo:''' Dominar la manipulación de datos y la seguridad de tipos en situaciones de entrevista técnica. ==== Fundamentos y Tipado de Primitivos ==== * '''Tipado Explícito vs. Inferido:''' Cuándo dejar que TypeScript trabaje solo y cuándo forzar el tipo. * '''Union Types y Literales:''' Definir variables que solo acepten valores específicos (ej. <nowiki>type Status = 'loading' | 'success' | 'error'</nowiki>). * '''Enums vs. Const Objects:''' Pros y contras en términos de tamaño de bundle y legibilidad. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/everyday-types.html TS Handbook: Everyday Types] ==== Manipulación de Strings y Listas (Arrays) ==== * '''Métodos de Array Inmutables:''' Dominio de <nowiki>map(), filter(), reduce(), find() y some()/every()</nowiki>. * '''Tuplas:''' Definición de arrays de longitud fija con tipos específicos por posición. * '''Template Literal Types:''' Tipado avanzado basado en strings (ej. <nowiki>`${Protocol}://${Domain}`</nowiki>). * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html TS Handbook: Template Literal Types] ==== Diccionarios y Objetos (Mapping) ==== * '''Index Signatures:''' Cómo tipar objetos donde no conoces todas las llaves de antemano (<nowiki>{ [key: string]: T }</nowiki>). * '''Record Utility Type:''' La forma idiomática de definir diccionarios: <nowiki>Record<K, T></nowiki>. * '''Mapas y Sets:''' Uso de Map o Set nativos de JS para mejorar el rendimiento en búsquedas de complejidad $O(1)$. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html TS Handbook: Indexed Access Types] ==== Resolución de Problemas (Algoritmia) ==== * '''Narrowing Dinámico:''' Uso de <nowiki>typeof, instanceof</nowiki> y Type Guards personalizados para procesar datos mixtos. * '''Tipado de Funciones:''' Definición de firmas, parámetros opcionales y valores por defecto. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/functions.html TS Handbook: More on Functions] === Uniones Discriminadas y Pattern Matching === * '''Type Narrowing''': Uso de tags para estrechamiento de tipos (Type Narrowing). * '''Never''': Implementación de tipos exhaustivos con el operador never. Referencia: [https://www.typescriptlang.org/docs/handbook/2/narrowing.html TS Handbook: Narrowing] === Tipos Utilitarios y Genéricos === * Extract, Exclude, ReturnType y Parameters. * Creación de tipos condicionales complejos. Referencia: [https://www.typescriptlang.org/docs/handbook/utility-types.html TS Handbook: Utility Types] === Evaluación Bloque 1 === * [[/Evaluación: TypeScript | Evaluación de Everyday Types]] * [[/Evaluación de TypeScript: Clases de TypeScript | Clases de TypeScript]] * [[/Evaluación de TypeScript: ENUMS | Evaluación TypeScript - ENUMS ]] * [[/Evaluación de TypeScript: Template Literals | Evaluación TypeScript - Template Literals]] * [[/Evaluación de TypeScript: Indexed Access Types | Evaluación TypeScript - Indexed Access Types]] * [[/Evaluación de TypeScript: More on Functions | Evaluación TypeScript - More on Functions]] * [[/Evaluación de TypeScript: Utility Types | Evaluación TypeScript - Utility Types]] * [[/Evaluación de TypeScript: Narowing | Evaluación TypeScript - Narrowing]] == Bloque 2: Next.js y Patrones de Renderizado == Objetivo: Dominar los límites (boundaries) entre el servidor y el cliente, y optimizar el rendimiento mediante estrategias de renderizado. === App Router y Límites de Segmento === Jerarquía de layout.js, template.js, error.js y loading.js. Manejo de estados de carga con Streaming y Suspense. Referencia: [https://nextjs.org/docs/app/api-reference/file-conventions Next.js: File Conventions] === La Frontera Servidor-Cliente === Serialización de datos a través de la directiva 'use client'. Composición de componentes: Cuándo mover el estado al cliente y cuándo mantener la lógica en el servidor. Referencia: [https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns Next.js: Server & Client Components] == Bloque 3: Redes en AWS y Seguridad == Objetivo: Articular con precisión cómo fluye el tráfico en una nube pública y cómo se protege. === Topología de Red en VPC === Diseño de Subredes (Públicas vs. Privadas). Uso de Internet Gateways (IGW) y NAT Gateways para salida segura. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html AWS Documentation: VPC Fundamentals] === Estrategias de Seguridad de Red === Security Groups: Microsegmentación a nivel de instancia (Stateful). Network ACLs: Control de tráfico a nivel de subred (Stateless). Diferencias críticas en el orden de evaluación de reglas. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html AWS: Security Groups vs. NACLs] 9zdu4ndb152y8tfqxrs158587iblnhk 178698 178693 2026-03-29T20:14:19Z Emir.Herrera 51293 /* Evaluación Bloque 1 */ 178698 wikitext text/x-wiki = Plan de Estudio de Ingeniería de Software y Cloud= == Bloque 1: TypeScript e Ingeniería de Tipos == '''Objetivo:''' Dominar la manipulación de datos y la seguridad de tipos en situaciones de entrevista técnica. ==== Fundamentos y Tipado de Primitivos ==== * '''Tipado Explícito vs. Inferido:''' Cuándo dejar que TypeScript trabaje solo y cuándo forzar el tipo. * '''Union Types y Literales:''' Definir variables que solo acepten valores específicos (ej. <nowiki>type Status = 'loading' | 'success' | 'error'</nowiki>). * '''Enums vs. Const Objects:''' Pros y contras en términos de tamaño de bundle y legibilidad. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/everyday-types.html TS Handbook: Everyday Types] ==== Manipulación de Strings y Listas (Arrays) ==== * '''Métodos de Array Inmutables:''' Dominio de <nowiki>map(), filter(), reduce(), find() y some()/every()</nowiki>. * '''Tuplas:''' Definición de arrays de longitud fija con tipos específicos por posición. * '''Template Literal Types:''' Tipado avanzado basado en strings (ej. <nowiki>`${Protocol}://${Domain}`</nowiki>). * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/template-literal-types.html TS Handbook: Template Literal Types] ==== Diccionarios y Objetos (Mapping) ==== * '''Index Signatures:''' Cómo tipar objetos donde no conoces todas las llaves de antemano (<nowiki>{ [key: string]: T }</nowiki>). * '''Record Utility Type:''' La forma idiomática de definir diccionarios: <nowiki>Record<K, T></nowiki>. * '''Mapas y Sets:''' Uso de Map o Set nativos de JS para mejorar el rendimiento en búsquedas de complejidad $O(1)$. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/indexed-access-types.html TS Handbook: Indexed Access Types] ==== Resolución de Problemas (Algoritmia) ==== * '''Narrowing Dinámico:''' Uso de <nowiki>typeof, instanceof</nowiki> y Type Guards personalizados para procesar datos mixtos. * '''Tipado de Funciones:''' Definición de firmas, parámetros opcionales y valores por defecto. * '''Referencia:''' [https://www.typescriptlang.org/docs/handbook/2/functions.html TS Handbook: More on Functions] === Uniones Discriminadas y Pattern Matching === * '''Type Narrowing''': Uso de tags para estrechamiento de tipos (Type Narrowing). * '''Never''': Implementación de tipos exhaustivos con el operador never. Referencia: [https://www.typescriptlang.org/docs/handbook/2/narrowing.html TS Handbook: Narrowing] === Tipos Utilitarios y Genéricos === * Extract, Exclude, ReturnType y Parameters. * Creación de tipos condicionales complejos. Referencia: [https://www.typescriptlang.org/docs/handbook/utility-types.html TS Handbook: Utility Types] === Evaluación Bloque 1 === * [[/Evaluación: TypeScript | Evaluación Typescript - Everyday Types]] * [[/Evaluación de TypeScript: Clases de TypeScript | Evaluación Typescript - Clases]] * [[/Evaluación de TypeScript: ENUMS | Evaluación TypeScript - ENUMS ]] * [[/Evaluación de TypeScript: Template Literals | Evaluación TypeScript - Template Literals]] * [[/Evaluación de TypeScript: Indexed Access Types | Evaluación TypeScript - Indexed Access Types]] * [[/Evaluación de TypeScript: More on Functions | Evaluación TypeScript - More on Functions]] * [[/Evaluación de TypeScript: Utility Types | Evaluación TypeScript - Utility Types]] * [[/Evaluación de TypeScript: Narowing | Evaluación TypeScript - Narrowing]] == Bloque 2: Next.js y Patrones de Renderizado == Objetivo: Dominar los límites (boundaries) entre el servidor y el cliente, y optimizar el rendimiento mediante estrategias de renderizado. === App Router y Límites de Segmento === Jerarquía de layout.js, template.js, error.js y loading.js. Manejo de estados de carga con Streaming y Suspense. Referencia: [https://nextjs.org/docs/app/api-reference/file-conventions Next.js: File Conventions] === La Frontera Servidor-Cliente === Serialización de datos a través de la directiva 'use client'. Composición de componentes: Cuándo mover el estado al cliente y cuándo mantener la lógica en el servidor. Referencia: [https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns Next.js: Server & Client Components] == Bloque 3: Redes en AWS y Seguridad == Objetivo: Articular con precisión cómo fluye el tráfico en una nube pública y cómo se protege. === Topología de Red en VPC === Diseño de Subredes (Públicas vs. Privadas). Uso de Internet Gateways (IGW) y NAT Gateways para salida segura. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html AWS Documentation: VPC Fundamentals] === Estrategias de Seguridad de Red === Security Groups: Microsegmentación a nivel de instancia (Stateful). Network ACLs: Control de tráfico a nivel de subred (Stateless). Diferencias críticas en el orden de evaluación de reglas. Referencia: [https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html AWS: Security Groups vs. NACLs] npv6b0pu1pjak5pwiznciyrj9t4v6mn Raphael Woolf sobre Sócrates 0 28764 178678 2026-03-29T18:23:50Z MementoCruciatus 62136 Nueva página: == Contextualización == Este artículo aborda la figura de Sócrates tal como aparece en los diálogos de Platón. La exposición se centra en su caracterización como una figura compleja, provocadora y dedicada al examen de las virtudes mediante el diálogo. Junto con ello, se considera el problema de la reconstrucción histórica de Sócrates, dado que no dejó escritos propios, por lo que su figura debe examinarse a partir de testimonios como los de Platón, Jenofonte y… 178678 wikitext text/x-wiki == Contextualización == Este artículo aborda la figura de Sócrates tal como aparece en los diálogos de Platón. La exposición se centra en su caracterización como una figura compleja, provocadora y dedicada al examen de las virtudes mediante el diálogo. Junto con ello, se considera el problema de la reconstrucción histórica de Sócrates, dado que no dejó escritos propios, por lo que su figura debe examinarse a partir de testimonios como los de Platón, Jenofonte y Aristófanes. También se atiende a algunas de las cuestiones filosóficas ligadas a esta representación, en particular la relación entre virtud, conocimiento e investigación filosófica. === Mapa del contenido === * Sócrates en los diálogos de Platón * El problema de Sócrates * La extrañeza del personaje socrático * Virtud y conocimiento * Sócrates y la forma dialógica de Platón == Sócrates en los diálogos de Platón == En los diálogos de Platón, Sócrates aparece como una figura compleja que se presenta a sí misma como un tábano que busca despertar a Atenas. Su actividad consiste en interrogar a otros acerca de la virtud y de las distintas virtudes, con la expectativa de encontrar a alguien capaz de explicar en qué consisten. Sin embargo, quienes intentan responder suelen fracasar, porque Sócrates los somete a una serie de preguntas que muestran que no saben realmente de qué están hablando. Esta representación lo muestra como una figura molesta, provocadora y pública, que pone en evidencia una ignorancia que sus interlocutores no creían tener o no querían ver expuesta. En ese sentido, Platón lo presenta como alguien difícil de tratar, pero al mismo tiempo comprometido con una forma de examen que busca mover a otros hacia una vida mejor. == El problema de Sócrates == Uno de los problemas centrales para estudiar a Sócrates es que no dejó ninguna obra escrita. Por ello, su figura debe reconstruirse a partir de testimonios ajenos, entre los que destacan Platón, Jenofonte y Aristófanes. Esta situación da lugar al llamado problema de Sócrates: la dificultad de determinar quién fue realmente a partir de fuentes de carácter y propósito distintos. Aristófanes constituye un testimonio cercano en el tiempo, pero su retrato tiene un carácter satírico y paródico. Platón y Jenofonte, por su parte, fueron seguidores de Sócrates, aunque lo presentan de maneras diferentes. En Platón aparece como una figura provocadora y molesta, mientras que en Jenofonte su figura resulta menos inquietante. Esta diferencia influye en la valoración de cuál de los testimonios puede acercarse mejor a la figura histórica de Sócrates. == La extrañeza del personaje socrático == Sócrates es presentado como una figura extraña y peculiar, alguien que no parece tener un lugar ordinario entre los demás. En este sentido, aparece como un personaje admirable, pero también difícil de tomar simplemente como modelo de imitación. Su singularidad no depende solo de sus ideas, sino también de ciertos rasgos de vida y de carácter que lo distinguen con claridad. Entre esos rasgos se encuentran su pobreza, el hecho de andar descalzo y una notable resistencia física. Se le atribuye la capacidad de soportar extremos de calor y frío, así como la de beber más que otros sin perder el control. Sin embargo, estos rasgos no lo convierten en una figura ascética en sentido estricto. Se lo presenta más bien como alguien indiferente a los placeres físicos: come, bebe y participa en la vida ordinaria, pero sin conceder a esas actividades un valor especial. Así, su rareza consiste menos en retirarse del mundo físico que en vivir en él sin quedar determinado por él. == Virtud y conocimiento == En la representación socrática examinada aquí, la virtud aparece estrechamente ligada al conocimiento. Sócrates sostiene que, si alguien no sabe qué es la virtud, no puede ser verdaderamente virtuoso, o al menos no puede serlo de manera confiable. Por eso insiste en pedir definiciones de las virtudes particulares, como la piedad, con el fin de poder distinguir con seguridad qué acciones corresponden a ellas y cuáles no. Esta concepción da a la virtud un carácter fuertemente intelectual. No basta con acertar por costumbre o por instinto en una acción correcta; para que una acción sea verdaderamente virtuosa debe estar acompañada por el conocimiento de lo que esa virtud es. A partir de ello, también se plantea una tesis más fuerte: que quien sabe realmente qué es lo bueno o correcto actuará de acuerdo con ese conocimiento. En este marco, la debilidad de la voluntad aparece como algo imposible, porque nada podría interponerse entre el conocimiento genuino de lo mejor y la realización de la acción correspondiente. == Sócrates y la forma dialógica de Platón == La figura de Sócrates ayuda a entender por qué la filosofía platónica adopta la forma del diálogo. Su manera de proceder depende de la confrontación con otras personas, de la puesta a prueba de sus pretensiones de saber y del examen de creencias que, al ser interrogadas, muestran sus dificultades y contradicciones. Por ello, el diálogo no aparece aquí solo como un recurso literario, sino como una forma adecuada para mostrar el tipo de investigación que Sócrates promueve. En este marco, lo importante no es únicamente establecer una doctrina positiva, sino provocar a los interlocutores para que reconozcan la insuficiencia de sus creencias y continúen investigando. Incluso cuando Sócrates parece menos combativo y más dispuesto a desarrollar una posición, sigue siendo difícil determinar con precisión qué cree él mismo. De este modo, la forma dialógica permite mostrar tanto el examen crítico de las opiniones como la convicción de que la indagación filosófica no debe abandonarse. == Véase también == * [[El problema de Sócrates]] * [[Filosofía antigua]] * [[Líneas principales del pensamiento de Platón]] * [[Ética]] * [[Introducción a la Filosofía]] == Notas == * La imagen del «tábano» procede de la ''Apología'' y sirve para caracterizar a Sócrates como una figura que provoca e incomoda a la ciudad. * El término griego ''atopos'' se usa para describir a Sócrates como alguien extraño o peculiar, literalmente alguien que «no tiene lugar». * El llamado problema de Sócrates surge, entre otras razones, porque Sócrates no dejó escritos propios y su figura debe reconstruirse a partir de testimonios ajenos. * La imposibilidad de la ''akrasia'' se presenta como la tesis según la cual nada puede interponerse entre el conocimiento genuino de lo que se debe hacer y la acción correspondiente. == Bibliografía == * Adamson, Peter. ''Classical Philosophy: A History of Philosophy Without Any Gaps''. Volumen 1. First Edition. Oxford: Oxford University Press, 2014. ISBN 978-0-19-166203-4. * Adamson, Peter; Woolf, Raphael. ''HoP 017 - Raphael Woolf on Socrates''. [[Categoría:Filosofía]] [[Categoría:Facultad de Artes y Humanidades]] [[Categoría:Nivel Educación Universitaria]] c370wlhm3c2prbrlul2sq10igqhnoo4 Usuario:Emir.Herrera/Taller/Plan de estudio/Evaluación: TypeScript 2 28765 178682 2026-03-29T19:29:30Z Emir.Herrera 51293 Nueva página: {{título lección|título=Evaluación Técnica: Fullstack & Cloud|texto=TypeScript Avanzado, Next.js App Router y Networking en AWS}} <quiz display=simple> {¿Cuál es la principal ventaja de usar "Discriminated Unions" en TypeScript? |type="()"} - Permiten herencia múltiple entre interfaces. - Reducen el tamaño del bundle de JavaScript al compilar. + Eliminan estados imposibles mediante el estrechamiento de tipos (Narrowing). - Permiten declarar variables sin asignarle… 178682 wikitext text/x-wiki {{título lección|título=Evaluación Técnica: Fullstack & Cloud|texto=TypeScript Avanzado, Next.js App Router y Networking en AWS}} <quiz display=simple> {¿Cuál es la principal ventaja de usar "Discriminated Unions" en TypeScript? |type="()"} - Permiten herencia múltiple entre interfaces. - Reducen el tamaño del bundle de JavaScript al compilar. + Eliminan estados imposibles mediante el estrechamiento de tipos (Narrowing). - Permiten declarar variables sin asignarles un tipo inicial. {En el App Router de Next.js, ¿cuál es la restricción principal al pasar datos de un Server Component a un Client Component? |type="()"} - Los datos deben estar en formato XML. - No se pueden pasar más de 3 propiedades (props). + Los datos deben ser serializables (no se pueden pasar funciones o clases). - El componente de cliente debe estar dentro de la carpeta /public. {¿Cuál es una característica fundamental de un Security Group en AWS en comparación con una NACL? |type="()"} - Es de nivel de subred y es Stateless. + Es de nivel de instancia y es Stateful (el tráfico de retorno se permite automáticamente). - Permite tanto reglas de "Allow" como de "Deny". - Se evalúa por orden numérico de regla. {Si necesitas que instancias en una subred privada descarguen actualizaciones sin ser accesibles desde el exterior, ¿qué configuración es correcta? |type="()"} - Asignar una IP elástica (EIP) directamente a cada instancia. - Configurar un Internet Gateway en la subred privada. + Usar un NAT Gateway en una subred pública con una ruta en la tabla de la subred privada. - Abrir todos los puertos en el Network ACL de la subred privada. {¿Qué utilidad de TypeScript es preferible para definir un objeto que funciona como diccionario de búsqueda rápida? |type="()"} - Array<any> - Enum + Record<string, T> - Tuple </quiz> {{navegación|[[Guía de Estudio Principal]]|[[TypeScript/Sintaxis Avanzada{{!}}Lectura de TypeScript]]|[[AWS/Networking{{!}}Repaso de Infraestructura]]}} __NOTOC__ szvxzubbvtpvmvgw2v4mnlmi9nqb6id 178683 178682 2026-03-29T19:38:39Z Emir.Herrera 51293 178683 wikitext text/x-wiki {{título lección|título=Evaluación: Everyday Types|texto=Fundamentos de tipos, Uniones, Aliases e Interfaces en TypeScript}} <quiz display=simple> {¿Cuál es la recomendación del manual respecto a los tipos primitivos con mayúscula (String, Number, Boolean)? |type="()"} - Son preferibles porque son tipos de objetos de JavaScript. - Son exactamente iguales a los tipos en minúscula. + Deben evitarse; siempre se deben usar string, number o boolean. - Solo se deben usar cuando se trabaja con BigInt. {¿Cuál es el efecto de usar el tipo 'any' en una variable? |type="()"} - Convierte la variable en un objeto de tipo Record. + Desactiva todas las comprobaciones de tipo posteriores para esa variable. - Obliga a que la variable solo acepte strings o números. - Hace que la variable sea inmutable como una constante. {Sobre las anotaciones de tipo en funciones, ¿cuál de las siguientes afirmaciones es CORRECTA según el manual? |type="()"} - Las anotaciones de retorno son obligatorias para que la función compile. - TypeScript no puede inferir el tipo de retorno basándose en la sentencia 'return'. + TypeScript suele inferir el tipo de retorno automáticamente, por lo que a veces no es necesario anotarlo. - Los parámetros de las funciones siempre deben tener una anotación de tipo explícita. {¿Qué sucede cuando intentas acceder a una propiedad opcional (marcada con '?') en un objeto? |type="()"} - TypeScript garantiza que la propiedad siempre tendrá un valor. - El compilador lanzará un error aunque verifiques si existe. + Debes verificar si es 'undefined' antes de usarla, o usar el encadenamiento opcional (?.). - La propiedad se inicializa automáticamente como 'null'. {Al trabajar con Union Types (ej. string | number), ¿cuándo permite TypeScript realizar una operación sobre el valor? |type="()"} - Solo si la operación es válida para el primer miembro de la unión. + Si la operación es válida para cada uno de los miembros de la unión. - Solo después de convertir el valor a 'any'. - Siempre, ya que TypeScript confía en el desarrollador en las uniones. {¿Cuál es la diferencia clave entre un 'Type Alias' y una 'Interface'? |type="()"} - Las interfaces no pueden definir tipos de objetos. - Los Type Aliases pueden ser reabiertos para añadir nuevas propiedades. + Una interfaz siempre es extensible (se puede reabrir), mientras que un tipo no puede cambiarse tras su creación. - Las interfaces solo funcionan con clases, no con funciones. {¿Para qué sirve el operador de aserción no nula (postfix '!')? |type="()"} - Para convertir un string en un número automáticamente. - Para indicar que una variable es opcional. + Para eliminar 'null' y 'undefined' de un tipo sin hacer una verificación explícita. - Para forzar que una función sea asíncrona. {¿Qué hace el sufijo 'as const' cuando se aplica a un objeto literal? |type="()"} - Convierte todas las propiedades a tipo 'any'. + Asegura que todas las propiedades reciban un tipo literal (ej. "GET" en vez de string) y sean de solo lectura. - Evita que el objeto sea enviado a través de una red. - Es obligatorio para poder usar el objeto en un loop. </quiz> {{navegación|[[Guía de Estudio de TypeScript]]|[[TypeScript/The Basics{{!}}Lección Anterior: Los Básicos]]|[[TypeScript/Narrowing{{!}}Siguiente Lección: Narrowing]]}} __NOTOC__ fnpzg7vxu4n4gpitz0jzsleeaummv04 Usuario:Emir.Herrera/Taller/Plan de estudio/Evaluación de TypeScript: Clases de TypeScript 2 28766 178687 2026-03-29T19:46:31Z Emir.Herrera 51293 Nueva página: {{título lección|título=Evaluación: Clases en TypeScript|texto=Herencia, modificadores de acceso y miembros estáticos}} <quiz display=simple> {En una clase derivada que tiene su propio constructor, ¿qué se debe hacer antes de poder usar 'this'? |type="()"} - Declarar todas las propiedades como públicas. - Instanciar la clase base con el operador 'new'. + Llamar a super() para ejecutar el constructor de la clase base. - Definir un método estático de inicializació… 178687 wikitext text/x-wiki {{título lección|título=Evaluación: Clases en TypeScript|texto=Herencia, modificadores de acceso y miembros estáticos}} <quiz display=simple> {En una clase derivada que tiene su propio constructor, ¿qué se debe hacer antes de poder usar 'this'? |type="()"} - Declarar todas las propiedades como públicas. - Instanciar la clase base con el operador 'new'. + Llamar a super() para ejecutar el constructor de la clase base. - Definir un método estático de inicialización. {¿Cuál es el modificador de acceso por defecto para los miembros de una clase en TypeScript? |type="()"} - private - protected + public - readonly {¿Cuál es la diferencia principal entre 'private' y 'protected'? |type="()"} - 'private' permite el acceso desde subclases, 'protected' no. + 'protected' permite el acceso desde subclases, 'private' solo dentro de la misma clase. - 'private' solo funciona con métodos, 'protected' solo con propiedades. - No hay diferencia; ambos ocultan el miembro del mundo exterior por igual. {¿Cómo se define una "Parameter Property" (propiedad de parámetro) para evitar declarar e inicializar un miembro manualmente? |type="()"} - Usando el decorador @property en el parámetro. - Usando 'let' o 'const' antes del nombre del parámetro. + Prefijando el parámetro del constructor con un modificador (public, private, protected o readonly). - Moviendo el parámetro fuera de los paréntesis del constructor. {Si una propiedad tiene un 'get' (getter) pero no un 'set' (setter), ¿cómo la infiere TypeScript automáticamente? |type="()"} - Como un método asíncrono. - Como una propiedad estática. + Como una propiedad 'readonly' (de solo lectura). - Como una variable de tipo 'any'. {Sobre las clases abstractas (abstract classes), ¿cuál de las siguientes afirmaciones es CORRECTA? |type="()"} - Pueden ser instanciadas directamente con 'new'. - No pueden contener implementaciones de métodos. + No pueden instanciarse directamente; sirven como base para otras clases. - Solo pueden contener miembros estáticos. {Para acceder a una propiedad estática (static) desde dentro de un método de la misma clase, ¿qué sintaxis se utiliza? |type="()"} - this.nombrePropiedad + NombreDeLaClase.nombrePropiedad - super.nombrePropiedad - static.nombrePropiedad {¿Qué representa el tipo obtenido al usar 'typeof NombreClase'? |type="()"} - El tipo de la instancia creada con 'new'. + El tipo de la función constructora (incluyendo sus miembros estáticos). - Un error de sintaxis en TypeScript. - Una interfaz vacía. {En el sistema de tipos estructural de TypeScript, ¿qué impide que dos clases con la misma forma sean compatibles? |type="()"} - Que tengan constructores con diferentes parámetros. - Que una sea una clase y la otra un objeto literal. + Que tengan miembros 'private' o 'protected' que no provengan de la misma declaración. - Que los métodos tengan nombres de parámetros diferentes. {¿Es válido que una interfaz extienda (extends) una clase en TypeScript? |type="()"} - No, las interfaces solo extienden otras interfaces. + Sí, la interfaz hereda los miembros de la clase pero no su implementación. - Solo si la clase es estática. - Sí, pero la interfaz debe implementar todos los métodos de la clase inmediatamente. </quiz> {{navegación|[[Guía de Estudio de TypeScript]]|[[TypeScript/Everyday Types{{!}}Lección Anterior: Everyday Types]]|[[TypeScript/Functions{{!}}Siguiente Lección: More on Functions]]}} __NOTOC__ bzpc4461gkxy0i2v8e9kstmmw6c7opo Usuario:Emir.Herrera/Taller/Plan de estudio/Evaluación de TypeScript: ENUMS 2 28767 178689 2026-03-29T19:58:49Z Emir.Herrera 51293 Nueva página: {{título lección|título=Evaluación: Enums en TypeScript|texto=Enums numéricos, de cadena, constantes y comportamiento en tiempo de ejecución}} <quiz display=simple> {¿Cuál es el comportamiento por defecto de un Enum numérico si no se proporciona un valor inicial al primer miembro? |type="()"} - Todos los miembros se inicializan como 'undefined'. - El primer miembro recibe el valor 1 y los demás aumentan. + El primer miembro recibe el valor 0 y los demás se incre… 178689 wikitext text/x-wiki {{título lección|título=Evaluación: Enums en TypeScript|texto=Enums numéricos, de cadena, constantes y comportamiento en tiempo de ejecución}} <quiz display=simple> {¿Cuál es el comportamiento por defecto de un Enum numérico si no se proporciona un valor inicial al primer miembro? |type="()"} - Todos los miembros se inicializan como 'undefined'. - El primer miembro recibe el valor 1 y los demás aumentan. + El primer miembro recibe el valor 0 y los demás se incrementan automáticamente de uno en uno. - TypeScript lanza un error de compilación por falta de inicializador. {¿Qué ventaja principal ofrecen los String Enums sobre los Numeric Enums en términos de depuración? |type="()"} - Los String Enums permiten el mapeo inverso (reverse mapping). - Ocupan menos espacio en el archivo JavaScript compilado. + Los valores son legibles y significativos en tiempo de ejecución (serializan mejor). - Permiten auto-incrementar los valores de las cadenas. {¿En qué caso un miembro de un Enum se considera 'computed' (calculado) en lugar de constante? |type="()"} - Cuando es el primer miembro de un enum sin inicializador. - Cuando se inicializa con un literal numérico o de cadena. + Cuando se inicializa con un valor que no se puede evaluar totalmente en tiempo de compilación (ej. "string".length). - Cuando hereda el valor del miembro anterior incrementado en 1. {¿Cuál es una característica exclusiva de los Numeric Enums que NO poseen los String Enums? |type="()"} - La capacidad de ser usados como tipos. + El mapeo inverso ess50v7hhe8x1hw309gbr2f4xw64yue 178690 178689 2026-03-29T20:00:17Z Emir.Herrera 51293 178690 wikitext text/x-wiki {{título lección|título=Evaluación: Enums en TypeScript|texto=Enums numéricos, de cadena, constantes y comportamiento en tiempo de ejecución}} <quiz display=simple> {¿Cuál es el comportamiento por defecto de un Enum numérico si no se proporciona un valor inicial al primer miembro? |type="()"} - Todos los miembros se inicializan como 'undefined'. - El primer miembro recibe el valor 1 y los demás aumentan. + El primer miembro recibe el valor 0 y los demás se incrementan automáticamente de uno en uno. - TypeScript lanza un error de compilación por falta de inicializador. {¿Qué ventaja principal ofrecen los String Enums sobre los Numeric Enums en términos de depuración? |type="()"} - Los String Enums permiten el mapeo inverso (reverse mapping). - Ocupan menos espacio en el archivo JavaScript compilado. + Los valores son legibles y significativos en tiempo de ejecución (serializan mejor). - Permiten auto-incrementar los valores de las cadenas. {¿En qué caso un miembro de un Enum se considera 'computed' (calculado) en lugar de constante? |type="()"} - Cuando es el primer miembro de un enum sin inicializador. - Cuando se inicializa con un literal numérico o de cadena. + Cuando se inicializa con un valor que no se puede evaluar totalmente en tiempo de compilación (ej. "string".length). - Cuando hereda el valor del miembro anterior incrementado en 1. {¿Cuál es una característica exclusiva de los Numeric Enums que NO poseen los String Enums? |type="()"} - La capacidad de ser usados como tipos. + El mapeo inverso (Reverse Mapping), que permite obtener el nombre del miembro a partir de su valor. - La posibilidad de tener miembros constantes. - La compatibilidad con objetos literales. {¿Qué sucede con un 'const enum' después de que el código es compilado a JavaScript? |type="()"} - Se convierte en un objeto literal normal. - Se mantiene como una función autoejecutada (IIFE). + Se elimina completamente y sus miembros se sustituyen directamente por sus valores (inlining). - Se transforma en un array de solo lectura. {¿Cómo se puede obtener un tipo que represente todas las llaves (keys) de un Enum como un Union de strings? |type="()"} - keyof MiEnum + keyof typeof MiEnum - typeof MiEnum.Keys - MiEnum.asUnion() {¿Cuál es la diferencia principal entre un Enum normal y un Ambient Enum (declarado con 'declare enum')? |type="()"} - Los Ambient Enums solo permiten valores de cadena. + En los Ambient Enums, los miembros sin inicializador siempre se consideran 'computed'. - Los Ambient Enums generan código JavaScript más eficiente. - No hay ninguna diferencia técnica; es solo por documentación. {¿Por qué el manual sugiere considerar el uso de objetos con 'as const' en lugar de Enums en el TypeScript moderno? |type="()"} - Porque los objetos son más rápidos que los enums en todos los casos. + Para mantener el código más alineado con el estándar de JavaScript actual. - Porque los enums serán eliminados en TypeScript 6.0. - Porque los objetos 'as const' permiten mapeo inverso automático. </quiz> {{navegación|[[Guía de Estudio de TypeScript]]|[[TypeScript/Classes{{!}}Lección Anterior: Clases]]|[[TypeScript/Generics{{!}}Siguiente Lección: Generics]]}} __NOTOC__ 3lo1vjb2iim2gq54w6oknworwy0tji5 Usuario:Emir.Herrera/Taller/Plan de estudio/Evaluación de TypeScript: Template Literals 2 28768 178692 2026-03-29T20:04:29Z Emir.Herrera 51293 Nueva página: {{título lección|título=Evaluación: Template Literal Types|texto=Manipulación de strings en el sistema de tipos e inferencia avanzada}} <quiz display=simple> {¿Cuál es el comportamiento de TypeScript cuando se utiliza una unión de tipos dentro de un Template Literal Type (ej. `${'top' | 'bottom'}_id`)? |type="()"} - Selecciona aleatoriamente uno de los miembros de la unión. - Produce el tipo 'string' general para evitar complejidad. + Genera un nuevo conjunto de t… 178692 wikitext text/x-wiki {{título lección|título=Evaluación: Template Literal Types|texto=Manipulación de strings en el sistema de tipos e inferencia avanzada}} <quiz display=simple> {¿Cuál es el comportamiento de TypeScript cuando se utiliza una unión de tipos dentro de un Template Literal Type (ej. `${'top' | 'bottom'}_id`)? |type="()"} - Selecciona aleatoriamente uno de los miembros de la unión. - Produce el tipo 'string' general para evitar complejidad. + Genera un nuevo conjunto de tipos literales mediante la combinación de cada miembro de la unión (producto cruzado). - Lanza un error de compilación si la unión tiene más de dos miembros. {Si tenemos `type Lang = "en" | "es"` y `type Status = "on" | "off"`, ¿cuántas combinaciones generará el tipo `${Lang}_${Status}`? |type="()"} - 2 + 4 - 8 - Depende de la configuración del compilador. {En el ejemplo del manual `on(eventName: `${string & keyof Type}Changed`, ...)`, ¿por qué se utiliza `string & keyof Type`? |type="()"} - Para permitir que las claves puedan ser también de tipo 'symbol'. + Porque 'keyof' puede incluir 'number' o 'symbol', y los template literals solo operan sobre strings. - Para forzar que el evento sea siempre en minúsculas. - Es una sintaxis antigua que ya no es necesaria en TypeScript 5.x. {¿Cómo logra TypeScript inferir el tipo correcto del argumento en un callback basado en un evento como "ageChanged"? |type="()"} - Mediante el uso exclusivo del tipo 'any'. - Utilizando una búsqueda manual en un diccionario de tipos externo. + Usando un método genérico que captura el literal del evento y mapea la clave correspondiente mediante 'Indexed Access'. - TypeScript no puede realizar esta inferencia; siempre requiere anotación manual en el callback. {¿Cuál de los siguientes tipos intrínsecos convertiría "hello" en "Hello"? |type="()"} - Uppercase<"hello"> - Lowercase<"hello"> + Capitalize<"hello"> - Uncapitalize<"hello"> {¿Qué sucede si intentas usar un Template Literal Type para una combinación de strings excesivamente grande? |type="()"} - El navegador se bloquea en tiempo de ejecución. + Se recomienda la generación de tipos "ahead-of-time", ya que uniones muy grandes pueden afectar el rendimiento del compilador. - TypeScript los convierte automáticamente en el tipo 'any'. - No hay límite; el sistema de tipos de TypeScript es infinito. {¿Cuál es la utilidad del tipo intrínseco 'Uncapitalize<StringType>'? |type="()"} - Convierte toda la cadena a minúsculas. + Convierte únicamente el primer carácter de la cadena a minúsculas. - Elimina los espacios en blanco al inicio de la cadena. - Invierte el orden de los caracteres en el string. {¿Los tipos de manipulación de strings (como Uppercase o Capitalize) están disponibles en los archivos .d.ts de TypeScript? |type="()"} - Sí, están definidos como interfaces globales. - Solo si se importa la librería "string-utils". + No, están integrados directamente en el compilador para mejorar el rendimiento. - Sí, pero solo cuando se compila para entornos Node.js. </quiz> {{navegación|[[Guía de Estudio de TypeScript]]|[[TypeScript/Mapped Types{{!}}Lección Anterior: Mapped Types]]|[[TypeScript/Utility Types{{!}}Siguiente Lección: Utility Types]]}} __NOTOC__ 1quv7hqn5fjhn405sir6ire4i7hhqzc Usuario:Emir.Herrera/Taller/Plan de estudio/Evaluación de TypeScript: Indexed Access Types 2 28769 178694 2026-03-29T20:05:39Z Emir.Herrera 51293 Nueva página: {{título lección|título=Evaluación: Indexed Access Types|texto=Acceso a propiedades por índice y tipado dinámico}} <quiz display=simple> {¿Cuál es el propósito principal de un 'Indexed Access Type' en TypeScript? |type="()"} - Acceder al valor de una propiedad de un objeto en tiempo de ejecución. + Buscar y extraer el tipo de una propiedad específica de otro tipo. - Crear una nueva clase basada en un índice numérico. - Iterar sobre las claves de un objeto para… 178694 wikitext text/x-wiki {{título lección|título=Evaluación: Indexed Access Types|texto=Acceso a propiedades por índice y tipado dinámico}} <quiz display=simple> {¿Cuál es el propósito principal de un 'Indexed Access Type' en TypeScript? |type="()"} - Acceder al valor de una propiedad de un objeto en tiempo de ejecución. + Buscar y extraer el tipo de una propiedad específica de otro tipo. - Crear una nueva clase basada en un índice numérico. - Iterar sobre las claves de un objeto para generar un array. {Dado `type Person = { age: number; name: string }`, ¿cuál es la sintaxis correcta para obtener el tipo de la propiedad 'age'? |type="()"} - type Age = Person.age; - type Age = Person->age; + type Age = Person["age"]; - type Age = Person.get("age"); {¿Qué sucede si intentas indexar un tipo usando una propiedad que no existe en el tipo original (ej. `Person["alve"]`)? |type="()"} - TypeScript infiere el tipo como 'any'. - El tipo se convierte automáticamente en 'undefined'. + TypeScript genera un error de compilación indicando que la propiedad no existe. - El compilador ignora la línea y continúa. {¿Es posible usar una unión de tipos para indexar otro tipo (ej. `Person["age" | "name"]`)? |type="()"} + Sí, y el resultado será una unión de los tipos de las propiedades solicitadas. - No, solo se puede indexar una propiedad a la vez. - Sí, pero solo si todas las propiedades tienen el mismo tipo. - No, las uniones solo se permiten en la declaración del objeto. {¿Qué técnica se utiliza para obtener el tipo de los elementos de un array? |type="()"} - Usando el índice [0]. - Usando la palabra clave 'elementof'. + Indexando el tipo del array con la palabra clave 'number' (ej. `MyArray[number]`). - Aplicando el operador 'keyof' sobre el array. {¿Por qué falla el código `const key = "age"; type Age = Person[key];`? |type="()"} - Porque la constante 'key' debe ser de tipo 'let'. - Porque 'age' es una palabra reservada en TypeScript. + Porque solo se pueden usar tipos como índices, no variables o constantes de valor. - Porque falta importar el operador de acceso. {¿Cómo se puede capturar el tipo de un elemento de un array literal definido con 'const'? |type="()"} - type Elem = MyArray.type; + type Elem = typeof MyArray[number]; - type Elem = keyof MyArray; - type Elem = valueof MyArray; {Si combinamos `Person[keyof Person]`, ¿qué obtenemos como resultado? |type="()"} - Un array con todos los nombres de las propiedades. - Un error de sintaxis. + Una unión de todos los tipos de las propiedades que pertenecen a 'Person'. - El tipo del constructor de la clase 'Person'. </quiz> {{navegación|[[Guía de Estudio de TypeScript]]|[[TypeScript/Typeof Operator{{!}}Lección Anterior: Typeof Type Operator]]|[[TypeScript/Conditional Types{{!}}Siguiente Lección: Conditional Types]]}} __NOTOC__ di5lmhmloi35w1uuyartz73jb6dcp5f Usuario:Emir.Herrera/Taller/Plan de estudio/Evaluación de TypeScript: More on Functions 2 28770 178695 2026-03-29T20:06:32Z Emir.Herrera 51293 Nueva página: {{título lección|título=Evaluación: More on Functions|texto=Tipado de funciones, genéricos, sobrecargas y comportamientos avanzados}} <quiz display=simple> {En una "Function Type Expression" como `(a: string) => void`, ¿qué sucede si omites el nombre del parámetro y escribes solo `(string) => void`? |type="()"} - TypeScript infiere que el parámetro es de tipo 'string'. + TypeScript interpreta que el parámetro se llama 'string' y su tipo es 'any'. - El compilador… 178695 wikitext text/x-wiki {{título lección|título=Evaluación: More on Functions|texto=Tipado de funciones, genéricos, sobrecargas y comportamientos avanzados}} <quiz display=simple> {En una "Function Type Expression" como `(a: string) => void`, ¿qué sucede si omites el nombre del parámetro y escribes solo `(string) => void`? |type="()"} - TypeScript infiere que el parámetro es de tipo 'string'. + TypeScript interpreta que el parámetro se llama 'string' y su tipo es 'any'. - El compilador lanza un error de sintaxis inmediatamente. - La función se convierte automáticamente en un genérico. {¿Cuál es la diferencia sintáctica principal entre una "Function Type Expression" y una "Call Signature" dentro de un objeto? |type="()"} - No hay diferencia; son intercambiables en cualquier contexto. - La expresión usa ':' y la firma de llamada usa '=>'. + La expresión usa '=>' para el retorno, mientras que la firma de llamada dentro de un objeto usa ':'. - Las firmas de llamada no pueden tener propiedades adicionales. {¿Para qué sirve añadir la palabra clave 'new' delante de una firma de llamada (Construct Signature)? |type="()"} - Para obligar a la función a devolver un objeto literal. + Para describir funciones que pueden ser invocadas con el operador 'new' (constructores). - Para indicar que la función crea una nueva instancia de un Genérico. - Para prevenir que la función sea llamada sin argumentos. {En funciones genéricas, ¿cuál es el propósito de las "Constraints" (restricciones) usando 'extends'? |type="()"} - Forzar a que el genérico sea siempre una clase. - Permitir que el genérico acepte cualquier valor, incluyendo 'null'. + Limitar el tipo de datos que puede aceptar un parámetro genérico (ej. asegurar que tenga una propiedad '.length'). - Hacer que la función devuelva un tipo 'never'. {Según las reglas de "buen diseño" de genéricos, ¿qué se recomienda si un parámetro de tipo solo aparece una vez en la firma de la función? |type="()"} - Dejarlo como está para mantener la flexibilidad futura. - Cambiarlo por el tipo 'unknown'. + Reconsiderar si realmente necesitas un genérico; probablemente sea mejor usar un tipo normal o una unión. - Duplicar el parámetro en el tipo de retorno para que aparezca dos veces. {¿Por qué es peligroso declarar un parámetro opcional en un callback (ej. `index?: number`) que tú mismo vas a invocar? |type="()"} - Porque los callbacks no soportan parámetros opcionales en JavaScript. + Porque TypeScript obligará a tu implementación a manejar el caso donde el argumento no se provee, aunque tú sepas que siempre lo pasarás. - Porque el parámetro pasará a ser de tipo 'any' automáticamente. - Porque consume más memoria en tiempo de ejecución. {Sobre las "Function Overloads", ¿qué afirmación es correcta respecto a la firma de implementación? |type="()"} - La firma de implementación es visible y puede ser llamada directamente por el usuario. - Solo se necesita una firma de sobrecarga para que funcione. + La firma de implementación NO es visible desde el exterior; solo las firmas de sobrecarga definen cómo se puede llamar a la función. - El tipo de retorno de la implementación no tiene que coincidir con las sobrecargas. {¿Cuál es la diferencia fundamental entre 'void' y 'never' como tipos de retorno? |type="()"} - No hay diferencia; ambos significan que la función no devuelve nada. - 'void' es para funciones que fallan, 'never' para funciones exitosas. + 'void' indica que la función termina sin devolver un valor útil; 'never' indica que la función nunca llega a terminar (lanza error o bucle infinito). - 'void' permite devolver 'null', 'never' no permite nada. {¿Qué sucede cuando asignas una función que devuelve un valor a una variable tipada como `() => void`? |type="()"} - TypeScript lanza un error de asignación. + Es válido; el valor devuelto simplemente será ignorado por el sistema de tipos (comportamiento para compatibilidad con métodos como `forEach`). - La función se ejecuta pero el valor se convierte en 'undefined' en runtime. - La variable cambia automáticamente su tipo para coincidir con el retorno. {¿Para qué sirve el parámetro especial 'this' en la firma de una función de TypeScript? |type="()"} - Para crear una copia del objeto actual. + Para declarar explícitamente el tipo que se espera que tenga 'this' dentro del cuerpo de la función. - Para permitir el uso de funciones flecha como métodos de clase. - Es una sintaxis obligatoria en todas las funciones de TypeScript 5.0+. </quiz> {{navegación|[[Guía de Estudio de TypeScript]]|[[TypeScript/Narrowing{{!}}Lección Anterior: Narrowing]]|[[TypeScript/Object Types{{!}}Siguiente Lección: Object Types]]}} __NOTOC__ o5667otl0jwdkhak9e3phd3mh9xa55c Usuario:Emir.Herrera/Taller/Plan de estudio/Evaluación de TypeScript: Utility Types 2 28771 178696 2026-03-29T20:07:18Z Emir.Herrera 51293 Nueva página: {{título lección|título=Evaluación: Utility Types|texto=Transformaciones globales de tipos y utilidades integradas}} <quiz display=simple> {¿Qué hace el utility type 'Awaited<Type>' introducido en TypeScript 4.5? |type="()"} - Convierte una función normal en una función asíncrona. - Detiene la ejecución del compilador hasta que se resuelve un tipo. + Desenvuelve recursivamente Promises, modelando el comportamiento de 'await' o '.then()'. - Crea un nuevo tipo que… 178696 wikitext text/x-wiki {{título lección|título=Evaluación: Utility Types|texto=Transformaciones globales de tipos y utilidades integradas}} <quiz display=simple> {¿Qué hace el utility type 'Awaited<Type>' introducido en TypeScript 4.5? |type="()"} - Convierte una función normal en una función asíncrona. - Detiene la ejecución del compilador hasta que se resuelve un tipo. + Desenvuelve recursivamente Promises, modelando el comportamiento de 'await' o '.then()'. - Crea un nuevo tipo que solo acepta valores 'null'. {Si tienes una interfaz 'User' con todas sus propiedades obligatorias, ¿cómo crearías un tipo donde todas sean opcionales? |type="()"} - Required<User> + Partial<User> - Omit<User, any> - Readonly<User> {¿Cuál es la diferencia principal entre 'Pick<Type, Keys>' y 'Omit<Type, Keys>'? |type="()"} - 'Pick' elimina propiedades, 'Omit' las selecciona. + 'Pick' construye un tipo eligiendo un conjunto de llaves; 'Omit' lo hace eliminando un conjunto de llaves. - 'Pick' solo funciona con interfaces, 'Omit' solo con tipos literales. - No hay diferencia; son alias del mismo proceso. {Dado `type T = Exclude<"a" | "b" | "c", "a" | "b">`, ¿cuál es el resultado de 'T'? |type="()"} - "a" | "b" - "a" | "b" | "c" + "c" - never {¿Qué utilidad usarías para extraer el tipo de los parámetros de una función y obtenerlos como una tupla? |type="()"} - ReturnType<Type> - InstanceType<Type> + Parameters<Type> - ConstructorParameters<Type> {En funciones sobrecargadas, ¿qué firma utiliza 'ReturnType<Type>' para inferir el tipo de retorno? |type="()"} - La primera firma de sobrecarga. - Todas las firmas combinadas en una unión. + La última firma de sobrecarga (la firma de implementación o la última declarada). - Ninguna; lanza un error si hay más de una firma. {¿Para qué sirve 'Record<Keys, Type>'? |type="()"} - Para grabar el historial de cambios de un tipo en el compilador. + Para construir un tipo de objeto cuyas llaves son un conjunto específico y sus valores son de un tipo determinado. - Para convertir un array en una tupla de solo lectura. - Para asegurar que un objeto tenga un método '.toString()'. {¿Qué sucede al intentar reasignar una propiedad de un objeto tipado con 'Readonly<Todo>'? |type="()"} - TypeScript lo permite pero lanza un warning. + El compilador genera un error indicando que la propiedad es de solo lectura. - El objeto se congela automáticamente en tiempo de ejecución usando Object.freeze. - El valor se reasigna pero no se actualiza en la memoria. {¿Cuál es la función del utility type 'NoInfer<Type>'? |type="()"} - Evita que una variable sea de tipo 'any'. + Bloquea las inferencias hacia el tipo contenido, obligando a que el tipo se determine por otros argumentos. - Hace que el tipo sea invisible para el programador. - Indica que el tipo es opcional y no necesita ser inferido. {¿Cuál es el requisito para que 'ThisType<Type>' funcione correctamente? |type="()"} - La interfaz debe ser exportada. - Debe usarse dentro de una clase. + La bandera de compilación 'noImplicitThis' debe estar habilitada. - El tipo debe ser obligatoriamente una unión de strings. </quiz> {{navegación|[[Guía de Estudio de TypeScript]]|[[TypeScript/Template Literal Types{{!}}Lección Anterior: Template Literal Types]]|[[TypeScript/Decorators{{!}}Siguiente Lección: Decorators]]}} __NOTOC__ j408u9ardjvfzbobnjyrwtlmojvedij Usuario:Emir.Herrera/Taller/Plan de estudio/Evaluación de TypeScript: Narowing 2 28772 178697 2026-03-29T20:08:02Z Emir.Herrera 51293 Nueva página: {{título lección|título=Evaluación: Narrowing|texto=Refinamiento de tipos mediante control de flujo y guardas de tipo}} <quiz display=simple> {¿A qué se refiere el término "Narrowing" en TypeScript? |type="()"} - A la capacidad de reducir el tamaño del archivo JavaScript generado. + Al proceso de refinar un tipo hacia uno más específico basándose en el flujo de ejecución. - A la eliminación de propiedades opcionales de una interfaz. - A la conversión forzada… 178697 wikitext text/x-wiki {{título lección|título=Evaluación: Narrowing|texto=Refinamiento de tipos mediante control de flujo y guardas de tipo}} <quiz display=simple> {¿A qué se refiere el término "Narrowing" en TypeScript? |type="()"} - A la capacidad de reducir el tamaño del archivo JavaScript generado. + Al proceso de refinar un tipo hacia uno más específico basándose en el flujo de ejecución. - A la eliminación de propiedades opcionales de una interfaz. - A la conversión forzada de cualquier tipo a 'string'. {Si aplicas `typeof` a un array en JavaScript (y por ende en TypeScript), ¿qué valor de cadena obtendrás? |type="()"} - "array" - "list" + "object" - "undefined" {¿Cuál es un comportamiento conocido del operador 'typeof' que puede causar problemas en el narrowing? |type="()"} - `typeof NaN` devuelve "undefined". + `typeof null` devuelve "object", lo que requiere verificaciones de veracidad (truthiness) adicionales. - `typeof function` devuelve "object". - No tiene comportamientos extraños; es totalmente fiable para tipos unión. {En una "Truthiness narrowing", ¿cuál de estos valores NO se evalúa como 'false'? |type="()"} - 0 - "" (string vacío) + "false" (el string con la palabra false) - undefined {¿Cuál es la función del operador 'in' en el contexto del narrowing? |type="()"} - Comprobar si un valor está dentro de un array de tipos. + Verificar si un objeto posee una propiedad específica para discriminar entre tipos de una unión. - Iterar sobre las propiedades de una interfaz en tiempo de ejecución. - Importar tipos desde otros módulos. {¿Qué hace el operador 'instanceof' para ayudar al compilador? |type="()"} - Comprueba si dos interfaces tienen la misma estructura. + Verifica si la cadena de prototipos de un valor contiene el prototipo de una clase o constructor. - Convierte un objeto literal en una instancia de clase. - Compara si dos variables apuntan a la misma dirección de memoria. {¿Qué es un "Type Predicate" (Predicado de tipo)? |type="()"} - Un comentario especial que ayuda al linter. - Una función que siempre devuelve 'true'. + Una función cuyo tipo de retorno tiene la forma `parameterName is Type`, permitiendo narrowing personalizado. - Una validación que solo ocurre en tiempo de ejecución. {¿Cuál es la característica principal de una "Discriminated Union"? |type="()"} - Que todos sus miembros tienen tipos de datos diferentes. + Que todos sus miembros comparten una propiedad común con un tipo literal único (el discriminante). - Que solo puede contener interfaces, no tipos primitivos. - Que no permite el uso de sentencias 'switch'. {¿Para qué se utiliza el tipo 'never' en el "Exhaustiveness checking"? |type="()"} - Para indicar que una función puede devolver cualquier cosa. - Para resetear el tipo de una variable a su estado original. + Para asegurar en el bloque 'default' de un switch que se han manejado todos los casos posibles de una unión. - Para permitir que el código siga ejecutándose después de un error fatal. {Si declaras `let x: string | number` y luego asignas `x = 10`, ¿qué sucede con la "assignability" posterior? |type="()"} - `x` ahora es solo de tipo 'number' para siempre. + `x` se ha estrechado a 'number' momentáneamente, pero sigue aceptando 'string' porque su tipo declarado original lo permite. - TypeScript lanza un error si intentas asignar un 'string' más adelante. - `x` se convierte automáticamente en 'any'. </quiz> {{navegación|[[Guía de Estudio de TypeScript]]|[[TypeScript/Everyday Types{{!}}Lección Anterior: Everyday Types]]|[[TypeScript/More on Functions{{!}}Siguiente Lección: More on Functions]]}} __NOTOC__ kemxq2qz76aixj90up3aiuc4p1o1guw