Thanks John. I am familiar with the mythical man month - good stuff! You, Michael and Steve, got me to re-look at what I was really trying to ask. I think my questions are really more about "really" understanding MVC and ORM than cake. Cake is just the code that implements MVC. While I understand what MVC is and does. I can define it, and I can write simple applications using it. (fat model, skinny controller) - I am not confident in all my architecture decisions and able explain all my choices. I feel like I am still guessing, testing, and reworking things all the time. To me, there is a big difference between good code architecture and well written code. right now, I am trying to make sure that I am putting the code in the right spot. It may be crappy code, but at least it is in the model or controller where it belongs. Maybe some day I can fix the crappy code. But I want to avoid putting great code in the wrong place and end up with a crappy system. I am not sure that I am explaining this any better, but my knowledge gap is the MVC architecture. The data model is probably good for now. I am sure someone could improve it, I don't claim to be perfect, it will probably grow and change over time anyway. But it is some of the MVC expertise that I am looking to learn.
An analogy that I can came up with is, that I think I am walking in terms of MVC and Cake, and I want to start jogging or running. But maybe, I am really still crawling and I need to keep working, and coding, and testing, and reworking, to learn to walk, before I can run. I think I am a fast learner and I have learned everything that I can get my hands on, but I need more. I feel like a young Jedi wanting to learn more and more, so I can become a Master sooner. Or maybe it is because I am 53, I have been designing projects and the last real programming I did was on an Unix System V device driver 20 years ago and this ORM stuff is a little Greek. Not to mention that all these young kids are picking this up in seconds, and I just want to keep up. LOL John, you should be very proud of the system you built below. I spent 5 years doing system architecture for AT&T, helping people design architectures like the one you describe below. For us it was standard, but a lot of people probably don't understand the capability or the complexity behind a scalable DB architecture with clustered servers with masters and slaves. This is a great testament to you and your team, and to Cake that it can handle this large project. Thanks again to you, Michael & Steve. I think I am going to try to learn more about MVC and ORB. Hopefully, I can find some things to help be learn to run, but if not, I will just keep writing coded, learning, rewriting and learn it over time. Bill On 6/6/2012 11:41 AM, John Hardy [via CakePHP] wrote: > A computer architect should just look at what cake does. > > It bootstraps request into and MVC architecture. It has a built in > ORM, and some injection points to customize and manipulate data > throughout the request. > > Cake is not gonna make you or break you, if your site it built shitty, > it's not because of the framework. > > It can handle a large infrastructure. You've already searched, there > are no best practices for cake, it's not needed, it's MVC, ORM etc. > It's computer science and software engineering. > > My site serves over 1 Million pages a day, over 600k in videos. > > I have over 90 models shared between two domains ( admin and site ) > > Hundreds of controllers, hundreds of views. > > I load balance between 8 16gb nodes. > > My database architecture is horizontally scaled between 1 master, 3 > slaves, 1 session server, and 1 data warehouse server. > > I run a cluster of two memcached servers. > > Do I have shitty code in my site, you're damn right I do. But its > getting the job done, and keeping food on peoples tables. > I can always go back with a better strategy to handle it later. but > there is much more good code in there too. > > You suffer from second system effect. Read the mythical man month. it > will help you. > > > On Jun 6, 2012, at 8:37 AM, Steve Found wrote: > >> Yes, I have the eBook of this that I bought from Apress. I believe it >> is for cake 1.3 ? >> >> Although well worthy of a read, I felt there was a lot of wheel >> re-invention going on. For example, they implement their own tree >> handling code for categories when there is already a perfectly >> satisfactory TreeBehavior class in Cake and they did not really >> explain why they felt the need to do this. They also concentrate a >> lot on the use of elements. >> >> To talk about the original question, the way cake works IMHO is to >> distribute logic between all three of Behavior, Component and Helper >> classes with behaviors extending models, Components extending >> controllers and Helpers extending views. The best analogy I can think >> of for these is the C++ multiple inheritance concept where functions >> are added to the classes to give them more methods. For example a >> model with both Tree and Containable behaviours is both of those >> things in addition to being a model. >> >> To have a concept, say for example you wanted an edit box that >> plugged into junit's autocompletion, you may well write a plugin that >> contained all three of behaviours, components and helpers to achieve >> what you want. >> >> Good examples of this can be found in the CakeDC github repository >> and I think this is a good a repository as any to see good Cake >> coding practises. >> >> https://github.com/CakeDC >> >> Hope this is of some help, >> >> Steve (Ratty) >> >> >> On 06/06/12 03:28, bs28723 wrote: >>> anyone familiar with this book? >>> >>> >>> Practical CakePHP Projects (Expert's Voice in Web Development) >>> by Richard Miller, John Omokore and Kai Chan (Dec 4, 2008) >>> >>> >>> or other books that provide good examples of the >>> Fat Model, Skinny controller Concept? >>> >>> On Sunday, June 3, 2012 9:04:26 AM UTC-4, ibejohn818 wrote: >>> >>> Fat model, skinny controller. >>> Separation of presentation and data >>> >>> A couple Core concepts in building a mote maintainable app. >>> However nothing is ever 100 perfect for all situations, learn >>> from writing your own shitty code and do not get caught in the >>> spiral of over engineering. Keep it simple and clever. >>> >>> On Jun 2, 2012 11:18 AM, "bs28723" wrote: >>> >>> I am probably looking for something that does not exist >>> online, but only >>> in a few folks heads. :-) But maybe some parts of this >>> exists. You >>> never know unless you ask...... >>> >>> I am quickly learning a lot about MVC architecture and >>> CakePHP over the >>> last couple months. The cookbook, lots of trial and error, >>> and this >>> group are helping me learn - so thanks! But, I am finding >>> myself using >>> simple examples to learn or implement something. Then as it >>> scales, >>> realize that I should have done this with a helper, behavior or >>> component. And now, I have to go back and redesign this, to >>> do it >>> correctly. Great that I am learning, but this is delaying my >>> project. Sigh. >>> >>> So, I am looking for more advanced examples, tutorials, or best >>> practices to "hopefully" allow me to skip over some of the >>> basic >>> learning curve and get right to an architecture that will >>> support a >>> medium to large site with lots of capabilities. >>> >>> Am I asking for too much? :-) >>> Any suggestions on where to get this advanced information or >>> education I >>> am looking for? >>> >>> Thanks, >>> bill >>> >>> >>> ------------------------------------------------------------------------ >>> View this message in context: Looking for MVC & CakePHP Best >>> practice doc, examples for Med to large sites >>> >>> <http://cakephp.1045679.n5.nabble.com/Looking-for-MVC-CakePHP-Best-practice-doc-examples-for-Med-to-large-sites-tp5708484.html> >>> Sent from the CakePHP mailing list archive >>> <http://cakephp.1045679.n5.nabble.com/> at Nabble.com >>> <http://Nabble.com>. >>> -- >>> >>> -- >>> Our newest site for the community: CakePHP Video Tutorials >>> http://tv.cakephp.org <http://tv.cakephp.org/> >>> Check out the new CakePHP Questions site http://ask.cakephp.org >>> <http://ask.cakephp.org/> and help others with their CakePHP related >>> questions. >>> >>> >>> To unsubscribe from this group, send email to >>> [hidden email] </user/SendEmail.jtp?type=node&node=5708597&i=0> For >>> more options, visit this group at >>> http://groups.google.com/group/cake-php >> >> >> -- >> Our newest site for the community: CakePHP Video Tutorials >> http://tv.cakephp.org <http://tv.cakephp.org/> >> Check out the new CakePHP Questions site http://ask.cakephp.org >> <http://ask.cakephp.org/> and help others with their CakePHP related >> questions. >> >> >> To unsubscribe from this group, send email to >> [hidden email] </user/SendEmail.jtp?type=node&node=5708597&i=1> For >> more options, visit this group at http://groups.google.com/group/cake-php > > -- > Our newest site for the community: CakePHP Video Tutorials > http://tv.cakephp.org > Check out the new CakePHP Questions site http://ask.cakephp.org and > help others with their CakePHP related questions. > > > To unsubscribe from this group, send email to > [hidden email] </user/SendEmail.jtp?type=node&node=5708597&i=2> For > more options, visit this group at http://groups.google.com/group/cake-php > > > ------------------------------------------------------------------------ > If you reply to this email, your message will be added to the > discussion below: > http://cakephp.1045679.n5.nabble.com/Looking-for-MVC-CakePHP-Best-practice-doc-examples-for-Med-to-large-sites-tp5708484p5708597.html > > > To start a new topic under CakePHP, email > [email protected] > To unsubscribe from CakePHP, click here > <http://cakephp.1045679.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=1255722&code=YmlsbC5zdG9sdHpAYm9vc3RlcndlYnNvbHV0aW9ucy5jb218MTI1NTcyMnwtNTU0NTk2MTUy>. > NAML > <http://cakephp.1045679.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > > -- View this message in context: http://cakephp.1045679.n5.nabble.com/Looking-for-MVC-CakePHP-Best-practice-doc-examples-for-Med-to-large-sites-tp5708484p5708606.html Sent from the CakePHP mailing list archive at Nabble.com. -- Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php
