Skip to Content
De Java a Kotlin
book

De Java a Kotlin

by Duncan McGregor, Nat Pryce
September 2024
Intermediate to advanced
424 pages
10h 56m
Spanish
O'Reilly Media, Inc.
Book available
Content preview from De Java a Kotlin

Capítulo 20. Realizar E/S para pasar datos

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

La entrada y la salida son problemáticas en el código. Nuestro programa está sujeto a errores al hablar con el mundo exterior cuando desaparecen archivos o fallan los conectores de red. La E/S también es una acción, por lo que limita nuestra capacidad de razonar y refactorizar nuestro código. ¿Cómo podemos limitar el alcance de los problemas que causa la E/S?

Ahora que los capítulos anteriores han sentado algunas bases, vamos a acelerar el ritmo, pasando directamente a la refactorización y aprendiendo lecciones sobre la marcha.

Escuchar los exámenes

En, Capítulo 10, vimos un código Java que producía un informe para marketing. Cuando dejamos el código, habíamos introducido funciones de extensión en HighValue​Custo⁠mersReport, lo que nos daba:

@Throws(IOException::class)
fun generate(reader: Reader, writer: Writer) {
    val valuableCustomers = reader
        .readLines()
        .toValuableCustomers()
        .sortedBy(CustomerData::score)
    writer.appendLine("ID\tName\tSpend")
    for (customerData in valuableCustomers) {
        writer.appendLine(customerData.outputLine)
    }
    writer.append(valuableCustomers.summarised())
}

private fun List<String>.toValuableCustomers() = withoutHeader()
    .map(String::toCustomerData)
    .filter { it.score >= 10 }

private fun List<String>.withoutHeader() = drop(1)

private fun List<CustomerData>.summarised(): String =
    sumByDouble {
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Recetas Java modernas

Recetas Java modernas

Ken Kousen
Programar Android con Kotlin

Programar Android con Kotlin

Pierre-Olivier Laurence, Amanda Hinchman-Dominguez, G. Blake Meike, Mike Dunn
Sistemas reactivos en Java

Sistemas reactivos en Java

Clement Escoffier, Ken Finnigan

Publisher Resources

ISBN: 9781098198404Supplemental Content