پیاده سازی Unit Test و Integration Test ⚙ در #گولنگ
فرق Unit Test و Integration تست چیه؟ چطور توی Go از هم جداشون کنیم؟ چطور دیتابیسمون رو با کمک داکر تست کنیم؟ ماک چیه و چطور اجزای مختلف کد رو از هم جدا کنیم؟ توی این ویدیو با هم مکانیزم Signup یک وبسایت رو پیاده میکنیم، متوجه میشیم Unit Test و Integration تست چی هستن و برای Signup پیاده سازیش میکنیم.
https://youtu.be/Y4MiLDHSs9s?si=ACVjm4Infsyr7Cn5
فرق Unit Test و Integration تست چیه؟ چطور توی Go از هم جداشون کنیم؟ چطور دیتابیسمون رو با کمک داکر تست کنیم؟ ماک چیه و چطور اجزای مختلف کد رو از هم جدا کنیم؟ توی این ویدیو با هم مکانیزم Signup یک وبسایت رو پیاده میکنیم، متوجه میشیم Unit Test و Integration تست چی هستن و برای Signup پیاده سازیش میکنیم.
https://youtu.be/Y4MiLDHSs9s?si=ACVjm4Infsyr7Cn5
❤12👍2
روی گیت مزهکاو یک کامیت رفتم که مطابق ساختار ویدیوی قبلیه Integration Test امون باشه. توی ویدیو قبلی خواستم فقط از Gorm و In-Memory SQLite استفاده کنیم برای تستامون ولی حس میکنم بهتره همون اصولی ببریم جلورو و صرفا چون میخواستم دوره سادهتر باشه ازین چیزای بدرد بخور برای آینده ساده گذر نکنیم.
https://github.com/mhrlife/mazekav
توی ویدیوی بعدی تغییراتی که دادم رو توضیح میدم که گیج کننده نباشه، اما خلاصه بگم توی repository یک پکیج جدا ساختیم برای integration تست که تستای دیتابیس و migration رو به شکل parallel روی یک MySQL سرور که با داکر میاره بالا تست میکنه.
https://github.com/mhrlife/mazekav
توی ویدیوی بعدی تغییراتی که دادم رو توضیح میدم که گیج کننده نباشه، اما خلاصه بگم توی repository یک پکیج جدا ساختیم برای integration تست که تستای دیتابیس و migration رو به شکل parallel روی یک MySQL سرور که با داکر میاره بالا تست میکنه.
GitHub
GitHub - mhrlife/mazekav
Contribute to mhrlife/mazekav development by creating an account on GitHub.
👍12
دوره Go: مزه کاو - مدل رستورانها با فیلد مکانی و تست مایگریشن
توی قسمت سوم دوره آموزشی گولنگ (مزه کاو) مدل رستورانها و ریپازیتوری مدیریت اونها توی دیتابیس و پیدا کردن رستورانهای اطراف رو پیاده سازی میکنیم. چون از Gorm استفاده میکنیم با چند تا روش نیازه هم دیتاتایپمون رو به شکلی که میخوایم با فیلد جغرافیایی و ایندکس جغرافیایی تعریف کنیم، هم مقادیر Encode شدهی جغرافیایی رو Parse کنیم و در نهایت جستجوی جغرافیایی رو توی Repository رستوران ها پیاده سازی کنیم. چون تمام این مراحل خیلی نیازمند این هست دیتابیس کوئری و کانفیگ ما رو قبول کنه در کنارش با Integration Test چک میکنیم هم مقادیر و مدل هامون درست کار میکنن هم ایندکسهای درستی ساخته شدن.
https://youtu.be/ejo64JSxkx0
توی قسمت سوم دوره آموزشی گولنگ (مزه کاو) مدل رستورانها و ریپازیتوری مدیریت اونها توی دیتابیس و پیدا کردن رستورانهای اطراف رو پیاده سازی میکنیم. چون از Gorm استفاده میکنیم با چند تا روش نیازه هم دیتاتایپمون رو به شکلی که میخوایم با فیلد جغرافیایی و ایندکس جغرافیایی تعریف کنیم، هم مقادیر Encode شدهی جغرافیایی رو Parse کنیم و در نهایت جستجوی جغرافیایی رو توی Repository رستوران ها پیاده سازی کنیم. چون تمام این مراحل خیلی نیازمند این هست دیتابیس کوئری و کانفیگ ما رو قبول کنه در کنارش با Integration Test چک میکنیم هم مقادیر و مدل هامون درست کار میکنن هم ایندکسهای درستی ساخته شدن.
https://youtu.be/ejo64JSxkx0
YouTube
دوره Go: مزه کاو - مدل رستورانها با فیلد مکانی و تست مایگریشن
توی قسمت سوم دوره آموزشی گولنگ (مزه کاو) مدل رستورانها و ریپازیتوری مدیریت اونها توی دیتابیس و پیدا کردن رستورانهای اطراف رو پیاده سازی میکنیم. چون از Gorm استفاده میکنیم با چند تا روش نیازه هم دیتاتایپمون رو به شکلی که میخوایم با فیلد جغرافیایی و ایندکس…
❤13👍2👎1
آمادگی برای مصاحبه Software Engineer ⚡ در دو هفته
اگه قبل فرایند مصاحبه یک آشنایی ساده با مراحلش داشته باشیم تجربه نشونم داده میتونه شانسمون رو در قبولی مصاحبه شرکت مورد علاقمون بیشتر کنه. فرایند مصاحبه توی اکثر شرکتهای تاپ ایرانی و خارجی ظاهر مشابهی داره و از مراحلی تشکیل شده که توی این ویدیو تجربیاتم رو از مصاحبه با شرکتهای ایرانی و خارجیایی که داشتم در اختیارتون قرار میدم که چطور برای هر مرحله توی یک هفته خودمون رو آماده کنیم.
https://youtu.be/vNwxPlgDrGM
اگه قبل فرایند مصاحبه یک آشنایی ساده با مراحلش داشته باشیم تجربه نشونم داده میتونه شانسمون رو در قبولی مصاحبه شرکت مورد علاقمون بیشتر کنه. فرایند مصاحبه توی اکثر شرکتهای تاپ ایرانی و خارجی ظاهر مشابهی داره و از مراحلی تشکیل شده که توی این ویدیو تجربیاتم رو از مصاحبه با شرکتهای ایرانی و خارجیایی که داشتم در اختیارتون قرار میدم که چطور برای هر مرحله توی یک هفته خودمون رو آماده کنیم.
چرا نیاز نیست سراغ هکررنک و لیت کد بریم؟ برای مصاحبه HR چه چیزایی رو بخونیم؟ اگر یک مرحله رو خراب کنیم چی میشه؟ اگه تجربه کار روی سیستمهای بزرگ رو ندارید نگران مصاحبه systems design نباشید. و کلی سوال دیگه که بهشون جواب میدیم.
https://youtu.be/vNwxPlgDrGM
❤36👎1
مقیاس پذیری (Scalability) کلید رشد پایدار 📈 مفهومی که باید بدانیم!
کلمه #مقیاس_پذیری یا #scalability توی دنیای کامپیوتر و محصول زیاد استفاده میشه و احتمالا scale up و scale out رو هم شنیده باشید. توی این ویدیو در مورد این مفاهیم صحبت میکنیم که مفاهیمیه که روزمره ازشون استفاده میکنیم که نگران رشد محصول نباشیم و همچنین توی مصاحبههای نرم افزاری و Software Engineer خیلی بهشون پرداخته میشه و خیلی خوبه باهاشون آشنا باشیم و بتونیم با تحلیل سیستم از مقیاس پذیری در آینده خیالمون راحت باشه.
https://youtu.be/OVnRbL_ltRU
کلمه #مقیاس_پذیری یا #scalability توی دنیای کامپیوتر و محصول زیاد استفاده میشه و احتمالا scale up و scale out رو هم شنیده باشید. توی این ویدیو در مورد این مفاهیم صحبت میکنیم که مفاهیمیه که روزمره ازشون استفاده میکنیم که نگران رشد محصول نباشیم و همچنین توی مصاحبههای نرم افزاری و Software Engineer خیلی بهشون پرداخته میشه و خیلی خوبه باهاشون آشنا باشیم و بتونیم با تحلیل سیستم از مقیاس پذیری در آینده خیالمون راحت باشه.
https://youtu.be/OVnRbL_ltRU
YouTube
مقیاس پذیری (Scalability) کلید رشد پایدار 📈 مفهومی که باید بدانیم!
کلمه #مقیاس_پذیری یا #scalability توی دنیای کامپیوتر و محصول زیاد صدا زده میشه و احتمالا scale up و scale out رو هم شنیده باشید. توی این ویدیو در مورد این مفاهیم صحبت میکنیم که مفاهیمیه که روزمره ازشون استفاده میکنیم که نگران رشد محصول نباشیم و همچنین توی…
🔥12👎1
پرفورمنس جادویی بک اند ✨ با یک روش ساده که دیسکورد را نجات داد!
به جای بازکردن 500 کانکشن دیتابیس، با یک کانکشن دیتابیس، از 2هزار ریکوئست برثانیه رسیدیم به 12هزار ریکوئست برثانیه و میانگین از 800میلیثانیه اومد 50میلیثانیه. همچنین upper99 از 3ثانیه شد 100میلیثانیه. از دور بنظر نشدنی و جادو میاد اما توی این ویدیو با هم یادمیگیریم چطور با دستهکردن درخواستهای SELECT میتونیم به چنین عددایی برسیم.
https://youtu.be/_taaEnkSOEo
به جای بازکردن 500 کانکشن دیتابیس، با یک کانکشن دیتابیس، از 2هزار ریکوئست برثانیه رسیدیم به 12هزار ریکوئست برثانیه و میانگین از 800میلیثانیه اومد 50میلیثانیه. همچنین upper99 از 3ثانیه شد 100میلیثانیه. از دور بنظر نشدنی و جادو میاد اما توی این ویدیو با هم یادمیگیریم چطور با دستهکردن درخواستهای SELECT میتونیم به چنین عددایی برسیم.
https://youtu.be/_taaEnkSOEo
YouTube
پرفورمنس جادویی بک اند ✨ با یک روش ساده که دیسکورد را نجات داد!
به جای بازکردن 500 کانکشن دیتابیس، با یک کانکشن دیتابیس، از 2هزار ریکوئست برثانیه رسیدیم به 12هزار ریکوئست برثانیه و میانگین از 800میلیثانیه اومد 50میلیثانیه. همچنین upper99 از 3ثانیه شد 100میلیثانیه. از دور بنظر نشدنی و جادو میاد اما توی این ویدیو با…
❤39👍6🔥3
دل و روده مموری کدت رو بریز بیرون! رفع Memory Leak با PProf
مموری لیک یا #memory_leak میتونه تبدیل به یک مشکل بزرگ بشه اگه از همون اول جلوش رو نگیریم. OOMKilledهای پشت سر هم و Restartهای زیاد باعث مشکلات زیادی میشه. توی این ویدیو با خیلی ساده فرق Heap و Stack رو متوجه میشیم، و یک سناریو که مشکل Memory Leak داره رو با استفاده از ابزار PProf در Golang، که تمام در و روده نرم افزارمون رو برامون میریزه بیرون، حل میکنیم.
لینک گروه:
https://t.me/MhrCodeGp
https://youtu.be/B0U0oTbd3Ps
مموری لیک یا #memory_leak میتونه تبدیل به یک مشکل بزرگ بشه اگه از همون اول جلوش رو نگیریم. OOMKilledهای پشت سر هم و Restartهای زیاد باعث مشکلات زیادی میشه. توی این ویدیو با خیلی ساده فرق Heap و Stack رو متوجه میشیم، و یک سناریو که مشکل Memory Leak داره رو با استفاده از ابزار PProf در Golang، که تمام در و روده نرم افزارمون رو برامون میریزه بیرون، حل میکنیم.
لینک گروه:
https://t.me/MhrCodeGp
https://youtu.be/B0U0oTbd3Ps
YouTube
رفع Memory Leak با PProf در Golang
مموری لیک یا #memory_leak میتونه تبدیل به یک مشکل بزرگ بشه اگه از همون اول جلوش رو نگیریم. OOMKilledهای پشت سر هم و Restartهای زیاد باعث مشکلات زیادی میشه. توی این ویدیو با خیلی ساده فرق Heap و Stack رو متوجه میشیم، و یک سناریو که مشکل Memory Leak داره رو…
👍19❤2
محافظت از APIها با Rate Limiter 🔥 جلوی هزینههای آینده رو بگیر
ریت لیمیتر یا #RateLimiter یکی از مهم ترین بخش های یک API #بک_اند هستش که اگه مراقبش نباشید میتونه هم هزینه مالی زیادی، هم منابع زیادی و هم آبروی محصولمون رو ببره! ابزارهای زیادی هستن برای این موضوع ولی یک بار برای همیشه خواستم توی این ویدیو الگوریتم های معمول مورد استفاده رو توضیح بدم و در نهایت الگوریتم GCRA که خیلی کم در موردش حرف زده میشه رو کامل توضیح میدم که خودمون بتونیم از پایه یک Rate Limiter با Redis و Lua بیاریم بالا.
https://youtu.be/T286QJkD8fw
ریت لیمیتر یا #RateLimiter یکی از مهم ترین بخش های یک API #بک_اند هستش که اگه مراقبش نباشید میتونه هم هزینه مالی زیادی، هم منابع زیادی و هم آبروی محصولمون رو ببره! ابزارهای زیادی هستن برای این موضوع ولی یک بار برای همیشه خواستم توی این ویدیو الگوریتم های معمول مورد استفاده رو توضیح بدم و در نهایت الگوریتم GCRA که خیلی کم در موردش حرف زده میشه رو کامل توضیح میدم که خودمون بتونیم از پایه یک Rate Limiter با Redis و Lua بیاریم بالا.
https://youtu.be/T286QJkD8fw
YouTube
محافظت از APIها با Rate Limiter 🔥 جلوی هزینههای آینده رو بگیر
ریت لیمیتر یا #RateLimiter یکی از مهم ترین بخش های یک API #بک_اند هستش که اگه مراقبش نباشید میتونه هم هزینه مالی زیادی، هم منابع زیادی و هم آبروی محصولمون رو ببره! ابزارهای زیادی هستن برای این موضوع ولی یک بار برای همیشه خواستم توی این ویدیو الگوریتم های…
❤23👍16
اولین پروژه برای یادگیری Golang 🌐 با TCP Server، وب سرور بساز!
بهترین پروژه برای شروع یادگیری هر زبون یا تکنولوژی، پروژهایه که یه سر به کلیات اون تکنولوژی بزنیم و باهاش آشنا بشیم و البته خیلی هم خلاصه و کوچیک باشه. توی این پروژه خیلی ساده با هم دیگه با استفاده از TCP Socket یک وب سرور مینویسیم که ریکوئست های HTTP رو دریافت کنه و پاسخ بده. بعدش با استفاده از Goroutine ها و بنچ مارک گیری پرفورمنسش رو بهتر میکنیم تا 12 هزار ریکوئست برثانیه ساپورت کنه.
https://www.youtube.com/watch?v=u0vrgoo2CEA
بهترین پروژه برای شروع یادگیری هر زبون یا تکنولوژی، پروژهایه که یه سر به کلیات اون تکنولوژی بزنیم و باهاش آشنا بشیم و البته خیلی هم خلاصه و کوچیک باشه. توی این پروژه خیلی ساده با هم دیگه با استفاده از TCP Socket یک وب سرور مینویسیم که ریکوئست های HTTP رو دریافت کنه و پاسخ بده. بعدش با استفاده از Goroutine ها و بنچ مارک گیری پرفورمنسش رو بهتر میکنیم تا 12 هزار ریکوئست برثانیه ساپورت کنه.
https://www.youtube.com/watch?v=u0vrgoo2CEA
YouTube
اولین پروژه برای یادگیری Golang 🌐 با TCP Server، وب سرور بساز!
بهترین پروژه برای شروع یادگیری هر زبون یا تکنولوژی، پروژهایه که یه سر به کلیات اون تکنولوژی بزنیم و باهاش آشنا بشیم و البته خیلی هم خلاصه و کوچیک باشه. توی این پروژه خیلی ساده با هم دیگه با استفاده از TCP Socket یک وب سرور مینویسیم که ریکوئست های HTTP رو…
❤17👍1
دوره دیتابیس: تراکنش (Transaction) و ACID و درخواستهای موازی
یکی از مفاهیم مهم #دیتابیس تراکنشها یا همون Transactionها هستن. با کمک ACID بخصوص Atomicty و Isolation Level، ترنزکشن ها بهمون کمک میکنن چندین کوئری رو در قالب یک واحد به دیتابیس بدیم و به شکل موازی اجرا بشن تا در نهایت خروجی یکسان و Consistant داشته باشیم، بدون اینکه این وسط 100 هزار تومن پول یهو گم شه!
https://youtu.be/lF8pheUpa6I
یکی از مفاهیم مهم #دیتابیس تراکنشها یا همون Transactionها هستن. با کمک ACID بخصوص Atomicty و Isolation Level، ترنزکشن ها بهمون کمک میکنن چندین کوئری رو در قالب یک واحد به دیتابیس بدیم و به شکل موازی اجرا بشن تا در نهایت خروجی یکسان و Consistant داشته باشیم، بدون اینکه این وسط 100 هزار تومن پول یهو گم شه!
https://youtu.be/lF8pheUpa6I
YouTube
دوره دیتابیس: تراکنش (Transaction) و ACID و درخواستهای موازی
یکی از مفاهیم مهم #دیتابیس تراکنشها یا همون Transactionها هستن. با کمک ACID بخصوص Atomicty و Isolation Level، ترنزکشن ها بهمون کمک میکنن چندین کوئری رو در قالب یک واحد به دیتابیس بدیم و به شکل موازی اجرا بشن تا در نهایت خروجی یکسان و Consistant داشته باشیم،…
🔥24❤6👍1
قبل از مصاحبه Systems Design یاد بگیر: Eventual Consistency ⏰
فرض کنید یکی از آدمای معروف توی توییتر 10 میلیون فالوئر داشته باشه و بخواد همون که توییت زد، توییتش بره توی تایم لاین فالوئراش. اگه بخوایم این کارو همون موقع در لحظه انجام بدیم سیستممون crash میکنه یا اون آدم باید 10 دقیقه منتظر لودینگ ثبت توییت باشه! مفهوم Eventual Consistency یکی از مفاهیم مهم دنیای نرم افزار هست که توی مصاحبه های نرم افزاری زیاد در موردش سوال پرسیده میشه.
https://youtu.be/3j3g_mVGUc8
فرض کنید یکی از آدمای معروف توی توییتر 10 میلیون فالوئر داشته باشه و بخواد همون که توییت زد، توییتش بره توی تایم لاین فالوئراش. اگه بخوایم این کارو همون موقع در لحظه انجام بدیم سیستممون crash میکنه یا اون آدم باید 10 دقیقه منتظر لودینگ ثبت توییت باشه! مفهوم Eventual Consistency یکی از مفاهیم مهم دنیای نرم افزار هست که توی مصاحبه های نرم افزاری زیاد در موردش سوال پرسیده میشه.
https://youtu.be/3j3g_mVGUc8
YouTube
قبل از مصاحبه Systems Design یاد بگیر: Eventual Consistency ⏰
فرض کنید یکی از آدمای معروف توی توییتر 10 میلیون فالوئر داشته باشه و بخواد همون که توییت زد، توییتش بره توی تایم لاین فالوئراش. اگه بخوایم این کارو همون موقع در لحظه انجام بدیم سیستممون crash میکنه یا اون آدم باید 10 دقیقه منتظر لودینگ ثبت توییت باشه! مفهوم…
🔥24❤4👍2
از Spotify یاد بگیریم 🔥 Idempotency در سیستم پرداخت
یه وقتهایی بخاطر مشکل شبکه یا درخواست ها به مقصد نمیرسن یا جوابش رو ما نمیگیریم. حالا وقتی درخواست خرید ارسال شده ولی مشکل شبکه خوردیم باید retry کنیم و دوباره درخواست بفرستیم یا تصور کنیم انجام شده؟ این مسئله توی Spotify باعث شده بود یا دوبار از حساب کاربر پول کم شه یا اصلا کم نشه. تو این ویدیو در مورد مفهوم Idempotency صحبت میکنم که کمک میکنه کیفیت APIهامون رو ببریم بالا و البته توی مصاحبههای Systems Design هم زیاد ازش سوال میشه.
https://youtu.be/U7A12dQgFqI
یه وقتهایی بخاطر مشکل شبکه یا درخواست ها به مقصد نمیرسن یا جوابش رو ما نمیگیریم. حالا وقتی درخواست خرید ارسال شده ولی مشکل شبکه خوردیم باید retry کنیم و دوباره درخواست بفرستیم یا تصور کنیم انجام شده؟ این مسئله توی Spotify باعث شده بود یا دوبار از حساب کاربر پول کم شه یا اصلا کم نشه. تو این ویدیو در مورد مفهوم Idempotency صحبت میکنم که کمک میکنه کیفیت APIهامون رو ببریم بالا و البته توی مصاحبههای Systems Design هم زیاد ازش سوال میشه.
https://youtu.be/U7A12dQgFqI
YouTube
از Spotify یاد بگیریم 🔥 Idempotency در سیستم پرداخت
یه وقتهایی بخاطر مشکل شبکه یا درخواست ها به مقصد نمیرسن یا جوابش رو ما نمیگیریم. حالا وقتی درخواست خرید ارسال شده ولی مشکل شبکه خوردیم باید retry کنیم و دوباره درخواست بفرستیم یا تصور کنیم انجام شده؟ این مسئله توی Spotify باعث شده بود یا دوبار از حساب کاربر…
👍19🔥16
MHRCODE | برنامهنویسی با طعم توتفرنگی
از Spotify یاد بگیریم 🔥 Idempotency در سیستم پرداخت یه وقتهایی بخاطر مشکل شبکه یا درخواست ها به مقصد نمیرسن یا جوابش رو ما نمیگیریم. حالا وقتی درخواست خرید ارسال شده ولی مشکل شبکه خوردیم باید retry کنیم و دوباره درخواست بفرستیم یا تصور کنیم انجام شده؟ این…
فراموش کرده بودم لینک گیتش رو بذارم. الان اوکی شد:
https://github.com/mhrlife/youtube-codes/tree/master/IdempotentAPI
https://github.com/mhrlife/youtube-codes/tree/master/IdempotentAPI
GitHub
youtube-codes/IdempotentAPI at master · mhrlife/youtube-codes
Contribute to mhrlife/youtube-codes development by creating an account on GitHub.
🔥7❤4👍1
با Locust به شکل توزیع شده Load Test کنیم 🔥 تست یک پروژه
اول یک پروژه رو روی بستر همروش دیپلوی میکنیم و حالا باید مطمئن بشیم با منابعی که اختصاص دادیم چند ریکوئست برثانیه میتونه جواب بده. چطور انجام بدیم؟ ابزارهایی مثل ApacheBenchmark برای توسعه لوکال خوب هستن اما وقتی یک سیستم ابری رو میخوایم تست بگیریم نیاز به ابزاری داریم که بتونه لود تستمون رو Scale کنه! برای همین سراغ Locust Swarm میریم که به راحتی با VMهامون، بکاندمون رو لود تست بگیریم و با اختصاص بهتر منابع از 100 ریکوئست برثانیه برسیم به 600 ریکوئست برثانیه.
https://youtu.be/vO6jMWstggA
اول یک پروژه رو روی بستر همروش دیپلوی میکنیم و حالا باید مطمئن بشیم با منابعی که اختصاص دادیم چند ریکوئست برثانیه میتونه جواب بده. چطور انجام بدیم؟ ابزارهایی مثل ApacheBenchmark برای توسعه لوکال خوب هستن اما وقتی یک سیستم ابری رو میخوایم تست بگیریم نیاز به ابزاری داریم که بتونه لود تستمون رو Scale کنه! برای همین سراغ Locust Swarm میریم که به راحتی با VMهامون، بکاندمون رو لود تست بگیریم و با اختصاص بهتر منابع از 100 ریکوئست برثانیه برسیم به 600 ریکوئست برثانیه.
https://youtu.be/vO6jMWstggA
YouTube
سرویسم چند ریکوئست بر ثانیه جواب میده؟ لود تست کنیم🔥
اول یک پروژه رو روی بستر همروش دیپلوی میکنیم و حالا باید مطمئن بشیم با منابعی که اختصاص دادیم چند ریکوئست برثانیه میتونه جواب بده. چطور انجام بدیم؟ ابزارهایی مثل ApacheBenchmark برای توسعه لوکال خوب هستن اما وقتی یک سیستم ابری رو میخوایم تست بگیریم نیاز به…
❤18🔥7
بکاند رو سریع تر کنیم 🔥 از 800 به ده هزار ریکوئست برثانیه
توی این ویدیو یک APIکه با گرفتن لود تست نشون داد 800 ریکوئست برثانیه رو ساپورت میکنه رو بهبود میدیم و با استفاده از Redis Search کوئری پیچیده SQL رو با پرفومنس 10 برابری، 8هزار ریکوئست برثانیه پاسخ میدیم. همچنین توی این ویدیو پیچیدگیهای پیاده سازیش رو با هم می بینیم و سیستمی پیاده میکنیم که دیتابیس و کش رو با هم sync کنه، و در مورد خوبی ها و بدی های Caching توی پروژه های واقعی صحبت میکنیم.
https://www.youtube.com/watch?v=tLSbJdQc3mA
توی این ویدیو یک APIکه با گرفتن لود تست نشون داد 800 ریکوئست برثانیه رو ساپورت میکنه رو بهبود میدیم و با استفاده از Redis Search کوئری پیچیده SQL رو با پرفومنس 10 برابری، 8هزار ریکوئست برثانیه پاسخ میدیم. همچنین توی این ویدیو پیچیدگیهای پیاده سازیش رو با هم می بینیم و سیستمی پیاده میکنیم که دیتابیس و کش رو با هم sync کنه، و در مورد خوبی ها و بدی های Caching توی پروژه های واقعی صحبت میکنیم.
https://www.youtube.com/watch?v=tLSbJdQc3mA
YouTube
بکاند رو سریع تر کنیم 🔥 از 800 به ده هزار ریکوئست برثانیه
توی این ویدیو یک APIکه با گرفتن لود تست نشون داد 800 ریکوئست برثانیه رو ساپورت میکنه رو بهبود میدیم و با استفاده از Redis Search کوئری پیچیده SQL رو با پرفومنس 10 برابری، 8هزار ریکوئست برثانیه پاسخ میدیم. همچنین توی این ویدیو پیچیدگیهای پیاده سازیش رو با…
❤33👍3🔥3
سلام به همه عزیزان و کسایی که تازه وارد کانال شدن.
من دنبال کانال های فارسی برنامه نویسی توی▶️ یوتیوب هستم که یک بررسی بکنم هم محتواشون چطور هست و یاد بگیرم ازشون هم در نهایت یک خلاصه ازشون توی یک ویدیو بذارم که بقیه هم بتونن استفاده کنن.
ممنون میشم توی تلگرام برام کانال های مورد علاقه برنامه نویسی فارسی تون توی یوتیوب رو ارسال کنید: @pp2007ws
من دنبال کانال های فارسی برنامه نویسی توی
ممنون میشم توی تلگرام برام کانال های مورد علاقه برنامه نویسی فارسی تون توی یوتیوب رو ارسال کنید: @pp2007ws
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍5🔥1
تحلیل عملکرد بکاند با اندازه گیری Latency و Throughput
بعد از اینکه APIهایی که ساختیم آماده شد و با تستهایی که نوشتیم چطور مطمئن شیم پرفورمنس وعملکردش نیازهای ما رو رفع میکنه؟ لود تست میگیریم و کلی در موردشم صحبت کردیم. اما چطور عددهایی که خروجی لود تستمون هست رو متوجه بشیم و با توجه به نیاز محصول، از عملکرد بکاندمون مطمئن شیم؟ جواب همهی این سوالا و اینکه چطور توی مصاحبه سیستم دیزاین در مورد این دو موضوع صحبت کنیم رو توی این ویدیو بحث میکنیم.
https://youtu.be/L8m9E0hSA4M
بعد از اینکه APIهایی که ساختیم آماده شد و با تستهایی که نوشتیم چطور مطمئن شیم پرفورمنس وعملکردش نیازهای ما رو رفع میکنه؟ لود تست میگیریم و کلی در موردشم صحبت کردیم. اما چطور عددهایی که خروجی لود تستمون هست رو متوجه بشیم و با توجه به نیاز محصول، از عملکرد بکاندمون مطمئن شیم؟ جواب همهی این سوالا و اینکه چطور توی مصاحبه سیستم دیزاین در مورد این دو موضوع صحبت کنیم رو توی این ویدیو بحث میکنیم.
https://youtu.be/L8m9E0hSA4M
YouTube
تحلیل عملکرد بکاند با اندازه گیری Latency و Throughput
بعد از اینکه APIهایی که ساختیم آماده شد و با تستهایی که نوشتیم چطور مطمئن شیم پرفورمنس وعملکردش نیازهای ما رو رفع میکنه؟ لود تست میگیریم و کلی در موردشم صحبت کردیم. اما چطور عددهایی که خروجی لود تستمون هست رو متوجه بشیم و با توجه به نیاز محصول، از عملکرد…
🔥25❤5👍3
تک تاک 💻 توی دیوار فیچرهای جدید رو چطور موقع توسعه و قبل از ریلیز تست میکنیم؟
توی شرکتهای بزرگی مثل دیوار که تعداد سرویسها و حجم کد خیلی زیاده، نیاز داریم علاوه بر یونیت تست و اینتگریشن تست خودمون هم یک دور سیستم رو بیاریم بالا و تغییرات جدیدمون رو توی محیط شبیه پروداکشن تست کنیم. اما از یه جایی به بعد منابعی که نیازه برای این کار بیشتر از سیستمهای شخصی هست و با استفاده از استیجینگ، کد جدیدمون رو توی بستر ابری میاریم بالا. توی این ویدیو امین عارفزاده، مهندس نرمافزار در تیم پلتفرم دیوار، بهمون مسیری که از گذشته طی شده برای این کار و سیستم سندباکسینگی که پیاده کردن رو توضیح میده که چطور این ابزارها کمک کردن پرفورمنس و اعتماد به نفس تیم فنی هنگام توسعه بیشتر بشه.
https://youtu.be/hBJraKdKhAE
توی شرکتهای بزرگی مثل دیوار که تعداد سرویسها و حجم کد خیلی زیاده، نیاز داریم علاوه بر یونیت تست و اینتگریشن تست خودمون هم یک دور سیستم رو بیاریم بالا و تغییرات جدیدمون رو توی محیط شبیه پروداکشن تست کنیم. اما از یه جایی به بعد منابعی که نیازه برای این کار بیشتر از سیستمهای شخصی هست و با استفاده از استیجینگ، کد جدیدمون رو توی بستر ابری میاریم بالا. توی این ویدیو امین عارفزاده، مهندس نرمافزار در تیم پلتفرم دیوار، بهمون مسیری که از گذشته طی شده برای این کار و سیستم سندباکسینگی که پیاده کردن رو توضیح میده که چطور این ابزارها کمک کردن پرفورمنس و اعتماد به نفس تیم فنی هنگام توسعه بیشتر بشه.
https://youtu.be/hBJraKdKhAE
YouTube
تک تاک 💻 توی دیوار فیچرهای جدید رو چطور توسعه و تست میکنیم؟
توی شرکتهای بزرگی مثل دیوار که تعداد سرویسها و حجم کد خیلی زیاده، نیاز داریم علاوه بر یونیت تست و اینتگریشن تست خودمون هم یک دور سیستم رو بیاریم بالا و تغییرات جدیدمون رو توی محیط شبیه پروداکشن تست کنیم. اما از یه جایی به بعد منابعی که نیازه برای این کار…
❤22🔥5
برای عید میخواستم یه سر دوباره به HTMX بزنیم و نهایتا توی یکی دو روز یک بازی تلگرامی شبیه کویز او کینگز بسازیم که یکم چالش های ساده مثل scoreboard و match making داشته باشه، در کل هم ساده باشه و دو روزه تموم شه.بنظرتون لایو باشه و توی دو تا لایو 8 9 ساعته انجامش بدیم (توی یوتیوب) و در نهایت ویدیوهاش رو توی کانال بذاریم، یا مثل ویدیوهای فعلی بشکونم و مرتبط شده توی 3 4 قسمت ادیت شده بذارم؟
👍39❤10
قراره توی عید یک بازی تلگرامی مشابه Quiz of Kings رو با هم توی چند تا یوتیوب از صفر تا صد پیادهسازی کنیم.
اولین لایو فردا جمعه ساعت ۱۲ شروع میشه و اگه میخواید لایو های بعدی رو از دست ندید توی کانال @MhrCode یا گروه @MhrCodeGp عضو بشید تا قبل از هر لایو تایم دقیقش رو بذارم.
بعد از اتمام لایوها به فرمت قبلی ویدیوها ادیت شده و به شکل خلاصه توی کانال یوتیوب قرار میگیره.
لایوها توی کانال یوتیوب https://youtube.com/@mhr_code خواهند بود
استکی که قراره باهاش بازی رو بسازیم: Golang, HTMX, Alpinejs
اولین لایو فردا جمعه ساعت ۱۲ شروع میشه و اگه میخواید لایو های بعدی رو از دست ندید توی کانال @MhrCode یا گروه @MhrCodeGp عضو بشید تا قبل از هر لایو تایم دقیقش رو بذارم.
بعد از اتمام لایوها به فرمت قبلی ویدیوها ادیت شده و به شکل خلاصه توی کانال یوتیوب قرار میگیره.
لایوها توی کانال یوتیوب https://youtube.com/@mhr_code خواهند بود
استکی که قراره باهاش بازی رو بسازیم: Golang, HTMX, Alpinejs
👍35❤18🔥7