Sie sehen von Jan Stępień aus dem Zeitraum bis in
  • Web-Architektur in einer funktionalen Welt

    Vortrag Jan Stępień Software Architecture Summit Berlin 2017

    Funktionale Programmiersprachen unterstützen uns bei der Entwicklung von komplexen Systemen durch mehrere Eigenschaften. Unter anderem bieten sie uns eine genaue Kontrolle des Zustandes der Anwendung und eine Beschränkung der Nebenwirkungen an — wichtige Vorteile, insbesondere in einer multi-threaded Umgebung. Bei der Einführung einer funktionalen Sprache zu Beginn der Entwicklungsphase wird eine Frage sehr oft gestellt: Wie sollen wir unsere neue Anwendung strukturieren?

    Dieser Workshop vermittelt einen Ansatz einer Architektur funktionaler Web-Anwendungen. Wir werden das Rad nicht neu erfinden. Stattdessen werden wir erprobte architektonische Lösungen an die funktionale Welt anpassen. Mithilfe der “Hexagonal Architecture” werden wir die Zuständigkeiten in unserer Anwendung klar trennen. Unseren funktionalen und Nebenwirkungs-freien Kern, der von anderen Teilen des Systems unabhängig ist, werden wir gründlich mit Property-based Testing prüfen. Wir werden auch besprechen, wie andere erprobte architektonische Ansätze zu funktionalen Programmiersprachen passen.

    Mehr lesen
  • Hexagonale Microservices-Architektur in der funktionalen Welt

    Vortrag Jan Stępień Microservices Summit Berlin 2017

    Funktionale Programmiersprachen unterstützen uns bei der Entwicklung von komplexen Systemen durch mehrere Eigenschaften. Unter anderem bieten sie uns eine genaue Kontrolle des Zustandes der Anwendung und eine Beschränkung der Nebenwirkungen an. Bei der Einführung einer funktionalen Sprache zu Beginn der Entwicklungsphase wird eine Frage sehr oft gestellt: Wie sollen wir unsere neue Anwendung strukturieren?

    Dieser Workshop vermittelt einen Ansatz einer Architektur funktionaler Microservices. Wir werden das Rad nicht neu erfinden. Stattdessen werden wir erprobte architektonische Lösungen an die funktionale Welt anpassen. Mit Hilfe der “Hexagonal Architecture” werden wir die Zuständigkeiten in unserer Clojure Anwendung klar trennen. Unseren funktionalen und Nebenwirkungs-freien Kern, der von anderen Teilen des Systems unabhängig ist, werden wir gründlich mit Property-based Testing prüfen.

    Mehr lesen
  • Mutation Testing in Continuous Delivery Pipelines

    Vortrag Jan Stępień Continuous Lifecycle 2017 Folien verfügbar

    Mutation testing is a method of evaluating and improving the quality of our test suites. It introduces subtle bugs to source code of our projects and checks that our tests catch those synthetic faults. High computational cost of this technique have prevented it from being widely used in our standard programming toolchain.

    Can we try to sneak it in through the backdoor of our continuous delivery pipelines? How much of it can we automate? How can our version control system help us in the process?

    Let’s try to answer those questions together.

    Mehr lesen
  • Introducing structure in Clojure

    Vortrag Jan Stępień Codemotion 2017 Folien verfügbar

    Once you’ve got a couple of Clojure katas under your belt you start to wonder how to structure an entire application. Where does the logic go? Where do you respond to HTTP requests? Where to connect to the database and how to pass the connection to code which needs it? Let’s see what the best practices are and which Clojure libraries can help us.

    Mehr lesen
  • Property-based testing: You won’t look at your tests the same way ever again

    Vortrag Jan Stępień Munich Rubyshift November 2017

    Property-based testing changes the way you look at your test suites. Instead of specifying test cases one after another, this advanced testing technique enables you to use logic to automatically generate a stream of inputs. Despite its potential, property-based testing still remains under the radar within the Ruby community. Let’s try to uncover its strengths together.

    The talk will discuss how property-based testing compares to traditional testing methods and demonstrate its principles with simple examples. We will also see how it fits into a TDD workflow and a CD pipeline. In order to bust the myth of the inapplicability of property-based testing in a real-world setting we’ll bring up some use cases from industry. Finally, we’ll wander into the world of concurrency and the automation of race condition detection.

    Mehr lesen
  • Property-based testing: You won’t look at your tests the same way ever again

    Vortrag Jan Stępień BED-Con 2017 Folien verfügbar

    Property-based testing changes the way you look at your test suites. Instead of specifying test cases one after another, this advanced testing technique enables you to use logic to automatically generate a stream of inputs. Despite its potential, property-based testing still remains under the radar within the Java community. Let’s try to uncover its strengths together.

    The talk will discuss how property-based testing compares to traditional testing methods and demonstrate its principles with simple examples. We will also see how it fits into a TDD workflow and a CD pipeline. In order to bust the myth of the inapplicability of property-based testing in a real-world setting we’ll bring up some use cases from industry. Finally, we’ll wander into the world of concurrency and the automation of race condition detection.

    Mehr lesen
  • Property-based testing: You won’t look at your tests the same way ever again

    Vortrag Jan Stępień Lightweight Java User Group München August 2017 Folien verfügbar

    Property-based testing changes the way you look at your test suites. Instead of specifying test cases one after another, this advanced testing technique enables you to use logic to automatically generate a stream of inputs. Despite its potential, property-based testing still remains under the radar within the Java community. Let’s try to uncover its strengths together.

    The talk will discuss how property-based testing compares to traditional testing methods and demonstrate its principles with simple examples. We will also see how it fits into a TDD workflow and a CD pipeline. In order to bust the myth of the inapplicability of property-based testing in a real-world setting we’ll bring up some use cases from industry. Finally, we’ll wander into the world of concurrency and the automation of race condition detection.

    Mehr lesen
  • Introducing structure

    Vortrag Jan Stępień Functional Programming Wroclaw #16 Folien verfügbar

    Once you’ve got a couple of Clojure katas under your belt you start to wonder how to structure an entire application. Where does the logic go? Where do you respond to HTTP requests? Where to connect to the database and how to pass the connection to code which needs it? Let’s see what the best practices are and which Clojure libraries can help us.

    Mehr lesen
  • Combating spam, or how I befriended the Killer Rabbit of Caerbannog

    Vortrag Jan Stępień Munich Datageeks July 2017 Folien verfügbar

    You might have received an unwanted email at some point. We all have. According to some studies, between 80 and 90 percent of all email is spam. Those of us with accounts at established email providers can rely on their hosts’ filters to keep their inboxes manageable. What if you’re hosting your email on your own, though? Off-the-shelf open source solutions are there when you need them, but that’s not where the fun is. Combining existing tools, building your own classifiers, and seeing them work in practice is far more exciting. Let me tell you a story, one with rabbits.

    Mehr lesen
  • Structuring Clojure Apps

    Vortrag Jan Stępień Leipzig Clojure Meetup Folien verfügbar

    Once you’ve got a couple of Clojure katas under your belt you start to wonder how to structure an entire application. Where does the logic go? Where do you respond to HTTP requests? Where to connect to the database and how to pass the connection to code which needs it? Let’s see what the best practices are and which Clojure libraries can help us.

    Mehr lesen
  • Introducing structure

    Vortrag Jan Stępień Clojure Vienna Meetup Juni 2017 Folien verfügbar

    Once you’ve got a couple of Clojure katas under your belt you start to wonder how to structure an entire application. Where does the logic go? Where do you respond to HTTP requests? Where to connect to the database and how to pass the connection to code which needs it? Let’s see what the best practices are and which Clojure libraries can help us.

    Mehr lesen
  • Introducing structure

    Vortrag Jan Stępień Clojure Meetup Munich Juni 2017 Folien verfügbar

    Once you’ve got a couple of Clojure katas under your belt you start to wonder how to structure an entire application. Where does the logic go? Where do you respond to HTTP requests? Where to connect to the database and how to pass the connection to code which needs it? Let’s see what the best practices are and which Clojure libraries can help us.

    Mehr lesen
  • Remain resilient, fail fast

    Blog-Post Jan Stępień

    Keep your systems resilient to broken connections and unreliable networks. Unless it’s start-up time.

    Mehr lesen
  • Testing with mutants

    Vortrag Jan Stępień :clojureD 2017 Folien verfügbar

    Property-based testing is mainstream now (there, I said it). The testing approach popularised by test.check enjoys wide adoption in the Clojure community. This talk is dedicated to another randomised testing technique. Mutation testing introduces subtle bugs to source code of our projects and checks that our tests catch those synthetic problems. Clojure — a homoiconic language with dynamic code reloading — should offer us an excellent foundation for building a mutation testing library. But there’s not a single one out there. Why? Let’s try to answer this question together.

    A video of this talk is now available here.

    Mehr lesen
  • Testing with mutants

    Vortrag Jan Stępień lambda Days 2017

    Property-based testing is mainstream now in a number of functional languages (there, I’ve said it). This talk is dedicated to another randomised testing technique. Unlike property-based testing, which validates correctness of implementation of our programmes, mutation testing audits our tests suites. It introduces subtle faults to source code of our projects and verifies that our tests catch those synthetic problems. Clojure, a homoiconic language with dynamic code reloading, should offer us an excellent foundation for building a mutation testing library. But there’s not a single one out there. Why? Let’s try to answer this question together.

    A video of this talk is now available here.

    Mehr lesen
  • Mutation Testing in Continuous Delivery Pipelines

    Vortrag Jan Stępień Continuous Delivery Meetup München Folien verfügbar

    Mutation testing introduces subtle bugs to source code of our projects and checks that our tests catch those synthetic problems. High computational cost of this technique have prevented it from being widely used in our standard programming toolchain. Can we try to sneak it in through the backdoor of our continuous delivery pipelines? Let’s try to answer this question together.

    Mehr lesen
  • Mutants

    Vortrag Jan Stępień Clojure eXchange 2016 Folien verfügbar

    Property-based testing is mainstream now (there, Jan’s said it). A recurring topic at EuroClojure, the generative approach to testing popularised by test.check enjoys wide adoption in the Clojure community.

    This talk is dedicated to another randomised testing technique. Unlike property-based testing, which inspects our src directory, mutation testing audits contents of the test one. It introduces subtle bugs to source code of our projects and verifies that our test suites catch those synthetic problems. Clojure, a homoiconic language with dynamic code reloading, should offer us an excellent foundation for building a mutation testing library. But there’s not a single one out there. Why? Let’s try to answer this question together.

    Mehr lesen