<div dir="ltr">> <span style="font-size:13.1999998092651px;line-height:19.7999992370605px">My main concern is that with one big app tests start taking longer and longer to run</span><div><br>It sounds like this is your actual reason for avoiding a single app and it sounds like it is founded on flawed premises.<br></div><div>Test suites shouldn't take that long to run, and there's plenty that can be done to speed up test suites and tackle those problems.</div><div>Testing too much, hitting the db or network when you shouldn't/don't need to, testing at the wrong level, etc.</div><div><br></div><div>If this is a greenfield app it means you can ensure that the test suite doesn't get to that stage and have the simplicity of a single app.</div><div>Having worked with Pivotal on a project, I can definitely recommend the engine approach they suggested (if and when it becomes necessary and not too much before).</div><div><br></div><div>Breaking the app into smaller parts and/or namespacing is definitely a nice way to reduce the overall complexity introduced (by e.g. two or more separate apps and deploys etc) but maintaining a clear separation of concerns.</div><div><br></div><div>Anyone that has had an issue with too much referencing of namespaces with engines may have found that the dependencies/separation was not as clear as it could be. </div><div>In general the namespacing can act as a really good code smell indicator. If you have one namespace that is constantly referencing others then the code has probably been split at the wrong boundary and/or is just too highly coupled. </div><div>This pain just becomes more visible once you introduce namespaces and it can help you to refactor to a cleaner structure at an earlier phase.</div><div>There is some faffing around with bundler, migrations, models etc that a fair bit has been written about. It can mostly be solved with a couple of lines of bash/aliases or something to get your equivalent to rake && git push.</div><div>But <span style="line-height:1.5;font-size:13.1999998092651px">most of the code in an engine based app only differs from an ordinary rails app by having an extra module at the top and two spaces more indentation.</span></div></div><br><div class="gmail_quote">On Tue, May 19, 2015 at 11:09 PM Kerry Buckley <<a href="mailto:kerryjbuckley@gmail.com">kerryjbuckley@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, May 19, 2015 at 2:59 PM, Paul Doerwald <span dir="ltr"><<a href="mailto:paul@liquidmedia.ca" target="_blank">paul@liquidmedia.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">I’ll chime in with Graham about using a single app. There’s a certain appeal to software purity, but I’ve found in the past (when I’ve carefully written separate apps, or had clear delineations between parts of an app, assuming a largely overlapping set of users) that as the application matured, the two apps increasingly became one, and an eventual rewrite forcibly made them one. </div><div style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto"></div></blockquote></div><br></div></div><div dir="ltr"><div class="gmail_extra">You make a convincing argument, and there's no doubt that a single app is easier (if not necessarily simpler). My main concern is that with one big app tests start taking longer and longer to run. I worked on a huge Rails app a few years ago where the full test suite took 45 minutes (there were some bad testing decisions as well as sheer size), and I never want to go there again!</div><div class="gmail_extra"><br></div><div class="gmail_extra">I guess the solution is to separate things in such a way that it's easy to run a focussed subset of tests, but I still want to be able to say "rake && git push" without then having to go off for a coffee while I wait.</div></div><div dir="ltr"><div class="gmail_extra"><br></div><div class="gmail_extra">Kerry</div></div>
_______________________________________________<br>
Chat mailing list<br>
<a href="mailto:Chat@lists.lrug.org" target="_blank">Chat@lists.lrug.org</a><br>
Archives: <a href="http://lists.lrug.org/pipermail/chat-lrug.org" target="_blank">http://lists.lrug.org/pipermail/chat-lrug.org</a><br>
Manage your subscription: <a href="http://lists.lrug.org/options.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/options.cgi/chat-lrug.org</a><br>
List info: <a href="http://lists.lrug.org/listinfo.cgi/chat-lrug.org" target="_blank">http://lists.lrug.org/listinfo.cgi/chat-lrug.org</a><br>
</blockquote></div>