Most Helpful Customer Reviews
40 of 41 people found the following review helpful:
3.0 out of 5 stars
A solid introduction, lacking in examples, February 22, 2008
This review is from: The Definitive Guide to Django: Web Development Done Right (Expert's Voice in Web Development) (Paperback)
Django is a framework I've long (in web years) held in some esteem, despite never having used it before the past few weeks. The framework's creators' many well reasoned contributions on all manner of debates about the web suggested a thoughtful approach, and the range of high quality sites powered by Django has kept growing, with the recent launch of EveryBlock being a prime example of its capabilities. So I was delighted to receive a copy of The Definitive Guide to django: Web Development Done Right for review. Authored by two of the creators of Django: Adrian Holovaty and Jacob Kaplan-Moss, the book is carefully structured, initially placing django in context by exploring various approaches to web development, and then stepping through initial project creation, templates, models, url configuration, django's famed admin interface, and so on. After eight chapters it changes tack and switches from basic tutorial to more in-depth exploration of areas like the ORM, session handling, caching and deployment. Several appendices provide supplementary material. The first few chapters do a good job of laying out the foci of the framework's architecture and it's Model Template View (MTV) approach. Its pace is measured and while I wonder if it might be a little too much too soon for those totally new to full stack web frameworks, it would work well for those coming from a background building web apps with PHP, Java, or for those of us who are used to working with Rails. There are new techniques to learn and I found the book particularly useful for grasping the deeply pythonic approach, favouring flexibility over convention. A clear example of that comes in the use of Context objects for passing values between Views and Templates. The authors initially show us the most verbose and rudimentary way to do it and gradually develop that to show how they've provided for various common cases. By going through those steps there's a good chance the reader will be well equipped to work out ways to simplify their own workflow and/or create new subclasses to promote reuse in their code. Where the book is lacking is in the examples. The introductory material, and much of the reference content is excellent, but as a newcomer to the framework I felt a little lost in how I should structure my code and how different components relate; it's clear how models relate to the database, but how do I pass them around when building associations? I recognise that django deliberately avoids the strong conventions of the Rails community (though even there you frequently find newcomers unsure where in the directory structure to place certain components) and there's no need for lengthy tutorials on building a shop or how a magazine cms could work, but when I come to a book like this I'm looking for a guide to best practices at the project architecture level, not just the component level, and I was sorry not to find it. The authors clearly have a lot of experience of structuring django sites of all shapes and sizes and it would be good to learn more about how they keep those sites organised. That said, this is a solid introduction to django for web developers; a solid contribution in a so-far underserved market and it's likely to come in handy for a number of people. Just be prepared to supplement it with a fair amount of time in search engines working out good strategies for connecting the pieces. Disclaimer: I was sent a copy of this book for review by the publisher.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
12 of 12 people found the following review helpful:
5.0 out of 5 stars
If you had to limit yourself to one Django book..., February 23, 2010
I've been working with Django full-time for the past nine months. Just from my day-to-day work, I've learned most of what's in this book (with major help from the official Django documentation and the mailing list), but I'd just been using this book as a reference. I finally took the time in the past week to read this book cover-to-cover, and it's fantastic. It really filled in the gaps in my knowledge, and gave me a deeper understanding of what's going on in the background when I use the Django features I touch every day. If I had read this book six or eight months ago, it would have saved me a lot of time, and I would have written more reusable code. I say "six or eight" months instead of "since the beginning" because I really felt like I was able to get the most out of this book because I intimately understood the framework. If I had never used Django before reading this it would still have been fantastic, but to really get the full benefit I would have had to read it again once I had more Django under my belt. If you're brand-new to Django, I recommend this learning path: 1. Do the official tutorial first as the bare-minimum. 2. If you have projects in mind, do them! If not, get James Bennett's Practical Django Projects, Second Edition (Expert's Voice in Web Development) in which he walks you through creating and enhancing fully-functional Django applications using the best practices of the community. 3. With that Django experience, read this book cover-to-cover. You'll be able to do pretty much anything you want with Django at that point.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
73 of 96 people found the following review helpful:
3.0 out of 5 stars
Another Definitive Flop from Apress, January 29, 2008
This review is from: The Definitive Guide to Django: Web Development Done Right (Expert's Voice in Web Development) (Paperback)
I buy books like these because I don't like reading documentation on a computer screen where I can't dog-ear or highlight anything, but after several bad experiences I'll probably avoid these black and yellow striped titles the same way I avoid black and yellow striped insects in the future. O'Reilly books are frequently hit-or-miss affairs, but everything I've seen come out of Apress looks like it was typeset by a 12 year old and simply isn't worth the money. It seems as though anyone who's ever written a single line of code and given it away for free can get a publishing deal these days. Forgetting for a moment the various reasons why Django itself fails to live up to its own "perfectionist" hype, this book is just not very good. The first couple of chapters do a decent job covering introductory topics, but it quickly becomes apparent that the authors were in a big hurry to finish the rest of it as quickly as possible. There's even a "guest author" brought in at one point for no apparent reason, and his chapter is one of the worst. Those few examples that are given in latter, more advanced, sections are nothing but code that is so full of typos it never should have made it to publication. This is why developers are seldom allowed to pen their own public documentation whether they fetch coffee at a podunk newspaper or not--you spend enough time staring at your own code that you lose all sense of perspective and can no longer approach it as a newcomer would. You know what works best for you and your rapidly balding twenty-nothing IRC clique, and you figure that's good enough for everyone else. It ain't. Another problem with letting the creators write their own "definitive" books is the way they tend to glance over the framework's shortcomings. The chapter on session management fails to mention the fact that Django expects YOU to clean up stale session data yourself, and the one on deployment makes little mention of the fact that there's not really any good way to get Django running smoothly without root access to the server--something a lot of people do not have--and they actually expect their users to run TWO servers--one for Django and one for everything else, like image files. There are ways around this, but why not put this kind of information right at the front of the book the way most others do so people can make an informed decision as to whether or not they should bother with your product right off the bat? Apache configuration is, according to them, "beyond the scope of this book." A quick Google search showed that any and all bugs related to this matter are immediately closed and marked "will not fix" by Django maintainers. It would seem that arrogance is the one feature of Rails they understood well enough to mimic correctly. Even if you hate online books, you should stick to the free version. They at least implemented a comments system that will let other people point out where all the various typos are before you get stuck trying to figure out why this perfectionist's code isn't running very perfectly.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
|