Gopher Academy
3.33K subscribers
915 photos
40 videos
279 files
1.96K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
Forwarded from AI Labdon
🔥چطور از این عکسا درست کنیم؟! به راحتی

📰وارد ChatGPT بشید و پرامپت زیر رو بهش بدید ، توی پرامپت باید مشخص کنید این عکسو واسه چه کشوری ایجاد کنه ؛)

A Close-Up Photograph Of A Large Map, All Landmarks Set On A Vintage (IRAN) Map Background Write The County Name With Capital Letters. As A Miniature 3D Landscape Is Sculpted Sand, Featuring Of Most Iconic And Famous Landmarks And Architectural From Same Country famous landmark (Azadi Tower and Milad Tower)
• And 3D Tiny Small Autumn Trees And Leaves Surround The Landmarks, Creating A Surreal, Cozy, Atmosphere.
🍾1
Forwarded from Bardia & Erfan
🤖 علاقه‌مند به دنیای هوش مصنوعی هستی؟

دنبال می‌کنی که چطور AI داره دنیا رو متحول می‌کنه؟

پس جای درستی اومدی!

🎯 در کانال ما هر روز:

🔍 جدیدترین اخبار و دستاوردهای دنیای AI

🧠 تحلیل‌ تخصصی در حوزه یادگیری ماشین، دیپ لرنینگ و مدل‌های زبانی

💼 بررسی کاربردهای هوش مصنوعی در پزشکی، صنعت، آموزش، امنیت و اقتصاد

🛠 معرفی ابزارها، دوره‌ها و منابع یادگیری

📈 بررسی ترندها و آینده‌ فناوری‌های مرتبط با هوش مصنوعی

همه‌ی این‌ها به زبان ساده، خلاصه و قابل فهم برای همه علاقه‌مندان — از مبتدی تا حرفه‌ای


👇👇👇👇👇


https://t.me/ai_labdon
1
🔵 عنوان مقاله
🔒 The FIPS 140-3 Go Cryptographic Module

🟢 خلاصه مقاله:

استاندارد FIPS 140 مرتبط با پیاده‌سازی‌های رمزنگاری، بخصوص در بخش‌هایی که با دولت آمریکا در ارتباط هستند، مهم است و الزامی به حساب می‌آید. بیشتر توسعه‌دهندگان شاید نیازی به نگرانی درباره این استاندارد نداشته باشند، اما درک و پیاده‌سازی آن برای توسعه‌دهندگان گو می‌تواند فرصت‌های جدیدی را فراهم کند. این مقاله به بررسی عمیق پشتیبانی گو از FIPS 140 می‌پردازد و دانشی کلیدی را برای توسعه دهندگانی که با دولت آمریکا کار می‌کنند، ارائه می‌دهد.

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


👑 @gopher_academy
3
ویندوز XP برگشت... اونم توی مرورگر شما!

اگه دلتون برای ویندوز XP تنگ شده، یه پروژه جالب به اسم Win32.run منتشر شده که محیط کامل XP رو مستقیماً تو مرورگر اجرا می‌کنه!

از صفحه بوت و فایل‌اکسپلورر گرفته تا Paint و حتی برنامه‌های قدیمی - همه‌چی شبیه نسخه واقعی کار می‌کنه!

این پروژه با استفاده از تکنولوژی‌های Svelte و Tailwind ساخته شده و یه شبیه‌ساز واقعیه، نه صرفاً یه پوسته نمایشی.

امتحانش کن! فقط سرچ کن :

Win32.run

#RoidBest
2
🔵 عنوان مقاله
Learn Go with Tests: An Online Book for Learning TDD with Go

🟢 خلاصه مقاله:

منبع مورد بحث در طی سال گذشته چندین بار به‌روزرسانی شده و همچنان منبعی فوق‌العاده برای فهم مبانی و موضوعات پیشرفته‌تر نظیر بازتابی و جنریک‌ها می‌باشد. این منبع با ارائه راهنمایی‌های جامع و قابل فهم، از اصول اولیه تا سطوح پیچیده‌تر را پوشش داده و مورد استفاده قرار می‌گیرد و با به‌روزرسانی‌های دقیق، همواره مرتبط و کارآمد باقی مانده است.

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


👑 @gopher_academy
3👍2
Forwarded from Software Engineer Labdon
چطور در معماری میکروسرویس، از ناهماهنگی بین دیتابیس و Message Broker جلوگیری کنیم؟
یکی از چالش‌های رایج در میکروسرویس‌ها، تضمین هماهنگی داده (Data Consistency) بین عملیات دیتابیس و ارسال پیام (Event) است.

سناریوی آشنای مشکل‌ساز:
سرویس سفارش (Order) را در نظر بگیرید:
1. سفارش جدید در دیتابیس ذخیره می‌شود. (موفق)
2. قرار است یک رویداد OrderCreated به Kafka یا RabbitMQ ارسال شود تا سرویس نوتیفیکیشن به کاربر ایمیل بزند. (ناموفق)

نتیجه: سفارش در سیستم ثبت شده، اما به دلیل قطعی موقت در Message Broker، ایمیل تأیید هرگز ارسال نمی‌شود! این یعنی یک ناهماهنگی جدی در سیستم.

راه‌حل: الگوی Outbox Pattern
الگوی Outbox یک راه‌حل زیبا و قابل اعتماد برای این مشکل است. به جای ارسال مستقیم پیام، آن را در یک جدول به نام outbox در همان دیتابیس و داخل همان تراکنش ذخیره می‌کنیم.
چرا این روش کار می‌کند؟
چون ذخیره سفارش و ذخیره پیام در جدول outbox، هر دو در یک تراکنش اتمیک (Atomic Transaction) انجام می‌شوند. این یعنی یا هر دو با هم موفق می‌شوند یا هر دو با هم شکست می‌خورند. به این ترتیب، هیچ رویدادی گم نخواهد شد!
سپس، یک پردازشگر پس‌زمینه (Message Relay) مسئول خواندن پیام‌ها از جدول outbox و ارسال مطمئن آن‌ها به Message Broker است.


<Mahdi M./>
9
شروع یک پروژه Go همیشه با یک سؤال مهم همراهه:
ساختار پروژه‌ رو چطور طراحی کنیم؟
یکی از چالش‌های اولیه در پروژه‌های گولنگ، انتخاب یک ساختار ماژولار، خوانا و مقیاس‌پذیره. الکس ادواردز در مقاله‌ی زیر، ۱۱ نکته کاربردی برای ساختاردهی پروژه‌های Go مطرح کرده که خوندنش میتونه توی این مورد بهمون کمک کنه:

https://www.alexedwards.net/blog/11-tips-for-structuring-your-go-projects


<Abbas Pourhadi/>
8
Gopher Academy
شروع یک پروژه Go همیشه با یک سؤال مهم همراهه: ساختار پروژه‌ رو چطور طراحی کنیم؟ یکی از چالش‌های اولیه در پروژه‌های گولنگ، انتخاب یک ساختار ماژولار، خوانا و مقیاس‌پذیره. الکس ادواردز در مقاله‌ی زیر، ۱۱ نکته کاربردی برای ساختاردهی پروژه‌های Go مطرح کرده که…
🧭 راهنمای ساختاربندی پروژه‌های Go

1. ساختار را بر اساس نیاز پروژه انتخاب کنید
سبک‌های ساختاری بسته به نوع پروژه (CLI، کتابخانه، وب‌اپ/میکروسرویس) متفاوت است و «یک ساختار برتر» وجود ندارد .


2. کارآمدی مهم‌تر از کمال
هدف این باشد که ساختار پروژه قابل فهم، قابل تغییر و قابل نگهداری باشد؛ نه لزوماً کامل و بی‌نقص .


3. از روی عادت‌ به ساختار زبان‌های دیگر نقل رعایت نکنید
اGo فلسفه‌ٔ ساده خود را دارد؛ تقلید ساختار Django یا Rails ممکن است منجر به سردرگمی شود .


4. هر پوشه=هر package
ایجاد فولدر فقط به دلیل نظم ظاهری اشتباه است. فقط هنگامی package بسازید که منطق مستقلی بخواهید .


5. با یک skeleton استاندارد شروع کنید

پروژه‌های کوچک: همهٔ فایل‌ها در روت

main.go, foo.go, bar.go

وقتی پکیج‌های داخلی نیاز بود:

internal/foo/foo.go
main.go

پروژه‌های بزرگ‌تر با چند executable:

cmd/app1/, cmd/app2/, internal/, go.mod, README.md


6. اجازه دهید ساختار با رشد پروژه تغییر کند
نیاز به تغییر ساختار را با توسعه واقعی پروژه شناسایی کنید؛ نه از ابتدا همه‌چیز را طراحی کنید .


7. اگر بلاتکلیف هستید، با دو فایل شروع کنید
فقط go.mod و main.go؛ باقی را با نیاز واقعی اضافه کنید .


8. موارد مرتبط را در کنار هم نگه دارید
توابع کمکی، typeها و متدها مرتبط را نزدیک هم نگه دارید تا خوانایی بیشتر شود .


9. اندازه فایل مهم نیست، تا وقتی درست است
فایل‌های بزرگ ایرادی ندارند، مگر اینکه واقعا نگهداری را سخت کنند .


10. پکیج‌سازی فقط وقتی لازم باشد
پکیج‌های خیلی کوچک یا کم‌اهمیت اضافه نکنید؛ مگر برای استفاده مجدد یا جداسازی لایه‌ها .


11. به علائم هشدار توجه کنید

مشکل در پیدا کردن کد

تغییرات کوچک توزیع‌شده در کل پروژه

پیچیدگی در debugging

وابستگی‌های دورانی و مشکل در error handling
→ وقت بازنگری ساختار است .

جمع‌بندی

هدف: ساختاری موثر، خوانا، و قابل نگهداری.

روش:

1. شروع ساده،

2. استفاده از ساختار پیشنهادی (مثل پوشه‌های cmd/, internal/)،

3. اجازه دهید پروژه رشد کند و ساختار با آن عینا وفق پیدا کند.

هشدار: وقتی احساس کردید ساختار کارآمد نیست، فکری برای بازطراحی آن بکنید.

https://t.me/addlist/QtXiQlynEJwzODBk
👍72🍾2
🔵 عنوان مقاله
Kubernetes Best Practices 2025: Comprehensive White Paper

🟢 خلاصه مقاله:

مقاله‌ای در مورد بهبود امنیت، قابلیت اطمینان و کنترل هزینه در کلاستر‌های Kubernetes با استفاده از راهنمایی‌های عملی بر اساس تجربیات واقعی ارائه شده است. در بخش امنیت، تاکید بر سیاست‌های شبکه، بروزرسانی‌های منظم و مکانیزم‌های دسترسی امن است. برای قابلیت اطمینان، طراحی برای مقابله با شکست و استفاده از استراتژی‌هایی مانند خودترمیمی و استقرار در چندین منطقه پیشنهاد شده است. نیز، کنترل هزینه‌ها از طریق بهینه‌سازی استفاده از منابع و پیاده‌سازی سیستم‌های کارآمد لاگ‌برداری و نظارت تأکید شده است. این راهکارها به کاربران Kubernetes کمک می‌کنند تا امنیت، قابلیت اطمینان و کفایت هزینه در کلاستر‌های خود را بهبود بخشند.

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


👑 @gopher_academy
5
نسخه ۱.۷.۰ پکیج env منتشر شد 🥳:

https://github.com/nasermirzaei89/env

چرا این پکیج رو نوشتم؟
- چون تقریبا همیشه اپلیکیشن‌هام درون Dockerfile قرار میگیره و صرفا گرفتن کانفیگ از متغیرهای محیطی کافیه
- به جای فقط متغیر رشته‌ای نوع های دیگه رو هم میخونه، از جمله bool، عدد، اسلایس...

توی نسخه جدید چی شده؟
- پکیج testify با چندتا تابع دست‌نویس جایگزین شده تا این کتابخونه Zero Dependency بشه

ای کسانی که از کتابخونه های بزرگ کانفیگ استفاده می‌کنید
ترکیب این کتابخونه و 
github.com/joho/godotenv
بی‌نظیره 😎

اما مثلا وقتی از
github.com/spf13/viper
استفاده می‌کنید با خودش نزدیک ۲۰ تا دیپندنسی داره، دیگه خود دانید 🫠
🔥62👍1🕊1🍾1
🔵 عنوان مقاله
cpuid 2.3: CPU Feature Identification for Go

🟢 خلاصه مقاله:

این مقاله راهنمایی عملی برای تعیین مشخصات فنی پردازنده مرکزی کامپیوتر (CPU) است که شامل تعداد هسته‌های فیزیکی و منطقی، خانواده پردازنده، و جزئیات مشابه می‌باشد. این راهنما از پردازنده‌های معماری‌های x86/x64 و ARM64 پشتیبانی می‌کند و برای کاربرانی که به اطلاعات دقیق فنی سیستم خود نیاز دارند بسیار مفید است.

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


👑 @gopher_academy
2🎉2👍1
Forwarded from Linux Labdon
لینوکس بالاخره از مرز ۵٪ در آمریکا عبور کرد!

▪️طبق آمار StatCounter، برای اولین بار سهم سیستم‌عامل‌های لینوکسی در آمریکا از ۵٪ گذشت؛ اتفاقی که خیلی‌ها منتظرش بودن!

▫️پایان پشتیبانی ویندوز 10
▫️سیاست‌های آزاردهنده مایکروسافت
▫️و البته محبوبیت دیوانه‌وار Steam Deck

+ همه اینا باعث شدن کاربرا کم‌کم از ویندوز دل بکنن و برن سراغ دنیای آزاد لینوکس.


👑 @Linux_Labdon
🍾7🎉2🕊11
🔵 عنوان مقاله
pproftui: A Terminal-Based Diagnostic Tool for pprof Data

🟢 خلاصه مقاله:

مقاله‌ای که مورد بررسی قرار گرفته، رویکردی نوین در پروفایلینگ نرم‌افزار ارائه می‌دهد که تمرکز را از نمایش داده‌های بصری به تعامل مستقیم با کدی که فعالیت‌های تحت نظر را رانده معطوف می‌کند. این روش به توسعه‌دهندگان این امکان را می‌دهد که به سرعت و به طور مؤثر مشکلات مربوط به عملکرد را شناسایی و رفع کنند. همچنین، امکان مشاهده‌ی لحظه‌ای پروفایل و مقایسه‌ی نتایج نسخه‌های مختلف کد در زمان واقعی فراهم می‌آید که می‌تواند به بهبود مستمر و افزایش کارایی کمک کند.

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


👑 @gopher_academy
4
Forwarded from DevOps Labdon
🔵 عنوان مقاله
Managing OpenAI API keys with HashiCorp Vault's dynamic secrets plugin (4 minute read)

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفت، به توسعه یک پلاگین جدید برای HashiCorp Vault پرداخته است که هدف آن افزایش امنیت کلیدهای API شرکت OpenAI است. این پلاگین با تولید دینامیک توکن‌های با مدت زمان کوتاه که به صورت خودکار منقضی می‌شوند، به ارتقاء امنیت کمک می‌کند. با استفاده از این پلاگین، کاربران قادر خواهند بود تا کلیدهای API را در محیطی امن تر و کنترل شده‌تر مدیریت نمایند. این فرآیند نه تنها ریسک دسترسی بی‌مجاز به کلیدهای طولانی‌مدت را کاهش می‌دهد بلکه به افزایش امنیت داده‌ها و کاربردهایی که از این کلیدها استفاده می‌کنند نیز کمک می‌کند. استفاده از توکن‌های کوتاه مدت و خودکار این امکان را به ارمغان می‌آورد که هر گونه نفوذ احتمالی به سرعت محدود و کنترل شود. این پلاگین نوآوری مهمی در زمینه مدیریت امنیتی کلیدهای API به شمار می‌رود.

🟣لینک مقاله:
https://www.hashicorp.com/en/blog/managing-openai-api-keys-with-hashicorp-vault-s-dynamic-secrets-plugin?utm_source=tldrdevops


👑 @DevOps_Labdon
5
🔵 عنوان مقاله
Introducing go-cdc-chunkers: A New Way to Chunk and Deduplicate Everything

🟢 خلاصه مقاله:

چانکینگ مبتنی بر محتوا (CDC) روشی نوآورانه در مدیریت داده‌ها است که با تقسیم داده‌ها به چانک‌هایی با اندازه‌های متغیر مبتنی بر محتوای داده، امکان تکرارزدایی بهتری فراهم می‌کند. ژیل در مورد فواید این روش به تفصیل صحبت کرده و پروژه جدیدی در زبان Go را معرفی می‌کند که دسترسی به این الگوریتم‌ها را ممکن می‌سازد. این پروژه به توسعه‌دهندگان امکان به‌کارگیری CDC را در سیستم‌های خود می‌دهد و انقلابی در زمینه فناوری داده به شمار می‌رود.

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


👑 @gopher_academy
2👍2
Forwarded from Database Labdon
🔵 عنوان مقاله
Redka: Redis Re-Implemented with SQL

🟢 خلاصه مقاله:
این مقاله به بررسی و توضیح یک فروشگاه داده مبتنی بر زبان برنامه‌نویسی Go می‌پردازد که سازگار با API رِدیس است اما در پشت صحنه از SQL استفاده می‌کند تا عملیات‌ها را مدیریت نماید. تاکنون، این سیستم بر پایه SQLite عمل می‌کرده است، اما نسخه ۰.۶ پشتیبانی از Postgres را معرفی می‌کند. این پشتیبانی جدید امکان استفاده از قابلیت‌های بیشتری را برای کاربران فراهم می‌آورد، زیرا Postgres یک سیستم مدیریت پایگاه داده‌ی قوی‌تر نسبت به SQLite است و امکانات گسترده‌تری را در زمینه‌ی مقیاس‌پذیری و امنیت فراهم می‌آورد. این تغییر به کاربران اجازه می‌دهد تا از یک رابط برنامه‌نویسی آشنا استفاده کنند، در حالی که از قدرت و انعطاف‌پذیری SQL بهره‌مند شوند.

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


👑 @Database_Academy
5
🔵 عنوان مقاله
You Don't Need testify/assert

🟢 خلاصه مقاله:

مقاله‌ای اخیراً در مورد رویکرد نوآورانه برای تهیه تست‌های محکم و پاکیزه بحث کرده است که منجر به توسعه بسته تست‌های اثبات حداقلی آنتون شده است. آنتون در این رویکرد تاکید دارد که تست‌ها باید ساده و موثر باشند و تنها به جنبه‌های اصلی فعالیت‌ها پرداخته شود. این سبک تست‌نویسی به کاهش زمان نگهداری و بهبود قابلیت خواندگی تست‌ها کمک می‌کند و به طور کلی کیفیت نرم‌افزار را افزایش می‌دهد.

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


👑 @gopher_academy
👍3
🔵 عنوان مقاله
Fix Slow Postgres Queries with pganalyze Query Advisor

🟢 خلاصه مقاله:

در وبینار قرار داده شده در ۳۰ جولای شرکت کنید تا یاد بگیرید چگونه مشکلات متداول طرح‌های پرس‌وجو در Postgres را کشف کنید، توصیه‌های قابل اجرا برای بازنویسی دریافت کنید و تاثیر آن را در یک ابزار جامع پیگیری کنید. این وبینار برای توسعه‌دهندگان، مدیران پایگاه داده و متخصصان فناوری اطلاعات که با Postgres کار می‌کنند و به دنبال بهینه‌سازی پرس‌وجوهای پایگاه داده‌شان هستند، بسیار مفید خواهد بود.

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


👑 @gopher_academy
2🕊1