Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Thoughs on Ruby libraries design

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

Thoughs on Ruby libraries design

Avatar for Vasily Kolesnikov

Vasily Kolesnikov

February 26, 2019

Other Decks in Programming

Transcript

  1. Library • Fulfils its purpose • No negative effects on

    the target code • (Optional) Simple and extendable code 2
  2. • Libraries may conflict with other parts of your code

    • Clash top-level constant names • Incompatible versions of mutual dependencies • Change the target code process behaviour Negative effects 3
  3. • Versioning is important: • Change-logs • Semantic versioning •

    Back-porting • Optimistic vs. Pessimistic version lock Dependencies 7
  4. 13

  5. 14

  6. 15

  7. 16

  8. 20

  9. 26

  10. 27

  11. 28

  12. 29

  13. Consider harmful • Extra dependencies • Out of scope work

    (configuration of 3-rd libs) • Process modification (at_exit, signal traps) • Singleton and/or global (class level) configuration • Monkey patches • Common names of top-level modules 30