On Thu, May 7, 2009 at 9:12 AM, Ivan Sergio Borgonovo <[email protected]> wrote: > On Thu, 7 May 2009 09:23:48 -0500 > Jeff Eaton <[email protected]> wrote: > >> Crell's Law: If an API must be use-case-optimized, make it >> swappable & tailor the default for cheap shared hosting. High-end >> sites can swap. > >> Eaton's Corollary: If an API is swappable, write two >> implementations. APIs with one test case are rarely flexible >> enough for the second. > > If you want to make stuff swappable start at least with 3 > implementations otherwise 2 will just be a special case of 1.
We have to temper the ideal with reality. We have several swappable systems in Drupal (database, mail sending, caching, others?) and as far as I know only one of them has multiple backends in core (databases). We are able to have multiple backend for databases, but it takes a lot of effort. I doubt we have the capacity to create not just 2, but 3 implementations for all of the other swappable items in core. There's also the question of baggage. Do we really want to merge SMTP [1] and Fastpath FSCache[2] into core? Would that be a total improvement? Would the additional complexity (usability decrease) be worth it just so we can satisfy a desire to properly test that APIs? And three cheers for Crell's Law and Eaton's Corollary. Cheers, Greg -- Greg Knaddison | 303-800-5623 | http://growingventuresolutions.com Cracking Drupal - Learn to protect your Drupal site from hackers Now available from Wiley http://crackingdrupal.com
