Kapitel 20. E/A zur Übergabe von Daten durchführen

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Ein- und Ausgaben sind im Code problematisch. Wenn Dateien verschwinden oder Netzwerksockel fehlschlagen, kann es zu Fehlern in unserem Programm kommen. E/A ist auch eine Aktion und schränkt daher unsere Möglichkeiten ein, unseren Code zu überdenken und zu überarbeiten. Wie können wir die Probleme, die E/A verursacht, einschränken?

Nachdem wir in den vorherigen Kapiteln einige Grundlagen geschaffen haben, werden wir jetzt das Tempo erhöhen und direkt mit dem Refactoring beginnen und dabei Lektionen lernen.

Zuhören bei Tests

In Kapitel 10 haben wir uns einen Java-Code angeschaut, der einen Bericht für das Marketing erstellt. Als wir den Code verließen, hatten wir Erweiterungsfunktionen für HighValue​Custo⁠mersReport eingeführt, die uns

@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 ...

Get Von Java zu Kotlin now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.