Отказ от ответственности : Мой опыт в основном заключается в разработке со статически типизированными языками, и даже если я понимаю, как работают динамические типы, я не очень знаком с общими практиками, и я не очень осведомлен о Обычных советов и хитростей пока нет.
Я недавно начал работать в проекте, где мы используем без сервера и развертываем несколько лямбд в AWS с помощью javascript. После глубокого погружения в существующий код я обнаружил обычную практику, которая меня немного шокировала:
Когда лямбда вызывается и получает полезную нагрузку JSON, происходит предварительная предварительная обработка, которая преобразует все значения в объекте в строки.
const mapValues = require('lodash/mapValues')
const escape = require('validator/lib/escape')
...
const body = mapValues(requestBody, value => escape('' + value))
...
Затем после этой предварительной обработки начинается реальная работа (проверка, обработка, вызов других служб и т. Д.) *
Мои первые мысли это:
Преимущество: Помогает уменьшить когнитивную нагрузку возможных различных типов, позволяя предположить, что все всегда будет строкой.
Недостаток: дополнительная сложность, связанная с нестроковыми значениями, такими как числа.
Q1: Есть ли другие преимущества и недостатки использования этого подхода?
Q2: Может ли это считаться плохой практикой? Если так, то почему? (факты, а не мнения, пожалуйста)
Заранее спасибо! :)