MHRCODE | برنامه‌نویسی با طعم توت‌فرنگی – Telegram
MHRCODE | برنامه‌نویسی با طعم توت‌فرنگی
3.42K subscribers
22 photos
1 video
116 links
آدرس ها:
گروه: @MhrCodeGP
ویرگول: virgool.io/@mhrlife
مدیوم: medium.com/@mhrlife
Download Telegram
چطور با وجود محدودیت‌های شرکتمون پیشرفت فنی داشته باشیم؟ 📈

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

https://youtu.be/yb_9Uk2C2pM
👍276🔥5
یادمه ۱۰ سال پیش، اولین پلتفرمی که برای تولید محتوای آموزشیم رو ساختم، یک بلاگ ساده وردپرسی، هنوز یه وقتایی نگا میکنم به محتوای اون موقع و غافلگیر میشم؛ هم محتوای خوب و هم محتوای اشتباه، اما بازم زیبایی خودشو داشت.

سال ها گذشت و همیشه دوس داشتم محتوای تصویری هم تولید کنم؛ تا چند ماه پیش چند تا از سایت‌های پکیج آموزشی فارسی بهم پیام دادن دوره «ردیس» بذارم که همون شد انگیزه‌ای که جای پکیج، رایگان توی یوتیوب بذارم که بازخوردش فراتر از تصورم بود!

کانال رو با هدفِ اول یادگیری خودم، بعد اشتراک دانش و آشنایی و معاشرت با آدمای خفن کامیونیتی تک فارسی، ۳ ماه پیش شروع کردم و ممنون از تک تکتون که هم بهونه‌ای بدست اوردم که به خاطر ویدیو‌ها دانش خودم رو اپدیت کنم، هم از عزیزان توی گروه یا کامنتای یوتیوب یاد بگیرم.

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

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

سال نوتون هم مبارک باشه؛ اول سلامتی، بعد حال خوب، آرامش، دوست داشتن و دوست داشته شدن، و پول برای هممون آرزو میکنم.
145👍13🔥8
This media is not supported in your browser
VIEW IN TELEGRAM
توی کامیت جدید بازی تلگرامیمون من چند کار انجام دادم که نرسیدم استریمش کنم، اما توی استریم بعدی یک ساعت اول توضیح میدم معماریشو، چطور تستش کردم و روش ادامه میدیم بازی رو میسازیم.

به شکل خلاصه ما یک سیستم مدیریت لابی‌ها رو داریم، به ازای هر لابی یک گوروتین وظیفه داره تمام eventهای اتفاق افتاده‌ی بازی رو مدیریت کنه و اگه نیازداشت بازی کاربرها رو آپدیت کنه. (خیلی ساده با صدا زدن یک فانکشن)

اما کاربرها چطور real-time متوجه میشن باید کلاینتشون آپدیت بشه؟ یک endpoint داریم برای اینکار و کانکشن کاربر رو به مدت یک دقیقه باز نگه میداریم و اگه اپدیتی داشت بهش اطلاع میدیم، اگه نه دوباره ریکوئست میزنه. اگه براتون سواله لانگ پولینگ چیه این ویدیو رو حتما ببینید، برای این بازی سراغ وب‌سوکت نمیریم.

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

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

https://github.com/mhrlife/kingscomp/commit/4c536a53bc125838ff3c8fb68da18828ce0ca86e
14👍2
ورژن اولیه بازی اومد بالا. ممنون از همه کسایی که توی لایو بودن

ربات اصلی بازی اینه:
https://news.1rj.ru/str/KingsCompBot
به مدت چند روز بالاست که تست کنیم و ایده بدیم توی گروه. حتما حتما باگی بود یا ایده ایی داشتید توی گروه بگید:
https://news.1rj.ru/str/MhrCodeGp

و در نهایت لینک گیت پروژه اینجاست اگه خواستید باگی که دیدید رو فیکس کنید عالی میشه :)
https://github.com/mhrlife/kingscomp

از اینجا به بعد مسئله اینه بازی رو ادامه بدیم یا نه. اگه بنظرتون جذابه ویا ایده ایی دارید توی گروه حتما بگید.
31👍4
با هم بازی ساختیم 🎮 خلاصه‌ای از سیستم Real-Time‌ بازی لایو تلگرامی

توی چند تا لایو یوتیوبی یک بازی مولتی‌پلیر لایو ساختیم که کلی اتفاقای Real-time توش میوفته، برای راحتی کار یک سیستم Event Driven طراحی کردیم که توش مکالمه بین سرور بازی و کاربرا مثل آب خوردن باشه. توی این ویدیو در مورد اینکه چیکار کردیم و خروجیش چطوره صحبت میکنیم و اینکه در آینده چه تغییراتی باید بکنه.

https://youtu.be/WDyGqSTSzy0
21👍3
دیزاین پترن‌های ابری: Asynchronous Request-Reply ✉️

فرض کنید یک جاب مثل پردازش ویدیو دارید! حالت معمولی بین چند ثانیه تا چند دقیقه طول میکشه و وقتی ترافیک زیادی روش باشه چند ساعت! ما نمیتونیم با یک درخواست به سرور این جاب رو اجرا کنیم و جوابش رو به کاربر بدیم پس برای حلش از پترن Async Request-Reply استفاده میکنیم. توی این ویدیو به توضیحات این پترن ابری مهم میپردازیم و در نهایت با هم دیگه پیاده سازیش میکنیم.

https://youtu.be/8v-gwThFs0o
25👍4🔥3
آپدیت بازی: لیدربورد و یک سری تغییرات دیگه

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

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

@KingsCompBot

اگه پایه هستید یه تست بریم هم مطمئن شیم مقیاس پذیریش کامل داره انجام میشه و مشکل نمیخوریم هم یکم بازی کنیم :)

https://github.com/mhrlife/kingscomp
کد رو هم میتونید اینجا ببینید
👍11
اسلایس‌ها (Slice) توی گولنگ چطور کار میکنن؟ ( به انگلیسی)

در کنار چنل خودمون یه چنل کوچولوی انگلیسی ساختم که ویدیوهای خیلی کوتاه گولنگی که شاید توی کامیونیتی فارسی خیلی خواهان نداشته باشه رو انگلیسی بگیرم که امتحان کنم شاید جالب بود. اگه دوس داشتید و لایک و کامنت بذارید خیلی خوشحالم میکنه

https://www.youtube.com/watch?v=EzeJg36vhnw
👍20👎6🔥42
MHRCODE | برنامه‌نویسی با طعم توت‌فرنگی
اسلایس‌ها (Slice) توی گولنگ چطور کار میکنن؟ ( به انگلیسی) در کنار چنل خودمون یه چنل کوچولوی انگلیسی ساختم که ویدیوهای خیلی کوتاه گولنگی که شاید توی کامیونیتی فارسی خیلی خواهان نداشته باشه رو انگلیسی بگیرم که امتحان کنم شاید جالب بود. اگه دوس داشتید و لایک…
اگه موافق این حرکت نیستید یک حرکت دیگه هم توی ذهنم بود که شاید بهتره. فقط ویدیوهایی که فارسیشون توی کانال هست رو انگلیسی کنم که کامیونیتی فارسی اولویت باشه مثل همیشه. این رو خودم بیشتر پایه ام. یعنی بخاطر کانال دوم چیزی کانال اول از دست نمیده
👍474👎3🔥1
با Redis بازیمون رو Scale کردیم 🔥 مقیاس پذیر کردن هر پروژه‌ای

بازی مولتی پلیر لایوی که نوشتیم رو scalable کردیم! و جای اینکه روی یک سرور بالا باشه با 3 سرور اوردیمش بالا. توی این ویدیو در مورد نیازمندی هایی صحبت میکنم که کدمون لازم داره تا بتونه scale بشه. توی یک پروژه واقعی که بازیمون بود چطور با کمک ردیس یکی یکی این مشکلات رو حل کردیم.

https://youtu.be/0F1H3qt-tNY
🔥20👍3
هرآنچه در مورد Concurrency در Golang نیاز است بدانید 🔥

از گوروتین‌ها گرفته تا چنل‌ها و Select Case و Context و... سوالاتیه که این چند وقتیه دیدم خیلی ذهن هم برنامه نویس‌های تازه کار گولنگ هم کسایی که چند وقتی هست کار میکنن بوجود اومده و توی این ویدیو سعی کردم به تمام این ها بپردازم. طوری که حتی اگر کسی هستید که به گولنگ آشنایی نداره و فقط براش جالبه، تا کسی که چندین وقته گو میزنه بتونه ازش استفاده کنه.

https://youtu.be/yhMXwezyVd4
🔥249👍2
پوینترها به زبان خیلییی ساده 🔥 Pointerها در #Golang

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



https://youtu.be/nEgf3LpZbNo
18🔥10👍3
سلام دوستان روز زیبایی داشته باشید

توی ویدیو بعدی میخوام حالت Q&A به سوالاتی که دارید چه در مورد برنامه نویسی، چه محیط کاری، شرکت‌های که توشون بودم، اینده برنامه نویسی با وجود هوش مصنوعی و... جواب بدم

اگه هر سوالی یا دغدغه ای داشتید توی همین ترد لطفا ارسال کنید، سوال بد هم نداریم، خود سانسوری و اینا هم نکنید.😅
23👍3🔥3
دوستان به لطف شما کانال اماده مانیتایز شدن هست.
شما جایی رو میشناسید که کارای ادسنس رو انجام بده؟ اگه اره ممنون میشم بهم معرفی کنید
27🔥8👎1