برای توسعه بک اند بین Django و Node.js شک دارم، کدوم رو انتخاب کنم؟ 🦦
Django و Node.js هر دو فناوریهای قدرتمندی هستن که برای توسعه وب استفاده میشن، اما هرکدوم نیازهای مختلف پروژه رو برآورده میکنن. و در اینجا یک تفکیک و خلاصه کلی در مورد هرکدوم هست برای انتخاب شما:
👩💻 جنگو یک فریمورک سطح بالا پایتون هست که به دلیل سادگی و ویژگی های گسترده ای که ارائه میده شناخته میشه، و این تکنولوژی ویژگی هایی مانند:
🔵 توسعه سریع: ویژگی های "out-of-the-box" جنگو مانند مدیریت کاربر، مدیریت ایمیل و اتصال به دیتابیس توسعه رو ساده میکنه.
🔵 امنیت: ویژگی های امنیتی ماننده آسیب پذیری ها و خطاهای توسعه رو به حداقل میرسونه.
🔵 مقیاس پذیری: وب سایت های پیچیده مبتنی بر داده و ترافیک بالای کاربر رو به طور موثر مدیریت میکنه.
🤟 در سمت دیگه نود یک رانتایم جاوا اسکریپت هست که توسعه سمت سرور رو امکان پذیر میکنه، و ویژگی هایی مانند:
🔵 real-time: ایده آل برای برنامه هایی که نیاز به بروزرسانی به صورت لحظه و عملکرد چت دارن.
🔵 مقیاس پذیری: حجم بالایی از اتصالات همزمان کاربر رو به طور موثر مدیریت میکنه.
🔵 انعطاف پذیری: npm، پکیج منجیر Node.js، کتابخانه وسیعی از ابزارها و قابلیت ها رو برای سفارشی سازی فراهم میکنه.
اما کدوم بهتره؟🤔
بهترین انتخاب به نیازهای خاص پروژه شما بستگی داره. به طور کلی:
برای این که پست زیاد طولانی نشه، نتیجه رو داخل تلگراف براتون قرار دادیم، از دستش ندید💀
#nodejs #django
@CodeModule
Django و Node.js هر دو فناوریهای قدرتمندی هستن که برای توسعه وب استفاده میشن، اما هرکدوم نیازهای مختلف پروژه رو برآورده میکنن. و در اینجا یک تفکیک و خلاصه کلی در مورد هرکدوم هست برای انتخاب شما:
اما کدوم بهتره؟
بهترین انتخاب به نیازهای خاص پروژه شما بستگی داره. به طور کلی:
برای این که پست زیاد طولانی نشه، نتیجه رو داخل تلگراف براتون قرار دادیم، از دستش ندید
#nodejs #django
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🔥4😁1💔1
یک ایده جدید از بچه های کد ماژول اینه که، یک شب در هفته و ساعت 10 بحث و گفتمانی راجب موضوعات مختلف شکل بگیره و از تجریبات همدیگه، برای پیشرفت خودمون استفاده کنیم 💬
از قضا امروز اولین استارت این ایده رو میزنیم
قطعا همه شما با مهارت های نرم آشنا هستید و امروز میخوایم بریم تو دل این مهارت ها و با هم بررسی کنیم، که یک دولوپر باید چه مهارت های نرمی داشته باشه تا نسبت به دیگران پیشی بگیره.
(گفتوگو به صورت ویس چت هست)
امشب ساعت ۱۰ این ارائه و دورهمی جذاب رو از دست ندید🩶
از قضا امروز اولین استارت این ایده رو میزنیم
موضوع: مهارت های نرم و مسائل پیرامون آن
قطعا همه شما با مهارت های نرم آشنا هستید و امروز میخوایم بریم تو دل این مهارت ها و با هم بررسی کنیم، که یک دولوپر باید چه مهارت های نرمی داشته باشه تا نسبت به دیگران پیشی بگیره.
(گفتوگو به صورت ویس چت هست)
امشب ساعت ۱۰ این ارائه و دورهمی جذاب رو از دست ندید
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👌2😁1
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀
🔵 Link
#figma
@CodeModule
#figma
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15⚡7😁1
پالیندروم ها رو پیدا کنید 👁
الگوریتمی طراحی کنید که وقتی بهش متن میدیم، بتونه پالیندروم های اون متن رو به طور موثر پیدا کنه و نمایش بده.
یک نمونه از پالیندروم: "گرگ"، "درد"، "ABA" و... درواقع متن، کلمه، اعداد و... که از هر دو طرف دقیقا به یک شکل خونده بشن، پالیندروم گفته میشه.
به عنوان مثال، من چنین متنی رو به عنوان ورودی به شما میدم: "
توضیح خروجی های مدنظر:
1⃣ ABA یک پالیندروم هست و از ایندکس 12 شروع میشه و طول آن 3 هست.
2⃣ ABA که پالیندروم هست و از ایندکس 27 شروع میشه و طول آن 3 هست.
راهنمایی: از الگوریتم Manachers استفاده کنید.
اگه نمیدونید الگوریتم Manachers چیه، این مقالات رو مطالعه کنید.
- Article
- Article
- Article
#challenge
@CodeModule
الگوریتمی طراحی کنید که وقتی بهش متن میدیم، بتونه پالیندروم های اون متن رو به طور موثر پیدا کنه و نمایش بده.
یک نمونه از پالیندروم: "گرگ"، "درد"، "ABA" و... درواقع متن، کلمه، اعداد و... که از هر دو طرف دقیقا به یک شکل خونده بشن، پالیندروم گفته میشه.
به عنوان مثال، من چنین متنی رو به عنوان ورودی به شما میدم: "
snckjascaskjABAskcsjXZSIAkcABA
" توضیح خروجی های مدنظر:
راهنمایی: از الگوریتم Manachers استفاده کنید.
اگه نمیدونید الگوریتم Manachers چیه، این مقالات رو مطالعه کنید.
- Article
- Article
- Article
#challenge
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🔥5😁1
آشنایی با ابزار قدرتمندی به نام Bit 💀
Bit یک پلتفرم برای ایجاد و مدیریت کامپوننتهای قابل استفاده مجدد هست که به دولوپرا امکان ساخت، اشتراکگذاری و همکاری در پروژههای نرمافزاری ماژولار رو میده.
سازندگان بیت چیز زیاد پیچیدهای نمیخواستن و فقط هدفشون این بود که، کامپوننتها و ماژولها رو از پروژهها مستقل کنن، در فضایی ابری نگه داری کنن و در هر پروژهای که نیاز بود از اونها استفاده کنن. برخی ویژگیها و امکانات کلیدی این پلتفرم عبارتند از:
🔵 کامپوننتهای ماژولار: Bit امکان ایجاد کامپوننتهایی رو فراهم میکنه که میشه از اونها در پروژه های مختلف استفاده کرد. این ویژگی باعث افزایش کارآیی و کاهش تکرار در کدنویسی میشه.
🔵 محیطهای توسعه قابل سفارشیسازی: دولوپرا میتونن محیط توسعه خودشون رو با ابزارها و تنظیمات دلخواه سفارشیسازی کنن.
🔵 پیشنمایش و مستندسازی خودکار: Bit به طور خودکار پیشنمایش و مستندات کامپوننتها رو تولید میکنه، که استفاده و نگهداری از کامپوننتها رو سادهتر میسازه.
🔵 پلتفرم Harmony: Bit شامل یک چارچوب ترکیبی به نام Harmony هست که به دولوپرا این امکان رو میده، که ویژگیهای مختلف رو در یک پلتفرم واحد ترکیب و یکپارچه کنن. این ویژگی به تسهیل همکاری تیمی و ادغام سریعتر ویژگیهای جدید کمک میکنه.
🔵 مدیریت وابستگی ها: وابستگیها به طور خودکار شناسایی و بروزرسانی میشن. این ویژگی باعث میشه پروژهها مستقل باقی بمونن و همزمان به خوبی با یکدیگر یکپارچه بشن.
🔵 پشتیبانی از CI/CD: این پلتفرم از فرآیندهای پیوسته یکپارچهسازی و استقرار (CI/CD) پشتیبانی میکنه، که امکان تست و استقرار خودکار کامپوننتها رو فراهم میکنه و باعث افزایش کیفیت و سرعت توسعه میشه.
برای کسب اطلاعات بیشتر و نحوه استفاده از امکانات Bit.dev، به داکیومنتش مراجعه کنید.
Document🌐
#bit
@CodeModule
Bit یک پلتفرم برای ایجاد و مدیریت کامپوننتهای قابل استفاده مجدد هست که به دولوپرا امکان ساخت، اشتراکگذاری و همکاری در پروژههای نرمافزاری ماژولار رو میده.
سازندگان بیت چیز زیاد پیچیدهای نمیخواستن و فقط هدفشون این بود که، کامپوننتها و ماژولها رو از پروژهها مستقل کنن، در فضایی ابری نگه داری کنن و در هر پروژهای که نیاز بود از اونها استفاده کنن. برخی ویژگیها و امکانات کلیدی این پلتفرم عبارتند از:
برای کسب اطلاعات بیشتر و نحوه استفاده از امکانات Bit.dev، به داکیومنتش مراجعه کنید.
Document
#bit
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡6🔥2😁1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥13😁1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12⚡3👌3
تجربه های کاری 🦦
یه سایت کاربردی پیدا کردم که با استفاده از اون میتونید، تجربه سایر دولوپرا در مورد شرکت مد نظرتون رو بخونید (مصاحبه، کار و ...)
همچنین این پروژه اوپن سورسه و شما هم میتونید در گسترش اون نقشی داشته باشید.
🔗 https://tajrobe.github.io/
#work
@CodeModule
یه سایت کاربردی پیدا کردم که با استفاده از اون میتونید، تجربه سایر دولوپرا در مورد شرکت مد نظرتون رو بخونید (مصاحبه، کار و ...)
همچنین این پروژه اوپن سورسه و شما هم میتونید در گسترش اون نقشی داشته باشید.
#work
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
👌12🔥4😁1
پکیج های منسوخ شده رو پیدا کن ❗️
به تازگی یکی از دوستان پکیجی منتشر کرده که با استفاده از اون، میتونید یک ریپورت از آخرین باری که پکیج های پروژتون پابلیش شده بگیرید، و بهتون به صورت میانگین میگه اون پکیج چند روز یک بار داره آپدیت میشه.
با استفاده از این پکیج، پکیج هایی که خیلی وقته آپدیت ندادن و یا به صورت میانگین مرتب نگهداری و توسعه داده نمیشن رو میتونید راحت تر پیدا کنید، و قبل از اینکه یک پکیج واقعا منسوخ بشه، بتونید اون رو جایگزین کنید.
در صورت تمایل برای کسب اطلاعات بیشتر و نحوه نصب و استفاده، میتونید به داکیومنتش مراجعه کنید.
⛽️ npm
🌪 github
همچنین با سازنده این پکیج، جناب آقای مهدی شیبک هم میتونید در ارتباط باشید🩶
#npm
@CodeModule
به تازگی یکی از دوستان پکیجی منتشر کرده که با استفاده از اون، میتونید یک ریپورت از آخرین باری که پکیج های پروژتون پابلیش شده بگیرید، و بهتون به صورت میانگین میگه اون پکیج چند روز یک بار داره آپدیت میشه.
با استفاده از این پکیج، پکیج هایی که خیلی وقته آپدیت ندادن و یا به صورت میانگین مرتب نگهداری و توسعه داده نمیشن رو میتونید راحت تر پیدا کنید، و قبل از اینکه یک پکیج واقعا منسوخ بشه، بتونید اون رو جایگزین کنید.
در صورت تمایل برای کسب اطلاعات بیشتر و نحوه نصب و استفاده، میتونید به داکیومنتش مراجعه کنید.
همچنین با سازنده این پکیج، جناب آقای مهدی شیبک هم میتونید در ارتباط باشید
#npm
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡15🔥6😁1
چالش داریم چه چالشی 😄
تو چالش امروز شما باید یک سیستم سفارش غذا برای یک رستوران طراحی کنید که به مشتریان اجازه میده، تا هر طور که دوست دارن سفارش غذا بدن. این سیستم باید دارای اجرای مختلفی باشه، مانند:
1⃣ اجزای غذا:
- غذا: نام، اندازه،
- نوشیدنی ها: نام، نوع (به عنوان مثال، نوشابه، آبمیوه).
2⃣ سفارش غذا:
- یک سفارش غذا میتونه شامل چندین نمونه از هر جزء باشه (به عنوان مثال،1 غذای اصلی، 3 تا نوشیدنی).
- سفارش باید به گونه ای نمایش داده بشه که به راحتی قابل خواندن و تغییر باشد.
3⃣ توسعه پذیری:
- سیستم رو طوری طراحی کنید که به راحتی قابل تغییر باشه. به عنوان مثال، افزودن یک نوع کامپوننت جدید (مثلاً قرمه سبزی) باید به حداقل تغییرات نیاز داشته باشه.
هدف استفاده از پترن بیلدر، برای پیاده سازی یک سیستم انعطاف پذیر و مقیاس پذیر هست، که امکان ساخت و اصلاح آسان سفارشات غذا رو فراهم میکنه. اگر نمیدونید الگو بیلدر چی هست، این پست رو بخونید.
#challenge
@CodeModule
تو چالش امروز شما باید یک سیستم سفارش غذا برای یک رستوران طراحی کنید که به مشتریان اجازه میده، تا هر طور که دوست دارن سفارش غذا بدن. این سیستم باید دارای اجرای مختلفی باشه، مانند:
- غذا: نام، اندازه،
- نوشیدنی ها: نام، نوع (به عنوان مثال، نوشابه، آبمیوه).
- یک سفارش غذا میتونه شامل چندین نمونه از هر جزء باشه (به عنوان مثال،1 غذای اصلی، 3 تا نوشیدنی).
- سفارش باید به گونه ای نمایش داده بشه که به راحتی قابل خواندن و تغییر باشد.
- سیستم رو طوری طراحی کنید که به راحتی قابل تغییر باشه. به عنوان مثال، افزودن یک نوع کامپوننت جدید (مثلاً قرمه سبزی) باید به حداقل تغییرات نیاز داشته باشه.
هدف استفاده از پترن بیلدر، برای پیاده سازی یک سیستم انعطاف پذیر و مقیاس پذیر هست، که امکان ساخت و اصلاح آسان سفارشات غذا رو فراهم میکنه. اگر نمیدونید الگو بیلدر چی هست، این پست رو بخونید.
#challenge
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡8🔥4😁1
پیاده سازی تکست ادیتور در ۳ سوت 🔵
SlateJS یک کتابخانه برای ساخت و مدیریت تکست ادیتور یا ویرایشگرهای متن در پروژه های React هست. این کتابخانه به دولوپرا اجازه میده تا ویرایشگرهای متن سفارشیسازیشده و قدرتمندی ایجاد کنن.
Document🌐
#textEditor
@CodeModule
SlateJS یک کتابخانه برای ساخت و مدیریت تکست ادیتور یا ویرایشگرهای متن در پروژه های React هست. این کتابخانه به دولوپرا اجازه میده تا ویرایشگرهای متن سفارشیسازیشده و قدرتمندی ایجاد کنن.
همچنین این کتابخانه بسیار منعطف و با قابلیت های زیادی هست. پیشنهاد میکنم حتما یه سر به داکیومنتش بزنید.
Document
#textEditor
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡10🔥4😁1
Event-Driven Programming در Node.js 🤟
برنامهنویسی رویداد محور، یک پارادایم برنامهنویسی هست که در آن جریان برنامه توسط ایونت هایی مانند اقدامات کاربر (کلیکها، فشار دادن کلیدها)، خروجیهای حسگر یا پیامهای دیگر programs/thread تعیین میشه. Node.js از این پارادایم به طور گسترده برای مدیریت کارآمد عملیات های ناهمزمان استفاده میکنه.
اما این پارادایم چجوری کار میکنه؟ 🪲
1⃣ Initialization: هنگامی که یک برنامه Node.js شروع میشه، ایونت لوپ رو مقداردهی اولیه میکنه و شروع به اجرای اسکریپت میکنه.
2⃣ Event Registration: ایونت ها و کالبک ها (ایونت هندلر ها) با استفاده از "EventEmitter" یا سایر API ها مانند "http" یا "fs" ثبت میشن.
3⃣ Event Emission: هنگامی که یک ایونت رخ میده (به عنوان مثال درخواست HTTP، تکمیل شدن خواندن یک فایل)، Node.js ایونت رو منتشر میکنه و کالبک رو فراخوانی میشه.
4⃣ Event Loop: ایونت لوپ ایونت ها رو بررسی و کالبک هارو اجرا میکنه. همچنین task رو در یک حلقه پیوسته پردازش میکنه تا زمانی که کار دیگری برای انجام وجود نداشته باشه.
به صورت کلی Event-Driven Programming در Node.js برای ساخت برنامه های مقیاس پذیر، کارآمد و real-time خوب و قدرتمنده. در صورت تمایل برای کسب اطلاعات بیشتر، مقالات زیر رو میتونید مطالعه کنید.
- Article
- Article
- Article
#nodejs
@CodeModule
برنامهنویسی رویداد محور، یک پارادایم برنامهنویسی هست که در آن جریان برنامه توسط ایونت هایی مانند اقدامات کاربر (کلیکها، فشار دادن کلیدها)، خروجیهای حسگر یا پیامهای دیگر programs/thread تعیین میشه. Node.js از این پارادایم به طور گسترده برای مدیریت کارآمد عملیات های ناهمزمان استفاده میکنه.
اما این پارادایم چجوری کار میکنه؟ 🪲
به صورت کلی Event-Driven Programming در Node.js برای ساخت برنامه های مقیاس پذیر، کارآمد و real-time خوب و قدرتمنده. در صورت تمایل برای کسب اطلاعات بیشتر، مقالات زیر رو میتونید مطالعه کنید.
- Article
- Article
- Article
#nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👌3
97 نکته و موردی که هر دولوپر باید از اونها اطلاع داشته باشه 🦦
ریپازیتوری زیر بر اساس کتاب 97 Things Every Programmer Should Know project، ۹۷ چیز یا نکته به درد بخور برای دولوپرا رو ترجمه و لیست کرده. پیشنهاد میکنم از دست ندید.
🌪 Repository
#tips
@CodeModule
ریپازیتوری زیر بر اساس کتاب 97 Things Every Programmer Should Know project، ۹۷ چیز یا نکته به درد بخور برای دولوپرا رو ترجمه و لیست کرده. پیشنهاد میکنم از دست ندید.
#tips
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
97-things-every-programmer-should-know/fa at master · 97-things/97-things-every-programmer-should-know
Pearls of wisdom for programmers collected from leading practitioners. - 97-things/97-things-every-programmer-should-know
🔥9⚡4
پروتکل TCP چیه؟ ⚙
TCP (Transmission Control Protocol) یکی از پروتکلهای اصلی در مجموعه پروتکلهای اینترنتی (Internet Protocol Suite) هست که برای انتقال دادهها بین دستگاهها، در شبکههای مختلف مورد استفاده قرار میگیره. TCP اطمینان حاصل میکنه که دادهها به صورت صحیح و بدون خطا از مبدأ به مقصد انتقال پیدا کنن. این پروتکل از مکانیزمهایی مانند تصحیح خطا، ترتیبدهی بستهها و کنترل جریان برای ارائه یک ارتباط قابل اعتماد استفاده میکنه.
کاربردهای TCP در Node.js🤟
در نودجیاس، TCP به عنوان یک پروتکل پایهای برای ساخت سرور و کلاینتهای شبکه استفاده میشه. با استفاده از ماژول net در Node.js، میشه به راحتی سرورهای TCP و کلاینتهای TCP ساخت. این ماژول امکان ارتباطات همزمان و با کارایی بالا رو فراهم میکنه و برای کاربردهایی مانند چت سرورها، انتقال فایل، و هر نوع ارتباط real-time بین دستگاهها بسیار مناسبه.
به عنوان مثال میتونیم با استفاده از ماژول net به این صورت یک سرور TCP بسازیم:
به صورت کلی پروتکل TCP یک ابزار قدرتمند و مطمئن برای انتقال دادهها در شبکههای مختلف هست، که این برای دولوپر ها بسیار مفیده. استفاده از TCP در Node.js میتونه به بهبود عملکرد و قابلیت اطمینان برنامههای شبکهای کمک کنه. برای کسب اطلاعات بیشتر مقالات زیر رو پیشنهاد میکنم.
- Article
- Article
- Article
#nodejs #tcp
@CodeModule
TCP (Transmission Control Protocol) یکی از پروتکلهای اصلی در مجموعه پروتکلهای اینترنتی (Internet Protocol Suite) هست که برای انتقال دادهها بین دستگاهها، در شبکههای مختلف مورد استفاده قرار میگیره. TCP اطمینان حاصل میکنه که دادهها به صورت صحیح و بدون خطا از مبدأ به مقصد انتقال پیدا کنن. این پروتکل از مکانیزمهایی مانند تصحیح خطا، ترتیبدهی بستهها و کنترل جریان برای ارائه یک ارتباط قابل اعتماد استفاده میکنه.
کاربردهای TCP در Node.js
در نودجیاس، TCP به عنوان یک پروتکل پایهای برای ساخت سرور و کلاینتهای شبکه استفاده میشه. با استفاده از ماژول net در Node.js، میشه به راحتی سرورهای TCP و کلاینتهای TCP ساخت. این ماژول امکان ارتباطات همزمان و با کارایی بالا رو فراهم میکنه و برای کاربردهایی مانند چت سرورها، انتقال فایل، و هر نوع ارتباط real-time بین دستگاهها بسیار مناسبه.
به عنوان مثال میتونیم با استفاده از ماژول net به این صورت یک سرور TCP بسازیم:
var net = require('net');
var server = net.createServer(function(socket) {
socket.write('Echo server\r\n');
socket.pipe(socket);
});
server.listen(1337, '127.0.0.1');
به صورت کلی پروتکل TCP یک ابزار قدرتمند و مطمئن برای انتقال دادهها در شبکههای مختلف هست، که این برای دولوپر ها بسیار مفیده. استفاده از TCP در Node.js میتونه به بهبود عملکرد و قابلیت اطمینان برنامههای شبکهای کمک کنه. برای کسب اطلاعات بیشتر مقالات زیر رو پیشنهاد میکنم.
- Article
- Article
- Article
#nodejs #tcp
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🔥3
خروجی کد بالا؟ 🤔
Anonymous Quiz
22%
8
14%
12
13%
6
17%
13
33%
نمیدونم، رو آیکون لامپ کلیک میکنم تا متوجه بشم💡
⚡8🔥6👌3
الگو دکوراتور چیه؟ 🤔
در برنامهنویسی شیگرا، الگوی دکوراتور یک الگوی طراحی(design pattern) هست که اجازه میده رفتار جدیدی به یک شیء خاص به صورت پویا اضافه بشه، بدون اینکه بر رفتار سایر اشیاء از همان کلاس تأثیر بزاره. این الگو به اصل مسئولیت تک (Single Responsibility Principle) پایبنده، چون امکان تقسیم وظایف بین کلاسهای مختلف رو فراهم میکنه و همچنین به اصل باز-بسته (Open-Closed Principle) کمک میکنه، چون میتونه کارکرد کلاسها رو بدون تغییرشون افزایش بده.
توجه داشته باشید این الگو با دکوراتور ها در پایتون یکی نیست ‼️
برای درک بهتر با هم یک مثال میزنیم. فرض کنید که در یک کافیشاپ قهوه سفارش میدید. حالا چطور الگوی دکوراتور رو میتونیم ببینیم؟
* هسته: درواقع قهوه شما جزء اصلی هست و فرقی نداره چه قهوه ای باشه.
* دکوراتورها: ممکنه بخوایید به قهوه خودتون اجزای مختلفی اضافه کنید، که به عنوان دکوراتور عمل میکنن. به عنوان مثال این دکوراتور:
حالا شما به عنوان مشتری، با انتخاب و ترکیب دکوراتورها تصمیم میگیرید قهوه خودتون رو چجوری درست کنید. مثلا شما ممکنه کمی نیاز به شیر داشته باشید، پس از MilkDecorator استفاده میکنید.
برخی از ویژگی های این الگو⬇️
🔵 نگهداری آسونتر: هسته اصلی برنامه بدون تغییر باقی میمونه، که نگهداری و درک کد رو آسونتر میکنه.
🔵 پایبندی به اصل باز-بسته: میتونید عملکردهای جدیدی به برنامه اضافه کنید بدون اینکه کدهای موجود رو تغییر بدین.
🔵 پایبندی به اصل مسئولیت تک: با تقسیم وظایف به کلاسهای کوچکتر و مستقل، کد رو قابل فهمتر و قابل مدیریتتر میکنه.
به صورت کلی الگوی دکوراتور، یکی از الگوهای مهم و معروف در زمینهٔ طراحی نرمافزاره که به عنوان یک الگوی ساختاری (Structural Pattern) در الگوهای طراحی GoF شناخته میشه. این الگو اهمیت زیادی در توسعهی نرمافزار داره، پس پیشنهاد میکنم برای درک بهترش مقالات زیر رو بخونید.
- Article
- Article
- Article
#design_pattern
@CodeModule
در برنامهنویسی شیگرا، الگوی دکوراتور یک الگوی طراحی(design pattern) هست که اجازه میده رفتار جدیدی به یک شیء خاص به صورت پویا اضافه بشه، بدون اینکه بر رفتار سایر اشیاء از همان کلاس تأثیر بزاره. این الگو به اصل مسئولیت تک (Single Responsibility Principle) پایبنده، چون امکان تقسیم وظایف بین کلاسهای مختلف رو فراهم میکنه و همچنین به اصل باز-بسته (Open-Closed Principle) کمک میکنه، چون میتونه کارکرد کلاسها رو بدون تغییرشون افزایش بده.
برای درک بهتر با هم یک مثال میزنیم. فرض کنید که در یک کافیشاپ قهوه سفارش میدید. حالا چطور الگوی دکوراتور رو میتونیم ببینیم؟
* هسته: درواقع قهوه شما جزء اصلی هست و فرقی نداره چه قهوه ای باشه.
* دکوراتورها: ممکنه بخوایید به قهوه خودتون اجزای مختلفی اضافه کنید، که به عنوان دکوراتور عمل میکنن. به عنوان مثال این دکوراتور:
* MilkDecorator: شیر رو به قهوه شما اضافه میکنه.
* SugarDecorator: شکر رو به قهوه شما اضافه میکنه.
* SyrupDecorator: شربت های طعم دار رو اضافه میکنه.
حالا شما به عنوان مشتری، با انتخاب و ترکیب دکوراتورها تصمیم میگیرید قهوه خودتون رو چجوری درست کنید. مثلا شما ممکنه کمی نیاز به شیر داشته باشید، پس از MilkDecorator استفاده میکنید.
برخی از ویژگی های این الگو
به صورت کلی الگوی دکوراتور، یکی از الگوهای مهم و معروف در زمینهٔ طراحی نرمافزاره که به عنوان یک الگوی ساختاری (Structural Pattern) در الگوهای طراحی GoF شناخته میشه. این الگو اهمیت زیادی در توسعهی نرمافزار داره، پس پیشنهاد میکنم برای درک بهترش مقالات زیر رو بخونید.
- Article
- Article
- Article
#design_pattern
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7⚡3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9
با این ابزار خلاقیت رو به اوج برسون 🚀
Bennett Feely یک وبسایت هست که ابزارهای خلاقانه و کاربردی بهتون ارائه میده، که با استفاده از این ابزارها میتونید به سادگی و بدون نیاز به دانش تخصصی، ایدههای خودتون رو به واقعیت تبدیل کنید.
برخی از ابزارهای Bennett Feely⬇️
* ztext.js: تایپوگرافی 3 بعدی رو به هر وبسایت و فونت دلخواهی اضافه کنید.
* CSS Scales: این ابزار به شما امکان میده مقیاسهای رنگی رو از ColorBrewer و van der Walt، Smith و Firing به صورت گرادیانت دریافت کنید.
* CSS Pie Chart: با استفاده از گرادیانتهای مخروطی، نمودارهای دایرهای رو به سادگی بسازید.
علاوه بر اینا، ابزار های مختلف دیگه ای هم داره که در توسعه پروژهها بهتون کمک میکنه. پیشنهاد میکنم یه سر به وبسایتش بزنید💀
#tools #css
@CodeModule
Bennett Feely یک وبسایت هست که ابزارهای خلاقانه و کاربردی بهتون ارائه میده، که با استفاده از این ابزارها میتونید به سادگی و بدون نیاز به دانش تخصصی، ایدههای خودتون رو به واقعیت تبدیل کنید.
برخی از ابزارهای Bennett Feely
* ztext.js: تایپوگرافی 3 بعدی رو به هر وبسایت و فونت دلخواهی اضافه کنید.
* CSS Scales: این ابزار به شما امکان میده مقیاسهای رنگی رو از ColorBrewer و van der Walt، Smith و Firing به صورت گرادیانت دریافت کنید.
* CSS Pie Chart: با استفاده از گرادیانتهای مخروطی، نمودارهای دایرهای رو به سادگی بسازید.
علاوه بر اینا، ابزار های مختلف دیگه ای هم داره که در توسعه پروژهها بهتون کمک میکنه. پیشنهاد میکنم یه سر به وبسایتش بزنید
#tools #css
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🔥2