🔵 عنوان مقاله 
Building a Coding Agent in Go from Scratch
🟢 خلاصه مقاله:
این مجموعه سه مطلب عملی برای توسعهدهندگان Go را کنار هم میگذارد: ساخت یک coding agent از صفر در Go، استفاده از Timing Wheels برای انقضای کارآمد ۱۰ میلیون کلید بدون اسکنهای O(n)، و مروری دقیق بر sync شامل Mutex، RWMutex، WaitGroup، Once، Cond و Pool. بخش agent بر معماری ماژولار، هماهنگی goroutine و channel، sandbox امن و حلقه بازخورد برای اجرای کد و بهبود تدریجی تأکید دارد. نوشته Bill Kennedy نشان میدهد چگونه با سطلبندی زمانسنجها و حرکت چرخ، سربار و نوسان تأخیر کاهش مییابد و حتی در مقیاس بزرگ پایدار میماند. در نهایت، مرور sync توصیههای عملی برای انتخاب درست بین primitives و channel، کاهش contention، و ارزیابی با benchmark، pprof و race detector ارائه میکند تا سامانههای Go هم هوشمند و هم سریع باشند.
#Go #Golang #Concurrency #TimingWheels #sync #SystemsProgramming #GoInternals #Performance
🟣لینک مقاله:
https://golangweekly.com/link/175365/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  Building a Coding Agent in Go from Scratch
🟢 خلاصه مقاله:
این مجموعه سه مطلب عملی برای توسعهدهندگان Go را کنار هم میگذارد: ساخت یک coding agent از صفر در Go، استفاده از Timing Wheels برای انقضای کارآمد ۱۰ میلیون کلید بدون اسکنهای O(n)، و مروری دقیق بر sync شامل Mutex، RWMutex، WaitGroup، Once، Cond و Pool. بخش agent بر معماری ماژولار، هماهنگی goroutine و channel، sandbox امن و حلقه بازخورد برای اجرای کد و بهبود تدریجی تأکید دارد. نوشته Bill Kennedy نشان میدهد چگونه با سطلبندی زمانسنجها و حرکت چرخ، سربار و نوسان تأخیر کاهش مییابد و حتی در مقیاس بزرگ پایدار میماند. در نهایت، مرور sync توصیههای عملی برای انتخاب درست بین primitives و channel، کاهش contention، و ارزیابی با benchmark، pprof و race detector ارائه میکند تا سامانههای Go هم هوشمند و هم سریع باشند.
#Go #Golang #Concurrency #TimingWheels #sync #SystemsProgramming #GoInternals #Performance
🟣لینک مقاله:
https://golangweekly.com/link/175365/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
  
  Building a coding agent from scratch - Bill Kennedy
  In this talk, Bill will share how AI agents fundamental work and interact with LLMs to perform basic tasks like listing, reading, and editing files. During the talk, Bill will live code an agent and explain all the parts of the code needed to make this work.…
❤3👍1
  🔵 عنوان مقاله 
qjs: Run JavaScript in Go
🟢 خلاصه مقاله:
qjs یک روش تازه برای اجرای JavaScript داخل اپهای Go است که بدون نیاز به Cgo کار میکند. بهجای اتصال به یک کتابخانه بومی، نسخه فورکشدهای از QuickJS را به WebAssembly کامپایل کرده و آن را زیر Wazero اجرا میکند. این رویکرد کل زنجیره را در محیط خالص Go نگه میدارد و فرایند بیلد، استاتیکسازی و کراسکامپایل را سادهتر میکند. مزیت دیگر، ایزولهسازی و سندباکس طبیعی ناشی از WebAssembly است. هرچند احتمالاً نسبت به اتصال بومی اندکی سربار دارد، اما برای سناریوهایی مثل اسکریپتنویسی، افزونهها و اجرای امن منطق کاربر، توازن خوبی بین سادگی، پرتابلبودن و امنیت ارائه میدهد.
#Go #JavaScript #WebAssembly #Wazero #QuickJS #Cgo #GoLang #Embedding
🟣لینک مقاله:
https://golangweekly.com/link/175350/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  qjs: Run JavaScript in Go
🟢 خلاصه مقاله:
qjs یک روش تازه برای اجرای JavaScript داخل اپهای Go است که بدون نیاز به Cgo کار میکند. بهجای اتصال به یک کتابخانه بومی، نسخه فورکشدهای از QuickJS را به WebAssembly کامپایل کرده و آن را زیر Wazero اجرا میکند. این رویکرد کل زنجیره را در محیط خالص Go نگه میدارد و فرایند بیلد، استاتیکسازی و کراسکامپایل را سادهتر میکند. مزیت دیگر، ایزولهسازی و سندباکس طبیعی ناشی از WebAssembly است. هرچند احتمالاً نسبت به اتصال بومی اندکی سربار دارد، اما برای سناریوهایی مثل اسکریپتنویسی، افزونهها و اجرای امن منطق کاربر، توازن خوبی بین سادگی، پرتابلبودن و امنیت ارائه میدهد.
#Go #JavaScript #WebAssembly #Wazero #QuickJS #Cgo #GoLang #Embedding
🟣لینک مقاله:
https://golangweekly.com/link/175350/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
  
  GitHub - fastschema/qjs: QJS is a CGO-Free, modern, secure JavaScript runtime for Go applications, built on the powerful QuickJS…
  QJS is a CGO-Free, modern, secure JavaScript runtime for Go applications, built on the powerful QuickJS engine and Wazero WebAssembly runtime - fastschema/qjs
  🔵 عنوان مقاله 
Go v1.25.2 and v1.24.8 have been released
🟢 خلاصه مقاله:
بهروزرسانیهای Go در نسخههای v1.25.2 و v1.24.8 منتشر شدهاند که مجموعهای از اصلاحات امنیتی را در بستههای مختلف ارائه میکند. این نسخهها از نوع وصلهای و سازگار به عقب هستند و بدون تغییر در رفتار زبان، امنیت و پایداری ابزارها و کتابخانهها را بهبود میدهند. توصیه میشود هرچه سریعتر به آخرین وصله در شاخه فعلیتان ارتقا دهید (برای v1.25 به v1.25.2 و برای v1.24 به v1.24.8)، یادداشتهای انتشار و هر CVE مرتبط را بررسی کنید، باینریها را مجدداً بسازید و ابزارهایی مانند govulncheck را برای شناسایی وابستگیهای آسیبپذیر اجرا کنید.
#Go #Golang #Security #Update #PatchRelease #CVE #DevOps #SoftwareMaintenance
🟣لینک مقاله:
https://golangweekly.com/link/175354/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Go v1.25.2 and v1.24.8 have been released
🟢 خلاصه مقاله:
بهروزرسانیهای Go در نسخههای v1.25.2 و v1.24.8 منتشر شدهاند که مجموعهای از اصلاحات امنیتی را در بستههای مختلف ارائه میکند. این نسخهها از نوع وصلهای و سازگار به عقب هستند و بدون تغییر در رفتار زبان، امنیت و پایداری ابزارها و کتابخانهها را بهبود میدهند. توصیه میشود هرچه سریعتر به آخرین وصله در شاخه فعلیتان ارتقا دهید (برای v1.25 به v1.25.2 و برای v1.24 به v1.24.8)، یادداشتهای انتشار و هر CVE مرتبط را بررسی کنید، باینریها را مجدداً بسازید و ابزارهایی مانند govulncheck را برای شناسایی وابستگیهای آسیبپذیر اجرا کنید.
#Go #Golang #Security #Update #PatchRelease #CVE #DevOps #SoftwareMaintenance
🟣لینک مقاله:
https://golangweekly.com/link/175354/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
👍1
  🔵 عنوان مقاله 
Reverse Engineering Doesn't Have to Be Hard
🟢 خلاصه مقاله:
این مطلب نشان میدهد مهندسی معکوس الزماً سخت نیست و با یک نمونه بدافزار نوشتهشده با Go بهصورت گامبهگام پیش میرود. بدون نیاز به دانستن Go یا کدنویسی، بر روششناسی تمرکز دارد: راهاندازی محیط امن، تریاژ اولیه (هشها، فراداده و بررسی سریع رشتهها)، تشخیص بستهبندی/ابهامسازی، تحلیل ایستا (بررسی imports، نقطههای ورود، نامگذاری تابعها، و ترسیم جریان کنترل) و در کنار آن تحلیل پویا در محیط جداافتاده برای مشاهده رفتار پردازشی، تغییرات سیستم و ترافیک شبکه. نتیجه، یک جعبهابزار فشرده از تکنیکهای پایه است که به مبتدیان اعتمادبهنفس میدهد تا منطق بدافزار را روشن کنند و نشانگرهای آلودگی (IOC) را استخراج کنند—بدون تکیه بر ترفندهای وابسته به زبان.
#ReverseEngineering #MalwareAnalysis #Golang #Infosec #StaticAnalysis #DynamicAnalysis #CyberSecurity
🟣لینک مقاله:
https://golangweekly.com/link/175361/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  Reverse Engineering Doesn't Have to Be Hard
🟢 خلاصه مقاله:
این مطلب نشان میدهد مهندسی معکوس الزماً سخت نیست و با یک نمونه بدافزار نوشتهشده با Go بهصورت گامبهگام پیش میرود. بدون نیاز به دانستن Go یا کدنویسی، بر روششناسی تمرکز دارد: راهاندازی محیط امن، تریاژ اولیه (هشها، فراداده و بررسی سریع رشتهها)، تشخیص بستهبندی/ابهامسازی، تحلیل ایستا (بررسی imports، نقطههای ورود، نامگذاری تابعها، و ترسیم جریان کنترل) و در کنار آن تحلیل پویا در محیط جداافتاده برای مشاهده رفتار پردازشی، تغییرات سیستم و ترافیک شبکه. نتیجه، یک جعبهابزار فشرده از تکنیکهای پایه است که به مبتدیان اعتمادبهنفس میدهد تا منطق بدافزار را روشن کنند و نشانگرهای آلودگی (IOC) را استخراج کنند—بدون تکیه بر ترفندهای وابسته به زبان.
#ReverseEngineering #MalwareAnalysis #Golang #Infosec #StaticAnalysis #DynamicAnalysis #CyberSecurity
🟣لینک مقاله:
https://golangweekly.com/link/175361/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
YouTube
  
  reverse engineering doesn't have to be hard
  https://jh.live/hex-rays || Disassemble, decompile and debug with IDA Pro! Use promo code HAMMOND50 for 50% off any IDA Pro product (license discount is only applicable to individuals for any product, not corporations  https://hex-rays.com/pricing) and code…
  🔵 عنوان مقاله 
GopherCon Korea 2025
🟢 خلاصه مقاله:
**GopherCon Korea 2025 حدود یک ماه دیگر، در تاریخ ۹ نوامبر برگزار میشود. این رویداد جامعهمحور برای توسعهدهندگان Go (Golang) فرصتی مناسب است تا بهروزترین روندها را دنبال کنند، تجربههای عملی را به اشتراک بگذارند و شبکهسازی مؤثری داشته باشند. معمولاً نشستها به موضوعاتی مانند مفاهیم زبان و کارایی، الگوهای همزمانی، توسعه cloud-native و microservices، ابزارها و observability و مطالعات موردی در مقیاس تولید میپردازد. اگر قصد حضور دارید، اکنون زمان خوبی برای ثبتنام و برنامهریزی سفر است و پیگیری کانالهای رسمی برای جزئیات برنامه و مکان توصیه میشود.
#GopherConKorea #GopherCon #Golang #Go #TechConference #Developers #Korea #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175357/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  GopherCon Korea 2025
🟢 خلاصه مقاله:
**GopherCon Korea 2025 حدود یک ماه دیگر، در تاریخ ۹ نوامبر برگزار میشود. این رویداد جامعهمحور برای توسعهدهندگان Go (Golang) فرصتی مناسب است تا بهروزترین روندها را دنبال کنند، تجربههای عملی را به اشتراک بگذارند و شبکهسازی مؤثری داشته باشند. معمولاً نشستها به موضوعاتی مانند مفاهیم زبان و کارایی، الگوهای همزمانی، توسعه cloud-native و microservices، ابزارها و observability و مطالعات موردی در مقیاس تولید میپردازد. اگر قصد حضور دارید، اکنون زمان خوبی برای ثبتنام و برنامهریزی سفر است و پیگیری کانالهای رسمی برای جزئیات برنامه و مکان توصیه میشود.
#GopherConKorea #GopherCon #Golang #Go #TechConference #Developers #Korea #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175357/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GopherCon Korea 2025
  
  
  The largest annual conference for Go language users in South Korea.
❤1
  🔵 عنوان مقاله 
Constraining LLMs with Structured Output in Python and Go
🟢 خلاصه مقاله:
**این مجموعه به روشهای عملی برای واداشتن LLMها به تولید خروجی ساختیافته میپردازد تا ادغام در سیستمهای تولیدی قابل اعتماد، قابل اعتبارسنجی و قابل آزمون باشد. در Python با تعریف شِماهای سازگار با JSON و اتصال خروجی مدل به انواع مشخص، و در Go با استفاده از structهای نوعدار، struct tagها، و خطاهای صریح، خطر خروجی متنی آزاد و شکننده کاهش مییابد.
همچنین یک ویدئو از Rost Glukhov ساخت یک عامل کدنویس در Go را از ابتدا نشان میدهد؛ از طراحی پرامپت و برنامهریزی تا اجرای ابزار و حلقه بازخورد. در بخش کارهای زمانبندی انبوه، مقاله Bill Kennedy توضیح میدهد چگونه Timing Wheels بدون پیمایش O(n) میتوانند میلیونها کلید را منقضی کنند—الگویی مفید برای زمانبندیکنندهها، کشها و محدودکنندههای نرخ در Go. برای درک عمیقتر همروندی، نوشتار Ankur Anand رفتار و انتخابهای درست پیرامون primitives بسته sync مانند Mutex، RWMutex، WaitGroup و Cond را تشریح میکند. در پایان، مطلبی از Matheus Mina این مجموعه را کامل میکند. حاصل کار، جعبهابزاری عملی برای ساخت عاملها و سرویسهای پربازده در Python و Go است.
#Go #Python #LLM #StructuredOutput #TimingWheels #Concurrency #Golang #Agents
🟣لینک مقاله:
https://golangweekly.com/link/175364/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  Constraining LLMs with Structured Output in Python and Go
🟢 خلاصه مقاله:
**این مجموعه به روشهای عملی برای واداشتن LLMها به تولید خروجی ساختیافته میپردازد تا ادغام در سیستمهای تولیدی قابل اعتماد، قابل اعتبارسنجی و قابل آزمون باشد. در Python با تعریف شِماهای سازگار با JSON و اتصال خروجی مدل به انواع مشخص، و در Go با استفاده از structهای نوعدار، struct tagها، و خطاهای صریح، خطر خروجی متنی آزاد و شکننده کاهش مییابد.
همچنین یک ویدئو از Rost Glukhov ساخت یک عامل کدنویس در Go را از ابتدا نشان میدهد؛ از طراحی پرامپت و برنامهریزی تا اجرای ابزار و حلقه بازخورد. در بخش کارهای زمانبندی انبوه، مقاله Bill Kennedy توضیح میدهد چگونه Timing Wheels بدون پیمایش O(n) میتوانند میلیونها کلید را منقضی کنند—الگویی مفید برای زمانبندیکنندهها، کشها و محدودکنندههای نرخ در Go. برای درک عمیقتر همروندی، نوشتار Ankur Anand رفتار و انتخابهای درست پیرامون primitives بسته sync مانند Mutex، RWMutex، WaitGroup و Cond را تشریح میکند. در پایان، مطلبی از Matheus Mina این مجموعه را کامل میکند. حاصل کار، جعبهابزاری عملی برای ساخت عاملها و سرویسهای پربازده در Python و Go است.
#Go #Python #LLM #StructuredOutput #TimingWheels #Concurrency #Golang #Agents
🟣لینک مقاله:
https://golangweekly.com/link/175364/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Rost Glukhov | Personal site and technical blog
  
  Constraining LLMs with Structured Output: Ollama, Qwen3 & Python or Go
  Constraining LLMs with Structured Output — Using Ollama and Qwen3 with examples in Python and Go
❤2
  🔵 عنوان مقاله 
Lo v1.52.0: A Lodash-Style Library for Go 1.18+
🟢 خلاصه مقاله:
** Lo v1.52.0 یک کتابخانه سبک Lodash برای Go 1.18+ است که مجموعهای از توابع کمکیِ آماده برای کار با slice و map و سایر کالکشنها را فراهم میکند. با تکیه بر generics در Go، این ابزار توابعی مانند Map، Filter، Reduce، GroupBy، Chunk، و عملیات مجموعهای مثل Union و Intersect را بهصورت type-safe و بدون نیاز به reflection ارائه میدهد. هدف آن کاهش کد زائد، سادهسازی پردازش دادهها، و افزایش خوانایی است؛ بهطوریکه بتوان بهجای حلقههای تودرتو، زنجیرهای از توابع قابلخواندن و کارا نوشت. نسخه v1.52.0 این رویکرد را برای کاربران Go 1.18+ تثبیت کرده و تجربهای روان و کارآمد برای تبدیل و مدیریت کالکشنها فراهم میکند.
#Go #Golang #Lo #Lodash #Generics #Go18 #Libraries #FunctionalProgramming
🟣لینک مقاله:
https://golangweekly.com/link/175369/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  Lo v1.52.0: A Lodash-Style Library for Go 1.18+
🟢 خلاصه مقاله:
** Lo v1.52.0 یک کتابخانه سبک Lodash برای Go 1.18+ است که مجموعهای از توابع کمکیِ آماده برای کار با slice و map و سایر کالکشنها را فراهم میکند. با تکیه بر generics در Go، این ابزار توابعی مانند Map، Filter، Reduce، GroupBy، Chunk، و عملیات مجموعهای مثل Union و Intersect را بهصورت type-safe و بدون نیاز به reflection ارائه میدهد. هدف آن کاهش کد زائد، سادهسازی پردازش دادهها، و افزایش خوانایی است؛ بهطوریکه بتوان بهجای حلقههای تودرتو، زنجیرهای از توابع قابلخواندن و کارا نوشت. نسخه v1.52.0 این رویکرد را برای کاربران Go 1.18+ تثبیت کرده و تجربهای روان و کارآمد برای تبدیل و مدیریت کالکشنها فراهم میکند.
#Go #Golang #Lo #Lodash #Generics #Go18 #Libraries #FunctionalProgramming
🟣لینک مقاله:
https://golangweekly.com/link/175369/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
  
  GitHub - samber/lo: 💥  A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)
  💥  A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...) - samber/lo
❤2
  🔵 عنوان مقاله 
Excelize 2.10: A Pure Go Way to Work with Excel Spreadsheets
🟢 خلاصه مقاله:
نسخه 2.10 از Excelize یک کتابخانه پخته و فعال در اکوسیستم Go است که امکان خواندن و نوشتن فایلهای XLAM، XLSM، XLSX، XLTM و XLTX را بهصورت مستقیم و بدون وابستگیهای بومی فراهم میکند. بهدلیل Pure Go بودن، استقرار ساده است، باینریها قابل حملاند و روی Linux، macOS و Windows پایدار اجرا میشوند؛ از محیطهای ابری و container تا serverless و ابزارهای CLI. این کتابخانه ایجاد و ویرایش فایلها، کار با شیتها، سلولها، استایلها و فرمولها را پوشش میدهد و با پشتیبانی از مواردی مانند Data Validation، Conditional Formatting، نمودارها و Pivot Table برای ساخت گزارشهای حرفهای مناسب است. در این نسخه تمرکز بر پایداری، کارایی و سازگاری بهتر با ویژگیهای مدرن Excel ادامه یافته و Excelize همچنان گزینهای قابل اتکا برای اتوماسیون Excel در پروژههای Go بهشمار میآید.
#Excelize #Go #Golang #Excel #Spreadsheets #OpenSource #DataEngineering #Automation
🟣لینک مقاله:
https://golangweekly.com/link/175639/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  Excelize 2.10: A Pure Go Way to Work with Excel Spreadsheets
🟢 خلاصه مقاله:
نسخه 2.10 از Excelize یک کتابخانه پخته و فعال در اکوسیستم Go است که امکان خواندن و نوشتن فایلهای XLAM، XLSM، XLSX، XLTM و XLTX را بهصورت مستقیم و بدون وابستگیهای بومی فراهم میکند. بهدلیل Pure Go بودن، استقرار ساده است، باینریها قابل حملاند و روی Linux، macOS و Windows پایدار اجرا میشوند؛ از محیطهای ابری و container تا serverless و ابزارهای CLI. این کتابخانه ایجاد و ویرایش فایلها، کار با شیتها، سلولها، استایلها و فرمولها را پوشش میدهد و با پشتیبانی از مواردی مانند Data Validation، Conditional Formatting، نمودارها و Pivot Table برای ساخت گزارشهای حرفهای مناسب است. در این نسخه تمرکز بر پایداری، کارایی و سازگاری بهتر با ویژگیهای مدرن Excel ادامه یافته و Excelize همچنان گزینهای قابل اتکا برای اتوماسیون Excel در پروژههای Go بهشمار میآید.
#Excelize #Go #Golang #Excel #Spreadsheets #OpenSource #DataEngineering #Automation
🟣لینک مقاله:
https://golangweekly.com/link/175639/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Ri Xu Online
  
  Excelize Official Documentation
  Go language API for Spreadsheet (Excel) Document
🔵 عنوان مقاله 
A Modern Approach to Preventing CSRF/CORF in Go
🟢 خلاصه مقاله:
این مقاله یک رویکرد مدرن برای مقابله با حملات CSRF/CORF در Go معرفی میکند. بهجای تکیه بر tokens، در Go 1.25 یک middleware به نام http.CrossOriginProtection ارائه شده که با استفاده از سیگنالهای امنیتی مرورگر (مانند Fetch Metadata و سیاستهای SameSite) میان درخواستهای امن هممبداء و درخواستهای مشکوک بینمبداء تفکیک ایجاد میکند. این میانافزار بهطور پیشفرض درخواستهای امن را میپذیرد و درخواستهای تغییردهنده حالت از مبداءهای نامطمئن را مسدود میکند، درحالیکه برای مسیرهای ضروری (مثل OAuth callback یا webhook) قابلیت allowlist دارد و با CORS نیز سازگار است. نتیجه، کاهش پیچیدگی پیادهسازی CSRF، تکیه بر قابلیتهای جدید مرورگرها، و استقرار مرحلهای (از حالت گزارش تا اعمال) است؛ ضمن اینکه جایگزین احراز هویت و کنترل دسترسی نیست، بلکه مکمل آنهاست.
#Go #CSRF #WebSecurity #FetchMetadata #SameSite #Middleware #GoLang #Security
🟣لینک مقاله:
https://golangweekly.com/link/175634/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  A Modern Approach to Preventing CSRF/CORF in Go
🟢 خلاصه مقاله:
این مقاله یک رویکرد مدرن برای مقابله با حملات CSRF/CORF در Go معرفی میکند. بهجای تکیه بر tokens، در Go 1.25 یک middleware به نام http.CrossOriginProtection ارائه شده که با استفاده از سیگنالهای امنیتی مرورگر (مانند Fetch Metadata و سیاستهای SameSite) میان درخواستهای امن هممبداء و درخواستهای مشکوک بینمبداء تفکیک ایجاد میکند. این میانافزار بهطور پیشفرض درخواستهای امن را میپذیرد و درخواستهای تغییردهنده حالت از مبداءهای نامطمئن را مسدود میکند، درحالیکه برای مسیرهای ضروری (مثل OAuth callback یا webhook) قابلیت allowlist دارد و با CORS نیز سازگار است. نتیجه، کاهش پیچیدگی پیادهسازی CSRF، تکیه بر قابلیتهای جدید مرورگرها، و استقرار مرحلهای (از حالت گزارش تا اعمال) است؛ ضمن اینکه جایگزین احراز هویت و کنترل دسترسی نیست، بلکه مکمل آنهاست.
#Go #CSRF #WebSecurity #FetchMetadata #SameSite #Middleware #GoLang #Security
🟣لینک مقاله:
https://golangweekly.com/link/175634/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
www.alexedwards.net
  
  A modern approach to preventing CSRF in Go - Alex Edwards
  
❤4
  🔵 عنوان مقاله 
Gist of Go: Atomics
🟢 خلاصه مقاله:
در Go، atomics مجموعهای از عملیات سطحپایین در بسته sync/atomic هستند که امکان دسترسی thread-safe و lock-free به مقادیر حافظه مشترک را میدهند. آنها برای متغیرهای ساده (مثل شمارندهها، فلگهای وضعیت، و تعویض ایمن یک اشارهگر پیکربندی) بسیار سریع و مناسباند و با Load/Store، Add/Swap و CAS رابطههای happens-before لازم را تضمین میکنند. وقتی نیاز به حفظ ناهمبستگیهای چندفیلدی دارید یا بهروزرسانی چندمرحلهای میخواهید، استفاده از mutex یا کانالها شفافتر و کمخطرتر است. از اختلاط دسترسی atomic و non-atomic به یک متغیر خودداری کنید، به همترازی و false sharing توجه کنید، و برای دادههای read-mostly از atomic.Value بهره ببرید. نتیجه: در سناریوهای محدود، همزمانی بدون mutex واقعا شدنی است—به شرط رعایت دقیق مدل حافظه و الگوهای درست.
#golang #concurrency #atomics #lockfree #CAS #multithreading #memorymodel
🟣لینک مقاله:
https://golangweekly.com/link/175632/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
  
  Gist of Go: Atomics
🟢 خلاصه مقاله:
در Go، atomics مجموعهای از عملیات سطحپایین در بسته sync/atomic هستند که امکان دسترسی thread-safe و lock-free به مقادیر حافظه مشترک را میدهند. آنها برای متغیرهای ساده (مثل شمارندهها، فلگهای وضعیت، و تعویض ایمن یک اشارهگر پیکربندی) بسیار سریع و مناسباند و با Load/Store، Add/Swap و CAS رابطههای happens-before لازم را تضمین میکنند. وقتی نیاز به حفظ ناهمبستگیهای چندفیلدی دارید یا بهروزرسانی چندمرحلهای میخواهید، استفاده از mutex یا کانالها شفافتر و کمخطرتر است. از اختلاط دسترسی atomic و non-atomic به یک متغیر خودداری کنید، به همترازی و false sharing توجه کنید، و برای دادههای read-mostly از atomic.Value بهره ببرید. نتیجه: در سناریوهای محدود، همزمانی بدون mutex واقعا شدنی است—به شرط رعایت دقیق مدل حافظه و الگوهای درست.
#golang #concurrency #atomics #lockfree #CAS #multithreading #memorymodel
🟣لینک مقاله:
https://golangweekly.com/link/175632/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
antonz.org
  
  Gist of Go: Atomics
  Concurrent-safe operations without explicit synchronization.
❤2👍1
  