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
سلام دوستان امیدوارم حالتون خوب باشه
بحث observability و monitoring مبحث خیلی مهمی برای cloud native application ها هست، پیشنهاد میکنم این پادکست رو گوش بدید

Instrumentation for gophers
https://changelog.com/gotime/226

#monitoring #observability #instrumentation

@gocasts
👍151
صحبتی با عزیزانم که در ابتدای راه فرانت و ری اکت هستند:

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

در آخر بهت یه شخص و دوره اش رو معرفی می کنم، من خودم ندیدم دوره اش رو اما فکر می کنم به عمیق شدن دانش ری اکت کمک کنه
epic react
https://epicreact.dev/

موفق باشی ❤️

#front #react

@gocasts
20👍5🔥3
سلام به همگی، لطفا نظرتون رو بگید، چون برای من مهمه
من از اول راه با هدف monetize کردن و درآمدزایی GoCasts رو شروع کردم، بنا به دلایل مختلف که یکی از مهم ترین هاش نداشتن وقت بوده این کار رو نکردم. در این تقریبا یکسال فعالیت GoCasts هم سعی کردم به صورت جسته گریخته در حد دانش اندک خودم تجربیاتم رو به اشتراک بذارم، امیدوارم که مفید بوده باشه.
حالا یه جواب صادقانه از شما میخوام
اگه ان شاءالله برنامه ریزی جدی انجام بدم و یک یا چند دوره برای golang و backend تولید کنم با هدف درآمدزایی، حاضرید براش هزینه کنید؟ اصلا به کارتون میاد؟

اینم چیزیه که برای دوره ها تو ذهنمه
قطعا هزینه دوره ارزان نخواهد بود، چون اصلا انگیزه ای نمیمونه برای تولیدش، سعی می کنم انصاف رو رعایت کنم!
دوره ها برای افراد مبتدی و حرفه ای جداگانه خواهد بود، قطعا افراد مبتدی در اولویت هستند.
موضوع دوره ها اختصاصی خواهد بود، golang یا بکند و DevOps و distributed systemها.
فعالیت GoCasts به همین نحو و بصورت رایگان ادامه خواهد داشت فارغ از بحث دوره ها.

چرا دوره ها رایگان نیست؟
چون تولید دوره زمانبر هست و به انرژی و وقت زیاد احتیاج داره، اگه دوره رایگان باشه احتمالا هیچوقت دوره تولید نمیشه!
برای افرادی که به هر دلیلی توان پرداخت ندارند اگه مستحق باشند (یعنی دوره واقعا براشون کاربردی باشه) ان شاءالله راه کارهایی قرار میدیم

@gocasts
18👍6🎉2
از عرش سلام سرمدی آوردند ..... آیینه ی حُسن سرمدی آوردند

با آمدن رضا(ع) از باغ بهشت ..... یک دسته گل محمدی آوردند

سلام خدمت همه دوستان گل
به مناسبت دهه کرامت (همزمان با ولادت حضرت معصومه(س) ‌و با ولادت برادرش امام رضا(ع)) فردا جمعه ۲۰ خرداد ساعت ۱۶ به مدت یک ساعت جلسه پرسش و پاسخ «مشاوره شغلی» برگزار میشه
دوستانی که برای ادامه مسیر نیاز به راهنمایی دارند در خدمتشون هستیم

لینک جلسه متعاقبا در همین کانال اطلاع رسانی میشه خدمتتون

@gocasts
22🔥3🎉2
Go Casts 🚀
از عرش سلام سرمدی آوردند ..... آیینه ی حُسن سرمدی آوردند با آمدن رضا(ع) از باغ بهشت ..... یک دسته گل محمدی آوردند سلام خدمت همه دوستان گل به مناسبت دهه کرامت (همزمان با ولادت حضرت معصومه(س) ‌و با ولادت برادرش امام رضا(ع)) فردا جمعه ۲۰ خرداد ساعت ۱۶ به مدت…
Audio
جلسه پرسش و پاسخ «مشاوره شغلی»

تو این جلسه در مورد مسیری که به نظرم روتین هست و یه برنامه نویس خوب و معمولی طی می کنه صحبت کردم و در آخر هم پرسش و پاسخ داشتیم با دوستان عزیز

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

#career_qa

@gocasts


عضویت در خبرنامه Hey Mate 👇
heymate.ir
👍187🔥2
سلام به همگی
تو نسخه جدید گولنگ یعنی ۱.۱۸ یه قابلیتی اضافه شده که خیلی کاراییش بیشتر از جنریک هست 😉
خیلی وقت ها پیش میاد چند ریپوزیتوی داریم که حین توسعه میخوایم همزمان دو یا چندتاشونو تغییر بدیم، این کار قبلا خیلی اذیت کننده بود، چون مجبور میشدیم یکی رو زودتر دیپلوی کنیم و یا از راه حل replace استفاده کنیم در go.mod، و واقعا این قابلیت multi module workspace خیلی ضروری بود اضافه شدنش

این لینک ها رو یه نگاه بندازید

https://go.dev/doc/tutorial/workspaces

https://go.dev/blog/get-familiar-with-workspaces

https://go.googlesource.com/proposal/+/master/design/45713-workspace.md


@gocasts
👍15🔥7🤩1
Go Casts 🚀
چرا انتخاب uuid به عنوان primary key میتونه به شدت performance دیتابیس شمارو تحت تاثیر قرار بده؟ نمیتونم بگم این ویدیو چقدر دید خوبی میده به ما که چطور با دیتابیس برخورد کنیم. وقتی که دانش کافی و شناخت کافی از دیتابیس نداریم، خیلی تصمیمات اشتباهی میگیریم…
سلام دوستان این مقاله کوتاه خوندنش خالی از لطف نیست
Unobvious things you need to know about key-value stores
https://event-driven.io/en/key-value-stores

یکی از موضوعاتی که قبلا هم در موردش صحبت کردیم بحث استفاده از uuid به عنوان primary key بود که میتونه فاجعه به بار بیاره
برخی از دوستان هم به درستی اشاره کردند که دیتابیس ها سعی کردند این مشکل رو تا حدودی حل کنند، تو این مقاله نکات خیلی جالبی در مورد پیاده سازیش گفته شده
https://www.2ndquadrant.com/en/blog/sequential-uuid-generators/

#database #index

@gocasts
👍10
Go Casts 🚀
بسم الله الرحمن الرحیم معرفی کتاب دوستان من سعی می کنم کتاب های خوبی که مطالعه شون میتونه به شما کمک کنه که دید بهتری نسبت به دنیای cloud-native و microservice ها داشته باشید بهتون معرفی کنم و در حد توان نکاتی رو به صورت خلاصه وار در مورد اون ها به شما ارائه…
سلام دوستان، سال گذشته بخش های زیادی از کتاب designing distributed systems رو که نوشته آقای brendan burns بود بصورت خلاصه در کانال قرار دادم، شما با جستجوی هشتگ
#designing_distributed_systems_brendan_burns
میتونید همه مطالب مربوط به این کتاب رو بخونید.

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

@gocasts
👍308🔥3
Go Casts 🚀
سلام دوستان، سال گذشته بخش های زیادی از کتاب designing distributed systems رو که نوشته آقای brendan burns بود بصورت خلاصه در کانال قرار دادم، شما با جستجوی هشتگ #designing_distributed_systems_brendan_burns میتونید همه مطالب مربوط به این کتاب رو بخونید. نکته…
سلام به همه دوستان، در مورد تست نویسی در طول یک سال گذشته چند ویدیو منتشر شده و یه سری مقاله معرفی شده که به نظرم تا حدود خیلی خوبی همه آنچه که لازم دارید در مورد تست نویسی در گولنگ بدونید رو پوشش داده، شما هم میتونید هشتگ #test رو جستجو کنید در کانال که به محتواهاش دسترسی پیدا کنید و هم میتونید از طریق این لینک ها ویدیوها رو در کانال و یا یوتیوب مشاهده کنید

لینک سری مقالات معرفی شده
https://news.1rj.ru/str/gocasts/37

لینک ویدیوها در کانال
https://news.1rj.ru/str/gocasts/41
https://news.1rj.ru/str/gocasts/46
https://news.1rj.ru/str/gocasts/53

لینک ویدیوها در یوتیوب
https://news.1rj.ru/str/gocasts/153

#test

@gocasts
👍145🔥2
CKA-1.pdf
5.6 MB
دوستان این یه دفترچه راهنمای کوبرنتیز به زبان فارسی ست که آقای افشاری زحمت کشیدن
بسی لذت بردم از این حرکت قشنگ 🌹👌👏

https://www.linkedin.com/posts/activity-6952602627079581696-2cur

#kubernetes #devops

@gocasts
🔥21👍145
سلام به همه دوستان عزیز
ان شاء الله بزودی خبرهای خوشی در راهه 😍

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

ممنون از همراهیتون ❤️

توییتر
https://twitter.com/go_casts

اینستاگرام
https://instagram.com/gocasts.ir

#social

@gocasts
16🔥2🤩1
Go Casts 🚀
سلام به همه دوستان عزیز ان شاء الله بزودی خبرهای خوشی در راهه 😍 اگه دوست داشتید اکانت توییتر و اینستاگرام رو هم دنبال کنید ممنون از همراهیتون ❤️ توییتر https://twitter.com/go_casts اینستاگرام https://instagram.com/gocasts.ir #social @gocasts
سلام به همه دوستان

گفتگوی کوتاه، جذاب و شنیدنی با مهندس کیانوش مختاریان
مهندس نرم افزار، رهبر فنی و مدیر در گوگل

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

گفتگو برای شخص بنده به شدت آموزنده بود

ان شاءالله به زودی منتشر میشه

#talk_with_kian #google_software_engineer

@gocasts
👍35🔥19👏2
بی حسین بن علی احساس پیری می کنم
نی که پیری بلکه احساس حقیری می کنم
گفت سائل از چه رو محکم به سینه می زنی؟
گفتم از آینه ی دل گردگیری می کنم
63👍2
Go Casts 🚀
سلام دوستان نمیدونم بگم چقدر از شنیدن این خبر خوشحال شدم، الهی که همگی تون زیر سایه مهر خداوند و لطف امام زمان خوب و خوش و موفق باشید 🌹 در مورد نقشه راه هم باز تاکید میکنم که دوستان لطفا جدی بگیرید، نقشه راه در عین حال که کوتاه و سریعه، واقعا سعی کردم همه…
الحمدلله، الحمدلله 😍
خیلی خوشحالم یکی از دوستان مشتاق و با استعداد راهشو پیدا کرده، هر چی هست اول لطف خدا بوده و بعد تلاش خودش

بیشتر از این خبرا به ما بدید، خوشحال میشیم 🥰

این لینک نقشه راه 👇
https://news.1rj.ru/str/gocasts/98

نقشه راه رو جدی بگیرید 🚀
منم در خدمتتون هستم ❤️
یا علی 🌹

#golang_roadmap

@gocasts
16🤩12👍6🎉4🔥2
💣 یه نکته در مورد دیتابیس mysql/mariadb روی scale

یه سری جداول داریم، تخمین مون اینه که خیلی تعداد رکوردهاش زیاد میشه، مثلا شاید به ماهی ۵۰ تا ۱۰۰ میلیون رکورد برسه
نکته دیگه اینه که این رکوردهارو موقت احتیاج داریم تو دیتابیس ذخیره کنیم، و بعد از مثلا چند هفته دیگه به رکوردهای قدیمی احتیاجی نداریم

خب دنبال راه حل بودیم که حجم دیتابیس رو مدیریت کنیم

راه حل اول: بیایم یه job بنویسیم که هر چند وقت یکبار بره رکوردهای قدیمی رو از جدول مورد نظر پاک کنه

نتیجه: جواب نمیده!!!!!
دو تا مشکل داریم، یک اینکه وقتی تو دیتابیس mysql ما رکوردی رو حذف می کنیم، فضای دیسک اشغال شده برای اون رکورد پس داده نمیشه، بلکه برای ذخیره کردن رکورد جدید ازش مجددا استفاده میشه
این دوتا مشکل ایجاد میکنه
یک اینکه فضای دیسک اشغال شده حتی با وجود حذف رکوردهای قدیمی همیشه در حال افزایش هست و هیچوقت کم نمیشه
دوم اینکه مشکل data fragmentation بوجود میاد که performance رو برای read کردن بد میکنه
https://www.databasejournal.com/mysql/mysql-data-fragmentation-what-when-and-how

راه حل دوم: استفاده از partitioning
ما میتونیم دیتارو shard کنیم و در partitionهای مختلف نگه داری کنیم
برای partition کردن سیاست های مختلفی میشه در نظر گرفت، مثلا بر اساس تعداد رکورد (همون id اگه bigint هست) یا براساس create_time (این خیلی توصیه نمیشه)
خوبیش این میشه که وقتی partition میکنی، هر وقت که دیتاهای قدیمی رو لازم نداشتی، میتونی براحتی partitionهای قدیمی رو delete کنی، اینطوری فضای دیسک خالی میشه، مشکل data fragmentation هم بوجود نمیاد

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

@gocasts

#mysql #database_at_scale #sharding


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

https://news.1rj.ru/str/c/1525472919/1552

https://news.1rj.ru/str/c/1525472919/1529

https://news.1rj.ru/str/c/1525472919/1551

https://news.1rj.ru/str/c/1525472919/1553

https://news.1rj.ru/str/c/1525472919/1531

https://news.1rj.ru/str/c/1525472919/1529

https://news.1rj.ru/str/c/1525472919/1532
👍24👏3🔥2
Go Casts 🚀
💣 یه نکته در مورد دیتابیس mysql/mariadb روی scale یه سری جداول داریم، تخمین مون اینه که خیلی تعداد رکوردهاش زیاد میشه، مثلا شاید به ماهی ۵۰ تا ۱۰۰ میلیون رکورد برسه نکته دیگه اینه که این رکوردهارو موقت احتیاج داریم تو دیتابیس ذخیره کنیم، و بعد از مثلا چند…
به نام خدای حسین (ع) 🖤

سلام خدمت همه دوستان گل
امیدوارم حالتون خوب باشه

«نکته طراحی سیستم»
مسئولیت تصمیم‌های مهم رو خودتون بر عهده بگیرید

در تکمیل پست قبلی، لازم هست چند تا مورد رو باهاتون به اشتراک بذارم.

اولا اینکه هدف من از به اشتراک گذاشتن چنین نکات ریزی اینه که سه چهارتا کلمه جدید رو گوشه ذهنتون بندازه، که اگه یوقت حین انجام یه پروژه و حل یه چالش بهش احتیاج داشتید بتونه بهتون ایده بده. 💡

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

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

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

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

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

@gocasts

#system_design
👍2520🔥2👏1