El gran libro de Kotlin : para programadores de back end
- 1a ed.
- [S.l.] : Marcombo, 2023
- xix, 328 p. : il.
Prólogo -- Sobre este libro -- 1. Introducción -- 2. Objetivo y estructura -- 3. IDE para Kotlin -- Experimentando con Kotlin en back end -- 4. Poco código y grandes resultados -- 4.1 El primer programa en Kotlin -- 4.2 Programa para escribir varias líneas de un fichero de texto -- 4.3 Programa para leer líneas de un fichero de texto -- 4.4 Programa para contar las líneas de un fichero -- 4.5 Programa para copiar un fichero -- 4.6 Descargar un fichero -- 4.7 Acceso a un recurso desde código . -- 5. Funciones -- 5.1 Funciones que no requieren parámetros de entrada y salida -- 5.2 Funciones con parámetro de entrada y sin parámetro de salida -- 5.3 Funciones con parámetro de entrada y salida -- 5.4 Funciones con parámetro por defecto -- 5.5 Funciones con parámetros variables -- 5.6 Funciones con parámetros genéricos -- 5.7 Funciones de extensión -- 5.8 Funciones infix -- 5.9 Expresión y funciones lambda -- 5.10 Funciones de orden superior -- 6. Clases -- 6.1 Definición de una clase y compatibilidad con Java -- 6.2 Experimentando con métodos -- 6.2.1. Ejemplos de métodos sin parámetro de entrada y con parámetro de salida -- 6.2.2. Ejemplos de métodos privados, parámetros variables, con parámetro de entrada y salida -- 6.3 Tipos de clases -- 6.3.1 Data: clases de datos -- 6.3.2 Enum: clases de valores enumerados -- 6.3.3 Clases heredables -- 6.3.4 Tipo interfaz -- 6.3.5 Clase abstracta -- 6.3.6 Clases anidadas: Inner -- 6.3.7 Objetos -- 6.3.8 Clases selladas -- 6.4 Alias -- 6.5 Visibilidad de los modificadores -- 6.6 Retrasar la inicialización de propiedades -- 6.6.1 Inicialización tardía para: var -- 6.6.2 Inicialización tardía para: val -- 7. Ficheros -- 7.1 Trazas o logs: log4j2 -- 7.1.1 Configurando Log4j2 por consola -- 7.1.2 Configurando Log4j2 por fichero -- 7.2 Ficheros de texto -- 7.3 Ficheros properties -- 7.4 XML -- 7.5 RDF y OWL -- 7.6 EXCEL y CSVs -- 7.7 JSON y GSON -- 7.7.1 Serialización/deserialización JSON -- 7.8 ePub -- 7.9 Zip -- 7.10 FASTA (fa) -- 8. Bases de datos -- 8.1 Montar el entorno de pruebas -- 8.2 Relational DBMS -- 8.2.1 SQLite -- 8.2.2 MySQL -- 8.2.3 MariaDB -- 8.2.4 Oracle -- 8.3 NoSQL -- 8.3.1 Key-value Stores: Redis -- 8.3.1.1 Redis -- 8.3.2 Document Stores: MongoDB -- 8.3.2.1 MongoDB -- 8.3.3 RDF Stores: Apache Jena, Virtuoso y AllegroGraph -- 8.3.3.1 Apache Jena – TDB -- 8.3.3.2 AllegroGraph -- 8.3.3.3 Virtuoso y la DBpedia -- 9. Números -- 9.1 Los números árabes -- 9.2 Colecciones útiles para números -- 9.3 Determinantes -- 9.4 Sistemas de ecuaciones lineales -- 9.4.1 Regla de Cramer -- 9.4.2 Método de Gauss Jordan -- 9.4.3 Método Gauss-Seidel -- 9.5 Fibonacci -- 9.6 Números primos -- 9.7 Trigonometría -- 9.8 Cálculo de integrales -- 9.9 Transformada rápidade Fourier -- 10. Cadenas -- 10.1 Cadenas -- 10.2 Concatenar Strings -- 10.3 Acceso a los caracteres de un String -- 10.4 Sutil diferencia entre vacíos y/o espacios -- 10.5 Arrays de Strings -- 10.6 Maps -- 10.7 Rellenando Strings -- 10.8 Quitando espacios de un String -- 10.9 Obtener términos de un String -- 10.10 Subcadenas -- 10.11 Conversores -- 10.11.1 ASCII -- 10.11.2 Hexadecimal -- 10.11.3 Binario -- 10.12 Claves de acceso y funciones hash -- 11. Concurrencia -- 11.1 Thread -- 11.1.1 Hilo principal y secundarios -- 11.1.2 Sección crítica de código -- 11.1.2.1 Semáforos -- 11.1.2.2 Monitores -- 11.1.2.3 El problema del productor-consumidor -- 11.1.3 Comparativas de rendimiento -- 11.2 Corrutinas -- 11.2.1 Creación de corrutinas -- 11.2.2 runBlocking gestinando corrutinas -- 11.2.3 Funciones de suspensión -- 11.2.4 Canales (Channel) -- 11.2.5 Comparativas de rendimiento -- 11.3 Recapitulando ideas -- 12. Despliegues en war de RESTful -- 12.1 Ktor -- 12.2 Conceptos: API, REST, SOA y RESTful -- 12.3 Arquitectura en tres capas -- 12.4 Capa de negocio -- 12.4.1 Acercamiento a Ktor -- 12.4.2 Configuraciones de servidores -- 12.4.3 EL proyecto Ktor-cap12 -- 12.4.3.1 Serialización y deserialización -- 12.4.3.2 Enrutamiento -- 12.4.3.3 Sesiones -- 12.4.3.4 Autentificación -- 12.4.3.5 Recomendación de mejora -- 12.5 Despliegues -- 12.5.1 War en Tomcat 9 -- 12.5.2 En docker, war en Tomcat 9 -- Anexos -- Anexo 1. Docker -- Anexo 2. Máquina virtual para descargar -- Anexo 3. Referencia rápida de la sintaxis Kotlin -- Anexo 4. Maven y Gradle -- Anexo 5. Conceptos generales sobre Programación Orientada a Objetos -- Anexo 6. DBeaver -- Bibliografía -- Sobre el autor