Production Haskell (Deutsche Ausgabe)
$30.00
Mindestpreis
$40.00
Empfohlener Preis

Production Haskell (Deutsche Ausgabe)

Erfolg in der Industrie mit Haskell

Über das Buch

Also, Sie haben Haskell gelernt. Sie haben Ihren Freunden von Monaden erzählt, einige Einsteiger-Lehrbücher durchgearbeitet und vielleicht mit einigen Open-Source-Projekten herumgespielt. Jetzt, da Sie auf den Geschmack gekommen sind, wollen Sie mehr: Sie möchten eine Anwendung in Haskell zum Spaß schreiben! Vielleicht möchten Sie Haskell bei der Arbeit einsetzen!

Sie setzen sich an Ihren Computer, und Sie stecken fest.

Wie bekommt man mit dieser Sprache tatsächlich etwas zustande?

Das ist eine häufige Frage.

Haskell hat schon immer eine Vielzahl hochwertiger Lernmaterialien für fortgeschrittene Teile der Sprache genossen, wenn man keine Angst vor akademischen Arbeiten hat. In den letzten fünf Jahren gab es einen Aufschwung fantastischer Ressourcen, um die Sprache als Anfänger zu erlernen. Allerdings gibt es nicht viele Ressourcen, um sie in der Produktion zu nutzen. Es ist schwierig, sich in den Ökosystemen zurechtzufinden und qualitativ hochwertige Ressourcen zu identifizieren, die mit Ihren Zielen und Werten übereinstimmen.

Dieses Buch soll in dieser Situation helfen. Nach der Lektüre dieses Buches sollten Sie sich wohlfühlen, große Softwareprojekte in Haskell zu schreiben, konkurrierende Bibliotheken und Techniken zu bewerten und produktiv Material von verschiedenen Haskell-Nutzern zu lesen.

Ein Meinungsgetriebener Reiseführer

Haskell ist eine enorm vielfältige Landschaft.

Es gibt viele regionale Gruppen: Vereinigtes Königreich, Skandinavien, Festlandeuropa, Russland, die USA, Japan, China und Indien haben alle blühende Haskell-Ökosysteme, die interessante Dialekte und Unterschiede in Brauchtum und Praxis aufweisen.

Menschen kommen mit vielen Hintergründen zu Haskell. Einige Leute lernten Haskell weit in ihrer Karriere und hatten zuvor eine lange Karriere in Java, Scala oder C#. Einige kamen von dynamisch typisierten Sprachen wie LISP oder Ruby zu Haskell. Einige begannen sehr früh in ihrer Programmierkarriere mit Haskell und verwenden es als Vergleichsbasis. Einige verwenden Haskell hauptsächlich in der akademischen Forschung, während andere Haskell hauptsächlich in industriellen Anwendungen nutzen. Einige sind Hobbyisten und schreiben einfach gerne Haskell zum Spaß!

Dieses Buch richtet sich an Menschen, die Haskell in der Industrie schreiben möchten. Die Kompromisse und Einschränkungen, denen industrielle Programmierer gegenüberstehen, unterscheiden sich von denen akademischer oder Hobby-Programmierer. Dieses Buch wird nicht nur technische Aspekte der Haskell-Sprache behandeln, sondern auch soziale und technische Anliegen, die „wirklich“ nichts mit Haskell zu tun haben.

Ein Teil dieses Buches wird objektiv sein. Ich werde Ihnen einige interessante Techniken und Ideen beibringen, um die Entwicklung mit Haskell produktiver zu machen. Wir werden über Template Haskell, Typ-Level-Programmierung und andere spannende Themen lernen.

Allerdings ist zum größten Teil dieses Buch von Natur aus subjektiv. Da Haskell so viele Ökosysteme bedient, ist es entscheidend zu erkennen, für welches Ökosystem etwas gedacht ist. Mehr als nur Vorschriften zu geben - „Diese Bibliothek ist bereit für die Produktion! Dies ist ein Spielzeug!“ - hoffe ich, meinen Denkprozess zu zeigen und Ihnen zu ermöglichen, Ihre eigenen Urteile zu fällen.

Letztendlich ist dies ein Buch über die soziale Realität der Softwareentwicklung in Nischensprachen.

Über den Autor

Ich bin Matt Parsons. Ich begann im Januar 2014 mit dem Programmieren mit Java, weil ich die Karriere wechseln wollte. Im Sommer lernte ich JavaScript mit dem ausgezeichneten Buch [Eloquent JavaScript][eloquent-javascript]. Es hatte ein Kapitel über funktionale Programmierung und objektorientierte Programmierung. Ich fand das Kapitel über funktionale Programmierung intuitiver, also machte ich mir eine geistige Notiz, die funktionalste Sprache zu lernen, die ich finden konnte. Ein paar Monate später begann ich, Haskell zu lernen.

Mein Gehirn nahm Haskell extrem schnell auf. Ich hatte kaum begonnen, imperative und objektorientierte Programmierung zu lernen, sodass die schwierige Neuheit, neue Fachbegriffe und Konzepte zu lernen, erwartet wurde. Im August 2015 begann ich ein Haskell-Praktikum und konnte Haskell in meinem Künstliche Intelligenz-Kurs verwenden. In meinem letzten Semester am College konnte ich Haskell in meiner Bachelorarbeit verwenden, um die Verbindung zwischen Kategorientheorie, Modallogik und verteilten Systemen zu untersuchen.

Ich hatte das große Glück, diese Möglichkeiten zu haben, da sie mich für den Erfolg mit Haskell eingerichtet haben. Mein erster Job nach dem College bestand darin, PHP-Anwendungen in Greenfield Haskell umzuwandeln, und seitdem arbeite ich Vollzeit mit Haskell. Ich habe in verschiedenen Kontexten gearbeitet: ein Startup, das nicht zu 100% von Haskell überzeugt war, ein größeres Unternehmen, das von Haskell überzeugt war, aber mit sozialen und technischen Schwierigkeiten eines riesigen Code-Basis und Entwicklungsteams kämpfte, und ein Startup, das von Haskell überzeugt war und an Wachstum arbeitete. Ich trage auch zu vielen Open-Source-Projekten bei und bin mit den meisten Ökosystemen vertraut. Alles in allem habe ich mit fast einer Million Zeilen Haskell-Code gearbeitet!

Ich habe gesehen, wie Haskell scheitert, und ich habe gesehen, wie es erfolgreich ist. Ich möchte Ihnen helfen, mit Haskell erfolgreich zu sein.

Dieses Buch ist eine Übersetzung ins Deutsch von Production Haskell, das ursprünglich auf Englisch verfasst wurde.

Über die Autoren

Matt Parsons
Matt Parsons

Hi! I’m Matt Parsons! I like to ride my bicycle, play guitar, learn cello, and occasionally program a computer. I'm the team lead for the Backend Developer Experience at Mercury.

I started learning a software in Spring 2014 in my “intro to Java” course at UGA. JavaScript introduced me to functional programming that summer, and Ruby on Rails pointed me towards Sandi Metz and Smalltalk-inspired object oriented design. Haskell caught my interest and I started learning it in earnest in early 2015. Ever since, I’ve been sold on functional programming.

I tend to like abstraction, patterns, extremes in contrast, and going a little too meta. There’s an underpinning to writing music, learning mathematics, and making beautiful programs that resonate with me. Emergent complexity, chaotic systems, and expressions of passion are my favorite things.

TranslateAI
TranslateAI

Leanpub now has a TranslateAI service which uses AI to translate their book from English into up to 31 languages, or from one of those 31 languages into English. We also have a GlobalAuthor bundle which uses TranslateAI to translate English-language books into either 8 or 31 languages.

Leanpub exists to serve our authors. We want to help you reach as many readers as possible, in their preferred language. So, just as Leanpub automates the process of publishing a PDF and EPUB ebook, we've now automated the process of translating those books!

Inhaltsverzeichnis

  •  
    • Einführung
      • Ein Meinungsfreudiger Reiseführer
      • Über den Autor
    • Danksagungen
    • Prinzipien
      • Komplexität
      • Neuheit
      • Kohäsion
      • Empathie
      • Referenzen
  • I Haskell-Teams aufbauen
    • 1. Haskell verkaufen
      • 1.1 Einschätzung der Aufnahmebereitschaft
      • 1.2 Software-Produktivität
      • 1.3 Statistiken zur Produktivität
      • 1.4 Kennen Sie Ihre Konkurrenz
    • 2. Haskell Lernen und Lehren
      • 2.1 Die Philologie von Haskell
      • 2.2 Programmieren ist schwer zu lernen
      • 2.3 Lernmaterialien auswählen
      • 2.4 Schreiben Sie viel Code
      • 2.5 Keine Angst vor dem GHC
      • 2.6 Einfach anfangen
      • 2.7 Reale Probleme lösen
      • 2.8 Pair-Programmierung
      • 2.9 Ein Dialog
      • 2.10 Referenzen
    • 3. Haskeller einstellen
      • 3.1 Das zweischneidige Schwert
      • 3.2 Junioren und Senioren
      • 3.3 Einstellung von Senioren
      • 3.4 Juniors einstellen
    • 4. Bewertung von Beratungsfirmen
      • 4.1 Identifizierung des Ziels
      • 4.2 Well-Typed
      • 4.3 FP Complete
  • II Anwendungsstruktur
    • 5. Der Anfang
      • 5.1 Abstraktion zum Mocken
      • 5.2 Vorwärtskompatibilität
      • 5.3 AppEnvironment
      • 5.4 Das ReaderT-Muster
      • 5.5 Einbetten, nicht Stapeln
    • 6. Drei-Schichten-Haskell-Kuchen
      • 6.1 Schicht 1: Imperative Programmierung
      • 6.2 Schicht 2: Objektorientierte Programmierung
      • 6.3 Schicht 3: Funktionale Programmierung
      • 6.4 Beispiele
    • 7. Invertiere Deine Mocks!
      • 7.1 Effekte Dekomponieren
      • 7.2 Streaming-Zerlegung
      • 7.3 Einfachste Abstraktion
      • 7.4 Zerlegen!!!
      • 7.5 Was, wenn ich muss?
    • 8. Projekt Präludien
      • 8.1 Probleme mit Prelude
      • 8.2 Benutzerdefinierte Vorteile
      • 8.3 Fertige Preludes
      • 8.4 Nesting Preludes
      • 8.5 Nachteile
      • 8.6 Verwendung eines benutzerdefinierten Prelude
    • 9. Optimierung der GHC-Kompilierungszeiten
      • 9.1 Das Project.Types Megamodul
      • 9.2 Paketaufteilung
      • 9.3 Großes Instanzen-Modul
      • 9.4 TemplateHaskell
      • 9.5 Einige zufällige abschließende Gedanken
  • III Domänenmodellierung
    • 10. Typsicherheit Hin und Her
      • 10.1 Die Wellenwirkung
      • 10.2 Fragen Sie nur, was Sie brauchen
    • 11. Halten Sie Ihre Typen klein…
      • 11.1 Expansion und Einschränkung
      • 11.2 Einschränkungen Befreien
      • 11.3 Wertebereich Einschränken
      • 11.4 Eine perfekte Passform
    • 12. Das Problem mit typisierten Fehlern
      • 12.1 Monolithische Fehlertypen sind schlecht
      • 12.2 Boilerplate ade!
      • 12.3 Typklassen zur Rettung!
      • 12.4 Die Tugend von ungetypten Fehlern
    • 13. Ausnahmen
      • 13.1 Ausnahmen in fünf Minuten
      • 13.2 Best Practices
      • 13.3 Hierarchien
      • 13.4 Neu erfinden
      • 13.5 Asynchrone Ausnahmen
      • 13.6 Die Theorie
      • 13.7 HasCallStack
    • 14. EDSL-Design
      • 14.1 Tricks mit do
      • 14.2 Überladene Literale
      • 14.3 Typinferenz-Trick
      • 14.4 Fluent Interfaces
      • 14.5 Fallstudie: Krafttraining-Protokollierung
      • 14.6 Fallstudie: rowdy
      • 14.7 Fallstudie: hspec
    • 15. Wachstumsschmerzen
      • 15.1 Eine Taxonomie der Bruchänderungen
      • 15.2 Vermeidung von Breaking Changes
      • 15.3 Kommunikation mit Benutzern
  • IV Schnittstelle zur Realität
    • 16. Testen
      • 16.1 Bibliotheken und Werkzeuge
      • 16.2 Code für Tests entwerfen
    • 17. Protokollierung und Beobachtbarkeit
      • 17.1 Über Debug.Trace
      • 17.2 Bevorzuge die do-Notation
      • 17.3 Protokollierungskontexte
      • 17.4 Bibliotheken im Überblick
    • 18. Datenbanken
      • 18.1 Getrennte Datenbanktypen
      • 18.2 Migrationen
      • 18.3 Zugriffsmuster
      • 18.4 Fazit
  • V Fortgeschrittene Haskell
    • 19. Template Haskell ist nicht beängstigend
      • 19.1 Ein Anfängertutorial
      • 19.2 Moment mal, das ist nicht Haskell, was mache ich hier
      • 19.3 Konstruktion eines AST
      • 19.4 Boilerplate Ade!
    • 20. Grundlegende Typ-Ebenen-Programmierung
      • 20.1 Die Grundtypen
      • 20.2 Die höheren Arten
      • 20.3 Dynamisch Typisiertes Programmieren
      • 20.4 Datenarten
      • 20.5 GADTs
      • 20.6 Vektoren
      • 20.7 Type Families
      • 20.8 Das ist Mist
      • 20.9 Heterogene Listen
      • 20.10 Induktive Typ-Klassen-Instanzen
      • 20.11 Erweiterbare Datensätze
      • 20.12 Hat Ihnen gefallen, was Sie gelesen haben?
    • 21. Familienwerte
      • 21.1 Typfamilien
      • 21.2 Offene oder Geschlossene Typfamilien?
      • 21.3 Die Brücke zwischen den Welten
      • 21.4 Datenfamilien
      • 21.5 Fazit
    • 22. Abwägungen in der Typ-Programmierung
      • 22.1 MPTCs
      • 22.2 MPTCs + Funktionale Abhängigkeiten
      • 22.3 Assoziierte Typen
      • 22.4 Vergleiche
    • 23. Fallstudie: Prairie
      • 23.1 Problemstellung:
      • 23.2 Stand der Technik
      • 23.3 Der GADT-Ansatz
      • 23.4 Verbesserungen?
      • 23.5 Symbole
      • 23.6 Vergleichen und Gegenüberstellen
      • 23.7 Das Problem identifizieren
      • 23.8 Generalize eines GADT
      • 23.9 Funktionale Abhängigkeiten
      • 23.10 Mehr Klasse bitte
      • 23.11 Verfeinerung der Klasse
      • 23.12 Template Haskell
      • 23.13 Fazit
  • Anmerkungen

Die Leanpub 60-Tage 100% Zufriedenheitsgarantie

Innerhalb von 60 Tagen nach dem Kauf können Sie mit nur zwei Klicks eine 100% Rückerstattung für jeden Leanpub-Kauf erhalten.

Technisch gesehen ist das ein Risiko für uns, da Sie die Buch- oder Kursdateien so oder so behalten. Aber wir sind so überzeugt von unseren Produkten und Dienstleistungen sowie von unseren Autoren und Lesern, dass wir gerne eine vollständige Geld-zurück-Garantie für alles anbieten, was wir verkaufen.

Sie können nur herausfinden, wie gut etwas ist, indem Sie es ausprobieren, und dank unserer 100% Geld-zurück-Garantie gehen Sie dabei buchstäblich kein Risiko ein!

Es gibt also keinen Grund, nicht auf den 'In den Warenkorb'-Button zu klicken, oder?

Vollständige Bedingungen ansehen...

Verdienen Sie 8$ bei einem Verkauf von 10$ und 16$ bei einem Verkauf von 20$

Wir zahlen 80% Tantiemen auf Käufe von 7,99$ oder mehr und 80% Tantiemen abzüglich einer Pauschale von 50 Cent auf Käufe zwischen 0,99$ und 7,98$. Sie verdienen 8$ bei einem Verkauf von 10$ und 16$ bei einem Verkauf von 20$. Wenn wir also 5000 nicht zurückerstattete Exemplare Ihres Buches für 20$ verkaufen, verdienen Sie 80.000$.

(Ja, einige Autoren haben auf Leanpub bereits viel mehr als das verdient.)

Tatsächlich haben Autoren bereitsüber 14 Millionen Dollar durch das Schreiben, Veröffentlichen und Verkaufen auf Leanpub verdient.

Erfahren Sie mehr über das Schreiben auf Leanpub

Kostenlose Updates. DRM-frei.

Wenn Sie ein Leanpub-Buch kaufen, erhalten Sie kostenlose Updates, solange der Autor das Buch aktualisiert! Viele Autoren nutzen Leanpub, um ihre Bücher während des Schreibprozesses zu veröffentlichen. Alle Leser erhalten kostenlose Updates, unabhängig davon, wann sie das Buch gekauft oder wie viel sie bezahlt haben (einschließlich kostenloser Bücher).

Die meisten Leanpub-Bücher sind als PDF (für Computer) und EPUB (für Smartphones, Tablets und Kindle) verfügbar. Die verfügbaren Formate eines Buches werden in der oberen rechten Ecke dieser Seite angezeigt.

Schließlich haben Leanpub-Bücher keinen DRM-Kopierschutz-Unsinn, sodass Sie sie problemlos auf allen unterstützten Geräten lesen können.

Erfahren Sie mehr über Leanpubs E-Book-Formate und wo Sie sie lesen können

Auf Leanpub schreiben und veröffentlichen

Mit Leanpub können Sie ganz einfach E-Books und Online-Kurse schreiben, veröffentlichen und verkaufen - sowohl während der Entstehung als auch nach Fertigstellung!

Leanpub ist eine leistungsstarke Plattform für engagierte Autoren, die einen einfachen, eleganten Schreib- und Veröffentlichungsprozess mit einem Shop verbindet, der sich auf den Verkauf von E-Books in Entstehung konzentriert.

Leanpub ist eine magische Schreibmaschine für Autoren: Schreiben Sie einfach in normalem Text und klicken Sie zur Veröffentlichung Ihres E-Books nur auf einen Button. (Wenn Sie Ihr E-Book auf Ihre eigene Art erstellen, können Sie sogar Ihre eigenen PDF- und/oder EPUB-Dateien hochladen und mit einem Klick veröffentlichen!) Es ist wirklich so einfach.

Erfahren Sie mehr über das Schreiben auf Leanpub