Go Casts 🚀 – Telegram
Go Casts 🚀
8.4K 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
Go Casts 🚀
تخفیف ۵۰ درصدی پاییز 🍁 الحمدلله تیمسازی ۳ هم شروع شد 🎉 در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن. از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه…
تا حالا شده در محیط کار احساس ناکافی بودن کنید؟ یا اینکه از سمت مدیرتون فیدبک ضعیف بودن دریافت کنید؟ یا حتی اعتماد به نفس تون رو از دست داده باشید که احتمالا من برای این کار خوب نیستم؟


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


اگه فیدبک بدی گرفتید از مدیرتون قبل از اینکه به فکر سرزنش خودتون باشید و یا حتی نکوهش مدیر، ببینید چه قسمت هایی از پروسه کاری و تعامل تون با مدیر مشکل داره، سعی کنید اول نحوه تعامل تون رو اصلاح کنید و یا پروسه هایی که به طور روزمره در کارتون برای انجام تسک ها دارید رو بازبینی کنید.
به طور مثال میگم، دوست عزیزی چند وقت پیش ناراحت بود از اینکه کدی که نوشته شده، توسط مدیرش بطور کامل بازنویسی شده، و این موضوع باعث شده که احساس خوبی نداشته باشه.
یا میگفت که شخص پروداکت تغییرات زیادی درخواست میده در حین کار در حالیکه در نهایت مسئولیت تغییرات رو هم نمیپذیره.
خب من حدس میزنم که در این مورد نه مدیر فنی مقصره و نه شخص برنامه نویس، اینجا پروسه تعامل و انجام تسک مشکل داره، تسک بهتره قبل از انجام refine بشه از نظر بیزینسی و داکیومنت بشه و همچنین قبل از انجام حتما solution design فنی داشته باشه. شرکت بهتره ساختار و چارچوب code review داشته باشه و فرآیند کد ریویو بصورت زود به زود انجام بشه.
خیلی اقدامات وجود داره که میتونه روند کاری شما و تیم و شرکت تون رو بهتر کنه، دنبال مقصر نباشید، جنگ روانی و اعصاب برای خودتون و دیگران ایجاد نکنید. با اراده تلاش کنید پروسه های تعاملی و کاری رو بهبود بدید و در این مورد با مدیرتون خیلی شفاف صحبت کنید.



@gocasts
👏409👍6🔥1
Go Casts 🚀
تخفیف ۵۰ درصدی پاییز 🍁 الحمدلله تیمسازی ۳ هم شروع شد 🎉 در ۱۰ ماهی که از فعالیت تیمسازی گذشته دو تا پروژه تیمسازی ۱ و ۲ رو شروع کرده بودیم که در حال حاضر هم ادامه دارن. از هفته پیش تیمسازی ۳ رو شروع کردیم که مطمئن بشیم بچه های تازه وارد هم تا حد خوبی تجربه…
آپدیت تیمسازی + فیدبک یکی از دوستان نسبت به دوره

این هفته ها با بچه های تیمسازی ۳ بیشتر مشغول solution design و آماده کردن code structure برای پروژه ای هستیم که یه پلتفرم برای رستوران و کافه ها باشه، و سعی کردیم با جدا کردن domain های بیزینسی یه سری microservice رو توسعه بدیم.

هر چند که به شخصه دغدغه ای بابت monolith یا microservice بودن ندارم و دلایلم رو در دوره روی کد گفتم که چرا این سوال اون قدرها هم سوال مهمی نیست، هر چند که microserivce بودن overheadهای خودشو داره.

تخفیف پاییز «دوره +‌تیمسازی» در آبان ماه هم پابرجاست

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

https://gocasts.ir

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

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

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

@gocasts
👍52
سلام دوستان
اگه تجربه ای با redis callback listener رو key expiration دارید بهم بگید لطفا، چه در گولنگ و چه در زبان های دیگه.


میخوام بدونم چالش خاصی برای پیاده سازی و پرفورمنس داره یا خیر.


کجا میخوام استفاده ش کنم؟ پیاده سازی retry برای تسک ها

به سری جاب تو ردیس دارم، که قراره http request بشه، حالا میخوام اگه fail شد دوباره به عنوان کلید بذارمش تو ردیس با یه ttl که موعد ttl رسید ایونت حذف شدنش از ردیس رو بگیرم و مجدد اجراش کنم، حالا اگه retry threshold هم رسیده بود که کاریش ندارم و در صورت fail دیگه ignore ش میکنم. اون مقدار retry count هم تو همون value مربوط به کلید ردیس ذخیره میکنم.

راه حل زیاده ولی بنظرم این راه حل ساده ایه برای وقتی که خیلی miss شدن جاب حیاتی نباشه.

تجربه و پیشنهادی داشتید بگید.


@gocasts
👍61
نگرانی از آینده شغلی دغدغه خیلی هاست.
این نگرانی فکر میکنم تو شروع مسیر بیشتره و تاثیرگذار تر.

نگرانی ها متفاوت هست مثلا یکی دغدغه ش اینه که تو مسیر جدید به درآمد کافی میرسم یا نه، یکی دغدغه هوش مصنوعی رو داره که نکنه شغل من حذف بشه و فلان بشه.

چیزی که من بهش فکر میکنم اینه که در نهایت شما باید موفق شدن رو اول از همه به خودتون ثابت کنید.

مهم نیست اون موفقیت چقدر دوام داره، چقدر درآمد میاره و غیره...

دنیا، دنیای خرده مهارت هست، باید تلاش کنید یه خرده مهارت رو برای خودتون انتخاب کنید و در همون مسیر قدم بردارید.

راه رسیدن به موفقیت هم اول و آخرش به تلاش شما وابسته ست.

وقتی که یک مهارت رو کسب میکنید و به موفقیت نسبی میرسید، چند اتفاق مهم رخ میده:

اول از همه خودتون به اعتماد به نفس کافی میرسید که با تلاش کردن میتونید به هدف تون برسید.

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

سوم اینکه شما برای خودتون به یه چارچوب میرسید که راه یادگیری مهارت و موفقیت رو به شما نشون میده و اگه برای خرده مهارتی که کسب کردید خطری ایجاد بشه، میتونید از همون چارچوب خودتون یه مهارت جدید کسب کنید.

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

@gocasts
👍2812
مقاله جالبی بود
خیلی فنی و عمیق توضیح داده، ولی کلا خوبه که بدونید این فیچر dedup برای OpenZFS میتونه write to disk رو efficientتر کنه اگه performance نسخه جدیدش قابل قبول باشه.


OpenZFS deduplication is good now and you shouldn't use it
https://despairlabs.com/blog/posts/2024-10-27-openzfs-dedup-is-good-dont-use-it/?utm_source=substack&utm_medium=email

این قضیه مخصوصا تو سرویس های blob storage میتونه کمک کنه، مثلا ceph که به عنوان یکی از solutionهای معروف برای blob storage استفاده میشه از zfs استفاده میکنه به عنوان backend volume
https://docs.ceph.com/en/reef/dev/ceph-volume/zfs/

@gocasts
👍51👏1
اگه دیسک سرورتون پر شده این دستور سرور رو زنده میکنه


truncate -s 0 /var/lib/docker/containers/**/*-json.log



با sudo هم این میشه

sudo sh -c "truncate -s 0 /var/lib/docker/containers/**/*-json.log"


https://stackoverflow.com/questions/42510002/docker-how-to-clear-the-logs-properly-for-a-docker-container


البته دیگه لاگی ندارید بفهمید چه بلایی سر سیستم تون اومده، مواظب باشید!

@gocasts
😁15👍9🔥7
مصاحبه هایی که انجام میدید یه برگ برنده دارید که دست خودتونه، اونم تجربیات شماست، سعی کنید به قدری تجربیات فنی تون رو خوب بیان کنید، که مصاحبه کننده قبل از پرسش هر سوالی قانع بشه که شما به اندازه کافی خوب هستید، معمولا تجربیات شما رو قبل از سوالات دیگه ای میپرسن، پس فرصت خوبیه که با قدرت تمام خودتون رو به رخ بکشید، همچنین ممکنه از دل تجربیات خودتون ازتون سوال بپرسن، که باز این قضیه سوالات مصاحبه کننده رو پیش بینی پذیرتر میکنه براتون. اصلا دست کمش نگیرید، خیلی مهمه از نظر من

Re-imagining Technical Interviews: Valuing Experience Over Exam Skills
https://danielabaron.me/blog/reimagining-technical-interviews


@gocasts
14👍8
دنبال یه سری منبع در مورد golang internals بودم که با این repository آشنا شدم، به صورت موضوعی لینک های خوبی رو معرفی کرده، دوست داشتید بررسی کنید.

A collection of articles and videos to understand Golang internals.
https://github.com/emluque/golang-internals-resources

@gocasts
👍73
استخدام 🚀

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

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

ایمان جان بعد از چند ماه فعالیت جدی در تیمسازی و تلاش برای استخدام موفق شد الحمدلله

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

شرح تصاویر
۱ - انگیزه دادن برای شروع
۲ - تاکید بر فعالیت جدی در تیمسازی
۳ - خبر استخدام
۴ - تاکید بر همراهی
۵ - تاییدیه کارفرما


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

https://gocasts.ir

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

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

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

@gocasts
🔥106👍1
یکی از مهارت های مهمی که برنامه نویس های باتجربه تیم باید داشته باشن اینه که محصول نرم افزاری رو از اون همه گنگی و ابهام فنی و بیزینسی اول مسیر، از دل جاده پر پیچ و خم خاکی تو کوهستان برسونه به اول اتوبان، بقیه ش دیگه حله..

تو این مسیر سخت، ابهام های بیزینسی شفاف شدن، معماری نرم افزار شفاف شده، ساختار کلی کد و practiceهای جانبی مثل ci/cd و deployment و api documentation و تست به نقطه خوبی رسیدن و بقیه مسیر بقدری راحت شده که برنامه نویس های دیگه هم به خوبی میتونن کار توسعه رو پیش ببرن.


@gocasts
👍234
گولنگ ۱۵ ساله شد.

سرعت رشد خوب گولنگ در فراگیر شدن چشمگیر بوده در این مدت. مخصوصا در حوزه ابزارهای cloud این قضیه خیلی بیشتر دیده میشه.

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

Go Turns 15
https://go.dev/blog/15years


@gocasts
😍23👏42👍2🔥2
Go Casts 🚀
Design by Contract شیوه ای که golang بخش مهمی از simplicityش رو مدیونشه همون اول کار بگم که این ادعا یک برداشت شخصیه که هیچ منبع و مرجع خارجی ای نداره. فعلا یه draft از مقاله آماده شده، اما چون ممکنه اصل تحقیقات طولانی تر بشه بهتر دیدم که نسخه draftش رو هم…
دو سال پیش در مورد design by contract صحبت کردم و سعی کردم در یک ویدیو توضیح بدم در موردش.

بنظرم اگه به این موضوع توجه کنیم، وسواس کمتری در مورد سیاست های کلی کد و معماری به خرج میدیم.

بهتره تلاش کنیم خودمون یه تعداد کمی اصول خوب رو که دست و پاگیر هم نباشن قرارداد کنیم، و طبق همون پیش بریم.

تاکید دارم روی تعداد کم، چون اگه زیاد باشه کار خراب میشه.

این لینک توضیحات و داکیومنت گوگل داک
https://news.1rj.ru/str/gocasts/116

اینم لینک ویدیو در یوتیوب
https://youtu.be/uibCosfk4-Y


@gocasts
👍7👏1
اگه سیستم شما دچار مشکل latency هست یکی از کارهایی که به شما کمک میکنه ریشه مشکل رو پیدا کنید tracing هست. حالا اگه سیستم شما از چند microservice تشکیل شده باشه، برای trace کردن احتیاج به distributed tracing دارید که Jaeger ابزار معروفی برای این کار هست.

اخیرا نسخه ۲ این ابزار منتشر شده که تطبیق خوبی با opentelemetry داره.


https://www.cncf.io/blog/2024/11/12/jaeger-v2-released-opentelemetry-in-the-core/


@gocasts
10👍6🔥1
همون جمله اول عنوان ش رو با دقت گوش بدیم کافیه، قرار نیست کوبرنتیز و داستان هاش رو بیاریم که infra بسازیم صرف ساختن infra، اون زیرساخت باید برای کاری باشه که لازمته، اگه لازمش نداری سردرد های زیرساخت پیچیده رو برای خودت بوجود نیار.


https://thenewstack.io/make-workloads-not-infrastructure-redefining-k8s-platforms/


@gocasts
👍93
موقعیت شغلی Python با امکان امریه سربازی

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

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


@gocasts
6👍2
دو مقاله شیک و قشنگ در مورد دیتابیس ها بصورت کلی و postgres

Things I Wished More Developers Knew About Databases
https://rakyll.medium.com/things-i-wished-more-developers-knew-about-databases-2d0178464f78


What I Wish Someone Told Me About Postgres
https://challahnoscript.com/what_i_wish_someone_told_me_about_postgres


@gocasts
#database
👍104🔥2👏1
Go Casts 🚀
استخدام 🚀 ماه قبل دوستان فعال تیمسازی رو به دو شرکت و کارفرما معرفی کردیم و الحمدلله یکی از بچه ها استخدام شد. بین ناامیدی و موفقیت، یه مرز باریک وجود داره که با توکل به خدا، تلاش و صبوری میشه بهش رسید. ایمان جان بعد از چند ماه فعالیت جدی در تیمسازی و تلاش…
حراجمعه به Go Casts رسید!

دوره +‌ تیمسازی بکند و گولنگ Go Casts


لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان

https://gocasts.ir


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

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

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


@gocasts
6👍3👏1
Go Casts 🚀
حراجمعه به Go Casts رسید! دوره +‌ تیمسازی بکند و گولنگ Go Casts لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان https://gocasts.ir همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده https://news.1rj.ru/str/gocasts/434 تو این پست…
بچه های فنی blackfriday که دغدغه لود دارید
به این جمله دقت کنید
let it crash to the rescue

ممکنه دغدغه concurrent transaction داشته باشید که ممکنه به روش هایی مثل گرفتن lock فکر کنید برای انجام تراکنش ها، این قضیه مخصوصا روی پیک تایم های بلک فرایدی احتمال رخ دادنش زیاده

من پیشنهاد میکنم که lock نگیرید، چون اگه بنچمارک بگیرید میبینید که احتمال رخ دادن deadlock خیلی کمه، اما رخ میده
وقتی شما از راه حل های locking استفاده میکنید، یعنی دارید برای کمتر از ۱ درصد مواقع یک بار اضافه ای به کل سیستم اضافه میکنید، مثلا ممکنه distributed locking اضافه کنید برای انجام کل تراکنش ها

حالا فرض کنید که برای این کمتر از ۱ درصد مواقع lock اضافه نکردید، چه اتفاقی میفته؟ احتمالا یک سری از تراکنش ها (کمتر از ۱ درصد احتمال زیاد) از سمت دیتابیس با خطا مواجه میشن
مثلا برای postgres ممکنه این خطا رو بگیرید
pq: deadlock detected

چون خود دیتابیس وقتی transaction باز میکنی حواسش به این چیزا هست

کافیه یه retry ساده روی خطای تراکنش بذارید که اگه خطا pq: deadlock detected بود یه بار دیگه با فاصله چند میلی ثانیه تراکنش رو امتحان کنه، احتمال خیلی زیاد در retry اول و یا حتی در retry دوم و سوم بدون مشکل deadlock تراکنش ثبت میشه.


قشنگی این راه حل چیه؟
اینکه به خاطر سناریو کمتر از ۱ درصد نیومدی راه حل و مکانیزم و معماری رو برای کل سناریوها تغییر بدی و سربار اضافه کنی

این یه جورایی نگاه let it crash هست، که میگه اجازه بده crash کنه، حالا یه فکری میکنم براش….

جواب گرفتم که میگم….

مطمئن نیستم ولی ممکنه روی یه سری دیتابیس ها حتی بدون گرفتن transaction هم deadlock تشخیص داده بشه و اگه فقط یک رکورد رو میخوای آپدیت کنی نیازی به گرفتن تراکنش دیتابیس نباشه

دقت کنید که در نهایت برای let it crash یه جایی داره error handling صورت میگیره، مثلا اینجا لازم نیست تو لایه اپلیکیشن lock بگیریم چون دیتابیس خودش این کار رو میکنه، یعنی لایه بندی داره قضیه، تو سطح اپلیکیشن کاری نمیکنی چون از دیتابیس مطمئنی



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

https://gocasts.ir


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

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

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


@gocasts
14👍10🔥2
Go Casts 🚀
حراجمعه به Go Casts رسید! دوره +‌ تیمسازی بکند و گولنگ Go Casts لینک خرید دوره + تیمسازی با ۵۰ درصد تخفیف به مبلغ ۴ میلیون و ۵۰۰ هزار تومان https://gocasts.ir همه چیز در مورد دوره و تیمسازی در این پست توضیح داده شده https://news.1rj.ru/str/gocasts/434 تو این پست…
مقاله کوتاه و جالبی بود

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

Go Production Performance Gotcha - GOMAXPROCS
https://metoro.io/blog/go-production-performance-gotcha-gomaxprocs

همچنین نکته دیگه ش اینه که روز به روز استفاده از eBPF بیشتر میشه، مخصوصا برای auto instrumentation که قبلا اینجا در موردش گفته بودم
https://news.1rj.ru/str/gocasts/333


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

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👍1