Photo

Throw exceptions... out of your codebase

Guillaume Faas

from Vonage (France)

About speaker

Currently Senior .Net Developer Advocate for Vonage, Guillaume has been in the Software industry for 15 years. With a passion for software craftsmanship, he's always willing to share ideas during workshops, talks, or mentoring sessions.

About speakers company

Vonage provide communication services. In my unit more specifically, communication APIs.

Abstracts

specific

hrowing exceptions is often used to handle errors, validations, and other specific use cases. It is considered by many to be the standard way of indicating a failure and providing feedback to the caller. However, this approach can cause significant issues like being hard to detect, obfuscating the flow or leaving the system invalid.
In this talk, I want to show you a faster alternative that offers more transparency and predictability. We will see how to integrate ideas from the Functional paradigm, such as "Monads", into an Object-Oriented codebase using a real-life project: Vonage's open-source .NET SDK. This talk will be the perfect opportunity to show you what they are and how easy they are to use.


It's all about sharing an alternative to exceptions when it comes to error handling: Monads. The purpose is to explain what they are and how we can use them. C# has a feet in both the OOP and Functional paradigms - this flexibility allows us to leverage benefits from both paradigms.
Of course, it isn't a theorical talk - it's a technical one which relies on a lot of code, and I'm using my current open-source project (the Vonage .NET SDK) to explain everything. Everything I say can be verified by the audience afterwards.
Here's the structure of the talk:
- Downsides of exceptions
- Build our own monad step-by-step using an example from quantum mechanic
- What Monads bring to the table
- Monads in the real world, in a real solution

The Program Committee has not yet taken a decision on this talk

other talks of this topic

Photo
Why You Ignore Best Practices and How You Can Fix It

Annelore Egger

OpenValue Switzerland

broad
Photo
From Server to Serverless - A story of saving Cost

Yoav Nordmann

Tikal Knowledge

specific
Photo
Pros and Cons of Jetpack Compose Toolkit

Stevan Milovanovic

InterVenture

specific
Photo
Putting the asm in Wasm: from bytecode to native

Edoardo Vacchi

Tetrate

specific
Photo
Path to Golden Path

Daniel Drack

FullStackS GmbH

broad
Photo
JavaScript is weird. MythBusters special.

Małgorzata Janeczek

Sector Alarm Tech

broad
Photo
Sculpting Data for Machine Learning: Generative AI edition

Rishabh Misra

Attentive Mobile Inc

broad
Photo
Go performance profiling in theory and practice

Alexey Palazhchenko

FerretDB Inc.

broad
Photo
How we elevated tracking data accuracy from ~60% to ~80%

Alina Krasavina

Delivery hero

broad
Photo
Three Flavors of Pokémon - Framework Agnostic UI Testing

Shelly Goldblit

Dell Technologies

broad
Photo
Taking Shortcuts Beyond Your IDE

Annelore Egger

OpenValue Switzerland

broad
Photo
What the @#!? is Auth

Warren Parad

Authress

specific
Photo
How Unit Testing Saved My Career

Annelore Egger

OpenValue Switzerland

broad
Photo
Deep dive into the postgres index types

Jesús Espino

Mattermost Inc.

specific
Photo
Algorithm Of Massively Parallel Networking In C++

Vladislav Shpilevoy

VirtualMinds

specific
Photo
You don't need to implement GraphQL

Sefi Ninio

Tikal Knowledge

specific
Photo
UX at the centre of system development and design

Anesu Makwasha

Tose Technologies

specific
Photo
Simple and stable UI tests with Ultron

Aleksei Tiurin

Exness

specific
Photo
Collaborative applications and how to make them fast

Bartosz Sypytkowski

appflowy.io

specific
Photo
Become a Gen AI Bot Master in Just 50 Minutes – No Kidding!!

Ambesh Singh

Visionet Systems Deutschland

broad
Photo
Workshop: Master Anti-Ban & Web Scraping Techniques (2h)

Fabien Vauchelles

Scrapoxy

specific
Photo
Crafting the Ultimate Docker Image for Spring Applications

Pasha Finkelshteyn

BellSoft

specific
Photo
C# 13 Unleashed: Live Demos of my Top 10 Cutting-Edge Features!

Ambesh Singh

Visionet Systems Deutschland

broad
Photo
Continuous Profiling on K8s - why, when and how

Ant(on) Weiss

PerfectScale

specific
Photo
From null to applications on Kubernetes

Roberth Strand

Sopra Steria

specific
Photo
An Efficient Git Workflow For High-Stakes Projects

Vladislav Shpilevoy

VirtualMinds

specific