Go Casts 🚀
8.26K subscribers
285 photos
20 videos
14 files
507 links
Ex Snapp! Senior SE
فوق لیسانس هوش مصنوعی از دانشگاه تهران

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

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

ارتباط
@lifography

Ai for Software
@aicasts_ir
Download Telegram
🍉 شب یلدا، بلندترین شب سال

یه فرصت خوب برای شروع یه مسیر بلند!

دوره + تیمسازی بکند و گولنگ Go Casts
۱۲ میلیون ← ۴.۴۹ میلیون

کد تخفیف: YALDA

لینک خرید
🔗 https://shop.gocasts.ir/product/go

توضیحات تکمیلی سایت
https://gocasts.ir

همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده
https://t.me/gocasts/434

تو این پست هم میتونید فیدبک های دوره و تیمسازی و استخدام بچه هارو بخونید
https://t.me/gocasts/441

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


@gocasts
16🔥3
ارائه Critical Path Analysis: تکنیکی از پروژه منهتن برای دیباگ Latency در Go!

یکی از ارائه های جذاب GopherCon 2025 ارائه Felix Geisendörfer از Datadog بود درباره پروفایلینگ request latency با استفاده از Critical Path Analysis.

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

حالا Felix این رو آورده روی Go و goroutine ها.

مشکلی که حل می‌کنه اینه که پروفایلینگ سنتی بهت میگه mutex contention داری، ولی نمیگه این چقدر روی latency کاربر تأثیر گذاشته. مثلاً یه پروفایل نشون میده ۴۳۹ ثانیه contention تو ۶۰ ثانیه داشتی. خب این خیلی بده، ولی سوال اصلی اینه: کدوم بخشش واقعاً روی request های کاربر تأثیر گذاشته؟

اینجاست که execution tracer میاد وسط. برخلاف CPU profiling که فقط on-CPU رو نشون میده، execution tracer همه state transition ها رو ثبت می‌کنه: کی goroutine داشت run می‌شد، کی منتظر mutex بود، کی منتظر channel بود، کی scheduling latency داشت. یه تصویر کامل از زندگی goroutine هات.

راه‌حل اینه که از آخر request بری عقب و ببینی کدوم goroutine ها واقعاً سر راه بودن. اگه G1 منتظر G2 و G3 باشه و G3 دیرتر تموم بشه، سریع‌تر کردن G2 هیچ فایده‌ای نداره. این همون critical path هست.

یه کار خفن دیگه که تیم Datadog کرده اینه که overhead اجرای execution tracer رو از ۱۰-۲۰ درصد به ۱-۲ درصد رسوندن. یعنی الان میشه تو production ازش استفاده کرد.

این ارائه خیلی ارزشمنده چون نشون میده پروفایلینگ می‌تونه خیلی دقیق‌تر از چیزی باشه که عادت کردیم. به جای اینکه بگیم mutex contention داریم، بیاید همه جا رو optimize کنیم، می‌تونیم دقیقاً بفهمیم کجا واقعاً مهمه.

آقای Felix امیدواره این کار رو open source کنه.

اگه با Go کار می‌کنید و tail latency براتون مهمه، پیشنهاد می‌کنم این ارائه رو ببینید.

https://www.youtube.com/watch?v=BayZ3k-QkFw

@gocasts
20👍8🔥1
در سومین جلسه دورهمی TechTalk در مورد بازتعریف نقش مهندس نرم افزار در عصر Ai Agents صحبت کردم.
امیدوارم که ارائه مورد توجه عزیزان همراه قرار گرفته باشه و مفید بوده باشه.
بابت همه کم و کاستی ها عذرخواهی میکنم.

موضوع ai agents و نقش اونا در بازتعریف مسئولیت‌های مهندس نرم‌افزار چیزیه که کمتر بهش پرداخته میشه و این موضوع روز به روز اهمیت بیشتری پیدا میکنه و لازمه که براش آماده باشیم.
ان شاءالله در آینده بیشتر در موردش صحبت میکنم.


با تشکر از امیر عزیز که چنین بستری رو فراهم کردن و تمام دوستان زحمت کش TechTalk | تِک تاک

ممنون از AvalAI و GSMPay که اسپانسر این دورهمی بودن تا این جمع بتونه دور هم باشه.


@gocasts

Ai for Software
@aicasts_ir
42👍7
قابلیت Git Worktree: سلاح مخفی کار با Code Agentها

یه مشکل کلاسیک هست که وسط یه فیچری، باید یه branch دیگه رو چک کنی. و روند git stashو switch و کارتو بکن و برگرد و unstash... خسته‌کننده‌ست.

ولی وقتی داری با agentها کار می‌کنی (Cursor، Claude Code و ...)، این مشکل ۱۰ برابر میشه. Agent می‌خواد فایل‌ها رو عوض کنه، build بزنه، شاید خراب‌کاری کنه. نمی‌خوای working directory اصلیت رو بهم بریزه.

راه‌حلش میشه git worktree

مفهومش ساده‌ست. پروژه‌ات دو بخش داره: پوشه .git که دیتابیسته (کامیت‌ها، برنچ‌ها، تاریخچه) و working directory که فایل‌های واقعی هستن. مشکل اینه که فقط یه working directory داری، پس فقط یه branch می‌تونی checkout داشته باشی.

درواقع worktree یه working directory دوم می‌سازه که به همون .git وصله. پوشه جدا، branch جدا، ولی همون history.

فقط ۳ تا دستور لازمه:

git worktree add ../project-agent feature-branch
git worktree list
git worktree remove ../project-agent

چرا برای Agent ها عالیه؟ وقتی ClaudeCode یا ابزارهای مشابه یه agent رو توی worktree mode اجرا می‌کنن، یه worktree جدید می‌سازن، فایل‌هاتو کپی می‌کنن اونجا، agent توی isolation کامل کارشو می‌کنه، و آخر یه دکمه Apply میدن که merge کنی. Agent می‌تونه هر کاری بکنه، working directory اصلیت دست‌نخورده می‌مونه.

یه نکته مهم هم اینه که node_modules و فایل‌های .env منتقل نمیشن چون توی gitignore هستن. هرچی agent ها قوی‌تر میشن، این pattern ضروری‌تر میشه.

این مقاله رو هم میتونید بخونید
https://www.marcohaber.dev/blog/git-worktrees


@gocasts
34👍19🔥3😍1
Go Casts 🚀
قرعه کشی دوره به نفع بیماران پروانه ای و خانه ای بی شکر خدا را که در پناه حسینیم عالم از این خوب تر پناه ندارد به مناسبت ایام سوگواری حضرت سیدالشهدا، امام حسین علیه السلام، دوره و تیمسازی gocasts به قید قرعه به ۵ نفر با مبلغ دو و نیم میلیون تومان به فروش…
قرعه کشی دوره به نفع بیماران پروانه ای و خانه ای بی

ولادت امیرالمومنین علی علیه السلام و روز پدر مبارک ❤️

به رسم هر سال «دوره بکند و گولنگ GoCasts» به قید قرعه به ۵ نفر فقط با ۲ میلیون تومان به فروش خواهد رسید و تمامی مبلغ (۱۰ میلیون تومان) به حساب خانه ای بی واریز خواهد شد.

فیش واریزی
https://t.me/c/1525472919/7190

سایت خانه ای بی
https://ebhome.ngo

لینک حمایت آنلاین از بچه های پروانه ای
https://ebhome.ngo/support

اینستاگرام خانه ای بی
https://instagram.com/eb_home
Please open Telegram to view this post
VIEW IN TELEGRAM
67👍1
امروز coolify رو روی سرور شخصی نصب کردم. یه ابزار open-source برای دیپلوی اپ روی سرور خودت. مدیریت سرور و سرویس هاشو راحت میکنه.

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

https://coolify.io

گزینه های دیگه مثل dokploy و اینا هم هست ولی این از بقیه شون بهتر بود بنظرم.

@gocasts
18👍11
سلام، اگه موفق شدید مشکلات زیر رو حل کنید لطفا بهم بگید چیکار کردید. بقیه دوستان هم بتونن استفاده کنن واسه سرویس هاشون

وابستگی داکر ایمیج هارو بدون اینترنت روی سرور چطوری حل کردید؟ من ایمیج لوکال پوش کردم

وابستگی ریپوهای لینوکس رو چیکار کردید؟ آروان و اینا کامل نیستن

وابستگی های npm و php-composer و پکیج های گولنگ رو چیکار کردید؟ خودم vendorize کردم
12
از بهترین پروژه‌های چندوقت اخیر پروژه vibe-kanban بوده.

https://github.com/BloopAI/vibe-kanban

با یه دستور میشه نصب‌ش کرد

npx vibe-kanban


پروژه‌ها رو می‌تونید لیست کنید و kanban داشته باشید و هر تسکی که تعریف می‌کنید رو می‌تونید با یه code agent انجام بدید در session مجزا و با داشتن worktree مجزا و بصورت گرافیکی قابل مدیریت هست.

@gocasts
19🔥6👍4
کم هزینه و قابل قبول!
یه جایگزین بسیار کم هزینه در مقابل مدل های شناخته شده، مناسب برای برنامه نویسی
به پیشنهاد یکی از همکاران z.ai رو امتحان کردم.
https://z.ai/subscribe

مزیت های خاصی داره که واقعا جذابش کرده.
اول از همه کیفیت قابل قبولش هست، قطعا در سطح claude models نیست اما واقعا قابل قبوله.
دوم اینکه قیمت ماهیانه ش فقط ۶ دلاره و ۳ برابر claude pro بیست دلاری ظرفیت میده. تازه ماه اول فقط با ۳ دلار میتونید subscription بخرید.
سوم اینکه تنها محدودیت پنج ساعته داره و حتی محدودیت هفتگی نداره!
چهارم اینکه استفاده ازش برای کاربران ایرانی بدون vpn امکان‌پذیره.
پنجم اینکه یه چیزی که خیلی برای من به شخصه مهم بود claude-code compatibility بود که پشتیبانی میکنه و میتونید ازین فایل راهنما استفاده کنید که glm models رو جایگزین claude models کنید و از claude code و مزیت های خود ابزار claude code استفاده کنید.
https://docs.z.ai/devpack/tool/claude

اخیرا سخت گیری های claude code روی کاربران ایرانی گویا بیشتر هم شده و هزینه ۲۰ دلاری و ۱۰۰ دلاری هم اونو به گزینه ی پر ریسکی تبدیل کرده‌.

@gocasts
👍3917
سلام دوستان
یکی از دوستانم آلمان زندگی میکنه و یه estimation game ساده نوشته که تو شرکت‌شون ازش استفاده کنه. برای خودم first impression خوبی داشت. اگه برای plan کردن تسک ها در sprint planning به تسک ها story point میدید و دسته جمعی این کارو میکنید، می‌تونید این اپلیکیشن رو هم امتحان کنید و اگه خوب بود معرفی کنید بقیه هم استفاده کنن، رایگانه ، لاگین نمیخواد و ...

https://votebee.app

@gocasts
👍268🔥2
این مقاله کلی نکته خواندنی و آموزنده در مورد چالش های distributed systems داره که بعضی‌هاش ممکنه به کارتون بیاد. تمایل داشتید بخونید.

Distributed Job Scheduler Architecture at Meta Hyperscale
https://dilipkumar.medium.com/distributed-job-scheduler-system-design-8ae13a8dee83


یکی از نکات خیلی جالبش برای خودم Hierarchical Timing Wheels بود که چطوری مساله timer management رو با O(1) مدیریت میکنه.


@gocasts
22👍5🔥1
Sazito_Senior_DevOps_JD.pdf
50.8 KB
اگه در موقعیت شغلی دواپس (سنیور) تمایل به همکاری با سازیتو دارید لطفا فرم زیر رو پر کنید.
شرح موقعیت شغلی در فایل pdf نوشته شده.

https://survey.porsline.ir/s/qPLK6FrA

@gocasts
5🤝2