{"id":101316,"date":"2025-03-13T07:17:43","date_gmt":"2025-03-13T03:47:43","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/"},"modified":"2025-03-13T07:17:43","modified_gmt":"2025-03-13T03:47:43","slug":"go-code-you-can-trust-sleep-well-after-you-commit-440n","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/","title":{"rendered":"\ud83d\ude34 \u06a9\u062f \u0628\u0631\u0648\u06cc\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0622\u0646 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u0646\u06cc\u062f: \u0628\u0639\u062f \u0627\u0632 \u062a\u0639\u0647\u062f \u062e\u0648\u0628 \u0628\u062e\u0648\u0627\u0628\u06cc\u062f"},"content":{"rendered":"<div data-article-id=\"2329408\" id=\"article-body\">\n<p>\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631 \u062c\u0645\u0639\u0647 \u060c \u0633\u0627\u0639\u062a 4:45 \u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631 \u0627\u0633\u062a. \u0647\u0645 \u062a\u06cc\u0645\u06cc \u0647\u0627\u06cc \u0645\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0628\u062d\u062b \u062f\u0631 \u0645\u0648\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0622\u062e\u0631 \u0647\u0641\u062a\u0647 \u062f\u0631 Slack \u0647\u0633\u062a\u0646\u062f. \u0645\u0646 \u06cc\u06a9 \u0642\u0637\u0639\u0647 \u0645\u0647\u0645 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 \u067e\u0631\u062f\u0627\u0632\u0634 \u067e\u0631\u062f\u0627\u062e\u062a \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0645\u06cc \u0631\u0633\u0627\u0646\u0645. \u06a9\u062f \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u062a\u0633\u062a \u0647\u0627 \u0645\u06cc \u06af\u0630\u0631\u062f \u060c \u0648 \u0645\u0646 \u0642\u0635\u062f \u062f\u0627\u0631\u0645 \u0642\u0628\u0644 \u0627\u0632 \u0631\u0641\u062a\u0646 \u0628\u0647 \u0622\u062e\u0631 \u0647\u0641\u062a\u0647 \u060c \u0622\u0646 \u0631\u0627 \u0645\u0631\u062a\u06a9\u0628 \u0634\u0648\u0645. \u0627\u0646\u06af\u0634\u062a \u0645\u0646 \u0628\u0631\u0627\u06cc \u0644\u062d\u0638\u0647 \u0627\u06cc \u0631\u0648\u06cc \u06a9\u0644\u06cc\u062f enter \u0645\u0639\u0644\u0642 \u0627\u0633\u062a &#8230;<\/p>\n<p>\u0627\u0645\u0627 \u0647\u06cc\u0686 \u062a\u0631\u062f\u06cc\u062f\u06cc \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f \u060c \u0646\u06af\u0631\u0627\u0646 \u0646\u06cc\u0633\u062a. \u0645\u0646 \u06a9\u062f \u0631\u0627 \u0645\u0631\u062a\u06a9\u0628 \u0645\u06cc \u0634\u0648\u0645 \u060c \u0644\u067e \u062a\u0627\u067e \u062e\u0648\u062f \u0631\u0627 \u0645\u06cc \u0628\u0646\u062f\u0645 \u0648 \u0628\u0647 \u0645\u06a9\u0627\u0644\u0645\u0647 \u0622\u062e\u0631 \u0647\u0641\u062a\u0647 \u0645\u06cc \u067e\u06cc\u0648\u0646\u062f\u0645 \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0641\u06a9\u0631 \u062f\u0648\u0645 \u062f\u0631 \u0645\u0648\u0631\u062f \u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u06a9\u062f \u0645\u0646 \u062f\u0631 \u062a\u0648\u0644\u06cc\u062f \u0628\u0627\u0634\u062f.<\/p>\n<p>\u0627\u06cc\u0646 \u0647\u0645\u06cc\u0634\u0647 \u0627\u06cc\u0646\u06af\u0648\u0646\u0647 \u0646\u0628\u0648\u062f. \u062f\u0647 \u0633\u0627\u0644 \u067e\u06cc\u0634 \u060c \u0645\u0646 \u062a\u0645\u0627\u0645 \u0622\u062e\u0631 \u0647\u0641\u062a\u0647 \u062a\u0644\u0641\u0646 \u062e\u0648\u062f \u0631\u0627 \u0686\u06a9 \u0645\u06cc \u06a9\u0631\u062f\u0645 \u060c \u0648 \u0646\u06af\u0631\u0627\u0646 \u062a\u0645\u0627\u0633 3 \u0635\u0628\u062d \u0627\u0632 \u0645\u0647\u0646\u062f\u0633 \u062a\u0645\u0627\u0633 \u0628\u0627 \u0645\u0627 \u0628\u0648\u062f.<\/p>\n<p>\u0686\u0647 \u0686\u06cc\u0632\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0631\u062f\u061f \u0628\u06af\u0630\u0627\u0631\u06cc\u062f \u062f\u0627\u0633\u062a\u0627\u0646 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0686\u06af\u0648\u0646\u06af\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f GO \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u0645 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u06a9\u0627\u0645\u0644\u0627\u064b \u0628\u0647 \u0622\u0646 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u0646\u0645.<\/p>\n<p><br \/><em>\u0645\u0646\u0628\u0639 \u062a\u0635\u0648\u06cc\u0631: \u0645\u062a\u0648\u0633\u0637<\/em><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/#%D9%87%D8%B2%DB%8C%D9%86%D9%87_%DA%A9%D8%AF_%D9%86%D8%A7%D9%85%D8%B4%D8%AE%D8%B5\" >\u0647\u0632\u06cc\u0646\u0647 \u06a9\u062f \u0646\u0627\u0645\u0634\u062e\u0635<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/#%D9%85%D8%B3%DB%8C%D8%B1_%DA%A9%D8%AF_%D9%82%D8%A7%D8%A8%D9%84_%D8%A7%D8%B9%D8%AA%D9%85%D8%A7%D8%AF\" >\u0645\u0633\u06cc\u0631 \u06a9\u062f \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/#1_%D8%AE%D8%B7%D8%A7%D9%87%D8%A7_%D8%AF%D9%88%D8%B3%D8%AA%D8%A7%D9%86_%D8%B4%D9%85%D8%A7_%D9%87%D8%B3%D8%AA%D9%86%D8%AF_%D8%8C_%D9%86%D9%87_%D8%A7%D8%B3%D8%AA%D8%AB%D9%86%D8%A7\" >1. \u062e\u0637\u0627\u0647\u0627 \u062f\u0648\u0633\u062a\u0627\u0646 \u0634\u0645\u0627 \u0647\u0633\u062a\u0646\u062f \u060c \u0646\u0647 \u0627\u0633\u062a\u062b\u0646\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/#2_%D8%AA%D8%B3%D8%AA_%D9%87%D8%A7%DB%8C%DB%8C_%DA%A9%D9%87_%D8%A8%D9%87_%D8%B4%D9%85%D8%A7_%D8%A7%D8%B7%D9%85%DB%8C%D9%86%D8%A7%D9%86_%D9%85%DB%8C_%D8%AF%D9%87%D8%AF\" >2. \u062a\u0633\u062a \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/#3_%D8%AA%D8%AE%D8%B1%DB%8C%D8%A8_%D8%A8%D8%B1%D8%A7%D8%B2%D9%86%D8%AF%D9%87\" >3. \u062a\u062e\u0631\u06cc\u0628 \u0628\u0631\u0627\u0632\u0646\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/#4_%D9%86%D8%B8%D8%A7%D8%B1%D8%AA_%D9%88_%D9%85%D8%B4%D8%A7%D9%87%D8%AF%D9%87_%D8%AF%D8%A7%D8%AE%D9%84%DB%8C\" >4. \u0646\u0638\u0627\u0631\u062a \u0648 \u0645\u0634\u0627\u0647\u062f\u0647 \u062f\u0627\u062e\u0644\u06cc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/#%D9%85%D8%AB%D8%A7%D9%84_%D9%88%D8%A7%D9%82%D8%B9%DB%8C_%D8%B2%D9%86%D8%AF%DA%AF%DB%8C_%D8%A7%D8%B4%DA%A9%D8%A7%D9%84_3_%D8%B5%D8%A8%D8%AD_%DA%A9%D9%87_%D9%87%D8%B1%DA%AF%D8%B2_%D8%B5%D8%AF%D8%A7_%D9%86%D9%85%DB%8C_%D8%B2%D8%AF\" >\u0645\u062b\u0627\u0644 \u0648\u0627\u0642\u0639\u06cc \u0632\u0646\u062f\u06af\u06cc: \u0627\u0634\u06a9\u0627\u0644 3 \u0635\u0628\u062d \u06a9\u0647 \u0647\u0631\u06af\u0632 \u0635\u062f\u0627 \u0646\u0645\u06cc \u0632\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/#%D9%86%D8%AD%D9%88%D9%87_%D9%86%D9%88%D8%B4%D8%AA%D9%86_%DA%A9%D8%AF_GO_%DA%A9%D9%87_%D9%85%DB%8C_%D8%AA%D9%88%D8%A7%D9%86%DB%8C%D8%AF_%D8%A8%D9%87_%D8%A2%D9%86_%D8%A7%D8%B9%D8%AA%D9%85%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\" >\u0646\u062d\u0648\u0647 \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f GO \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0622\u0646 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/go-code-you-can-trust-sleep-well-after-you-commit-440n\/#%D9%BE%D8%A7%DB%8C%D8%A7%D9%86\" >\u067e\u0627\u06cc\u0627\u0646<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%87%D8%B2%DB%8C%D9%86%D9%87_%DA%A9%D8%AF_%D9%86%D8%A7%D9%85%D8%B4%D8%AE%D8%B5\"><\/span>\n<p>  \u0647\u0632\u06cc\u0646\u0647 \u06a9\u062f \u0646\u0627\u0645\u0634\u062e\u0635<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0633\u0641\u0631 \u0645\u0646 \u0628\u0627 GO \u0627\u0632 \u0633\u0627\u0644 2021 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0646 \u062f\u0631 \u06cc\u06a9 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0628\u0647 \u0633\u0631\u0639\u062a \u062f\u0631 \u062d\u0627\u0644 \u0631\u0634\u062f \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0631\u062f\u0645 \u060c \u0622\u063a\u0627\u0632 \u0634\u062f. \u0645\u0627 \u0627\u0632 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062c\u0627\u0648\u0627 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0628\u0647 \u0633\u0645\u062a \u0645\u06cc\u06a9\u0631\u0648\u0633\u0631\u0648\u06cc\u0633 \u062d\u0631\u06a9\u062a \u0645\u06cc \u06a9\u0631\u062f\u06cc\u0645 \u060c \u0648 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u06cc\u062f \u06a9\u0647 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a: \u0633\u0631\u06cc\u0639 \u060c \u0633\u0627\u062f\u0647 \u0648 \u0628\u0627 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u062f\u0627\u062e\u0644\u06cc.<\/p>\n<p>\u0627\u0645\u0627 \u06a9\u062f \u0627\u0648\u0644\u06cc\u0647 \u0645\u0646 \u0628\u0647 \u0627\u06cc\u0646 \u0634\u06a9\u0644 \u0628\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">ProcessPayment<\/span><span class=\"p\">(<\/span><span class=\"n\">paymentID<\/span> <span class=\"kt\">string<\/span><span class=\"p\">)<\/span> <span class=\"kt\">error<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c\">\/\/ Get payment details<\/span>\n    <span class=\"n\">payment<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">db<\/span><span class=\"o\">.<\/span><span class=\"n\">GetPayment<\/span><span class=\"p\">(<\/span><span class=\"n\">paymentID<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">err<\/span> <span class=\"c\">\/\/ Which error? What happened?<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"c\">\/\/ Process the payment<\/span>\n    <span class=\"n\">err<\/span> <span class=\"o\">=<\/span> <span class=\"n\">paymentGateway<\/span><span class=\"o\">.<\/span><span class=\"n\">Process<\/span><span class=\"p\">(<\/span><span class=\"n\">payment<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">err<\/span> <span class=\"c\">\/\/ Again, what went wrong?<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"c\">\/\/ Update payment status<\/span>\n    <span class=\"n\">err<\/span> <span class=\"o\">=<\/span> <span class=\"n\">db<\/span><span class=\"o\">.<\/span><span class=\"n\">UpdateStatus<\/span><span class=\"p\">(<\/span><span class=\"n\">paymentID<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"processed\"<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">err<\/span> <span class=\"c\">\/\/ Did the payment go through? Is it in a bad state?<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0632 \u0646\u0638\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u060c \u0627\u06cc\u0646 \u06a9\u062f \u06a9\u0627\u0631 \u06a9\u0631\u062f. \u0627\u0645\u0627 \u0634\u0628\u0627\u0646\u0647 \u0645\u0631\u0627 \u0622\u0632\u0627\u0631 \u062f\u0627\u062f \u0632\u06cc\u0631\u0627:<\/p>\n<ol>\n<li>\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u062d\u062f\u0627\u0642\u0644 \u0628\u0648\u062f \u0648 \u0647\u06cc\u0686 \u0632\u0645\u06cc\u0646\u0647 \u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0646\u0645\u06cc \u062f\u0627\u062f<\/li>\n<li>\u0628\u0631\u0627\u06cc \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0647\u06cc\u0686 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0634\u062a<\/li>\n<li>\u062f\u0631 \u0645\u0648\u0631\u062f \u062e\u0631\u0627\u0628\u06cc \u0647\u0627\u06cc \u062c\u0632\u0626\u06cc \u062f\u0631 \u0646\u0638\u0631 \u0646\u0645\u06cc \u06af\u06cc\u0631\u062f<\/li>\n<li>\u0628\u062f\u0648\u0646 \u0627\u0639\u062a\u0628\u0627\u0631 \u0648\u0631\u0648\u062f\u06cc<\/li>\n<li>\u0628\u062f\u0648\u0646 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0628\u0631\u0627\u06cc \u0645\u0648\u0627\u0631\u062f \u0644\u0628\u0647<\/li>\n<\/ol>\n<p>\u0646\u062a\u06cc\u062c\u0647\u061f \u0628\u0644\u06cc\u0637 \u0647\u0627\u06cc \u0635\u0628\u062d \u0634\u0646\u0628\u0647 \u0631\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f. \u062e\u0631\u0627\u0628\u06cc \u0647\u0627\u06cc \u0645\u0631\u0645\u0648\u0632 \u067e\u0631\u062f\u0627\u062e\u062a. \u0633\u0627\u0639\u0627\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u062c\u0644\u0633\u0627\u062a \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0635\u0631\u0641 \u0645\u06cc \u0634\u0648\u062f. \u0648 \u0627\u0636\u0637\u0631\u0627\u0628 \u0645\u062f\u0627\u0648\u0645 \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0686\u06cc\u0632\u06cc \u0628\u06cc \u0635\u062f\u0627 \u0628\u0627\u0634\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B3%DB%8C%D8%B1_%DA%A9%D8%AF_%D9%82%D8%A7%D8%A8%D9%84_%D8%A7%D8%B9%D8%AA%D9%85%D8%A7%D8%AF\"><\/span>\n<p>  \u0645\u0633\u06cc\u0631 \u06a9\u062f \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0648\u0642\u062a\u06cc \u0628\u0647 \u062a\u06cc\u0645 WF \u067e\u06cc\u0648\u0633\u062a\u0645 \u060c \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0631\u062f. \u0645\u0631\u0628\u06cc \u0645\u0646 \u06cc\u06a9 \u0641\u0644\u0633\u0641\u0647 \u0633\u0627\u062f\u0647 \u062f\u0627\u0634\u062a: &#8220;\u0647\u0631 \u062e\u0637 \u06a9\u062f \u0631\u0627 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u06a9\u0647 \u06af\u0648\u06cc\u06cc \u0647\u0646\u06af\u0627\u0645 \u062a\u0648\u0644\u06cc\u062f \u062f\u0631 \u062a\u0639\u0637\u06cc\u0644\u0627\u062a \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0648\u062f.&#8221;<\/p>\n<p>\u0627\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0630\u0647\u0646\u06cc\u062a \u0646\u062d\u0648\u0647 \u0646\u0632\u062f\u06cc\u06a9 \u0634\u062f\u0646 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 GO \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u062f. \u0627\u06cc\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0646 \u0622\u0645\u0648\u062e\u062a\u0647 \u0627\u0645 \u060c \u0648 \u0622\u0646\u0686\u0647 \u0627\u06a9\u0646\u0648\u0646 \u0628\u0647 \u0645\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u0628\u0639\u062f \u0627\u0632 \u0627\u0631\u062a\u06a9\u0627\u0628 \u06a9\u062f \u062e\u0648\u0628 \u0628\u062e\u0648\u0627\u0628\u0645:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"1_%D8%AE%D8%B7%D8%A7%D9%87%D8%A7_%D8%AF%D9%88%D8%B3%D8%AA%D8%A7%D9%86_%D8%B4%D9%85%D8%A7_%D9%87%D8%B3%D8%AA%D9%86%D8%AF_%D8%8C_%D9%86%D9%87_%D8%A7%D8%B3%D8%AA%D8%AB%D9%86%D8%A7\"><\/span>\n<p>  1. \u062e\u0637\u0627\u0647\u0627 \u062f\u0648\u0633\u062a\u0627\u0646 \u0634\u0645\u0627 \u0647\u0633\u062a\u0646\u062f \u060c \u0646\u0647 \u0627\u0633\u062a\u062b\u0646\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc Go \u062f\u0631 \u0635\u0648\u0631\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0635\u062d\u06cc\u062d \u0627\u0632 \u0622\u0628 \u0627\u0633\u062a \u0627\u0645\u0627 \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0627\u0633\u062a. \u0631\u0627\u0632 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062d\u0627\u0645\u0644 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0627\u0631\u0632\u0634\u0645\u0646\u062f \u062f\u0631\u0645\u0627\u0646 \u06a9\u0646\u06cc\u062f \u060c \u0646\u0647 \u0641\u0642\u0637 \u0633\u06cc\u06af\u0646\u0627\u0644 \u0647\u0627\u06cc \u0634\u06a9\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">ProcessPayment<\/span><span class=\"p\">(<\/span><span class=\"n\">paymentID<\/span> <span class=\"kt\">string<\/span><span class=\"p\">)<\/span> <span class=\"kt\">error<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c\">\/\/ Get payment details<\/span>\n    <span class=\"n\">payment<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">db<\/span><span class=\"o\">.<\/span><span class=\"n\">GetPayment<\/span><span class=\"p\">(<\/span><span class=\"n\">paymentID<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"failed to retrieve payment %s: %w\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">paymentID<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"c\">\/\/ Validate before proceeding<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">validatePayment<\/span><span class=\"p\">(<\/span><span class=\"n\">payment<\/span><span class=\"p\">);<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"payment validation failed for %s: %w\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">paymentID<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"c\">\/\/ Process the payment with context<\/span>\n    <span class=\"n\">err<\/span> <span class=\"o\">=<\/span> <span class=\"n\">paymentGateway<\/span><span class=\"o\">.<\/span><span class=\"n\">Process<\/span><span class=\"p\">(<\/span><span class=\"n\">payment<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c\">\/\/ Log additional details for debugging<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">WithFields<\/span><span class=\"p\">(<\/span><span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Fields<\/span><span class=\"p\">{<\/span>\n            <span class=\"s\">\"payment_id\"<\/span><span class=\"o\">:<\/span> <span class=\"n\">paymentID<\/span><span class=\"p\">,<\/span>\n            <span class=\"s\">\"amount\"<\/span><span class=\"o\">:<\/span>     <span class=\"n\">payment<\/span><span class=\"o\">.<\/span><span class=\"n\">Amount<\/span><span class=\"p\">,<\/span>\n            <span class=\"s\">\"currency\"<\/span><span class=\"o\">:<\/span>   <span class=\"n\">payment<\/span><span class=\"o\">.<\/span><span class=\"n\">Currency<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">})<\/span><span class=\"o\">.<\/span><span class=\"n\">Error<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Payment processing failed\"<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"gateway failed to process payment %s: %w\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">paymentID<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"c\">\/\/ Success path is clearly logged too<\/span>\n    <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">WithField<\/span><span class=\"p\">(<\/span><span class=\"s\">\"payment_id\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">paymentID<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Info<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Payment processed successfully\"<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0641\u0627\u0648\u062a\u061f \u0648\u0642\u062a\u06cc \u0686\u06cc\u0632\u06cc \u067e\u06cc\u0634 \u0645\u06cc \u0631\u0648\u062f \u060c \u0645\u0646 \u0632\u0645\u06cc\u0646\u0647 \u063a\u0646\u06cc \u062f\u0627\u0631\u0645. \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u062e\u0637\u0627 \u062f\u0627\u0633\u062a\u0627\u0646\u06cc \u0631\u0627 \u0628\u06cc\u0627\u0646 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0627\u0639\u062b \u0627\u06cc\u062c\u0627\u062f \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0633\u0631\u06cc\u0639\u062a\u0631 \u0648 \u0622\u0633\u0627\u0646 \u062a\u0631 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"2_%D8%AA%D8%B3%D8%AA_%D9%87%D8%A7%DB%8C%DB%8C_%DA%A9%D9%87_%D8%A8%D9%87_%D8%B4%D9%85%D8%A7_%D8%A7%D8%B7%D9%85%DB%8C%D9%86%D8%A7%D9%86_%D9%85%DB%8C_%D8%AF%D9%87%D8%AF\"><\/span>\n<p>  2. \u062a\u0633\u062a \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062e\u0648\u062f \u0642\u0628\u0644\u06cc \u0645\u0646 \u062a\u0633\u062a \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0646\u0648\u0634\u062a \u06a9\u0647 \u062b\u0627\u0628\u062a \u06a9\u0631\u062f \u06a9\u0647 \u06a9\u062f \u062f\u0631 \u0645\u0633\u06cc\u0631 \u0634\u0627\u062f \u06a9\u0627\u0631 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u062e\u0648\u062f \u0641\u0639\u0644\u06cc \u0645\u0646 \u0622\u0632\u0645\u0627\u06cc\u0634\u0627\u062a\u06cc \u0631\u0627 \u0645\u06cc \u0646\u0648\u06cc\u0633\u062f \u06a9\u0647 \u062b\u0627\u0628\u062a \u0645\u06cc \u06a9\u0646\u062f \u06a9\u062f \u062f\u0631 \u062a\u0648\u0644\u06cc\u062f \u0634\u06a9\u0633\u062a\u0647 \u0646\u0645\u06cc \u0634\u0648\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">TestProcessPayment<\/span><span class=\"p\">(<\/span><span class=\"n\">t<\/span> <span class=\"o\">*<\/span><span class=\"n\">testing<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c\">\/\/ Happy path test<\/span>\n    <span class=\"n\">t<\/span><span class=\"o\">.<\/span><span class=\"n\">Run<\/span><span class=\"p\">(<\/span><span class=\"s\">\"successful payment processing\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">func<\/span><span class=\"p\">(<\/span><span class=\"n\">t<\/span> <span class=\"o\">*<\/span><span class=\"n\">testing<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c\">\/\/ Setup and assertions<\/span>\n    <span class=\"p\">})<\/span>\n\n    <span class=\"c\">\/\/ What happens when things go wrong<\/span>\n    <span class=\"n\">t<\/span><span class=\"o\">.<\/span><span class=\"n\">Run<\/span><span class=\"p\">(<\/span><span class=\"s\">\"database unavailable\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">func<\/span><span class=\"p\">(<\/span><span class=\"n\">t<\/span> <span class=\"o\">*<\/span><span class=\"n\">testing<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c\">\/\/ Simulate DB failure<\/span>\n    <span class=\"p\">})<\/span>\n\n    <span class=\"n\">t<\/span><span class=\"o\">.<\/span><span class=\"n\">Run<\/span><span class=\"p\">(<\/span><span class=\"s\">\"payment gateway timeout\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">func<\/span><span class=\"p\">(<\/span><span class=\"n\">t<\/span> <span class=\"o\">*<\/span><span class=\"n\">testing<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c\">\/\/ Simulate slow payment gateway<\/span>\n    <span class=\"p\">})<\/span>\n\n    <span class=\"n\">t<\/span><span class=\"o\">.<\/span><span class=\"n\">Run<\/span><span class=\"p\">(<\/span><span class=\"s\">\"invalid payment data\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">func<\/span><span class=\"p\">(<\/span><span class=\"n\">t<\/span> <span class=\"o\">*<\/span><span class=\"n\">testing<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c\">\/\/ Test validation logic<\/span>\n    <span class=\"p\">})<\/span>\n\n    <span class=\"n\">t<\/span><span class=\"o\">.<\/span><span class=\"n\">Run<\/span><span class=\"p\">(<\/span><span class=\"s\">\"partial failure - payment processed but status update fails\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">func<\/span><span class=\"p\">(<\/span><span class=\"n\">t<\/span> <span class=\"o\">*<\/span><span class=\"n\">testing<\/span><span class=\"o\">.<\/span><span class=\"n\">T<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c\">\/\/ Test recovery mechanisms<\/span>\n    <span class=\"p\">})<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u062c\u0645\u0648\u0639\u0647 \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u062c\u0627\u0645\u0639 \u0645\u0627\u0646\u0646\u062f \u0628\u06cc\u0645\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0645\u0627\u0646\u0639 \u0627\u0632 \u0647\u0645\u0647 \u0645\u0634\u06a9\u0644\u0627\u062a \u0646\u0645\u06cc \u0634\u0648\u062f \u060c \u0627\u0645\u0627 \u0627\u062d\u062a\u0645\u0627\u0644 \u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u062f\u0631 \u062a\u0648\u0644\u06cc\u062f \u0631\u0627 \u0628\u0647 \u0645\u06cc\u0632\u0627\u0646 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u06a9\u0627\u0647\u0634 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"3_%D8%AA%D8%AE%D8%B1%DB%8C%D8%A8_%D8%A8%D8%B1%D8%A7%D8%B2%D9%86%D8%AF%D9%87\"><\/span>\n<p>  3. \u062a\u062e\u0631\u06cc\u0628 \u0628\u0631\u0627\u0632\u0646\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u06cc\u06a9 \u0628\u06cc\u0646\u0634 \u06a9\u0644\u06cc\u062f\u06cc: \u0647\u0645\u0647 \u0634\u06a9\u0633\u062a \u0647\u0627 \u0628\u0631\u0627\u0628\u0631 \u0646\u06cc\u0633\u062a\u0646\u062f. \u0628\u0647\u062a\u0631\u06cc\u0646 \u06a9\u062f GO \u0641\u0642\u0637 \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u062a\u062d\u0645\u0644 \u0646\u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0642\u0627\u0628\u0644\u06cc\u062a \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627 \u0628\u0647 \u0637\u0631\u0632 \u0641\u062c\u06cc\u0639\u06cc \u062a\u062e\u0631\u06cc\u0628 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">GetUserRecommendations<\/span><span class=\"p\">(<\/span><span class=\"n\">userID<\/span> <span class=\"kt\">string<\/span><span class=\"p\">)<\/span> <span class=\"p\">([]<\/span><span class=\"n\">Recommendation<\/span><span class=\"p\">,<\/span> <span class=\"kt\">error<\/span><span class=\"p\">)<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c\">\/\/ Try to get personalized recommendations<\/span>\n    <span class=\"n\">recommendations<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">recommendationService<\/span><span class=\"o\">.<\/span><span class=\"n\">GetPersonalized<\/span><span class=\"p\">(<\/span><span class=\"n\">userID<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c\">\/\/ Log the error<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">WithError<\/span><span class=\"p\">(<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Warn<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Failed to get personalized recommendations, falling back to popular items\"<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"c\">\/\/ Fall back to popular recommendations<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">recommendationService<\/span><span class=\"o\">.<\/span><span class=\"n\">GetPopular<\/span><span class=\"p\">()<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"n\">recommendations<\/span><span class=\"p\">,<\/span> <span class=\"no\">nil<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0627\u0644\u06af\u0648\u06cc \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06a9\u062f \u0634\u0645\u0627 \u062a\u0645\u0627\u0645 \u062a\u0644\u0627\u0634 \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0631\u0627\u0626\u0647 \u0627\u0631\u0632\u0634 \u0645\u06cc \u06a9\u0646\u062f \u060c \u062d\u062a\u06cc \u0627\u06af\u0631 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0645\u0624\u0644\u0641\u0647 \u0647\u0627 \u0634\u06a9\u0633\u062a \u0628\u062e\u0648\u0631\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"4_%D9%86%D8%B8%D8%A7%D8%B1%D8%AA_%D9%88_%D9%85%D8%B4%D8%A7%D9%87%D8%AF%D9%87_%D8%AF%D8%A7%D8%AE%D9%84%DB%8C\"><\/span>\n<p>  4. \u0646\u0638\u0627\u0631\u062a \u0648 \u0645\u0634\u0627\u0647\u062f\u0647 \u062f\u0627\u062e\u0644\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u06a9\u062f\u06cc \u06a9\u0647 \u0645\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0628\u0647 \u0622\u0646 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u0646\u0645 \u0641\u0642\u0637 \u062e\u0648\u0628 \u06a9\u0627\u0631 \u0646\u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0645\u0646 \u0645\u06cc \u06af\u0648\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">ProcessOrder<\/span><span class=\"p\">(<\/span><span class=\"n\">ctx<\/span> <span class=\"n\">context<\/span><span class=\"o\">.<\/span><span class=\"n\">Context<\/span><span class=\"p\">,<\/span> <span class=\"n\">order<\/span> <span class=\"n\">Order<\/span><span class=\"p\">)<\/span> <span class=\"kt\">error<\/span> <span class=\"p\">{<\/span>\n    <span class=\"c\">\/\/ Start timing the operation<\/span>\n    <span class=\"n\">start<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Now<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"c\">\/\/ Use defer to ensure metrics are always recorded<\/span>\n    <span class=\"k\">defer<\/span> <span class=\"k\">func<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">metrics<\/span><span class=\"o\">.<\/span><span class=\"n\">ObserveOrderProcessingTime<\/span><span class=\"p\">(<\/span><span class=\"n\">time<\/span><span class=\"o\">.<\/span><span class=\"n\">Since<\/span><span class=\"p\">(<\/span><span class=\"n\">start<\/span><span class=\"p\">))<\/span>\n        <span class=\"n\">metrics<\/span><span class=\"o\">.<\/span><span class=\"n\">IncrementOrdersProcessed<\/span><span class=\"p\">()<\/span>\n    <span class=\"p\">}()<\/span>\n\n    <span class=\"c\">\/\/ Trace this operation for distributed tracing<\/span>\n    <span class=\"n\">span<\/span><span class=\"p\">,<\/span> <span class=\"n\">ctx<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">tracer<\/span><span class=\"o\">.<\/span><span class=\"n\">StartSpanFromContext<\/span><span class=\"p\">(<\/span><span class=\"n\">ctx<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"process_order\"<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">defer<\/span> <span class=\"n\">span<\/span><span class=\"o\">.<\/span><span class=\"n\">Finish<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"c\">\/\/ Add helpful information to the trace<\/span>\n    <span class=\"n\">span<\/span><span class=\"o\">.<\/span><span class=\"n\">SetTag<\/span><span class=\"p\">(<\/span><span class=\"s\">\"order_id\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">order<\/span><span class=\"o\">.<\/span><span class=\"n\">ID<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">span<\/span><span class=\"o\">.<\/span><span class=\"n\">SetTag<\/span><span class=\"p\">(<\/span><span class=\"s\">\"customer_id\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">order<\/span><span class=\"o\">.<\/span><span class=\"n\">CustomerID<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"c\">\/\/ Process the order with the traced context<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">orderProcessor<\/span><span class=\"o\">.<\/span><span class=\"n\">Process<\/span><span class=\"p\">(<\/span><span class=\"n\">ctx<\/span><span class=\"p\">,<\/span> <span class=\"n\">order<\/span><span class=\"p\">);<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span> <span class=\"p\">{<\/span>\n        <span class=\"c\">\/\/ Record error in metrics and trace<\/span>\n        <span class=\"n\">metrics<\/span><span class=\"o\">.<\/span><span class=\"n\">IncrementOrderErrors<\/span><span class=\"p\">()<\/span>\n        <span class=\"n\">span<\/span><span class=\"o\">.<\/span><span class=\"n\">SetTag<\/span><span class=\"p\">(<\/span><span class=\"s\">\"error\"<\/span><span class=\"p\">,<\/span> <span class=\"no\">true<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">span<\/span><span class=\"o\">.<\/span><span class=\"n\">LogKV<\/span><span class=\"p\">(<\/span><span class=\"s\">\"error.message\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"o\">.<\/span><span class=\"n\">Error<\/span><span class=\"p\">())<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Errorf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"processing order %s failed: %w\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">order<\/span><span class=\"o\">.<\/span><span class=\"n\">ID<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"no\">nil<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u06a9\u062f \u0634\u0645\u0627 \u0646\u0638\u0627\u0631\u062a \u062f\u0627\u062e\u0644\u06cc \u062f\u0627\u0631\u062f \u060c \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u062a\u0639\u062c\u0628 \u0646\u06cc\u0633\u062a \u06a9\u0647 \u0622\u06cc\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u062f\u0631 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u0634\u0645\u0627 <em>\u062f\u0627\u0646\u0633\u062a\u0646<\/em>\u0628\u0634\u0631<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%AB%D8%A7%D9%84_%D9%88%D8%A7%D9%82%D8%B9%DB%8C_%D8%B2%D9%86%D8%AF%DA%AF%DB%8C_%D8%A7%D8%B4%DA%A9%D8%A7%D9%84_3_%D8%B5%D8%A8%D8%AD_%DA%A9%D9%87_%D9%87%D8%B1%DA%AF%D8%B2_%D8%B5%D8%AF%D8%A7_%D9%86%D9%85%DB%8C_%D8%B2%D8%AF\"><\/span>\n<p>  \u0645\u062b\u0627\u0644 \u0648\u0627\u0642\u0639\u06cc \u0632\u0646\u062f\u06af\u06cc: \u0627\u0634\u06a9\u0627\u0644 3 \u0635\u0628\u062d \u06a9\u0647 \u0647\u0631\u06af\u0632 \u0635\u062f\u0627 \u0646\u0645\u06cc \u0632\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0633\u0627\u0644 \u06af\u0630\u0634\u062a\u0647 \u060c \u0645\u0627 \u0642\u0628\u0644 \u0627\u0632 \u062a\u0639\u0637\u06cc\u0644\u0627\u062a \u0622\u062e\u0631 \u0647\u0641\u062a\u0647 \u0637\u0648\u0644\u0627\u0646\u06cc \u060c \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u062c\u062f\u06cc\u062f \u0631\u0627 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u067e\u0631\u062f\u0627\u062e\u062a \u062e\u0648\u062f \u0645\u0633\u062a\u0642\u0631 \u06a9\u0631\u062f\u06cc\u0645. \u067e\u06cc\u0631 \u0645\u0646 \u062a\u0645\u0627\u0645 \u0648\u0642\u062a \u0645\u0636\u0637\u0631\u0628 \u0628\u0648\u062f\u0645 \u060c \u0627\u0645\u0627 \u0645\u0646 \u0627\u0635\u0644\u0627\u064b \u0646\u06af\u0631\u0627\u0646 \u0646\u0628\u0648\u062f\u0645.<\/p>\n<p>\u0645\u0637\u0645\u0626\u0646\u0627\u064b \u060c \u0627\u062a\u0641\u0627\u0642 \u063a\u06cc\u0631 \u0645\u0646\u062a\u0638\u0631\u0647 \u0627\u06cc \u0631\u062e \u062f\u0627\u062f\u0647 \u0627\u0633\u062a: \u06cc\u06a9 API \u0634\u062e\u0635 \u062b\u0627\u0644\u062b \u06a9\u0647 \u0645\u0627 \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u0642\u0627\u0644\u0628 \u067e\u0627\u0633\u062e \u0622\u0646\u0647\u0627 \u0648\u0627\u0628\u0633\u062a\u0647 \u0628\u0648\u062f\u06cc\u0645. \u0627\u0645\u0627 \u0628\u0647 \u062c\u0627\u06cc \u0642\u0637\u0639 \u062a\u0648\u0644\u06cc\u062f \u060c \u0622\u0646\u0686\u0647 \u0627\u062a\u0641\u0627\u0642 \u0627\u0641\u062a\u0627\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>\u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u0645\u0627 \u0642\u0627\u0644\u0628 \u062a\u063a\u06cc\u06cc\u0631 \u06cc\u0627\u0641\u062a\u0647 \u0631\u0627 \u06af\u0631\u0641\u062a \u0648 \u06cc\u06a9 \u062e\u0637\u0627\u06cc \u0648\u0627\u0636\u062d \u0631\u0627 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f<\/li>\n<li>\u0642\u0637\u0639 \u06a9\u0646\u0646\u062f\u0647 \u0645\u062f\u0627\u0631 \u06a9\u0647 \u0645\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u06cc\u0645 \u0627\u0632 \u062e\u0631\u0627\u0628\u06cc \u0647\u0627\u06cc \u0622\u0628\u0634\u0627\u0631 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0631\u062f<\/li>\n<li>\u0627\u06cc\u0646 \u0633\u06cc\u0633\u062a\u0645 \u0628\u0647 \u06cc\u06a9 \u0631\u0648\u0634 \u067e\u0631\u062f\u0627\u0632\u0634 \u062b\u0627\u0646\u0648\u06cc\u0647 \u0628\u0627\u0632\u06af\u0634\u062a<\/li>\n<li>\u0646\u0638\u0627\u0631\u062a \u0645\u0627 \u0628\u0627 \u0645\u0633\u0626\u0644\u0647 \u062f\u0642\u06cc\u0642 \u0645\u0647\u0646\u062f\u0633 \u062a\u0645\u0627\u0633 \u0631\u0627 \u0647\u0634\u062f\u0627\u0631 \u062f\u0627\u062f<\/li>\n<li>\u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u062f\u0642\u06cc\u0642\u0627\u064b \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u062f\u0631 \u06a9\u062c\u0627 \u0648 \u0686\u06af\u0648\u0646\u0647 \u0642\u0627\u0644\u0628 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a<\/li>\n<\/ol>\n<p>\u0645\u0647\u0646\u062f\u0633 \u062a\u0645\u0627\u0633 \u0628\u0627 \u06cc\u06a9 \u062a\u063a\u06cc\u06cc\u0631 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0633\u0627\u062f\u0647 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0637\u0631\u0641 \u06a9\u0631\u062f-\u0628\u062f\u0648\u0646 \u0627\u0636\u0637\u0631\u0627\u0631\u06cc \u060c \u0628\u062f\u0648\u0646 \u062c\u0644\u0633\u0647 \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0647\u0645\u0647 \u062f\u0633\u062a.<\/p>\n<p>\u0628\u0647\u062a\u0631\u06cc\u0646 \u0642\u0633\u0645\u062a\u061f \u0645\u0646 \u0641\u0642\u0637 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0641\u0647\u0645\u06cc\u062f\u0645 \u06a9\u0647 \u06af\u0632\u0627\u0631\u0634 \u062d\u0627\u062f\u062b\u0647 \u0631\u0627 \u0635\u0628\u062d \u0633\u0647 \u0634\u0646\u0628\u0647 \u062e\u0648\u0627\u0646\u062f\u0645.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AD%D9%88%D9%87_%D9%86%D9%88%D8%B4%D8%AA%D9%86_%DA%A9%D8%AF_GO_%DA%A9%D9%87_%D9%85%DB%8C_%D8%AA%D9%88%D8%A7%D9%86%DB%8C%D8%AF_%D8%A8%D9%87_%D8%A2%D9%86_%D8%A7%D8%B9%D8%AA%D9%85%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  \u0646\u062d\u0648\u0647 \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f GO \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0622\u0646 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0639\u062f \u0627\u0632 \u06af\u0630\u0634\u062a \u06cc\u06a9 \u062f\u0647\u0647 \u0627\u0632 \u0646\u0648\u0634\u062a\u0646 \u060c \u0644\u06cc\u0633\u062a \u0686\u06a9 \u0645\u0646 \u0628\u0631\u0627\u06cc \u06a9\u062f \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0628\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u06a9\u0627\u0641\u06cc \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u0646\u0645 \u062a\u0627 \u06a9\u0627\u0645\u0644\u0627\u064b \u0627\u0632 \u06a9\u0627\u0631 \u062c\u062f\u0627 \u0634\u0648\u0645:<\/p>\n<ol>\n<li>\n<strong>\u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0628\u0627 \u0645\u062a\u0646 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f<\/strong>: \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0628\u067e\u06cc\u0686\u06cc\u062f \u060c \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f \u060c \u0627\u0634\u06a9\u0627\u0644 \u0632\u062f\u0627\u06cc\u06cc \u0631\u0627 \u0622\u0633\u0627\u0646 \u06a9\u0646\u06cc\u062f<\/li>\n<li>\n<strong>\u062d\u0627\u0644\u062a \u0647\u0627\u06cc \u062e\u0631\u0627\u0628\u06cc \u0622\u0632\u0645\u0648\u0646<\/strong>: \u0641\u0642\u0637 \u0645\u0648\u0627\u0631\u062f \u0645\u0648\u0641\u0642\u06cc\u062a \u0631\u0627 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0646\u06a9\u0646\u06cc\u062f. \u0622\u0646\u0686\u0647 \u0631\u0627 \u06a9\u0647 \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc \u0627\u0641\u062a\u062f \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f<\/li>\n<li>\n<strong>\u0628\u0627 \u062a\u062e\u0631\u06cc\u0628 \u0628\u0631\u0627\u0632\u0646\u062f\u0647 \u0628\u0633\u0627\u0632\u06cc\u062f<\/strong>: \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u06a9\u0647 \u0628\u0647 \u062c\u0627\u06cc \u0634\u06a9\u0633\u062a\u0647 \u0634\u062f\u0646 \u062e\u0645 \u0645\u06cc \u0634\u0648\u0646\u062f<\/li>\n<li>\n<strong>\u0622\u0646 \u0631\u0627 \u0642\u0627\u0628\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f<\/strong>: \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u060c \u0645\u0639\u06cc\u0627\u0631\u0647\u0627 \u0648 \u0631\u062f\u06cc\u0627\u0628\u06cc<\/li>\n<li>\n<strong>\u062a\u0623\u06cc\u06cc\u062f \u0632\u0648\u062f \u0647\u0646\u06af\u0627\u0645 \u0648 \u06a9\u0627\u0645\u0644<\/strong>: \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0622\u0633\u06cc\u0628 \u060c \u0648\u0631\u0648\u062f\u06cc \u0647\u0627\u06cc \u0628\u062f \u0631\u0627 \u0628\u06af\u06cc\u0631\u06cc\u062f<\/li>\n<li>\n<strong>\u0641\u0631\u0636\u06cc\u0627\u062a \u0645\u0633\u062a\u0646\u062f<\/strong>: \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u067e\u0627\u06a9 \u0628\u0647 \u0634\u0645\u0627 \u0648 \u0647\u0645 \u062a\u06cc\u0645\u06cc \u0647\u0627\u06cc \u062e\u0648\u062f \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%D8%A7%DB%8C%D8%A7%D9%86\"><\/span>\n<p>  \u067e\u0627\u06cc\u0627\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062a\u0641\u0627\u0648\u062a \u0628\u06cc\u0646 \u06a9\u062f GO \u06a9\u0647 \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u0634\u0628 \u0648 \u06a9\u062f GO \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0622\u0646 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u0646\u06cc\u062f \u060c \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0647\u0648\u0634\u0645\u0646\u062f\u0627\u0646\u0647 \u06cc\u0627 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u0646\u06cc\u0633\u062a. \u0627\u06cc\u0646 \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0645\u0631\u0627\u0642\u0628\u062a \u060c \u062a\u0648\u062c\u0647 \u0628\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u0648 \u0637\u0631\u0632 \u0641\u06a9\u0631 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631\u0627\u06cc \u063a\u06cc\u0631 \u0645\u0646\u062a\u0638\u0631\u0647 \u0622\u0645\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0648\u0642\u062a\u06cc \u0627\u06a9\u0646\u0648\u0646 \u0628\u0627 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 GO \u0645\u0635\u0627\u062d\u0628\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u060c \u0641\u0642\u0637 \u0646\u0645\u06cc \u062f\u0627\u0646\u0645 \u06a9\u0647 \u0686\u0642\u062f\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u06a9\u062f\u06cc \u0631\u0627 \u06a9\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u0628\u0646\u0648\u06cc\u0633\u0646\u062f. \u0645\u0646 \u0645\u06cc \u062f\u0627\u0646\u0645 \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0622\u0646\u0647\u0627 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc \u0644\u0628\u0647 \u0631\u0627 \u0627\u062f\u0627\u0631\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0686\u06af\u0648\u0646\u0647 \u0622\u0646\u0647\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0634\u06a9\u0633\u062a \u0647\u0627 \u0641\u06a9\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0648 \u0627\u06cc\u0646\u06a9\u0647 \u0622\u06cc\u0627 \u06a9\u062f \u0622\u0646\u0647\u0627 \u0628\u0647 \u0622\u0646\u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u0628\u062f\u0648\u0646 \u0646\u06af\u0631\u0627\u0646\u06cc \u0627\u0632 \u0622\u062e\u0631 \u0647\u0641\u062a\u0647 \u062e\u0648\u062f \u0644\u0630\u062a \u0628\u0628\u0631\u0646\u062f.<\/p>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u060c \u0628\u0647\u062a\u0631\u06cc\u0646 \u06a9\u062f \u0641\u0642\u0637 \u0627\u0632 \u0644\u062d\u0627\u0638 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0635\u062d\u06cc\u062d \u0646\u06cc\u0633\u062a &#8211; \u0628\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u06a9\u0627\u0641\u06cc \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631 \u062c\u0645\u0639\u0647 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f \u0648 \u062a\u0627 \u0635\u0628\u062d \u062f\u0648\u0634\u0646\u0628\u0647 \u0648\u0627\u0642\u0639\u0627\u064b \u0642\u0637\u0639 \u0634\u0648\u06cc\u062f.<\/p>\n<p>\u0648 \u0628\u0631\u0627\u06cc \u0645\u0646 \u060c \u06a9\u0647 \u0622\u0631\u0627\u0645\u0634 \u0630\u0647\u0646 \u0627\u0631\u0632\u0634 \u0647\u0631 \u062e\u0637 \u0627\u0636\u0627\u0641\u06cc \u0628\u0631\u0627\u06cc \u062e\u0637\u0627\u06cc \u060c \u0647\u0631 \u0645\u0648\u0631\u062f \u0622\u0632\u0645\u0627\u06cc\u0634 \u0627\u0636\u0627\u0641\u06cc \u0631\u0627 \u062f\u0627\u0631\u062f \u0648 \u0647\u0631 \u062f\u0642\u06cc\u0642\u0647 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u06a9\u062f \u0645\u0646 \u0631\u0627 \u0642\u0648\u06cc \u062a\u0631 \u06a9\u0646\u0645.<\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0641\u0639\u0647 \u0628\u0639\u062f \u06a9\u0647 \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u062f \u06a9\u062f GO \u0631\u0627 \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u062f \u060c \u0627\u0632 \u062e\u0648\u062f \u0628\u067e\u0631\u0633\u06cc\u062f: &#8220;\u0627\u06af\u0631 \u0628\u0639\u062f \u0627\u0632 \u062a\u0631\u06a9 \u0645\u0646 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f \u060c \u0627\u0645\u0634\u0628 \u062e\u0648\u0628 \u0645\u06cc \u062e\u0648\u0627\u0628\u0645\u061f&#8221; \u0627\u06af\u0631 \u062c\u0648\u0627\u0628 \u0627\u0639\u062a\u0645\u0627\u062f \u0628\u0647 \u0646\u0641\u0633 &#8220;\u0628\u0644\u0647&#8221; \u0646\u06cc\u0633\u062a \u060c \u0634\u0645\u0627 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f\u0646 \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<p>\u062e\u0648\u062f \u0622\u06cc\u0646\u062f\u0647 \u0634\u0645\u0627 &#8211; \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u062d\u0644 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u0628\u062f\u0648\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u0644\u067e \u062a\u0627\u067e &#8211; \u0627\u0632 \u0634\u0645\u0627 \u0645\u062a\u0634\u06a9\u0631\u0645.<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631 \u062c\u0645\u0639\u0647 \u060c \u0633\u0627\u0639\u062a 4:45 \u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631 \u0627\u0633\u062a. \u0647\u0645 \u062a\u06cc\u0645\u06cc \u0647\u0627\u06cc \u0645\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0628\u062d\u062b \u062f\u0631 \u0645\u0648\u0631\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0622\u062e\u0631 \u0647\u0641\u062a\u0647 \u062f\u0631 Slack \u0647\u0633\u062a\u0646\u062f. \u0645\u0646 \u06cc\u06a9 \u0642\u0637\u0639\u0647 \u0645\u0647\u0645 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 \u067e\u0631\u062f\u0627\u0632\u0634 \u067e\u0631\u062f\u0627\u062e\u062a \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0645\u06cc \u0631\u0633\u0627\u0646\u0645. \u06a9\u062f \u0627\u0646\u062c\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u062a\u0633\u062a \u0647\u0627 \u0645\u06cc \u06af\u0630\u0631\u062f \u060c \u0648 \u0645\u0646 \u0642\u0635\u062f \u062f\u0627\u0631\u0645 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":101317,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-101316","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/101316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=101316"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/101316\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/101317"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=101316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=101316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=101316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}