Рубрики
Без рубрики

12 вещей, которые вам нужно рассмотреть при оценке любой новой библиотеки JavaScript

Sacha Greif 12 вещей, которые нужно учитывать при оценке любого нового JavaScript LibraryHow Вы знаете, стоит ли новую технологию инвестировать время в? За состояние JavaScript The Exense в этом году я хотел выкопать немного глубже, и не только знал, что инструменты

Автор оригинала: FreeCodeCamp Community Member.

Sacha Greif.

Откуда вы знаете, стоит ли новую технологию вкладывать время в?

За этот год Состояние опроса JavaScript Я хотел выкопать немного глубже, и не только знал, какие инструменты и библиотеки используют людей, но и Почему Они использовали их.

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

Возьми викторину!

Чтобы упростить применить масштаб в любой библиотеке, я подготовил быстрый викторину, которая отвезует вас через все 12 факторов и даст вам окончательную рекомендацию:

➡️ Возьмите 12-факторную викторину

Если вы не уверены, что оценить, просто сделайте это на библиотеке, с которой вы знакомы (React, Vue, jQuery …) и посмотрите, насколько хорошо он забивает!

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

Примечание: о состоянии опроса JavaScript

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

Если вы хотите внести свой вклад и помочь определить последние тенденции в экосистеме JavaScript, Иди возьми обследование !

Теперь обратно в 12-балльную масштаб.

Факторы

Вот полный список:

  1. ? ️ особенности
  2. ? Устойчивость
  3. ⚡ производительность
  4. ? Пакет экосистемы
  5. ? C ommunity.
  6. ? Кривая обучения
  7. ? Документация
  8. ? Инструмент
  9. ? ️ запись трека
  10. ? Команда
  11. ⚖️ совместимость
  12. ? Импульс

Я объясню важность каждого фактора, а также дать вам оценку сетки, чтобы показать вам, как его оценить. Давайте пройдемся через список!

? ️ особенности

Первая причина, по которой вы выберете любую технологию, вероятно, для того, что она делает.

Но ключевой вопрос здесь, зная, как далеко идти. React – это, вероятно, самая популярная предельная библиотека там прямо сейчас, но общая жалоба состоит в том, что она просто не делает достаточно, оставив такие вещи, как маршрутизация и управление государством в сторонние библиотеки, такие как React-маршрутизатор и Redux.

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

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

Поэтому иногда минималистский подход – это то, что нужно. Библиотеки, такие как Лодаш или Рамда, позвольте вам заменить вашу грязное вложенное для циклов с переплетенными функциональными выражениями, и этого достаточно, чтобы сделать их бесценными инструментами.

Опять же, это все о нахождении правильного равновесия!

Система баллов

  • A: Разблокирует вещи, которые были просто невозможны раньше.
  • B: Позволяет делать то же самое, что и раньше, но лучше.
  • C: Делает меньше текущих решений.

? Устойчивость

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

По этой причине многие инструменты в текущей экосистеме JavaScript сосредоточены на добавлении стабильности и безопасности в стек. Смотрите не дальше, чем успехи Typrescript и Flow или даже языки, такие как причина.

И на стороне слоя данных типа системы GraphQl также способствует обеспечению того, чтобы все проводили гладко.

Система баллов

  • A: Меньше ошибок, и проблемы становятся легкими для отладки и решать.
  • B: Принятие технологии не влияет на стабильность вашего программного обеспечения.
  • C: Новые ошибки и проблемы возникают как прямое следствие принятия технологии.

⚡ производительность

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

Аналогичным образом, все функции в мире не используются, если она берет приложение 15 секунд для загрузки. К тому времени пользователь уже закрыл вкладку, и вы потеряли бой, прежде чем он даже начал!

В экосистеме JavaScript не смотрите не дальше, чем Преобразование Чтобы увидеть пример фокусировки на скорости: его API идентичен реагирующим, поэтому он не пытается конкурировать на прочность на объекте. Но, будучи легче-весом и быстрее нагрузки, чем реагировать, он позволяет сохранять драгоценные миллисекунды и улучшить производительность вашего WebApp.

Система баллов

  • A: Более легкий пучок, более быстрые времена загрузки или другие улучшения производительности.
  • B: Принятие технологии не влияет на производительность вашего программного обеспечения.
  • C: Принятие технологии замедляется ваше приложение.

? Пакет экосистемы

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

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

Система баллов

  • A: Экосистема имеет однозначные решения для общих проблем; Сторонние пакеты являются ухоженными и хорошо документированными.
  • B: Будущее пакет экосистемы со многими конкурирующими новыми вариантами.
  • C: Нет пакета экосистемы, чтобы говорить о том, как требуется много ручной работы.

? Сообщество

Другим фактором для рассмотрения общего сообщества. Выделенный форум или слабый канал может быть огромной помощью при запуске вопросов.

Также полезно иметь существующий репозиторий переполнения стека, чтобы посмотреть. И, конечно же, ухоженная страница проблем GitHub является обязательным!

Система баллов

  • A: Форум и/или чат (Slack/Discord/etc.) С повседневной деятельностью, проблемы GitHub, адресованные в течение дня. Многие ответили на вопросы переполнения стека.
  • B: Форум и/или чат с редкой активностью.
  • C: Нет сообщества за пределами Github.

? Кривая обучения

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

Тесно связанная (но иногда противоположная) концепция – это кривая «усыновления». Когда он впервые запущен, Метеор Был чрезвычайно простым в использовании (по крайней мере, по сравнению с существующими альтернативами), но потребовалось сразу принять весь весь стек, что делает его очень сложно реализовать для существующих проектов.

Реагирование также известно своей грубой кривой обучения: для разработчиков, используемых для разделения HTML и JavaScript, необходимость использования JSX может быть жестким. Vue с другой стороны делает его намного проще начать без необходимости переосмыслить то, как вы думаете о передней кодировке как можно больше.

Система баллов

  • A: Можно начать за один день.
  • B: Около недели требуется, прежде чем стать продуктивным.
  • C: Неделю, необходимое для изучения оснований.

? Документация

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

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

Это также требует предвидения общих вопросов, понимая умственную модель пользователя, и большинство всех сохраняет все в курсе ваших изменений кодовой базы! И все это занимает драгоценное время от фактического кодирования …

Учитывая все эти факторы, вы можете понять, почему хорошая документация – это редкая и ценная вещь!

Система баллов

  • A: Выделенная документация сайта, скринкасты, пример проектов, учебников, документация API и код хорошо прокомментированного.
  • B: Базовый читать мне и документацию API.
  • C: Очень кратко прочитайте меня, единственный способ узнать, как использовать библиотеку – это посмотреть на свой код.

? Инструмент

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

Я верю, что большая причина Success Success – это удивительное расширение браузера devtools, которое позволяет вам визуализировать магазин redux и действий очень удобным способом. Точно так же большая напечатающая поддержка VS Code сделала чудеса для его принятия.

Система баллов

  • A: Два или более из: расширения браузера, расширения текстовых редакторов, утилита CLI, выделенные сторонние услуги SaaS.
  • B: Одно из: расширения браузера, расширения текстовых редакторов, утилита CLI, выделенные сторонние услуги SaaS.
  • C: Нет внешних инструментов.

? ️ запись трека

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

Мы все можем изменить истории о принятии «следующей большой вещи», только чтобы погрузиться в хорошие старые рельсы/PHP/* INSERT, пробованную и настоящую технологию здесь *, когда все начинают идти плохо.

По этой причине ничто не может побить прочную запись. Express – это один из примеров вокруг: он был первоначально выпущен в 2010 году, тем не менее, все еще считается сервером Node.js по умолчанию.

Система баллов

  • A: Был около 4+ лет, принял мои крупные компании и известные технологические консультации.
  • B: Был около 1-4 лет, используемый ранним усыновлениями и небольшими консультантами.
  • C: Был около года, не более года, нет реального усыновления.

? Команда

Не все проекты имеют существующую учетную запись. Когда библиотека совершенно новая, как вы судите его потенциал? Один надежный способ посмотреть, кто за ним позади.

При реакции впервые вышло тот факт, что никто иной, кроме Facebook, не был позади, это был большой аргумент, по крайней мере, попробую. Затем Facebook поступил на релизе Relay и GraphQL, показывая, что успех реагирования не был случайным!

И более крупные компании также имеют больше ресурсов для инвестирования: Google смог продолжать поддерживать оригинальные Angular.js даже после выпуска новых, несовместимых версий.

Конечно, это не означает, что одинокие сопровождающие не могут также создавать основные инновации. Это то, как Vue.js родился в конце концов, ничего не сказать на 99% всех программных программ с открытым исходным кодом.

Система баллов

  • A: Поддерживается крупной компанией с выделенной командой с открытым исходным кодом.
  • B: Поддерживается средней группой инженеров с твердыми индивидуальными треками.
  • C: Одинокий поддерживатель работает независимо.

⚖️ совместимость

Великая вещь о принятии передовых библиотек заключается в том, что они обычно развиваются довольно быстро. К сожалению, это также может быть главным недостатком!

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

Реагниальный маршрутизатор генерировал много решеток, когда они решили полностью изменить их API между версиями 3 и 4., и поэтому они сделали угловой, когда они сделали переключатель от Angular.js на новый «просто угловой».

Частые обновления – это веселые и захватывающие, когда вы просто начинаете новый проект, но после того, как ваше приложение закончено и работает в производстве, последнее, что вы хотите, чтобы провести недели рефакторинга и отладки каждый раз, когда приходит новая версия библиотеки вне.

Система баллов

  • A: Обновления в основном являются обратной совместимой, амортизации обрабатываются с предупреждениями, а несовместимые более старые версии поддерживаются в течение двух лет и более.
  • B: Взлом изменения происходят, но хорошо документируются и постепенно выкатываются.
  • C: Частые разбитые обновления, требующие серьезного рефакторинга без правильного руководства.

? Импульс

Последнее, но не менее важное, импульс. Другими словами, шумиха.

Сышась часто рассматривается как плохая вещь («не падает жертвами шумихи»), как показатель стиля над веществом. Но это не всегда должно быть.

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

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

Система баллов

  • A: Уровень шумихи более 9000: лучшая часть хакерских новостей, тысячи звезд GitHub, переговоры на крупных конференциях.
  • B: Некоторый интерес вокруг начального запуска, сотни звезд Github.
  • C: Одинокий разработчик, пытаясь в безвестности. Однажды я покажу им! Я покажу им все !!

Обновление: еще несколько факторов

Некоторые из вас предложили еще несколько великих факторов. Что-то рассмотреть для потенциальной версии 2.0 масштаба!

  • Масштабируемость : Насколько хорошо работает технологии для крупных проектов.
  • Усыновление : Кто еще использует технологию в настоящее время?
  • Совместимость : Насколько хорошо технологическая работа работает с другими существующими технологиями?
  • Развязка : Насколько легко мигрировать из технологии, если вы хотите перестать использовать его?

Тематическое исследование: клиент Аполлона

Давайте поставим нашу систему оценки на тест, применяя его на фактической, реальной библиотеке: Apollo Client Отказ

APOLLO – это клиент GraphQL, другими словами, это библиотека, которая будет запрашивать конечную точку графики и загрузить свои данные на клиент для вас. Он также обрабатывает такие вещи, как кэширование, убедившись, что данные не дублируются, и отправка указанных данных в вашу интерфейсную библиотеку выбора.

Давайте посмотрим, как это происходит на нашей системе оценки!

? ️ Особенности: B

APOLLO дает вам лучшие способы запроса данных, поэтому это более постепенное улучшение на основе существующих инструментов.

? Стабильность: А.

Принятие APOLLO и GRAPHQL облегчает рассуждать о ваших данных и отслеживать проблемы.

⚡ производительность: b

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

? Пакет экосистемы:

Apollo поддерживает пакеты под названием Ссылки Для того, чтобы включить дополнительные функции.

? Сообщество: B.

APOLLO имеет очень активное Slack Chatroom, но в моем опыте возникли вопросы, иногда могут пойти без ответа, и может быть трудно получить ответы от занятых членов Core Team.

? Кривая обучения: B

Изучение всех нюансов Аполлона на самом деле может быть проблемой, особенно если вы учитесь использовать GraphQL одновременно.

? Документация: А.

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

? Оснастка: а.

Расширение браузера и выделенное Метризация платформа Отказ

? ️ Отслеживание записи: B

Сам Аполлон все еще довольно новичок, но так и пространство GraphQL в целом.

? Команда: А.

Высоко компетентная и хорошо финансируемая команда с опытом, запускающим другие проекты с открытым исходным кодом ( Meteor ).

⚖️ Стабильность: b

Обновление обновления от V1 до V2, но общая хорошая стабильность и обратная совместимость с момента.

? Импульс: B.

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

Общая оценка: а?

С 29 очками не более 36 лет, Аполлон заканчивается действительно хорошо! Даже если всегда будут зоны для улучшения, легко понять, почему он был принят в производстве многими командами, которые нужен надежный способ справиться с данными GraphQL.

Другие подходы

Люди в НПМ внесли Аналогичная рейтинговая система автоматизирован от Github и данных NPM. Это делает их забившими менее субъективными, но нет другой руки, она не охватывает такие вещи, как документация или сообщество.

На стороне необработанных данных вы также можете получить какую-то классную статистику с тенденциями NPM:

И узнать больше о том, какие библиотеки в настоящее время популярны в Best из JS:

И, конечно же, всегда есть прошлогодние государства результатов опроса JS :

Как насчет вас, как вы обычно оцениваете библиотеки? Оставьте комментарий, чтобы дать мне знать!

Заключение

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

Тем не менее, мы надеемся, что это может служить полезной отправной точкой. Если ничего другого, он может служить контрольным спицей, чтобы убедиться, что вы не с видом на что-нибудь важное, прежде чем сделать этот большой прыжок в будущее!