Hacker News

Show HN: Deadlog – Go-ийн түгжрэлийг дибаг хийхэд зориулагдсан бараг унадаг мутекс

\u003ch2\u003eShow HN: Deadlog – Go-ийн түгжрэлийг дибаг хийхэд зориулагдсан бараг унадаг мутекс\u003c/h2\u003e \u003cp\u003e Энэхүү хакерын мэдээний "Show HN" нийтлэл нь хөгжүүлэгчдийн нийгэмд зориулан бүтээсэн шинэлэг төсөл эсвэл хэрэгслийг толилуулж байна. Илтгэл нь техникийн шинэчлэл, асуудлыг шийдвэрлэх арга замыг төлөөлдөг...

1 min read Via github.com

Mewayz Team

Editorial Team

Hacker News
\u003ch2\u003eShow HN: Deadlog – Go-ийн түгжрэлийг дибаг хийхэд зориулагдсан бараг унадаг мутекс\u003c/h2\u003e \u003cp\u003e Энэхүү хакерын мэдээний "Show HN" нийтлэл нь хөгжүүлэгчдийн нийгэмд зориулан бүтээсэн шинэлэг төсөл эсвэл хэрэгслийг толилуулж байна. Өргөдөл нь техникийн шинэчлэл, асуудлыг шийдвэрлэх арга замыг харуулж байна.\u003c/p\u003e \u003ch3\u003eТөслийн онцлох үйл явдлууд\u003c/h3\u003e \u003cp\u003eЭнэ төслийг анхаарал татахуйц болгож буй гол талууд:\u003c/p\u003e \u003cul\u003e \u003cli\u003e Хамтын ажиллагааг дэмжих нээлттэй эхийн арга\u003c/li\u003e \u003cli\u003e Бодит ертөнцийн асуудлыг шийдвэрлэх практик шийдэл\u003c/li\u003e \u003cli\u003e Програм хангамж хөгжүүлэх техникийн шинэчлэл\u003c/li\u003e \u003cli\u003eОлон нийтийн оролцоо ба санал хүсэлтэд тулгуурласан сайжруулалт\u003c/li\u003e \u003c/ul\u003e \u003ch3\u003eТехникийн ач холбогдол\u003c/h3\u003e \u003cp\u003eЭнэ төрлийн төсөл нь хамтын хүчин чармайлтаар олон нийтэд тулгуурласан хөгжлийн хүч, техникийн шийдлүүдийн тасралтгүй хувьсал өөрчлөлтийг харуулдаг.\u003c/p\u003e

Байнга асуудаг асуултууд

Deadlog гэж юу вэ, энэ нь Go-ийн түгжрэлийг арилгахад хэрхэн тусалдаг вэ?

Deadlog нь нээлттэй эх сурвалжтай, Go-н стандарт sync.Mutex-г орлуулах шахам орлуулах программ бөгөөд хөгжүүлэгчдэд нэгэн зэрэг хэрэглэгдэж буй программуудын түгжрэлийг илрүүлж, оношлоход тусалдаг. Энэ нь цоож авах дарааллыг бүртгэж, горутиныг тодорхойгүй хугацаагаар гацахад хүргэдэг дугуй хамаарлыг тодорхойлох замаар ажилладаг. Та царцаасан процессуудыг ширтэхийн оронд яг ямар түгжээтэй зөрчилдөж байгааг харуулсан тодорхой тайлангуудыг авах бөгөөд энэ нь Go-ийн нарийн төвөгтэй нэгэн зэрэг кодын үндсэн дээр гар аргаар дибаг хийхэд цаг хэмнэнэ.

Би Deadlog-г одоо байгаа Go төсөлд хэрхэн нэгтгэх вэ?

Deadlog нь бараг унадаг орлуулалт хэлбэрээр бүтээгдсэн тул интеграцчлал нь маш энгийн. Та sync.Mutex-г өөрийн кодын Deadlog-ийн мутекс төрлөөр сольдог бөгөөд ихэвчлэн зөвхөн импортын замыг өөрчлөх, хамгийн бага дахин боловсруулах шаардлагатай байдаг. Үүнийг хөгжүүлэлт болон туршилтын явцад идэвхжүүлж, дараа нь нэмэлт ачааллаас зайлсхийхийн тулд үйлдвэрлэлд идэвхгүй болго. Олон Go микро үйлчилгээг удирдаж буй багуудын хувьд Mewayz зэрэг платформууд Deadlog гэх мэт дибаг хийх хэрэгслүүдийн хамт байршуулах ажлын урсгалыг хялбарчлах боломжтой 207 модулийг сард 19 доллараар санал болгодог.

Deadlog-г үйлдвэрлэлийн орчинд аюулгүй ашиглаж болох уу?

Deadlog нь үндсэндээ хөгжүүлэлт болон үе шатлалын орчинд зориулагдсан. Төхөөрөмж нь түгжээг хянах, бүртгэл хөтлөх замаар гүйцэтгэлийн нэмэлт зардлыг нэмдэг бөгөөд энэ нь хоцролтод мэдрэмтгий үйлдвэрлэлийн ажлын ачаалалд тохиромжгүй болгодог. Санал болгож буй арга бол туршилтын явцад Deadlog болон CI дамжуулах хоолойнуудыг үйлдвэрлэлд хүрэхээс нь өмнө гацааг арилгахын тулд идэвхжүүлэх явдал юм. Та маргаантай асуудлуудыг тодорхойлж, шийдвэрлэсний дараа хамгийн оновчтой ажиллахын тулд стандарт sync.Mutex руу буцна уу.

Go-д гацах нийтлэг шалтгаан юу вэ, би түүнээс хэрхэн сэргийлэх вэ?

Go дахь түгжрэл нь ихэвчлэн түгжээний дараалалд нийцэхгүй байх, өөр өөр дарааллаар олж авсан үүрлэсэн цоожууд эсвэл хэзээ ч утгыг хүлээн авдаггүй сувгууд дээр хүлээгдэж буй гажигуудаас үүсдэг. Урьдчилан сэргийлэх стратегид түгжээг тогтмол дэлхийн дарааллаар авах, context.Context-тай завсарлага ашиглах, эрт илрүүлэх зорилгоор Deadlog гэх мэт хэрэгслүүдийг ашиглах зэрэг орно. Сард $19 үнээр авах боломжтой Mewayz-ийн 207 хөгжүүлэлтийн модуль нь багууд бат бөх, түгжрэлгүй аппликейшн бүтээхэд туслах Go concurrency шилдэг туршлагуудыг багтаасан болно.