Если вы хотите построить дом, начинаете ли вы строить экскаватор?
Представьте, что вы хотите построить дом. Вы определенно не создадите для этого необходимых инструментов. Вы лучше возьмете некоторые существующие инструменты и запачкаете руки. Это кажется очевидным, не правда ли?
Когда люди начинают создавать новый веб-продукт, они часто делают наоборот. Они начинают создавать свой собственный фреймворк или библиотеки.
Это мудрое решение? Вот моя точка зрения.
Может быть несколько причин для создания собственного фреймворка / библиотеки. Если ваш продукт на самом деле является фреймворком, прекратите читать и продолжайте писать код. ;-)
Люди думают, что они должны все писать сами
Некоторые разработчики считают, что им нужно создавать все с нуля и собственными руками. В противном случае они плохие разработчики и не заслуживают ни копейки. Ну давай же! Это фигня. Думаю, все наоборот. Разработчик может показать хорошие навыки, выбрав подходящий фреймворк. Он / она должен оценить различные фреймворки или технологии и привести веские аргументы, почему определенная структура лучше подходит для данных требований.
И это еще не все. Разработчик должен понимать философию и концепции фреймворка.
Некоторым людям только любопытно, и они хотят экспериментировать
Если экспериментирование и любопытство мотивируют писать все с нуля, подумайте дважды. Хотите провести эксперимент в производственной среде с платными клиентами? И помните, что вы также должны поддерживать этот фрагмент кода.
Позвольте задать вам вопрос: вы бы попробовали экспериментальное лекарство?
Узкие сроки
Некоторые могут возразить, что сроки слишком жесткие и что оценка и изучение новой структуры требует слишком много времени. С моей точки зрения, это тоже неверный аргумент. Вот причины: если вы разрабатываете продукт без фреймворка, вам нужно кодировать много вещей, что делалось миллионы раз. Возможно, вам придется кодировать ORM, аутентификацию и авторизацию, проверку и многое другое. Это займет у вас много времени, которое вы бы предпочли потратить на поиск и изучение своего фреймворка.
Фактически, фреймворки сэкономят вам много времени. Вам не нужно создавать общие функции. Они были реализованы и протестированы сообществом, которое фактически отвечает за структуру.
Во всем мире нет адекватной структуры или технологии для вашего передового продукта.
Если это действительно так, что ж, вам нужно построить все с самого начала. Но существует так много существующих фреймворков и библиотек, написанных на стольких разных языках и основанных на стольких различных технологиях. Действительно ли ваш продукт настолько особенный, что вы не можете использовать существующие решения?
Не изобретайте велосипед
Запомните свою первоначальную цель. Вы хотите создать новый продукт, а не фреймворк или библиотеку. Это самое главное. Убедите своего босса, что стоит найти подходящие фреймворки, прежде чем начинать писать код. Вот еще несколько аргументов:
- Фреймворки разрабатываются, тестируются и поддерживаются сообществом очень опытных разработчиков.
- Раньше в продакшене использовались фреймворки. Они стабильны.
- В частности, создание безопасной аутентификации и авторизации является трудным и требует много времени.
- Фреймворки задокументированы. Коллегам легче начать писать код, если есть нехватка ресурсов.
- Разработчики могут сосредоточиться на реализации продукта. Следовательно, скорость разработки увеличится.
- Юридические проблемы. Если вы хотите интегрировать оплату, ваше приложение должно соответствовать определенным критериям.
Некоторые из аргументов применимы и к другим инструментам. Это, например:
- Инструменты сборки вроде gulp или grunt.
- Инструменты зависимости, такие как maven, composer и npm.
- Генерация шаблонов с йоменом.
Все они сокращают процесс разработки и помогают поддерживать продукт в будущем.
Фреймворки и библиотеки для всех
Фреймворки и библиотеки не ограничиваются серверными приложениями. Они существуют также для клиентских целей и тестирования. Назову несколько из них:
Вывод
Если вы создаете продукт, используйте одну из замечательных фреймворков или библиотек на рынке. Существуют фреймворки практически для всех целей. Они помогают сократить время вывода на рынок, и вы производите продукт более высокого качества.
Если вы действительно хотите создать фреймворк / библиотеку, делайте это в свободное время или в качестве побочного проекта. И есть также возможность внести свой вклад в существующие фреймворки с открытым исходным кодом.
В одном из моих текущих проектов мы решили использовать Laravel PHP Framework для создания API. В одном из следующих постов блога я объясню, почему.
Аргументов, безусловно, намного больше. Некоторые читатели также могут не согласиться с моей точкой зрения. Не стесняйтесь оставлять комментарии и высказать свое мнение.