Как стать автором
Обновить

Изобретение велосипеда или зачем писать проекты с нуля, PHP

Введение


Последнее время все чаще натыкаюсь на холивары по теме: «стоит ли изобретать велосипеды или использовать готовые продукты». Давайте для начала окунемся в историю самих велосипедов. По разным источникам их история начинается ни то в 15 ни то в 19 веках, но это не суть важно! Лучше проследим их техническое совершенствование. Первые образцы были неуклюжими, громоздкими. Однако с годами форма, материал и предназначение менялись. Далее в статье я проведу аналогию между эволюцией велосипеда и разработкой проектов на PHP, а так же поразмышляем на тему хорошо/плохо использовать готовые продукты в разных аспектах!

Велосипед = Web проект

Чтож начнем. В далеком 2003 году занимался велоспортом, так что имел дело как с простыми туристическими велосипедами, так и с шоссейными, и трековыми! Что у них общего? Конечно же конструкция: рама, руль, два колеса и цепной привод. Но абсолютно разные задачи. Как например узконаправленные (CNStat и трековый велосипед), (FrameWork = шоссейный велосипед), (CMS = Туристический/горный велосипед). Теперь выберем аналог для сравнения. На мой взгляд, как нельзя кстати подойдет framework, т.е. хорошо сбалансированный продукт, при помощи которого можно реализовать практически все. Более конкретно возьмем CodeIgniter. Здесь тоже можно выделить основные части: ядро, связи, расширения. Вот теперь давайте проведем аналогию эволюционирования шоссейного велосипеда и выбранного продукта. На своем примере хочу выделить велосипед СтартШоссе, старенький спортивный велосипед с 10 скоростями, стальной рамой, ручной переключатель скоростей на раме. Вроде ездить можно, но неудобно. Тяжелая рама, неточные переключения, не информативные тормоза. К этому можно отнести первые версии выбранного framework'а. Вроде все работает, но как то тяжеловато и с неточностями! Проходит время, все улучшается и теперь у велосипедов новые рамы: алюминий, карбон и титан. Большой выигрыш в весе, меньшие силовые затраты. Новая система переключения передач на руле без особых усилий, лучшая аэргономика. Так же и в развитии framework'а. С каждой новой версией появляются новые плюшки расширения, облегчается ядро, улучшется автоматизация. Так что прогресс не стоит на месте.

Писать или не писать

Практически у всех начинающих программистов, не важно какой язык программирования они выбрали, появляется огромное желание написать то, что уже написано другими, при чем ни раз. Но когда они начинают задавать вопросы, то натыкаются на большое давление со стороны «авторитетных» гуру. Зачем тебе это, написано уже давно и лучше тебя, бери да пользуйся. Я считаю это в корне неправильным подходам. Давайте разберемся почему на примере того же CodeIgnitera. Молодой падаван разработчик за пару дней прочитав руководство пользователя, начинает мыслить примерно так: а это все элементарно, теперь буду писать лишь на нем. Но он не вдумывается в то как это работает. В будущем при всплывании ошибок, юное дарование не сможет исправить их, не зная как это работает внутри! Для него framework становится псевдо php. Зачастую используя ActivRecord «программист» даже не знает как выглядит в реале SQL запрос. Приведем элементарный пример:

$this->db->select('*');
$this->db->from('sometable');
$this->db->join('field1', 'field1.id = field2.id');


Все удобно и наглядно, но… Знает ли он как выглядит это на самом деле?

SELECT * FROM sometable JOIN field1 ON field1.id = field2.id

И таких псевдо реализаций можно привести множество: работа с сессиями, которые записываются в базу данных, отсутствие возможности работы с глобальными переменными кроме POST.

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

Вывод

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

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

Ну и в третьих, если у вас уже сформировался необходимый склад ума и вы дорожите как своим временем, так и временем заказчиков, то готовые решения для вас. А велосипеды оставим развивающемуся поколению!
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.