@icarusmx/creta 0.10.1 → 0.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/creta.js +30 -0
- package/lessons/lesson1-system-decomposition.js +68 -37
- package/package.json +1 -1
package/bin/creta.js
CHANGED
|
@@ -817,6 +817,20 @@ async function startEnunciadosSelectorInteractive() {
|
|
|
817
817
|
console.log("\n🚀 ¡Lección disponible! Iniciando sesión de estudio dirigida...")
|
|
818
818
|
await new Promise(resolve => setTimeout(resolve, 1500)) // Brief pause
|
|
819
819
|
|
|
820
|
+
try {
|
|
821
|
+
const lesson1 = new Lesson1SystemDecomposition()
|
|
822
|
+
await lesson1.start()
|
|
823
|
+
} catch (error) {
|
|
824
|
+
console.error("\n❌ Error al ejecutar la lección:", error.message)
|
|
825
|
+
console.log("\n🚀 Próximamente:")
|
|
826
|
+
console.log("- Sesiones de estudio dirigidas basadas en este enunciado")
|
|
827
|
+
console.log("- Ejercicios prácticos que ilustren el concepto")
|
|
828
|
+
console.log("- Proyectos específicos para internalizar la idea")
|
|
829
|
+
}
|
|
830
|
+
} else if (enunciadoSeleccionado.id === 1) {
|
|
831
|
+
console.log("\n🚀 ¡Lección disponible! Iniciando sesión de estudio dirigida...")
|
|
832
|
+
await new Promise(resolve => setTimeout(resolve, 1500)) // Brief pause
|
|
833
|
+
|
|
820
834
|
try {
|
|
821
835
|
const lesson1 = new Lesson1SystemDecomposition()
|
|
822
836
|
await lesson1.start()
|
|
@@ -915,6 +929,22 @@ async function startEnunciadosSelectorFallback() {
|
|
|
915
929
|
rl.close()
|
|
916
930
|
await new Promise(resolve => setTimeout(resolve, 1500)) // Brief pause
|
|
917
931
|
|
|
932
|
+
try {
|
|
933
|
+
const lesson1 = new Lesson1SystemDecomposition()
|
|
934
|
+
await lesson1.start()
|
|
935
|
+
} catch (error) {
|
|
936
|
+
console.error("\n❌ Error al ejecutar la lección:", error.message)
|
|
937
|
+
console.log("\n🚀 Próximamente:")
|
|
938
|
+
console.log("- Sesiones de estudio dirigidas basadas en este enunciado")
|
|
939
|
+
console.log("- Ejercicios prácticos que ilustren el concepto")
|
|
940
|
+
console.log("- Proyectos específicos para internalizar la idea")
|
|
941
|
+
}
|
|
942
|
+
return
|
|
943
|
+
} else if (enunciadoSeleccionado.id === 1) {
|
|
944
|
+
console.log("\n🚀 ¡Lección disponible! Iniciando sesión de estudio dirigida...")
|
|
945
|
+
rl.close()
|
|
946
|
+
await new Promise(resolve => setTimeout(resolve, 1500)) // Brief pause
|
|
947
|
+
|
|
918
948
|
try {
|
|
919
949
|
const lesson1 = new Lesson1SystemDecomposition()
|
|
920
950
|
await lesson1.start()
|
|
@@ -52,27 +52,46 @@ export class Lesson1SystemDecomposition {
|
|
|
52
52
|
|
|
53
53
|
async step2_ApplyDefinitions() {
|
|
54
54
|
console.clear()
|
|
55
|
-
console.log("
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
console.log("
|
|
59
|
-
console.log("
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
console.log("
|
|
63
|
-
console.log("•
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
console.log("
|
|
69
|
-
console.log("•
|
|
70
|
-
console.log("•
|
|
71
|
-
console.log("
|
|
72
|
-
console.log("
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
55
|
+
console.log("🏛️ EJEMPLO: Biblioteca Digital")
|
|
56
|
+
console.log("=" .repeat(40))
|
|
57
|
+
|
|
58
|
+
console.log("\n📚 DEFINICIÓN 1 - Totalidad deductiva de discurso:")
|
|
59
|
+
console.log("Partiendo de 'Biblioteca Digital', ¿qué se deduce naturalmente?")
|
|
60
|
+
await this.waitForEnter("\nPresiona Enter para ver la primera deducción...")
|
|
61
|
+
|
|
62
|
+
console.log("\n🔍 Primera deducción:")
|
|
63
|
+
console.log("• De 'Biblioteca' → contiene LIBROS")
|
|
64
|
+
console.log("• De 'Digital' → acceso remoto por USUARIOS")
|
|
65
|
+
|
|
66
|
+
await this.waitForEnter("\nPresiona Enter para ver la deducción clave...")
|
|
67
|
+
|
|
68
|
+
console.log("\n⚡ Deducción clave:")
|
|
69
|
+
console.log("• LIBROS + USUARIOS → deben INTERACTUAR")
|
|
70
|
+
console.log("• ¿Cómo? → préstamos, búsquedas, devoluciones")
|
|
71
|
+
console.log("\n💡 Conclusión: De 'biblioteca digital' se deduce naturalmente")
|
|
72
|
+
console.log(" un conjunto de libros y usuarios interactuando")
|
|
73
|
+
|
|
74
|
+
await this.waitForEnter("\nPresiona Enter para la segunda definición...")
|
|
75
|
+
|
|
76
|
+
console.clear()
|
|
77
|
+
console.log("🎯 DEFINICIÓN 2 - Conjunto de cosas con propósito:")
|
|
78
|
+
console.log("¿Qué elementos relacionados contribuyen al propósito?")
|
|
79
|
+
|
|
80
|
+
console.log("\n📖 Elementos del sistema:")
|
|
81
|
+
console.log("• LIBROS - recursos que se prestan")
|
|
82
|
+
console.log("• USUARIOS - quienes solicitan préstamos")
|
|
83
|
+
console.log("• PRÉSTAMOS - relación temporal entre libro y usuario")
|
|
84
|
+
console.log("• BIBLIOTECA - coordina todo el proceso")
|
|
85
|
+
|
|
86
|
+
console.log("\n🎯 Propósito determinado:")
|
|
87
|
+
console.log("Facilitar el acceso organizado a recursos bibliográficos")
|
|
88
|
+
|
|
89
|
+
console.log("\n🔗 Relaciones ordenadas:")
|
|
90
|
+
console.log("• Usuario solicita → Biblioteca evalúa → Préstamo se crea")
|
|
91
|
+
console.log("• Libro cambia estado → Usuario recibe acceso → Plazo se establece")
|
|
92
|
+
console.log("• Vencimiento llega → Usuario devuelve → Libro se libera")
|
|
93
|
+
|
|
94
|
+
await this.waitForEnter("\nPresiona Enter para ver la descomposición en objetos...")
|
|
76
95
|
}
|
|
77
96
|
|
|
78
97
|
async step3_ObjectIdentification() {
|
|
@@ -210,27 +229,39 @@ export class Lesson1SystemDecomposition {
|
|
|
210
229
|
|
|
211
230
|
async conclusion() {
|
|
212
231
|
console.clear()
|
|
213
|
-
console.log("CONCLUSIÓN")
|
|
232
|
+
console.log("🎓 CONCLUSIÓN: La Descomposición de Sistemas")
|
|
214
233
|
console.log("=" .repeat(50))
|
|
215
|
-
console.log("
|
|
216
|
-
|
|
217
|
-
console.log("
|
|
234
|
+
console.log("🎯 Hemos demostrado que:")
|
|
235
|
+
|
|
236
|
+
console.log("\n1️⃣ SISTEMA como totalidad deductiva:")
|
|
237
|
+
console.log(" • De 'biblioteca digital' se deduce naturalmente: libros + usuarios")
|
|
238
|
+
console.log(" • Esta deducción revela la interacción fundamental del sistema")
|
|
239
|
+
|
|
240
|
+
console.log("\n2️⃣ SISTEMA como conjunto con propósito:")
|
|
241
|
+
console.log(" • Elementos identificados: Book, User, Loan, Library")
|
|
242
|
+
console.log(" • Relaciones ordenadas: solicitud → evaluación → préstamo → devolución")
|
|
243
|
+
console.log(" • Propósito determinado: acceso organizado a recursos")
|
|
244
|
+
|
|
245
|
+
console.log("\n⚡ LA PARTE DIFÍCIL:")
|
|
246
|
+
console.log("¿Cómo decidimos que necesitábamos exactamente estos 4 objetos?")
|
|
247
|
+
console.log("¿Por qué no 3? ¿Por qué no 10? ¿Cuál es el criterio?")
|
|
218
248
|
|
|
219
|
-
console.log("\
|
|
220
|
-
console.log("• Book -
|
|
221
|
-
console.log("• User -
|
|
222
|
-
console.log("• Loan -
|
|
223
|
-
console.log("• Library -
|
|
249
|
+
console.log("\n🔍 Criterio de descomposición:")
|
|
250
|
+
console.log("• Book - responsabilidad de estado propio")
|
|
251
|
+
console.log("• User - responsabilidad de sus límites")
|
|
252
|
+
console.log("• Loan - responsabilidad de la relación temporal")
|
|
253
|
+
console.log("• Library - responsabilidad de coordinación")
|
|
224
254
|
|
|
225
|
-
console.log("\
|
|
226
|
-
console.log("
|
|
255
|
+
console.log("\n📚 Conexión con lecciones siguientes:")
|
|
256
|
+
console.log("• Lección 2: Los objetos interactúan a través de solicitudes")
|
|
257
|
+
console.log("• Lección 3: Las solicitudes son la única forma de ejecutar operaciones")
|
|
258
|
+
console.log("• Lección 4-6: Cómo definir esas interacciones correctamente")
|
|
227
259
|
|
|
228
|
-
console.log("\
|
|
229
|
-
console.log("
|
|
230
|
-
console.log("
|
|
231
|
-
console.log("• Lección 4-6: Cómo definir esas interacciones")
|
|
260
|
+
console.log("\n💭 Reflexión:")
|
|
261
|
+
console.log("La descomposición en objetos es difícil porque requiere identificar")
|
|
262
|
+
console.log("las responsabilidades naturales que se deducen del sistema.")
|
|
232
263
|
|
|
233
|
-
await this.waitForEnter("\
|
|
264
|
+
await this.waitForEnter("\n✨ ¡Lección 1 completada! Presiona Enter para salir...")
|
|
234
265
|
}
|
|
235
266
|
|
|
236
267
|
async waitForEnter(message) {
|