Gopher Academy
3.33K subscribers
914 photos
40 videos
279 files
1.95K links
🕸 Gopher Academy

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

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

ادمین:
@mrbardia72

ادمین تبلیغات:
@labdon_ads
Download Telegram
🔵 عنوان مقاله
nativewebp: Native WebP Image Support for Go

🟢 خلاصه مقاله:
مقاله‌ای که بررسی می‌کند به فرمت تصویری مدرن WebP اشاره دارد که برای استفاده در وب طراحی شده است. این فرمت، به ویژه توسط کتابخانه‌ای در زبان برنامه‌نویسی Go پشتیبانی می‌شود که امکان کار با فرمت WebP را بدون نیاز به وابستگی‌های خارجی فراهم می‌آورد. با این حال، در حال حاضر تنها قادر به پردازش فرمت بدون از دست دادن کیفیت (lossless) VP8L این فرمت است. کتابخانه به برنامه‌نویسان اجازه می‌دهد تا تصاویر WebP را با استفاده از Go ایجاد، ویرایش و کار با آن‌ها را ممکن سازد، که این امر می‌تواند به بهبود سرعت و کارایی در برنامه‌های وب کمک کند. کتابخانه کار با WebP را آسان‌تر می‌کند و پتانسیل دارد که استفاده از این فرمت تصویری نوین را در بین توسعه‌دهندگان گسترش دهد.

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
sqldef 1.0: Idempotent Schema Management for Databases

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، به توضیح یک ابزار خط فرمان (CLI) بر پایه‌ی زبان برنامه‌نویسی Go و یک کتابخانه WASM می‌پردازد که برای تفاوت‌یابی (diffing) در اسکیماهای SQL استفاده می‌شود. این ابزار قابل استفاده برای پایگاه‌داده‌های MySQL، PostgreSQL، SQLite و SQL Server می‌باشد. ابزار مذکور توسط یکی از اعضای اصلی تیم توسعه‌ی زبان برنامه‌نویسی Ruby ساخته شده است. عملکرد این ابزار به طور خاص در تطابق و مقایسه‌ی ساختارهای مختلف دیتابیس‌ها است تا تغییرات و اختلافات بین نسخ مختلف اسکیماها را شناسایی و نمایش دهد. این قابلیت برای توسعه‌دهندگانی که با مهاجرت های پایگاه داده و یا سینک سازی بین محیط‌های مختلف کار می‌کنند، بسیار مفید است.

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Nil Channels in Go

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته، موضوعی تخصصی را در زمینه برنامه‌نویسی با زبان Go پوشش می‌دهد. نویسنده، Vishnu، به بررسی مشکلات ناشی از کانال‌های Nil در زبان برنامه‌نویسی Go پرداخته است که برای بسیاری از برنامه‌نویسان Go (معروف به Gophers) چالش‌برانگیز است. او در جستجوی علت‌های این مسئله بوده و به منظور حل آن یک ضرب‌المثل جدید در زبان Go ابداع کرده است: “Init when you split; Nil when you merge.” این ضرب‌المثل به این معنی است که هنگام تقسیم کارها یا منابع، می‌بایست ابتدا آن‌ها را مقداردهی کرد و هنگام ادغام یا ترکیب آنها، استفاده از مقدار Nil باید در نظر گرفته شود. این رویکرد کمک خواهد کرد تا برنامه‌نویسان به شکل بهینه از کانال‌ها استفاده نموده و از بروز اشکالات جلوگیری کنند.

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


👑 @gopher_academy
👍5
مایکروسافت نسخه‌های Go 1.24.1-1 و Go 1.23.7-1 را با بیلدهای اختصاصی خود منتشر کرده است. این نسخه‌ها برای بهبود سازگاری، پایداری و عملکرد اجرای Go در محیط ویندوز طراحی شده‌اند.

اگرچه هسته زبان Go تغییری نکرده، اما این بیلدها شامل بهینه‌سازی‌هایی برای هماهنگی بهتر با ویندوز، پشتیبانی بهبودیافته از APIهای بومی، و بهینه‌سازی‌هایی برای توسعه و استقرار ساده‌تر هستند.

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

https://golangweekly.com/link/166793/web



👑 @gopher_academy
👍7🔥2🍾2🕊1
🔵 عنوان مقاله
The Cost of Go's panic and recover

🟢 خلاصه مقاله:
مقاله‌ای که بررسی شده است به بررسی کاربرد توابع `panic` و `recover` در زبان برنامه‌نویسی Go پرداخته است. `Panic` در Go برای مواقعی استفاده می‌شود که خطای جدی و غیرمنتظره‌ای رخ دهد و نیاز باشد که اجرای برنامه به سرعت متوقف شود. از طرفی، `recover` به برنامه این امکان را می‌دهد که پس از رخ دادن یک `panic`، کنترل خود را بازیابی کند و می‌تواند به عنوان مکانیزمی برای کنترل جریان اجرای برنامه عمل کند. استفاده از `recover` در مواقعی که طراحی‌های غیرمتعارفی در ذهن دارید، می‌تواند مفید واقع شود. به این ترتیب، برنامه‌نویسان می‌توانند از این دو تابع برای مدیریت خطاهای جدی در برنامه‌های خود و جلوگیری از توقف ناگهانی برنامه استفاده کنند.

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


👑 @gopher_academy
👍21
🔵 عنوان مقاله
go-git 5.14: An Extensible Git Implementation in Pure Go

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

مقاله به بررسی کتابخانه‌ای در زبان برنامه‌نویسی Go می‌پردازد که امکان مدیریت مخازن گیت در دو سطح پایین ) و بالا ) را فراهم می‌کند. این کتابخانه برای استفاده از قابلیت‌های جدید و بهبودهای ارائه شده نیازمند نصب نسخه ۱.۲۳ به بالای Go است. استفاده از API ایدیوماتیک این کتابخانه به توسعه‌دهندگان کمک می‌کند تا عملیات مختلف مرتبط با گیت را در برنامه‌های خود به طور یکپارچه ادغام کنند.

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


👑 @gopher_academy
👍41
🔵 عنوان مقاله
Tips to Debug Hanging Go Programs

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

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
ObjectBox Go 1.9: A Fast, Embedded Database for Go Objects

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

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

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


👑 @gopher_academy
🎉1🍾1
🔵 عنوان مقاله
Using Cursor for Large Projects

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

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Building a Secure Session Manager

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

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

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


👑 @gopher_academy
2👍1🍾1
🔵 عنوان مقاله
Why Reimplement TypeScript's Compiler in Go?

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

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

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


👑 @gopher_academy
👍5🍾1
🔵 عنوان مقاله
ghw 0.15.0: A Go Hardware Discovery/Inspection Library

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

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Different Ways of Working with SQL Databases in Go

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

مقاله با تشریح سیستم بلاگ ساده توسط الکس شروع می‌شود و روش‌های مختلف کار با دیتابیس‌ها از SQL خام و بسته `database/sql` گرفته تا `sqlx`، استفاده از ORM‌ها و `sqlc` را بررسی می‌کند. الکس فواید و معایب هر روشی را توضیح داده، از جمله کنترل و دقت SQL خام در مقابل ساده سازی کار با `sqlx` و افزایش بهره‌وری با ORM ها. همچنین `sqlc` که SQL‌ها را به کد Go تبدیل می‌کند، معرفی می‌شود. در نهایت، بر اساس نیاز‌های پروژه، بهترین روش انتخاب می‌گردد.

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


👑 @gopher_academy
🔵 عنوان مقاله
Go Structs and Interfaces Made Simple

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

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

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


👑 @gopher_academy
Majnoone Bi Leyla
Salar Aghili
سالار عقیلی - مجنون بی لیلا

👑 @gopher_academy
🕊2🍾1
🔵 عنوان مقاله
doomgeneric: Doom, Ported to Go?

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

بازی محبوب و کلاسیک تیراندازی اول شخصِ دهه ۹۰، دوم، به شکل‌های مختلفی به محیط‌های نامتعارف منتقل شده است. به عنوان مثال، اجرای آن به صورت جاوااسکریپت درون یک سند PDF. این امر به سؤالی طبیعی منجر شده است: آیا انتقال دوم به زبان برنامه‌نویسی گو هم به آسانی اجرایی است؟ در این راستا، از کامپایلر ccgo برای تبدیل کد C به کد گو استفاده شده است. این پروژه بیشتر به عنوان یک مفهوم اثباتی انجام گرفته و فعلاً تنها در محیط‌های لینوکس قابل اجراست. با این حال، این آزمایش، توانایی‌های کامپایلر ccgo را نشان داده و برای جامعه توسعه‌دهندگان جالب توجه است.

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


👑 @gopher_academy
👍1
تو پروژه ای که درگیرش هستم آپلود فایل یکی از مهمترین قسمت های این پروژه هست. به خاطر همین سراغ پروتکل TUS که یه پروتکل برای upload resumable هست و تقریبا هم جدید رفتیم که با go هم پیاده سازی شده.
من تو این مقاله سعی کردم تجربیاتم از پیاده سازی سرور tusd و نحوه ارتباطش با backend پروژه رو توضیح بدم .
لینک نمونه کد استفاده شده رو آخر مقاله قرار دادم.

خوشحال میشم بخونید و نظرتون رو بگید.
ارادت
لینک داکیومنت tus
https://tus.github.io/tusd/

لینک مقاله:
https://medium.com/@shabooni.mr/how-to-set-up-tusd-for-resumable-file-uploads-a-complete-guide-1cd8dddb55d5



https://t.me/addlist/KpzXaiSpKENkMGM0
👍101
🔵 عنوان مقاله
🔒 Protect Against AI Bots, Fraud, and Abuse in Real Time

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

WorkOS Radar یک راهکار امنیتی پیشرفته است که با استفاده از فناوری تشخیص اثر انگشت دستگاه، برنامه شما را از تهدیدهای سایبری مانند ثبت‌نام‌های جعلی، سوء استفاده از سطح رایگان، حملات ربات و تلاش‌های نفوذ باز می‌دارد. این فناوری با شناسایی منحصربه‌فرد هر دستگاهی که با برنامه شما تعامل دارد، کمک می‌کند تا کاربران مشروع از تهدیدها تمیز داده شوند. این سیستم همچنین تجربه کاربری را بهبود می‌بخشد و برای شرکت‌هایی که می‌خواهند امنیت سایبری خود را تقویت کنند بدون اینکه بر تجربه کاربری تأثیر منفی بگذارند، گزینه‌ی مناسبی است.

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Were Multiple Return Values a Mistake for Go?

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

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

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


👑 @gopher_academy