Cat-Herd's Crook

39
Enforcing Standards in Ten Programming Languages A. Jesse Jiryu Davis and Samantha Ritter Cat-Herd's Crook

Transcript of Cat-Herd's Crook

1. Enforcing Standards in Ten Programming Languages A. Jesse Jiryu Davis and Samantha Ritter Cat-Herd's Crook 2. Samantha Ritter @SamWhoCodes Cat-Herd's Crook 3. A. Jesse Jiryu Davis @JesseJiryuDavis Cat-Herd's Crook 4. Agenda The problem Why the problem lingered Failed attempts Solution: YAML! Why it worked The payoff 5. MongoDB? 6. MongoDB Drivers Similar stack, many languages application driver C C++ C# Java Node.js Perl PHP Python Ruby Scala Go Haskell Erlang Rust R Swift Lua 7. The Problem unintentional differences 8. driver 10 ms 20 ms For Example 9. The Spec Sayeth: Determine the "nearest" member as the one with the quickest response to a ping. Choose a member randomly from those at most 15ms "farther" than the nearest member. 10. Did We Have To Let It Linger? Too hard to review No authority (Especially in open source) 11. False Starts Prose description Reference implementation 12. False Starts def choose_member(servers): best_ping_time = min( server.ping_time for server in servers) filtered_servers = [ server for server in servers if server.ping_time