اصول SOLID چین دقیقا ⁉️
درواقع SOLID یه سری اصول مهم توی برنامهنویسی شیءگراست هستش که کمک میکنه کدهای تمیز، قابل تغییر و کماشکال بنویسیم.
➊ اصل مسئولیت واحد
Single Responsibility Principle
هر کلاس فقط باید یک کار انجام بده.
✅ چرا ؟ اگه یه کلاس چند کار مختلف انجام بده، تغییر توی یک بخش ممکنه بقیه قسمتها رو هم خراب کنه.
🎯 مثال: فرض کن یه کلاس داریم که هم سفارش ثبت میکنه، هم فاکتور صادر میکنه، هم ایمیل ارسال میکنه! اگه فقط بخش ایمیل نیاز به تغییر داشته باشه، ممکنه کل سیستم بهم بریزه. بهتره هر کار رو به کلاس مخصوص خودش بسپاریم.
➋ اصل باز/بسته
OCP - Open/Closed Principle
کد باید برای تغییر بسته، ولی برای توسعه باز باشه.
✅ چرا؟ اگه مجبور باشیم برای اضافه کردن یه قابلیت، کدهای قدیمی رو تغییر بدیم، ممکنه یه جای دیگه خراب بشه.
🎯 مثال: فرض کن یه کلاس داریم که تخفیف رو روی فاکتور اعمال میکنه. اگه بخوایم یه نوع جدید تخفیف اضافه کنیم، نباید توی کلاس قبلی دست ببریم. بهجاش یه کلاس جدید برای نوع جدید تخفیف میسازیم که به سیستم اضافه بشه، بدون اینکه چیزی خراب بشه.
➌ اصل جایگزینی لیسکوف
LSP - Liskov Substitution Principle
کلاسهای فرزند باید بدون مشکل جایگزین کلاس والد بشن.
✅ چرا؟ اگه یه کلاس فرزند بهدرستی جای والد خودش رو نگیره، برنامه رفتار غیرمنتظرهای پیدا میکنه.
🎯 مثال: فرض کن یه سیستم پرداخت داریم که روشهای مختلفی مثل کارت بانکی و کیف پول رو پشتیبانی میکنه. اگه یه متد "پرداخت()" توی والد باشه، همه کلاسهای فرزند باید بتونن درست ازش استفاده کنن. حالا اگه یه روش پرداخت مثل "پرداخت با امتیاز" اضافه کنیم که امکان پرداخت نصفهنیمه داره، کل سیستم ممکنه به مشکل بخوره!
➍ اصل تفکیک اینترفیسها
ISP - Interface Segregation Principle
اینترفیسها نباید متدهای اضافی داشته باشن.
✅ چرا؟ اگه یه کلاس مجبور بشه متدهایی رو پیادهسازی کنه که بهش نیاز نداره، کد بههمریخته و پیچیده میشه.
🎯 مثال:
فرض کن یه اینترفیس داریم به اسم Device که متدهای پرینت، اسکن و فکس داره. حالا یه کلاس داریم برای یه پرینتر ساده که فقط پرینت میکنه، ولی مجبور میشه متدهای اسکن و فکس رو هم پیادهسازی کنه، در حالی که بهشون نیازی نداره. بهتره اینترفیس رو به چند بخش جدا تقسیم کنیم.
➎ اصل
24 February 2025
25 February 2025
Фотография
click to show
click to show
🎵 اگر دوست دارید آهنگ سازی کار کنید، دیگه نیازی به نرمافزارهای حرفهای ندارید و میتونید با مستقیماً با CSS آهنگهای MP3 بسازید❗
@CodEMovazii | جهان موازی کدها 🌍
2.1K · 26 February 2025
Replymessage unavailable
سلام کسی دور ه های خیلی عالی داره پولی باشه آموزش ui uxرو آموزش بده کار درست از صفر فقط uiux ممنون میشم معرفی کنید
Replymessage unavailable
👋 سلام دوستان! من ریحانه هستم و دنبال یه فرصت جدیدم...
من یه فرانتاند دولوپر React.js هستم با ۲ سال سابقه کار که بیشتر توی پروژههای مانیتورینگ صنعتی و داشبوردهای تحلیلی تجربه دارم. با React، TypeScript، ,Next.js, Javascript,Tailwind و کتابخونههایی مثل Ant Design، ApexCharts و Socket.io کار کردم.
📌 کار با Git و Scrum رو بلدم و سعی میکنم تعامل خوبی با بقیه تیم داشته باشم
دنبال یه موقعیت تماموقت، دورکاری هستم که بتونم توش رشد کنم.
📩 اگه تیم شما نیاز به یه فرانتاند دولوپر داره یا کسی رو میشناسید که دنبال نیرو میگرده، خوشحال میشم پیام بدید تا رزومه و نمونهکارم رو بفرستم!
Replymessage unavailable
اگع بخوایم یه اپ واس موبایل بزنیم بهترین روش بنظرتون ری اکت نیتیو هست یا هردو جدا؟؟؟
Replymessage unavailable
یدونم برنامه ای که ۱۰۰۰الی ۲۰۰۰نفر کاربر رو بتونه کارو دربیاره سرور چه سطحی باشه ؟
Replymessage unavailable
اولین قسمت از تراکنش ها:
Pessimistic 🆚 Optimistic
قبلش اینو بگم اگه دوست داشتید این پلی لیست مفاهیم دیتابیس رو که قسمت چهارمش ACID هست رو مطالعه کنید
بدون هیچ بحث اضافه دیگه ای بریم سر اصل مطلب
✅ توی Pessimistic Concurrency Control دیتابیس به صورت خیلی بدبینانه به تراکنش ها نگاه میکنه و این احتمال رو میده که تراکنش ها باهم تداخل داشته باشن پس میاد از سیستم lock اش استفاده میکنه
✅ فرض کنیم موجودی فعلی حساب ما 800 تاست و شخص A میخواد 200 تا برداشت کنه و شخص B هم 100 تا اضاف کنه
✅ اول ببینیم اگه دیتابیس چیزی رو lock نکنه و هردوتا درخواست همزمان برسه چی پیش میاد 🧐
🔹شخص A مبلغ 800 رو از دیتابیس میخونه و بعد 200 تومن ازش کم میکنه
🔹شخص B هم 800 تومن رو از دیتابیس میخونه(درحالیکه باید 600 میخوند) و 100 تا بهش اضاف میکنه
حالا نتیجه نهایی ما به جای 700 میشه 900😱 اینجوری خیلی خوشبحال طرف میشه نه؟😎
✅ حالا اگه دیتابیس از سیستم lock استفاده کنه و به صورت بدبینانه نگاه کنه چطور؟🤔
درخواست شخص A به دیتابیس ارسال میشه اما اینجا دیتابیس میگه وایسا وایسا من باید اول حسابتو lock کنم تا تراکنش دیگه ای همزمان اعمال نشه حالا:
شخص A مقدار 800 تومن رو از دیتابیس میخونه و 200 تومن از حساب کم میکنه پس موجودی میشه 600 تومن
✅ حالا lock ازاد میشه
درخواست شخص B میرسه و دوباره دیتابیس lock میکنه. اینبار 600 رو از دیتابیس میخونه و 100 تومن رو اضافه میکنه و در اخر موجودی حساب ما میشه 700(نه 900)🥳
☝️حالا کجا خوبه ؟ کجا بده؟ اونجایی خوبه که تراکنش ها زیاد دچار تداخل میشن و اونجایی بده که این قفل کردن های مکرر باعث کندی سیستم ما بشه
✅ چطور توی کد نویسی اعمالش کنیم؟
با استفاده از کوعری به اسم for update میتونی اعمالش کنی
به chat GPT بگی برات کدشو به هر زبونی که دلته میزنه🤩
اونجا هست که توی سایت دیجی کالا میزنه فقط یه دونه کالا توی انباره؟ و همزمان چند نفر درخواست خرید میکنن؟اونجاست که بکار میاد😏
✅ حالا بریم سراغ Optimistic Concurrency Control
✅ توی این روش دیتابیس ما پسر خوبی شده و خیلی خوشبینانه به موضوع نگاه میکنه و پیش خودش میگه بعید بدونم دوتا درخواست همزمان بیاد سمتم. ولی در عوضش توی برنامه نویس بیا یه زحمتی بکش
برای جدولت یه ستون به اسم version بزار که توی هر تراکنش اونو ا
2.4K · 27 February 2025
Фотография
click to show
click to show
مثلاینکه مایکروسافت تصمیم گرفته که کل ویندوز رو با Node.js بازنویسی کنه!
#کابوس_ویندوز_فنا
@CodEMovazii | جهان موازی کدها 🌍
2.1K · 28 February 2025
Replymessage unavailable
Фотография
click to show
click to show
سلام دوستان عزیزم!
قالب ولزون (Velzon)، محبوبترین قالب چندمنظوره جهان، اکنون برای فروش در دسترس است! 🎉
📅 منتشر شده در ۲۰ بهمن 1403
🔗 مشاهده پیشنمایش
با این قالب، سرعت، زیبایی و کارایی را در طراحی تجربه کنید! 🚀💡
Replymessage unavailable
Фотография
click to show
click to show
سلام دوستان عزیزم!
قالب ولزون (Velzon)، محبوبترین قالب چندمنظوره جهان، اکنون برای فروش در دسترس است! 🎉
📅 منتشر شده در ۲۰ بهمن 1403
🔗 مشاهده پیشنمایش
با این قالب، سرعت، زیبایی و کارایی را در طراحی تجربه کنید! 🚀💡
Replymessage unavailable
Фотография
click to show
click to show
سلام دوستان عزیزم!
قالب ولزون (Velzon)، محبوبترین قالب چندمنظوره جهان، اکنون برای فروش در دسترس است! 🎉
📅 منتشر شده در ۲۰ بهمن 1403
🔗 مشاهده پیشنمایش
با این قالب، سرعت، زیبایی و کارایی را در طراحی تجربه کنید! 🚀💡
Replymessage unavailable
Фотография
click to show
click to show
سلام دوستان عزیزم!
قالب ولزون (Velzon)، محبوبترین قالب چندمنظوره جهان، اکنون برای فروش در دسترس است! 🎉
📅 منتشر شده در ۲۰ بهمن 1403
🔗 مشاهده پیشنمایش
با این قالب، سرعت، زیبایی و کارایی را در طراحی تجربه کنید! 🚀💡
Replymessage unavailable
Фотография
click to show
click to show
سلام دوستان عزیزم!
قالب ولزون (Velzon)، محبوبترین قالب چندمنظوره جهان، اکنون برای فروش در دسترس است! 🎉
📅 منتشر شده در ۲۰ بهمن 1403
🔗 مشاهده پیشنمایش
با این قالب، سرعت، زیبایی و کارایی را در طراحی تجربه کنید! 🚀💡
Replymessage unavailable
Фотография
click to show
click to show
سلام دوستان عزیزم!
قالب ولزون (Velzon)، محبوبترین قالب چندمنظوره جهان، اکنون برای فروش در دسترس است! 🎉
📅 منتشر شده در ۲۰ بهمن 1403
🔗 مشاهده پیشنمایش
با این قالب، سرعت، زیبایی و کارایی را در طراحی تجربه کنید! 🚀💡
Replymessage unavailable
Фотография
click to show
click to show
سلام دوستان عزیزم!
قالب ولزون (Velzon)، محبوبترین قالب چندمنظوره جهان، اکنون برای فروش در دسترس است! 🎉
📅 منتشر شده در ۲۰ بهمن 1403
🔗 مشاهده پیشنمایش
با این قالب، سرعت، زیبایی و کارایی را در طراحی تجربه کنید! 🚀💡
Replymessage unavailable
Фотография
click to show
click to show
سلام دوستان عزیزم!
قالب ولزون (Velzon)، محبوبترین قالب چندمنظوره جهان، اکنون برای فروش در دسترس است! 🎉
📅 منتشر شده در ۲۰ بهمن 1403
🔗 مشاهده پیشنمایش
با این قالب، سرعت، زیبایی و کارایی را در طراحی تجربه کنید! 🚀💡
Replymessage unavailable
Фотография
click to show
click to show
سلام دوستان عزیزم!
قالب ولزون (Velzon)، محبوبترین قالب چندمنظوره جهان، اکنون برای فروش در دسترس است! 🎉
📅 منتشر شده در ۲۰ بهمن 1403
🔗 مشاهده پیشنمایش
با این قالب، سرعت، زیبایی و کارایی را در طراحی تجربه کنید! 🚀💡
Replymessage unavailable
سلام دوستان. یه موقعیت شغلی وجوددارد به عنوان دستیار. حقوق خوب و کار در منزل. باید کسی باشه که تجربه ی اپلای داره و در مکاتبات اداری خوبه. اگر مایل بودید پیام بدید.