Gopher Academy
3.34K subscribers
918 photos
40 videos
279 files
1.99K 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

👑 @labdon_academy
👍11😈1
🔵 عنوان مقاله
caddy-exec: Caddy Module for Running One-Off Commands

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته پیرامون سرور HTTP(S) به نام Caddy است که به زبان برنامه‌نویسی Go نوشته شده است. نویسندگان مقاله اظهار دارند که از این سرور در کارهای خود بسیار راضی هستند. نکته‌ی برجسته‌ی مقاله به افزونه‌ای اشاره دارد که امکان فعال سازی دستورات در زمان راه‌اندازی یا خاموش کردن سرور، و همچنین از طریق مسیرهای خاصی به نام «route» را فراهم می‌آورد. این افزونه به کاربران اجازه می‌دهد تا عملیات خاصی را به صورت خودکار در زمان‌های تعیین شده یا در پاسخ به درخواست‌های خاص انجام دهند، که این امر می‌تواند به بهبود کارایی و انعطاف‌پذیری در مدیریت سرور کمک کند. این توانایی سازگاری با نیازهای کاربران و تنظیمات خاص آن‌ها، Caddy را به یک گزینه جذاب در میان سرورهای HTTP(S) تبدیل می‌کند.

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


👑 @gopher_academy
🔵 عنوان مقاله
Modview: Go Project Dependency Graph Visualizer

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

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
Distributed Metrics in PHP with Go and Gob

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

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


👑 @gopher_academy
🔵 عنوان مقاله
Reduce Your Data Streaming and Kafka Costs by 80+%

🟢 خلاصه مقاله:
مقاله مربوط به فناوری WarpStream می‌پردازد که مزایای معماری بدون دیسک و بدون حالت خود را به همراه مدل BYOC (آوردن مؤلفه‌هات به سرور) به نمایش می‌گذارد. این ساختار جدید، هزینه‌های استفاده از Kafka را تا بیش از ۸۰٪ کاهش می‌دهد، استریم داده‌ها را آسان‌تر می‌کند و امنیت داده‌ها را افزایش می‌دهد. WarpStream با پیشنهاد افتتاح حساب رایگان و ارائه ۴۰۰ دلار اعتبار که هرگز منقضی نمی‌شود، سعی در جذب کاربران جدید و نشان دادن توانایی‌های برتر خود در مقایسه با رقبا دارد. این پلتفرم، با ارائه راهکارهای نوآورانه در زمینه پردازش و انتقال داده‌ها، می‌کوشد راهکاری مقرون به صرفه و کارآمد برای شرکت‌ها و توسعه‌دهندگان فراهم آورد.

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


👑 @gopher_academy
👍1
🔵 عنوان مقاله
bed: A Binary/Hex Editor Written in Go

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

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


👑 @gopher_academy
1🙏1
🔵 عنوان مقاله
htmgo: Build Simple, Scalable Systems with Go and htmx

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

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


👑 @gopher_academy
👍2🔥2
🔵 عنوان مقاله
Ebitengine v2.8.0: The Go 2D Game Engine

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته است به پروژه‌ی «اِبیت‌انجین» در اکوسیستم زبان برنامه‌نویسی گو اختصاص دارد. این پروژه به‌عنوان یکی از پروژه‌های محبوب در این حوزه شناخته شده است. در جدیدترین به‌روزرسانی‌ها، ابیت‌انجین پشتیبانی از فرمت صوتی 32 بیتی با فرمت فلوت و همچنین بهبودهایی در سفارشی‌سازی شیدر (shader) را به ارمغان آورده است. این امکانات جدید به توسعه‌دهندگان اجازه می‌دهد تا با دقت بیشتری بر روی جزئیات صوتی کار کنند و تجربه‌های بصری پیشرفته‌تری را ارائه دهند. به‌طور کلی، این پیشرفت‌ها نشان‌دهنده‌ی تعهد ابیت‌انجین به پیشرفت مداوم و ارائه‌ی قابلیت‌های جدید است که می‌تواند به افزایش کارایی و جذابیت این موتور بازی در بین توسعه‌دهندگان کمک کند.

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


👑 @gopher_academy
👍1
نکته خیلی جالبش شاید استفاده از GOMEMLIMIT بصورت dynamic هست که در runtime ست میشه..

Go Beyond: Building Performant and Reliable Golang Applications

https://blog.zomato.com/go-beyond-building-performant-and-reliable-golang-applications

✍️حسین نظری

#performance
#golang
#گولنگ


👑 @gopher_academy
💋1
🔵 عنوان مقاله
Some Go Web Dev Notes

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Joining Errors in Go

🟢 خلاصه مقاله:
مقاله مورد نظر به بررسی دو رویکرد در زبان برنامه‌نویسی Go می‌پردازد: استفاده از چندین %ws و استفاده از دستور errors.Join که در نسخه 1.20 زبان Go معرفی شده است. رویکرد اول، %ws، از دستورهای فرمت‌بندی متنی برای ایجاد نتیجه‌ای استاندارد و یکپارچه استفاده می‌کند. این رویکرد به برنامه‌نویس اجازه می‌دهد که خروجی‌ها و پیام‌ها را به شکل واضح و دقیق نمایش دهد، خصوصاً در محیط‌هایی که نیاز به ترکیب و نمایش چندین مقدار متفاوت است. رویکرد دوم، errors.Join، امکان مدیریت و ترکیب چندین خطا را در یک پیغام خطا الحاقی فراهم می‌کند که بسیار مفید است برای دسته‌بندی خطاها و واکنش‌های مرتبط با آن‌ها. این امکان به برنامه‌نویس کمک می‌کند تا خطاهای متعدد را به شکل مؤثری دریابد و رفع کند، و در نهایت به بهبود خوانایی و قابلیت نگهداری کد کمک می‌کند.


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


👑 @gopher_academy
5
💋2
🔵 عنوان مقاله
Prep: Compile-Time Function Evaluation for Go

🟢 خلاصه مقاله:
مقاله مورد بحث به بررسی ویژگی prep.Comptime پرداخته است که امکان ارزیابی توابع در زمان ساخت را فراهم می‌کند و نتیجه محاسبه شده را جایگزین توابع می‌نماید. این ویژگی شباهت‌هایی به comptime در زبان برنامه‌نویسی Zig دارد اما تفاوت‌هایی نیز با آن دارد. مقاله اذعان می‌کند که استفاده از این تکنیک ممکن است به نوعی "کفران" تلقی شود، اما نکته جالبی است که نمی‌توان انکار کرد. با این حال، این ویژگی محدودیت‌هایی دارد و ابزار toolexec اصولاً برای بازنویسی متن مبدأ به صورت دلخواه طراحی نشده است. این مقاله به بررسی ایده‌ای نو و جذاب پرداخته است اما همچنین به محدودیت‌ها و چالش‌هایی که ممکن است در استفاده از این تکنیک وجود داشته باشد، اشاره می‌کند. بنابراین، ضروری است که توسعه‌دهندگان قبل از استفاده از این ویژگی به طور دقیق به این محدودیت‌ها و چالش‌ها توجه کنند.

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


👑 @gopher_academy
🔵 عنوان مقاله
📉 A Guide to the Go Garbage Collector

🟢 خلاصه مقاله:
مقاله‌ای که به بررسی سیستم جمع‌آوری زباله (Garbage Collection) در زبان برنامه‌نویسی Go می‌پردازد، از نسخه 1.19 این زبان شروع شده است و به‌عنوان یک مستند زنده عرضه شده که توضیحات دقیق و جامعی درباره‌ی نحوه‌ی عملکرد این سیستم ارائه می‌دهد. مقاله همراه با دیاگرام‌های تعاملی مفید است که به درک بهتر و دقیق‌تر عملکرد سیستم جمع‌آوری زباله در Go کمک می‌کند. این مستند به عنوان منبعی ارزشمند برای توسعه‌دهندگانی که به دنبال فهم عمیق‌تری از مکانیزم‌های داخلی و بهینه‌سازی عملکرد برنامه‌های خود در Go هستند، محسوب می‌شود.

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


👑 @gopher_academy
👍3
🔵 عنوان مقاله
Gowitness: A Web Screenshot Utility using Chrome Headless

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته به بررسی ابزاری به نام "وب‌سایت اسکرین‌شات" می‌پردازد که با استفاده از زبان برنامه‌نویسی Go نوشته شده است. این ابزار از Chrome Headless برای تولید اسکرین‌شات‌هایی از رابط‌های وب استفاده می‌کند و عملیات خود را از طریق خط فرمان اجرا می‌کند. عملکرد اصلی این ابزار در تولید تصاویری دقیق از صفحات وب است که برای توسعه‌دهندگان وب و تیم‌های QA که به تست و بررسی ظاهر و کارکرد وب‌سایت‌ها در محیط‌های مختلف می‌پردازند، بسیار مفید است. استفاده از Chrome Headless به این معنی است که اسکرین‌شات‌ها را می‌توان بدون نیاز به نمایش فیزیکی مرورگر و در حین اجرای اسکریپت‌های پس‌زمینه و دیگر فعالیت‌های مبرم مرورگر تهیه کرد، که این امکان افزایش کارایی و بهره‌وری را فراهم می‌کند.

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


👑 @gopher_academy
👍31🔥1
🔵 عنوان مقاله
anthropic-claude-golang-sdk: Go Library for Anthropic's Claude API

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Olric: Distributed Cache and Key/Value Store

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

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


👑 @gopher_academy
👍2
🔵 عنوان مقاله
Reflecting on Go Reflection

🟢 خلاصه مقاله:
مقاله‌ای که مورد نقد قرار گرفته، یک تحلیل شخصی و برانگیزاننده در مورد ویژگی‌های زبان برنامه‌نویسی Go است، به‌خصوص بسته‌ی reflect آن. نویسنده، که یک برنامه‌نویس است و معمولاً از ساده‌ترین ویژگی‌های زبان‌های برنامه‌نویسی استفاده می‌کند، با اینکه مجبور شد از ویژگی‌های reflect در Go استفاده کند، هنوز هم از آن خوشش نیامده است. این نشان‌دهنده‌ی تجربه‌ای نامطلوب و نارضایتی فردی از استفاده این ویژگی خاص است. می‌توان گفت که مقاله به دنبال ایجاد یک بحث در میان جامعه‌ی برنامه‌نویسان برای ارزیابی مزایا و معایب استفاده از بسته‌ی reflect در زبان Go است. این انعکاس شخصی نویسنده بر سختی‌‌های استفاده و احساس کلی او نسبت به این ویژگی است.



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


👑 @gopher_academy
💯2
🔵 عنوان مقاله
sync.Map: The Right Tool for the Right Job

🟢 خلاصه مقاله:
مقاله اخیر Phuong، که جدیدترین بخش از راهنمای تصویری محبوب او درباره گزینه‌های همروندی در زبان برنامه‌نویسی Go است، به بررسی sync.Map می‌پردازد. sync.Map، یک نقشه که برای خواندن و نوشتن همزمان توسط چندین goroutine طراحی شده و نیازی به قفل‌های صریح ندارد، به دلیل ایمنی در برابر همروندی بسیار مفید است. با این حال، Phuong دریافت که sync.Map همیشه گزینه‌ی کاملی نیست. وی در مقاله خود به تجزیه و تحلیل مواردی پرداخته است که استفاده از sync.Map ممکن است مناسب نباشد و به معرفی شرایطی پرداخته که استفاده از روش‌های دیگر گزینه بهتری سازند. این مقاله برای توسعه‌دهندگانی که با محیط همزمان در Go کار می‌کنند و به دنبال راه‌حل‌های ایمن و کارآمد هستند، مفید و آموزنده است.

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


👑 @gopher_academy
🔵 عنوان مقاله
Elevate Your Backend Skills

🟢 خلاصه مقاله:
مقاله به بررسی اهمیت آموزش و توسعه مهارت‌ها در زمینه‌های مختلف برنامه‌نویسی نظیر Python، Go، TypeScript و همچنین آشنایی با پلتفرم‌هایی مانند AWS می‌پردازد. این مقاله تأکید دارد که با استفاده از دوره‌های آموزشی ویدیویی که توسط متخصصین این حوزه‌ها ارائه می‌شود، افراد می‌توانند به طرز چشمگیری دانش و تخصص خود را گسترش دهند. همچنین، اشاره می‌کند به فرصت‌های یادگیری متنوع از طریق مسیرهای یادگیری مختلف که به طور مداوم در حال ارتقا هستند و به شرکت‌کنندگان این امکان را می‌دهد که مهارت‌های مورد نیاز در بازار کار را به دست آورند. این مقاله تاکید می‌کند که توسعه مهارت‌های برنامه‌نویسی در درازمدت می‌تواند به بهبود فرصت‌های شغلی و پیشرفت کاری کمک کند.

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


👑 @gopher_academy
4
🔵 عنوان مقاله
I'm Glad I Did It in Go

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

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


👑 @gopher_academy