Стоит ли удалять неиспользуемый импорт в большой кодовой базе? - PullRequest
0 голосов
/ 06 июня 2018

После запуска сценария, который проверяет наличие неиспользованных imports, таких как import XYZ from 'dir/XYZ.jsx', где XYZ никогда не используется, я обнаружил около 300 файлов, которые имеют такую ​​проблему.В большинстве этих файлов отсутствуют подобные вещи, такие как Proptypes для React (import PropTypes from 'prop-types').

Я слышал, что файлы webpack / babel кэшируются после их импорта.Если это правда, стоит ли удалять эти неиспользованные операции импорта, которые происходят много раз, или я должен просто оставить их в покое?

Обратите внимание, что я делаю этот проект по соображениям производительности а также для чистоты кода.

1 Ответ

0 голосов
/ 06 июня 2018

Вы уже ответили на свои вопросы:

Обратите внимание, что я занимаюсь этим проектом из соображений производительности, а также из-за чистоты кода.

Однако давайтеразбейте ответ, приведя пример сценария и некоторые варианты использования.

Сценарий :

Допустим, у нас есть приложение Forecast.Когда пользователь переходит на маршрут ежедневного прогноза, он хочет получить информацию только о текущем дне.

Варианты использования :

  1. Как пользовательприложение, стоит ли производительность , если по ежедневному маршруту, по какой-то причине мы загружаем одну или несколько библиотек, никогда не пользовались?Имея в виду следующие библиотеки:
    1. Имеют некоторое время выполнения.Представьте, что в импортированном модуле мы создаем новый объект или выполняем некоторую тяжелую обработку.
    2. Добавлены накладные расходы сети для пользователя.
  2. В качестве точки зрения разработчика, достаточно ли ясно на первый взгляд, если я вижу файл с кучей импортированных библиотек?
    1. А что если я импортировал утилиту weeklyForecast в DailyComponent?Суть в том, что это вводит в заблуждение и сбивает с толку, если вы не просматриваете весь DailyComponent.Может быть, кто-то скажет, что у нас есть Линтеры для этого.Но почему вы используете Linter, если вы не следуете его правилам и соглашениям?

Технически говоря , это потеря производительности (вариант использования1) если вы импортируете что-то, это никогда не использовалось, но было передано пользователю.Я рекомендую вам проверить методы оптимизации веб-пакетов (Минимизация, дедупликация, чанки).

Также вы знаете о Разделение кода веб-пакета ?

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

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

Заключение :

Для нового проекта, очевидно, нет никаких преимуществ для включения неиспользованногоimport.

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

...