Summer 2016 code review

What we did this summer

and some code notes

Part 1

What we're doing this fall

and how in the world we could possibly ever get there

Part 2

what's new

We are larger than ever

We're done developing the new FT interface

Database dumps are MUCH smaller

We discovered HTTP status dogs

Turns out Prawn isn't that terrible

We tested some stuff?

some code

underscore in irb

# If you don't remember to do:

handy_variable = MyModel.some_complex_query.pluck :user_id
# => [1, 2, 3]
handy_variable.map{ |id| User.find id }
# => [#<User id: 1 ...>, #<User id: 2...>, ...]

# You can use underscore in irb / rails c:

MyModel.some_complex_query.pluck :user_id
# => [1, 2, 3]
_.map{ |id| User.find id }
# => [#<User id: 1 ...>, #<User id: 2...>, ...]

the "method" method

# You can write:

require 'prawn'
require 'nokogiri'
require 'figaro'
# ...

# Or:

dependencies = %w(prawn nokogiri figaro ...)
dependencies.each{|r| require r }

# Or:

dependencies = %w(prawn nokogiri figaro ...)
dependencies.each &method(:require)

what now?

Microservices

We start with Survey!

  • One-way communication
  • Only IT uses it
  • Used only a few times a month

So what's the gameplan?

3 teams build the pieces:

  1. Microservices architecture
  2. Standalone Survey service in Rails 5
  3. Round-three data-serving JSON endpoints

Microservices architecture

  • Ruby gem / series of Ruby gems
  • One central routing app / Rails engine
  • Service detection
  • Standardized way of "reaching" for data across services

Rails 5 surveys service

  • Find out what's new in Rails 5
  • Replicate existing round-three views
  • Revisit Survey model(s) for complexity
  • Stub data for now

Round-three conversion

  • Find models that Survey depends on
  • Create endpoints for serving that data
  • Remove existing Survey code
  • Jump on other teams, probably

so what changes?

Focused collaboration

Focused collaboration

Only critical or blocking bugfixes

Documentation is more important

Focused collaboration

We need to check in more regularly

Focused collaboration

... but we're not alone out here

Focused collaboration

A fresh take on web design?

Focused collaboration

Questions for the group

  • Code reviews?

  • Record code reviews?

  • Is Rails still right for us?

  • How can we get help?

Let's break into teams!

Summer 2016 code review

By David Faulkenberry

Summer 2016 code review

What we did over the summer and some code notes

  • 722