<div dir="ltr">So we've been experimenting with this pattern and had some good success with internal projects and are slowly introducing it in newer client projects. I wouldn't go down this route if you're going to have developers who are new to Rails on your project as it's yet another thing to learn, but for seasoned developers it shouldn't be much of an issue. It's certainly better than having a million and one callbacks in a single class.<div>

<br></div><div>Regards,</div><div class="gmail_extra"><div>--<br>Matthew Ford<br><br>Director of Bit Zesty<br><br>T: +44 (0)2071250160<br><br>This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify Bit Zesty immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. Bit Zesty does not accept liability for any errors or omissions in the contents of this message, which arise as a result of e-mail transmission. Opinions expressed in this email are those of Matthew Ford, and do not necessarily reflect those of Bit Zesty.<br>

<br>Bit Zesty Ltd, a company incorporated in England with registered company number 06883289.<br></div>
<br><br><div class="gmail_quote">On 23 July 2013 14:26, Tom Cartwright <span dir="ltr"><<a href="mailto:tecartwright@gmail.com" target="_blank">tecartwright@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Afternoon all,<div><br></div><div><div>I am about to start a new rails project. I have read objects-on-rails and watched the Hexagonal rails talk and the techniques make a lot of sense. "Great!" thought I, I can build this new app with lots of those patterns (service layers, decorators, publish/subscribe (announcer/listener) pattern, logic living in a classes with a single responsibility etc). Everything will be easier to test and easier to change and develop. Winner.</div>


<div>However, when I asked a colleague what they thought of these techniques, they had concerns about moving away from the rails conventions as it would take time to get developers up to speed with the techniques.</div><div>


One reason (and I can definitely see their point here) is that intentions can get obfuscated when using lots of loosely coupled objects and this can lead to confusion. Given lots of developers will be working on the app, onboard time is something I need to consider.</div>


<div>One way to strike a balance would be to develop the app in the canonical fashion and then use these techniques as and when. E.g. Use the publish subscribe pattern when controllers/models start to get bloated. However, by that point it could be a bit too late and I might be reluctant to make changes that major. My integration tests would catch most stuff, but I will have to be confident that they will catch all the edge cases.</div>


<div><br></div><div>So my question is: Should you strike a balance? If so, how do you strike a good balance? What has been your experience of introducing these techniques bit-by-bit?</div><div>Thanks in advance for your brain thoughts.</div>

<span class="HOEnZb"><font color="#888888">
<div><br></div><div>Tom</div><div><br></div>-- <br><div dir="ltr"><font face="arial, helvetica, sans-serif">Tom Cartwright</font><div><font face="arial, helvetica, sans-serif"><a href="http://tecartwright@gmail.com/" style="line-height:18px;white-space:pre-wrap;text-decoration:initial" target="_blank">tecartwright@gmail.com</a><span style="line-height:18px;color:rgb(71,71,71);white-space:pre-wrap">
<a href="http://www.tomcartwright.net" target="_blank">Portfolio</a> </span><font color="#474747"><span style="line-height:18px;white-space:pre-wrap">ยท </span></font><span style="line-height:18px;color:rgb(71,71,71);white-space:pre-wrap"><a href="http://github.com/tomcartwrightuk" target="_blank">GitHub</a></span></font></div>



</div>
</font></span></div>
<br>_______________________________________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org">Chat@lists.lrug.org</a><br>
<a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
<br></blockquote></div><br></div></div>