Зачем использовать готовые решения?

Почему многие на данный момент предпочитают использовать готовые решения?

Вот на данный момент пишу Routing для своего проекта, а хотя можно было бы взять готовый, но для себя я извлек следующее:
1. Мой текущий класс выполняет все необходимое.
2. Я знаю каждую деталь своего класса и в любой момент могу дополнить и изменить его.
3. Количество строк гораздо меньше, при этом выполняется все тоже самое.
4. И пожалуй главное, открыл много чего нового для себя и чувствую рост в своей специальности.

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

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

И заранее хотелось бы ответить на следующие пункты:
1. Экономия времени. Достаточно написать и после интегрировать в свои проекты...
2. Правильное решение. Соглашусь, но если практиковать свои навыки, разве у вас не получится также?
  • Вопрос задан
  • 423 просмотра
Решения вопроса 5
Когда начинал, везде предлагали брать готовое решение, а не изобретать свое чудо...
Есть две полярных и при этом правильных точки зрения.

Нужно писать своё, чтобы учиться (как вы описываете в вопросе). И чтобы понимать как работают готовые решения и почему именно так.

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

1. Экономия времени. Достаточно написать и после интегрировать в свои проекты...
"Достаточно написать" обычно для велосипедов измеряется годами, с учётом всё новых и новых требований и найденных багов.

2. Правильное решение. Соглашусь, но если практиковать свои навыки, разве у вас не получится также?
Опять же - речь про годы практики.
Ответ написан
proudmore
@proudmore
Problem solver
Как разработчик, вы должны быстро и качественно выполнить задачу, которую вам дал бизнес. Это достигается за счёт переиспользования готового кода
Ответ написан
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Во первых - готовый код - он разный. В частности данное утверждение подразумевает "готовое обкатанное, проверенное на многих использованиях, все основные косяки и грабли уже найдены и пофиксены".

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

В третьих - готовое распространенное решение проще поддерживать, завтра вы уйдете / перестанете поддерживать свое "творение", и другой разработчик вынужден будет разбираться в вашем произведении, матюкаясь что в одном месте "все прибито гвоздями", в другом "собрано из г**на и палок", в третьем "эти 30 строк пишутся одной тренарной операцией, кто это вообще писал???"... И вам потом икать, оно вам надо?

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

На самом деле разработчик с опытом и мозгами сам способен понять где брать готовое, а где проще набросать свое.
Ответ написан
@FanatPHP
Вопрос писать или не писать такую тривиальщину как роутер, сводится, в сущности, к вечному вопросу поддержки.

Написать десяток велосипедов не проблема.
Поддерживать один-два в актуальном состоянии - тоже.
Но может накопиться такое количество велосипедов, что их поддержка будет занимать все наличные ресурсы, и на разработку собственно функционала попросту не останется времени.

Впрочем, это естественный процесс, который проходит каждый велосипедописатель, и по достижении этого порога радостно выкидывает велосипеды, заменяя на модули, поддержкой которых занимается сообщество.
Ответ написан
@Dolosweb
Во первых самое важное в программировании - писать аккуратный и понятный код. Это можно достигнуть только если архитектура движка или фреймворка способствует этому. И основной и самый главный критерий: минимум усилий = максимум возможностей = максимум результатов.

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

К глубокому сожалению в веб нет единой концепции построения веб приложений, и это порождает расхождение мнений и технологий. Поэтому нет какого либо универсального движка для всех задач.

Поэтому если есть возможность нужно самому разрабатывать движок с основным (MUST HAVE) функционалом и строго по паттерну.

Я сам совершенствую свой фреймворк PWAA (proper web application architecture) , для важно универсальность, полная свобода действий, стандартизированная структура приложений и самое главное высокая производительность вне зависимости от сложности проекта.

Так что не забивай на свой внутренний голос ))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы