MHRCODE | برنامه‌نویسی با طعم توت‌فرنگی – Telegram
MHRCODE | برنامه‌نویسی با طعم توت‌فرنگی
3.43K subscribers
22 photos
1 video
116 links
آدرس ها:
گروه: @MhrCodeGP
ویرگول: virgool.io/@mhrlife
مدیوم: medium.com/@mhrlife
Download Telegram
سلاام به همه 👋

قسمت سوم اپلود شد و توی این قسمت با هم یک سرور با گو بالا میاریم و یکی یکی متوجه میشیم چرا به ابزارهای Templ، HTMX و Alpinejs نیاز داریم و توی پروژه نصبشون میکنیم و باهاشون Hello World مینویسیم

https://youtu.be/LZ_HgdUGbtg?si=EXJIKHte3vclleUQ

توی قسمت بعدی میخوام با هم بک دور basic زبون Go رو یاد بگیریم. و بعد از اون نیاز داریم یک پروژه تعریف کنیم. وبسایت kee am حس میکنم مقداری شاید برای شروع پیچیده باشه اگه ایده‌ایی ساده به ذهنتون میاد حتما بگید
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥6👍1
پیچیدگی زمانی و ساختمان داده با مثال‌هایی از دنیای بک‌اند

۱. در مرحله اول یادمیگیریم پیچیدگی زمانی چیه و چه استفاده‌ایی داره
۲. بعد با هم چند تا مثال حل میکنیم که با کمک اون متوجه میشیم با پیچیدگی زمانی میتونیم رفتار سیستم رو پیش‌بینی کنیم.
۳. بعد یک مثال شبیه دنیای واقعی میزنیم (شبیه پیدا کردن فروشگاه های نزدیک لوکیشن ما) که چطور با تغییر الگوریتم و بهبود پیچیدگی زمانی، جای ۵۰ ریکوئست برثانیه، میتونیم چند ده‌هزار ریکوئست درثانیه پشتیبانی کنیم.

https://youtu.be/B3quYTQhAhc?si=S716Nef7vuiy-6Ez
Please open Telegram to view this post
VIEW IN TELEGRAM
15🔥3👍1
پیچیدگی زمانی (قسمت دوم) و هرآنچه از Big O Notation نیاز است بدانیم

توی قسمت قبل دیدیم که پیچیدگی زمانی بخشی جداناپذیر از بک‌اند هست. توی این قسمت به تعاریف مربوط بهش بخصوص big o notation و قوانینی که نیازهست یاد بگیریم میپردازیم.

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


https://youtu.be/yEA5ogvQvDU?si=t3GMGh2nWKVkV6FG
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍6
🔥 ردیس یکی از قدرتمندترین ابزار دنیای وب هست و توی این دوره میخوایم تمام امکاناتش رو با مثال از دنیای واقعی یاد بگیریم

از ردیس برای یک کش ساده گرفته تا لیدربورد بازی‌ها، سرچ براساس تگ و مختصات، ریت لیمیتر، Global Lock، هوش مصنوعی و سرچ ماتریسی، و... استفاده میشه که توی این دوره میخوایم با هم دیگه تک تک ابزارهای ردیس رو با مثال از دنیای واقعی یاد بگیریم.

ردیس امروزه تقریبا توی تمام شرکت‌های بزرگ استفاده میشه و اخیرا تبدیل به علتی شده که OpenAI تونسته ChatGPT رو scale کنه.

این دوره پیش نیاز دوره اصلیمون هست که قراره اپی شبیه اسنپ‌فود پیاده‌سازی کنیم


لینک دوره توی یوتیوب:

https://youtube.com/playlist?list=PLUKW34GJxYOYyPqmZK6ilgosi2VUglOT5&si=dhgbyQlQxdBxZ_sx
12🔥4👍2
آشنایی با Sorted Set با سه مثال جذاب

لینک ویدیو: https://youtu.be/Mw53VLCJn-k?si=4NRNbxSuEUOewooM

1- توی این ویدیو اول در مورد ساختمان داده Sorted Set در ردیس صحبت میکنیم و شباهت و تفاوت‌هاش رو با Set متوجه میشیم.
2- یکی از معمول‌ترین مثال‌های Sorted Set پیاده‌سازی لیدربورد هست که با اون با این ساختمان داده بیشتر آشنا میشیم.
3- لیستی از غذاها میسازیم و به هر غذا تگ وزن‌ دار میزنیم. برای مثال وزن گوشت در استیک بیشتر‌از قرمه‌سبزی هستش! بعد براساس تگ‌های ارسالی کاربر، براش یک لیست مرتب شده براساس وزن‌های غذاها میسازیم و به کاربر نشون میدیم.
4- توی قسمت چهارم در مورد Job Queue صحبت کردیم و توی این قسمت در مورد این صحبت میکنم چطور میتونیم به یک سری از درخواست ها اولویت بدیم و مثلا اگر کاربر VIP داریم، توی با اولویت بالاتر درخواستش رو انجام بدیم. همچنین یک اشاره به کامند‌های Blocking هم میکنم.
👍8🔥51
قسمت ششم آموزش ردیس: سرچ جغرافیایی

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

1 - توی این ویدیو اول در مورد Geo Hash که توی اکثر تکنولوژی‌ها مثل ردیس و ElasticSearch استفاده میشه صحبت میکنیم و توضیح میدم چطور پیچیدگی زمانی از o(n) به o(logn) کاهش پیدا میکنه. یعنی برای یک میلیون دیتا، جای یک میلیون مقایسه فقط 20 مقایسه نیازه انجام بشه.

2- بعد با کامند‌های Geo Spatial آشنا میشیم و براساس لوکیشن توی ردیس سرچ انجام میدیم.

3- در آخر نشون میدم که Geo Spatialها در ردیس در اصل یک SortedSet هستن با کمک Geo Hash، و با کمکش مثال تگ‌های مرتبط در قسمت 5 رو بهبود میدیم و فقط توی مجموعه رستوران‌های نزدیک کاربر جستجو انجام میدیم.

لینک ویدیو در یوتیوب: https://youtu.be/CdyG6aRTfl8
👍18🔥95
قسمت هفتم: آشنایی با Streams‌ در Redis - جایگزین کافکا و RabbitMQ؟

حتما بگم که Kafka و RabbitMQ ابزارهای قوی‌ایی هستند که از ابتدا برای این مسئله ساخته شده اند و Streams ردیس لزوما جایگزین اونها نیست، اما در مواردی با توجه به شرایط میتونه انتخاب بهتری برای محصول باشه و اشنایی باهاش و امکانات متفاوتش خالی از لطف نیست


https://youtu.be/_IcgS_NuV-k

۱- اول در مورد Eventual Consistency صحبت میکنم با چند مثال واقعی که چرا اصلا بهش نیاز داریم؟
۲- اشنایی با کامند‌های اولیه و consumer group ها
۳- اشنایی با ack و مکانیزم مشابه DLQ برای هندل کردن Crash یا Errorها
۴- کافکا و RabbitMQ ابزار‌های قوی‌ایی هستند و در چه شرایطی بنظرم streams میتونه انتخاب بهتری باشه؟
21👍3🔥2
ردیس جایگزین Elasticsearch؟

ردیس ابزار بسیار قدرتمندی هست که معمولا فقط به عنوان کش استفاده میشه، اما ساختمان‌داده هایی که ارائه میده اونقدر قوی هست که علاوه بر کش، میشه باهاش سرچ های ترکیبی و پیچیده مثل سرچ جغرافیایی، براساس تگ، full-text و حتی Vector Search برای Embedding ها و سرچ معنایی انجام داد.

توی این ویدیو با هم با ابزار قدرتمند Redis Search آشنا میشیم.


https://youtu.be/BhUuM2W-Ou4
🔥117👍1
ردیس خیلی سریعه اما نباید فراموش کنیم توی سیستم‌های توزیع شده همیشه RTT یا Round Trip Time میتونه به شدت سرویسمون رو کند کنه

به این بهونه توی این ویدیو در مورد کامند‌های مولتی و پایپلاین صحبت میکنم و اینکه چطور میتونیم با استفاده از Lua هم منطق Atomic پیچیده داشته باشیم هم در مواردی پرفورمنس رو بهتر کنیم

▶️ https://youtu.be/m5j4YUvuUmc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥184👍2
چرا به دیتابیس‌ها نیاز داریم؟

قسمت اول دوره دیتابس از ابتدا آپلود شد، توی این دوره سعی میکنم از پایه برای دانشجویی که تازه مفاهیم کدنویسی رو متوجه شده شروع کنم تا قسمت‌های آخر با هم برای سرویس‌هایی که لود بالا هست کوئری‌های بهتر بزنیم و پرفورمنس اپلیکیشن رو به شدت بهبود بدیم

https://youtu.be/UHThAA1pi6U?si=_3UpU9ay0RH-xs1Q
30👍1🔥1
تفاوت و کاربردهای انواع مختلف دیتابیس‌ها - قسمت دوم دوره پایه‌های دیتابیس

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

https://youtu.be/tOiQs_XRdS0
11
تجربه‌ها: سوتی‌ایی که باعث شد کافه‌بازار بیاد پایین!

کار در #کافه‌بازاریکی از بهترین اتفاق‌های زندگیم بود و از اون روزها فقط خاطره خوب یادم هست و خواستم یکی از خاطرات رو براتون تعریف کنم.


توی این ویدیو در مورد شبی صحبت میکنم که متوجه شدم بخاطر آخرین مرج ریکوئست من صفحات اصلی کافه‌بازار دارن میان پایین و من و تیم لیدرم با هم افتادیم دنبال پیدا کردن علت این موضوع. توی این ویدیو در مورد مانیتورینگ صحبت میکنم و چطور در کنار لاگ‌ها به ما کمک میکنند برای پیدا کردن باگ‌ها و در نهایت فرهنگ post-mortem چی هست و چطور کمک شرکت میکنه که از یک چاله دوبار گزیده نشه.

مشاهده در یوتیوب
▶️ https://youtu.be/dsDtnp8Nbt8
Please open Telegram to view this post
VIEW IN TELEGRAM
29🔥9👍2
قسمت سوم دوره پایه‌های دیتابیس - ساخت و مدیریت جداول، عملیات‌های CRUD

توی این دوره میخوایم مباحث پایه‌ایی که برای ساخت اولین اپلیکیشنمون نیازه رو یاد بگیریم و توی این قسمت با هم یادمیگیریم چطور جدول بسازیم، اطلاعاتش رو ببینیم، عملیات‌های ساخت، ویرایش، آپدیت و حذف رو روی سطرها انجام بدیم (CRUD) و در نهایت متوجه میشیم primary key چی هست و چرا بهش نیاز داریم
https://youtu.be/f1gbbt7DMbM
15
😊 تجربه‌ها: آینده استارتاپ ها با هوش مصنوعی: ساخت نرم‌افزار تصحیح رایتینگ آیتلس با Go و OpenAI

امسال فرصت این رو داشتم چند ماه فول‌تایم با‌ مدل‌های #OpenAI کار کنم و تصمیم گرفتم توی این ویدیو تجربیاتم رو باهاتون به اشتراک بذارم.


ابتدا با هم متوجه میشیم چرا #ChatGPT اتفاق مهمی هست! و چطور ازش استفاده کنیم، در مورد مسائلی که قبلا قابل حل نبودن و امروزه میشه با GPTها حلشون کرد صحبت میکنیم، یکم با پلتفرم OpenAI آشنا میشیم و پرامپ‌های اولیه مینویسیم، و در نهایت با #Golang و OpenAI یک نرم‌افزار میسازیم که رایتینگ‌های IELTS رو به شکل ساختارمند در قالب خروجی JSON تصحیح کنه و ما به شکل درخواه به کاربر نشون بدیم.

https://youtu.be/ZUFlqERXmn4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥1
دنیای جذاب ایندکس‌ها در MySQL و آشنایی با نحوه پیاده‌سازی آنها

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

توی این ویدیو با هم در مورد نحوه پیاده‌سازی ایندکس‌ها صحبت میکنیم و می‌بینیم دیتابیس چطور ازش استفاده میکنه که جواب ما رو سریع تر بده، و در نهایت دست به کد میشیم و جدولمون رو بهتر میکنیم

https://youtu.be/YLxSlVGUsu8
16
ℹ️بهینه‌سازی کوئری با ایندکس‌های ترکیبی و آشنایی با EXPLAIN ANALYZE - قسمت 5 دوره دیتابیس

توی این قسمت با هم می بینیم که دیتابیس تمام تلاشش رو میکنه از Index‌های تعریفی ما استفاده کنه تا کوئری بهینه بزنه، اما از یه جایی به بعد بهتره ایندکس‌هامون رو هوشمندانه تر تعریف کنیم. ایندکس‌های ترکیبی یا Composite ایندکس به ما اجازه میدن سطرهامون رو براساس چندفیلد با هم مرتب کنیم و کوئری‌ایی که 16ms طول میکشید رو به 0.5میلی‌ثانیه بهبود بدیم.

https://youtu.be/4JFmwyy4K9Q
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥5
🧑‍💻 تست نویسی رو از دانشگاه شروع کن! افزایش اعتماد به نفس و سرعت با unit test

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

توی این ویدیو با هم در مورد این صحبت میکنیم تست چیه، چطور کمکمون میکنه، و چطور اولین تستمون رو بنویسیم. حتی کسی که ترم اول دانشگاهه!

https://youtu.be/IJ5axaX6iyo
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1610
دوره آموزش Golang - مزه‌کاو! - انتخاب زبان برنامه نویسی و تکنولوژی‌ها و آماده‌سازی محیط توسعه
توی این دوره قراره با استفاده از زبون Golang و دیتابیس MySQL با هم دیگه محصولی بسازیم که کاربرها بتونن به رستوران‌های اطرافشون رای و امتیاز بدن و بقیه براساس لوکیشنشون نظرات ثبت شده روی رستوران‌های اطرافشون رو ببینن.

توی قسمت اول با هم دیگه تصمیم میگیریم چه تکنولوژی و زبونی رو انتخاب کنیم و با تخمین زدن 6 ماه آینده از over engineering می پرهیزیم. و در ادامه وقتی Golang و MySQL رو انتخاب کردیم! محیط توسعه لوکالمون رو با داکرکامپوز اماده میکنیم و به دیتابیس وصل میشیم.اگه سوالی داشتید توی گروه حتما بپرسید:
https://news.1rj.ru/str/MhrCodeGp
https://youtu.be/4yKlc2tEwWU
15🔥6👍2
دوره Go: مزه‌کاو - Repository Pattern و تست دیتابیس با SQLite

توی این قسمت از دوره آموزش #Golang با Repository Pattern آشنا میشیم، یکم با Interfaceهای Golang ور میریم و در نهایت زیرساخت لایه دیتابیس رو آماده میکنیم و با کمک دیتابیس in-memory SQLite کدهایی که زدیم رو تست میکنیم. توی این قسمت با هم یه نیم نگاه به دردسرایی که با Golang داریم هم میندازیم و آخر ویدیو رو حتما از دست ندید.

https://youtu.be/_F93eTx0k-Q?si=0fj_iCsNTH9hbUdP
🔥173👍2