Palestra: Elm in Production: Type/Test Driven Development

Sala:

Dia da semana:

3:35pm - 4:25pm

Nível da palestra:

Persona:

Apresentação em Inglês

Pontos principais

  • Testing in Elm has encouraged us to use types to drive development, rather than just to catch null pointer exceptions.
  • Elm’s testing frameworks and philosophy have challenged us to write cleaner, more maintainable code.
  • The lessons we have taken from Elm have carried over into other languages, too.

Resumo

When Tracker set out on our first production Elm project, an application dashboard, our team quickly fell in love with the language’s robust static type system, comprehensible error messages and pure-functional ethos. Using an emerging language came with challenges, but we learned a ton along the way.

Our biggest insights came from committing to Test Driven Development, even as Elm’s type system obviates the need for many tests. When we started with Elm, we weren’t sure how to proceed. If a compiler error lead to code, did we need to write tests? We began following a process I call Type / Test Driven Development, using the type system alongside tests. Beyond preventing null pointer errors, this encouraged us to encode our business logic into the type system and helped us avoid side effects and other complex, error-prone patterns.

We did feel the pain of Elm’s newness. For example, our dashboard required a fuzzy matcher. This would have been simple in JavaScript, but the lack of an established Elm library lead us to roll our own, which was time consuming and crude.

The lessons we’ve learned from Elm have spread beyond our two Elm projects. For example, our team has recently started to use Kotlin, and our experience TDDing Elm encouraged us to take a more pure functional approach. We aren’t sure what our next Elm project will be (and we’re waiting to see how the ecosystem evolves) but our team is stronger because we use Elm now.

Tracks

Quarta-feira

  • Engenharia de Dados

    Armazenando e processando Big Data com eficiência.

  • Microservices e Web APIs

    Da ubiquidade das APIs a microservices ultra-modulares, frameworks modernos e os desafios de implantação, gestão e pós-produção.

  • JavaScript e Web

    Desenvolvimento com HTML5, JS, CCS3, HTTP/2 e novas tendências da web moderna.

  • IoT: Tecnologias do Mundo Real

    Conheça experiências de mundo real em IoT, bem como tecnologias que vão habilitar os próximos grandes avanços desta revolução.

  • Solutions Track #1

    Conheça soluções, ferramentas e técnicas de empresas parceiras do QCon São Paulo.

Quinta-feira

Sexta-feira

  • Data Science Aplicada

    Da teoria à prática: como grandes cases do Brasil e do mundo têm utilizado DataScience para alavancar seus negócios.

  • Containers: o Estado da Arte

    Muito mais do que uma tecnologia, Containers são uma plataforma. Qual é o estado da arte, novidades, tendências e casos de uso sobre esta revolução.

  • Ciência da Computação no Mundo Real

    Temas discutidos na academia que podem nos ajudar a obter melhores resultados em nosso dia-a-dia.

  • Linguagens do Século 21

    Linguagens e plataformas emergentes no server-side, com ênfase em linguagens projetadas especificamente para alta concorrência e sistemas distribuídos.

  • Carreira e Soft-Skills

    Profissionais de sucesso vão muito além das suas habilidades em escrever código. Como potencializar seu desenvolvimento como profissional.