Production Haskell (Deutsche Ausgabe)
$30.00
Minimal-Preis
$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 auf Deutsch von Production Haskell, das auf Englisch geschrieben war.

Ü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 bedingungslose Leanpub Garantie: Kein Risiko, 100% Zufriedenheit

Innerhalb von 60 Tagen ab Kauf kannst du dein Geld zu 100% zurückverlangen, bei jedem Leanpub-Kauf, in nur zwei Klicks. Wir bearbeiten die Erstattungen manuell, daher dauert es ein paar Tage, bis der Betrag ankommt.
Lese die kompletten Bedingungen.

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

Wir zahlen 80% Tantiemen bei Käufen von $7,99 oder mehr und 80% Tantiemen abzüglich einer Pauschalgebühr von 50 Cent bei Käufen 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ückgegebene Exemplare Ihres Buches für $20 verkaufen, verdienen Sie $80,000.

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

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

Erfahren Sie mehr über das Schreiben auf Leanpub

Kostenlose Updates. Ohne DRM.

Mit dem Kauf auf Leanpub bekommst Du kostenlose Updates solange der Autor Änderungen vornimmt! Viele Autoren veröffentlichen ihre Bücher während des Schreibens. Alle Leser bekommen dann kostenlose Updates, egal wann sie das Buch gekauft haben oder wie viel sie bezahlt haben (auch wenn es kostenlos war).

Die meisten Leanpub Bücher sind erhältlich als PDF (für Computer) oder EPUB (für Handy, Tablet, Kindle). Die verfügbaren Formate sind oben rechts auf dieser Seite angezeigt.

Leanpub Bücher kommen ohne DRM Kopierschutz Firlefanz, sodass Du sie problemlos auf jedem unterstützten Gerät lesen kannst.

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

Schreiben und veröffentlichen auf Leanpub

Autoren und Verleger nutzen Leanpub, um erstaunliche Fortschrittsbücher zu veröffentlichen und E-Books zu vervollständigen. Sie können auch auf Leanpub schreiben, veröffentlichen und verkaufen! Leanpub ist eine leistungsstarke Plattform für ernsthafte Autoren und kombiniert einen einfachen, eleganten Schreib- und Publishing-Workflow mit einem Store, der sich auf den Verkauf von E-Books konzentriert. Leanpub ist eine magische Schreibmaschine für Autoren: Schreiben Sie einfach in Klartext, und um Ihr E-Book zu veröffentlichen, klicken Sie einfach auf eine Schaltfläche. Es ist wirklich so einfach.

Erfahren Sie mehr über das Schreiben auf Leanpub