functional-patterns
Применение функциональных паттернов в Node.js
Код Node.js часто страдает от побочных эффектов и неявных зависимостей, что затрудняет тестирование и отслеживание ошибок. Этот навык предоставляет проверенные функциональные паттерны, включая чистые функции, иммутабельные обновления и монадическую обработку ошибок для написания поддерживаемого кода на TypeScript.
下載技能 ZIP
在 Claude 中上傳
前往 設定 → 功能 → 技能 → 上傳技能
開啟並開始使用
測試它
正在使用「functional-patterns」。 Покажи мне, как структурировать обработчик Node.js API с паттерном чистого ядра и нечистой оболочки
預期結果:
- Отделите бизнес-логику в чистые функции, которые принимают входные данные и возвращают результаты
- Оберните чистые функции в обработчики, которые внедряют зависимости для операций ввода-вывода
- Используйте тип Result для распространения ошибок без исключений
- Пример структуры: validateOrder (чистая) -> calculateDiscount (чистая) -> applyDiscount (чистая) -> processOrderHandler (нечистая оболочка с I/O)
正在使用「functional-patterns」。 Как мне обрабатывать ошибки функционально вместо выбрасывания исключений?
預期結果:
- Определите тип Result с вариантами Ok и Err
- Возвращайте Result.fail для ошибок вместо throw
- Используйте map для преобразования успешных значений
- Используйте flatMap для связывания операций, возвращающих Results
- Обрабатывайте все случаи явно с помощью match или if проверок
正在使用「functional-patterns」。 Покажи мне, как сделать этот код более тестируемым с помощью внедрения зависимостей
預期結果:
- Определите все внешние зависимости (база данных, сеть, clock, logger)
- Передавайте зависимости как параметры в вашу функцию
- Создайте тип Dependencies, который оборачивает все внешние сервисы
- Внедряйте фальшивые реализации в тестах
- Сохраняйте бизнес-логику чистой, изолируя I/O в оболочке
安全審計
安全This skill is pure documentation containing educational TypeScript code examples. The static scanner flagged 36 false positives due to pattern-matching limitations: SHA-256 hashes in JSON metadata were misidentified as weak crypto/C2 indicators, and backticks in TypeScript template literals were misidentified as shell execution. This is a documentation-only skill with no executable code, scripts, network calls, filesystem access, or external command execution capabilities.
風險因素
🌐 網路存取 (1)
⚙️ 外部命令 (20)
品質評分
你能建構什麼
Создание тестируемых API
Создание обработчиков API с чистой бизнес-логикой и внедренными зависимостями для надежных модульных тестов
Стандартизация паттернов кода
Установление единообразной обработки ошибок и управления состоянием в общей кодовой базе
Проверка качества кода
Проверка pull request на соответствие функциональным принципам поддерживаемости и тестируемости
試試這些提示
Покажи мне, как преобразовать эту нечистую функцию в чистую. Функция вычисляет итоги заказа и сохраняет в базу данных.
Напиши функцию иммутабельного обновления, которая изменяет глубоко вложенное свойство в объекте пользователя без мутации оригинала.
Создай функцию pipe, которая связывает операции trim, validate и transform для входных строк пользователя.
Преобразуй эту функцию, использующую блоки try-catch, чтобы использовать паттерн Result с операциями map и flatMap.
最佳實務
- Сохраняйте бизнес-логику чистой, отделяя её от операций ввода-вывода, таких как вызовы базы данных и сетевые запросы
- Используйте иммутабельные обновления с операторами spread и методами массивов вместо мутации объектов на месте
- Возвращайте типы Result из функций вместо выбрасывания исключений, чтобы сделать обработку ошибок явной
避免
- Смешивание I/O с бизнес-логикой в одной функции разрушает тестируемость
- Использование мутабельного состояния и разделяемых переменных создает скрытые зависимости
- Выбрасывание исключений для управления потоком скрывает условия ошибок из сигнатур типов