MHRCODE | برنامه‌نویسی با طعم توت‌فرنگی
3.45K subscribers
15 photos
1 video
113 links
آدرس ها:
گروه: @MhrCodeGP
ویرگول: virgool.io/@mhrlife
مدیوم: medium.com/@mhrlife
Download Telegram
MHRCODE | برنامه‌نویسی با طعم توت‌فرنگی
استریم توسعه بازی نبرد پادشاهان تا دقایق دیگه شروع میشه https://youtube.com/live/S7IPFanS_U8
ممنون از همه دوستانی که اومدن، توی این لایو با هم کلی یونیت تست و اینتگریشن تست نوشتیم، با جیسون های ردیس کلی سر و کله زدیم، سیستم مچ میکینگ نوشتیم با ردیس، و برای ربات تلگرامی مون کلی ابزار نوشتیم.

توی قسمت بعدی میریم سراغ تکمیل ربات تلگرامی و کم کم فرانت بازی رو شروع میکنیم
🔥415👍5👎1
فردا، قسمت دوم لایو پیاده‌سازی بازی تلگرامی مشابه Quiz of Kings

از قبل لایو رو ساختم که اگه خواستید بتونید نوتیفیکیشنش رو فعال کنید و از دست ندید. توی این قسمت کد‌های قبلی ایی که زدیم رو Real-time میکنیم و فرایند Matchmaking رو تکمیل میکنیم، اینطور UI کاربرها آپدیت میشه و میفهمن هنوز توی پروسه مچ میکینگ هستند و به شکل Real-time متوجه میشن که به یک لابی جوین شدن.

لایو فردا ساعت 8شب تا 11شب خواهد بود
https://youtube.com/live/JzGhibKhMdA?feature=share
29🔥4
از مایکروسافت یادبگیریم 💥 آنتی‌پترن‌های پرفورمنس - Chatty I/O

هزینه‌ی I/O بیشتر از چیزی هست که فکرش رو میکنیم اما توی مقیاس و لود پایین متوجهش نمیشیم و وقتی سیستممون درخواست‌های زیادی دریافت میکنه، دیگه دیر شده! توی این ویدیو در مورد آنتی پترن Chatty I/O صحبت میکنیم، با مثال یک سیستم مشکل دار پیاده سازی میکنیم، با بنچ مارک متوجه میشیم کی مشکل بوجود میاد و در نهایت با هم مشکل رو رفع میکنیم و سیستممون رو 20 برابر سریع تر میکنیم.

https://youtu.be/03gckteSNqY
25👍4
چطور با وجود محدودیت‌های شرکتمون پیشرفت فنی داشته باشیم؟ 📈

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

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://t.iss.one/KingsCompBot
به مدت چند روز بالاست که تست کنیم و ایده بدیم توی گروه. حتما حتما باگی بود یا ایده ایی داشتید توی گروه بگید:
https://t.iss.one/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