Универсальное или уникальное решение: что лучше?
- Категория: Технические советы
- – Автор: Игорь (Администратор)
Вопрос "что лучше" часто возникает, когда речь заходит о создании сайтов, систем и прочего. Использование универсального, готового, отлаженного и ограничивающего механизма. Или же более длительное создание уникального решения, которое будет полностью удовлетворять все потребности и "хотелки".
Проблемы обоих подходов неоднократно описаны на просторах интернета. Для универсальное решения - это ограничения по возможностям, привязка к определенного вида подходу и прямая зависимость от самого продукта со всеми вытекающими обстоятельствами. Для уникального решения - это большая длительность сроков, повышенные риски и отсутствие самой возможности увидеть в действии продукт до окончания его создания (существуют эскизы, прототипы, макеты и прочее, но универсальное решение можно, как говорится, "пожамкать прямо сейчас"). Безусловно, существуют и другие проблемы, но описанных проблем вполне достаточно, чтобы ощутить разницу между подходами.
Универсальность и уникальность: разница решаемых задач
Прежде всего, необходимо понимать разницу решаемых задач.
В случае универсального решения, задачи, в основном, сводятся к адаптации существующего механизма и поиску обходных путей для решения специфических потребностей. Другими словами, доведение изначальных потребностей, целей и задач до того состояния, когда готовое решение сможет их полностью удовлетворить. Не стоит считать, что возможность расширения готовых продуктов позволяет коренным образом изменить ситуацию. Готовые продукты созданы с расчетом собственных представлений о подходах и решениях потребностей, попытки полностью их поменять, за счет добавления и (или) корректировки существующей функциональности, могут приводить к еще большим проблемам.
В случае уникального решения, задачи, в основном, сводятся к поиску оптимальных подходов для удовлетворения потребностей. Иначе говоря, балансирование между сроками, возможностями технологий и степенью решения. Не стоит считать, что возможность использовать небольшие готовые модули будет серьезно влиять на поиск оптимальных подходов. Если все решение будет состоять из небольших готовых модулей, то такое решение не только ни будет сильно отличаться от универсального решения, но и потенциально будет иметь проблемы совместимости и возможности расширения.
С небольшими оговорками, можно сказать, что использование универсальных решений это движение от задач и целей к используемому продукту, а создание уникальных решений это движение от существующих возможностей к вашим целям, задачам и потребностям. Но не стоит считать, что из-за этого один или другой подход лучше. При разных обстоятельствах, каждый из этих подходов будет в чем-то лучше, а в чем-то хуже.
Так же вам может быть интересен обзор самопис или CMS что лучше?
На что стоит обращать внимание, при выборе универсального или уникального решения?
Безусловно, выбор подходящего решения может основываться на многих вещах, включая ваши собственные предпочтения и видение. К примеру, может вы попросту не приемлете готовые решения из расчета, что такого рода подход в определенном смысле привязывает вас к самому решению. Или же наоборот считаете, что создание уникального решения только лишь будет тратить ваше время впустую из расчета, что готовым продуктом можно пользоваться сразу.
В любом случае, есть ряд вещей, на которые стоит обращать внимание:
1. Существующие решения и подходы. Большинство задач уже когда-либо решалось. Возможно, несколько иным образом, но решалось. Это означает, что существуют реальные примеры решений и подходов, а так же примеры того, какие результаты достигались. Даже если вы не будете использовать эти решения и подходы, всегда будет вероятность найти полезную информацию.
2. Как решается вопрос расширения функциональности. Если для универсальных решений все достаточно очевидно - поддержка готовыми решениями такой возможности и до какого уровня; то для уникальных решений все обстоит немного сложнее - вопросы должны касаться не только самой возможности расширения, но и того, кто сможет внедрить расширение. Если при создании коробочных решений обычно предусматривается средний уровень навыков, то в случае уникальных решений это далеко не всегда так. Другими словами, нередко создать дополнительный модуль для коробочного решения может много людей, а для уникального решения мало (как минимум документация по готовым решениям обычно существенно лучше и больше возможностей найти как исправить возникающие проблемы).
3. Запас прочности. Со временем, объем данных будет увеличиваться и, с определенной долей вероятности, будет требоваться больше функциональности. Ограничения, которые вы определили сегодня, завтра могут оказаться слишком малыми и сильно ограничивающими. На практике, отсутствие запаса прочности может привести для готовых продуктов вплоть до вопроса об их смене, а для уникальных решений вплоть до реализации "с нуля". Иначе говоря, отсутствие запаса прочности будет означать потенциальный риск необходимости решать проблемы с самого начала.
Примечание: Однако тут так же не менее важно учитывать сколько на это потребуется сил и времени. Например, перенести данные с одной CMS в другую может быть проще и быстрее, чем создать с нуля еще один сайт. Или, как вариант, попробовать CMS, а потом уже делать собственную систему, но уже с опытом реального применения (а не тех фантазий, что были при старте проекта).
Так же вам может быть интересен обзор Определяем запас прочности программы.
4. Экспорт и импорт данных. Вопрос стоит даже не столько в том, что есть ли данные функций у решений, сколько в том, что потенциально такая возможность должна быть (даже если это выборка из базы данных). К примеру, существуют решения, которые хранят свои данные в специальных форматах данных, не позволяющих даже ручным или сторонним методом экспортировать их. Если заранее не предусмотреть наличие экспорта и импорта данных, то в будущем это может обернуться серьезными проблемами, когда объем данных будет уже настолько велик, что ручной перенос станет практически невозможным.
Даже если сейчас это не будет иметь для вас особого значения, все же настоятельно рекомендую обратить на них внимание.
Подытоживая об универсальных и уникальных решениях
Не существует лучшего подхода. Существует лишь подход, который сейчас наиболее оптимален для решения ваших задач и потребностей, с учетом ваших желаний и предпочтений. Поэтому старайтесь всегда рассчитывать возможные варианты на будущее. Начиная от самых оптимистических и заканчивая самыми пессимистическими.
Так же вам могут быть интересны обзоры: Почему очевидные решения не всегда подходят и еще Кнопка Сделать хорошо или почему готовое решение имеет много проблем.
Понравилась заметка? Тогда время подписываться в социальных сетях и делать репосты!
☕ Понравился обзор? Поделитесь с друзьями!