Gopher Academy
3.85K subscribers
930 photos
41 videos
280 files
2.15K links
🕸 Gopher Academy

🔷interview golang
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
Forwarded from Bardia & Erfan
دارم پادکست پاول دوروف مال تلگرام رو میبینم

نکته جالبش اینجا اگر برادر نابغش نبود هیچ وقت تلگرامی وجود نداشت

نکته دیگه اینه اگر دقت کرده باشید پاول برعکس مارک زاکربرگ ، ایلان ماسک و . . .

زندگی خیلی لاکچری داره ولی ایلان و زاکربرگ همیشه ساده پوشن و خیلی زنی بی آلایشی از خودشون نشون میدن

حتی مارک و ایلان نهایتا ۶ تا ۸  ساعت میخوابن و پاول ۱۲ ساعت

دلیلش از نظر من خیلی جالبه

ایلان و زاکربرگ تمام سهام شرکتشون برای خودشون نیست! سرمایه گذار های بزرگی پشتشونه و هروقت بیان خودشون رو اینطور نشون بدن قطعابا فشار زیادی مواجه میشن

ولی پاول مالک خودش هست و برادرش و کلا ۴۰ برنامه نویس

هیچ وقت هم جواب به کسی نمیده

نکات خیلی زیادی داره این شخص پیشنهاد میکنم حتما درموردش مطالعه کنید

https://www.youtube.com/watch?v=qjPH9njnaVU
👍5🔥221
🔵 عنوان مقاله
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
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
2👍1
🔵 عنوان مقاله
CPU Cache-Friendly Data Structures in Go: 10x Speed with Same Algorithm

🟢 خلاصه مقاله:
** این مقاله نشان می‌دهد که در Go می‌توان بدون تغییر الگوریتم و فقط با بهینه‌سازی نحوهٔ دسترسی به حافظه، به بهبودهایی تا ۱۰ برابر رسید. ایدهٔ اصلی این است که با بهره‌گیری از محلیّت در CPU و نگه داشتن داده‌های «داغ» در حافظهٔ پیوسته، تعداد cache miss به شدت کم می‌شود. راهکارهای کلیدی شامل استفاده از sliceهای پیوسته به‌جای ساختارهای پر از pointer، فشرده‌سازی و چیدمان درست فیلدهای struct، انتخاب آگاهانه بین AoS و SoA، کاهش تخصیص‌ها و استفاده از sync.Pool برای بازاستفادهٔ حافظه، و اجتناب از false sharing در برنامه‌های همزمان است. اندازه‌گیری با ابزارهای benchmark و pprof کمک می‌کند ببینیم گلوگاه واقعاً از کجاست. نتیجهٔ عملی طبق تجربهٔ Serge Skoredin: با حفظ همان منطق، تنها با طراحی cache‑friendly در Go می‌توان جهش‌های بزرگ کارایی به‌دست آورد.

#Go #Golang #CPUCache #Performance #DataStructures #SystemsProgramming #Optimization #LowLatency

🟣لینک مقاله:
https://golangweekly.com/link/175636/web


👑 @gopher_academy
1🔥1
Gopher Academy
📌 Memory Allocation in Go این پست اپدیت می‌شود 🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go می‌پردازیم. درک درست از ساختار حافظه به شما کمک می‌کند عملکرد برنامه‌هایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمید. 🔵 Introduction…
☝️☝️☝️☝️☝️☝️☝️☝️☝️
این پست اپدیت می‌شود

🔹 در این پست به بررسی جزئیات مدیریت حافظه در زبان Go می‌پردازیم.

درک درست از ساختار حافظه به شما کمک می‌کند عملکرد برنامه‌هایتان را بهتر بهینه کنید و رفتار Garbage Collector را بهتر بفهمی
4
This media is not supported in your browser
VIEW IN TELEGRAM
31
یه ابزار باحال برای به اشتراک گذاری صفحه‌نمایش که با go مخصوص developerها نوشته شده
- کیفیت بالا و تاخیر کم
- می‌تونیم روی سرور خودمون بالا بیاریم
- نصب ساده با داکر
-امنیت بالا اگر براتون مهم باشه

https://github.com/screego/server

<Milad Niroee/>
👍3🔥1
🔵 عنوان مقاله
Oto 3.4: Low-Level Cross-Platform Sound Library

🟢 خلاصه مقاله:
Oto 3.4 یک کتابخانه صوتی سطح‌پایین و چندسکویی است که با ساده‌سازی تفاوت‌های سیستم‌های مختلف، پخش صوتی یکنواختی ارائه می‌دهد. این کتابخانه در Ebitengine برای اجرای صدا روی Windows، macOS، Linux، Nintendo Switch و iOS به‌کار می‌رود و بدون نیاز به بازنویسی کد صوتی برای هر پلتفرم، ادغام آسان و قابل اتکایی فراهم می‌کند. رویکرد سطح‌پایین Oto با تمرکز بر قابل‌حمل‌بودن و پایداری، زیرساختی سبک و مطمئن برای صدا در بازی‌های دوبعدی و اپلیکیشن‌های تعاملی ارائه می‌دهد.

#Oto #Ebitengine #GameDev #Audio #CrossPlatform #SoundLibrary #NintendoSwitch

🟣لینک مقاله:
https://golangweekly.com/link/175643/web


👑 @gopher_academy
🔵 عنوان مقاله
15 Go Subtleties You May Not Already Know

🟢 خلاصه مقاله:
این مقاله یک مرور جمع‌وجور و کاربردی از ۱۵ ظرافت کمترشناخته‌شده در Go است؛ نکاتی که معمولاً در بازبینی کد و اشکال‌زدایی مهم می‌شوند. از تفاوت nil در اینترفیس‌ها تا تفاوت گیرنده‌های اشاره‌ای و مقداری، رفتار slice و map، ترتیب پیمایش map و زمان‌بندی و هزینه defer، همگی با مثال‌های کوتاه بیان شده‌اند. بخش‌هایی درباره همزمانی و الگوهای هماهنگی (جلوگیری از نشت goroutine و استفاده درست از context) و نیز ظرایف کار با زمان—از تفاوت زمان یکنواخت و دیواری تا کار با تایمرها، tickerها و بسته time—هم پوشش داده می‌شود. نتیجه: مطلبی سریع و قابل مرور که حتی اگر فقط چند نکته‌اش برایتان تازه باشد، ارزش خواندن دارد؛ و اگر همه را می‌دانید، حس خوبی از تأیید دانسته‌هایتان می‌گیرید.

#Go #Golang #time #Concurrency #ProgrammingTips #SoftwareEngineering #GoTips

🟣لینک مقاله:
https://golangweekly.com/link/175625/web


👑 @gopher_academy
Forwarded from AI Labdon
🚗 کسب درآمد جدید برای رانندگان Uber با کمک به هوش مصنوعی!

▪️اوبر از یه قابلیت تازه رونمایی کرده که راننده‌هاش می‌تونن در زمان‌های بیکار، با انجام تسک‌های کوچیک به تمرین مدل‌های هوش مصنوعی کمک کنن و پول بگیرن!

▪️این کارها شامل مواردی مثل ضبط صدا با لهجه‌های مختلف، عکس گرفتن از اشیای خاص یا آپلود بعضی اسناد هست. اوبر برای هر تسک چند دلار پرداخت می‌کنه.

+ هم درآمد راننده‌ها بیشتر میشه ، هم اوبر داده‌های واقعی و متنوع برای آموزش مدل‌های هوش مصنوعی جمع میکنه!
Forwarded from Software Engineer Labdon
♨️ اسپاتیفای در حال تست قابلیتی برای استخراج DNA آهنگ!

▪️با این ویژگی قراره بفهمید چه کسانی پشت هر آهنگ بودن ، از ترانه‌سرا و تهیه‌کننده گرفته تا نوازنده‌ها. یعنی اگه مثلاً آهنگ جدید Taylor Swift رو دوست داری و تهیه‌کننده‌ش Max Martin باشه، اسپاتیفای ، آهنگ‌های دیگه‌ای از مکس مارتین رو بهت پیشنهاد میده!

+ این یعنی یه لایه‌ی تازه از پیشنهاد موزیک: نه فقط بر اساس «چی گوش دادی»، بلکه بر اساس «کی اون آهنگ رو ساخته».
🔵 عنوان مقاله
Go 1.25.3 and 1.24.9 have been released

🟢 خلاصه مقاله:
نسخه‌های Go 1.25.3 و 1.24.9 منتشر شدند. این به‌روزرسانی‌های جزئی، مشکل ایجاد‌شده توسط یک وصله امنیتی قبلی را که هنگام parse کردن X بیش از حد سخت‌گیرانه عمل می‌کرد، برطرف می‌کنند. ویژگی جدیدی اضافه نشده و تغییرات محدود به منطق parse مرتبط با X است. به کاربران شاخه‌های 1.25 و 1.24 توصیه می‌شود برای حفظ سازگاری و امنیت، به این نسخه‌ها ارتقا دهند و پس از ارتقا، تست‌ها را اجرا کنند.

#Go #Golang #Security #Release #Patch #Bugfix #Parsing #Update

🟣لینک مقاله:
https://golangweekly.com/link/175627/web


👑 @gopher_academy
Forwarded from Software Engineer Labdon
تا حالا اسم Server-Driven UI یا همون SDUI رو شنیدی؟

توی مدل معمولی ساخت اپ (Client-Driven UI)، همه‌چی از طراحی صفحه تا منطق رابط کاربری داخل خود اپ نوشته میشه.
یعنی حتی برای یه تغییر کوچیک تو رنگ، متن یا چیدمان، باید اپ رو دوباره بیلد کنی، منتشرش کنی و صبر کنی تا کاربر آپدیت کنه

اما SDUI یه نگاه جدید به این موضوع داره
توی این مدل، UI از سمت سرور تعریف میشه و اپ فقط اون داده‌ها رو می‌گیره و رندر می‌کنه.
نتیجه؟ می‌تونی ظاهر اپ رو از راه دور و بدون نیاز به آپدیت کاربر تغییر بدی!

برای ما فلاتر‌کارها هم یه پکیج خیلی کاربردی توی این حوزه ساخته شده به اسم Stac (قبلاً با نام Mirai شناخته می‌شد).

پکیج Stac یه فریم‌ورک SDUI مخصوص فلاتره که اجازه میده UI رو به صورت JSON از سرور بفرستی و اپ اون رو مثل ویجت‌های فلاتر رندر کنه.

چند تا مزیت مهمش:
- تغییر سریع UI بدون انتشار نسخه جدید
- شخصی‌سازی برای هر کاربر
- تست A/B راحت‌تر
- انعطاف بالا برای تیم‌های چابک (Agile)

اگه دنبال راهی هستی که اپ فلاترت رو پویا، سبک و قابل‌به‌روزرسانی از سرور بسازی،
پیشنهاد می‌کنم یه سر به Stac بزنی
معرفی در Medium
https://medium.com/stac/introducing-mirai-a-server-driven-ui-framework-for-flutter-d020fd0c387d

<Aria Ramin/>
🔵 عنوان مقاله
Goiaba: An Experimental Go Parser and Compiler in Rust

🟢 خلاصه مقاله:
** Goiaba یک پروژه آزمایشی و در حال توسعه است که با Rust نوشته می‌شود تا کد Go را پردازش کرده و خروجی WebAssembly تولید کند؛ هدف اصلی آن یادگیری مباحث ساخت parser و compiler است، نه عرضه یک ابزار آماده تولید. تمرکز پروژه بر شفافیت و درک‌پذیری است، بنابراین پوشش کامل ویژگی‌های Go و کارایی بالا در اولویت نیست و ممکن است بسیاری از بخش‌ها ناقص یا آزمایشی باشند. معماری ماژولار آن برای آزمایش و گسترش آسان طراحی شده و هدف‌گیری WebAssembly امکان اجرا در مرورگرها و زمان‌اجرای سبک را فراهم می‌کند. این پروژه می‌تواند مرجعی آموزشی برای علاقه‌مندان به compiler، parser و ابزارهای WebAssembly باشد و در آینده احتمالاً پوشش زبانی بهتر، تست و مستندسازی بیشتر و بهینه‌سازی‌های پایه را دنبال می‌کند.

#Goiaba #Go #Rust #WebAssembly #Compiler #Parser #ProgrammingLanguages #LearningProject

🟣لینک مقاله:
https://golangweekly.com/link/175645/web


👑 @gopher_academy
2
🔵 عنوان مقاله
the Cup o'Go podcast

🟢 خلاصه مقاله:
آخرین شماره Golang Weekly پادکست Cup o'Go را برجسته کرده و آن را به‌عنوان همراهی صوتی و به‌روز برای پیگیری روندها و مباحث مهم دنیای Go معرفی می‌کند. این پادکست با مرور خبرها، نکات عملی و گفت‌وگو درباره ویژگی‌های زبان، ابزارها و الگوهای عملکرد، به توسعه‌دهندگان در سطوح مختلف کمک می‌کند تا بدون صرف زمان زیاد، در جریان تغییرات اکوسیستم Go بمانند و از محتوای کیوریت‌شده Golang Weekly یک مکمل کاربردی بسازند.

#Golang #GoDevelopers #GolangWeekly #CupOGo #Podcast #SoftwareEngineering #Backend #OpenSource

🟣لینک مقاله:
https://golangweekly.com/link/175631/web


👑 @gopher_academy
11
🔵 عنوان مقاله
AWS Lambda for Go 1.50

🟢 خلاصه مقاله:
این مقاله اعلام می‌کند که AWS Lambda از Go 1.50 پشتیبانی می‌کند و مجموعه‌ای از نمونه‌ها و ابزارها برای ساخت سرویس‌های Serverless ارائه می‌دهد. محورها شامل استفاده از کتابخانه aws-lambda-go، ادغام با رویدادهای Amazon API Gateway، Amazon S3، Amazon DynamoDB و AWS Step Functions، و مشاهده‌پذیری از طریق Amazon CloudWatch و AWS Lambda Powertools for Go است. برای استقرار و اتوماسیون، از AWS SAM، AWS CDK و Serverless Framework استفاده می‌شود؛ تست محلی با AWS SAM CLI و شبیه‌ساز رابط زمان‌اجرا ممکن است، و استقرار هم به‌صورت zip و هم Container Image پشتیبانی می‌شود. نکات عملی شامل ساخت باینری‌های کوچک برای linux/amd64 یا linux/arm64، بهره‌گیری از Lambda Layers، بهینه‌سازی سرداستارت با مقداردهی اولیه سراسری و Provisioned Concurrency، تنظیم بهینه حافظه/CPU، انتخاب arm64 برای کارایی-به‌ازای-هزینه، و مدیریت امن رازها با AWS Secrets Manager یا AWS Systems Manager Parameter Store است؛ همچنین برای مهاجرت از نسخه‌های قبلی Go بر بررسی وابستگی‌ها و تنظیم پرچم‌های ساخت تأکید می‌شود.

#AWS #AWSLambda #Go #Serverless #Cloud #DevOps #InfrastructureAsCode #Observability

🟣لینک مقاله:
https://golangweekly.com/link/175649/web


👑 @gopher_academy
1🔥1
Forwarded from Software Engineer Labdon
♨️ اختلال گسترده در DNS آمازون

▪️از صبح امروز سرویس DNS شرکت آمازون دچار مشکل شده و همین باعث اختلال در بخشی از اینترنت جهانی شده.

▪️بیشتر DNSهای رایگان ایران هم فعلاً از کار افتادن و ممکنه بعضی سایت‌ها یا بازی‌ها باز نشن.

▪️اگه برای ورود به بازی‌ها مشکل دارید، می‌تونید موقتاً از DNS شرکت Windscribe استفاده کنید 👇

76.76.2.11
76.76.10.11

76.76.2.22
76.76.10.22


👑 @software_Labdon
2
Forwarded from Software Engineer 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
👍1🔥1
Forwarded from Software Engineer Labdon
♨️ افشای اسناد آمازون ؛ برنامه برای جایگزینی ۶۰۰ هزار کارگر با ربات‌ها!

▪️اسناد جدید نشون میده آمازون تا سال 2033 قصد داره بیش از 600 هزار کارگر آمریکایی رو با ربات جایگزین کنه، در حالی که فروشش تو همین بازه قراره دو برابر بشه.

▪️طبق گزارش‌ها، تیم رباتیک آمازون در حال خودکارسازی حدود 75% عملیات‌هاست و احتمالاً تا سال 2027 حدود 160 هزار شغل حذف میشه.

+ این طرح برای آمازون می‌تونه 30 سنت صرفه‌جویی در هر کالا و مجموعاً نزدیک به 12.6 میلیارد دلار سود بین سال‌های 2025 تا 2027 داشته باشه.
4
🔵 عنوان مقاله
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
👍1