test.ical.ly | getting the web by the balls

Apr/11

14

Convenience over configuration (not instead of)

Yesterday I released CaeferFacebookCanvasAppBundle for Symfony2 as a single purpose software. I made it do what I needed and hopefully did not include any bugs or misconceptions.

Obviously I was asked why I haven’t done all that withing the already existing FacebookBundle which is multi purpose of which a canvas app could be just one.

The simple reason is: I couldn’t get it to work for me the way I wanted.

The slightly longer explanation is: I was overwhelmed by the sheer number of possible combinations of the security component even withing the FacebookBundle and for most of the time I didn’t understand what I was doing.

After endless hours of trying the only way I could think of was starting from scratch implementing my requirements within controllers and templates and then start refactoring it down to the security layers.

My bundle should now be a simple drop-in solution with very little configuration and no obvious possibilities of settings. Still you can if you want ignore the security pre-configuration of it and do your own if you feel expert enough. But that’s where bundles responsibilities will end and you will be on your own.

However I think that CaeferFacebookCanvasAppBundle can still be merged into FacebookBundle. To keep the convenience value the following two things should be done.

  • For each use case there should be a recipe documentation that starts with an abstract of its objective and then moves on to explain what needs to be done to make it happen.
  • For each of those use cases the usual configuration should exist as a preconfigured settings file that can simply be included and then extended where it needs to be.

Will I do it?

Well not alone that’s for sure as this is not only a time issue but a matter of understanding the other purposes of FacebookBundle but I’d be willing to help. I would just require the above things so that using FacebookBundle for the canvas app purpose is as convenient as is CaeferFacebookCanvasAppBundle.

· ·



  • http://www.knplabs.com/en Ryan Weaver

    Completely agree. The architecture is of course flexible (yay!) – but one way or another, there must be docs+configuration that allows the normal use cases to be solved immediately. I don’t know anything about the FacebookBundle, but your idea of having example configuration files and explanation of a few common cases sounds like a very solid idea (and one that could be extended to every other part of the framework). I’d be *very* happy to see us start to get to this point.

    Who should start it? Like with the cookbook documentation, it will probably need to be bootstrapped by some of the core devs of the bundle or framework, and then the community encouraged to submit their solutions back.

    Cheers!

  • http://test.ical.ly Christian

    @Ryan also community recipes should be revisited by some core members and tested properly imho.

  • http://www.knplabs.com/en Ryan Weaver

    Yes, the nice thing about the cookbook is that entries have to be “vetted” by the community before being accepted. This is different than the symfony1 recipes, which were just added freely to a wiki. Of course, everyone will need to be responsible for making sure they stay current.

    It’d be a big job, but there should be some audit – perhaps every 6 months – to go through and make sure the cookbook entries are still accurate and well-explained.

  • http://test.ical.ly Christian

    I also like the “known to work with version x.y.z” flag they have on the wordpress plugins page. also maintained by the community.

<<

>>

Theme Design by devolux.nh2.me