Comments 43
Отличная статья. Сегодня вы меня прям все радуете (я имею в виду вас и статью про интеграцию дажнго в гугл апс энжин)=) Я уже с месяц потихоньку изучаю питон и джанго и любой хороший материал читается с интересом. А тут такой замечательный материал!
Браво, жаль не могу дать плюшку.
Браво, жаль не могу дать плюшку.
уже с месяц потихоньку изучаю питон и джанго
интересный момент который недавно отметили на конференции PyCon2008, который можно повсеместно наблюдать:
Очень много людей которые подсели на Django до этого никогда не разрабатывали с помошью Python
Браво ребятам с Djangoproject
К моему сожалению это правда: я не дооценивал красоту и прелесть Python'а до тех пор, пока не увидел бенчмарки фреймворков, где Django равал в колчья php'шных монстров. Потом покопав материалы по Python'у я обнаружил, что это именно то, о чем я очень долго мечтал - быстрый, изящный и объектно-ориентированный. А его возможности работы с нативными С библиотеками добавляют неповторимый шарм.
Вообще идеология Pyhton'а и Django идут бок в бок - удобство и изящность, при этом не в убыток скорости.
Вообще идеология Pyhton'а и Django идут бок в бок - удобство и изящность, при этом не в убыток скорости.
На самом деле я делал сайты на Питоне (http://dpp.su/portfolio/tag/acesite3/) около полугода перед тем как начал изучать Django. Кроме этого делал сайты и на ПХП (http://dpp.su/portfolio/tag/php/), но при этом никакой фреймворк не использовал.
Когда я решил посмотреть какие фреймворки для ПХП и для Питона существуют я перепробовал наверное с десяток. По-моему секрет успеха джанги в следующем:
* хорошая скорость out-of-box (т.е. если при программировании придерживаться идеологии джанги то не придется танцевать с бубном вокруг своего детища после прихода десяти посетителей одновременно).
* хороший quick start tutorial дающий представление обо всех частях системы.
* хорошая документация - это по-моему самое главное (имхо, документация джанги намного лучше документации самого питона).
* продуманная архитектура - практически ничего из написанного в документации не вызывает отторжения.
* продуманная структура - как и архитектура достигается при помощи правильного использования общепринятых паттернов проектирования.
Как я уже писал чуть выше:
Я допускаю, что для ПХП тоже есть грамотные фреймворки. Наверное, я их просто не нашел. Но с другой стороны - питон позволяет намного больше. Когда я только сел на питон - мне многое не нравилось - казалось, что на пхп аналогичные проблемы я бы решал намного эффективнее. Но со временем пришло понимание, что если простые вещи действительно проще сделать на пхп, то сложные сделать на нем красиво уже практически не реально. Простой пример - для удобного ORM нужна перегрузка операторов сравнения, а в пхп ее просто нет. (Кстати, в джанге ORM не очень удобный - многовато "магии".)
Когда я решил посмотреть какие фреймворки для ПХП и для Питона существуют я перепробовал наверное с десяток. По-моему секрет успеха джанги в следующем:
* хорошая скорость out-of-box (т.е. если при программировании придерживаться идеологии джанги то не придется танцевать с бубном вокруг своего детища после прихода десяти посетителей одновременно).
* хороший quick start tutorial дающий представление обо всех частях системы.
* хорошая документация - это по-моему самое главное (имхо, документация джанги намного лучше документации самого питона).
* продуманная архитектура - практически ничего из написанного в документации не вызывает отторжения.
* продуманная структура - как и архитектура достигается при помощи правильного использования общепринятых паттернов проектирования.
Как я уже писал чуть выше:
Главное приемущество Django - это стройная, логичная и стандартная сруктура решения проблем.
Я допускаю, что для ПХП тоже есть грамотные фреймворки. Наверное, я их просто не нашел. Но с другой стороны - питон позволяет намного больше. Когда я только сел на питон - мне многое не нравилось - казалось, что на пхп аналогичные проблемы я бы решал намного эффективнее. Но со временем пришло понимание, что если простые вещи действительно проще сделать на пхп, то сложные сделать на нем красиво уже практически не реально. Простой пример - для удобного ORM нужна перегрузка операторов сравнения, а в пхп ее просто нет. (Кстати, в джанге ORM не очень удобный - многовато "магии".)
А в сторону ASP.NET не смотрели? Интересно узнать мнение профессионала с огромным опытом.
А зачем Microsoft, когда есть красивые бесплатные распространенные вещи?
На самом деле - смысл есть. Точнее он может быть и надо оценивать в каждом конкретном случае.
Когда я работал в веб-студии "на потоке" я понял, что до какой-то степени в жертву скорости разработки можно принести очень многое. Пусть оно кривое, противное и тормозное, но если оно позволяет быстро сшибать деньги с неопытных клиентов - его надо использовать. Конечно халтура возможна только во время становления рынка (либо при монополии). А сколько и чего ты согласен принести в жертву - каждый решает сам. Мне, например, просто противно производить неликвид. И надо быть готовым, что Ваши клиенты могут очень быстро из Вас вырости (как из ползунков).
Когда я работал в веб-студии "на потоке" я понял, что до какой-то степени в жертву скорости разработки можно принести очень многое. Пусть оно кривое, противное и тормозное, но если оно позволяет быстро сшибать деньги с неопытных клиентов - его надо использовать. Конечно халтура возможна только во время становления рынка (либо при монополии). А сколько и чего ты согласен принести в жертву - каждый решает сам. Мне, например, просто противно производить неликвид. И надо быть готовым, что Ваши клиенты могут очень быстро из Вас вырости (как из ползунков).
Никому не в обиду, просто у нас в стране по крайней мере, как мне кажется .NET web-разработчик получает больше, чем обычный web-разработчик. Понятно что фирмы и заказчики бывают разные, но в среднем ситуация помоему именно такая.
Собственно я сам писал на PHP почти 3 года, после чего ушел в мир .NET т.к. предложили больше денег.
Собственно я сам писал на PHP почти 3 года, после чего ушел в мир .NET т.к. предложили больше денег.
ничего не могу сказать. я не пересекался с миром .NET и не интересовался ситуацией с зарплатами.
У меня есть только один знакомый дотнетовец. Да, он умеет рубить бабло. Но больше всего меня убило (прости, чувак, если эты это читаешь, но я запомнил это на всю жизнь) когда он не смог нарисовать блок-схему цикла. По-моему понимание основ это очень важно. То, что микрософт позволяет нам не думать о том как это устроено это конечно хорошо, но имхо это очень сильно отражается на качестве кода.
Оффтопик: а-а-а-а! ты предал свою аватарку! :)))
У меня есть только один знакомый дотнетовец. Да, он умеет рубить бабло. Но больше всего меня убило (прости, чувак, если эты это читаешь, но я запомнил это на всю жизнь) когда он не смог нарисовать блок-схему цикла. По-моему понимание основ это очень важно. То, что микрософт позволяет нам не думать о том как это устроено это конечно хорошо, но имхо это очень сильно отражается на качестве кода.
Оффтопик: а-а-а-а! ты предал свою аватарку! :)))
Нет, тогда уж C++ и QT :)
мне тоже казалось что наибольшие зарплаты у жавы. наверное потому что основно потребитель - банки.
на счет зарплат тоже согласен. имхо, пока молодой и есть силы я лучше буду заниматься тем, что нравится. хороший специалист в любой области будет получать хорошую з/п. понятно, что в некоторых областях прийдется приложить намного больше усилий чтобы доказать что ты "хороший".
на счет зарплат тоже согласен. имхо, пока молодой и есть силы я лучше буду заниматься тем, что нравится. хороший специалист в любой области будет получать хорошую з/п. понятно, что в некоторых областях прийдется приложить намного больше усилий чтобы доказать что ты "хороший".
эээ... мне очень стыдно, но у меня есть против него предубеждение. если честно, то все, что я о нем знаю это то, что он существует.
С учетом этого приведу свои доводы:
* платный. у меня нет тысяч долларов на покупку windows server, mssql server, visual sudio, msdn и прочих продуктов микрософта. использовать ворованый софт и пытаться продать то что ты при помощи него сделал - получается как-то не очень.
* дорогой хостинг - менее распространен, выше требования.
* допустим я захотел его изучать. единственный верный путь - сделать на нем что-либо. что делать? сколько будет стоить хостинг и софт? а ведь первый блин наверняка будет комом...
* комьюнити. сама идеология opensource строится на бескорыстии и взаимопомощи. по-моему шанс получить бесплатную, но *квалифицированную* консультацию в случае opensource намного выше. да, размер комьюнити может быть больше - выучить проще, микрософт позаботился о комфорте разработчика - но каков средний уровень членов?
* уровень контроля. в opensource ты всегда можешь дойти до сути того как что-либо работает или почему что-то работает медленно. в случае с продуктами от мс - максимум до чего ты можешь "докопаться" - это до авторитетного высказывания, что "это лучше не использовать".
я могу перечислять своизаблуждения мысли еще долго, но суть такова: я считаю, что микрософт делает хорошие продукты для пользователей. Цитата с баша:
Вот и получается что ты пользуешся средствами разработки, а не разрабатываешь программы :)
это все мое имхо и я нарочно утрирую. не воспринимайте слишком серьезно.
С учетом этого приведу свои доводы:
* платный. у меня нет тысяч долларов на покупку windows server, mssql server, visual sudio, msdn и прочих продуктов микрософта. использовать ворованый софт и пытаться продать то что ты при помощи него сделал - получается как-то не очень.
* дорогой хостинг - менее распространен, выше требования.
* допустим я захотел его изучать. единственный верный путь - сделать на нем что-либо. что делать? сколько будет стоить хостинг и софт? а ведь первый блин наверняка будет комом...
* комьюнити. сама идеология opensource строится на бескорыстии и взаимопомощи. по-моему шанс получить бесплатную, но *квалифицированную* консультацию в случае opensource намного выше. да, размер комьюнити может быть больше - выучить проще, микрософт позаботился о комфорте разработчика - но каков средний уровень членов?
* уровень контроля. в opensource ты всегда можешь дойти до сути того как что-либо работает или почему что-то работает медленно. в случае с продуктами от мс - максимум до чего ты можешь "докопаться" - это до авторитетного высказывания, что "это лучше не использовать".
я могу перечислять свои
понимаешь, в линуксе по умолчанию считается, что администратор умнее, чем система, а в винде, бля, наоборот!
Вот и получается что ты пользуешся средствами разработки, а не разрабатываешь программы :)
это все мое имхо и я нарочно утрирую. не воспринимайте слишком серьезно.
та уже можно....
http://pecl.php.net/package/operator
http://pecl.php.net/package/operator
Помоему таких результатов ребята "джанговцы" достигли благодаря стройности и логичности предлагаемых решений. Почти всегда есть простой и красивый one way to do it =)
В Django данные только pull'яться? о_О
Хм, я погорячился.
Другой вопрос - насколько логично плодить теги на каждый чих, и чем это лучше использования концепции компонентов, или тега cache и глобального сервиса?
Другой вопрос - насколько логично плодить теги на каждый чих, и чем это лучше использования концепции компонентов, или тега cache и глобального сервиса?
Абсолютно логично
На второй вопрос не ответите? А то в упор не понимаю, как это кэшируется между разными запросами :(
Эээм. Мне сложно отвечать за автора :) Тему кэширования, он, конечно, не раскрыл. Видимо, начав писать про кэширование, dpp, пришел к выводу что вначале неплохо бы рассказать про джанго-шаблоны вообще.
Я думаю, он еще напишет пост :) Если не терпится, возможно эта ссылка чем то поможет, хотя я особо не тешу себя надеждой :)
Я думаю, он еще напишет пост :) Если не терпится, возможно эта ссылка чем то поможет, хотя я особо не тешу себя надеждой :)
спасибо что обратили внимание, а то бы так и не заметил )) я так увлекся описанием того как это устроено что забыл написать что "это".
Вы абсолютно правы. сначала я хотел просто комментарий с примером написать к статье про кеширование. потом подумал что все равно джангу мало кто знает и поймет что я написал. а поскольку умничать я не люблю решил написать подробно.
сейчас попробую исправиться =)
Вы абсолютно правы. сначала я хотел просто комментарий с примером написать к статье про кеширование. потом подумал что все равно джангу мало кто знает и поймет что я написал. а поскольку умничать я не люблю решил написать подробно.
сейчас попробую исправиться =)
Т.е. в данных примерах там вообще ничего не кэшируется.
Спасибо, очень кстати
Опять двадцать пять. Видно нравится изобретать велосипед :)
Блин есть массив данных
Путём рекурсивной функции получаем из него xml
Путём xslt - получаем из xml данных xhtml - шаблон.
Всё просто, достаточно написать пару функций. Изучить пару технологий. И куча всяких самопальных шаблонов не будет нужна :)
Блин есть массив данных
Путём рекурсивной функции получаем из него xml
Путём xslt - получаем из xml данных xhtml - шаблон.
Всё просто, достаточно написать пару функций. Изучить пару технологий. И куча всяких самопальных шаблонов не будет нужна :)
Да, нравится =) последний раз я этим занимался тут. Считаю, что велосипедостроение помогает понять структуру и архитектуру велосипедов "от производителя" лучше всего остального.
>Блин есть массив данных
По-моему один из нас чего-то недопонимает. Дело в том, что массива-то нету 8-(
Если из базы в xml доставать весть каталог товаров... сами понимаете что будет. Идея этих двух статей была именно в том, чтобы избавиться от выборки данных (которая может быть очень ресурсоемкой), но при этом не порушить целостность архитектуры.
>Блин есть массив данных
По-моему один из нас чего-то недопонимает. Дело в том, что массива-то нету 8-(
Если из базы в xml доставать весть каталог товаров... сами понимаете что будет. Идея этих двух статей была именно в том, чтобы избавиться от выборки данных (которая может быть очень ресурсоемкой), но при этом не порушить целостность архитектуры.
Знаете, у меня есть ощущение, что если бы все было так хорошо, то все бы давно так давно делали.
Заставлять простых людей писать шаблоны на xslt? Заставлять программистов всё переводить в xml? Да вы, батенька, садист! :)
Э, нет, не о том мой "велосипед" был!
У меня там вместо этих блоков было бы $this->render_action('list', 'article');
Это не то.
Покажите-ка, пожалуйста, кэширование списка статей на странице списка статей. Вот на blog/index.htm в Вашем примере.
У меня там вместо этих блоков было бы $this->render_action('list', 'article');
Это не то.
Покажите-ка, пожалуйста, кэширование списка статей на странице списка статей. Вот на blog/index.htm в Вашем примере.
за иллюстрации к посту большое спасибо, очень наглядно получилось. ждём раскрытия темы кеширования, тоже с картинками)
спасибо большое за статью!
Оффтопик:
Хабралюди! Чем вы кормите мои комментарии? Никак не могу понять почему джанга срыгивает некоторые из них.
Если у Вас не получилось отправить какой-то комментарий прошу написать мне об этом по хабропочте или на dpp at dpp.su. Спасибо.
Хабралюди! Чем вы кормите мои комментарии? Никак не могу понять почему джанга срыгивает некоторые из них.
Если у Вас не получилось отправить какой-то комментарий прошу написать мне об этом по хабропочте или на dpp at dpp.su. Спасибо.
Для тех кто хочет использовать шаблонизаторы с наследованием под Питон, но не в контексте Джанго - есть такая штука как Mako Templates
Отлично, что вместо перевода документации, вы решили показать много-много реальных примеров в доступной форме :) Хоть вещи и простые, но спасибо, мой приятель будет рад, он как раз на наследовании застрял.
Sign up to leave a comment.
Шаблоны Django. Наследование.