Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

AdParlor Twitter API

No description
by

Marty Kraft

on 25 November 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of AdParlor Twitter API

AdParlor Twitter API
The Big One: Banana vs Resque
DataMapper vs ActiveRecord
Grape vs. Rails
Grape
Small
Does one thing: API's
The Rest
Bearing in mind that I have the benefit of a fresh set of eyes on an existing project...
The Great
A clear separation of front end and back end with totally separate projects
Rails (as an API)
More testable
Established patterns
Tooling and plugins
Known by more developers (good for hiring, ramp-up time and maintenance)
Security and performance patches
Cleaner code!
DataMapper
Small
Auto-migrates
ActiveRecord
Still in active development
Known by more devs
Documentation
Does HTTP request queuing
Flexible beyond simply HTTP requests
Could be used for populating tables, pulling stats, requests to Twitter, messaging... anything that takes time
Well tested
Maintained by
others (o
ne less project to think about)
GUI for monitoring and debugging
Logic is handled in code by a separate concern rather than setting up a DAG
Order agnostic if the unit of work is constructed differently than it currently is
Don't have to have specific endpoints that are
only
used by the queue
Resque
Banana
Testing
Testing strategy needs improvement
Things should be tested
in isolation
By limiting integration testing we could...
Have faith in the test
Have stronger test
Have faster tests
Less bugs
Targeting
Structure could be more flexible
Could use a pattern that works with all of the criteria (including male/female and booleans)
Perhaps a key-value store in MySQL (Reddit example)...
Some ways forward
Conclusion
There's room for improvement. We need to evaluate design and tooling choices and critically weigh the pros and cons. For example, is a small tool worth giving up testability and established patterns and code cleanliness? Should we build a tool when a better one already exists? These are all questions we must ask of each other to challenge ourselves with the goal of the most innovative, maintainable, and bug-free code our team can create.
Full transcript