Django. Разработка веб-приложений на Python

Давеча закончил чтение небольшой книжки, одной из тех, что взял на books.ru. Книжка новая и пока пока довольно редкая. Первая книга о Python-фреймворке Django, переведенный на русский язык и выпущенная издательством Символ-Плюс: Форсье Д., Биссекс П., Чан У. «Django. Разработка веб-приложений на Python». Честно говоря, не рассчитывал, что книга будет свехрполезна для меня, хотя мои знания Пайтона и Джанго пока что достойны только звания «начинающий». Я оказался прав, гордая надпись на книге «Уровень подготовки читателя: Средний» как выяснилось означает тупого школьника, осилившего пару глав из переведенную уже на русский djangobook 1.0 или djangobook 2.0 в оригинале.

Изначально дается небольшое введение в сам язык Python. Ну почему все, кто пишет о Django считает своей целью потратить почти 50 страниц на объяснение основ Пайтона. Лучше бы истратили на что-то более интересное. Затем в паре глав нам рассказывают про принципы построение приложений на Django, про шаблоны, виды и модели. Все скучно и стандартно. На эту часть книги (хотя это почти половина), при должном прочтении уходит один вечер — 200 страниц чтения по диагонали. Потом начинаются примеры, это уже интереснее. Сначала пишем блог (тут все скучно), потом фотогалерею (тут интересен подход к генерации превьюшек на Python), потом для «поцанов с РНР», их любимое развлечение — написание CMS, самое простое на первый взгляд и самое сложное на второй. Далее так называемый «живой блог», некое жалкое подобие http://twihoo.ru/ своими руками. Тут я надеялся познать всю мощь поддержки технологии AJAX в Django. Однако первыми же строками в этой главе были «Поддержки AJAX в Django нет». Смешно, я купил книгу, чтобы узнать, что поддержки этого не существует и нужно все писать по старинке самому. Хотя авторы все равно молодцы, рассказали про хороший, годный AJAX через JSON и используя jQuery. И последнее приложение, написание которого разобрано в книге — pastebin. Кто не в курсе — такой веб-сервис для публикации кода, чтобы дать ссылку на него, скажем, в IRC.

В приложениях разобраны основы консоли Linux (даже не открывал главу), а так же интеграция с Google App Engine. А теперь попробую по памяти перечислить самые запомнившиеся мне недочеты в книге.

Во-первых книга очень тонкая, поэтому практически в конце каждой главы существует ссылка типа «подробнее об этом можно прочитать в официальной документации». Можно было пойти дальше и просто вместо каждой главы дать ссылку на доку. Хотя нет, все-таки некоторые интересные моменты все-таки разбираются.

Вторая особенность, показавшаяся мне странной, это мания авторов «все снести, если что-то не работает». Может быть новичкам, конечно, будет проще — если забыли выполнить одну команду, просто rm -rf / и ставим все заново. Ну как-то не Unix-Way =\

Ну и третий, ближе к концу книги, когда рассматриваются применения Django вне веба, авторы пишут скрипты для cron, например которые очищают базу данных от старых записей. Что делают авторы: пишут скрипт на Python через #!/usr/bin/env python, импортируют все модули библиотеки Django, потом все пользовательские модели, потом несколько библиотек самого Python (типа datetime, для работы с датами), потом пишут метод, подключающийся через Django к MySQL, ищущий все записи в модели БД, сравнивая с datetime, потом вызывающий метод delete() для всех них. Я понимаю, что новичкам надо было на каком-то легком примере объяснить как работать с Django через командную строку, но для такой простейшей операции любой адекватный человек написал бы bash-скриптик, подключающийся к mysql и выполняющий DROP или DELETE.

В общем крайне не рекомендовал бы книгу любому, кто хоть как-то знаком с платформой Django. Слишком уж много вещей «для начинающих». Для продвинутых пользователей я бы советовал Pro Django 2009 от издательства APRESS. Естественно не на русском.

Сама же «Django. Разработка веб-приложений на Python» читается спокойно за три вечера, и несмотря на все свои недостатки не содержит отвратительного говнокода, свойственного русским книжкам. Методы названы хорошо и понятно, все импорты на месте, сам код тоже всегда прост и понятен — это очень хорошо, ибо не придется переучиваться со временем. Соблюдены все паттерны проектирования на Django, например разделение URL по приложениям. В общем годная книга для новичков.

Анка — 04.09.2009 - 22:04 [213.228.78.102]
Ты все свои книжки читаешь :) Лучше научи меня на С кодить, мне с ним целых 2 семестра возиться
V@s3K — 04.09.2009 - 22:10 [80.64.90.224]
Анка, попроси у ReDetection'а Кернигана и Ритчи. У него должно быть :)
ReDetection — 04.09.2009 - 22:49 [89.189.191.4]
у меня не Керниган и Ритчи, у меня Страуструп и не си, а си++
По C у меня Стефан Кочан, ISBN 5-8459-1088-9, она ниче так, но видал и лучше
притащить? :)
JasonX — 04.09.2009 - 22:50 [80.64.175.12]
> подключающийся к mysql и выполняющий DROP или DELETE

или ещё круче - truncate table )))
Анка — 04.09.2009 - 22:59 [213.228.78.102]
ReDetection, ну если она понятная для человека, за всю жизнь не написавшего и строчки кода (осмысленно, а не скатав с доски, как в школе учили)
GreatCornholio — 04.09.2009 - 23:07 [10.204.60.69]
Анка, У нас на ФТФ вроде С только один семестр; второй - С++. Правда, так, как у нас преподают С++, разницу чувствуешь только под конец года( ну и на лекциях, если их посещать и слушать ), когда просят напистаь класс, в качестве единственной домашки. Так те же циклы, строки, школьные задачи и уродский IDE Dev-C++, который, по-моему, даже не имеет сишных библиотек, как их надо называть по стандарту( выразился, конечно, ужасно, но я имел ввиду <csomelib> вместо <somelib.h> ). Или хотя бы препод, которая не знает, как их надо включать по стандарту =). А, и да, в нём radndom() не работает =). Как мне щас на третьем семестре без рандома строить линии в allegro - хз.
ReDetection — 04.09.2009 - 23:34 [89.189.191.4]
ну.. не знаю.. я могу дать, а ты уж там решишь))
правда, тут такая фишка, тут автор - юниксоид, соответственно, даже компилирование исходника он описывает через gcc в консоли. ничего страшного, правда?)
Анка — 05.09.2009 - 12:59 [213.228.78.102]
ReDetection, не проблема, с консолью разберусь. Приноси :)

GreatCornholio, у нас другой препод, дядька-юниксоид. Все что он нам сказал - что будем писать на чистом С и что курс информатики 2 семестра.
GreatCornholio — 05.09.2009 - 14:01 [10.204.60.69]
Анка, о_О, дядька-юниксоид... ну тогда вполне возможно чистый C, а лабы писать будете под мандривой. Удиви его знанием GCC. =)
JasonX — 05.09.2009 - 14:50 [80.64.175.12]
повезло с дядькой-юниксоидом.
V@s3K — 05.09.2009 - 17:47 [80.64.90.224]
Даже у нас на факультете автоматики одни вендусы. Экспи да висты :(
2k@y — 05.09.2009 - 19:26 [78.40.81.19]
неа, в 302ой на всех "компах" solaris O_o
ReDetection — 05.09.2009 - 19:45 [89.189.191.4]
ага, ак и в 301 и во всей лаборатории sun. кстати, помните, что оракл покупала сан? щас решается, возможно, сделку посчитают монополистическим актом и отменят.)
GreatCornholio — 05.09.2009 - 20:56 [10.204.60.69]
V@s3K, ага, даже у декана с двумя мониками при включении издаются 2 звука критической ошибки вендузов =)
refresh

(не заполняйте это поле)

i