شادمهر وثیقی -

برنامه نویس و دانشجوی مهندسی برق

مختصری از زندگی من :)

شادمهر وثیقی

شیوه ای بهتر برای تعریف route ها در لاراول

در حالت عادی میتوانیم به شکل زیر یک route را تعریف کنیم. Route::get('my-route', 'MyController@index');زمان بسیار زیادیست که این شیوه توانسته route های ما را مدیریت کند. ولی در اپلیکیشن های جدیدتر لاراول این امکان وجود دارد که به شیوه ای جدید و کارآمد این تعریف را با کمک یک tuple انجام دهید.(اطلاعات بیشتر) Route::get('my-route', [\App\Http\Controllers\SomeController::class, 'index']); همچنین میتوان با یکبار import کردن namespace استفاده از این شیوه را ساده تر و سریع تر کرد. use App\Http\Controllers\SomeController;Route::get('my-route', [SomeController::class, 'index']); در اپلیکیشن هایی که در دنیای واقعی توسعه میدهیم احتمالا از use های زیادی استفاده خواهیم کرد که ممکن است برنامه را شلوغ و مدیریت آن را سخت تر کند. البته با داشتن یک ide خوب این مشکل اجتناب پذیریست. یادتون نره که برای استفاده از این شیوه باید RouteServiceProvider را از لیست namespace هایی که use کردیم خارج کنیم تا لاراول به صورت دلخواه پسوند \App\Http\Controllers را به کنترلر های ما نچسباند مزایای استفاده از این شیوه: البته در redirect کردن ها نیز میتوان از این tuple با کمک متد action استفاده کرد. namespace App\Http\Controllers;class SomeController{ public function someMethod() { // do some funny stuff ... return redirect->action([MyOtherController::class, 'index']); }}اگر از کنترلر های تک متده یا invokeable (اگر معادل درستی براش میدونید تو…

ادامه ...
شادمهر وثیقی

دیزاین پترن ها در php - singleton

singleton چه جاهایی کاربرد داره؟

در مهندسی نرم افزار singleton برای محدود کردن تعداد اشیا موجود از کلاس به دقیقا یک عدد است.این مفهوم برای نرم افزارهایی استفاده میشود که وجود یک آبجکت درآن به دقت بیشتر و کاربرد بهترمنجر میشود.

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

این پترن برای جلوگیری از ایجادِ بیشتر از یک شی، در یک کلاس است. گاها در کلاس هایی مثل logger نیاز میشود اجازه ندهیم بیشتر از یک شی ایجاد شود(به جهت جلوگیری از کانفلیکت دو شیِ این کلاس). این نوعِ طراحی اجازه میدهد کلاس باید به گونه ای طراحی شود که جلوی ایجاد هر شی دیگری را بگیرد..

نحوه استفاده از singleton

ادامه ...
شادمهر وثیقی

آموزش وبلاگ نویسی - برنامه ریزی منسجم برای وبلاگ (قسمت دوم بخش اول)

تو قسمت قبلی به طور کلی پرداختیم درمورد انواع وبلاگ ها و بهترین و شیوه پیدا کردن مناسب ترین نوع وبلاگ برای هر شخص. در این قسمت قصد داریم اهدافی که در قسمت قبل پیدا کردیم را نهایی سازی کنیم و برای مسیر طولانی که در پیش داریم بهش جزئیات اضافه کنیم و مستندسازی کنیم.2.1 یافتن زمینه اصلی وبلاگاگه قراره وبلاگ تخصصی تر راه بندازیدبرای این کار یه تمرین جالب و ساده وجود داره که مرحله به مرحله پیش میریم.یک زمینه خاصی که در آن تخصص دارید را انتخاب کنید.سعی کنید سریعا ده پست اولی را که میتوانید در وبلاگتان منتشر کنید را لیست کنید.در مرحله دوم نیازی نیست که مقالات را بنویسید، فقط لیست کنید. این کار برای بررسی این است که در این زمینه دانش کافی را دارید و با مسائل روز این زمینه آشنا هستید یا نه. چطور پیشرفت؟ خسته کننده بود؟ اگه آره، همین الان این موضوع رو رها کن و برو سراغ بعدی، چون قراره این کار را برای دهه ها انجام بدی.اگر موضوعی که انتخاب میکنید در یکی موضوعی خیلی ریز و تخصصی شده باشد خطر این نیز وجود دارد که بعدها دیگر موضوعی برای نوشتن درباره اش نداشته باشید.اگه قراره وبلاگ عمومی راه…

ادامه ...
شادمهر وثیقی

اولین قدم وبلاگ نویسی - تصمیمات حیاتی (قسمت اول)

چه وبلاگی میخوای راه بندازی؟ باید تمام تلاشتو بکنی تا اولین قدمی که برمیداری صحیح باشه چون قراره کل پروسه وبلاگ نویسی و زمانی که بهش اختصاص میدی رو تحت تاثیر بزاره 1.1 تیمی یا انفرادی؟ شاید شما تا الان هم به این نتیجه رسیده باشید که قراره وبلاگتونو تنهایی پیش ببرید. این انتخاب بین وبلاگ نویسا رایجه ولی ممکنه برای هدفی که شما دارید وبلاگ تیمی گزینه بهتری باشه.پس بهتره برای شروع به نقاط ضعف و قوت هر دو گونه از وبلاگ نویسی بپردازیم. فردی وبلاگ نویسی فردی به مراتب از وبلاگ نویسی به صورت تیمی راحت تره. به شما این امکانو میده که رییس باشید و بدون نظارت دیگران یا انتظاراتشون فقط به خلاقیت بپردازید. تیمی شروع وبلاگ نویسی تیمی دردسرهای شروع رو کم میکنه و شما تنها کسی نیستید که برای حل مشکلات پیش آمده باید تلاش کنه و قدرت مضاعفی در تصمیم گیری ها بهتون میده. ولی این مزایا با سختی هایی همچون هماهنگی اعضای تیم و ایجادمسئولیت بین اعضای تیم همراه است. باید برنامه ریزی دقیقی کنید که هریک از اعضا چه موضوعاتی و در چه روز هایی با چه شیوه نگارشی قراره پست کنه (که این قید کردنه میتونه از آزادی عمل هم کم…

ادامه ...