Forwarded from Software Engineer Labdon
♨️ چین: آمریکا درپی فلجکردن زمان است! 😐
▪️وزارت امنیت ملی چین مدعی شده گروهی از حملات سایبری پیچیده هدایتشده توسط NSA آمریکا ، رو خنثی کرده که هدفش مرکز خدمات ملی زمان چین (NTSC) بوده.
▪️هدف این حملات به ادعای امنیت چین اختلال در سامانهٔ زمان رسمی که سرویسهای حیاتی مثل مخابرات، مالی، حملونقل و پرتابهای فضایی به آن وابستهاند.
▪️آسیب به سامانههای زمانسنجی میتواند تبعات گستردهای (از اختلالت بانکی تا مشکل در ناوبری و فضا) ایجاد کند. این ادعاها اگر درست باشند، موضوعی فراتر از یک حمله فنیست...!
➖➖➖➖➖➖➖➖
👑 @software_Labdon
▪️وزارت امنیت ملی چین مدعی شده گروهی از حملات سایبری پیچیده هدایتشده توسط NSA آمریکا ، رو خنثی کرده که هدفش مرکز خدمات ملی زمان چین (NTSC) بوده.
▪️هدف این حملات به ادعای امنیت چین اختلال در سامانهٔ زمان رسمی که سرویسهای حیاتی مثل مخابرات، مالی، حملونقل و پرتابهای فضایی به آن وابستهاند.
▪️آسیب به سامانههای زمانسنجی میتواند تبعات گستردهای (از اختلالت بانکی تا مشکل در ناوبری و فضا) ایجاد کند. این ادعاها اگر درست باشند، موضوعی فراتر از یک حمله فنیست...!
➖➖➖➖➖➖➖➖
👑 @software_Labdon
❤4
🔵 عنوان مقاله
How Slow is Channel-Based Iteration?
🟢 خلاصه مقاله:
این مقاله پرسش «تکرار مبتنی بر channel در Go چقدر کند است؟» را با یک مثال عملی بررسی میکند. تیم Dolt سه الگو را مقایسه کرده است: دو رویکرد مبتنی بر channel و یک روش iterator کشیدنی با iter.Pull. نتیجه کلی این است که هرچند channelها برای همزمانی، مدیریت فشار برگشتی و جداسازی تولیدکننده/مصرفکننده عالیاند، اما در حلقههای محاسباتیِ حساس به کارایی، سربار همگامسازی، زمانبندی goroutine و تخصیصها محسوس میشود. در مقابل، iter.Pull (و حلقههای ساده روی دادههای خطی) معمولاً سبکتر و بهینهترند. توصیه نهایی: وقتی به همزمانی واقعی نیاز دارید از channel استفاده کنید؛ برای مسیرهای داغ که فقط پیمایش میخواهند، سراغ iterator کشیدنی یا حلقههای ساده بروید.
#Go #Golang #Channels #Iteration #Performance #Benchmarking #Concurrency #Dolt
🟣لینک مقاله:
https://golangweekly.com/link/175626/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How Slow is Channel-Based Iteration?
🟢 خلاصه مقاله:
این مقاله پرسش «تکرار مبتنی بر channel در Go چقدر کند است؟» را با یک مثال عملی بررسی میکند. تیم Dolt سه الگو را مقایسه کرده است: دو رویکرد مبتنی بر channel و یک روش iterator کشیدنی با iter.Pull. نتیجه کلی این است که هرچند channelها برای همزمانی، مدیریت فشار برگشتی و جداسازی تولیدکننده/مصرفکننده عالیاند، اما در حلقههای محاسباتیِ حساس به کارایی، سربار همگامسازی، زمانبندی goroutine و تخصیصها محسوس میشود. در مقابل، iter.Pull (و حلقههای ساده روی دادههای خطی) معمولاً سبکتر و بهینهترند. توصیه نهایی: وقتی به همزمانی واقعی نیاز دارید از channel استفاده کنید؛ برای مسیرهای داغ که فقط پیمایش میخواهند، سراغ iterator کشیدنی یا حلقههای ساده بروید.
#Go #Golang #Channels #Iteration #Performance #Benchmarking #Concurrency #Dolt
🟣لینک مقاله:
https://golangweekly.com/link/175626/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
How slow is channel-based iteration?
We benchmarked channel-based iterators v. those provided by the iter package and share the results.
👍1🔥1
Forwarded from Software Engineer Labdon
♨️ افشای اسناد آمازون ؛ برنامه برای جایگزینی ۶۰۰ هزار کارگر با رباتها!
▪️اسناد جدید نشون میده آمازون تا سال 2033 قصد داره بیش از 600 هزار کارگر آمریکایی رو با ربات جایگزین کنه، در حالی که فروشش تو همین بازه قراره دو برابر بشه.
▪️طبق گزارشها، تیم رباتیک آمازون در حال خودکارسازی حدود 75% عملیاتهاست و احتمالاً تا سال 2027 حدود 160 هزار شغل حذف میشه.
+ این طرح برای آمازون میتونه 30 سنت صرفهجویی در هر کالا و مجموعاً نزدیک به 12.6 میلیارد دلار سود بین سالهای 2025 تا 2027 داشته باشه.
▪️اسناد جدید نشون میده آمازون تا سال 2033 قصد داره بیش از 600 هزار کارگر آمریکایی رو با ربات جایگزین کنه، در حالی که فروشش تو همین بازه قراره دو برابر بشه.
▪️طبق گزارشها، تیم رباتیک آمازون در حال خودکارسازی حدود 75% عملیاتهاست و احتمالاً تا سال 2027 حدود 160 هزار شغل حذف میشه.
+ این طرح برای آمازون میتونه 30 سنت صرفهجویی در هر کالا و مجموعاً نزدیک به 12.6 میلیارد دلار سود بین سالهای 2025 تا 2027 داشته باشه.
🔵 عنوان مقاله
Writing Better Go: Lessons from 10 Code Reviews
🟢 خلاصه مقاله:
** این اسلایدها با عنوان Writing Better Go: Lessons from 10 Code Reviews حاصل ارائهای از Konrad Reiche در GoLab 2025 است و مجموعهای از الگوهای تکرارشونده در بازبینیهای واقعی کد را به راهنماییهای عملی تبدیل میکند. محور اصلی، نوشتن کد ساده و خوانا با Go است: طراحی APIهای کوچک و منسجم، نامگذاری دقیق، تعریف interface در محل مصرف، استفاده سنجیده از composition، صفر-مقدارهای مفید، عبور منظم context و پرهیز از وضعیتهای سراسری.
بخش مهمی از درسها به خطاها و ثبت رویداد میپردازد: خطاها را بهعنوان مقدار مدیریت کنید، با %w زمینه اضافه کنید، از panic فقط برای شکستهای غیرقابلبازیابی در آغاز اجرا بهره ببرید، منابع را با defer جمع کنید، و در کتابخانهها بهجای لاگکردن، خطا برگردانید تا برنامه اصلی مسئول لاگ باشد.
در همروندی، تأکید بر سادگی و ایمنی است: چرخه عمر goroutineها را صریح کنید، آنها را به context گره بزنید، با select روی context.Done() از نشت جلوگیری کنید، و بسته به مسئله از channel یا ابزارهای sync بهدرستی استفاده کنید. بافرگذاری آگاهانه، مستندسازی قراردادها، و اعمال timeout و backpressure در پایپلاینها ضروری است.
برای کیفیت و کارایی، تستهای جدولمحور، پوشش مرزی، fuzzing، اجرای race detector، بنچمارک با testing.B و پروفایل با pprof توصیه میشود؛ از بهینهسازی زودهنگام بپرهیزید و تغییرات را بر اساس اندازهگیری انجام دهید.
در نهایت، فرهنگ بازبینی و ابزارهای خودکار نقش کلیدی دارند: یکدستی با gofmt/goimports، بررسیهای خودکار با go vet و staticcheck در CI، درخواستهای کوچک با پیامهای شفاف و تمرکز بازبینی بر درستی، طراحی و نگهداشتپذیری. این چکلیست عملی میتواند فوراً در تیمها و کدبیسهای Go به کار گرفته شود.
#Go #Golang #CodeReview #GoLab2025 #SoftwareEngineering #BestPractices #Concurrency #ErrorHandling
🟣لینک مقاله:
https://golangweekly.com/link/175975/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Writing Better Go: Lessons from 10 Code Reviews
🟢 خلاصه مقاله:
** این اسلایدها با عنوان Writing Better Go: Lessons from 10 Code Reviews حاصل ارائهای از Konrad Reiche در GoLab 2025 است و مجموعهای از الگوهای تکرارشونده در بازبینیهای واقعی کد را به راهنماییهای عملی تبدیل میکند. محور اصلی، نوشتن کد ساده و خوانا با Go است: طراحی APIهای کوچک و منسجم، نامگذاری دقیق، تعریف interface در محل مصرف، استفاده سنجیده از composition، صفر-مقدارهای مفید، عبور منظم context و پرهیز از وضعیتهای سراسری.
بخش مهمی از درسها به خطاها و ثبت رویداد میپردازد: خطاها را بهعنوان مقدار مدیریت کنید، با %w زمینه اضافه کنید، از panic فقط برای شکستهای غیرقابلبازیابی در آغاز اجرا بهره ببرید، منابع را با defer جمع کنید، و در کتابخانهها بهجای لاگکردن، خطا برگردانید تا برنامه اصلی مسئول لاگ باشد.
در همروندی، تأکید بر سادگی و ایمنی است: چرخه عمر goroutineها را صریح کنید، آنها را به context گره بزنید، با select روی context.Done() از نشت جلوگیری کنید، و بسته به مسئله از channel یا ابزارهای sync بهدرستی استفاده کنید. بافرگذاری آگاهانه، مستندسازی قراردادها، و اعمال timeout و backpressure در پایپلاینها ضروری است.
برای کیفیت و کارایی، تستهای جدولمحور، پوشش مرزی، fuzzing، اجرای race detector، بنچمارک با testing.B و پروفایل با pprof توصیه میشود؛ از بهینهسازی زودهنگام بپرهیزید و تغییرات را بر اساس اندازهگیری انجام دهید.
در نهایت، فرهنگ بازبینی و ابزارهای خودکار نقش کلیدی دارند: یکدستی با gofmt/goimports، بررسیهای خودکار با go vet و staticcheck در CI، درخواستهای کوچک با پیامهای شفاف و تمرکز بازبینی بر درستی، طراحی و نگهداشتپذیری. این چکلیست عملی میتواند فوراً در تیمها و کدبیسهای Go به کار گرفته شود.
#Go #Golang #CodeReview #GoLab2025 #SoftwareEngineering #BestPractices #Concurrency #ErrorHandling
🟣لینک مقاله:
https://golangweekly.com/link/175975/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Speaker Deck
Writing Better Go: Lessons from 10 Code Reviews
Why do Go developers obsess over variable names, error handling, and interfaces, even when your approach does the job, too? Whether gently or not so gen…
👍1
🔵 عنوان مقاله
The Speed of Random Number Generators
🟢 خلاصه مقاله:
در این مقاله، Daniel سرعت گزینههای رایج تولید اعداد تصادفی در Go را مقایسه میکند. او نشان میدهد که math/rand/v2 با الگوریتم PCG در سناریوهای غیرامنیتی سریعترین گزینه است و از نسخه قدیمیتر math/rand عملکرد بهتری دارد، در حالی که crypto/rand بهدلیل تمرکز بر امنیت بهطور قابلتوجهی کندتر است. جمعبندی عملی: برای کارهای غیررمزنگاری که سرعت و قابلیت بازتولید مهماند، از math/rand/v2 (PCG) استفاده کنید؛ اما برای مقاصد امنیتی، با وجود هزینهی عملکرد، crypto/rand انتخاب درست است.
#Go #Golang #RandomNumberGeneration #Performance #Benchmark #PCG #mathrand #cryptorand
🟣لینک مقاله:
https://golangweekly.com/link/175977/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The Speed of Random Number Generators
🟢 خلاصه مقاله:
در این مقاله، Daniel سرعت گزینههای رایج تولید اعداد تصادفی در Go را مقایسه میکند. او نشان میدهد که math/rand/v2 با الگوریتم PCG در سناریوهای غیرامنیتی سریعترین گزینه است و از نسخه قدیمیتر math/rand عملکرد بهتری دارد، در حالی که crypto/rand بهدلیل تمرکز بر امنیت بهطور قابلتوجهی کندتر است. جمعبندی عملی: برای کارهای غیررمزنگاری که سرعت و قابلیت بازتولید مهماند، از math/rand/v2 (PCG) استفاده کنید؛ اما برای مقاصد امنیتی، با وجود هزینهی عملکرد، crypto/rand انتخاب درست است.
#Go #Golang #RandomNumberGeneration #Performance #Benchmark #PCG #mathrand #cryptorand
🟣لینک مقاله:
https://golangweekly.com/link/175977/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Daniel Lemire's blog
Speed of random number generators in Go
We often need to generate random numbers in software. We need them for games, simulations, testing, and so forth. In many of these cases, we would like to use the fastest generator we can find, as long as it is reasonably random-looking. In some instances…
👍1
🔵 عنوان مقاله
The 'Compare IP Subnets' Proposal
🟢 خلاصه مقاله:
در مجموعه Accepted!، «Anton» یکی از تغییرات «Go 1.26» را معرفی میکند که مشکل قدیمی مقایسه زیرشبکههای IP را هدف گرفته است. این تغییر روشی استاندارد و یکدست برای مقایسه و مرتبسازی زیرشبکهها (IPv4 و IPv6) ارائه میکند تا کارهایی مثل مرتبسازی جدولهای مسیریابی، حذف موارد تکراری و بررسی شمول (Containment) ساده و قابل اتکا شود. نتیجه این است که کدهای شبکه خواناتر میشوند، از خطاهای ظریف جلوگیری میشود و عملکرد بهبود مییابد؛ بدون آنکه ناسازگاری با کدهای موجود ایجاد شود. این قابلیت بهصورت افزایشی اضافه میشود و میتوان آن را تدریجی به کار گرفت.
#Go #Golang #Networking #IP #CIDR #Subnetting #Go126 #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175978/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The 'Compare IP Subnets' Proposal
🟢 خلاصه مقاله:
در مجموعه Accepted!، «Anton» یکی از تغییرات «Go 1.26» را معرفی میکند که مشکل قدیمی مقایسه زیرشبکههای IP را هدف گرفته است. این تغییر روشی استاندارد و یکدست برای مقایسه و مرتبسازی زیرشبکهها (IPv4 و IPv6) ارائه میکند تا کارهایی مثل مرتبسازی جدولهای مسیریابی، حذف موارد تکراری و بررسی شمول (Containment) ساده و قابل اتکا شود. نتیجه این است که کدهای شبکه خواناتر میشوند، از خطاهای ظریف جلوگیری میشود و عملکرد بهبود مییابد؛ بدون آنکه ناسازگاری با کدهای موجود ایجاد شود. این قابلیت بهصورت افزایشی اضافه میشود و میتوان آن را تدریجی به کار گرفت.
#Go #Golang #Networking #IP #CIDR #Subnetting #Go126 #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175978/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
antonz.org
Go proposal: Compare IP subnets
The same way IANA and Python do.
👍2
🎙️ عنوان پادکست:
Agentic workflows and AI firewalls, so pretty much cancelling ourselves out
خلاصه پادکست:
** این متن به پارادوکس میان «جریانهای کاری عاملمحور» و «فایروالهای AI» میپردازد: هرچه محدودیتها را سختتر کنیم، مزیت خودمختاری عاملها را کمرنگتر میکنیم. راهحل، نه حذف یکی به نفع دیگری، بلکه طراحی متوازن است: سیاستهای لایهای، محدودهدهی توانمندیها، اجرا در sandbox، دروازهگذاری روی ابزارها و ثبت شفاف رخدادها تا هم ایمنی سنجشپذیر باشد و هم کارایی حفظ شود....
Agentic workflows and AI firewalls, so pretty much cancelling ourselves out
خلاصه پادکست:
** این متن به پارادوکس میان «جریانهای کاری عاملمحور» و «فایروالهای AI» میپردازد: هرچه محدودیتها را سختتر کنیم، مزیت خودمختاری عاملها را کمرنگتر میکنیم. راهحل، نه حذف یکی به نفع دیگری، بلکه طراحی متوازن است: سیاستهای لایهای، محدودهدهی توانمندیها، اجرا در sandbox، دروازهگذاری روی ابزارها و ثبت شفاف رخدادها تا هم ایمنی سنجشپذیر باشد و هم کارایی حفظ شود....
👍1
Forwarded from DevOps Labdon
🔵 عنوان مقاله
Exposing Kubernetes Services Without Cloud LoadBalancers: A Practical Guide
🟢 خلاصه مقاله:
این راهنما برای محیطهای bare‑metal و air‑gapped که به LoadBalancerهای ابری دسترسی ندارند، روشی عملی برای اکسپوز کردن سرویسهای Kubernetes ارائه میدهد. با ترکیب MetalLB و NGINX Ingress، ابتدا MetalLB یک IP پایدار به Serviceهای نوع LoadBalancer اختصاص میدهد، سپس NGINX Ingress ترافیک را بر اساس host و path به سرویسهای داخلی مسیردهی میکند. نتیجه، یک نقطه ورودی واحد با IP ثابت، مدیریت سادهتر DNS و عدم نیاز به باز کردن پورتهای متعدد است. آموزش شامل نصب و پیکربندی MetalLB (L2 یا BGP)، استقرار NGINX Ingress، تعریف Ingressها، و نکاتی درباره TLS، پایداری، و عیبیابی است؛ و نشان میدهد چرا این الگو نسبت به NodePort یا hostNetwork تمیزتر و مقیاسپذیرتر بوده و تجربهای مشابه فضای ابری را بدون وابستگی به آن فراهم میکند.
#Kubernetes #MetalLB #NGINXIngress #BareMetal #AirGapped #DevOps #Ingress #LoadBalancer
🟣لینک مقاله:
https://ku.bz/CDWB9HJg7
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Exposing Kubernetes Services Without Cloud LoadBalancers: A Practical Guide
🟢 خلاصه مقاله:
این راهنما برای محیطهای bare‑metal و air‑gapped که به LoadBalancerهای ابری دسترسی ندارند، روشی عملی برای اکسپوز کردن سرویسهای Kubernetes ارائه میدهد. با ترکیب MetalLB و NGINX Ingress، ابتدا MetalLB یک IP پایدار به Serviceهای نوع LoadBalancer اختصاص میدهد، سپس NGINX Ingress ترافیک را بر اساس host و path به سرویسهای داخلی مسیردهی میکند. نتیجه، یک نقطه ورودی واحد با IP ثابت، مدیریت سادهتر DNS و عدم نیاز به باز کردن پورتهای متعدد است. آموزش شامل نصب و پیکربندی MetalLB (L2 یا BGP)، استقرار NGINX Ingress، تعریف Ingressها، و نکاتی درباره TLS، پایداری، و عیبیابی است؛ و نشان میدهد چرا این الگو نسبت به NodePort یا hostNetwork تمیزتر و مقیاسپذیرتر بوده و تجربهای مشابه فضای ابری را بدون وابستگی به آن فراهم میکند.
#Kubernetes #MetalLB #NGINXIngress #BareMetal #AirGapped #DevOps #Ingress #LoadBalancer
🟣لینک مقاله:
https://ku.bz/CDWB9HJg7
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Medium
Exposing Kubernetes Services Without Cloud LoadBalancers: A Practical Guide
“How do I expose my apps in an air‑gapped Kubernetes cluster without any cloud load balancer?”
🔵 عنوان مقاله
The “10x” Commandments of Highly Effective Go
🟢 خلاصه مقاله:
** مقاله با تمثیلی شوخطبعانه، «ده فرمان» برای توسعهدهندگان Go ارائه میکند؛ نه چیزِ تازه، بلکه ده راهنمای کلی و کاربردی برای نوشتن کد ساده، خوانا و قابل نگهداری. محورهای اصلی شامل سادگی و خوانایی، اینترفیسهای کوچک، مدیریت صریح خطا، همزمانی قابل پیشبینی با goroutine و channel، سازماندهی درست پکیجها، تست و بنچمارک، مستندسازی و بهینهسازی مبتنی بر اندازهگیری است. هر اصل با نمونههای عملی در GoLand همراه شده: استفاده از inspections برای شناسایی کد غیر idiomatic، refactor به سمت اینترفیسهای کوچک، الگوهای آماده برای error handling، اجرای تست و بنچمارک، دیباگ همزمانی، یکپارچهسازی linters و پروفایلینگ برای سنجش کارایی. برچسب «10x» فقط کمکی برای بهخاطر سپردن است؛ پیام اصلی این است که با تکیه بر عادتهای درست و بهرهگیری از GoLand، انجام کار درست آسانتر میشود.
#Go #Golang #GoLand #SoftwareEngineering #BestPractices #Testing #Refactoring #Productivity
🟣لینک مقاله:
https://golangweekly.com/link/175970/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The “10x” Commandments of Highly Effective Go
🟢 خلاصه مقاله:
** مقاله با تمثیلی شوخطبعانه، «ده فرمان» برای توسعهدهندگان Go ارائه میکند؛ نه چیزِ تازه، بلکه ده راهنمای کلی و کاربردی برای نوشتن کد ساده، خوانا و قابل نگهداری. محورهای اصلی شامل سادگی و خوانایی، اینترفیسهای کوچک، مدیریت صریح خطا، همزمانی قابل پیشبینی با goroutine و channel، سازماندهی درست پکیجها، تست و بنچمارک، مستندسازی و بهینهسازی مبتنی بر اندازهگیری است. هر اصل با نمونههای عملی در GoLand همراه شده: استفاده از inspections برای شناسایی کد غیر idiomatic، refactor به سمت اینترفیسهای کوچک، الگوهای آماده برای error handling، اجرای تست و بنچمارک، دیباگ همزمانی، یکپارچهسازی linters و پروفایلینگ برای سنجش کارایی. برچسب «10x» فقط کمکی برای بهخاطر سپردن است؛ پیام اصلی این است که با تکیه بر عادتهای درست و بهرهگیری از GoLand، انجام کار درست آسانتر میشود.
#Go #Golang #GoLand #SoftwareEngineering #BestPractices #Testing #Refactoring #Productivity
🟣لینک مقاله:
https://golangweekly.com/link/175970/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
The JetBrains Blog
The “10x” Commandments of Highly Effective Go | The GoLand Blog
What makes Go developers truly effective? In this guest post, John Arundel shares ten practical “commandments” of Go excellence – timeless lessons for writing cleaner, safer, and more maintainable Go code.
❤1👍1
🔵 عنوان مقاله
Subtest Grouping in Go
🟢 خلاصه مقاله:
این مقاله از Golang Weekly توضیح میدهد چگونه با استفاده از T.Run در بسته testing میتوان زیرآزمونها را گروهبندی کرد تا تستهای بزرگ و Table-Driven خواناتر، قابل نگهداریتر و قابل فیلترشدن شوند. با نامگذاری سلسلهمراتبی مثل "Parser/Valid" یا "Auth/Admin/Permissions" میتوان با go test -run فقط یک گروه یا یک مورد خاص را اجرا کرد و همان الگو برای Benchmarks با B.Run نیز کاربرد دارد. مزیت دیگر این الگو، مدیریت سادهتر Setup/Teardown با تکیه بر Closure و t.Cleanup و همچنین امکان موازیسازی امن با t.Parallel است. مقاله بر نامهای شفاف، پرهیز از وضعیت مشترک قابل تغییر، گروههای منسجم، و استفاده از t.Helper برای سادهسازی تأکید میکند؛ ضمن اینکه خروجی ساختیافته تستها با -json و ابزارها/IDEها بهخوبی یکپارچه میشود و عیبیابی و سرعت توسعه را بهبود میدهد.
#Go #Golang #Testing #Subtests #GoTesting #GolangWeekly #SoftwareTesting
🟣لینک مقاله:
https://golangweekly.com/link/175983/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Subtest Grouping in Go
🟢 خلاصه مقاله:
این مقاله از Golang Weekly توضیح میدهد چگونه با استفاده از T.Run در بسته testing میتوان زیرآزمونها را گروهبندی کرد تا تستهای بزرگ و Table-Driven خواناتر، قابل نگهداریتر و قابل فیلترشدن شوند. با نامگذاری سلسلهمراتبی مثل "Parser/Valid" یا "Auth/Admin/Permissions" میتوان با go test -run فقط یک گروه یا یک مورد خاص را اجرا کرد و همان الگو برای Benchmarks با B.Run نیز کاربرد دارد. مزیت دیگر این الگو، مدیریت سادهتر Setup/Teardown با تکیه بر Closure و t.Cleanup و همچنین امکان موازیسازی امن با t.Parallel است. مقاله بر نامهای شفاف، پرهیز از وضعیت مشترک قابل تغییر، گروههای منسجم، و استفاده از t.Helper برای سادهسازی تأکید میکند؛ ضمن اینکه خروجی ساختیافته تستها با -json و ابزارها/IDEها بهخوبی یکپارچه میشود و عیبیابی و سرعت توسعه را بهبود میدهد.
#Go #Golang #Testing #Subtests #GoTesting #GolangWeekly #SoftwareTesting
🟣لینک مقاله:
https://golangweekly.com/link/175983/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Redowan's Reflections
Subtest grouping in Go
Go has support for subtests starting from version 1.7. With t.Run, you can nest tests,
assign names to cases, and let the runner execute work in parallel by calling t.Parallel
from subtests if needed.
For small suites, a flat set of t.Run calls is usually…
assign names to cases, and let the runner execute work in parallel by calling t.Parallel
from subtests if needed.
For small suites, a flat set of t.Run calls is usually…
👍1
🔵 عنوان مقاله
the results of its latest 'State of Developer Ecosystem Report'
🟢 خلاصه مقاله:
خلاصه تازهترین State of Developer Ecosystem Report نشان میدهد Go در شاخص Language Promise Index رتبه چهارم و در فهرست "languages developers want to adopt next" رتبه نخست را کسب کرده است. این نتایج از رشد چشمگیر و علاقه بالای توسعهدهندگان به Go حکایت دارد؛ زبانی ساده، سریع و مناسب برای کارهای cloud-native، microservices و زیرساخت که انتظار میرود حضورش در پروژههای واقعی و مسیرهای یادگیری و استخدام بیشتر شود.
#Go #golang #DeveloperEcosystem #DeveloperSurvey #ProgrammingLanguages #LanguageTrends #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175972/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
the results of its latest 'State of Developer Ecosystem Report'
🟢 خلاصه مقاله:
خلاصه تازهترین State of Developer Ecosystem Report نشان میدهد Go در شاخص Language Promise Index رتبه چهارم و در فهرست "languages developers want to adopt next" رتبه نخست را کسب کرده است. این نتایج از رشد چشمگیر و علاقه بالای توسعهدهندگان به Go حکایت دارد؛ زبانی ساده، سریع و مناسب برای کارهای cloud-native، microservices و زیرساخت که انتظار میرود حضورش در پروژههای واقعی و مسیرهای یادگیری و استخدام بیشتر شود.
#Go #golang #DeveloperEcosystem #DeveloperSurvey #ProgrammingLanguages #LanguageTrends #SoftwareEngineering
🟣لینک مقاله:
https://golangweekly.com/link/175972/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Jetbrains
Tools and Trends - The State of Developer Ecosystem in 2025
Explore key software developer statistics for 2025 in the State of Developer Ecosystem Report. Trends, insights, and tools shaping the developer world.
❤1
Forwarded from VIP
🚀 به دنیای توسعه و تکنولوژی خوش اومدی!
اگر به موضوعات زیر علاقهمندی:
🔹 Golang
🔹 Linux & DevOps
🔹 Software Engineering
🔹 AI & Machine Learning
🔹 فرصتهای شغلی ریموت (خارجی و داخلی)
ما برات یه مجموعه کانالهای تخصصی ساختیم تا همیشه بهروز، حرفهای و الهامبخش بمونی!
📚 یادگیری، فرصت، شبکهسازی و پیشرفت، همش اینجاست...
📌 از این لینک همه چنلهامونو یهجا ببین و جوین شو:
👉 https://t.me/addlist/AJ7rh2IzIh02NTI0
اگر به موضوعات زیر علاقهمندی:
🔹 Golang
🔹 Linux & DevOps
🔹 Software Engineering
🔹 AI & Machine Learning
🔹 فرصتهای شغلی ریموت (خارجی و داخلی)
ما برات یه مجموعه کانالهای تخصصی ساختیم تا همیشه بهروز، حرفهای و الهامبخش بمونی!
📚 یادگیری، فرصت، شبکهسازی و پیشرفت، همش اینجاست...
📌 از این لینک همه چنلهامونو یهجا ببین و جوین شو:
👉 https://t.me/addlist/AJ7rh2IzIh02NTI0
👍1
🔵 عنوان مقاله
Durable Background Execution with Go and SQLite
🟢 خلاصه مقاله:
این مقاله نشان میدهد چگونه میتوان با ترکیب Go و SQLite یک سیستم اجرای پسزمینهای ساخت که در برابر کرش و راهاندازی مجدد مقاوم است، بدون نیاز به سرویسهای خارجی. الگوی اصلی شامل صف کاری مبتنی بر SQLite با ستونهایی برای وضعیت، شمارش تلاشها و زمان اجاره (lease) است؛ کارگرها کار را در تراکنش میگیرند، با زمان اجاره کوتاه اجرا میکنند، و نتیجه را ثبت میکنند تا در صورت کرش، کار دوباره قابل بازیابی باشد. با فعالسازی WAL، شاخصگذاری درست، backoff نمایی و الزام به idempotency، معمولاً به تضمین at-least-once میرسیم. کنترل همزمانی با worker pool، خاموشسازی تمیز با سیگنالها و context، و رصد شاخصهایی مانند نرخ خطا و زمان پردازش از ملزومات عملیاتی است. برای آزمودن این رفتارها، استفاده از Subtest Grouping in Go (با ایدههایی از Dima Kotik و Redowan Delowar) کمک میکند سناریوها بهصورت گروهی، خوانا و قابل موازیسازی بررسی شوند.
#Go #SQLite #BackgroundJobs #Durability #GoTesting #Subtests #Concurrency #SoftwareDesign
🟣لینک مقاله:
https://golangweekly.com/link/175982/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Durable Background Execution with Go and SQLite
🟢 خلاصه مقاله:
این مقاله نشان میدهد چگونه میتوان با ترکیب Go و SQLite یک سیستم اجرای پسزمینهای ساخت که در برابر کرش و راهاندازی مجدد مقاوم است، بدون نیاز به سرویسهای خارجی. الگوی اصلی شامل صف کاری مبتنی بر SQLite با ستونهایی برای وضعیت، شمارش تلاشها و زمان اجاره (lease) است؛ کارگرها کار را در تراکنش میگیرند، با زمان اجاره کوتاه اجرا میکنند، و نتیجه را ثبت میکنند تا در صورت کرش، کار دوباره قابل بازیابی باشد. با فعالسازی WAL، شاخصگذاری درست، backoff نمایی و الزام به idempotency، معمولاً به تضمین at-least-once میرسیم. کنترل همزمانی با worker pool، خاموشسازی تمیز با سیگنالها و context، و رصد شاخصهایی مانند نرخ خطا و زمان پردازش از ملزومات عملیاتی است. برای آزمودن این رفتارها، استفاده از Subtest Grouping in Go (با ایدههایی از Dima Kotik و Redowan Delowar) کمک میکند سناریوها بهصورت گروهی، خوانا و قابل موازیسازی بررسی شوند.
#Go #SQLite #BackgroundJobs #Durability #GoTesting #Subtests #Concurrency #SoftwareDesign
🟣لینک مقاله:
https://golangweekly.com/link/175982/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
threedots.tech
Durable Background Execution with Go and SQLite
A DNS outage is like a flash flood. It hits you and disappears as if it were never there. “It was probably the DNS” became a meme. But, half the time, we do not know the exact cause. The outage is seldom long enough to diagnose, sequester, replicate, simulate…
👍1