Skip to content

Instantly share code, notes, and snippets.

@marcosccm
Forked from matiaskorhonen/speaker.md
Last active August 29, 2015 13:56
Show Gist options
  • Select an option

  • Save marcosccm/9333456 to your computer and use it in GitHub Desktop.

Select an option

Save marcosccm/9333456 to your computer and use it in GitHub Desktop.

Immortal Ruby

  • Desired talk duration: 30 minutes

Abstract

Should rubyists care about immutability? Yes! On this talk we discuss why immutability is an important concept and the many ways you can apply it to your Ruby Projects, from using specific gems to having immutability as a design tool. Let's not let the functional languages steal all the fun!

Immutability benefits are not only related to concurrency, that it can make your code more simple and testable, that it can be done in a pure OO application and finally showcase cool gems like ice9 and hamster.

Notes

My motivation for doing this talk is that I think we don't discuss immutability enough on the Ruby community and that many devs think that it's a exclusive concern of functional languages like Haskell.

Micro Testing Pains

  • Desired talk duration: 30 minutes

Abstract

Micro services are a wonderful thing! Until you try to test their integration. Do you write a stub for each service? Point them to a test environment? Raise local instances for every dependency? I've tried all these approaches and they are all painful. We can do better!

I’ve seen many micro services projects get dragged down by their integration tests. Long and red builds are becoming an accepted reality for this kind of project. Double so the more "enterprisey" environments.

The problem is that these tend to go to two extremes:

  • mock everything, which leads to false positives and meaning less green tests.
  • integrate everything, which leads to network latency and availability becoming a real pain.

A solution encountered for these tests after a lot of head bashing is a compromise. Use consumer driven contracts to define the boundaries between consumers and providers. These contracts can them serve as mock implementations and service validations. All coming from a single source.

Micro services are becoming common place in the ruby world. This talk can shed some light on how to deal with the testing pains are bound to follow.

Marcos Castilho

Contact details

Speaker bio

Marcos Matos is a Brazilian developer, currently working for ThoughtWorks in Glasgow, Scotland, land of the hairy cows. He loves to discuss about esoteric computer science topics, learn new programming languages, write throw away code for quickly forgotten github repos and drink good beer. You can read his ramblings at marcosccm.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment