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

اگه عضو قدیمی چنل هستید، اینجا اسمش قبلا برنامه نویسی با طعم توت فرنگی بود (mhr-developer.com) و با یک تغییر برند :)) میخوام دوباره به همون سبک قدیمی ولی با کیفیت بالاتر محتوای آموزشی و اشتراک تجربه مربوط به برنامه نویسی با کامیونیتی جدید داشته باشیم.


اگر این مدت توی فضای مجازی دنبال میکردیم همو در جریان بودید توی این چند ساله توی وبسایت هایی مثل ویرگول و مدیوم تولید محتوای فارسی و انگلیسی داشتم که 2 3 سال اخیر تمرکز اصلیم روی محتوای انگلیسی بود.

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

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

🔗https://news.1rj.ru/str/MhrCodeGp

پلن آینده اینه به زودی یک مجموعه چند قسمتی ویدیوهای آموزشی با هم درست میکنیم که توش با هم یک محصول کوچیک ولی جالب رو پیاده سازی میکنیم و بالا میاریم. اینطوری اگه دانشجو هستید یا به دنبال ایده هایی جدید حتما حتما به دردتون بخوره.
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍4🔥3
خبب سلام به همه 👋

همون طوری که از نظرسنجی معلومه گزینه ساخت یک محصول از اول با Go و HTMX رای اورد و کنم این چند روز لا به لا یه وبسایت ساده اوردم بالا که همون رو بتونیم با هم بسازیم

🔗 https://kee.am/mhrlife

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

🤔 کاری که قراره بکنیم:

بزودی ویدیو‌هایی با محوریت درست کردن همین وبسایت آماده میکنم که از این stack استفاده میشه

Go HTMX SementicUI Alpinejs Hamravesh
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥116👍3
👋 سلام به همه، قسمت اول از مجموعه پیاده‌سازی وبسایت با Go و HTMX اپلود شد

توی این قسمت ما محیط توسعه رو اماده میکنیم، با WSL2 آشنا میشیم، داکر دسکتاپ رو نصب میکنیم و در نهایت از طریق Goland توی لینوکسمون go sdk اخرین ورژن رو نصب میکنیم

مhttps://youtu.be/GOJHBnhKjTU?si=o2HF3S9M_7LGxZWs

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


نکته اخر اگر توی فرایند نصب هر مشکلی بود حتما توی گروه اطلاع بدید که رفعش کنیم
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥107👍3
👋 سلاام به همه. قسمت دوم از ویدیوهای آموزش پیاده‌سازی وبسایت با Go و HTMX آماده شد.

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

📺https://youtu.be/peDXscbv_OQ

حتما حتما سوالی یا فیدبکی داشتید توی گروه بگید.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥97👍1
سلاام به همه 👋

قسمت سوم اپلود شد و توی این قسمت با هم یک سرور با گو بالا میاریم و یکی یکی متوجه میشیم چرا به ابزارهای 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