Great, I will take a look at this.
Thanks!

On 6/7/2012 8:08 AM, Steve Found [via CakePHP] wrote:
> A good book (IMHO) to have a look at is PHP 5, Objects, Patterns and 
> Practice by Matt Zandstra (Apress) which explains ORM and MVC very well
>
> ORM is basically the mapping of relational database data to objects. 
> The programmer does not give a damn how the data is stored all they 
> need to do is to instruct the data persistence layer to save an object 
> instance or load an object instance, whether that data is cached in a 
> file, read from a single table or read from multiple tables is 
> irrelevant.
>
> Cake's models are all about the reading, writing and verification of 
> data which is absolutely fine as this is very well documented and 
> there seems little point in taking data from a table, converting it 
> from an array into an object then passing that object to a view to be 
> displayed when all the view needs is the data to be displayed.
>
> So to me, Cake's current ORM does have a layer missing that other 
> frameworks have. Zandstra's book calls this the Domain Model and it's 
> purpose is to read and write Objects from/to the database instead of 
> arrays. Other systems are tied in to a form of the ActiveRecord 
> pattern which is a decent enough Domain model and this is a direction 
> I would like to see Cake head in ... but not at the expense of what it 
> already has !!!
>
> Steve
>
>
> On 07/06/12 02:46, bs28723 wrote:
>> 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 [hidden email] 
>>> </user/SendEmail.jtp?type=node&node=5708606&i=0>
>>> To unsubscribe from CakePHP, click here.
>>> 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: Re: 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-tp5708484p5708606.html>
>> Sent from the CakePHP mailing list archive 
>> <http://cakephp.1045679.n5.nabble.com/> 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
>> [hidden email] </user/SendEmail.jtp?type=node&node=5708627&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
> 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=5708627&i=1> 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-tp5708484p5708627.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-tp5708484p5708631.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

Reply via email to