Moin!
Ich baue einen digitalen Aktenschrank als 1-Mann-Startup um mein (und potenziell Dein) Dokumentendurcheinander zu ordnen. Wenn du ein Leidensgenosse im Kampf gegen das Dokumentenchaos bist oder neugiereig wie es ist ein Startup als Solo-entwickler auf die Beine zu stellen kannst du hier regelmäßig Erfahrungsberichte lesen. Sowohl von der technischen als auch der Businessperspektive.
Neueste Beiträge
Speed coding Minesweeper in a statically typed functional language
Elm kann fürs Prototyping genauso produktiv sein wie dynamische Programmiersprachen! Ich habe mir selbst die Herausforderung gestellt, einen browserbasierten Minesweeper-Klon in weniger als 2,5 Stunden und mit weniger als 100 Codezeilen zu programmieren und zu deployen.
Wenn Kent Beck dein Doktor ist, ist Elm deine Apotheke
Kent Beck ist bekannt für seinen pragmatischen Ansatz im Softwaredesign sowie seinen Fokus auf die Verbesserung der Codequalität und Effizienz von Entwicklungsprozessen. In einem seiner Artikel “verschreibt” er eine Liste von “Rezepten”, um weniger fehleranfälligen Code zu schreiben. Und jetzt habe ich eine konkrete Liste von Gründen, warum ich es so sehr mag in Elm zu programmieren.
Der fehlgeleitete Traum von Sprachmonogamie in der Webentwicklung
In der sich ständig wandelnden Welt der Webentwicklung streben viele nach dem Ideal, die gleiche Programmiersprache sowohl im Frontend als auch im Backend zu verwenden. Wenn wir uns aber auf gemeinsame Daten anstatt auf eine gemeinsame Sprache Sprache konzentrieren, können wir das Beste aus beiden Welten rausholen ohne auf signifikante Synergien verzichten zu müssen. —
Entdecke funktionale Programmierung mit Elm
Wenn Du mit funktionaler Programmierung liebäugelst oder in die Entwicklung von Single Page Applications (SPA) einsteigen willst, gibt es kein besseres Tool als Elm. Elm zeichnet sich als eine Sprache aus, die nicht nur die Entwicklung angenehm macht, sondern auch als perfekter Einstieg in die Welt der funktionalen Programmierung dient.
Dynamische Diagramme
Statische Bilder, Videos und SVG-Animationen bringen jeweils ihre eigenen Herausforderungen mit sich, wenn es darum geht komplexe Systeme durch Diagramme zu visualisieren. Ich habe eine Minisprache und eine Webkomponente entwickelt, um Diagrammen ein erzählerisches Element hinzuzufügen.
htmx vs. SPA
Als Webentwickler liegt es in unserer Verantwortung, das beste Werkzeug für die jeweilige Aufgabe zu finden. htmx vereinfacht in der Tat den technischen Stack und senkt die Einstiegshürde für angehende Entwickler oder einfachere Projekte. Für komplizierte Benutzeroberflächen, die eine konsistente Darstellung der Daten erfordern, bietet der SPA-Ansatz jedoch eine bessere Unterstützung. Anstatt sich von Trends beeinflussen zu lassen, sollten wir die Nuancen in diesen Diskussionen anerkennen und unsere Tools mit Bedacht auswählen.
Bauen im Freien
Begleite mich wie ich meinen digitalen Aktenschrank und mein 1-Mann-Startup darum in der Öffentlichkeit baue. Mit langjähriged Erfahrungen in der Softwareentwicklung strebe ich an, eine Lösung zu schaffen, die die Lücke zwischen Bequemlichkeit und Datensicherheit schließt, während ich jeden Schritt des Prozesses mit Dir teile.
Episode 12 & 13: Ausblenden und Aufräumen
In Episode 12(1h:25m) habe ich zunächst einen einfachen Zähler für die entfernten Reihen gebaut. Das graduelle Ausblenden ist zu einen Cliffhanger geworden, da ich dort einen Fehler eingebaut hab, den ich erst in Episode 13 (1h:20) auflöse. Das nehme ich zum Anlass den Code mit Hilfe des großartigen Conquer of Completion etwas aufzuräumen.
Episode 11: Game Over
Noch fehlen ein paar Elemente damit unser Tetris ‘vollständig’ ist. Aber zumindest können wir nach Episode 11 (40min) sagen “Game Over”.
Episode 10: Komplette Reihen verschwinden mit Falten
Damit mein Tetris spielbar wird sorge ich in Episode 10 (55min) dafür, dass vollständige Zeilen verschwinden. Mit mehr Unit-Tests und der Anwendung der Faltung einer Liste nähere ich mich einem vollständigen Version.
Episode 9: Eingeschränkt bewegungsfähig
In Episode 9 (48min) stelle ich sicher das wir das aktuelle Teil nicht außerhalb des Spielbretts oder in andere Teile hineinbewegen können. Dabei muss ich zwei Argumente einer Funktion umdrehen und nutze dies für eine funktionale Fingerübung.
Episode 8: Rotation und zufällige Teile
In Episode 8 (60min) implementiere ich die Rotation des aktuellen Teils. Das geht so flott, dass ich auch noch hinzufüge das anstelle des gleichen Steins zufällige neue Steine generiert werden.
Episode 6 & 7: Kollisionserkennung und Test Driven Development
Diese Woche gibt es einen kombinierten Artikel die beiden letzten Episoden. Inhaltilich habe ich mich in beiden Sitzungen mit der Kollisionserkennung auseinadergesetzt. Nachdem ich in Episode 6 kniffligen Bug eingebaut hab, nehme ich in Episode 7 die Gelegenheit wahr zu zeigen wie Test Driven Development mit elm-test
helfen kann solche Situationen zu vermeiden.
Episode 5: Registrierung von Tastendruck
In dieser Episode (40min) schauen wir uns an wie wir auf globale Tastaturereignisse reagieren. Wir bemühen ein weiteres mal das Subscription-System welches wir letztes mal kennengelernt haben.
Episode 4: Gravitation des aktuellen Steins mit Subscriptions
Nach der Mammutepisode letzte Woche habe ich es diese Woche bei verdaulichen 30 Minuten belassen.
Episode 3: Definition und Darstellung der Tetristeile und statische Typisierung
Diese Woche habe ich die Datenstrukturen entwickelt die notwendig sind um die charakteristischen Tetristeile zu definieren und auf unserem Board darzustellen. Es hat mich auch etwas überrascht, dass es über 1.5 Stunden gedauert hat die ~150 Zeilen zu schreiben, aber ich war schon immer etwas langsamer 😅.
Episode 2: Darstellung des leeren Boards und partielle Anwendung
Nachdem wir uns letzte Episode Zeile für Zeile durch die Hello World Anwendung gekämpft haben, schauen wir heute nochmal etwas abstrakter auf die Natur einer Elm-Anwendung bevor wir uns ans Programmieren begeben.
Episode 1: Projektsetup für den Elm Tetris Clon
In dieser Episode stelle ich mein hot code replacement setup für lokale Elm Entwicklung vor. Nachdem ich etwas mit den Einschränkungen von elm reactor
gekämpft habe, habe ich mir ein kleines boiler plate setup gebastelt mit dem ich kurze Feedbackzyklen erhalte.
Ein Stream, weil: warum nich 🤷
Das einzige was noch energiezehrender ist als lange Texte lesen ist lange Texte schreiben. Deswegen versuche ich mich jetzt mal am “Stream Format”.
Praktische Beispiele in Elm
Ich starte hier eine Serie von kleinen Artikeln die dich motivieren und dir helfen sollen in Elm zu programmieren. Ich will nicht beweisen dass Ein dich produktiver oder deine Anwendungen robuster macht. Dazu gibt es bereits genug Artikel 😉 In Elm zu entwickeln macht mir einfach Spaß und es erinnert mich daran wie es war als ich das Programmieren entdeckte.