1. Введение
Автор дает всесторонний анализ удобства использования библиотек JS с 12 точек зрения, а именно:
- характеристика.
- стабильность.
- представление.
- пакет экология.
- Сообщество.
- кривая обучения.
- документация.
- инструмент.
- История развития.
- команда.
- совместимость.
- тенденция.
Взгляды автора кратко изложены ниже.
2 Обзор и интенсивное чтение
характеристика
Когда вы исследуете JS-библиотеку, функциональность, конечно, важнее всего, так же как React очень удобен для разработки интерфейсов пользовательского интерфейса, что является частью популярности.
Но в то же время проблемы, решаемые React, очень сфокусированы, поэтому такие части, как Router и Store, передаются сообществу для решения, что делает официальную экологическую модель обслуживания Vue развиваться. Но это больше зависит от ваших предпочтений, более компактная библиотека, такая как lodash, будет работать вечно, важно то, решают ли возможности, предоставляемые этой библиотекой, вашу бизнес-задачу.
Рейтинг: A - Превращает разложение в магию. B - более элегантное решение. C - Хуже существующих схем.
стабильность
Если в этой библиотеке частые ошибки, очевидно, что ее нельзя использовать в рабочей среде. Лучше всего пройти тщательное тестирование, чтобы убедиться, что эта библиотека не выйдет из строя, чтобы мы могли сосредоточиться на устранении неполадок в бизнесе.
Рейтинг: A - Несколько ошибок, легко отлаживать. B - Это не повлияет на вашу стабильность, например, вероятность ошибок аналогична вашему бизнес-коду. C - Внедрение этой библиотеки даст вам сбои в бэклайне.
представление
Если вы даете пользователям 15 секунд, чтобы открыть веб-страницу, все это напрасно.
Возьмем, к примеру, PReact. Почему выживают одни и те же колеса с одним и тем же API? Из-за его небольшого размера и шумихи вокруг производительности PReact.
Как в одном предложении дать понять, что вы не делаете бесполезные колеса? Лучшая производительность.
Рейтинг: A - Небольшой размер, высокая производительность, поддержка различных функций черной технологии, таких как Tree Shake. B - Не влияет на производительность. C - приводит к снижению производительности.
пакет экология
Вы использовали monaco-editor? Все используют webpack, но он идет по маршруту amd Я не знаю, как вы использовали его для поддержки commonjs, но, должно быть, это заняло у вас много времени.
Экология пакета включает в себя зрелость стороннего пакета, простоту использования пакета, количество поддерживаемых модульных решений, поддерживает ли он TS, управляет ли он своими собственными зависимостями и т. д.
Лучше всего «из коробки», а с организацией долгосрочного обслуживания — еще лучше.
Лучше не иметь слишком много конкурирующих предложений сообщества одновременно. Например, библиотека инструментов использует lodash.Это просто, но какое решение для потока данных React выбрать? Слишком многие конкуренты продолжают писать рекламу, чтобы привлечь внимание пользователей (программистов), пытаясь убедить их работать сверхурочно над рефакторингом.
Оценка: A - Решение уникально и экологически эффективно, а записи об обслуживании стандартизированы и безупречны. B - Много новых онлайн красных конвертов, и есть много конкурентных вариантов. C - Пакет за вас никто не делает, если вы хотите его использовать, то должны сами его упаковать.
Сообщество
Возможность быстрого поиска ответов на вопросы на Stack Overflow отражает активность сообщества, будь то официальная документация или вопросы и ответы, проводимые третьими лицами.
Чем активнее сообщество, тем на большее количество ям можно наступить заранее.Если вы столкнулись с проблемой, с которой раньше никто не сталкивался, это не говорит о том, насколько глубоко вы ее используете, а может быть, вы просто использовали не ту библиотеку.
Рейтинг: A — Различные форумы активны каждый день, и проблемы с Github решаются каждый день. B - Форумы/чаты не очень активны. C - Не могу найти больше информации о нем, кроме хваленой документации автора.
кривая обучения
Не думайте, что делая библиотеку мощной, даже если ее сложно использовать, пользователи будут стоять на коленях и облизываться, это иллюзия.
Причина, по которой Vue настолько популярен, заключается в том, что порог нативного HTML ниже, чем у JSX, а пользователи, использующие React, часто считают, что у JSX более низкий порог, чем у HTML. Я не знаю, как это описать, с точки зрения всего, что может сделать JS, изучение HTML считается высоким порогом.
Так что признайте реальность, JSX Star не настолько продвинута в своей теории (теория действительно продвинута), но многие люди думают, что общая стоимость обучения и обслуживания ниже, чем у HTML.
Рейтинг: A - Станьте искусным каменщиком для этой библиотеки за день. B - Потерял неделю, чтобы заставить его работать. C - Учиться неделю, прежде чем понять, что предыдущее понимание было неправильным, и понять, что это только начало.
Документация
Люди, которые пишут документацию, как правило, являются авторами библиотеки.Такие люди, как правило, имеют богатый опыт и, как правило, не учитывают чувства новичков при написании документации, поэтому найти документацию, дружелюбную к новичкам, непросто.
Для сопровождающего библиотеки необходимо писать документы с точки зрения новичков и с точки зрения пользователей.Если документ вначале непонятен, лучше изменить документ или изменить библиотеку как можно скорее. .
Рейтинг: A - Специализируется на ведении сайтов-документов, видео, картинок и примеров проектов. Если лучше, то специальный фонд может организовывать соревнования по программированию. Трехлетний ребенок может начать работу за один день и всячески намекать на полноту технологической экосистемы. B — содержит самую базовую документацию Readme и API. C — Readme написан приложением Create response, а другие могут только проверять исходный код.
инструмент
Инструменты могут отражать преимущества этой библиотеки с нескольких сторон: во-первых, она действительно удобна в использовании, а во-вторых, показывает силу поддержки команды (энергия переполняется до такой степени, что ее можно использовать в качестве периферийных инструментов).
Причина, по которой Redux так популярен, связана с инструментами разработчика Redux.Автор прочитал несколько книг по психологии и испытал некоторые технические решения.Увидев графический интерфейс инструментов разработчика Redux, мозг лучше, чем рациональное логическое мышление из-за визуального Он слишком велик и подсознательно добавляет Redux много баллов, что делает результаты обсуждения менее рациональными.
Если вашу библиотеку можно выразить графически, или сделать РРТ или вспомогательный инструмент, то это однозначно будет большим плюсом. (Плагин React chrome очень круто загорается при открытии веб-страницы, созданной React, эта медаль настолько церемониальна, что я не хочу менять фреймворк)
Рейтинг: A - Более двух инструментов, включая расширения для браузера, расширения для редактора кода, инструменты CLI или сервисы SaaS, если сила сломлена, будет много модных вспомогательных инструментов. Б - инструмент. С - Без инструментов.
История развития
Для библиотеки Star 10K, если самая ранняя отправка была сделана десять дней назад, лучше не использовать ее, даже если она не очищена, потому что я не знаю, когда автор перестанет ее поддерживать.
Чем старше библиотека, тем менее рискованно ее использование, если только аспект, в котором она находится, не устарел (технический стек, экология, язык программирования и т. д.).
Рейтинг: A - 4+ года истории с авторитетной сертификацией. B - 1-4 года, многие люди использовали его. C - Автор не использовал его сам, поэтому вы можете использовать его в Интернете.
команда
Посмотри, кто стоит за этой библиотекой. Библиотеки с открытым исходным кодом широко используются крупными компаниями и имеют определенное международное влияние, и если крупные компании также имеют успешный опыт истории открытого исходного кода, это повысит убедительность.
Но Vue — исключение, его построил чуть ли не You Da. В данном случае автор хочет сказать, что человек, который по-настоящему любит технологии и практикует постоянное обслуживание, может быть более надежным, чем команда с KPI, которые нужно поддерживать -продукты.спектр.
Рейтинг: A - Производитель первого эшелона с авторитетной сертификацией качества. B - Поддерживается командой среднего размера с четким разделением труда. C - Открытый исходный код, кстати вне работы, я не планировал отвечать за эту библиотеку.
совместимость
Помимо совместимости с браузером, очень важна совместимость с библиотечным API. Вам нужно быть осторожным, когда вы можете легко связаться с автором, а предложения по изменению API быстро принимаются.
Все испытали боль от обновления React Router 3 -> 4. Babel7 отказался от этапа 0-4, а также принес много жалоб, различие между Angular1 и Angular2 сразу сделало многих людей черными. Хотя частые обновления часто направлены на добавление новых функций, если они принесут проблемы с совместимостью API, то вызовут отвращение.
Если ваша команда будет поддерживать в течение 10 лет, благодаря усердному обновлению автора библиотеки, десятки различных версий, равномерно распределенных во временном измерении, вы будете клясться, что следующий проект больше не будет использовать эту библиотеку.
Рейтинг: A — всегда совместимый апгрейд, нельзя заранее предупредить и сказать, что версия будет отброшена, и предоставить средства миграции, например React. B - но есть Break Change, изменение обновления, документ очень четко написан. C - внезапное появление небольших обновлений версии позволяет вызывать код, прежде чем вам придется реконструировать.
тенденция
Будь то ажиотаж или обсуждение, очень важно, чтобы всеобщее внимание к этой библиотеке было свежим, потому что в совокупности это может заставить эту библиотеку выполнять многие из вышеупомянутых пунктов.
Но обратите внимание на чрезмерную шумиху, которая может снизить стабильность работы этой библиотеки, ведь перед взрывным ростом пользователей лучше иметь часть из них подопытными кроликами.
Рейтинг: A - звездная тема HackNews, звезд тысячи, и в ее честь названы различные конференции (Vue conf, React conf). B - Сотни звезд, небольшое обсуждение. C - Не смотри сейчас на отсутствие Звезд, рано или поздно я это превзойду.
стоимость переезда
Это важный день, добавленный автором: если эта библиотека не будет использоваться один день, сколько будет стоить заменить ее на другую?
Тестовые библиотеки проделали хорошую работу в этом отношении Многие основные тестовые библиотеки, такие как Jest, Ava, Mocha, Jasmine и т. д., имеют взаимозаменяемые скрипты, и индустрия в основном достигла определенного консенсуса и спецификаций.
Те, которые более уязвимы, — это React, Vue и Angluar.После их использования вы в основном связаны.Пока никто не может легко перенести основные фреймворки. Конечно, век JS еще очень короток, и в будущем он будет подорван новыми языками, технологиями и контейнерами и станет историей.Стандартизация не невозможна, но требует времени.Может быть, это будет более чем через десять лет, но сегодня сделать невозможно.
3 Резюме
В следующем обсуждении технического отбора вы можете взять правила и сравнить их один за другим!
Тогда выбор технологии — это только базовая библиотека.Используя эти основы, вы можете поддерживать свою собственную библиотеку с открытым исходным кодом и тратить больше времени на создание ценности для бизнеса.
Если хорошенько подумать, то обнаружится, что библиотека инструментов, разработанная программистом, также подходит для концепции точки, линии и поверхности. Библиотечная кнопка реакции — это точка, и если линия реакции, в которой она находится, будет заброшена, бесчисленное количество реакций-ххх опрокинется. Линии react, vue и angular - все на стороне движка js. Когда WebAssembly можно будет писать на C#, Reason, Blazor и Dart постепенно станут главными героями браузера, а такие библиотеки, как react, все будут перестроен. И когда взаимосвязь человека и компьютера не потребует браузеров в качестве среды в будущем, сцена взаимодействия тела-человека-компьютера, к которой подключен движок js, также будет отменена, и сколько изменений вызовет эта волна.
Поэтому технический отбор должен решать текущие бизнес-задачи, тщательно учитывая несколько факторов, и достаточно быть подходящим для решения бизнес-сценария.
еще 4 обсуждение
Адрес обсуждения:Интенсивное чтение «12 вещей, которые вам нужно знать об оценке библиотек JS», выпуск № 104 dt-fe/weekly
Если вы хотите принять участие в обсуждении, пожалуйста,кликните сюда, с новыми темами каждую неделю, выходящими по выходным или понедельникам.