Стоит ли писать свои велосипеды новичку?

Для начала: знаю синтаксис PHP, основы и общие понимания ООП, понимаю MVC паттерн, html/css, совсем немного javascript-а, MySql, написал сайтик на WordPresse, и вот решил начать изучение фреймворка(yii2 в моем случае).
Но до этого я не писал ничего такого на чистом PHP(простой блог, в котором небыло по сути никакой архитектуры(ну типа MVC), просто php файлы в одной папке подряд в счёт не беру).
Вопрос: стоит ли мне писать что-то своё с 0, на чистом PHP, но с использованием паттернов, или продолжать изучение работы фреймворка и использовать готовые решения для своих нужд, вырасти к мидл разработчику и только тогда пробовать писать что-то подобное? Подскажите пожалуйста.
  • Вопрос задан
  • 748 просмотров
Решения вопроса 2
trevoga_su
@trevoga_su
Сейчас священная война начнется. На, недавно только было -- Свой блог с нуля, правильно ли это?

понимаю MVC паттерн

- Здравствуйте, доктор! У меня проблемы.
Доктор (пишет что-то в истории болезни):
- Присаживайтесь, голубчик... Рассказывайте.
- У меня... погасший взгляд... И дёргается правое плечо!
Доктор (продолжая писать):
- Валерьянка и две таблетки пофигина на ночь - и как рукой, как рукой...
- Ночами мне снится, что я строю подземные пирамиды в Тоскане. Меня страшно беспокоит сохранность фресок и поведение связующего раствора в контакте с грунтовыми водами...
Доктор (поднимает глаза):
- Что вы говорите! А чем армируете фундамент? Очень рекомендую скрученные по четыре калёные прутья - веками, знаете ли, обкатанный приём...
- Доктор, что-то идёт не так... На определителе телефоны людей, которые мне не звонили, все слова на вывесках и афишах, за которые цепляется взгляд - однокоренные...
Мой хомяк не разговаривает со мной четвёртый день, он неподвижно сидит в углу клетки и смотрит на меня взглядом барлога, целящегося в Гэндальфа кончиком бича...
- Какой, однако же, начитанный зверёк! Вы не пробовали давать ему русскую классику?
- Доктор, я чувствую и понимаю женщин...
Доктор (роняя очки на стол, вполголоса):
- Оп-паньки...
Ответ написан
customtema
@customtema
arint.ru
Конечно нужно!

Только не вздумайте брать с кого-нибудь деньги за это. Инвестируйте в свое обучение самостоятельно. Получите великолепный опыт.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@newpy
web-dev
написал сайтик на WordPresse

Сайтик на Wordpress не дает ровно никакого понимания об ООП и MVC. Вы можете себе ответить на вопрос чем отличается абстрактный класс от интерфейса? Что такое статические методы и свойства? Нет? Восполните этот пробел до того как возьметесь за фреймворки.

совсем немного javascript-а

Я советую восполнить этот пробел раньше чем возьметесь за фреймворки.

Mysql

Вы можете не мне, а себе, без заглядывания в литературу дать ответ на вопрос - чем отличается LEFT/RIGHT JOIN, INNER/OUTER JOIN? Это простой вопрос, и если вы не можете на них ответить, нужно восполнить этот пробел раньше чем браться за фреймворки.

Вопрос: стоит ли мне писать что-то своё с 0, на чистом PHP, но с использованием паттернов

Ради обучения и проверки того, действительно ли вы понимаете MVC - да стоит. Напишите, выложите код на Github. Потом предложите здесь, или где-либо еще, чтобы более опытные товарищи оценили ваш подход, получите порцию критики или наоборот волну одобрения. В первом случае - это сигнал к более тщательному изучению тех моментов на которые вам укажут, во втором - сигнал к тому что можно браться за любой существующий на сегодня фреймворк.

Велосипеды писать не стоит. Их и так достаточно и вам придется их писать, т.к. фреймворк всего лишь инструмент и решать все бизнес-задачи или реализовать логику он не может, вам собственно как программисту и придется это решать. Если вам надо забить гвоздь, вы же не берете в руки кусок мыла, потому что вы так придумали, и не начинаете забивать гвозди куском мыла. Теоретически по вашему предположению это возможно, но зачем, если есть молоток. Молотком можно забивать гвозди криво, но вероятно, это лучший способ и инструмент для этого. Останется лишь научиться правильно им пользоваться, правильно держать, правильно это делать. Т.е. проблема будет не в молотке, а в вас. Я надеюсь понятно объяснил.

Вместо послесловия: как мог старался удержаться от волны возмущения ))). Ну нельзя так строить свой процесс обучения. Написать что-то там на вордпресс, блог без MVC и ООП (все в одной папке и куче - по вашим словам, значит, вероятно вы не знаете даже, как работает автозагрузка и что это за методы spl_autoload() и spl_autoload_register()), и говорить что вы понимаете ООП и MVC. Поймите любой опытный программист вскроет все ваше "понимание ООП и MVC" за 1 минуту когда вы пойдете устраиваться на работу или захотите "фрилансить".
Вы же не для кого-то это делаете, а для себя. Постройте правильно учебный процесс (взгляните хотя бы на программу любого онлайн курса по PHP, и какое место там занимают фреймворки). Решите что действительно нужно и важно. А что можно отложить пока не появится прочный костяк базовых знаний. Фреймворк как я упомянул выше, это инструмент. Это как взять пробник - инструмент, и лезть в электроустановки свыше 1000В, не имея допуска по группе электробезопасности, и имея базовые понятия из школьного курса по Электричеству.

Не воспринимайте как критику лично вас. Вы в этом не виноваты. Но задуматься стоит. Этот путь пройден вами не первым.
Ответ написан
Говорю вам как Junior прошедший через это не так давно. Однозначно стоит поработать с фреймворком. Но в итоге вы упретесь в знаниях только по фреймворку и не сможете мыслить в рамках PHP. Иначе говоря, достаточно трудно делать что-то продуктивно на фреймворке, если вы не знаете как это реализовать на чистом Php.

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

Итог:
Велосипед на фреймворке
- даст вариативность решения сложных задач простым путем, однако сложные решения нужно будет думать самому. А начинающему разработчику, самому и сразу найти верное решение без подсказок, трудно(!=невозможно).

Велосипед на чистом PHP - даст знания самого языка, если вы примените паттерн MVC - вы сможете расширить свой велосипед и разобраться в нем через год. Если вы самостоятельно прикрутите ORM, Doctrine например, вы поймете как это упрощает в разработке время. Если вы добавите паттерны Service Locator, dependency injection - поймете на сколько гибче ваши классы станут.
Естественно, что после такого стека технологий разработанных вручную. Фреймворк вам не будет казаться такой магией, а сложные фреймворки по типу Zend-a не будут такими сложными.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
Свой велосипед имеет смысл писать для мелких процедур, небольших скриптиков.
Для всего сложного (написание чего займет больше недели), лучше поискать готовые решения.
Если есть время - можете парралельно писать свой велосипед и ставить готовые решения, и сравнивать что получилось лучше.
Ответ написан
Комментировать
@dev400
Холивар на эту тему обычно. Кто то говорит "Надо! Будешь понимать как и что устроено, в сравнении с фреймворком увидишь свои ошибки!" , а кто то говорит "Нахрена? если умные люди уже все за тебя написали".
Ответ написан
Комментировать
Pshkll
@Pshkll
Зависит от задачи и вашего времени на её выполнение. Если есть готовое решение и вы понимаете как оно функционирует, то почему бы не использовать в своих целях? Если у вас много времени и вы хотите набраться побольше опыта - пишите с нуля на чистом php (ну или используя фреймворки если хорошо понимаете php).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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