Regarding content, it looks like the focus of the book revision has
been documenting all the newer features, and that should certainly be
the priority. Perhaps this is beyond the intended scope of the current
revision, but at some point I think it would also be helpful to expand
the discussion of some conceptual issues, especially the distinctive
design decisions of the framework and their implications for
programming practice. In particular:

(1) Exec vs. Import of Models, Views, Controllers: A better
explanation of the distinction at a technical level would be helpful
(this would be particularly helpful for those new to Python and Python
frameworks). What are the benefits and possible drawbacks of executing
everything? How is this similar to or different from other frameworks,
such as Django, Rails? What are the implications for programming
(e.g., possible performance hit with many/large model files)?

(2) DAL vs. ORM: Since ORM's seem to be the more common approach among
full stack frameworks, it might be worth explaining how a DAL differs
and why the DAL approach was chosen. What are the benefits? How does
it impact they way you write models and controllers compared with ORM-
based frameworks?

A discussion of the web2py approach to MVC would also be helpful,
especially as it relates to the above two issues. For example:

- I've seen a lot of references encouraging "fat models and skinny
controllers" when developing MVC applications. Is web2py's design
consistent with that approach? Does using a DAL instead of an ORM
impact what you can or should put in your models? Also, does the fact
that all models get executed on every request suggest that models
should actually be as "skinny" as possible in order to avoid
performance problems?

- In addition to using web2py models files for defining data models,
it appears a lot of folks use the models files for settings, helpers,
and other objects they want to make available globally. It seems this
is not necessarily because such items are rightly construed as
"models," but simply a convenience, taking advantage of the fact that
everything in the models files is available globally on every request.
Is this the recommended practice? Should we think of the models files
as having two distinct purposes: (1) defining data models, and (2)
creating global objects, functions, settings, etc.? If so, it might be
worth making that explicit and providing some guidance and examples.

- More generally, I've seen a lot of questions asking about what
should go where. Are there web2py-specific best practices for what
should go in controllers, models, modules, etc.?

Some other topics that would be helpful:
- Expand the scalability/performance recommendations as per
http://groups.google.com/group/web2py/msg/10fa4709c2a28c9b
- When/why to use local_import vs. import.
- Example of using exec_environment for loading site-wide helper
libraries (which is one of the recommended use cases).
- LOAD
- How to do REST with web2py (is it possible? encouraged?). Seems to
be a big thing with Rails.
- Documentation of cube2py/plugin_wiki
- I saw some references to "lazy tables" at some point -- do they
exist?
- I've seen a lot of confusion regarding what is meant by "Enterprise"
in describing web2py -- perhaps worth clarifying in the book.

Apologies if any of the above doesn't make sense or seems confused.
I'm just starting to learn web programming, MVC, Python, and web2py.
Wouldn't normally be comfortable chiming in with all this at such an
early stage in my learning, but the book is being revised now, so it's
either now or (next year?). Plus, this seems like a friendly
community. In any case, this should at least give you an idea of the
questions on the mind of a complete noob.

Thanks.

Anthony

On Jul 27, 6:49 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
> This is very very preliminary:
>
>    http://web2py.com/book2
>
> It is not editable (yet) and I am still adding material but it does
> address a lot of issues.
> Please use this thread to add comments in particular:
>
> What sections are missing?
> What needs to be clarified?
> Are there spelling errors?
> Are there formatting error?
>
> One more way I could use help: I need all the images done with the old
> layout to be redone with the new welcome layout.
>
> Massimo

Reply via email to