Mission-critical systems cannot afford software crashes due to un-handled runtime errors. In 1996, a $500 million software error caused the crash in the maiden flight of the European Ariane 5 launcher. Media reports indicated that a half-billion dollars was lost. Typically unit tests are used to verify that the software works correctly under certain example cases but hardly can be used to detect all possible edge cases during development. In contrast, Design by contract (DbC) is a software correctness methodology that document and programmatically assert the change in state caused by a piece of a program. Contracts, as in daily life, are a set of specifications that cover mutual obligations, benefits and consistency constrains that a software system has to meet. In this talk we will present Design by contract as an alternative approach to ensure correctness of programs in Elixir and give an overview and examples of the properties that can be verified using DbC with the elixir-contracts library (currently under development, will be show for the first time in this event).
This talks aim to teach to developers what Design by Contract, what can be achieved using it and how it can be used in any kind of projects, from personal to mission-critical software.
Every developer interested in making his/her code more reliable and higher quality software.
Software Engineer at Ride Messaging team where she works everyday using Elixir programming language. She is also part of a growing tech community for women in Colombia named Codies. Currently works developing a project that extends Elixir language adding support for Contract programming as part of her Master thesis.
Polyglot software engineer particularly interested in Scheme, Clojure, Haskell, Erlang, Ruby and Elixir. Member of Rails Core team, Rails API team, contributes to Elixir-based projects and is currently researching about optional/gradual type systems for Elixir as part of his Master thesis. Works as Software Engineer at Ride.com.