{"id":27669,"date":"2026-08-14T04:33:40","date_gmt":"2026-08-14T04:33:40","guid":{"rendered":"https:\/\/umang.pk\/2026\/08\/14\/%d8%af%d9%88%d8%a8%d8%a7%d8%b1%db%81-%d9%84%da%a9%da%be%d9%86%db%92-%da%a9%db%8c-%d8%b7%d8%b1%d9%81-%d8%b1%d8%ac%d9%88%d8%b9-%da%a9%db%8c%db%92-%d8%a8%d8%ba%db%8c%d8%b1-ai-%da%a9%db%92-%d8%b3%d8%a7\/"},"modified":"2026-08-14T04:33:40","modified_gmt":"2026-08-14T04:33:40","slug":"%d8%af%d9%88%d8%a8%d8%a7%d8%b1%db%81-%d9%84%da%a9%da%be%d9%86%db%92-%da%a9%db%8c-%d8%b7%d8%b1%d9%81-%d8%b1%d8%ac%d9%88%d8%b9-%da%a9%db%8c%db%92-%d8%a8%d8%ba%db%8c%d8%b1-ai-%da%a9%db%92-%d8%b3%d8%a7","status":"publish","type":"post","link":"https:\/\/umang.pk\/en_us\/2026\/08\/14\/%d8%af%d9%88%d8%a8%d8%a7%d8%b1%db%81-%d9%84%da%a9%da%be%d9%86%db%92-%da%a9%db%8c-%d8%b7%d8%b1%d9%81-%d8%b1%d8%ac%d9%88%d8%b9-%da%a9%db%8c%db%92-%d8%a8%d8%ba%db%8c%d8%b1-ai-%da%a9%db%92-%d8%b3%d8%a7\/","title":{"rendered":"\u062f\u0648\u0628\u0627\u0631\u06c1 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0637\u0631\u0641 \u0631\u062c\u0648\u0639 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 AI \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u06cc\u0631\u0627\u062b\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u062c\u062f\u06cc\u062f \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0645\u06cc\u06ba \u0646\u06d2 \u0645\u06cc\u0631\u0627\u062b\u06cc \u06c1\u062c\u0631\u062a \u06a9\u0648 \u06a9\u0627\u0645\u06cc\u0627\u0628 \u0633\u0645\u062c\u06be\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u067e\u0631\u0627\u0646\u0627 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0630\u062e\u06cc\u0631\u06c1 \u062e\u0627\u0646\u0648\u06ba \u0633\u06d2 \u063a\u0627\u0626\u0628 \u06c1\u0648 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0686\u06be \u0645\u0627\u06c1 \u0628\u0639\u062f\u060c \u0679\u06cc\u0645 \u0627\u0628 \u0628\u06be\u06cc \u0648\u06c1\u06cc \u062c\u0648\u0691\u06d2\u060c \u0648\u06c1\u06cc \u063a\u06cc\u0631 \u0648\u0627\u0636\u062d \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0642\u0648\u0627\u0639\u062f\u060c \u0627\u0648\u0631 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u0648\u06c1\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0645\u0633\u0627\u0626\u0644 \u0633\u06d2 \u0646\u0645\u0679 \u0631\u06c1\u06cc \u062a\u06be\u06cc\u06d4<\/p>\n<p>\u0627\u06af\u0631\u0686\u06c1 \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc \u0628\u062f\u0644 \u06af\u0626\u06cc \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0645\u062c\u0645\u0648\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0646\u0638\u0627\u0645 \u0632\u06cc\u0627\u062f\u06c1 \u0646\u06c1\u06cc\u06ba \u0628\u062f\u0644\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>AI \u0627\u0633 \u0645\u0633\u0626\u0644\u06d2 \u06a9\u0648 \u0645\u0632\u06cc\u062f \u062f\u0644\u0686\u0633\u067e \u0628\u0646\u0627 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u06cc \u0679\u06cc\u0645 \u06a9\u0648\u0688 \u06a9\u0627 \u062f\u0633\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u062a\u0631\u062c\u0645\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 \u0622\u067e \u0646\u0627\u0648\u0627\u0642\u0641 \u06a9\u0644\u0627\u0633\u0648\u06ba \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0679\u06cc\u0633\u0679 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0688\u0627\u067e\u0679\u0631 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c APIs \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u062f\u06c1\u0631\u0627\u0626\u06d2 \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0627\u0645 \u06a9\u06cc \u0646\u0645\u0627\u06cc\u0627\u06ba \u0645\u0642\u062f\u0627\u0631 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0627\u06c1\u0645\u060c \u0627\u06af\u0631 \u0622\u067e AI \u06a9\u0648\u0688\u0646\u06af \u0679\u0648\u0644 \u06a9\u0648 \u06a9\u0633\u06cc \u0645\u0648\u062c\u0648\u062f\u06c1 \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633\u06d2 \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0648 \u062c\u062f\u06cc\u062f \u0627\u0633\u0679\u06cc\u06a9 \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 \u0628\u0627\u0644\u06a9\u0644 \u0648\u06c1\u06cc \u0645\u0644\u06d2 \u06af\u0627 \u062c\u0648 \u0622\u067e \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <strong>\u0627\u0633\u06cc \u0646\u0638\u0627\u0645 \u06a9\u0648 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0644\u06a9\u06be\u06cc\u06ba\u06d4<\/strong><\/p>\n<p>\u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u06a9\u06c1 \u062c\u062f\u06cc\u062f\u06cc\u062a \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u0645\u06cc\u06ba \u0622\u067e \u06a9\u0648 \u0645\u06cc\u0631\u0627\u062b\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 AI \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u06cc\u06a9 \u0627\u0648\u0631 \u0637\u0631\u06cc\u0642\u06c1 \u062f\u06a9\u06be\u0627\u0646\u0627 \u0686\u0627\u06c1\u062a\u0627 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>AI \u06a9\u0648 \u062e\u0648\u062f\u06a9\u0627\u0631 \u06a9\u0648\u0688 \u0645\u062a\u0631\u062c\u0645 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0639\u0644\u0627\u062c \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0622\u067e AI \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u063a\u06cc\u0631 \u0645\u0627\u0646\u0648\u0633 \u06a9\u0648\u0688 \u0627\u0688\u0648\u06ba \u06a9\u0648 \u0633\u0645\u062c\u06be\u06cc\u06ba\u060c<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646 \u0627\u0648\u0631 \u067e\u0648\u0634\u06cc\u062f\u06c1 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u0631\u06cc\u06ba\u060c<\/p>\n<\/li>\n<li>\n<p>\u0637\u0631\u0632 \u0639\u0645\u0644 \u06a9\u06cc \u062d\u0641\u0627\u0638\u062a \u06a9\u0627 \u062c\u0627\u0644 \u0642\u0627\u0626\u0645 \u06a9\u0631\u06cc\u06ba\u060c<\/p>\n<\/li>\n<li>\n<p>\u0628\u0691\u06be\u062a\u06cc \u06c1\u0648\u0626\u06cc \u0646\u0642\u0644 \u0645\u06a9\u0627\u0646\u06cc \u06a9\u06cc \u062d\u062f\u0648\u062f \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627\u060c<\/p>\n<\/li>\n<li>\n<p>\u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0631\u06cc\u0641\u06cc\u06a9\u0679\u0631\u060c<\/p>\n<\/li>\n<li>\n<p>\u062f\u06c1\u0631\u0627\u0626\u06cc \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u06cc \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u0648 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c<\/p>\n<\/li>\n<li>\n<p>\u067e\u0631\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0646\u0626\u06d2 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u060c<\/p>\n<\/li>\n<li>\n<p>\u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u062a\u06a9 \u067e\u06c1\u0646\u0686\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0631\u062c\u0639\u062a \u06a9\u0627 \u067e\u062a\u06c1 \u0644\u06af\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u06af\u0631\u0686\u06c1 \u0645\u062b\u0627\u0644\u06cc\u06ba TypeScript \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0639\u0645\u0644 \u062e\u0648\u062f TypeScript \u06cc\u0627 Node.js \u0633\u06d2 \u0645\u0646\u0633\u0644\u06a9 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06c1\u0645 \u062d\u0635\u06c1 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06c1\u06d2\u06d4 AI \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u06d2 \u06a9\u0627\u0645 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0627\u0646\u062c\u0627\u0645 \u062f\u06d2 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u0679\u06cc\u0645\u0648\u06ba \u06a9\u0648 \u0627\u0628 \u0628\u06be\u06cc \u06cc\u06c1 \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u06a9\u06c1 \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-prerequisites\">\u0634\u0631\u0637\u06cc\u06ba<\/h2>\n<p>\u0622\u067e \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0622\u0631\u0627\u0645 \u062f\u06c1 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2:<\/p>\n<ul>\n<li>\n<p>\u0628\u0646\u06cc\u0627\u062f\u06cc \u0679\u0627\u0626\u067e \u0627\u0633\u06a9\u0631\u067e\u0679\u060c<\/p>\n<\/li>\n<li>\n<p>\u06cc\u0648\u0646\u0679 \u0627\u0648\u0631 \u0627\u0646\u0636\u0645\u0627\u0645 \u06a9\u06cc \u062c\u0627\u0646\u0686\u061b<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u062d\u0635\u0627\u0631 \u0627\u0646\u062c\u06a9\u0634\u0646\u060c<\/p>\n<\/li>\n<li>\n<p>\u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631 \u06a9\u06d2 \u062a\u0635\u0648\u0631\u0627\u062a\u060c<\/p>\n<\/li>\n<li>\n<p>\u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u0648\u0688 \u0628\u06cc\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0645\u062b\u0627\u0644\u06cc\u06ba Vitest \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0627\u06af\u0631 \u0622\u067e Jest \u06cc\u0627 \u062f\u0648\u0633\u0631\u06d2 \u0679\u06cc\u0633\u0679\u0646\u06af \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0648\u06c1\u06cc \u062e\u06cc\u0627\u0644\u0627\u062a \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-how-to-avoid-a-one-to-one-legacy-migration\">\u0648\u0646 \u0679\u0648 \u0648\u0646 \u0645\u06cc\u0631\u0627\u062b\u06cc \u06c1\u062c\u0631\u062a \u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u0628\u0686\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u067e\u0646\u06d2 \u067e\u0631\u0627\u0646\u06d2 \u0622\u0631\u0688\u0631 \u067e\u0631\u0648\u0633\u06cc\u0633\u0646\u06af \u0633\u0633\u0679\u0645 \u0645\u06cc\u06ba \u0627\u0633 \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u062a\u0635\u0648\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-typescript\">async function processOrder(order: Order) {\n  if (!order.customer.active) {\n    throw new Error(\"Inactive customer\");\n  }\n\n  const discount =\n    order.customer.type === \"PREMIUM\"\n      ? order.total * 0.1\n      : 0;\n\n  const finalAmount = order.total - discount;\n\n  await db.orders.insert({\n    customerId: order.customer.id,\n    amount: finalAmount,\n  });\n\n  await paymentGateway.charge(\n    order.customer.card,\n    finalAmount,\n  );\n\n  await mailer.send(\n    order.customer.email,\n    \"Order processed\",\n  );\n\n  return finalAmount;\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u06a9\u0627\u0641\u06cc \u062d\u062f \u062a\u06a9 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u06cc\u06ba\u060c \u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u06d2 \u0627\u0635\u0648\u0644\u0648\u06ba \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u0631\u06cc\u06ba\u060c \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u06cc\u06ba\u060c \u0627\u062f\u0627\u0626\u06cc\u06af\u06cc \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06d2 \u0686\u0627\u0631\u062c \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u06be\u06cc\u062c\u06cc\u06ba\u06d4<\/p>\n<p>\u0648\u0646 \u0679\u0648 \u0648\u0646 \u06c1\u062c\u0631\u062a \u0622\u067e \u06a9\u0648 \u062a\u0645\u0627\u0645 \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0648\u06ba \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062a\u0627\u0632\u06c1 \u062a\u0631\u06cc\u0646 \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0679\u06be\u0646\u0688\u06cc \u0679\u0627\u0626\u067e \u0627\u0633\u06a9\u0631\u067e\u0679 \u0633\u0631\u0648\u0633 \u067e\u0631 \u062c\u0627\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631 \u06a9\u0648 \u0646\u0626\u06d2 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631 \u0633\u06d2\u060c \u0645\u0648\u062c\u0648\u062f\u06c1 \u0633\u0631\u0648\u0633 \u06a9\u0648 \u0646\u0626\u06cc \u0633\u0631\u0648\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be\u060c \u06cc\u0627 \u0645\u0648\u062c\u0648\u062f\u06c1 ORM \u06a9\u0648 \u0646\u0626\u06d2 ORM \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0628\u06be\u06cc \u0648\u06c1\u06cc \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631\u0644 \u0645\u0633\u0627\u0626\u0644 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u067e\u06c1\u0644\u06cc \u062c\u06af\u06c1\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba AI \u0622\u067e \u06a9\u06d2 \u062e\u0644\u0627\u0641 \u06a9\u0627\u0645 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0627\u0634\u0627\u0631\u06c1 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-text\">Convert this legacy class to TypeScript.\n<\/code><\/pre>\n<p>\u0645\u0627\u0688\u0644 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0627\u067e\u0646\u06cc \u0633\u0627\u062e\u062a \u06a9\u0648 \u0645\u062d\u0641\u0648\u0638 \u0631\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0688\u06be\u0627\u0646\u0686\u06d2 \u06a9\u0648 \u0628\u0686\u0627\u0646\u0627 \u0622\u067e \u06a9\u0627 \u06a9\u0627\u0645 \u06c1\u06d2\u06d4<\/p>\n<p>AI \u0633\u06d2 \u0627\u067e\u0646\u06d2 \u06a9\u0648\u0688 \u06a9\u0627 \u062a\u0631\u062c\u0645\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u0648 \u06a9\u06c1\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u062f\u0648 \u0633\u0648\u0627\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0641\u0631\u0642 \u06a9\u0631\u06cc\u06ba:<\/p>\n<ol>\n<li>\n<p><strong>\u06a9\u0648\u0646 \u0633\u06d2 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0648 \u0632\u0646\u062f\u06c1 \u0631\u06c1\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u061f<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>\u06a9\u0648\u0646 \u0633\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u0648 \u0632\u0646\u062f\u06c1 \u0631\u06c1\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u061f<\/strong><\/p>\n<\/li>\n<\/ol>\n<p>\u0648\u06c1 \u0627\u06cc\u06a9 \u06c1\u06cc \u0633\u0648\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u0628\u06be\u06cc \u06a9\u0628\u06be\u06cc \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u067e\u0631\u0627\u0646\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0637\u0631\u0632 \u0639\u0645\u0644 \u0627\u0628 \u0628\u06be\u06cc \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u06d4 \u0628\u0639\u0636 \u0627\u0648\u0642\u0627\u062a \u0631\u0648\u06cc\u06c1 \u0627\u06c1\u0645 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u0644\u06cc\u06a9\u0646 \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u0646\u0627 \u067e\u0691\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0648\u0631 \u06a9\u0628\u06be\u06cc \u06a9\u0628\u06be\u06cc \u0648\u06c1 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0646\u06c1 \u062a\u0648 \u0632\u0646\u062f\u06c1 \u0631\u06c1\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u0628\u0691\u06d2 \u067e\u06cc\u0645\u0627\u0646\u06d2 \u067e\u0631 \u06c1\u062c\u0631\u062a \u0634\u0631\u0648\u0639 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06cc\u06c1 \u0641\u0631\u0642 \u06a9\u0631\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-map-a-legacy-codebase-before-changing-it\">\u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u06cc\u0631\u0627\u062b\u06cc \u06a9\u0648\u0688\u0628\u06cc\u0633 \u06a9\u0627 \u0646\u0642\u0634\u06c1 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u0645\u06cc\u0631\u0627\u062b\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u0627 \u067e\u06c1\u0644\u0627 \u0645\u0634\u06a9\u0644 \u062d\u0635\u06c1 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0627 \u06c1\u0648\u0646\u0627 \u0645\u0641\u06cc\u062f \u06c1\u0648\u06af\u0627\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0628\u06c1\u062a \u0633\u06d2 \u0646\u0638\u0627\u0645\u0648\u06ba \u0645\u06cc\u06ba \u0627\u0635\u0644 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0648 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2:<\/p>\n<p>\u06cc\u06c1 \u0627\u06cc\u06a9 \u0627\u06cc\u0633\u0627 \u0639\u0644\u0627\u0642\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba AI \u062a\u0639\u0645\u06cc\u0631\u0627\u062a\u06cc \u0641\u06cc\u0635\u0644\u06d2 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0648\u0642\u062a \u0628\u0686\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u0686\u06be\u0644\u06d2 \u06a9\u0648 \u0644\u06d2 \u0644\u0648\u06d4 <code>processOrder<\/code> \u0641\u0646\u06a9\u0634\u0646 AI \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06c1\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0633\u0648\u0627\u0644\u0627\u062a \u067e\u0648\u0686\u06be \u06a9\u0631 \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba \u062c\u06cc\u0633\u06d2:<\/p>\n<pre><code class=\"language-text\">Identify the business rules in this function.\n\nList every side effect.\n\nWhich external systems does it depend on?\n\nWhich parts could be expressed as pure functions?\n\nWhich observable behaviors should probably be protected\nwith tests before this function is changed?\n\nDo not rewrite the function.\n<\/code><\/pre>\n<p>\u0622\u062e\u0631\u06cc \u06c1\u062f\u0627\u06cc\u062a \u0622\u067e \u06a9\u06d2 \u062e\u06cc\u0627\u0644 \u0633\u06d2 \u06a9\u06c1\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u0627\u06c1\u0645 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 \u0627\u06cc\u06a9 \u06c1\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u06cc\u06ba \u062a\u062c\u0632\u06cc\u06c1 \u0627\u0648\u0631 \u062a\u0628\u062f\u06cc\u0644\u06cc \u0648\u0627\u0642\u0639 \u06c1\u0648\u062a\u06cc \u06c1\u06d2 \u062a\u0648\u060c AI \u0679\u0648\u0644\u0632 \u0622\u0633\u0627\u0646\u06cc \u0633\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06d2 \u0645\u0633\u0627\u0626\u0644 \u06a9\u0648 \u062d\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0627\u0628\u06be\u06cc \u062a\u06a9 \u067e\u0648\u0631\u06cc \u0637\u0631\u062d \u0633\u06d2 \u0633\u0645\u062c\u06be \u0645\u06cc\u06ba \u0646\u06c1\u06cc\u06ba \u0622\u0626\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u06cc\u06ba \u067e\u06c1\u0644\u06d2 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u062a\u062c\u0632\u06cc\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u0648 \u062a\u0631\u062c\u06cc\u062d \u062f\u06cc\u062a\u0627 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0628\u0691\u06d2 \u06a9\u0648\u0688 \u0628\u06cc\u0633\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06c1\u0645 \u0627\u0633 \u0639\u0645\u0644 \u06a9\u0648 \u0645\u062a\u0639\u062f\u062f \u0633\u0637\u062d\u0648\u06ba \u067e\u0631 \u062f\u06c1\u0631\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0630\u062e\u06cc\u0631\u06c1 \u06a9\u06cc \u0633\u0637\u062d \u067e\u0631\u060c \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u062f\u0627\u062e\u0644\u06cc \u0645\u0642\u0627\u0645\u060c<\/p>\n<\/li>\n<li>\n<p>\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc\u060c<\/p>\n<\/li>\n<li>\n<p>\u0628\u06cc\u0631\u0648\u0646\u06cc API\u060c<\/p>\n<\/li>\n<li>\n<p>\u067e\u06cc\u063a\u0627\u0645 \u06a9\u06cc \u062f\u0645\u060c<\/p>\n<\/li>\n<li>\n<p>\u067e\u0633 \u0645\u0646\u0638\u0631 \u06a9\u06d2 \u06a9\u0627\u0645\u060c<\/p>\n<\/li>\n<li>\n<p>\u0637\u06d2 \u0634\u062f\u06c1 \u06a9\u0627\u0645\u060c<\/p>\n<\/li>\n<li>\n<p>\u062a\u0631\u06a9\u06cc\u0628\u060c<\/p>\n<\/li>\n<li>\n<p>\u0645\u0634\u062a\u0631\u06a9\u06c1 \u0631\u06cc\u0627\u0633\u062a\u060c<\/p>\n<\/li>\n<li>\n<p>\u062b\u0628\u0648\u062a<\/p>\n<\/li>\n<li>\n<p>\u0627\u0648\u0631 \u0645\u0646\u0638\u0648\u0631 \u06a9\u0631\u0644\u06cc\u0627\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u06cc \u0633\u0637\u062d \u067e\u0631 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u062d\u0635\u0627\u0631\u060c<\/p>\n<\/li>\n<li>\n<p>\u0636\u0645\u0646\u06cc \u0627\u062b\u0631\u0627\u062a\u060c<\/p>\n<\/li>\n<li>\n<p>\u0628\u06d2 \u06a9\u0627\u0631 \u0645\u0646\u0637\u0642\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0645\u0631\u0628\u0648\u0637 \u06a9\u0644\u0627\u0633\u0632\u061b<\/p>\n<\/li>\n<li>\n<p>\u0627\u0648\u0631 \u0645\u0636\u0645\u0631 \u0645\u0639\u0627\u06c1\u062f\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u06cc \u0633\u0637\u062d \u067e\u0631\u060c \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u0627\u0646 \u067e\u0679<\/p>\n<\/li>\n<li>\n<p>\u0628\u062c\u0644\u06cc \u06a9\u06cc \u067e\u06cc\u062f\u0627\u0648\u0627\u0631\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633\u062a\u062b\u0646\u0627\u0621\u060c<\/p>\n<\/li>\n<li>\n<p>\u0631\u06cc\u0627\u0633\u062a \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u060c<\/p>\n<\/li>\n<li>\n<p>\u0628\u06cc\u0631\u0648\u0646\u06cc \u06a9\u0631\u0646\u0633\u06cc\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u0648\u0631 \u0627\u06cc\u062c \u06a9\u06cc\u0633\u0632\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>AI \u0627\u0633 \u0627\u06cc\u06a9\u0633\u067e\u0644\u0648\u0631\u06cc\u0634\u0646 \u06a9\u0648 \u0628\u06c1\u062a \u062a\u06cc\u0632 \u062a\u0631 \u0628\u0646\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0627\u0635\u0644 \u0630\u062e\u06cc\u0631\u0648\u06ba\u060c \u0679\u06cc\u0633\u0679\u0648\u06ba\u060c \u0627\u0633\u06a9\u06cc\u0645\u0648\u06ba\u060c \u0646\u0648\u0634\u062a\u06c1 \u062c\u0627\u062a\u060c \u0627\u0648\u0631 \u067e\u06cc\u062f\u0627\u0648\u0627\u0631\u06cc \u0631\u0648\u06cc\u06d2 \u06a9\u06d2 \u062e\u0644\u0627\u0641 \u0686\u06cc\u06a9 \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u06d2 \u06a9\u0648\u0688 \u06a9\u06cc \u067e\u0631\u0627\u0639\u062a\u0645\u0627\u062f \u062a\u0641\u0635\u06cc\u0644 \u0627\u0628 \u0628\u06be\u06cc \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u062a\u0641\u0635\u06cc\u0644 \u06c1\u06d2\u06d4 <strong>\u0630\u062e\u06cc\u0631\u06c1 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u0627 \u0630\u0631\u06cc\u0639\u06c1 \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4<\/strong><\/p>\n<h2 id=\"heading-how-to-build-characterization-tests-before-refactoring\">\u0631\u06cc \u0641\u06cc\u06a9\u0679\u0631\u0646\u06af \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u06d2 \u0679\u06cc\u0633\u0679 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u0645\u06cc\u0631\u0627\u062b\u06cc \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0645\u0627\u06cc\u0648\u0633 \u06a9\u0646 \u062d\u0635\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0639\u062c\u06cc\u0628 \u0633\u0644\u0648\u06a9 \u0636\u0631\u0648\u0631\u06cc \u0646\u06c1\u06cc\u06ba \u06a9\u06c1 \u062d\u0627\u062f\u062b\u0627\u062a\u06cc \u06c1\u0648\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u0648 \u0627\u06cc\u0633\u0627 \u06a9\u0648\u0688 \u0645\u0644 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0628\u0638\u0627\u06c1\u0631 \u063a\u0644\u0637 \u0645\u0639\u0644\u0648\u0645 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0635\u0631\u0641 \u0628\u0639\u062f \u0645\u06cc\u06ba \u0645\u0639\u0644\u0648\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631 \u06a9\u06d2 \u062f\u06cc\u06af\u0631 \u062d\u0635\u06d2 \u0627\u0633 \u067e\u0631 \u0645\u0646\u062d\u0635\u0631 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u06d2 \u0679\u06cc\u0633\u0679 \u06a9\u0627\u0645 \u0622\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u0627\u0626\u06cc\u06a9\u0644 \u0641\u06cc\u062f\u0631\u0632 \u0627\u0633 \u0646\u0642\u0637\u06c1 \u0646\u0638\u0631 \u067e\u0631 \u0628\u062d\u062b \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba: <em>\u0645\u06cc\u0631\u0627\u062b\u06cc \u06a9\u0648\u0688 \u06a9\u0648 \u0645\u0624\u062b\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627<\/em>: \u0633\u0633\u0679\u0645 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u0627\u0633 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u067e\u06c1\u0644\u06d2 \u0645\u0639\u0644\u0648\u0645 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0633\u0633\u0679\u0645 \u0641\u06cc \u0627\u0644\u062d\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u067e\u0631 \u063a\u0648\u0631 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-typescript\">export function calculateDiscount(\n  customerType: string,\n  total: number,\n): number {\n  if (customerType === \"PREMIUM\") {\n    return total * 0.1;\n  }\n\n  return 0;\n}\n<\/code><\/pre>\n<p>\u062c\u0627\u0646\u0686 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0631\u0648\u06cc\u06d2 \u06a9\u06cc \u062d\u0641\u0627\u0638\u062a \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-typescript\">import { describe, expect, it } from \"vitest\";\nimport { calculateDiscount } from \".\/calculateDiscount\";\n\ndescribe(\"calculateDiscount\", () => {\n  it(\"applies a 10 percent discount to premium customers\", () => {\n    expect(\n      calculateDiscount(\"PREMIUM\", 100),\n    ).toBe(10);\n  });\n\n  it(\"does not discount regular customers\", () => {\n    expect(\n      calculateDiscount(\"REGULAR\", 100),\n    ).toBe(0);\n  });\n\n  it(\"returns zero when the order total is zero\", () => {\n    expect(\n      calculateDiscount(\"PREMIUM\", 0),\n    ).toBe(0);\n  });\n});\n<\/code><\/pre>\n<p>AI \u0627\u0633 \u062d\u0641\u0627\u0638\u062a\u06cc \u062c\u0627\u0644 \u06a9\u0648 \u0628\u0691\u06be\u0627\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631:<\/p>\n<pre><code class=\"language-text\">Generate characterization tests for this function.\n\nPreserve the existing behavior.\n\nInclude:\n- normal inputs,\n- boundary values,\n- invalid inputs,\n- exceptions,\n- observable side effects.\n\nDo not redesign the function.\n<\/code><\/pre>\n<p>\u067e\u06be\u0631 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u06ba \u06a9\u06c1 \u06a9\u06cc\u0627 \u067e\u06cc\u062f\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u0633\u06d2 \u062b\u0627\u0628\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06a9\u06c1 \u0633\u0627\u0628\u0642\u06c1 \u200b\u200b\u0631\u0648\u06cc\u06c1 \u062f\u0631\u0633\u062a \u062a\u06be\u0627\u06d4 \u0645\u06cc\u06ba \u0631\u06cc\u06a9\u0627\u0631\u0688 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u0648\u06ba \u06a9\u06c1 \u0627\u06af\u0631 \u0645\u06cc\u06ba \u0627\u0633\u06d2 \u0631\u06cc \u0627\u06cc\u06a9\u0679\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba \u062a\u0648 \u06a9\u06cc\u0627 \u0628\u062f\u0644 \u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0641\u0631\u0642 \u0627\u06c1\u0645 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u0679\u06cc\u0633\u0679 \u0627\u0633 \u0631\u0648\u06cc\u06d2 \u06a9\u0648 \u067e\u06a9\u0691\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0622\u067e \u0628\u0639\u062f \u0645\u06cc\u06ba \u0628\u06af \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba \u06a9\u0631\u06cc\u06ba\u06d4 \u062c\u0633 \u0686\u06cc\u0632 \u0633\u06d2 \u0622\u067e \u0628\u0686\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u0648\u06c1 \u062d\u0627\u062f\u062b\u0627\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0631\u0648\u06cc\u06d2 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627 \u0627\u0648\u0631 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0628\u0639\u062f \u0627\u062e\u062a\u0644\u0627\u0641\u0627\u062a \u06a9\u0648 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-find-safe-migration-seams\">\u0645\u062d\u0641\u0648\u0638 \u0646\u0642\u0644 \u0645\u06a9\u0627\u0646\u06cc \u06a9\u06cc \u062d\u062f\u0648\u062f \u06a9\u06cc\u0633\u06d2 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0645\u06cc\u0631\u0627\u062b\u06cc \u0627\u06cc\u067e\u0644\u06cc \u06a9\u06cc\u0634\u0646\u0632 \u06a9\u0648 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0634\u0627\u0630 \u0648 \u0646\u0627\u062f\u0631 \u06c1\u06cc \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631\u060c \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u0627\u06cc\u0633\u06cc \u062c\u06af\u06c1 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u067e\u0631\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0646\u0626\u06d2 \u0633\u0633\u0679\u0645\u0632 \u0639\u0627\u0631\u0636\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0631\u06c1 \u0633\u06a9\u06cc\u06ba\u06d4<\/p>\n<p>\u067e\u0646\u06a9\u06be \u0628\u06be\u06cc <strong>\u0633\u06cc\u0648\u0646<\/strong> \u06a9\u0648 <em>\u0645\u06cc\u0631\u0627\u062b\u06cc \u06a9\u0648\u0688 \u06a9\u0648 \u0645\u0624\u062b\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627<\/em>: \u06cc\u06c1 \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0622\u067e \u0627\u067e\u0646\u06d2 \u0627\u0631\u062f\u06af\u0631\u062f \u06a9\u06cc \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u067e\u0646\u0627 \u0631\u0648\u06cc\u06c1 \u0628\u062f\u0644 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u06a9\u0645\u06cc\u0644 \u06a9\u06cc \u0645\u062b\u0627\u0644 \u0627\u06cc\u06a9 \u0645\u0645\u06a9\u0646\u06c1 \u0633\u06cc\u0648\u0646 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0635\u0644 \u0641\u0646\u06a9\u0634\u0646 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u06a9\u0633\u0679\u0645\u0631 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642\u060c<\/p>\n<\/li>\n<li>\n<p>\u0631\u0639\u0627\u06cc\u062a \u06a9\u0627 \u062d\u0633\u0627\u0628\u060c<\/p>\n<\/li>\n<li>\n<p>\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0627\u0633\u062a\u0642\u0627\u0645\u062a\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u062f\u0627\u0626\u06cc\u06af\u06cc \u06a9\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u0648\u0631 \u0627\u06cc \u0645\u06cc\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u067e\u06c1\u0644\u06d2 \u062f\u0648 \u0642\u062f\u0631\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0631\u0648\u06cc\u06d2 \u06a9\u06d2 \u062a\u062d\u062a \u0622\u062a\u06d2 \u06c1\u06cc\u06ba. \u0628\u0627\u0642\u06cc \u06a9\u0627 \u062a\u0639\u0644\u0642 \u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631 \u0633\u06d2 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0645\u0645\u06a9\u0646\u06c1 \u062d\u062f \u06a9\u06cc \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0688\u0648\u0645\u06cc\u0646\/\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0627\u06ba:<\/strong><\/p>\n<ul>\n<li>\n<p>\u06a9\u0633\u0679\u0645\u0631 \u06a9\u06d2 \u0642\u0648\u0627\u0646\u06cc\u0646\u060c<\/p>\n<\/li>\n<li>\n<p>\u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u06d2 \u0642\u0648\u0627\u0646\u06cc\u0646\u060c<\/p>\n<\/li>\n<li>\n<p>\u0648\u0631\u06a9 \u0641\u0644\u0648 \u0622\u0631\u0688\u0631 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0628\u0646\u06cc\u0627\u062f\u06cc \u0688\u06be\u0627\u0646\u0686\u06d2 \u06a9\u06cc \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0627\u06ba:<\/strong><\/p>\n<ul>\n<li>\n<p>\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u062f\u0627\u0626\u06cc\u06af\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2\u061b<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc \u0645\u06cc\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0646\u0646\u062f\u06c1\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>AI \u0627\u0646 \u062d\u062f\u0648\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631\u0648\u06ba \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631:<\/p>\n<pre><code class=\"language-text\">Analyze these files and identify:\n\n- business rules,\n- infrastructure concerns,\n- side effects,\n- shared mutable state,\n- duplicated logic,\n- dependencies that make isolated testing difficult.\n\nSuggest possible boundaries.\n\nDo not rewrite the code yet.\n<\/code><\/pre>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u0631 \u067e\u06be\u0631\u060c AI \u0622\u0624\u0679 \u067e\u0679 \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u06a9\u06d2 \u0641\u06cc\u0635\u0644\u0648\u06ba \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0641\u06cc\u0635\u0644\u06c1 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0627\u0686\u06be\u0627 \u06a9\u0646\u06a9\u0634\u0646 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627 \u0622\u067e \u06a9\u0648 \u0627\u06cc\u06a9 \u0646\u0642\u0637\u06c1 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u062c\u062f\u06cc\u062f\u06cc\u062a \u067e\u0648\u0631\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0644\u06a9\u06be\u06d2 \u0628\u063a\u06cc\u0631 \u0622\u06af\u06d2 \u0628\u0691\u06be \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-refactor-toward-explicit-responsibilities\">\u0648\u0627\u0636\u062d \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0648\u06ba \u06a9\u06cc \u0637\u0631\u0641 \u0631\u06cc \u0627\u06cc\u06a9\u0679\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u06a9\u0648\u0688 \u06a9\u06d2 \u06a9\u0633\u06cc \u062d\u0635\u06d2 \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u0627 \u0627\u0648\u0631 \u0627\u0633 \u06a9\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0631\u0648\u06cc\u06d2 \u06a9\u0648 \u062c\u0627\u0646\u0686\u0646\u0627 \u0631\u06cc \u0641\u06cc\u06a9\u0679\u0631\u0646\u06af \u06a9\u0627 \u062e\u0637\u0631\u06c1 \u06a9\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0642\u06cc\u0645\u062a\u0648\u06ba \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0648\u0627\u0646\u06cc\u0646 \u062e\u0627\u0644\u0635\u062a\u0627\u064b \u0641\u0639\u0627\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-typescript\">export function calculateDiscount(\n  customerType: string,\n  total: number,\n): number {\n  if (customerType === \"PREMIUM\") {\n    return total * 0.1;\n  }\n\n  return 0;\n}\n<\/code><\/pre>\n<p>\u06a9\u0633\u0679\u0645\u0631 \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0648 \u0627\u0633 \u0645\u06cc\u06ba \u0627\u0644\u06af \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-typescript\">export function validateCustomer(\n  customer: Customer,\n): void {\n  if (!customer.active) {\n    throw new Error(\"Inactive customer\");\n  }\n}\n<\/code><\/pre>\n<p>\u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631 \u0645\u0639\u0627\u06c1\u062f\u0648\u06ba \u0633\u06d2 \u067e\u06cc\u0686\u06be\u06d2 \u0631\u06c1 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-typescript\">export interface OrderRepository {\n  save(order: PersistedOrder): Promise<void>;\n}\n\nexport interface PaymentGateway {\n  charge(\n    card: string,\n    amount: number,\n  ): Promise<void>;\n}\n\nexport interface NotificationService {\n  sendOrderConfirmation(\n    email: string,\n  ): Promise<void>;\n}\n<\/void><\/void><\/void><\/code><\/pre>\n<p>\u0627\u067e\u0646\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06d2 \u0648\u0631\u06a9 \u0641\u0644\u0648 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0622\u0633\u0627\u0646 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-typescript\">export class ProcessOrder {\n  constructor(\n    private readonly orders: OrderRepository,\n    private readonly payments: PaymentGateway,\n    private readonly notifications: NotificationService,\n  ) {}\n\n  async execute(order: Order): Promise<number> {\n    validateCustomer(order.customer);\n\n    const discount = calculateDiscount(\n      order.customer.type,\n      order.total,\n    );\n\n    const finalAmount =\n      order.total - discount;\n\n    await this.orders.save({\n      customerId: order.customer.id,\n      amount: finalAmount,\n    });\n\n    await this.payments.charge(\n      order.customer.card,\n      finalAmount,\n    );\n\n    await this.notifications.sendOrderConfirmation(\n      order.customer.email,\n    );\n\n    return finalAmount;\n  }\n}\n<\/number><\/code><\/pre>\n<p>\u0627\u0633 \u0631\u06cc \u0641\u06cc\u06a9\u0679\u0631\u0646\u06af \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u062e\u0627\u0635 \u0627\u0646\u0642\u0644\u0627\u0628\u06cc \u0628\u0627\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0646\u0642\u0637\u06c1 \u06a9\u0627 \u062d\u0635\u06c1 \u06c1\u06d2.<\/p>\n<p>\u062c\u062f\u06cc\u062f\u06cc\u062a \u06a9\u0648 \u063a\u06cc\u0631 \u0645\u0644\u06a9\u06cc \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06a9\u062b\u0631 \u0627\u06cc\u06a9 \u0627\u06c1\u0645 \u0628\u06c1\u062a\u0631\u06cc \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc\u0648\u06ba \u06a9\u0648 \u0627\u062a\u0646\u0627 \u0648\u0627\u0636\u062d \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u0627\u06af\u0644\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u0648\u0631\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-use-ai-for-mechanical-transformations\">\u0645\u06a9\u06cc\u0646\u06cc\u06a9\u0644 \u0627\u062e\u062a\u0631\u0627\u0639 \u0645\u06cc\u06ba AI \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u062c\u06cc\u0633\u06d2 \u062c\u06cc\u0633\u06d2 \u062d\u062f\u0648\u062f \u0648\u0627\u0636\u062d \u06c1\u0648\u062a\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u060c AI \u0646\u0641\u0627\u0630 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0646\u0642\u0644 \u0645\u06a9\u0627\u0646\u06cc \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u06cc \u0627\u06cc\u06a9 \u0628\u0691\u06cc \u0645\u0642\u062f\u0627\u0631 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u0628\u0627\u0631 \u0628\u0627\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<ul>\n<li>\n<p>API \u062a\u0631\u062c\u0645\u06c1\u060c<\/p>\n<\/li>\n<li>\n<p>\u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u06a9\u06d2 \u0642\u0648\u0627\u0646\u06cc\u0646 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u0688\u0627\u067e\u0679\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c<\/p>\n<\/li>\n<li>\n<p>\u062a\u0631\u062a\u06cc\u0628 \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u067e \u0688\u06cc\u0679 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u062a\u0639\u0631\u06cc\u0641\u060c<\/p>\n<\/li>\n<li>\n<p>\u0688\u06cc\u0679\u0627 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0644\u0627\u0626\u0628\u0631\u06cc\u0631\u06cc \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u060c<\/p>\n<\/li>\n<li>\n<p>\u0628\u0627\u0631 \u0628\u0627\u0631 \u0627\u0646\u0679\u06cc\u06af\u0631\u06cc\u0634\u0646 \u06a9\u0648\u0688 \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>AI \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u062c\u06af\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0635\u0648\u0631 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u0645\u0648\u062c\u0648\u062f\u06c1 \u0633\u0633\u0679\u0645 \u0627\u06cc\u0633 \u06a9\u06cc\u0648 \u0627\u06cc\u0644 \u06a9\u0648 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0627\u0646\u062c\u0627\u0645 \u062f\u06d2 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-typescript\">async function getCustomer(id: number) {\n  const result = await db.query(\n    `SELECT * FROM customer WHERE id = ${id}`,\n  );\n\n  return result[0];\n}\n<\/code><\/pre>\n<p>\u0646\u06cc\u0627 \u0646\u0641\u0627\u0630 \u0628\u0646\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u0637\u0644\u0648\u0628\u06c1 \u0645\u0639\u0627\u06c1\u062f\u06d2 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-typescript\">export interface CustomerRepository {\n  findById(id: number): Promise<customer null=\"\">;\n}\n<\/customer><\/code><\/pre>\n<p>\u067e\u06be\u0631 \u06c1\u0645 \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u0648 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-text\">Implement CustomerRepository using the new database client.\n\nConstraints:\n\n- Keep the CustomerRepository interface unchanged.\n- Use parameterized queries.\n- Do not move business rules into the repository.\n- Preserve the existing null behavior.\n- Preserve the existing error semantics.\n- Return only the implementation.\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u0633 \u0633\u06d2 \u0628\u06c1\u062a \u0645\u062e\u062a\u0644\u0641 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06c1\u06d2:<\/p>\n<pre><code class=\"language-text\">Modernize this database code.\n<\/code><\/pre>\n<p>\u067e\u06c1\u0644\u06cc \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba\u060c \u06c1\u0645 \u0646\u06d2 \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631\u0644 \u0641\u06cc\u0635\u0644\u06d2 \u06a9\u06cc\u06d2 \u0627\u0648\u0631 AI \u0633\u06d2 \u06a9\u06c1\u0627 \u06a9\u06c1 \u0648\u06c1 \u0627\u0646 \u062d\u062f\u0648\u062f \u0645\u06cc\u06ba \u0644\u0627\u06af\u0648 \u06a9\u0631\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u06c1\u0645\u06cc\u06ba \u0646\u0642\u0644 \u0645\u06a9\u0627\u0646\u06cc \u06a9\u06cc \u06a9\u0648\u0634\u0634\u0648\u06ba \u0645\u06cc\u06ba AI \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u0627\u0631\u0622\u0645\u062f \u0645\u0639\u0644\u0648\u0645 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06c1\u0645 \u0641\u06cc\u0635\u0644\u06d2 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u06a9\u0631 \u0644\u06cc\u06d2 \u062c\u0627\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0645\u06a9\u06cc\u0646\u06cc\u06a9\u0644 \u06a9\u0648\u0634\u0634 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631 \u062f\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-migrate-in-small-vertical-slices\">\u0686\u06be\u0648\u0679\u06d2 \u0639\u0645\u0648\u062f\u06cc \u0679\u06a9\u0691\u0648\u06ba \u0645\u06cc\u06ba \u06a9\u06cc\u0633\u06d2 \u0645\u0646\u062a\u0642\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h2>\n<p>\u062c\u0628 \u06c1\u0632\u0627\u0631\u0648\u06ba \u0641\u0627\u0626\u0644\u06cc\u06ba \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0628\u0691\u06d2 \u067e\u06cc\u0645\u0627\u0646\u06d2 \u067e\u0631 \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u0646\u0627 \u0645\u0634\u06a9\u0644 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06cc \u0627\u06cc\u06a9 \u0645\u062d\u0641\u0648\u0638 \u0627\u06a9\u0627\u0626\u06cc \u0627\u06a9\u062b\u0631 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0642\u0627\u0628\u0644\u06cc\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0645\u0627\u0645 \u06a9\u0646\u0679\u0631\u0648\u0644\u0631\u0632\u060c \u067e\u06be\u0631 \u062a\u0645\u0627\u0645 \u062e\u062f\u0645\u0627\u062a\u060c \u0627\u0648\u0631 \u0622\u062e\u0631 \u0645\u06cc\u06ba \u062a\u0645\u0627\u0645 \u0630\u062e\u06cc\u0631\u0648\u06ba \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0622\u067e \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631:<\/p>\n<p><strong>\u0622\u0631\u0688\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/strong><\/p>\n<ul>\n<li>\n<p>API<\/p>\n<\/li>\n<li>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u06cc \u0645\u0646\u0637\u0642<\/p>\n<\/li>\n<li>\n<p>\u0688\u0648\u0645\u06cc\u0646 \u06a9\u06d2 \u0642\u0648\u0627\u0646\u06cc\u0646<\/p>\n<\/li>\n<li>\n<p>\u0627\u0633\u062a\u0642\u0627\u0645\u062a<\/p>\n<\/li>\n<li>\n<p>\u0679\u06cc\u0633\u0679<\/p>\n<\/li>\n<\/ul>\n<p>\u067e\u06be\u0631 \u06c1\u0645 \u0627\u06af\u0644\u06cc \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u06cc \u0637\u0631\u0641 \u0628\u0691\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u06a9\u06d2 \u06a9\u0626\u06cc \u0641\u0648\u0627\u0626\u062f \u06c1\u06cc\u06ba: \u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u0645\u0646\u062a\u0642\u0644\u06cc \u0642\u0627\u0628\u0644 \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u0633\u0627\u0641\u0679 \u0648\u06cc\u0626\u0631 \u06a9\u06d2 \u0642\u0631\u06cc\u0628 \u06c1\u06d2\u06d4 \u062f\u0648\u0633\u0631\u0627\u060c \u0622\u067e AI \u0679\u0648\u0644\u0632 \u06a9\u0648 \u062c\u0648 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0648\u06c1 \u0686\u06be\u0648\u0679\u0627 \u0631\u06c1\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0627\u0646\u0686 \u0628\u06be\u06cc \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0631\u06a9\u0648\u0632 \u06c1\u06d2\u06d4 \u0627\u0648\u0631 \u0627\u06af\u0631 \u06a9\u0686\u06be \u063a\u0644\u0637 \u06c1\u0648 \u062c\u0627\u0626\u06d2 \u062a\u0648 \u063a\u0644\u0637\u06cc \u06a9\u0648 \u067e\u06a9\u0691\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0639\u0645\u0648\u062f\u06cc \u0679\u06a9\u0691\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u0641\u06cc\u062f \u067e\u06c1\u0644\u0627 \u0627\u0634\u0627\u0631\u06c1 \u0635\u0631\u0641 \u062a\u062c\u0632\u06cc\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-text\">We are migrating the Create Order capability.\n\nThe legacy implementation is under \/legacy\/orders.\n\nThe target architecture separates:\n- domain,\n- application,\n- infrastructure.\n\nThe characterization tests under \/tests\/legacy\ndescribe behavior that must remain compatible.\n\nAnalyze the current implementation.\n\nList:\n1. business rules,\n2. external dependencies,\n3. side effects,\n4. likely migration risks,\n5. files that need to change.\n\nDo not generate code yet.\n<\/code><\/pre>\n<p>\u0627\u0633 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u06ba \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u0635\u0644 \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06cc \u0645\u0646\u0635\u0648\u0628\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0628\u062a\u062f\u0631\u06cc\u062c \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u06be\u06cc \u0645\u0637\u0627\u0628\u0642\u062a \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u060c \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u0645\u0627\u0631\u0679\u0646 \u0641\u0627\u0624\u0644\u0631 \u06a9\u06cc \u0627\u0633\u0679\u0631\u06cc\u0646\u06af\u0644\u0631 \u0641\u0650\u06af \u0627\u067e\u0631\u0648\u0686\u060c \u062c\u06c1\u0627\u06ba \u0627\u06cc\u06a9 \u0628\u0691\u06cc \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0646\u0626\u06cc \u0641\u0639\u0627\u0644\u06cc\u062a \u0645\u0648\u062c\u0648\u062f\u06c1 \u0646\u0638\u0627\u0645 \u0633\u06d2 \u0628\u062a\u062f\u0631\u06cc\u062c \u0627\u062e\u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06c1\u0645 \u0627\u0644\u0641\u0627\u0638 \u06cc\u06c1 \u06c1\u06cc\u06ba\u06d4 <strong>\u0622\u06c1\u0633\u062a\u06c1 \u0622\u06c1\u0633\u062a\u06c1<\/strong>.<\/p>\n<p>AI \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u0648 \u062a\u06cc\u0632 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633 \u0633\u06d2 \u0628\u06af \u0628\u06cc\u0646\u06af \u06c1\u062c\u0631\u062a \u06a9\u0627 \u062e\u0637\u0631\u06c1 \u06a9\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627\u06d4<\/p>\n<h2 id=\"heading-how-to-compare-legacy-and-modern-behavior\">\u0645\u06cc\u0631\u0627\u062b\u06cc \u0631\u0648\u06cc\u06d2 \u06a9\u0627 \u062c\u062f\u06cc\u062f \u0637\u0631\u0632 \u0639\u0645\u0644 \u0633\u06d2 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u06cc\u0648\u0646\u0679 \u0679\u06cc\u0633\u0679 \u0627\u06cc\u06a9 \u0642\u0633\u0645 \u06a9\u06cc \u062d\u0641\u0627\u0638\u062a \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0646\u0642\u0644 \u0645\u06a9\u0627\u0646\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0645\u06cc\u06ba \u067e\u0631\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0646\u0626\u06d2 \u0646\u0641\u0627\u0630 \u06a9\u0627 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0646\u0627 \u0628\u06be\u06cc \u067e\u0633\u0646\u062f \u06a9\u0631\u062a\u0627 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0641\u0631\u0636 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u062f\u0648\u0646\u0648\u06ba \u0633\u0633\u0679\u0645 \u0627\u06cc\u06a9 \u06c1\u06cc \u0622\u0631\u0688\u0631 \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0627\u06cc\u06a9 \u06c1\u06cc \u0641\u06a9\u0633\u0686\u0631 \u0686\u0644\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-typescript\">const inputs = [\n  premiumCustomerOrder,\n  standardCustomerOrder,\n  inactiveCustomerOrder,\n];\n\nfor (const input of inputs) {\n  const legacyResult =\n    await legacyProcessor(input);\n\n  const modernResult =\n    await modernProcessor(input);\n\n  expect(modernResult).toEqual(legacyResult);\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u062a\u0641\u0631\u06cc\u0642 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06cc \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u0634\u06a9\u0644 \u06c1\u06d2\u06d4 \u0622\u067e HTTP \u062d\u062f\u0648\u062f \u0645\u06cc\u06ba \u0628\u06be\u06cc \u0627\u06cc\u0633\u0627 \u06c1\u06cc \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0648\u06c1\u06cc \u0628\u06be\u06cc\u062c\u06cc\u06ba <code>POST \/orders<\/code> \u062f\u0648\u0646\u0648\u06ba \u0648\u0631\u0698\u0646 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p>\u0627\u0633\u0679\u06cc\u0679\u0633 \u06a9\u0648\u0688<\/p>\n<\/li>\n<li>\n<p>\u0631\u062f\u0639\u0645\u0644 \u067e\u06d2 \u0644\u0648\u0688<\/p>\n<\/li>\n<li>\n<p>\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba<\/p>\n<\/li>\n<li>\n<p>\u0648\u0627\u0642\u0639\u06c1 \u06a9\u0627 \u0627\u062e\u0631\u0627\u062c<\/p>\n<\/li>\n<li>\n<p>\u0628\u06cc\u0631\u0648\u0646\u06cc \u06a9\u0631\u0646\u0633\u06cc<\/p>\n<\/li>\n<li>\n<p>\u063a\u0644\u0637\u06cc<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u06c1\u0645 \u0646\u0648\u0679: \u0627\u062e\u062a\u0644\u0627\u0641\u0627\u062a \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0628\u06af \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0628\u0639\u0636 \u0627\u0648\u0642\u0627\u062a \u0631\u0648\u06cc\u06d2 \u06a9\u0648 \u0628\u062f\u0644\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u062c\u0648 \u0686\u06cc\u0632 \u0645\u0641\u06cc\u062f \u06c1\u06d2 \u0648\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u0627\u062e\u062a\u0644\u0627\u0641\u0627\u062a \u06a9\u0648 \u0627\u062a\u0646\u0627 \u0646\u0645\u0627\u06cc\u0627\u06ba \u0628\u0646\u0627 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0633\u06cc \u06a9\u0648 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u0627\u0646 \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u0646\u0627 \u067e\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>AI \u06cc\u06c1\u0627\u06ba \u0628\u06be\u06cc \u0645\u062f\u062f \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0633\u06cc\u0646\u06a9\u0691\u0648\u06ba \u062a\u0636\u0627\u062f\u0627\u062a \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u0627\u0646\u06c1\u06cc\u06ba \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u06af\u0631\u0648\u067e \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06c1\u06c1 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-text\">Analyze these behavioral mismatches.\n\nGroup them by likely cause.\n\nPay particular attention to:\n- rounding,\n- null handling,\n- timezone conversion,\n- validation,\n- serialization,\n- data mapping.\n\nDo not label a mismatch as a defect unless the\navailable evidence supports that conclusion.\n<\/code><\/pre>\n<p>\u06cc\u06c1 AI \u06a9\u0627 \u0627\u0686\u06be\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0645\u0627\u0688\u0644 \u062a\u062d\u0642\u06cc\u0642\u06cc \u06a9\u0627\u0645 \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06a9\u06c1 \u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u06a9\u0627 \u06a9\u0648\u0626\u06cc \u0639\u0645\u0644 \u0642\u0627\u0628\u0644 \u0642\u0628\u0648\u0644 \u06c1\u06d2 \u06cc\u0627 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-how-to-use-shadow-traffic-to-find-regressions\">\u0631\u06cc\u06af\u0631\u06cc\u0634\u0646\u0632 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0634\u06cc\u0688\u0648 \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0628\u0627\u0644\u0622\u062e\u0631\u060c \u0622\u067e \u06a9\u06d2 \u0679\u06cc\u0633\u0679 \u0641\u06a9\u0633\u0686\u0631 \u0645\u0632\u06cc\u062f \u0646\u0645\u0627\u0626\u0646\u062f\u06c1 \u0646\u06c1\u06cc\u06ba \u0631\u06c1\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<p>\u067e\u06cc\u062f\u0627\u0648\u0627\u0631\u06cc \u0646\u0638\u0627\u0645\u0648\u06ba \u06a9\u0648 \u0627\u0646 \u067e\u0679 \u06a9\u06d2 \u0645\u062c\u0645\u0648\u0639\u06d2 \u0645\u0648\u0635\u0648\u0644 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0646\u06c1\u06cc\u06ba \u06a9\u0633\u06cc \u0646\u06d2 \u0679\u06cc\u0633\u0679 \u0633\u0648\u06cc\u0679 \u0645\u06cc\u06ba \u0688\u0627\u0644\u0646\u06d2 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0633\u0648\u0686\u0627 \u0628\u06be\u06cc \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u06d4<\/p>\n<p>\u0627\u0646 \u0627\u062e\u062a\u0644\u0627\u0641\u0627\u062a \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u0627 \u0627\u06cc\u06a9 \u0637\u0631\u06cc\u0642\u06c1 \u0634\u06cc\u0688\u0648 \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u06c1\u06d2\u06d4 \u0644\u06cc\u06af\u06cc\u0633\u06cc \u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0635\u0627\u0631\u0641 \u06a9\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u067e\u0631 \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc \u06a9\u0631\u062a\u06cc \u0631\u06c1\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u0648\u06ba \u06a9\u06cc \u06a9\u0627\u067e\u06cc\u0627\u06ba \u0628\u06be\u06cc \u0646\u0626\u06d2 \u0646\u0641\u0627\u0630 \u0645\u06cc\u06ba \u0645\u0646\u062a\u0642\u0644 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0646\u0626\u06d2 \u0646\u062a\u0627\u0626\u062c \u0635\u0631\u0641 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u06d2 \u0645\u0642\u0627\u0635\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0635\u0627\u0631\u0641 \u06a9\u0648 \u0648\u0627\u067e\u0633 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u06d2 \u062c\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631:<\/p>\n<pre><code class=\"language-text\">Legacy:\n200\n{ \"total\": 90 }\n\nModern:\n200\n{ \"total\": 90 }\n\nMATCH\n<\/code><\/pre>\n<p>\u06cc\u0627:<\/p>\n<pre><code class=\"language-text\">Legacy:\n200\n{ \"total\": 90 }\n\nModern:\n200\n{ \"total\": 100 }\n\nMISMATCH\n<\/code><\/pre>\n<p>\u0627\u0646 \u062a\u0636\u0627\u062f\u0627\u062a \u06a9\u0648 \u062c\u0645\u0639 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0622\u067e \u06a9\u0648 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062b\u0628\u0648\u062a \u0645\u0644\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u0627 \u0646\u06cc\u0627 \u0633\u0633\u0679\u0645 \u0622\u067e \u06a9\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0628\u06d2 \u0646\u0642\u0627\u0628 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u062d\u0642\u06cc\u0642\u06cc \u0679\u0631\u06cc\u0641\u06a9 \u0645\u06cc\u06ba \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u062a\u06a9\u0646\u06cc\u06a9 \u0645\u06cc\u06ba \u0622\u067e\u0631\u06cc\u0634\u0646\u0644 \u062a\u062d\u0641\u0638\u0627\u062a \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u0648 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0627\u062d\u062a\u06cc\u0627\u0637 \u0633\u06d2 \u0633\u0648\u0686\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2:<\/p>\n<ul>\n<li>\n<p>\u0646\u0642\u0644\u06cc \u0636\u0645\u0646\u06cc \u0627\u062b\u0631\u0627\u062a\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u062f\u0627\u0626\u06cc\u06af\u06cc \u06a9\u06cc \u06a9\u0631\u0646\u0633\u06cc\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc \u0645\u06cc\u0644<\/p>\n<\/li>\n<li>\n<p>\u0644\u06a9\u06be\u06cc\u06ba\u060c<\/p>\n<\/li>\n<li>\n<p>\u062a\u0646\u06c1\u0627\u0626\u06cc\u060c<\/p>\n<\/li>\n<li>\n<p>\u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u06a9\u0627 \u0628\u0648\u062c\u06be\u060c<\/p>\n<\/li>\n<li>\n<p>\u0627\u0648\u0631 \u0628\u06cc\u0631\u0648\u0646\u06cc APIs \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2<\/p>\n<\/li>\n<\/ul>\n<p>\u0634\u06cc\u0688\u0648 \u0645\u062b\u0627\u0644\u0648\u06ba \u06a9\u0648 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0648\u0626\u06cc \u0646\u0627\u0642\u0627\u0628\u0644 \u0648\u0627\u067e\u0633\u06cc \u0636\u0645\u0646\u06cc \u0627\u062b\u0631\u0627\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u06d2 \u0686\u0627\u06c1\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0641\u0632\u06cc\u06a9\u0644 \u067e\u06cc\u0645\u0646\u0679 \u0627\u0688\u0627\u067e\u0679\u0631 \u06a9\u0648 \u0631\u06cc\u06a9\u0627\u0631\u0688\u0646\u06af \u0627\u0688\u0627\u067e\u0679\u0631 \u0633\u06d2 \u0628\u062f\u0644 \u062f\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-typescript\">export class RecordingPaymentGateway\n  implements PaymentGateway {\n\n  public readonly calls: Array<{\n    card: string;\n    amount: number;\n  }> = [];\n\n  async charge(\n    card: string,\n    amount: number,\n  ): Promise<void> {\n    this.calls.push({\n      card,\n      amount,\n    });\n  }\n}\n<\/void><\/code><\/pre>\n<p>\u0627\u0628 \u0622\u067e \u0627\u067e\u0646\u06d2 \u0635\u0627\u0631\u0641\u06cc\u0646 \u06a9\u0648 \u062f\u0648 \u0628\u0627\u0631 \u0628\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0628\u0644\u0646\u06af \u06a9\u06d2 \u0627\u0631\u0627\u062f\u06d2 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-how-to-test-the-architecture-you-actually-want\">\u0622\u067e \u062c\u0633 \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0648 \u0627\u0635\u0644 \u0645\u06cc\u06ba \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0633 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u06af\u0631 \u06c1\u062c\u0631\u062a \u06a9\u06d2 \u0645\u0642\u0627\u0635\u062f \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u0646\u0627 \u06c1\u06d2 \u062a\u0648 \u0635\u0631\u0641 \u0637\u0631\u0632 \u0639\u0645\u0644 \u06a9\u06cc \u0645\u0637\u0627\u0628\u0642\u062a \u06a9\u0627\u0641\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0641\u0631\u0636 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u0646\u06d2 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u06cc\u0627 \u06c1\u06d2:<\/p>\n<blockquote>\n<p>\u0688\u0648\u0645\u06cc\u0646 \u06a9\u0648\u0688 \u06a9\u0627 \u0627\u0646\u062d\u0635\u0627\u0631 \u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631 \u06a9\u0648\u0688 \u067e\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<\/blockquote>\n<p>\u0627\u06af\u0631 \u0648\u06c1 \u0627\u0635\u0648\u0644 \u0635\u0631\u0641 \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631 \u0688\u0627\u06cc\u0627\u06af\u0631\u0627\u0645 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u06c1\u062c\u0631\u062a \u06a9\u0627 \u062f\u0628\u0627\u0624 \u0628\u0627\u0644\u0622\u062e\u0631 \u0627\u0646\u06c1\u06cc\u06ba \u062a\u0648\u0691 \u062f\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u062a\u0648 \u0627\u0633 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0633\u0627\u062f\u06c1 \u0645\u0646\u0635\u0648\u0628\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0622\u067e \u062f\u0631\u0622\u0645\u062f\u0627\u062a \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0628\u0691\u06d2 \u067e\u06cc\u0645\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0646\u062d\u0635\u0627\u0631\u06cc \u062a\u062c\u0632\u06cc\u06c1 \u06a9\u0627 \u0622\u0644\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u062a\u0639\u0645\u06cc\u0631\u0627\u062a\u06cc \u0627\u0635\u0648\u0644\u0648\u06ba \u06a9\u0648 \u0646\u0627\u0641\u0630 \u06a9\u0631 \u0633\u06a9\u06d2\u06d4<\/p>\n<p>\u062f\u0631\u0633\u062a \u0679\u0648\u0644\u0646\u06af \u0627\u0635\u0648\u0644 \u0633\u06d2 \u06a9\u0645 \u0627\u06c1\u0645 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0627\u06af\u0631 \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631\u0644 \u0631\u06a9\u0627\u0648\u0679\u06cc\u06ba \u0627\u06c1\u0645 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0627\u0646\u06c1\u06cc\u06ba \u062a\u0648\u0691\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u06ba\u06d4<\/strong><\/p>\n<p>\u0622\u067e \u06a9\u0648 \u0627\u0633 \u0637\u0631\u062d \u06a9\u06d2 \u0627\u0635\u0648\u0644 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u0633\u06a9\u062a\u06cc \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u0622\u067e \u06a9\u06d2 \u0688\u0648\u0645\u06cc\u0646 \u06a9\u0648 \u0627\u0646\u0641\u0631\u0627\u0633\u0679\u0631\u06a9\u0686\u0631 \u067e\u0631 \u0627\u0646\u062d\u0635\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0622\u067e \u06a9\u06d2 \u0688\u0648\u0645\u06cc\u0646 \u06a9\u0648 HTTP \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u067e\u0631 \u0627\u0646\u062d\u0635\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u06a9\u0648\u0688 \u06a9\u0627 \u0627\u0646\u062d\u0635\u0627\u0631 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0688\u0631\u0627\u0626\u06cc\u0648\u0631\u0632 \u067e\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u06cc\u06a9 \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u0648 \u062f\u0648\u0633\u0631\u06d2 \u0645\u0627\u0688\u06cc\u0648\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0646\u0641\u0627\u0630 \u06a9\u0648 \u062f\u0631\u0622\u0645\u062f \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>AI \u06a9\u06cc \u0645\u062f\u062f \u0633\u06d2 \u0645\u0646\u062a\u0642\u0644\u06cc \u0645\u06cc\u06ba \u06cc\u06c1 \u06a9\u06cc\u0648\u06ba \u0627\u06c1\u0645 \u06c1\u06d2\u061f \u06a9\u06cc\u0648\u0646\u06a9\u06c1 AI \u06a9\u0648\u0688 \u06a9\u0648 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06d2 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0628\u06c1\u062a \u0627\u0686\u06be\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u0633\u06cc \u062f\u0648\u0633\u0631\u06d2 \u0645\u0627\u0688\u06cc\u0648\u0644 \u062a\u06a9 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u06a9\u0631\u06a9\u06d2 \u0641\u0648\u0631\u06cc \u0645\u0633\u0626\u0644\u06c1 \u062d\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u06a9\u0648\u0688 \u0628\u0627\u0644\u06a9\u0644 \u0648\u06c1\u06cc \u06a9\u0631\u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u062d\u062f\u0648\u062f \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u0627 \u062d\u0635\u06c1 \u0646\u06c1 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631\u0644 \u0679\u06cc\u0633\u0679\u0646\u06af \u0627\u06cc\u0633\u06cc \u062d\u062f\u0648\u062f \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062c\u0646 \u06a9\u06cc \u063a\u0644\u0637\u06cc \u0633\u06d2 \u062e\u0644\u0627\u0641 \u0648\u0631\u0632\u06cc \u06a9\u0631\u0646\u0627 \u0627\u0646\u0633\u0627\u0646\u0648\u06ba \u0627\u0648\u0631 AI \u0679\u0648\u0644\u0632 \u062f\u0648\u0646\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0634\u06a9\u0644 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-decide-which-tasks-ai-should-handle\">\u06cc\u06c1 \u06a9\u06cc\u0633\u06d2 \u0637\u06d2 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 AI \u06a9\u0648 \u06a9\u0646 \u06a9\u0627\u0645\u0648\u06ba \u06a9\u0648 \u0633\u0646\u0628\u06be\u0627\u0644\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4<\/h2>\n<p>\u0646\u0642\u0644 \u0645\u06a9\u0627\u0646\u06cc \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u06a9\u0627\u0645\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u0627 \u0633\u0644\u0648\u06a9 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u0686\u06be \u0622\u0679\u0648\u0645\u06cc\u0634\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0686\u06be\u06d2 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-tasks-where-ai-is-usually-useful\">\u0648\u06c1 \u06a9\u0627\u0645 \u062c\u06c1\u0627\u06ba AI \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0641\u06cc\u062f \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<ul>\n<li>\n<p>\u063a\u06cc\u0631 \u0645\u0627\u0646\u0648\u0633 \u06a9\u0648\u0688 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u0646\u0627<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u06cc \u0634\u0646\u0627\u062e\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0627\u0635\u0648\u0644 \u0646\u06a9\u0627\u0644\u0646\u0627<\/p>\n<\/li>\n<li>\n<p>\u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u06d2 \u0679\u06cc\u0633\u0679 \u06a9\u06cc\u0633\u0632 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/p>\n<\/li>\n<li>\n<p>\u062f\u0648\u0628\u0627\u0631\u06c1 \u0642\u0627\u0628\u0644 \u0627\u0688\u0627\u067e\u0679\u0631 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/p>\n<\/li>\n<li>\n<p>\u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 API \u0627\u067e \u0688\u06cc\u0679\u0633<\/p>\n<\/li>\n<li>\n<p>\u0645\u0634\u06cc\u0646 \u06a9\u0648\u0688 \u06a9\u0627 \u062a\u0631\u062c\u0645\u06c1<\/p>\n<\/li>\n<li>\n<p>\u06c1\u062c\u0631\u062a \u06a9\u06cc \u0686\u06cc\u06a9 \u0644\u0633\u0679 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/p>\n<\/li>\n<li>\n<p>\u0646\u0641\u0627\u0630 \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1<\/p>\n<\/li>\n<li>\n<p>\u0631\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u06cc \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc<\/p>\n<\/li>\n<li>\n<p>\u062a\u06a9\u0646\u06cc\u06a9\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u0627 \u0645\u0633\u0648\u062f\u06c1 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u0646\u0627<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-tasks-where-i-want-significant-engineering-review\">\u0627\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u062c\u0646 \u0645\u06cc\u06ba \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u06a9\u0627 \u0627\u06c1\u0645 \u062c\u0627\u0626\u0632\u06c1 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<ul>\n<li>\n<p>\u0645\u0627\u0688\u06cc\u0648\u0644 \u0628\u0627\u0624\u0646\u0688\u0631\u06cc \u06a9\u06cc \u062a\u062c\u0648\u06cc\u0632<\/p>\n<\/li>\n<li>\n<p>\u0688\u0648\u0645\u06cc\u0646 \u06a9\u0627 \u062a\u0635\u0648\u0631 \u0646\u06a9\u0627\u0644\u0646\u0627<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u062c\u0648\u0691\u06d2 \u06c1\u0648\u0626\u06d2 \u06a9\u0644\u0627\u0633 \u0631\u06cc \u0641\u06cc\u06a9\u0679\u0631\u0646\u06af<\/p>\n<\/li>\n<li>\n<p>\u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u0627 \u0622\u0631\u0688\u0631 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u067e\u0646\u0627 \u0688\u06cc\u0679\u0627 \u0645\u0627\u0688\u0644 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u0679\u06cc\u06af\u0631\u06cc\u0679\u0688 \u0628\u0627\u0624\u0646\u0688\u0631\u06cc \u0688\u06cc\u0632\u0627\u0626\u0646<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-decisions-i-would-keep-under-human-ownership\">\u0641\u06cc\u0635\u0644\u06d2 \u0627\u0646\u0633\u0627\u0646\u0648\u06ba \u06a9\u06d2 \u06c1\u0627\u062a\u06be \u0645\u06cc\u06ba \u0631\u06c1\u06cc\u06ba \u06af\u06d2\u06d4<\/h3>\n<ul>\n<li>\n<p>\u06c1\u062f\u0641 \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631<\/p>\n<\/li>\n<li>\n<p>\u0642\u0627\u0628\u0644 \u0642\u0628\u0648\u0644 \u0631\u0648\u06cc\u06d2 \u06a9\u06d2 \u0627\u062e\u062a\u0644\u0627\u0641\u0627\u062a<\/p>\n<\/li>\n<li>\n<p>\u0633\u06cc\u06a9\u0648\u0631\u0679\u06cc \u06a9\u0627 \u062f\u0627\u0626\u0631\u06c1<\/p>\n<\/li>\n<li>\n<p>\u0688\u06cc\u0679\u0627 \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc<\/p>\n<\/li>\n<li>\n<p>\u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u0644\u0627\u0646\u0686 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0631\u0648\u0644 \u0628\u06cc\u06a9 \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u0631\u0627\u062b\u06cc \u0633\u0644\u0648\u06a9 \u06a9\u0648 \u06c1\u0679\u0627 \u062f\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u06a9\u06d2 \u062e\u0637\u0631\u06d2 \u06a9\u0648 \u0642\u0628\u0648\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u06a9\u06c1 AI \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631\u0644 \u067e\u0631\u0648\u067e\u0648\u0632\u0644 \u062a\u06cc\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u0627\u06d4 \u0627\u06cc\u0633\u0627 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0633\u0626\u0644\u06c1 \u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc \u0627\u0648\u0631 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631\u0644 \u0627\u0646\u062a\u062e\u0627\u0628 \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba\u060c \u062a\u0627\u0631\u06cc\u062e\u060c \u062a\u0646\u0638\u06cc\u0645\u06cc \u0635\u0644\u0627\u062d\u06cc\u062a\u0648\u06ba\u060c \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u062a\u0631\u062c\u06cc\u062d\u0627\u062a\u060c \u0627\u0648\u0631 \u0622\u067e\u0631\u06cc\u0634\u0646\u0644 \u062e\u0637\u0631\u0627\u062a \u06a9\u0627 \u0646\u062a\u06cc\u062c\u06c1 \u06c1\u06cc\u06ba \u062c\u0648 \u0630\u062e\u06cc\u0631\u06c1 \u0645\u06cc\u06ba \u06a9\u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0645\u0648\u062c\u0648\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u0627\u0688\u0644\u0632 \u0622\u067e \u06a9\u0648 \u0627\u0646 \u0627\u0646\u062a\u062e\u0627\u0628\u0648\u06ba \u06a9\u0648 \u0646\u06cc\u0648\u06cc\u06af\u06cc\u0679 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u06a9\u0633\u06cc \u06a9\u0648 \u067e\u06be\u0631 \u0628\u06be\u06cc \u0627\u0646 \u06a9\u0627 \u0645\u0627\u0644\u06a9 \u06c1\u0648\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-measure-whether-the-migration-actually-improved-the-system\">\u06cc\u06c1 \u06a9\u06cc\u0633\u06d2 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u06c1\u062c\u0631\u062a \u0646\u06d2 \u0648\u0627\u0642\u0639\u06cc \u0622\u067e \u06a9\u06d2 \u0633\u0633\u0679\u0645 \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u06cc\u0627 \u06c1\u06d2\u06d4<\/h2>\n<p>\u0646\u0642\u0644 \u0645\u06a9\u0627\u0646\u06cc \u06a9\u06cc \u0631\u0641\u062a\u0627\u0631 \u0627\u06cc\u06a9 \u067e\u0631\u06a9\u0634\u0634 \u0645\u06cc\u0679\u0631\u06a9 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633\u06d2 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631:<\/p>\n<blockquote>\n<p>\u06a9\u0648\u0688 \u0628\u06cc\u0633 \u06a9\u0627 37\u066a \u0645\u0646\u062a\u0642\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<\/blockquote>\n<p>\u06cc\u06c1 \u0622\u067e \u06a9\u0648 \u0627\u0633 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u0646\u06c1\u06cc\u06ba \u0628\u062a\u0627\u062a\u0627 \u06a9\u06c1 \u0622\u06cc\u0627 \u0646\u0638\u0627\u0645 \u0628\u06c1\u062a\u0631 \u06c1\u06d2 \u06cc\u0627 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062c\u062f\u06cc\u062f\u06cc\u062a \u06a9\u06cc \u06a9\u0648\u0634\u0634\u0648\u06ba \u06a9\u0648 \u06a9\u0626\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u0622\u067e\u0631\u06cc\u0634\u0646\u0644 \u0645\u06cc\u0679\u0631\u06a9\u0633 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u0648\u0633\u06a9\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06cc \u062a\u0639\u062f\u062f<\/p>\n<\/li>\n<li>\n<p>\u0646\u0627\u06a9\u0627\u0645\u06cc \u06a9\u06cc \u0634\u0631\u062d \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0627\u0648\u0633\u0637 \u0648\u0635\u0648\u0644\u06cc \u06a9\u0627 \u0648\u0642\u062a<\/p>\n<\/li>\n<li>\n<p>\u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u062d\u0627\u062f\u062b\u06c1<\/p>\n<\/li>\n<li>\n<p>\u0648\u0642\u062a \u06a9\u06cc \u062a\u0639\u0645\u06cc\u0631<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u0645\u06cc\u0679\u0631\u06a9\u0633 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u0648\u0633\u06a9\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p>\u0679\u06cc\u0633\u0679 \u06a9\u06cc \u06af\u0646\u062c\u0627\u0626\u0634<\/p>\n<\/li>\n<li>\n<p>\u0627\u0639\u0644\u06cc \u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u06a9\u06cc \u06a9\u0644\u0627\u0633<\/p>\n<\/li>\n<li>\n<p>\u0688\u067e\u0644\u06cc\u06a9\u06cc\u0679 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0642\u0648\u0627\u0639\u062f<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u0679\u0631 \u0645\u0627\u0688\u06cc\u0648\u0644 \u0627\u0646\u062d\u0635\u0627\u0631<\/p>\n<\/li>\n<li>\n<p>\u0639\u0645\u0627\u0631\u062a \u06a9\u06cc \u062e\u0644\u0627\u0641 \u0648\u0631\u0632\u06cc<\/p>\n<\/li>\n<li>\n<p>\u0641\u0639\u0627\u0644\u06cc\u062a \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u0642\u062a \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u06c1\u062c\u0631\u062a \u0633\u06d2 \u0645\u062a\u0639\u0644\u0642 \u0645\u06cc\u0679\u0631\u06a9\u0633 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u0631\u062c\u0639\u062a \u06a9\u06cc \u0634\u0631\u062d<\/p>\n<\/li>\n<li>\n<p>\u0646\u0626\u06d2 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u067e\u06cc\u0634 \u06a9\u06cc \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u06cc \u0679\u0631\u06cc\u0641\u06a9 \u06a9\u0627 \u0641\u06cc\u0635\u062f<\/p>\n<\/li>\n<li>\n<p>\u063a\u06cc\u0631 \u062d\u0644 \u0634\u062f\u06c1 \u0637\u0631\u0632 \u0639\u0645\u0644 \u06a9\u06cc \u062a\u0636\u0627\u062f\u0627\u062a<\/p>\n<\/li>\n<li>\n<p>\u0631\u0648\u0644 \u0628\u06cc\u06a9 \u0641\u0631\u06cc\u06a9\u0648\u0626\u0646\u0633\u06cc<\/p>\n<\/li>\n<li>\n<p>\u0645\u06cc\u0631\u0627\u062b\u06cc \u0627\u062c\u0632\u0627\u0621 \u0627\u0628 \u0628\u06be\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0645\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u062f\u0631\u0633\u062a \u0645\u06cc\u0679\u0631\u06a9\u0633 \u0622\u067e \u06a9\u06d2 \u0633\u0633\u0679\u0645 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06c1\u0648\u06ba \u06af\u06d2\u06d4 \u0627\u06c1\u0645 \u0628\u0627\u062a \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u06a9\u06cc \u062f\u0631\u062c \u0630\u06cc\u0644 \u062a\u0639\u0631\u06cc\u0641\u0648\u06ba \u0633\u06d2 \u06af\u0631\u06cc\u0632 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<blockquote>\n<p>\u067e\u0631\u0627\u0646\u0627 \u0630\u062e\u06cc\u0631\u06c1 \u0686\u06be\u0648\u0679\u0627 \u06c1\u06d2 = \u062c\u062f\u06cc\u062f \u06a9\u0627\u0631\u06cc \u06a9\u0627\u0645\u06cc\u0627\u0628 \u0631\u06c1\u06cc\u06d4<\/p>\n<\/blockquote>\n<p>AI \u0622\u067e \u06a9\u0648 \u06a9\u0645 \u0648\u0642\u062a \u0645\u06cc\u06ba \u0645\u0632\u06cc\u062f \u06a9\u0648\u0688 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u062a\u0628\u0627\u062f\u0644\u0648\u06ba \u06a9\u06d2 \u0645\u0639\u06cc\u0627\u0631 \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0648 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u06c1\u0645 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-the-risk-i-worry-about-most-with-ai-assisted-migration\">\u0648\u06c1 \u062e\u0637\u0631\u0627\u062a \u062c\u0646 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0645\u062c\u06be\u06d2 AI \u06a9\u06cc \u0645\u062f\u062f \u0633\u06d2 \u0645\u0646\u062a\u0642\u0644\u06cc \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0634\u0648\u06cc\u0634 \u06c1\u06d2\u06d4<\/h2>\n<p>\u06c1\u06cc\u0644\u0648\u0633\u06cc\u0646\u06cc\u0634\u0646 \u06a9\u0648\u0688\u0632 \u0627\u06cc\u06a9 \u0648\u0627\u0636\u062d \u062e\u0637\u0631\u06c1 \u06c1\u06cc\u06ba\u06d4 \u0644\u06cc\u06a9\u0646 \u0645\u06cc\u06ba \u062c\u0633 \u0686\u06cc\u0632 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u067e\u0631\u06cc\u0634\u0627\u0646 \u06c1\u0648\u06ba \u0648\u06c1 \u06c1\u06d2\u06d4 <strong>\u0642\u0627\u0628\u0644 \u0641\u06c1\u0645 \u06a9\u0648\u0688<\/strong>.<\/p>\n<p>\u062a\u06cc\u0627\u0631 \u06a9\u0631\u062f\u06c1 \u06a9\u0648\u0688 \u06a9\u0648 \u0645\u0631\u062a\u0628 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0635\u0644 \u0646\u0641\u0627\u0630 \u0633\u06d2 \u0635\u0627\u0641 \u0646\u0638\u0631 \u0622 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0627\u062a\u0644\u06cc \u0679\u06cc\u0633\u0679 \u0633\u0648\u06cc\u0679 \u0628\u06be\u06cc \u067e\u0627\u0633 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0648\u0631 \u0622\u067e \u0627\u06cc\u0633\u06d2 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0627\u0635\u0648\u0644\u0648\u06ba \u06a9\u0648 \u0628\u06be\u06cc \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0646 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u0646\u06c1\u06cc\u06ba \u062c\u0627\u0646\u062a\u0627\u06d4<\/p>\n<p>\u0627\u0633 \u0637\u0631\u062d \u06a9\u06cc \u0686\u06be\u0648\u0679\u06cc \u0686\u06cc\u0632 \u067e\u0631 \u063a\u0648\u0631 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-typescript\">if (customer.balance > 0) {\n  charge(customer);\n}\n<\/code><\/pre>\n<p>\u062c\u0628 \u0622\u067e \u06a9\u0648 \u06cc\u06c1 \u0633\u0645\u062c\u06be \u0646\u06c1\u06cc\u06ba \u0622\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u06a9\u0648\u0626\u06cc \u0634\u0631\u0637 \u06a9\u06cc\u0648\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2 \u062a\u0648 \u06cc\u06c1 \u0622\u067e \u06a9\u06d2 \u06a9\u0648\u0688 \u06a9\u0648 \u0635\u0627\u0641 \u06a9\u0631\u0646\u0627 \u067e\u0631\u06a9\u0634\u0634 \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0627\u06c1\u0645\u060c 0 \u06a9\u0627 \u062e\u0627\u0635 \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0645\u0639\u0646\u06cc \u0628\u06be\u06cc \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06c1\u0648\u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0645\u0646\u0641\u06cc \u062a\u0648\u0627\u0632\u0646 \u062c\u0627\u0626\u0632 \u06c1\u0648\u06d4<\/p>\n<p>\u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u062d\u0627\u0644\u062a \u0686\u06be \u0633\u0627\u0644 \u067e\u06c1\u0644\u06d2 \u0627\u06cc\u06a9 \u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u062d\u0627\u062f\u062b\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0645\u062a\u0639\u0627\u0631\u0641 \u06a9\u0631\u0648\u0627\u0626\u06cc \u06af\u0626\u06cc \u06c1\u0648 \u0644\u06cc\u06a9\u0646 \u06a9\u0628\u06be\u06cc \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u06cc \u0646\u06c1\u06cc\u06ba \u06a9\u06cc \u06af\u0626\u06cc\u06d4<\/p>\n<p>AI \u0627\u0633 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0633\u06a9\u062a\u0627 \u062c\u0648 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1\u06cc \u0648\u062c\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0645\u06cc\u06ba \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u06d2 \u0679\u06cc\u0633\u0679 \u0627\u0648\u0631 \u0637\u0631\u0632 \u0639\u0645\u0644 \u06a9\u06d2 \u0645\u0648\u0627\u0632\u0646\u06c1 \u067e\u0631 \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0632\u0648\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u0648\u06ba\u06d4<\/p>\n<p><strong>\u062a\u0628\u062f\u06cc\u0644\u06cc \u062c\u062a\u0646\u06cc \u062a\u06cc\u0632 \u06c1\u0648\u06af\u06cc\u060c \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0627 \u0639\u0645\u0644 \u0627\u062a\u0646\u0627 \u06c1\u06cc \u0645\u0636\u0628\u0648\u0637 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/strong><\/p>\n<p>\u062f\u0648\u0633\u0631\u06cc \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba\u060c \u06cc\u06c1 \u0635\u0631\u0641 \u0627\u0633 \u0631\u0641\u062a\u0627\u0631 \u0645\u06cc\u06ba \u0627\u0636\u0627\u0641\u06c1 \u06a9\u0631\u06d2 \u06af\u0627 \u062c\u0633 \u067e\u0631 \u0646\u0627\u0645\u0639\u0644\u0648\u0645 \u062a\u0628\u062f\u06cc\u0644\u06cc\u0648\u06ba \u06a9\u0648 \u0645\u062a\u0639\u0627\u0631\u0641 \u06a9\u0631\u0627\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2.<\/p>\n<h2 id=\"heading-a-practical-migration-workflow\">\u0639\u0645\u0644\u06cc \u0645\u0627\u0626\u06cc\u06af\u0631\u06cc\u0634\u0646 \u0648\u0631\u06a9 \u0641\u0644\u0648<\/h2>\n<p>\u0645\u06cc\u06ba \u0627\u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0648\u06ba \u06af\u0627 \u0627\u06af\u0631 \u0645\u062c\u06be\u06d2 \u06a9\u0633\u06cc \u0639\u0645\u0644 \u06a9\u0648 \u0627\u06cc\u06a9 \u0642\u0627\u0628\u0644 \u062a\u06a9\u0631\u0627\u0631 \u062a\u0631\u062a\u06cc\u0628 \u062a\u06a9 \u06a9\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u06d4<\/p>\n<h3 id=\"heading-1-understand\">1. \u0633\u0645\u062c\u06be\u0646\u0627<\/h3>\n<p>\u0646\u0642\u0634\u06c1:<\/p>\n<ul>\n<li>\n<p>\u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u062d\u0635\u0627\u0631<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646<\/p>\n<\/li>\n<li>\n<p>\u0636\u0645\u0646\u06cc \u0627\u062b\u0631\u0627\u062a<\/p>\n<\/li>\n<li>\n<p>\u0688\u06cc\u0679\u0627<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u0636\u0645\u0627\u0645<\/p>\n<\/li>\n<\/ul>\n<p>AI \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u067e\u0646\u06cc \u062a\u062d\u0642\u06cc\u0642\u0627\u062a \u06a9\u0648 \u062a\u06cc\u0632 \u06a9\u0631\u06cc\u06ba\u06d4 \u0646\u06cc\u0627 \u0646\u0638\u0627\u0645 \u0628\u0646\u0627 \u06a9\u0631 \u0634\u0631\u0648\u0639 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-2-protect\">2. \u062a\u062d\u0641\u0638<\/h3>\n<p>\u062a\u062d\u0631\u06cc\u0631:<\/p>\n<ul>\n<li>\n<p>\u06a9\u0631\u06cc\u06a9\u0679\u0631\u0627\u0626\u0632\u06cc\u0634\u0646 \u0679\u06cc\u0633\u0679<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u0636\u0645\u0627\u0645 \u06a9\u06cc \u062c\u0627\u0646\u0686<\/p>\n<\/li>\n<li>\n<p>API \u06a9\u06cc \u0633\u06c1\u0648\u0644\u062a<\/p>\n<\/li>\n<li>\n<p>\u0637\u0631\u0632 \u0639\u0645\u0644 \u0633\u0646\u06cc\u067e \u0634\u0627\u0679<\/p>\n<\/li>\n<\/ul>\n<p>\u0645\u0648\u062c\u0648\u062f\u06c1 \u0631\u0648\u06cc\u06d2 \u06a9\u0648 \u0642\u0627\u0628\u0644 \u0645\u0634\u0627\u06c1\u062f\u06c1 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-3-design\">3. \u0688\u06cc\u0632\u0627\u0626\u0646<\/h3>\n<p>\u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba:<\/p>\n<ul>\n<li>\n<p>\u062d\u062f<\/p>\n<\/li>\n<li>\n<p>\u0627\u0646\u0679\u0631\u0641\u06cc\u0633<\/p>\n<\/li>\n<li>\n<p>\u0630\u0645\u06c1 \u062f\u0627\u0631\u06cc<\/p>\n<\/li>\n<li>\n<p>\u0646\u0642\u0644 \u0645\u06a9\u0627\u0646\u06cc \u0633\u06cc\u0648\u0646<\/p>\n<\/li>\n<\/ul>\n<p>\u06a9\u0633\u06cc \u0628\u06be\u06cc \u0628\u0691\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06cc\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-4-refactor\">4. \u0631\u06cc\u0641\u06cc\u06a9\u0679\u0631\u0646\u06af<\/h3>\n<p>\u06a9\u0627\u0641\u06cc \u0639\u0644\u06cc\u062d\u062f\u06af\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0633\u0633\u0679\u0645 \u06a9\u06d2 \u062d\u0635\u0648\u06ba \u06a9\u0648 \u06c1\u0631 \u0686\u06cc\u0632 \u06a9\u0648 \u06af\u06be\u0633\u06cc\u0679\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u06d2\u06d4<\/p>\n<h3 id=\"heading-5-transform\">5. \u062a\u0628\u062f\u06cc\u0644\u06cc<\/h3>\n<p>AI \u06a9\u0648 \u0628\u0627\u0631 \u0628\u0627\u0631 \u0646\u0641\u0627\u0630 \u06a9\u06d2 \u06a9\u0627\u0645\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0648\u0627\u0636\u062d \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631\u0644 \u0631\u06a9\u0627\u0648\u0679\u06cc\u06ba \u062f\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-6-compare\">6. \u0645\u0648\u0627\u0632\u0646\u06c1<\/h3>\n<p>\u0627\u06cc\u06a9 \u06c1\u06cc \u0627\u0646 \u067e\u0679 \u067e\u0631 \u067e\u0631\u0627\u0646\u06d2 \u0627\u0648\u0631 \u0646\u0626\u06d2 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0648 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u06ba \u0627\u0648\u0631 \u0627\u062e\u062a\u0644\u0627\u0641\u0627\u062a \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-7-release-gradually\">7. \u0628\u062a\u062f\u0631\u06cc\u062c \u0631\u0648\u0644 \u0622\u0624\u0679<\/h3>\n<p>\u0627\u067e\u0646\u06d2 \u0645\u0627\u062d\u0648\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0646\u0627\u0633\u0628 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p>\u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u06d2 \u062c\u06be\u0646\u0688\u06d2<\/p>\n<\/li>\n<li>\n<p>\u06a9\u06cc\u0646\u0631\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc\u06d4<\/p>\n<\/li>\n<li>\n<p>\u0633\u0627\u0626\u06d2 \u0679\u0631\u06cc\u0641\u06a9<\/p>\n<\/li>\n<li>\n<p>\u0645\u0634\u0627\u06c1\u062f\u06c1<\/p>\n<\/li>\n<li>\n<p>\u0631\u0648\u0644 \u0628\u06cc\u06a9<\/p>\n<\/li>\n<\/ul>\n<h3 id=\"heading-8-remove-the-old-path\">8. \u067e\u0631\u0627\u0646\u06d2 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u0648 \u06c1\u0679\u0627 \u062f\u06cc\u06ba\u06d4<\/h3>\n<p>\u062f\u0648\u0646\u0648\u06ba \u0646\u0638\u0627\u0645\u0648\u06ba \u06a9\u0648 \u063a\u06cc\u0631 \u0645\u0639\u06cc\u0646\u06c1 \u0645\u062f\u062a \u062a\u06a9 \u0686\u0644\u0646\u06d2 \u0646\u06c1 \u062f\u06cc\u06ba\u06d4 \u06c1\u062c\u0631\u062a \u062c\u0648 \u0645\u06cc\u0631\u0627\u062b\u06cc \u0631\u0627\u0633\u062a\u0648\u06ba \u06a9\u0648 \u062e\u062a\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u0648\u06c1 \u0627\u06cc\u06a9 \u0627\u0648\u0631 \u0645\u06cc\u0631\u0627\u062b\u06cc \u0641\u0646 \u062a\u0639\u0645\u06cc\u0631 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-conclusion\">\u0646\u062a\u06cc\u062c\u06c1<\/h2>\n<p>AI \u0631\u0648\u0627\u06cc\u062a\u06cc \u062c\u062f\u06cc\u062f\u06cc\u062a \u06a9\u06cc \u0645\u0639\u0627\u0634\u06cc\u0627\u062a \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0628\u06c1\u062a \u0633\u06d2 \u06a9\u0627\u0645 \u062c\u0648 \u0627\u0646\u062c\u06cc\u0646\u0626\u0631\u0646\u06af \u06a9\u0627 \u0648\u0642\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u062a\u06be\u06d2 &#8211; \u063a\u06cc\u0631 \u0645\u0627\u0646\u0648\u0633 \u06a9\u0648\u0688 \u06a9\u0648 \u067e\u0691\u06be\u0646\u0627\u060c \u0679\u06cc\u0633\u0679 \u0628\u0646\u0627\u0646\u0627\u060c APIs \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u0627\u060c \u062a\u06a9\u0631\u0627\u0631\u06cc \u0646\u0641\u0627\u0630 \u06a9\u0627 \u062a\u0631\u062c\u0645\u06c1 \u06a9\u0631\u0646\u0627\u060c \u0627\u0648\u0631 \u0633\u0633\u0679\u0645\u0632 \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0641\u0631\u0642 \u06a9\u06cc \u062a\u062d\u0642\u06cc\u0642\u0627\u062a \u06a9\u0631\u0646\u0627 &#8211; \u0627\u0628 \u0628\u06c1\u062a \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u06d2 \u062c\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4 \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u062c\u062f\u06cc\u062f\u06cc\u062a \u06a9\u0627 \u062d\u0635\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0641\u06cc\u0635\u0644\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0634\u06a9\u0644 \u0633\u0648\u0627\u0644\u0627\u062a \u0628\u0627\u0642\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<ul>\n<li>\n<p>\u06a9\u0648\u0646 \u0633\u06d2 \u0627\u0639\u0645\u0627\u0644 \u0627\u0628 \u0628\u06be\u06cc \u0627\u06c1\u0645 \u06c1\u06cc\u06ba\u061f<\/p>\n<\/li>\n<li>\n<p>\u062f\u0648\u0631 \u062c\u0627\u0646\u06d2 \u06a9\u06cc \u06a9\u06cc\u0627 \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u061f<\/p>\n<\/li>\n<li>\n<p>\u06a9\u0646 \u0627\u0646\u062d\u0635\u0627\u0631\u0648\u06ba \u06a9\u0648 \u0632\u0646\u062f\u06c1 \u0631\u06c1\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u061f<\/p>\n<\/li>\n<li>\n<p>\u0633\u0631\u062d\u062f\u06cc\u06ba \u06a9\u06c1\u0627\u06ba \u06c1\u0648\u0646\u06cc \u0686\u0627\u06c1\u0626\u06cc\u06ba\u061f<\/p>\n<\/li>\n<li>\n<p>\u0631\u0648\u06cc\u06d2 \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u062a\u0646\u06cc \u0642\u0627\u0628\u0644 \u0642\u0628\u0648\u0644 \u06c1\u06d2\u061f<\/p>\n<\/li>\n<li>\n<p>\u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0679\u0631\u06cc\u0641\u06a9 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0646\u06cc\u0627 \u0646\u0641\u0627\u0630 \u06a9\u0628 \u0627\u062a\u0646\u0627 \u0645\u062d\u0641\u0648\u0638 \u06c1\u0648\u06af\u0627\u061f<\/p>\n<\/li>\n<\/ul>\n<p>\u0635\u0631\u0641 \u06a9\u0648\u0688 \u062a\u0631\u062c\u0645\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 AI \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0622\u067e \u06a9\u0648 \u062a\u06a9\u0646\u06cc\u06a9\u06cc \u0642\u0631\u0636 \u06a9\u0648 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06a9\u0631\u06cc\u06a9\u0679\u0631\u0627\u0626\u0632\u06cc\u0634\u0646 \u0679\u06cc\u0633\u0679\u0646\u06af\u060c \u0627\u0646\u06a9\u0631\u06cc\u0645\u0646\u0679\u0644 \u0631\u06cc \u0641\u06cc\u06a9\u0679\u0631\u0646\u06af\u060c \u0648\u0627\u0636\u062d \u0622\u0631\u06a9\u06cc\u0679\u06cc\u06a9\u0686\u0631\u0644 \u0628\u0627\u0624\u0646\u0688\u0631\u06cc\u0632\u060c \u0688\u06cc\u0641\u0631\u06cc\u0646\u0634\u0644 \u0679\u06cc\u0633\u0679\u0646\u06af\u060c \u0627\u0648\u0631 \u06a9\u0646\u0679\u0631\u0648\u0644\u0688 \u0631\u0648\u0644 \u0622\u0624\u0679 \u06a9\u0627 \u0627\u0645\u062a\u0632\u0627\u062c \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u0633\u0633\u0679\u0645 \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0628\u06c1\u062a\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0627\u06cc\u06a9 \u0628\u06c1\u062a\u0631 \u0645\u0648\u0642\u0639 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0642\u0635\u062f \u0627\u06cc\u06a9 \u06c1\u06cc \u0646\u0638\u0627\u0645 \u06a9\u0648 \u0646\u0626\u06d2 \u0627\u0633\u0679\u06cc\u06a9 \u067e\u0631 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u0646\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u062e\u06cc\u0627\u0644 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633 \u06a9\u0648 \u0633\u0645\u062c\u06be\u06cc\u06ba\u060c \u062a\u0646\u0642\u06cc\u062f\u06cc \u0631\u0648\u06cc\u06d2 \u06a9\u06cc \u062d\u0641\u0627\u0638\u062a \u06a9\u0631\u06cc\u06ba\u060c \u0631\u06cc \u0627\u06cc\u06a9\u0679\u0631 \u06a9\u0631\u06cc\u06ba\u060c \u0628\u062a\u062f\u0631\u06cc\u062c \u06c1\u062c\u0631\u062a \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0646\u062a\u0627\u0626\u062c \u06a9\u06cc \u062a\u0648\u062b\u06cc\u0642 \u06a9\u0631\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0622\u067e \u0646\u06d2 \u062c\u0633 \u0646\u0638\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0622\u063a\u0627\u0632 \u06a9\u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0622\u0633\u0627\u0646 \u0646\u0638\u0627\u0645 \u062a\u0634\u06a9\u06cc\u0644 \u062f\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<p>AI \u0627\u0633 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u0648 \u0686\u06be\u0648\u0679\u0627 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0644\u06cc\u06a9\u0646 \u0645\u06cc\u06ba \u0627\u0628\u06be\u06cc \u0637\u06d2 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06a9\u06c1 \u0645\u0646\u0632\u0644 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u06cc\u06ba \u0646\u06d2 \u0645\u06cc\u0631\u0627\u062b\u06cc \u06c1\u062c\u0631\u062a \u06a9\u0648 \u06a9\u0627\u0645\u06cc\u0627\u0628 \u0633\u0645\u062c\u06be\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u067e\u0631\u0627\u0646\u0627 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0630\u062e\u06cc\u0631\u06c1 \u062e\u0627\u0646\u0648\u06ba \u0633\u06d2 \u063a\u0627\u0626\u0628 \u06c1\u0648 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u0686\u06be \u0645\u0627\u06c1 \u0628\u0639\u062f\u060c \u0679\u06cc\u0645 \u0627\u0628 \u0628\u06be\u06cc \u0648\u06c1\u06cc \u062c\u0648\u0691\u06d2\u060c \u0648\u06c1\u06cc \u063a\u06cc\u0631 \u0648\u0627\u0636\u062d \u06a9\u0627\u0631\u0648\u0628\u0627\u0631\u06cc \u0642\u0648\u0627\u0639\u062f\u060c \u0627\u0648\u0631 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u0648\u06c1\u06cc \u062a\u0639\u06cc\u0646\u0627\u062a\u06cc \u06a9\u06d2 \u0645\u0633\u0627\u0626\u0644 \u0633\u06d2 \u0646\u0645\u0679 \u0631\u06c1\u06cc \u062a\u06be\u06cc\u06d4 \u0627\u06af\u0631\u0686\u06c1 \u0679\u06cc\u06a9\u0646\u0627\u0644\u0648\u062c\u06cc \u0628\u062f\u0644 \u06af\u0626\u06cc \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0645\u062c\u0645\u0648\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0646\u0638\u0627\u0645 \u0632\u06cc\u0627\u062f\u06c1 \u0646\u06c1\u06cc\u06ba \u0628\u062f\u0644\u0627 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-27669","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/27669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/comments?post=27669"}],"version-history":[{"count":0,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/posts\/27669\/revisions"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/media?parent=27669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/categories?post=27669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/en_us\/wp-json\/wp\/v2\/tags?post=27669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}