- In Rails
- Cache all the things.
- Throttle any operation that can’t be cached. rack-attack and rack-throttle can help throttle unwanted requests.
- Consciously minimize dependencies. They will turn into liabilities as projects grow.
2. In Ruby
- Use metaprogramming sparingly to prevent unnecessary slowness.
- Think about how your code will scale with more data. Know the difference between O(n) and O(1).
- Avoid mutating global state while leveraging mutation on the local state.
3. In Active Record (Rails’ default ORM)
- Know when queries get executed and what causes them to get evaluated.
- Index the columns you need to query.
- Use select and pluck to select only what you need. By default, Active Record selects all columns in SQL with SELECT *
Full post here, 8 mins read