TIL, 2018-12-30, Reading List Smash
Airbnb’s 10 Takeaways from Moving to Microservices
- Monolith first. Microservices is a pre-optimization.
- Devops culture: Each engineer has to be prepared to support their service when deploying la.
- Ops: triage, coordinate, and communicate. Systems operation teams.
- Configuration is code. Having your configuration as code makes it easy to reason about.
- Monitoring and alerting like New Relic. Alerts are configured as code.
- Continuous delivery: every new service that’s created will have the same process and functionality as a monolith.
- Automate every small thing that can be automated.
- The first services are going to be bad. Just keep on trying.
- Democratic deployment: all devs are expected to own their features from implementation to production.
- Make all config easily accessible so devs can create a service with one pull request.
Check My Code: Tips to Keep Ruby Code Smell-Free
- Remove the
if ... return true, else return falsecode by making it its own method.
- Long conditionals like a switch: You can make it a hash with a default value. This is not a good solution for space complexity!
puts "What is your major?" major = gets.chomp # Set default response major_responses = Hash.new("That's a cool major!") # Add other responses major_responses["Biology"] = "Mmm the study of life itself!" major_responses["Computer Science"] = "I'm a computer!" major_responses["English"] = "No way! What's your favorite book?" major_responses["Math"] = "Sweet! I'm great with numbers!" puts major_responses[major]
- Classes with attributes but no methods: just use
- If you have to do a chain method, you have to be defensive there.
Musings SQL Refactoring techniques – How to split a table in SQL Splitting the table = when some columns are...