Моя библиотека - социальная сеть любителей книг

Интро

Я уже долгое время мучаюсь выбором php-framework‘а. Я испробовал почти все более-менее известные FW. И все было не то. В одном не нравится его аскетизм. В другом дикая сложность развертывания. В третьем не устраивает скорость разработки приложений и т. д.

Выход есть!

И вот после длительных поисков я нашел его!

Прошу любить и жаловать:

Да, это немного не PHP, но это даже к лучшему. Нельзя зацикливаться на одной технологии, надо постоянно развиваться и искать новые пути решения повседневных проблем.

Не буду описывать как я пришел к такому выбору, просто скажу что FW очень логичен и быстр. Обладает очень шустрым ORM, который освобождает программиста от большей части рутинной работы, позволяя полностью сосредоточить свои силы на разработку приложения.

Пока я разбираюсь с Django чуть более недели и мне все нравится. Я понимаю, что идеальных вещей не бывает и в нем тоже найдется куча минусов, но плюсов я нашел пока больше =)

Планы

И так чтоб оправдать свой выбор, я решил “угробить” все свои новогодние каникулы. А заодно, я уговорил своего коллегу (за что ему огромное спасибо) “угробить” их вместе.

В общем план прост: сделать вдвоем за 10 — 14 дней проект некой социальной сети. Если все получится, то с нового года, наш отдел перейдет с самописного фрэймворка на PHP на Django.

Вот такие “наполеоновские планы”.

Ссылки по теме

Update (21.12.2008):

Нашел еще один сайт по Python & Django. А на одной из его страниц собрано много интересных ссылок. В общем, дорогие читатели, давайте учиться вместе! )))



Комментарии (31) на запись «Выбор сделан!»

  1. Andrey MonsterID Icon Andrey | 19.12.2008 в 18:05

    Ты забыл о lunux’e который мы 27 будем ставить ;)

  2. Larin MonsterID Icon Larin | 19.12.2008 в 18:09

    Точно! Возможно переходу на Django будет еще сопутствовать и переход на Linux =) Кто знает?..

  3. Sergey MonsterID Icon Sergey | 19.12.2008 в 19:56

    Если хотите делать социалку на Джанго, посмотрите вот это: http://pinaxproject.com/

    Копипастить может и не будете, но почва под ногами в виде набора готовых моделей у вас будет.

  4. Larin MonsterID Icon Larin | 19.12.2008 в 20:15

    Я уже видел это, мне не подходит.
    И тем более учитывая, что я хочу разобраться с Джанго, то лучше многие вещи написать самому.

  5. Михаил MonsterID Icon Михаил | 19.12.2008 в 21:25

    А насколько реально разобраться без знаний Python? =) Т.е. глубоких знаний а то я когда то решил его попробовать но дальше чем генераций моделей изучение не продвинулось ))

  6. Larin MonsterID Icon Larin | 20.12.2008 в 01:29

    Конечно не реально ))) Разве Вы способны разговаривать на итальянском языке, если Вы его не знаете.

    Но как раз-таки это не проблема: когда знаешь 1-2 языка, остальные учатся быстро =)

    К нам (ко мне и Андрею) уже едут 2 книги “Изучаем Python, 3-е издание“, я думаю, нам их будет достаточно =) По мне так в Питоне очень много сходного с php. Думаю, проблем быть не должно.

    Если же у Вас проблемы с изучением нового языка, то тем более советую его учить - это развивает )

  7. Сергей MonsterID Icon Сергей | 20.12.2008 в 22:53

    Larin, но это не означает, что не стоит подглядывать в исходники других разработчиков :)
    Особенно на первых парах.

    А в целом, желаю удачи. Джанго стоит внимания, это правда.

  8. Larin MonsterID Icon Larin | 21.12.2008 в 01:10

    Сергей, а разве я говорил, что не стоит смотреть чужой код? Его стоит смотреть всем, не только новичкам. Если завести себе такое правило, то почти каждый день можно узнавать что-то новое.
    Я так JavaScript выучил ))) На чужих примерах )

    Спасибо, надеюсь (уже в новом году) смогу сказать, что все получилось )

    З.Ы.: а вы сами судя по блогу на Django разрабатываете?

  9. Михаил MonsterID Icon Михаил | 21.12.2008 в 04:25

    Я не говорю что не знаю питон )) просто в дебри я не лез, при разработке мало требуется. Кстати книга у меня эта есть), тоже без дела валяется. Насчет развития поэтому и спрашиваю, хотя честно сказать и symfony пока хватает.

    По мне так в Питоне очень много сходного с php.

    Ну у них общий родитель Perl, может поэтому =)

  10. Larin MonsterID Icon Larin | 22.12.2008 в 12:19

    Симфони мне давно не хватает - по скорости работы… уж О-ОЧЕНЬ он медленный. Ну очень )

  11. Михаил MonsterID Icon Михаил | 22.12.2008 в 21:34

    Ну как вам сказать, тут как не крути а php некий стандарт де-факто на (мелких средних проектах), и к примеру имхо сравнить симфони и другие фреймворки пхп к примеру для разработки CRM систем или систем учета, или не очень стандартных решений, имхо небо и земля, все таки он писался по примеру таких решений как рор и джанго, а остальные по принципу __закатаем рукава, днем и ночью кодить будем__. Поэтому скорость страдает хотя я счас тестирую 1.2 версию и CodiIgniter последний, честно сказать скорость минимально отличается у симфонии, при созданной модели и работу через ORM, при этом у CI ничего не создано и просто вывод нескольких строк. При этом акселератор не стоит и ничего не кешируется для симфони,.. а скорость всего 2,5 раза отличается
    Ясное дело что на хост за 300руб симфони бесполезно ставить, ..
    Ну ладно, чет я отошел от темы, наверно следующим и буду учить джанго.

  12. Andrey MonsterID Icon Andrey | 23.12.2008 в 02:41

    Немного приоткрою карты как мы выбирали framework(fw). Изначально было 3-и кандидата CodiIgniter(CI), ZendFramework(ZF) и Symfony. CI - выбыл сразу т.к. по скорости и возможностям уступает нашему. ZF - очень похож на наш текущий, но кроме документации и пару модулей, которые можно встроить в “наш” framework, ничем особым не отличается, минус ZF - это тормоза! Symfony - плюс, они же грабли это ORM. Т.е. если выкинуть из symfony ORM, то никаких плюсов мы не получим…. Собственно ситуация тупиковая. Нам нужен был framework c документацией(у нас её нет), не тормознутый + нам важна скорость разработки,у нас она так же хромает из-за особенностей нашего fw. Минусы нашего fw, это остсутствие документации, не дописанность домена;), нет классов Request/Resonse (мне оч нужны они ;)). Что бы написать всё то, что нам нехватает надо примерно месяц, и не факт что скорость работы у нас увиличится. Собственно посмотрев на django, и было принято решение юзать его! Т.к. минусов там замечанно не было….

  13. Larin MonsterID Icon Larin | 23.12.2008 в 16:42

    Михаил, а на каких объемах данных вы проводите тесты? Сколько миллионов записей в таблицах тестируемого приложения? На сколько сложна модель предметной области?

    Вот когда появится “объем” и “сложность” Симфони и начнет тормозить, а программист на CodiIgniter вообще умрет от сложной предметной области ))) В которой скажем, хотя бы 40 моделей.

    Andrey, скоро мы узнаем и минусы =)

  14. Михаил MonsterID Icon Михаил | 24.12.2008 в 02:27

    Symfony - плюс, они же грабли это ORM. Т.е. если выкинуть из symfony ORM, то никаких плюсов мы не получим….

    Да от ORM существенно страдает скорость, но как не крути тут нужно выбирать между гибкостью и производительностью.
    Но это не единственный плюс, есть еще проуровневая конфигурация(на уровне модулей, приложений, общая), плагины некое подобие с Джанго, фильтры, отлично реализован сам принцип рефакторинга когда нужно к примеру чтот отладить потому что из-за какого то метода на юнит(функциональном) тесте провалилось приложение, т.е. я не боюсь потерять данные даже при полной перегерации модели. Ну и шелл конечно, хотя тут уже как кому, некоторым CRUD легче вручную создавать, и выгружать несколько тысяч записей, через phpmyadmin нежели написать цыкл в yml файле и выгрузить сразу. Все это конечно влияет на скорость. Распарсивание, перегенерация итд. …

    Михаил, а на каких объемах данных вы проводите тесты? Сколько миллионов записей в таблицах тестируемого приложения? На сколько сложна модель предметной области?

    Вот когда появится “объем” и “сложность” Симфони и начнет тормозить, а программист на CodiIgniter вообще умрет от сложной предметной области ))) В которой скажем, хотя бы 40 моделей.

    Модель всегда можно разделить ;) И оставить вместо 20 общих методов, 5 для каждого модуля. Я выше об этом писал.
    Я как вы думаете на каких объемах я провожу тесты? Конечно же не ютуб,.. да хотя бы один тест найдите мне на просторах нэта, где тестеры оперируют миллионами строк. Их нет. Никто не будет тратить время на реализацию этого для open source, юзеры - это тестеры.
    Вот приложение на Джанго torontolife.com, зайдите на офф сайт симфони там есть список тоже таких порталов на уровне mtv-шных сайтов разных стран, которые беспрепятственно работают именно из-за удачного проектрования, и распеределение нагрузок на уровне моделей разработчиком(ами).

    .. да переходите на линукс, для разработчика он дружелюбнее особенно на питоне. ))

  15. Andrey MonsterID Icon Andrey | 24.12.2008 в 11:55

    .. да переходите на линукс, для разработчика он дружелюбнее особенно на питоне. ))

    Ну я уже перешёл! и Толю подбиваю ;)
    Мы не только на работе разрабатываем ;)(там на железо относительно пофиг), но и для себя, где железо критично!

  16. Larin MonsterID Icon Larin | 24.12.2008 в 12:41

    Михаил, спасибо за столь подробный ответ. Из PHP-фрэймворков я сам, больше всего поглядывал в сторону Symfony. Но когда увидел практически все тоже самое в Джанго, мое сердце не выдержало ))) Мне показалось, что для освоения Джанго легче, не смотря на то, что PHP я знаю очень хорошо, а Python только пару раз видел.

    .. да переходите на линукс, для разработчика он дружелюбнее особенно на питоне. ))

    А вот этот вопрос очень спорный. Как говорит, один наш коллега: “Удобство - дело привычки“. Так вот, я очень привык к Винде, мне в ней нравится практически все, не устраивает только недоразвитая консоль )
    Я на этих выходных ставил себе на ноут Ubuntu 8.10. Установил, поднастроил и вроде все ОК. Но!

    • У меня почему то жутко тормозит FF при скролинге, при том что он вообще без плагинов.
    • По умолчанию устанавливается глючная java-машина, так что Eclipse вываливается чуть ли не каждые 5 минут.
    • Мышь просто в куматозе ) Я привык к своей Microsoft Explorer Mouse, я привык что она чутко следит за моими манипуляциями и ОЧЕНЬ резво отвечает на мои действия. В Ubuntu же как я ни бился мне не удалось заставить мышку работать так же резво. Мне не удалось сделать ускорение скролла и т.д. И из-за этого складывается субъективное впечатление, что система тормозит.

    Я конечно попробую, установить Ubuntu на рабочей машине (она раз в 5 мощнее чем мой ноут)) посмотрим, что из этого выйдет.

  17. Михаил MonsterID Icon Михаил | 24.12.2008 в 14:06

    Я когда ставил первый раз линукс, это была версия убунту 7 мне вроде бы все понравилось но я тоже жутко тогда был приучен к винде, бесило многое, особенно sans шрифт везде, но терминал радовал, недельку поиграл и снес. Но потом вышла 8 версия, захотелось поставить не знаю почему даже, когда я пересел второй раз мне как то даже удобно было, решил винду оставить только из-за 4 программ, photoshop & multipleIE(верстка), fl studio(хобби), wm keeper(мани). И оказалось что этого мне достаточно .. Про виртуал бокс знаю, но не люблю извращаться, и 10gb для винды не жалко, так и сижу у же не так долго и о назад даже не думаю.
    Так что _Удобство - дело привычки_ это точно.
    ФФ вроде не тормозит, а вот флэш плэер 10 ведет себя по разному на плэере zombobox-a есть тормоза, на ютубовском все ок, даже на баннерах есть иногда торможение, что заставляет ФФ тупить. Это минус. А эклипс я не юзаю, как то старой привычке еще сижу на Zend for Eclipse.

    Ладно как то еще загляну )), надеюсь отпишитесь как там с Джанго а то ведь интерестно ..

  18. Andrey MonsterID Icon Andrey | 24.12.2008 в 16:13

    Я когда ставил первый раз линукс, это была версия убунту 7

    - поставте red hat 9! вот это были шрифты!

    Zend for Eclipse

    - тот же Eclipse только с плагином от зенда ;)

    wm keeper(мани)

    - lite версия отлично работает под линуксом!

  19. Михаил MonsterID Icon Михаил | 24.12.2008 в 18:12

    - поставте red hat 9! вот это были шрифты!
    - тот же Eclipse только с плагином от зенда ;)
    - lite версия отлично работает под линуксом!

    - Как то уже к gnome привык, если честно, да и шрифты тоже не проблема настроить. Хотя посмотрел скрины круто смотрится.
    - Насчет Zend-a в курсе, даже не знаю почему его использую ))
    - Конечно я могу ошибаться, но легкая версия, требует сертификат? или нет? Купил бы если бы не так далеко от центров wm жил, а ехать не охота )) И еще слышал что могут залочить если суммы больше 1к у.е., а я фрилансер, и все деньги тока туда ;) не хочется как то облажатся )) Поправьте если не прав.

  20. Larin MonsterID Icon Larin | 24.12.2008 в 18:44

    И еще слышал что могут залочить если суммы больше 1к у.е., а я фрилансер, и все деньги тока туда ;) не хочется как то облажатся )) Поправьте если не прав.

    Не прав, я и с большими суммами нормально работал, когда плотно сидел на фрилансе, все ОК.

  21. Andrey MonsterID Icon Andrey | 24.12.2008 в 18:45

    Михаил, по wm проще в поддержку написать… я h3 какие там ограничения :)
    Толь, имеется ввиду Lite версия которая браузерная

  22. Snowcore MonsterID Icon Snowcore | 29.12.2008 в 11:34

    Согласен, что нельзя засиживаться на одной технологии - я решил двигаться в направлении Ruby.

  23. Larin MonsterID Icon Larin | 29.12.2008 в 20:12

    А почему именно Ruby? Ведь скорость он не блещет, хостингов под него практически нет, если только VDS.

    Какие у него объективные плюсы, например, перед Django?

  24. Павел MonsterID Icon Павел | 10.01.2009 в 13:36

    Меня приятно удивил по скорости работы FW Kohana. Функционала не много, зато все просто и быстро. Хорошая основа для приложения.
    Я тоже пересел на linux с убунты 8, для кода использую eclipse (spket, aptana) и netbeans. По мелочи gedit )
    Ruby меня привлекает больше чем python, наверно синтаксисом

  25. Larin MonsterID Icon Larin | 11.01.2009 в 10:30

    Павел, Kohana это всего лишь, немного модифицированный CI, со всеми вытекающими ))) По функциональности он не дотягивает до Symfony, Django & RoR.
    Да и по сравнению с Джанго он медленный )))

    Я тоже пересел на linux с убунты 8

    А вот этого что-о не допонял… как можно пересесть на линух с убунты?

    Ruby меня привлекает больше чем python, наверно синтаксисом

    Синтаксис это мелочь, к любому синтаксису привыкаешь, максимум за месяц. Точнее если синтаксис нравится привыкаешь за пару дней, если нет - за неделю )))

  26. xoma MonsterID Icon xoma | 11.01.2009 в 21:30

    может быть посмотрите на yii http://www.yiiframework.com/

  27. Larin MonsterID Icon Larin | 11.01.2009 в 21:53

    xoma, сморел. Но мне не понравилась работа с моделями:

    
    class Post extends CActiveRecord
    {
        public static function model($className= __CLASS__ )
        {
            return parent::model($className);
        }
    }

    Уж очень не красиво это выглядит, если сравнивать с Django ActiveRecord.

    PHP я конечно бросать пока не собираюсь, но в ближайшее время все основные силы будут брошены на освоение Django.

    Т.к. 10-дневные каникулы уже дали свои плоды и я могу уже с уверенностью сказать: Django действительно увеличивает скорость разработки. Причем на порядок!

  28. Larin MonsterID Icon Larin | 14.01.2009 в 15:09

    И в дополнение к мотивации выбора Django.
    Тестирование производительности 6 популярных FW.

  29. Михаил MonsterID Icon Михаил | 15.01.2009 в 23:02

    Я кстати тоже начал Ruby осваивать, классный язык(не для холивара сказано) а там и к питону не далеко.
    А что касается > хостингов под него практически нет .. сорри но тут вы не правы, вот у меня куплены 3 хоста шэрд под сайты, не мелкие провайдеры, и на них как раз django нет, а рельсы есть ;)
    А насчет обьективности, я бы сказал, как самый обьективный не давно пришедший из пыха в руби, я сам не предполагал как это удобно писать на чистом ооп.
    Эта статистика достаточно старая, ее сейчас нельзя считать обьективной с любой стороны так как тестируются достаточно старые версии ПО.

  30. adw0rd MonsterID Icon adw0rd | 02.09.2009 в 10:02

    Нашел еще один сайт по Python & Django. А на одной из его страниц собрано много интересных ссылок. В общем, дорогие читатели, давайте учиться вместе! )))

    Мой блог есть там в списке :)

  31. adw0rd MonsterID Icon adw0rd | 02.09.2009 в 11:22

    Да я вот только первые недели знакомлюсь с django и вообще я поражен до глубины души, насколько там все просто и гибко… все жду граблей :)

Оставить комментарий


Copyright, 1983 – 2010