Эй, народ, как дела? Хорошо, я надеюсь.
Сегодня я собираюсь поговорить на тему полемики в JS-сообществе:
Фреймворки… использовать или не использовать, вот в чем вопрос.
Введение
Если вы не знакомы с этим термином, в двух словах можно сказать, что фреймворк — это решение, написанное для решения общей проблемы. Это также часто связано с библиотеками, поскольку фреймворк также может быть библиотекой или их набором.
Во вселенной Javascript есть много таких общих функций, в основном с открытым исходным кодом, созданных самим сообществом. И также есть много дискуссий о том, использовать ли эти сторонние коды. Эта статья разделена на две части, в первой я рассмотрю некоторые плюсы и минусы по этому вопросу, а во второй я приведу практический пример по некоторым упомянутым моментам.
Что такое правильный выбор?
Первое, что я хотел бы сказать, это то, что в этом вопросе нет «правильного или неправильного», это гораздо больше вопрос «необходимости и выбора». Поэтому крайне необходимо знать, какую проблему мы пытаемся решить и в каком контексте, чтобы иметь возможность выбрать наиболее подходящее решение. Я перечислю некоторые моменты, которые считаю наиболее важными в обоих подходах.
Примечание. Стоит отметить, что ничего из написанного здесь не является абсолютным правилом, а скорее набором мнений, основанных на моем опыте, которые могут варьироваться в зависимости от опыта каждого из них. Также необходимо понимать, что в большинстве случаев речь идет о фреймворках с определенной актуальностью, с хорошей практикой, организацией, тестами и хорошими стандартами качества.
Сильные стороны использования фреймворков:
– Это решение используется огромным сообществом, поэтому несколько человек работают над поиском решений одной и той же проблемы, что приносит коллективный взгляд и различные точки зрения.
– Это более простая абстракция чего-то, что может не быть важным в желаемом контексте. Например, не обязательно знать, как работают все передачи в машине, чтобы научиться водить машину и легче передвигаться.
- Ловкость в развитии. Это не правило, но обычно это преимущество, поскольку абстракции снижают уровень сложности некоторых решений.
Недостатки использования фреймворков:
- Настройка. Поскольку это решение направлено на решение определенного типа проблем, может случиться так, что в какой-то момент у вас возникнет случай, который не вписывается в него.
- Ошибки. Может случиться так, что обновление фреймворка или изменение версии создаст нежелательную ошибку в вашем коде, и вы не сможете ее исправить.
- Зависимость. Очень распространенным является то, что разработка кода полностью привязана к фреймворку, создавая отношения полной зависимости. То есть, если в какой-то момент платформа будет прекращена или больше не будет поддерживаться, это может стать большой проблемой.
Сильные стороны отказа от использования фреймворков:
- Больше контроля над кодом. Поскольку вы собираетесь разрабатывать все с использованием собственных технологий, у вас есть полный контроль над всем, что было создано.
- Решения с широкими возможностями настройки.
- Меньше перегрузки. Чем меньше сторонних модулей загружается в ваше приложение, тем оно легче и строится эффективнее.
– Лучшее владение собственными технологиями.
Слабые стороны неиспользования фреймворков:
- Сложность. Иногда может быть сложно и даже ненужно создавать решение с нуля для всей проблемы.
- Стандартизация. Когда вы работаете в большой команде, в зависимости от их опыта и размера проекта, может быть сложно управлять ими и поддерживать их с течением времени.
- Время. Вероятно, вам потребуется больше времени для разработки некоторых вещей, которые уже «сделаны».
Вывод
Я, в частности, считаю, что тысячи фреймворков — одна из самых крутых вещей во вселенной javascript. Это дает мне ощущение, что я все время работаю с людьми по всему миру, в дополнение к тому, что у меня есть доступ к отличным решениям, которые у меня, вероятно, не было бы времени и возможности разработать самостоятельно или в течение всей жизни. Тем не менее, время от времени я оказываюсь в ситуации, когда лучший вариант — не использовать его. Например, когда действительно нет фреймворка, полностью отвечающего вашим потребностям, или когда из соображений безопасности вы предпочитаете не нести конфиденциальную информацию через сторонние библиотеки, или все же потому, что вы не можете рисковать, в том числе зависеть от внешней библиотеки.
Принимая во внимание все плюсы и минусы обеих гипотез, становится ясно, что это не просто вопрос «хорошего или плохого» или «нравится или не нравится», а вопрос правильного выбора в данном контексте. Поэтому нужно проанализировать ситуацию, в которой вы находитесь, а также плюсы и минусы каждого подхода, чтобы найти наилучшее возможное решение.
Следующие шаги
Хотя я думаю, что использование фреймворков действительно положительно с точки зрения производительности, стандартизации, повторного использования и других преимуществ, есть кое-что, что я вижу ежедневно, что я считаю отрицательным моментом. Некоторые разработчики полностью ориентированы на использование фреймворков, вплоть до незнания того, как работают некоторые базовые вещи технологии. То, что я всегда защищаю, — это старое доброе «делать основы», хорошо знать концепции и основные нюансы языка или технологии, с которыми вы работаете. Итак, как я упоминал в начале, во второй части этой статьи я приведу очень классный практический пример на эту тему, касающийся одного из наиболее часто используемых решений в Node JS.
Это все на данный момент. А вы, что вы думаете об использовании фреймворков? Оставляйте свои мнения, впечатления и отзывы в комментариях.
Да прибудет с вами сила, до новых встреч.