Эволюция веб-разработчика или Почему фреймворк - это хорошо?
Что такое хорошо, и что такое плохо? Вопросы в меру риторические, если нет критериев, по которым мы оцениваем эту самую "хорошесть" или "плохость".
Но, прежде всего, мини-вводная для тех, у кого слово "фреймворк" пока еще не входит в активный словарный запас)
Фреймворк - это программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.
Сие определение красуется в Вики, но мы можем и должны его упростить, если речь идет о веб-разработке, а конкретно - о PHP-фреймворках.
PHP-фреймворк - это программный каркас, набор библиотек кода, призванных упростить разработку веб-приложения.
Так вот, возвращаясь к нашим хорошо-плохо, давайте посмотрим на возможный эволюционный путь веб-разработчика.
Для упрощения оставим в сторонке дизайн, верстку и js-прибамбасы (ибо темы очень обширные) и посмотрим на эволюцию в рамках работы с серверным кодом.
Нередко новички начинают с разного рода CMS-систем. Перечислять не буду - их великое множество, хотя по-настоящему популярных не так уж и много.
Человек приходит в тему и хочет создать для начала хоть какой-нибудь сайт, чтобы примерно "пощупать", что это из себя представляет. Как правило, CMS-ки для таких целей подходят как нельзя лучше. Буквально за один вечер можно смастерить что-то удобосмотрибельное с неким базовым функционалом.
Почему это возможно? Потому что писать код вообще не нужно. Установили CMS-ку себе на сервер, что-то понажимали в админке и, вуаля - готово! Наш первый сайт.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
После того, как сайт сделан, приходит понимание, что ты ни черта не понимаешь в том, как и что там работает, потому что все коррективы в его работу ты вносишь только лишь расставляя галочки в чекбоксах или выбирая опции в дропдаунах. Да, иногда еще приходится прописать кусочек html-разметки или стилей CSS (но это уже к верстке - не наша тема).
Как вы думаете, что чувствует при этом человек, который хочет разобраться с кодом? Конечно, у него возникает желание покопаться внутри CMS-системы, чтобы хоть как-то в ней сориентироваться.
Он открывает PHP-файлики один за другим и начинает смотреть: "А что же, собственно, там прописано?" Удивительно, но на первый взгляд новичкам в этом не понятно практически ничего.
Оно и понятно - многие системы писались не один год и далеко не одним человеком, поэтому разобраться в этом нагромождении кода непросто. Особенно, если новичок от веб-разработки пока еще не добрался до толстых учебников по PHP...
Но учебники по PHP решают. Реально помогают. И если человек целеустремленный, то он методично пройдется по нескольким книгам и разберется-таки с "голым" PHP.
Надо сказать, что это, во многом, момент прозрения. Многие начинают понимать что-то вроде: "Ё-моё! Так я ж и сам, наверное, могу написать что-то подобное!"
Конечно, это сложно, конечно, это долго, но сама мысль приходит. Более того, где-то мы даже думаем, что смогли бы сделать и получше, точно?
И начинаем пробовать, изучать и переходить на очередной уровень - еще повыше. Результатом освоения этого уровня нередко является некая самописная CMS-система, из которой выкинуто все лишнее и добавлено только то, что нам нужно.
У нас есть сайт, у нас есть админка, у нас есть код. И, что еще важнее, мы сами его написали. Реально круто.
Порадовались, что дальше?
Дальше приходит осознание, что наша CMS-ка хоть и крута, однако не вполне универсальна. По сути, она настолько заточена под какой-то конкретный проект, что использовать ее под что-то другое очень неудобно - потребуется масса переделок, порой весьма трудоемких.
И дальше мы начинаем думать другими категориями - мышление выходит на более высокий уровень абстракции, и мы пытаемся создать нечто универсальное и почти идеальное (хотя бы в голове).
- Нечто, что можно было бы использовать повторно.
- Нечто, что работало бы на нас вне зависимости от того, какой проект мы создаем.
— Разгрузит мастера, специалиста или компанию;
— Позволит гибко управлять расписанием и загрузкой;
— Разошлет оповещения о новых услугах или акциях;
— Позволит принять оплату на карту/кошелек/счет;
— Позволит записываться на групповые и персональные посещения;
— Поможет получить от клиента отзывы о визите к вам;
— Включает в себя сервис чаевых.
Для новых пользователей первый месяц бесплатно. Зарегистрироваться в сервисе
- Нечто стандартизированное - с одной стороны, и нечто гибкое - с другой.
И всё для того, чтобы обрабатывать "исключения", которые, безусловно возникнут в любом проекте, который создается не для поисковых роботов, а для живых людей.
Но здесь уже нужно решать задачи очень высокого уровня, а для этого требуются острый ум, масса времени, уйма опыта и адское терпение. Согласитесь, что не все обладают таким впечатляющим набором качеств одновременно.
Вот здесь многие и приходят к тому, чтобы начать-таки использовать фреймворки.
А почему бы и нет?
CMS-ки попробовали
Сами в PHP поковырялись
Свою CMS тоже слепили...
Теперь дело за малым - когда знания более или менее улеглись, можно подумать и об эффективности, об экономии своего времени и оптимизации процесса. И все это позволяет сделать нам фреймворк.
Возможно, вы уже думаете: "Вот блин, ну и путь нужно проделать для того, чтобы прийти к фреймворкам! Я же ничего из этого еще и не сделал. Ну только с WordPress немного разобрался..."
На самом деле, рассмотренный вариант - это лишь вариант, и у каждого свой путь развития. Кто-то, например, приходит к использованию PHP-фреймворков сразу после CMS-систем, а кто-то - сразу после освоения основ PHP.
Вариантов в действительности масса. Вопрос лишь в том, насколько солидным "багажом" хочет обладать человек, какой уровень он считает для себя достаточным для того, чтобы приступить к освоению нового для себя инструмента. А тут уже выбор за каждым вебмастером и веб-программистом.
Мое глубокое убеждение состоит в том, что фреймворк использовать нужно.
Да, использовать CMS-системы нередко удобно (но часто бывает и наоборот).
Да, писать код самому с нуля - это круто (но далеко не всегда целесообразно).
Но еще круче, когда у вас есть инструмент, дающий вам и множество встроенного функционала "из коробки" (формирование url-адресов, пагинация, отправка почты, авторизация, высокий уровень защиты и т.п.), и возможность поковыряться в коде и дописать что-то под себя, оставаясь в рамках хорошо формализованной структуры.
Именно такой подход оптимален, если мы говорим о профессиональном веб-разработчике или о тех, кто стремится ими стать. Работая над своими проектами таким образом, вы прокачиваете свой профессионализм и эффективность.
Единственное, на что следует обратить внимание - это "фактор однодневности". Не стоит выбирать для освоения недавно появившиеся фреймворки, судьба которых находится под большим вопросом.
Представьте себе: вы набросились на новомодный инструмент, вложили в его освоение 2-3 месяца плотной работы, а через полгода он благополучно загнулся: сообщество слабое, разработчики куда-то пропали, код не поддерживается в актуальном состоянии... Картина грустная.
Поэтому перед выбором осмотритесь по сторонам, сравните динамику развития разных PHP-фреймворков, их возраст, документацию, частоту обновлений, размеры и активность сообществ, и только после этого принимайте решение. Так вы почти наверняка обезопасите себя от пустой траты времени. А время в наше время драгоценно. Впрочем, как и всегда.
Если идея с PHP-фреймворком вас зацепила - велкам сюда.
На днях мои коллеги выпускают полный курс по работе с одним из популярнейших и мощных фреймворков - Yii2. Ну а пока еще есть несколько дней в запасе, посмотрите серию бесплатных уроков по Yii2, чтобы определиться, нравится вам это дело, или нет.
Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!
Смотрите также: