Обязательно ли использовать какой-либо фреймворк?

Здравствуйте.
Стоит задача написать бекенд для мобильного приложения(соц. сеть типа инстаграм), в качестве языка выбрал php(просто потому что инфы и примеров много в сети). Пока гуглил обнаружил тучу фреймворков, насколько понял большинство из них реализуют mvc-схему. Собственно, вопрос: в рамках моей задачи нужен ли вообще фреймворк? Бекенд планируется довольно типичный для подобного рода приложений: регистрация, авторизация, запостить что-нибудь свое, получить что запостили другие. Буду признателен за любые советы, ликбезы и напутствия.
  • Вопрос задан
  • 1458 просмотров
Решения вопроса 3
27cm
@27cm
TODO: Написать статус
Если проект будет активно развиваться, то без фреймворка не обойтись. Но давайте попробуем рассмотреть поближе разные варианты.

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

Но будьте готовы к тому, что выбранный фреймворк станет самой большой зависимостью в вашем проекте. Если через несколько лет вы решите сменить фреймворк, по трудозатратам это будет примерно равносильно смене языка программирования для проекта. Причины сменить фреймворк бывают самые разные: фреймворк устарел, не удается найти специалистов с опытом работы на данном фреймворке; фреймворк прекратил развиваться; фреймворк сильно замедляет работу приложения; возможностей фреймворка перестало хватать, а написание собственных модулей требует больших временных затрат.

2. Использование готового фрейморка, с которым вы никогда не работали
Готовьтесь потратить массу времени на его изучение. Порой даже на решение тривиальных задач в некоторых фреймворках придется потратить несколько дней, если вы с этим никогда не работали. По собственному опыту могу сказать, что если сравнивать варианты (2) и (4), то готовьтесь потратить в 3 — 4 раза больше времени. Однако у этого варианта есть и плюсы: вы освоите ещё один фреймворк и в следующих проекта сможете выбирать вариант (1), другим разработчикам знакомым с данным фреймворком будет гораздо проще разобраться в коде, последующая разработка и развитие проекта существенно ускорятся.

3. Использование собственного фреймворка
Рекомендуется только строго после того, как вы несколько лет поработали с разными фреймворками, точно знаете их недостатки, четко можете сформулировать, почему в данном проекте не подходит ни одно из готовых решений. Плюсов у такого решения масса, но основной — ваш фреймворк будет оптимальным образом решать именно ваши задачи, он не будет «комбайном», пытающимся угодить всем вокруг. Но и минусов хватает, крупные фреймворки как правило развиваются огромным сообществом, сотни и тысячи разработчиков ежедневно находят и исправляют в нем ошибки, расширяют функциональные возможности, улучшают производительность, заменяют устаревшие решения на новые.

4. Вообще без фреймворка
Такой проект сильно рискует превратиться в спагетти-код. Но абсолютное большинство новичков начинает именно с этого. В этом нет ничего страшного, если это ваш первый проект, вы освоитесь с языком и его возможностями, набьете кучу шишек, и неизбежно рано или поздно перейдете к вариантами (1), (2) или (3).
Ответ написан
razumkov2015
@razumkov2015
"Программист" https://vk.com/cgs_game
В вашем случае, если вы вообще не знакомы с фрейморками, то лучше не использовать. Хотя бы потому, что на их изучение вам потребуется время и при этом не факт, что оно окупится. + в таком проекте можно обойтись и без mvc
Ответ написан
t-alexashka
@t-alexashka
Сразу пишу legacy код
MVC достаточно тяжелая в плане производительности структура. Вам лучше использовать процедурные вызовы ф-ий, без классов/объектов, в общем избегать всего "тяжелого" что засирает память, как собственно и сделали команда vk - вообще урезав ф-л пхп до минимума. Можно найти их примеры в их сообществе разработчиков https://vk.com/kitphp

UPD.
Еще можно попробовать https://zephir-lang.com/ (зефир) это штука компилирующая пхп-код в C-расширения (.so, .dll) что еще добавит производительности, а еще там есть синтаксический сахар. Для высокопроизводительных приложений - самое то (из пхп).
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
solotony
@solotony
покоряю пик Балмера
фреймворк - это куча полезных библиотек, модулей. фреймворк - это готовый каркас для вашего приложения. используя фреймворк вы пишите только "бизнес-логику" вашего приложения.
Ответ написан
Sanes
@Sanes
Тиражные решения легче в поддержке.
Ответ написан
Комментировать
sim3x
@sim3x
На фреймворке не имеет смысла писать, если вы написали столько кода и имеет столько компетенции в смежных областях (защита/атака, sql, парсинг и процессинг запросов,...), что хватит на несколько фреймворков

Но такие люди не спрашивают - они сразу пишут

В итоге получаются у них получаются специализированные недофреймворки
Ответ написан
Комментировать
402d
@402d
начинал с бейсика на УКНЦ в 1988

выбрал php(просто потому что инфы и примеров много в сети)


Как я понимаю PHP в чистом виде вы не знаете.
Также тяжело оценивать ваш уровень знания программирования без привязки к языку.
Порог входа в PHP, конечно низкий, но все равно годик у Вас на это уйдет.
Без изучения фреймворка Вы очень долго будете писать велосипеды.
p.s. Выбор первого фреймворка сильно повлияет на Вас как специалиста.
Советую бегло ознакомиться с Codeigniter . Когда модель mvc станет для вас привычной, переходите к симфони или лаверал. YII не советую - имхо не сможете воспринимать, что-то другое.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы