Новый сервис: код "с нуля" или php-фреймворк?
=========================================================

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

Стоит ли заморачиваться и делать такой сервис на основе какого-либо php-фреймворка? И если да, то какого? 

 Всё зависит от разработчика. Если он хорошо знаком с каким-либо фреймворком — то, конечно, лучше и быстрее использовать готовое решение. Если нет, и нужен «быстрый старт» не заморачиваясь на проблемы поддержки, расширяемости и «незаменимых людей» то конечно лучше «с нуля». Тем более что практически у любого программиста есть наработки из которых он довольно быстро соберёт вам несложную систему.  

  

Хотя в конечном счёте если вы расчитываете на сколько-нибудь серьёзное и продолжительное развитие проекта лучшим выбором будет любой популярный фреймворк. На самом деле — любой, так как скорость работы в итоге зависит от рук а не от инструмента. Причины следующие:  

 — Существующая документация и коммюнити. Избавит от проблемы «незаменимости» в случае текучки в команде.   

 — Покрытие тестами. Все популярные фреймворки покрыты юнит тестами и поддерживают автоматическое тестирование для модулей.  

 — Гораздо меньшее кол-во «сокрытых граблей». Это проблемы расширямости и всякие неприятные баги «ядра» системы. В популярных фреймворках они либо решены либо быстро исправляются. В «самописном» коде эти проблемы будут довольно сильно тормозить разрабоку собственно функционала. 

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

 помоему писать код с нуля не используя фреймворк стоит только в том случае если вы пишите фрэймворк. И то не всегда. 

 Используйте фреймворк, самописную лапшу оставьте для экспериментов ;) 

 мне кажется тут наибольшее влияние все-таки оказывает подход к кодингу  

  

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

  

мой знакомый — наоборот тащится от разных технологий и готовых решений  

он мог бы сделать небольшой проект быстро и красиво на хорошем фреймворке — и ему этот процесс принес бы не меньшее удовольствие  

  

так что, имхо, больше зависит от человека 

 Если важна скорость, то лучше [Yii](http://www.yiiframework.com/) нету.  

По нему есть отличная документация на рус.: [yiiframework.ru/](http://yiiframework.ru/) 

 При вашем разностороннем функционале особой разницы в эффективности между фреймворком или самописным кодом не будет. И там и там придётся что-то дописывать.   

  

Если знания позволяю советую писать с нуля, иначе используйте фреймворки. 

 Как раз написание с нуля — это заморочки :) 

 пайлот делать на фреймворке/цмс, как появятся клиенты и доходы — переписывать с нуля… 

 А CMS не хотите использовать? 

 Если нужна скорость работы скриптов то конечно самому писать, если нужна скорость разработки то фреймворк.  

Про фреймворки написано на хабре тут  

[habrahabr.ru/blogs/php/50341/](http://habrahabr.ru/blogs/php/50341/) 

 Согласен с . От себя еще посоветовал бы Zend Framework, возможности широкии да материалов по нему предостаточно 

 советую рассмотреть третий вариант:  

  

выбирать не full stack-фреймворк, а решения конкретных типовых задач: они не диктуют, как делать проект, но позволяют не наступать на типовые грабли, уже отполированные лбами тысяч разработчиков.  

  

Например, ORM — одна из областей, в которых велосипеды наименее оправданы: выбирайте из готовых (советую Doctrine) — она и без фреймворка работает.  

  

И так по списку можно попробовать определить и закрыть максимум типовых потребностей, например,  

unit-тестирование — PHPUnit, SimpeTest, Lime,   

почта — Zend mailer, Swift,   

и т.п.  

  

В результате получите хотя бы варианты standalone-решений, и даже готовые фреймворки/CMS сможете оценивать на совместимость с этими вариантами.