Forwarded from Ditty | دیتی
🔺الگوی طراحی Abstract Factory به زبان #ساده
- اگه کدهایی دارین که پر از if/else و new هست، شاید این الگو برای شما باشه
- این الگو با مخفی کردن قسمتهای ساختن اشیا از دید کاربر، کمک میکنه تا کدهای تمیزتر و قابل توسعهتری داشته باشیم 👌
- برای آشنایی با این الگو این پست رو بخونید:
ditty.ir/304
#oop
- اگه کدهایی دارین که پر از if/else و new هست، شاید این الگو برای شما باشه
- این الگو با مخفی کردن قسمتهای ساختن اشیا از دید کاربر، کمک میکنه تا کدهای تمیزتر و قابل توسعهتری داشته باشیم 👌
- برای آشنایی با این الگو این پست رو بخونید:
ditty.ir/304
#oop
ditty.ir
الگوهای طراحی به زبان ساده - Abstract Factory
با این الگو میتونیم کدهایی انعطافپذیر و با قابلیت توسعه بالا داشته باشیم
Forwarded from Ditty | دیتی
🔺الگوی طراحی Builder به زبان #ساده
- اگه آبجکتهایی داریم که مراحل ساخت پیچیدهای دارن، از این الگو استفاده میکنیم
- یکی از معروفترین پیادهسازیهای این الگو، Query Builder ها هست که توی بیشتر زبانها و فریمورکها وجود داره و برای ساختن دستورات SQL استفاده میشه
- توی این پست با این الگو آشنا میشیم و یاد میگیریم که چطوری یک Query Builder ساده بسازیم:
ditty.ir/305
#oop
- اگه آبجکتهایی داریم که مراحل ساخت پیچیدهای دارن، از این الگو استفاده میکنیم
- یکی از معروفترین پیادهسازیهای این الگو، Query Builder ها هست که توی بیشتر زبانها و فریمورکها وجود داره و برای ساختن دستورات SQL استفاده میشه
- توی این پست با این الگو آشنا میشیم و یاد میگیریم که چطوری یک Query Builder ساده بسازیم:
ditty.ir/305
#oop
ditty.ir
الگوهای طراحی به زبان ساده - Builder
اگه قصد داریم یک آبجکت پیچیده رو مرحله به مرحله بسازیم این الگو به کار ما میاد
Forwarded from Ditty | دیتی
🔺توی #لاراول چطوری آدرسهایی با امنیت بالاتر داشته باشیم؟
- فرض کنیم برای لغو اشتراک ایمیل کاربر شماره ۹۰ آدرسی داریم به صورت زیر:
- با Signed URLs لاراول میتونیم بدون احتیاج به احراز هویت جلوی این کار رو بگیریم 👌
ـ Signed URLs لاراول به زبان ساده:
https://ditty.ir/306
#laravel 💯
- فرض کنیم برای لغو اشتراک ایمیل کاربر شماره ۹۰ آدرسی داریم به صورت زیر:
example.com/unsubscribe/90
- این لینک به صورت عمومی در دسترس هست و این کاربر میتونه با عوض کردن شناسه ۹۰ با ۸۹، اشتراک کاربر شما ۸۹ رو هم لغو کنه!- با Signed URLs لاراول میتونیم بدون احتیاج به احراز هویت جلوی این کار رو بگیریم 👌
ـ Signed URLs لاراول به زبان ساده:
https://ditty.ir/306
#laravel 💯
ditty.ir
آدرسهای امن با Signed URLs لاراول
با این ویژگی میتونیم URL هایی با امنیت بالاتری داشته باشیم
Forwarded from Ditty | دیتی
🔺اعتبارسنجی تاریخها در #لاراول
- اگه توی برنامه تاریخهایی داریم و میخوایم اونها رو اعتبارسنجی کنیم، لاراول امکانات #جالبی رو در اختیار ما گذاشته تا راحتتر از همیشه این کار رو انجام بدیم 👌
- توی این پست با چند تا از این قوانین آشنا میشیم:
ditty.ir/127
#laravel
- اگه توی برنامه تاریخهایی داریم و میخوایم اونها رو اعتبارسنجی کنیم، لاراول امکانات #جالبی رو در اختیار ما گذاشته تا راحتتر از همیشه این کار رو انجام بدیم 👌
- توی این پست با چند تا از این قوانین آشنا میشیم:
ditty.ir/127
#laravel
ditty.ir
اعتبارسنجی تاریخها در لاراول
با انواع روشهای اعتبارسنجی یک تاریخ توی لاراول آشنا میشیم
Forwarded from Ditty | دیتی
🔺الگوی طراحی Prototype به زبان #ساده
- با این الگو میتونیم تمیزتر و بهینهتر، از آبجکتهای موجود کپی داشته باشیم
- از این الگو زمانی استفاده میکنیم که:
— ساختن نمونه از کلاس هزینه زیادی داره
— آمادهسازی و پیکربندی نمونه زمانبر هست
— کلاس واقعی برای ساختن نمونه ناشناخته هست
- از لینک زیر با این الگو که درک و پیادهسازی کاملاً راحتی داره آشنا بشین:
https://ditty.ir/p/X8dLX
#oop
- با این الگو میتونیم تمیزتر و بهینهتر، از آبجکتهای موجود کپی داشته باشیم
- از این الگو زمانی استفاده میکنیم که:
— ساختن نمونه از کلاس هزینه زیادی داره
— آمادهسازی و پیکربندی نمونه زمانبر هست
— کلاس واقعی برای ساختن نمونه ناشناخته هست
- از لینک زیر با این الگو که درک و پیادهسازی کاملاً راحتی داره آشنا بشین:
https://ditty.ir/p/X8dLX
#oop
ditty.ir
الگوهای طراحی به زبان ساده - Prototype
با این الگو میتونیم به راحتی از نمونههای موجود کپی داشته باشیم بدون اینکه از کلاس اصلی اونها آگاه باشیم و کدهامون رو به کلاسها وابسته کنیم
Forwarded from Ditty | دیتی
🔺الگوی طراحی Singleton به زبان #ساده
- این الگو این اطمینان رو میده که فقط یک نمونه از یک کلاس خاص در سرتاسر برنامه وجود داشته باشه و راهی رو ارائه میده تا بتونیم به همون نمونه دسترسی داشته باشیم
- این الگو یکی از پراستفادهترین و همچنین #بحثبرانگیز ترین الگوهاست
- از این الگو زمانی استفاده میکنیم که:
— ساختن نمونه هزینه زیادی داره و میخوایم مطمئن بشیم که فقط یک نمونه از کلاس در سراسر برنامه وجود داره
- از لینک زیر با این الگو آشنا بشین:
ditty.ir/320
#oop
- این الگو این اطمینان رو میده که فقط یک نمونه از یک کلاس خاص در سرتاسر برنامه وجود داشته باشه و راهی رو ارائه میده تا بتونیم به همون نمونه دسترسی داشته باشیم
- این الگو یکی از پراستفادهترین و همچنین #بحثبرانگیز ترین الگوهاست
- از این الگو زمانی استفاده میکنیم که:
— ساختن نمونه هزینه زیادی داره و میخوایم مطمئن بشیم که فقط یک نمونه از کلاس در سراسر برنامه وجود داره
- از لینک زیر با این الگو آشنا بشین:
ditty.ir/320
#oop
ditty.ir
الگوهای طراحی به زبان ساده - Singleton
این الگو به ما این اطمینان رو میده که فقط یک نمونه از یک کلاس خاص در سرتاسر برنامه وجود داشته باشه و راهی رو ارائه میده تا بتونیم به همون نمونه دسترسی داشته باشیم
Forwarded from Ditty | دیتی
🔺نمایش مرتب روتها در #لاراول
- قبلاً دستور
- پکیج
- Installation:
#laravel
- قبلاً دستور
route:list
توی خط فرمان، خروجیای رو تولید میکرد که نقض حقوق بشر به حساب میاومد :))- پکیج
pretty-routes
رو نصب کنین تا خیلی بهتر و خواناتر لیستی از همه روتهای برنامه رو داشته باشین- Installation:
composer require wulfheart/pretty_routes
- Usage:php artisan route:pretty
اطلاعات بیشتر#laravel
Forwarded from Ditty | دیتی
🔺الگوی طراحی Adapter به زبان #ساده
- با این الگو میتونیم توی برنامه از کلاسهایی که نوع و اینترفیس ناسازگار دارن استفاده کنیم، بدون اینکه کدی رو تغییر بدیم
- مثلاً میخوایم از کلاسهای چند کتابخونه خارجی استفاده کنیم که همگی نحوه پیادهسازی و استفاده متفاوتی دارن. به جای اینکه کدهای برنامه و یا ساختار کلاسها رو تغییر بدیم، کافیه از Adapter استفاده کنیم 👌
- از لینک زیر با این الگو آشنا بشین:
ditty.ir/322
#oop
- با این الگو میتونیم توی برنامه از کلاسهایی که نوع و اینترفیس ناسازگار دارن استفاده کنیم، بدون اینکه کدی رو تغییر بدیم
- مثلاً میخوایم از کلاسهای چند کتابخونه خارجی استفاده کنیم که همگی نحوه پیادهسازی و استفاده متفاوتی دارن. به جای اینکه کدهای برنامه و یا ساختار کلاسها رو تغییر بدیم، کافیه از Adapter استفاده کنیم 👌
- از لینک زیر با این الگو آشنا بشین:
ditty.ir/322
#oop
ditty.ir
الگوهای طراحی به زبان ساده - Adapter
با این الگو میتونیم بدون مشکل با آبجکتهایی که اینترفیسهای متفاوتی دارن کار کنیم
Forwarded from Ditty | دیتی
🔺یک ویژگی جالب به #لاراول 8.51 اضافه شده به اسم Conditional Classes
- توی فایلهای Blade با استفاده از یک Directive جدید به اسم
- این Directive یک ورودی به صورت آرایه key/value میگیره که شامل کلاسهای مد نظر هست. مقدار key اسم کلاس مد نظر و مقدار value یک عبارت بولین هست
- کلاس مد نظر فقط زمانی نشون داده میشه که مقدار value برابر با true باشه
- همچنین اگه عضو آرایه بدون key باشه، (مثل p-4) کلاس مد نظر برای ما نمایش داده میشه
- خط آخر عکس، خروجی چیزی که تولید میشه هست
#laravel
- توی فایلهای Blade با استفاده از یک Directive جدید به اسم
class@
میتونیم نمایش کلاسهای یک المنت رو کنترل کنیم- این Directive یک ورودی به صورت آرایه key/value میگیره که شامل کلاسهای مد نظر هست. مقدار key اسم کلاس مد نظر و مقدار value یک عبارت بولین هست
- کلاس مد نظر فقط زمانی نشون داده میشه که مقدار value برابر با true باشه
- همچنین اگه عضو آرایه بدون key باشه، (مثل p-4) کلاس مد نظر برای ما نمایش داده میشه
- خط آخر عکس، خروجی چیزی که تولید میشه هست
#laravel
Forwarded from Ditty | دیتی
🔺الگوی طراحی Composite به زبان #ساده
- این الگو کمک میکنه تا بتونیم با گروهی از آبجکتها که نوعهای مختلفی دارن، اما باید به شکل یک ساختار درختی کنار هم قرار بگیرن، طوری کار کنیم که انگار همگی نوعهای یکسانی دارن
- برای مثال یک ساختار درختی از اعضای یک سازمان داریم که شامل بخشها و اعضای مختلفی مثل مدیران عامل، بخش فنی و نیروهای مربوط به هر بخش میشه
- قطعاً توی این ساختار درختی هر عضو و بخشی ممکنه نوع تفاوتی داشته باشه و اگه بخوایم روی این ساختار کارهایی رو انجام بدیم (مثلاً نمایش حقوق اعضا، اطلاعات هر عضو و بخش، درآمد و ...) نیاز داریم تا با اعضا و بخشها طوری رفتار کنیم که انگار همگی نوعهای یکسانی دارن
- توی پست زیر یاد میگیریم که چطوری این کار رو با الگوی Composite انجام بدیم:
ditty.ir/414
#oop 💯
- این الگو کمک میکنه تا بتونیم با گروهی از آبجکتها که نوعهای مختلفی دارن، اما باید به شکل یک ساختار درختی کنار هم قرار بگیرن، طوری کار کنیم که انگار همگی نوعهای یکسانی دارن
- برای مثال یک ساختار درختی از اعضای یک سازمان داریم که شامل بخشها و اعضای مختلفی مثل مدیران عامل، بخش فنی و نیروهای مربوط به هر بخش میشه
- قطعاً توی این ساختار درختی هر عضو و بخشی ممکنه نوع تفاوتی داشته باشه و اگه بخوایم روی این ساختار کارهایی رو انجام بدیم (مثلاً نمایش حقوق اعضا، اطلاعات هر عضو و بخش، درآمد و ...) نیاز داریم تا با اعضا و بخشها طوری رفتار کنیم که انگار همگی نوعهای یکسانی دارن
- توی پست زیر یاد میگیریم که چطوری این کار رو با الگوی Composite انجام بدیم:
ditty.ir/414
#oop 💯
ditty.ir
الگوهای طراحی به زبان ساده - Composite
با این الگو میتونیم با یک آبجکت و یا گروهی از آبجکتهای مشابه به طور یکسان کار کنیم
Forwarded from Ali
یک ویژگی جالب به لاراول ۸.۵۷ اضافه شده برای اینکه بتونیم کوئریهایی که برای Relation ها مینوسیم رو کوتاهتر کنیم 👌
Forwarded from Ditty | دیتی
🔺الگوی طراحی Decorator به زبان #ساده
- از این الگو زمانی استفاده میکنیم که میخوایم به آبجکتها ویژگی اضافه کنیم یا رفتار اونها رو تغییر بدیم
- در واقع با این الگو میتونیم به آبجکتهای موجود، در زمان اجرای کد (Run-time) ویژگی اضافه کنیم. بدون اینکه مجبور باشیم کلاسهای اونها رو دستکاری کنیم و یا زیرکلاس بسازیم
- این الگو کاربرد زیاد و پیادهسازی راحتی داره که توی این قسمت با اون آشنا میشیم:
https://ditty.ir/p/5dPv5
#oop 💯
- از این الگو زمانی استفاده میکنیم که میخوایم به آبجکتها ویژگی اضافه کنیم یا رفتار اونها رو تغییر بدیم
- در واقع با این الگو میتونیم به آبجکتهای موجود، در زمان اجرای کد (Run-time) ویژگی اضافه کنیم. بدون اینکه مجبور باشیم کلاسهای اونها رو دستکاری کنیم و یا زیرکلاس بسازیم
- این الگو کاربرد زیاد و پیادهسازی راحتی داره که توی این قسمت با اون آشنا میشیم:
https://ditty.ir/p/5dPv5
#oop 💯
دیتی | Ditty.ir
الگوهای طراحی به زبان ساده - Decorator
با این الگو میتونیم به صورت داینامیک ویژگیهایی رو به یک آبجکت اضافه کنیم بدون اینکه مجبور باشیم کلاس اون رو دستکاری کنیم