Gopher Academy
3.33K subscribers
916 photos
40 videos
279 files
1.97K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Why Go Slices Still Surprise Me

🟢 خلاصه مقاله:
مقاله به بررسی مفهوم "اسلایس‌ها" در برنامه‌نویسی می‌پردازد، که اغلب به دو دلیل منبع اشتباهات و سردرگمی می‌شود. اولین کاربرد اسلایس به عنوان یک "فت پوینتر" (فضایی که هم شامل اشاره‌گر و هم اندازه است) است که برای دسترسی به داده‌ها و نگهداری اطلاعات درباره آنها استفاده می‌شود. دومین کاربرد، اسلایس به عنوان یک "آرایه پویا" است که امکان تغییر اندازه و مدیریت داده‌ها در حافظه را فراهم می‌کند. مشکل اصلی زمانی رخ می‌دهد که این دو کاربرد با یکدیگر ادغام شده و به اشتباه گرفته می‌شود، که منجر به پیچیدگی‌ها و خطاهای برنامه‌نویسی می‌شود. مقاله به اهمیت تفکیک این دو کاربرد و درک صحیح آنها تأکید دارد تا بتوان از بروز این ابهامات و خطاها پیشگیری کرد.

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


👑 @gopher_academy
👍1
Forwarded from Bardia & Erfan
🟢 اگر مقاله، سورس کد، یا محتوای مفیدی در حوزه‌های زیر دارید، خوشحال می‌شویم که برای ما ارسال کنید:


🔴 Linux
🔴 DevOps
🔴 Blockchain
🔴 Database
🔴 software

💡 محتوای شما می‌تواند در کانال‌های مرتبط (با عنوان ذکر منبع خودتون)منتشر شود تا افراد بیشتری از آن بهره‌مند شوند.

🕊 ادمین:
@mrbardia72
👍2
🔵 عنوان مقاله
Weak Pointers in Go: Why They Matter Now

🟢 خلاصه مقاله:
این مقاله به بررسی ویژگی جدیدی در زبان برنامه‌نویسی Go می‌پردازد که انتظار می‌رود در نسخه ۱.۲۴ از طریق بسته‌ی weak به طور کامل اضافه شود. ویژگی مورد بحث، اشاره‌گرهای ضعیف (weak pointers) است که یک ابزار پایین‌سطح برای ساخت ساختارهای حافظه‌ای کارآمد است. مؤلف، Phuong، مبانی عملکرد این اشاره‌گرها را شرح می‌دهد. اشاره‌گرهای ضعیف امکان پذیر می‌سازند تا توسعه‌دهندگان بتوانند سازه‌هایی را بسازند که از نظر استفاده از حافظه بهینه‌تر هستند. این اشاره‌گرها به نرم‌افزار اجازه می‌دهند که به یک شیء ارجاع دهد بدون اینکه جلوی جمع‌آوری زباله‌ی آن شیء توسط مدیریت حافظه را بگیرد. این ویژگی به ویژه در مواردی که کش‌ها و سایر ساختارهای داده‌ای که نیاز به حذف خودکار اشیاء را دارند، مفید است. استفاده از اشاره‌گرهای ضعیف می‌تواند به بهبود عملکرد کلی برنامه‌ها کمک کرده و حافظه‌ی کمتری را اشغال کند.

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


👑 @gopher_academy
1
🔵 عنوان مقاله
The Draft Go 1.24 Release Notes

🟢 خلاصه مقاله:
در هفته گذشته شاهد ارائه اسلایدهای دنیل مارتی درباره نسخه آینده Go 1.24 بودیم که انتظار می‌رود اوایل سال 2025 منتشر شود. این ارائه اطلاعات مبسوطی در خصوص ویژگی‌های جدید و بهبود‌های در دست اجرا ارائه داد. نسخه پیش‌نویس یادداشت‌های انتشار برای این نسخه نیز به خوبی پیشرفته است و شامل فهرستی دقیق و سرشار از نکات کلیدی است که در انتظار تغییرات و بهبودهای آینده قرار می‌دهد. این اطلاعات به جامعه برنامه‌نویسان کمک خواهد کرد تا خود را برای استفاده از نسخه جدید آماده سازند و منجر به ایجاد برنامه‌های کارآمدتر و بهینه‌تری خواهد شد.

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


👑 @gopher_academy
👍3
🔵 عنوان مقاله
Rill 0.6: A Composable Concurrency Toolkit for Go

🟢 خلاصه مقاله:
مقاله مورد بحث به بررسی مجموعه‌ای از توابع کاربردی در زمینه‌های جریانی سازی (streaming)، پردازش موازی، و ساخت خط لوله (pipeline) می‌پردازد. هدف اصلی این توابع، سهولت در ساخت برنامه‌های همزمان (concurrent programs) با استفاده از قطعات ساده و قابل استفاده مجدد است. در این مقاله، نویسنده تلاش کرده است تا با ارائه روش‌ها و ابزارهایی مناسب، توسعه‌دهندگان را در فرآیند ساخت برنامه‌هایی که می‌توانند بی‌درنگ (کارها را همزمان) انجام دهند، یاری رساند. این ابزارها به گونه‌ای طراحی شده‌اند که افزایش بهره‌وری در پردازش‌ها و تسریع در پیاده‌سازی سیستم‌های مبتنی بر جریانی سازی و خط لوله را به ارمغان می‌آورند، که این خود می‌تواند به بهبود عملکرد کلی برنامه‌ها منجر شود.

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
🪨 Pebble: RocksDB/LevelDB Inspired Key-Value Database in Go

🟢 خلاصه مقاله:
مقاله‌ای که بررسی شده، به بررسی یک سیستم ذخیره‌سازی کلید-مقدار متمرکز بر عملکرد پرداخته است که از فرمت فایل RockDB استفاده می‌کند اما ویژگی‌های اضافی برخی از نیازهای CockroachDB را نیز در بر می‌گیرد. این سیستم در CockroachDB به کار رفته و به طور گسترده‌ای مورد استفاده قرار می‌گیرد و به عنوان یک سیستم پایدار و آماده به کار در محیط‌های تولید شناخته شده است. این مطالعه تأکید دارد که اضافات جدید به منظور بهبود تطابق با الزامات خاص CockroachDB انجام گرفته است، بدین ترتیب افزوده‌های فنی ارائه شده علاوه بر حفظ کارایی بالا، به ارتقاء قابلیت اطمینان و سهولت در استفاده از سیستم در سطوح وسیع کمک کرده‌اند.

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
We Put the Go in Google Gemini

🟢 خلاصه مقاله:
مقاله‌ای که در اختیار داریم، به توضیحاتی پیرامون Google Gemini 1.5 Flash 8B for Go می‌پردازد، یک ابزار قدرتمند که قابلیت پردازش بیش از 1 میلیون توکن در یک پنجره‌ی متنی را دارد. این سیستم قادر است بیش از 30,000 خط کد را طی چند ثانیه از طریق فیلم‌های آموزشی مستقیم یا فایل‌های لاگ پردازش کند و هزینه آن نسبت به روش‌های مشابه بسیار کمتر است. ابزار Gemini1.5 از API های Google برای ساخت و به کارگیری در زبان برنامه‌نویسی "Go" استفاده می‌کند. این امکانات باعث می‌شود تا توسعه‌دهندگان بتوانند برنامه‌های کاربردی را به صورت سریع و با کیفیت بالا بسازند. برای استفاده از این ابزار، باید از طریق Google API Quickstart در Go اقدام کنید، که فرآیندی ساده و مستقیم برای اجرای گسترده و کاربردی این ابزار فراهم می‌کند.

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


👑 @gopher_academy
👍1💅1
🔵 عنوان مقاله
🔊 go-taglib: Read/Write Audio Metadata Tags

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، به توضیح فرآیند خواندن و نوشتن برچسب‌های متادیتا برای فایل‌های صوتی مانند MP3، FLAC و OGG می‌پردازد. این فرایند با استفاده از Taglib که یک کتابخانه C++ است، انجام می‌شود و به صورت یک نسخه WASM در این سیستم گنجانده شده است تا از پایداری و حمل‌پذیری بالاتری برخوردار باشد. مهمترین ویژگی این سیستم این است که به هیچ وابستگی‌های زمان اجرای خارجی نیاز ندارد. همچنین، این کتابخانه از برچسب‌های با ارزش‌های متعدد پشتیبانی می‌کند. مقاله بر لزوم استفاده از این فرایندها برای بهینه‌سازی مدیریت فایل‌های صوتی و دسترسی آسان‌تر به اطلاعات مرتبط با آن‌ها تأکید می‌کند. Taglib تحت مجوز LGPL منتشر شده است که به معنای امکان استفاده، تغییر و پخش مجدد آن در پروژه‌های نرم‌افزاری است.

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Diving into eBPF: Building a Process Tracer from Scratch

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

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


👑 @gopher_academy
Forwarded from Database Labdon
🔵 عنوان مقاله
Full-Stack Observability from Honeybadger

🟢 خلاصه مقاله:
پلتفرم جدید خطازنی Honeybadger که شباهت زیادی به سرویس‌های Splunk، DataDog یا CloudWatch Logs دارد، با این تفاوت که فقط ویژگی‌های مثبت این سرویس‌ها را به همراه یک قیمت معقول ارائه می‌دهد. این سیستم، علاوه بر کارایی بالا، به راحتی با سرویس‌هایی نظیر Crunchy Bridge، Journald و AWS یکپارچه‌سازی می‌شود. از مزایای اصلی این پلتفرم می‌توان به قیمت مناسب، راحتی در استفاده و امکان یکپارچه‌سازی آسان با دیگر سرویس‌های مدیریت داده و زیرساخت‌های فناوری اطلاعات اشاره کرد. این ویژگی‌ها Honeybadger را به یک انتخاب جذاب برای مدیریت لاگ‌ها در مقیاس وسیع یا پروژه‌های کوچکتر تبدیل می‌کند.

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


👑 @Database_Academy
🔵 عنوان مقاله
WorkOS: Sell to Enterprises with a Few Lines of Code

🟢 خلاصه مقاله:
مقاله‌ی مذکور به بررسی یک پلتفرم هویت نوین برای نرم‌افزارهای سرویس‌دهی به کسب‌وکارها (B2B SaaS) می‌پردازد. این پلتفرم، با ارائه API‌ های انعطاف‌پذیر و آسان برای استفاده، امکان ادغام قابلیت‌های ورود تک‌گانه (SSO)، مدیریت هویت و دسترسی مبتنی بر ابر (SCIM) و دسترسی مبتنی بر سیاست‌های نرم‌افزاری (FGA) را در دقایق به جای ماه‌ها فراهم می‌آورد. استفاده از این پلتفرم به کسب‌وکارها اجازه می‌دهد تا تجربه کاربری بهتری را برای مشتریان خود به ارمغان بیاورند و در عین حال امنیت داده‌های کاربران را تضمین کنند. همچنین، سهولت در ادغام با سیستم‌های موجود، سرعت بالای راه‌اندازی و کاهش هزینه‌های نگهداری از ویژگی‌های کلیدی این پلتفرم محسوب می‌شود. این تکنولوژی ابتکاری به سازمان‌ها کمک می‌کند تا با رقبا در عرصه جهانی رقابت کنند.

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


👑 @gopher_academy
1
Forwarded from Bardia & Erfan
تیم سازی چیست؟ اهمیت، روش‌ها و مزایای آن در محیط کار

https://karboom.io/mag/articles/%D8%AA%DB%8C%D9%85-%D8%B3%D8%A7%D8%B2%DB%8C

🕸 @labdon_academy
🔵 عنوان مقاله
shortuuid 4.2: Generate Concise, Unambiguous and URL-Safe Unique IDs

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

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

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


👑 @gopher_academy
Forwarded from Bardia & Erfan
👇👇👇👇👇👇👇

🍀لیستی از تمامی چنل های ما

🔵 https://linktr.ee/Labdon

👆👆👆👆👆👆👆
❤‍🔥2
اکر میخواهید در مورد انترفیس ها بیشتر بدونید توی گولنگ
پلی لیست زیر رو مشاهده کنید

https://www.youtube.com/playlist?list=PLADD_vxzPcZB595tXmu540KC6MTMqIndB


🕸 https://linktr.ee/Labdon
🔥4💘1
در کدنویسی Go، تفاوت اصلی بین دو تعریف شما به نوع متغیر (global یا constant) و روش مقداردهی آنها مربوط است:

1. `var DockerClient *client.Client`:
این یک متغیر است که می‌تواند در زمان اجرا مقداردهی شود. مقدار آن قابل تغییر است و در برنامه‌های پویا و انعطاف‌پذیر کاربرد دارد.

2. `const DockerClient = *client.Client`:
این تعریف صحیح نیست، زیرا مقدار ثابت (const) باید یک مقدار قابل محاسبه در زمان کامپایل (compile-time) باشد، اما یک مقدار اشاره‌گر به دلیل ماهیت پویا نمی‌تواند در یک ثابت تعریف شود.

### نتیجه:
تعریف صحیح و کاربردی var DockerClient *client.Client است، زیرا مقدار اشاره‌گرها و متغیرهایی که به منابع خارجی (مانند Docker) وابسته هستند، باید در زمان اجرا تنظیم شوند.


🕸 https://linktr.ee/Labdon
👍8🙏21
ظاهرا یه کمپانی بزرگ هندی اومده یه نظرسنجی بین کارمنداش گذاشته و ازشون پرسیده که سطح استرسشون چقدر هست تا محیط کار سالم تری براشون درست کنه. ۱۰۰ تا از کارمند ها هم گفتن که  خیلی استرس دارن و کمپانی هم فورا همشون رو اخراج کرده تا دیگه استرس نداشته باشن :)

DevTwitter | <Shana/>


🕸 https://linktr.ee/Labdon
🤣32👍5
Forwarded from Software Engineer Labdon
SDK (Software Development Kit) و کتابخانه (Library) هر دو ابزارهایی برای توسعه نرم‌افزار هستند، اما تفاوت‌های کلیدی در مفهوم، هدف و کاربرد دارند:

---

### 1. تعریف و مفهوم
- کتابخانه (Library):
مجموعه‌ای از توابع، کدها یا کلاس‌ها که برای حل مشکلات خاص یا افزودن ویژگی‌های خاص به برنامه استفاده می‌شود. کتابخانه‌ها به برنامه‌نویس اجازه می‌دهند تا به جای نوشتن کد از ابتدا، از کدهای آماده استفاده کند.

مثال:
- math در Python برای محاسبات ریاضی.
- fmt در Go برای قالب‌بندی و چاپ.

- SDK:
مجموعه‌ای کامل‌تر از ابزارها، شامل کتابخانه‌ها، مستندات، ابزارهای اشکال‌زدایی، شبیه‌سازها و APIهایی که برای توسعه نرم‌افزار برای یک پلتفرم خاص یا استفاده از یک سرویس خاص طراحی شده‌اند.

مثال:
- Android SDK برای توسعه اپلیکیشن‌های اندروید.
- AWS SDK برای کار با سرویس‌های آمازون.

---

### 2. هدف اصلی
- کتابخانه:
انجام یک وظیفه خاص یا مجموعه‌ای از وظایف مشخص (مانند خواندن/نوشتن فایل، محاسبات ریاضی، یا اتصال به پایگاه داده).

- SDK:
فراهم کردن محیطی کامل برای ساختن یک برنامه یا یک سیستم، که معمولاً شامل کتابخانه‌ها و ابزارهای اضافی است.

---

### 3. سطح استفاده
- کتابخانه:
متمرکز روی یک مسئله خاص است و برنامه‌نویس آن را به کد خود اضافه کرده و فراخوانی می‌کند.

- SDK:
همه‌چیزهایی که برای توسعه یک اپلیکیشن نیاز دارید، از جمله ابزارها، نمونه کدها، و حتی شبیه‌سازها را فراهم می‌کند.


🕸 https://linktr.ee/Labdon
👍7
Forwarded from Bardia & Erfan
👇 لیست کانال‌های مجموعه Labdon با به‌روزترین اخبار، آموزش‌ها و ترفندها در حوزه‌های مختلف:


🔵 گولنگ - همه چیز از اخبار تا نکات کلیدی
🔴 @gopher_academy

🔵 موقعیت شغلی های گولنگ چه ایرانی و چه خارجی
🔴 @gopher_job


🔵 انواع دیتابیس ها ردیس مانگو پستگرس و سایر دیتابیس ها
🔴 @database_academy
🟢 حوزه های تحت پوشش

(redis , mysql , postgresl , mongo ,etc)

🔵 دنیای بلاکچین و ارز های دیجیتال
🔴 @Blockchain_labdon
🟢 حوزه های تحت پوشش

(Bitcoin, Ethereum, Altcoins, Blockchain, Policy & Regulations, AI, NFTs, DeFi)


🔵 مهندسی نرم افزار
🔴 @software_labdon
🟢 حوزه های تحت پوشش

(Engineering, Architecture, Design, Testing, Security , QA)


🔵 لینوکس- از توزیع‌ها تا ترفندهای امنیتی
🔴 @linux_labdon
🟢 حوزه های تحت پوشش

(Linux Distributions, Open Source Software, Security Tips ,New Releases & Features)


🔵 دوآپـس - ابزارها و روندهای جدید
🔴 @devops_labdon
🟢 حوزه های تحت پوشش

(CI/CD Pipelines, Cloud Infrastructure, Containerization & Orchestration, Monitoring & Performance, Infrastructure as Code, Security in DevOps)

🕸 @labdon_academy
💘2
🔵 عنوان مقاله
🕒 Coming in Go 1.24: An Experiment for Time and Concurrency Testing

🟢 خلاصه مقاله:
این مقاله به بررسی ویژگی جدیدی در نسخه 1.24 زبان برنامه‌نویسی Go می‌پردازد که اوایل سال آینده منتشر می‌شود. ویژگی مورد بحث، بسته آزمایشی testing/synctest است، که فرصت‌های جدیدی برای آزمایش کد‌هایی که با زمان یا همزمانی سر و کار دارند را فراهم می‌آورد. بسته جدید قابلیت‌هایی را به توسعه‌دهندگان می‌دهد تا بتوانند با دقت بیشتری در مورد کنترل و محیط آزمایشی کد‌های خود کار کنند. نویسنده مقاله اشاره می‌کند که او خود این بسته را در محل کار خود بر روی تست‌های نامعلوم و مشکل‌دار بکار برده و تجربه موفقیت‌آمیزی داشته است. این گزارش نشان می‌دهد که testing/synctest به طور قابل توجهی بهبودی در آزمایش کد‌هایی که شامل مفاهیم زمان و همزمانی هستند، ارائه داده است.

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


👑 @gopher_academy
🍓2