Почему и как нужно документировать модульный JavaScript!
В прошлом посте я говорил о том, почему мы должны модулировать наш JavaScript:
Следующий шаг на пути к JavaScript
Самая универсальная истина, которую я могу придумать:« Мы все хотим меньше сосать . medium.com»
В этом посте мы действительно запачкаем руки!
Почему мы должны документировать 📝
Когда мы пишем модульный JavaScript и начинаем перемещать функции в отдельные файлы, вам, вероятно, будет труднее использовать эти функции, не глядя на них. С помощью некоторой магии документации мы можем легко узнать:
- что делает функция
- какие параметры он может принимать
- что возвращает функция
И поверьте мне, если у вас есть код старше 3 месяцев, вам всегда придется перечитывать его, чтобы понять его. Это может быть намного проще, если у вас есть собственная встроенная документация!
Кроме того, поскольку в этой серии статей мы будем работать над написанием нашего первого модуля NPM, документация - это добрый жест для всех, с кем вы могли бы поделиться своим кодом. 😊
Наш пример функции
Давайте посмотрим на пример функции, которая лучше всего работает в модульном исполнении.
Например. у нас есть приложение, которое использует большие числа с множеством десятичных знаков, и нам нужно только показать число, округленное в большую или меньшую сторону с максимальным x десятичными знаками. В качестве примера мы хотим, чтобы число 0.12345
стало 0.123
.
Простая интеграция может быть:
Теперь мы можем сделать roundDecimals(0.12345, 3)
и вернуться 0.123
.
Экспорт и импорт
Это легко, и я уверен, что любой, кто это читает, вероятно, уже знает, как это сделать. 😉
(но быстрый обзор) Просто сохранив вашу функцию в отдельном файле с именем, например. roundDecimals.js
вот так:
Это позволяет импортировать и использовать эту функцию в любом другом файле следующим образом:
Однако основная проблема заключается в том, что чем больше мы модулируем наш код, тем больше файлов у нас ... Это часто раздражает поиск в этих других файлах, что именно это была функция, какие параметры она получает и т. Д. Давайте решим это с помощью магии документации!
Функциональность текстового редактора по умолчанию
Большинство текстовых редакторов имеют неплохие готовые функциональные возможности для документации. Я собираюсь привести короткий пример для VSCode, что происходит, когда вы наводите курсор на roundDecimals()
из нашего примера выше:
А при удерживании command (в macOS) становится еще лучше:
Затем мы можем даже щелкнуть имя функции, чтобы перейти к этому файлу.
Однако в документации по умолчанию отсутствует то, что у нас нет никаких объяснений того, что функция делает, возвращает или принимает в качестве параметров. 😕
Хорошо, мы можем видеть всю функцию, удерживая команду, но это быстро становится неудобным, когда ваши функции длиннее.
Добавьте свою магию документации 🧙♂️ 💫
Чтобы получить лучшую обратную связь о том, что функция делает, возвращает и принимает в качестве параметров, нам необходимо добавить нашу собственную документацию.
Я покажу, как легко добавить эту информацию с помощью стандарта JSDoc. Сначала вам нужно найти плагин для текстового редактора под названием ‘document this’. С помощью этого плагина вы можете щелкнуть правой кнопкой мыши любую функцию и выбрать документировать. Это дает вам красиво отформатированный блок документации, который выглядит следующим образом:
Теперь мы можем просто ввести информацию о том, что функция делает, возвращает и принимает в качестве параметров. См. Пример ниже:
После добавления этой информации посмотрите, как полностью изменилась наша функция обратной связи в VSCode:
Это может немного отличаться в зависимости от того, какой текстовый редактор вы используете, но большинство современных довольно хорошо справляются с передачей документации по функциям!
Фух! Это было проще, чем вы ожидали, да! Поверьте, небольшая работа с документацией имеет большое значение!
Живи долго и процветай 🎉
С уважением,
- Лука Бан (github)