Pluggable Applications¶
by Nowell Strite and Shawn Rider
Background¶
- Many sites
- Built on a diverse technical architecture
- Many repetitive components
- Ease of implementation
- Highly specific details
Reusable App design pattern¶
- Easy to share functionality with other projects
- Quick to get features up and running
- Possible to expand and enhance functionality
Reusable App design pattern - sort of¶
- Apps are expected to live at one URL
- Convention of adding ‘extra_content’ params are not satisfactory
- Conventional template replacement is not always flexible enough
Template tags to the rescue¶
- Kind of fixes the problem
- but form postings become complicated
- but performance issues
The Use Case¶
- Access to a reobust database of curated resources
- Community features to allow educators to share and discuss those resources
Because discussion is so important in this setting, many objects in Peer Connection support discussions. Given thaqt the purpose of the site is partially to learn to use technology, a clean user experience is essential.
Their reqs¶
- Sensible URLs that follow our patterns elsewhere on the site
- Allow discusisons app to interact with other apps and objects in expected ways
- Allow posting of data and error handling in the same location - no redirects to stand-alone pages to fix a message post
- Flexibility to enforce permissions and other variations of display in an ad-hoc way
Solution: Pluggable Resusable App Pluggable¶
- Apps can be presented at various URls through the site
- Better architecture
- Content generated by the pluggable app is in the main content well, but can be farmed out to other places
Make it so¶
- pluggable urls
- pluggable views
- Subclassing / instantiation of pluggable application
Very nice!¶
- They do control of request stuff very nicely!