Dev Diary شماره 2: از توابع تودرتو در کد خود فرار کنید

صحنه را تصور کنید: شما باید یک اشکال مهم را در سیستم پرداخت خود ایجاد کنید، و ذینفع با عصبانیت از گوشه اتاق نظاره گر موارد مفیدی است، مانند “چقدر به اصلاح نزدیک هستیم؟”.

شما با نگاه کردن به برخی کدها شروع می کنید get-payment-methods.ts، نقطه ورودی سطح بالای یک مسیر API.

// get-payment-methods.ts

const getPaymentMethods = async (req) = {
  const paymentMethods = await loadPaymentMethodsForCustomer(req.customerId);
  return res.send(paymentMethods);
}

این معقول به نظر می رسد، شما با خودتان فکر می کنید.

مشکل شماره 1: پیمایش سخت است

شما باید نگاهی به چه چیزی داشته باشید loadPaymentMethodsForCustomer() انجام می دهد. باشه بریم

CMD کلیک کنید.

// services/payment-methods.ts

const loadPaymentMethodsForCustomer = async (customerId) = {
  try {
    const traceId = uuid();
    const customerPaymentMethods = getPaymentMethodsOrThrow(customerId, traceId);
    return customerPaymentMethods.map(someConversionFunction);
  } catch(err) {
    return errorHandler(err);
  }
}

هوم حالا باید نگاه کنید getPaymentMethodsOrThrow().

CMD کلیک کنید. CMD کلیک کنید. CMD کلیک کنید.

عمیق‌تر و عمیق‌تر وارد شبکه درهم‌تنیده توابع تو در تو می‌شویم. نور خورشید نمی تواند به این اعماق در پایگاه کد نفوذ کند و مدت ها پیش شما دلیل حضورتان در اینجا را از دست داده اید.

مدتی بعد به …

Source link