Appable Plugins
I gave a presentation in May 2007 to the Philly on Rails Folks. It was a lot of fun, and my friend, Nat, bought me some tall boys. He also took a couple good pictures.
Would you like to peer into my inner being? Yes? Here are my notes.
>> Creating Product Lines With Appable Plugins
* Appable Plugins was made by http://pluginaweek.org.
* Plugins Plus
* It allows you to build large functional chunks of functionality that can be moved between products.
* Really Simple to use
>> JAVA
* Java is not reflective enough to properly decouple components
>> Rails Engines
* Allows separate MVC, but still not decoupled
>> Appable Plugins
* Separate MVC
* Code Mixing
* Migrations
* Dependencies
* Deployable as Gems
>> Users
* Want to write a plugin that encapsulates user logic
* DB Models
* Login Page
* Profile Page
!!! Create User App !!!
!!! Giver her a whirl !!!
>> Beer
* We want our app to use beer
!!! Write in Beer plugin !!!
>> Users + Beer
* Our app is about users having beer, so tie to the two together down at the core
!!! Users habtm beers !!!
>> A Hypothetical Interruption by DHH
DHH: I thought you said the components were loosely coupled.
ME: Yeah
DHH: Well, now you've explicitly tied beers and users together. Hardly sounds decoupled.
ME: Well not really. We've defined two pieces of code that encapsulate their logic quite well, And only defined how the two interact in our core project.
ME: So, instead of defining our product as a bunch of pages, models, and controllers, we're defining our product by how big chunks tie together.
DHH:
DHH: Fuck You
>> Plugin Dependencies
* We want to reusable code that depends on other reusable code
!!! Hack up Blog...? !!!
