Have more Ideas, but less Resources? Exactly, it forced us to find an alternative to the traditional application development. We found ourselves repeating same features across multiple applications. One natural thought came to us, is to avoid repeating same features, which is cumbersome and time consuming. We needed a solution in which the common functionalities should be made available to multiple applications with less effort and less maintenance.
Problems duplicating same functionalities:
Let's take contact us page as an example. All our applications, eServicePlace.com, PairWorks.com, eduHelp.in and our company website absolut-e.com need to have contact us page. Contact us is a simple page with a form, which users can use to contact us with their question. Well its a pretty simple that need a page, model, email notification, view the list of users and their questions.
How we did it?
1. develop the contact us functionality in eduHelp.in
2. test it and deploy to production
3. copy the controller, model, migrations to hiringopen.com
4. configure the necessary components
5. test it thoroughly and deploy to production
Using Rails Plugin:
1. develop the contact us functionality in eduHelp.in
2. test it and deploy to production
3. package it into a rails plugin
4. install it in hiringopen.com
5. test it
6. deploy and configure in production
As you have noticed, rails plugin helped us but not much to the extend we expected
Rack Middleware:
1. develop contact us functionality in a standalone application
2. test it
3. deploy and configure in a standalone production environment
4. create a rack layer for this application
5. add the rack layer to application like eduhelp.in and hiringopen.com that needed this functionality
Yes, no testing and configuration required in this case that saved us time and freed some resources. We just started using rack middleware couple of months ago and glad, we found it.
There are tonnes of rack middleware resources found in the web, please google it and let me know if you find any
interesting article.
Have you used Rack Middleware and how do you feel?