Go Casts 🚀 – Telegram
Go Casts 🚀
8.39K subscribers
283 photos
20 videos
13 files
501 links
VP of Eng Zarinpal | Ex Snapp! Senior SE
فوق لیسانس هوش مصنوعی از دانشگاه تهران

اشتراک محتوا در مورد مهندسی نرم افزار، هوش مصنوعی، گولنگ
https://gocasts.ir

پروفایل
https://www.linkedin.com/in/gohossein

ارتباط
@lifography

Ai for Software
@aicasts_ir
Download Telegram
سلام به همه دوستان گل، سال نو مبارک باشه 🌹
ان شاءالله سال پر خیر و برکتی پیش رو داشته باشید، سرشار از آرامش، موفقیت، عافیت، سلامتی و رفاه

ممنون از لطف و محبت همه تون، مخلص همگی ❤️

@gocasts
112👍5
سلام دوستان
امیدوارم خیلی زود حافظه مون ریکاور بشه :)

ان شاءالله که سال خیلی خوبی رو پیش رو داشته باشید، اگه دوست داشتید بگید چه ابزار، زبان یا تکنولوژی جدیدی رو قصد دارید تو سال جدید یاد بگیرید؟


@gocasts
58
تیم JetBrains دیروز مقاله ای رو منتشر کرده با این عنوان که «آیا گولنگ همچنان در حال رشده؟»

آمار جالبی رو منتشر کرده که میتونید کاملش رو تو مقاله خودشون بخونید.
مثلا گزارش شده که ۱ میلیون ۸۰۰ هزار برنامه نویس به عنوان زبان اصلی دارن از گولنگ استفاده میکنن.
نکته دیگه ای که گزارش شده اینه که میزان تقاضا برای برنامه نویس های گولنگ بالا و رو به افزایش هست و یکی از علت هاش اینه که شرکت ها بیش از پیش به سمت معماری cloud-native میرن.

Is Golang Still Growing? Go Language Popularity Trends in 2024
https://blog.jetbrains.com/research/2025/04/is-golang-still-growing-go-language-popularity-trends-in-2024/


چند وقت پیش هم گزارش نظرسنجی JetBrains برای سال ۲۰۲۴ منتشر شده که نتایج جالبش رو بررسی کرده بودیم.
https://news.1rj.ru/str/gocasts/601



@gocasts

Ai for Software
@aicasts_ir
👍25🔥10😍4😁1
یه گروه تلگرامی داریم به اسم «اشتراک دانش دنیای ابری» که یکی از دوستان سوال جالبی در مورد ابزارهای load test پرسید.
https://news.1rj.ru/str/serversos_ir/241/999

دوستان ابزارهای جالبی رو معرفی کردن از جمله locust که برای خودم جالب بود
https://locust.io

شما هم اگه تجربه موفقی با ابزار خاصی دارید خوشحال میشم بیشتر در موردش بدونم


@gocasts
👍111
توسعه مستقل از فریمورک یا framework agnostic مزیت های خودش رو داره، هر چند که چالش و سختی های خودش رو هم داره.
دقت کنید framework agnostic بودن با protocol agnostic بودن یا transport agnostic بودن فرق میکنه و این دو تا رو میشه زیرمجموعه framework agnostic بودن در نظر گرفت.

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

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


در این مقالات بیشتر میتونید در مورد framewrk agnostic بودن بخونید.
https://www.remotely.works/blog/the-importance-of-being-framework-agnostic-in-web-development

https://www.revelo.com/blog/framework-agnostic

https://genezio.com/deployment-platform/blog/what-is-framework-agnostic/#what-is-framework-agnostic

https://radixweb.com/blog/what-is-framework-agnostic

https://dev.to/m__mdy__m/protocol-agnostic-framework-9p2


@gocasts


Ai for Software
@aicasts_ir
👍257
استخدام توسعه دهنده Golang

در صرافی ارز دیجتال اریترون به توسعه دهنده سینیور و میدلول گولنگ نیاز داریم.
امکان همکاری در دفتر تهران، مشهد و اصفهان شرکت وجود داره.

اطلاعات بیشتر:
quera.org/j/xmw66
ارسال رزومه:
hr@erythron.net

#golang
#گولنگ

@gocasts
👍152
بیشترین حقوق درخواستی برای سنیورها (بطور میانگین) طبق گزارش جاب ویژن برای برنامه نویس های گولنگ هست، سال گذشته هم به همین شکل بود اگه اشتباه نکنم. و البته این آمار مطابقت داره با گزارش stackoverflow که معمولا در سال های اخیر برنامه نویس های گولنگ در دسته چند مهارت با بیشترین پرداختی هستند.

https://lnkd.in/dNnEFu3K



@gocasts
👍22👎6
تخفیف ویژه بهار 🎁

سلام به همه دوستان

ان شاءالله سال جدید رو پرقدرت شروع کرده باشید ❤️

دوره +‌ تیمسازی بکند و گولنگ Go Casts
تخفیف ویژه بهار
۵۰ درصد + ۱ میلیون و ۱۰۰ هزار تومان تخفیف
کد بهار
BAHAR

خرید از سایت
https://gocasts.ir

همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441

دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4


@gocasts
5👍3
یه web server جدید با rust نوشته شده به اسم ferron که مورد توجه قرار گرفته.

بنچمارک های اولیه ش که خوب نشون میده، اما فکر میکنم جای کار زیاد داره که قابلیت های مهم web serverهای دیگه رو هم پشتیبانی کنه. مخصوصا اینکه بتونه به عنوان ingress controller هم اجرا بشه روی kubernetes

https://www.ferronweb.org


@gocasts
👍28
Go Casts 🚀
تخفیف ویژه بهار 🎁 سلام به همه دوستان ان شاءالله سال جدید رو پرقدرت شروع کرده باشید ❤️ دوره +‌ تیمسازی بکند و گولنگ Go Casts تخفیف ویژه بهار ۵۰ درصد + ۱ میلیون و ۱۰۰ هزار تومان تخفیف کد بهار BAHAR خرید از سایت https://gocasts.ir همه چیز در مورد دوره و…
سرویس شما چه لودی رو میتونه تحمل کنه؟

یکی از دوستان در یکی از جلسات تیمسازی GoCasts سوالی پرسید در مورد اینکه یه grpc server آیا لود میلیون درخواست بر ثانیه (یا دقیقه) رو میتونه handle کنه؟
تلاش میکنم جوابی که به ایشون دادم رو به شکل دیگه ای اینجا بیان کنم

احتمالا تا حالا با مقالاتی از این دست روبرو شدید
How to Easily Handle 200k RPS with Golang
https://medium.com/@nikitaburov/how-to-easily-handle-200k-rps-with-golang-8b62967a01dd

پیشنهاد میکنم قبل از اینکه بخواید به این فکر کنید که http frameworkی که انتخاب می کنید آیا توانایی پاسخ به تعداد خیلی درخواست رو داره یا نه، به این فکر کنید که اپلیکیشن شما چه کاری رو داره انجام میده و کاری که انجام میشه با چه نوعی از مقیاس پذیری مواجه میشه. آیا قراره تعداد درخواست ورودی تصاعدی زیاد بشه، یا قراره حجم داده ذخیره شده تصاعدی زیاد بشه و یا مصرف منابع شما خیلی زیاد بشه؟
اصلا endpointی که شما توسعه دادید چه flowی داره و در این flow با چه سرویس های خارجی ای صحبت میکنه؟


از نظر من به شخصه سرویسی که ۵ تا ۱۰ هزار درخواست بر ثانیه رو به درستی در مدت زمان قابل قبول (بسته به نوع درخواست ممکنه ۱۰ میلی ثانیه معقول باشه یا ۱ ثانیه…) پاسخ بده، سرویس مقیاس پذیری هست. چرا؟ چون معمولا در چنین لودی ماژول های دیگه سیستم شما از جمله دیتابیس و سرویس های خارجی دیگه با چالش های جدی مواجه میشن که لازمه اول بهینه سازی های مختلفی رو به کمک الگوهای مختلف بهبود مقیاس پذیری به کار بگیرید.

در واقع چالش های واقعی مقیاس پذیری، خیلی زودتر از چیزی که فکرش رو بکنید سراغ شما و اپلیکیشن شما و سرویس های وابسته ش میاد، لازم نیست یه روزی بیاد که http server شما بتونه ۱ میلیون درخواست رو پاسخ بده که شما بخواید بقیه قسمت های سیستم رو مقیاس پذیر کنید، بلکه روند کاملا معکوس هست، احتمالا در خیلی از شرایط http server شما آخرین ماژولی از سیستم شما میشه که مشکلات مقیاس پذیری سراغش میاد.

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

نکته ای که میخوام بگم اینه که به دنبال اعداد و ارقام فضایی نباشید، و فکر نکنید که باید اون اعداد و ارقام فضایی رخ بده که شما با چالش های مقیاس پذیری روبرو بشید. اینطوری واقع بینانه تر به دنبال راه حل های جدی تری برای مقیاس پذیری سرویس تون خواهید بود تا اینکه بخواید صرفا http server یا ماژول دیگه ای از سرویس تون رو تغییر بدید.

خوشحال میشم بشنوم سرویسی که شما توسعه دادید بیشترین لودی که تحمل کرده چقدره؟



دوره +‌ تیمسازی بکند و گولنگ Go Casts
تخفیف ویژه بهار
۵۰ درصد + ۱ میلیون و ۱۰۰ هزار تومان تخفیف
کد بهار
BAHAR

خرید از سایت
https://gocasts.ir

همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441

دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4


@gocasts
👍204👏2😍1
🎯 سیستم‌های تراکنشی رو چطوری میشه بهتر طراحی کرد؟

مقاله خیلی جذابی در مورد Transactional Systems منتشر شده که خوندنش رو به همه توصیه میکنم. دید مناسبی نسبت به مراحل اجرای تراکنش و تفاوت ترتیب اجراشون میده

🔍 چهار مرحله اصلی تراکنش‌ها:

اجرای تراکنش یا execution: کدی که عملیات خوندن و نوشتن رو انجام می‌ده.

ترتیب‌دهی یا ordering: تعیین زمان یا نسخه برای مشخص کردن ترتیب تراکنش‌ها.

اعتبارسنجی یا validation: بررسی صحت تراکنش بر اساس قوانین همزمانی یا منطق دامنه.

پایداری یا persist: ذخیره‌سازی دائمی نتایج تراکنش، معمولاً روی دیسک.​

این مراحل می‌تونن به‌صورت متوالی یا همزمان انجام بشن و ترتیبشون بسته به طراحی سیستم متفاوته.​

💡 مثال‌ها:

کنترل خوش‌بینانه یا optimistic: اول تراکنش اجرا می‌شه، بعد اعتبارسنجی و در نهایت پایداری.

کنترل بدبینانه یا pessimistic: از همون اول lock میگیره که‌ از conflict جلوگیری بشه.​

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

متن مقاله کامل رو اینجا میتونین بخونین
🔗 https://transactional.blog/blog/2025-decomposing-transactional-systems


Ai for Software
@aicasts_ir


@gocasts
15👍9😁2
این مقاله خیلی خلاصه و جمع و جور اجزای داخلی kubernetes رو معرفی کرده و در مورد نقش هر کدوم توضیح داده

ارزش داره در حد ۵ دقیقه وقت بذارید براش
How Kubernetes Works Internally?
A High-Level Overview

https://newsletter.systemdesigncodex.com/p/how-kubernetes-works-internally


@gocasts
👍274
درک رفتار و تفاوت دو شیوه Shared Memory vs. Message Passing میتونه به شما کمک کنه که مکانیزم های concurrency در زبان های مختلف رو بهتر درک کنید و طراحی بهتری در سیستم داشته باشید.

مقاله جالبی در همین مورد منتشر شده که شما رو به خوندنش دعوت میکنم.
Hey process there is a message for you
https://www.poeticoding.com/hey-process-there-is-a-message-for-you/



دوره +‌ تیمسازی بکند و گولنگ Go Casts
تخفیف ویژه بهار
۵۰ درصد + ۱ میلیون و ۱۰۰ هزار تومان تخفیف
کد بهار
BAHAR

خرید از سایت
https://gocasts.ir

همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://news.1rj.ru/str/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://news.1rj.ru/str/gocasts/441

دوستانی که در خرید دوره تردید دارند میتونن برای مشاوره کوتاه تلفنی، فرم زیر رو پر کنند که باهاشون تماس بگیرم
https://survey.porsline.ir/s/ATeQL4b4


@gocasts
👍10
یکی از دوستان پلتفرمی رو معرفی کرد که خیلی خوبه برای تقویت مهارت های مهندس نرم افزار

اینطوریه که بصورت مرحله به مرحله شمارو راهنمایی میکنه که یکی از ابزارهای پرکاربرد رو از صفر توسعه بدید، ابزارهایی مثل ردیس یا git و غیره…

البته خیلی از قسمت هاش پولیه ولی برای ایرانیا ۵۰ درصد تخفیف میده
https://app.codecrafters.io/pay

Become a better software engineer.
Stop following tutorials designed for beginners.
Start working on projects that actually challenge you.
Become a better engineer through deliberate practice.
https://codecrafters.io

@gocasts
24👍9😍1
برای اینکه یه LLM Model کارایی کافی رو داشته باشد، باید بتونه context موضوع در حال تعامل رو بخوبی درک کنه و در توالی تعاملات اون context رو حفظ کنه.
در یکی دو سال اخیر که استفاده از llmها در ساخت اپلیکیشن ها زیاد شده، چون الگوی خاصی وجود نداشت هر سیستمی به شیوه خودش سعی میکرد context رو مدیریت کنه و این قضیه چالش برانگیز بود.

معرفی MCP یا همون Model Context Protocol و A2A یا همون Agent to Agent Protocol برای حل کردن همین چالش هست.


این مقاله خیلی مفصل MCP و A2A رو بررسی کرده و معماری و کاربردهای واقعی شون رو هم بیان کرده، خوندن ش رو خیلی توصیه میکنم

MCP vs A2A: Understanding Context Protocols for AI Systems
https://devrelguide.com/blog/mcp-vs-a2a


@gocasts


Ai for Software
@aicasts_ir
👍245
اخیرا داکر یه قابلیتی رو اضافه کرده به اسم Docker Bake، برای مدیریت buildهای پیچیده مناسبه.

اگه buildهای مختلفی برای استیج های مختلف ci مثل lint و test و غیره هم دارید این ابزار بهتون کمک میکنه به شیوه declerative تر و ساده تری مدیریت کنید بیلدهاتون رو.

پروژه هایی که monorepo هستند ولی بیلدهای متنوع دارن هم میتونن ازش استفاده کنن.
سازگاری خیلی خوبی هم با docker-compose داره.

Docker Bake is Now Generally Available in Docker Desktop 4.38!
https://www.docker.com/blog/ga-launch-docker-bake/


@gocasts
👍31😍3
فوق العاده ست این warp. اینطوریه که یه ایجنت خیلی خوب برای ترمینال میشه. به جای اینکه برای انجام دادن یه پروسه مجبور باشی دونه دونه دستور و خطاهارو تو گوگل دنبال جواب باشی، یه جمله بهش میگی چیکار کن خودش هم پلن میکنه دستورالعمل رو و هم دونه به دونه اجرا میکنه و اگه خطایی هم باشه خودش دنبال راه حل میگرده.
اگه به استفاده کردن ازش عادت کنید فکر نمیکنم دیگه بتونید با ترمینال دیگه ای کار کنید.

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

Warp Terminal
The intelligent terminal.
Become a command line power user on day one. Warp combines AI and your dev team’s knowledge in one fast, intuitive terminal.
https://www.warp.dev

@gocasts
👍35🔥5
این مقاله نکات ساده و مهمی رو برای طراحی distributed systemها میگه
نکاتی که گفته کوتاه و جمع و جوره اما واقعا درسته و کمک میکنه برای طراحی سیستم درست با رعایت کردن یه سری اصول ساده و مهم


One cache cluster to rule them all
مواظب باشید که سرورهای کش سرویس های مختلف یکی نباشن!

Queues are non-negotiable
وجود queue غیرقابل مذاکره ست، برامون زمان میخره که لود رو مدیریت کنیم!

Measuring end-to-end latency
یادمون نره latency پیام های async رو هم تو سیستم مانیتور کنیم، انباشت شدن شون و اختلاف زمان لحظه درخواست با پردازش شون مهمه.

Design for failure
این یکی که دیگه اصل قضیه ست، انواع و اقسام خطاها تو سیستم ممکنه رخ بده و باید براشون آماده باشیم، استفاده از retry pattern و circuit breaker و dead-letter queue الگوهای کمک کننده هستند.

Design for idempotency
اگه میخوای fault-tolerant باشی لازمه که حتما در ادامه ش idempotent هم باشی چون duplicate callها تقریبا اجتناب ناپذیر هستند در شرایط خطا


Lessons from building and maintaining distributed systems at scale
https://www.16elt.com/2025/04/19/lessons-from-distributed-systems/


@gocasts
👍31
اگه برای سرویس یا محصول تون به دنبال یه سرویس search engine هستید که کاربر بتونه باهاش product search کنه یا autocomplete و in-app search داشته باشه به جای راه اندازی دردسردار elasticsearch میتونید از meilisearch استفاده کنید.
الاستیک خیلی قابلیت ها داره که متفاوته با ابزاری که معرفی کردم، ولی برای مواردی که عرض کردم میتونه راه اندازی الاستیک و نگهداری ش بیش از حد سنگین باشه.

ابزار meilisearch با rust نوشته شده و زمان پاسخگویی ش خیلی پایینه (زیر ۵۰ میلی ثانیه) و تقریبا real-time آپدیت میکنه (۱ ثانیه تاخیر حدودا)

البته اعدادی که گفتم بسته به نحوه استفاده و داده شما و کانفیگ سرور میتونه متفاوت باشه

همچنین meilisearch قابلیت های فیلتر کردن ساده رو صرفا پشتیبانی میکنه اما facet search داره که فکر میکنم برای کاربردهای مذکور کافی باشه


بنظرم اگه لازم دارید چنین چیزی رو به امتحان کردنش میارزه.

Meilisearch
A lightning-fast search engine API bringing AI-powered hybrid search to your sites and applications.
https://github.com/meilisearch/meilisearch


@gocasts
21👍13