علی فارمد | Ali Farmad

چرا فریمورک ؟

دعوای همیشگی برنامه نویس ها

یک جدل و بحث همیشگی که بین برنامه نویس ها دیدم اینه که برخی از اونها اعتقاد دارن فقط باید از فریمورک استفاده کرد و برخی دیگه فقط به کدها و ساختار برنامه نویسی خودشون معتقد هستند ، البته من خودم از دسته اول هستم :) و فکر میکنم دسته دوم قالبا کسانی هستند که تجربه عملی و واقعی (اجرای یک پروژه) با فریمورک خوب رو نداشتند !

هرچند این دعوا اینجا تموم نمیشه و بعد تازه این موضوع که کدوم فریمورک بهترین هست مطرح میشه !

فریمورک چیست ؟

Framework رو به فارسی “چهارچوب” معنی کردند ، در دنیای برنامه نویسی هم به صورت کلی همین معنی رو میده ،  یک چهارچوب و ساختار کلی برای برنامه نویسی که  کدنویس  رو ملزم میکنه در داخل این ساختار ها حرکت کند و کد بنویسد .

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

نکته مهم : هر فریمورکی به دنبال یک تحقق اهدافی خاص و با رویکردی خاص طراحی میشه .

چرا باید از فریمورک استفاده کنیم ؟

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

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

خوبی این که یک برنامه یا مشورت گروهی از برنامه نویسان نوشته و توسعه داده بشود هم دیگه نیازی به توضیح نداره .

اختراع دوباره چرخ :) یکی از کارکرد های فریمورک ها اینه که با داشتن کتابخانه ها و توابع پرکاربرد و استاندارد باعث می شوند شما وقت و تمرکز رو بروی اصل برنامه بگذارید و از این ابزارهای آماده استفاده کنید تا کار خیلی سریعتر پیش برود .

کار تیمی – اگر به دنبال کار تیمی هستید فریمورک شاید تنها راه استاندارد و بهینه باشه ، تصور کنید اعضای تیم برنامه نویسی شما هر کدام بخواهد با روش خودش برنامه را پیاده کند ! و یا یکی از اعضا از تیم جدا بشود و یا افراد جدیدی به تیم اضافه شوند ، با این حساب اگر هر یک از آنها با فریمورکی که شما به کار برده اید آشنا باشند تمام قواعد و چهارچوب های اصلی را میدانند و به سرعت می توانند به توسعه برنامه شما کمک کنند ولی در غیر این صورت شما با یک مشکل جدی رو بروی خواهید بود ، افرادی که نمی دانند شما چطور برنامه را نوشته اید و از چه منطقی استفاده کرده اید (در برخی مواقع خود شما هم به دلیل نبود مستندات کافی شاید ندانید دقیقا چه چیزهایی اتفاق افتاده) و توسعه چنین برنامه ای کار بسیار دشواری است .

با توجه به نکته بالا اگر شما به فریمورک ها مسلط باشید موقعیت ها و پیشنهادات کاری بهتری خواهید داشت .

MVC

برای نوشتن برنامه هم مثل خیلی چیزهای دیگر استاندارد و مدل وجود دارد . از مشهور ترین مدل ها میتوانم MVC را نام ببرم که بسیاری از فریمورک ها هم از همین مدل برای پیاده سازی استفاده کرده اند . MVC مخفف Model View Controller است . در این مدل برنامه به سه بخش اصلی تقسیم میشود ، Model ها که رابط دیتابیس و برنامه هستند ، View ها که قسمت خروجی برنامه که معمولا کاربر با آن سر و کار دارد را تشکیل میدهند و Controller که به درخواست ها رسیدگی میکند و منطق و توابع برنامه رو در خود جای میدهد .

البته مدل های دیگری هم وجود داشته و دارند مثل PAC ،  HMVC و … که در قبل و بعد از MVC مطرح شده و بکار گرفته شده اند .

کدام فریمورک بهترین است ؟!

جواب : همه – هیچ کدام :)

همونطور که گفتم هر فریمورک با یک رویکرد خاص طراحی میشه ، مثلا یکی از اونها بدنبال سرعت و دیگری دنبال سبک بودن ، جامع بودن و اهداف دیگری هستند .

پس مقایسه دو فریمورک که هرکدام با هدفی متفاوت ساخته شده اند از پایه اشتباه است و مثل این میمونه که ما یک مرسدس کلاس e رو با یک هامر (Hummer) مقایسه کنیم و نتیجه بگیریم کدوم بهتره :)

البته برخی چیزها به عنوان ویژگی و امتیاز میتونیم برای هر فریمورک در نظر بگیرم مثل جامعه یا Community که با این فریمورک دارند کار میکنند ، تعداد افزونه ها و پلاگین های منتشر شده برای فریمورک ، انجمن های گفتگوی فعال ، مستندات و Document های بیشتر  و …

فریمورک های PHP

برخی از معروفترین فریمورک های PHP عبارتند از :

کدام فریمورک را انتخاب کنم ؟

با یک جستجوی ساده در اینترنت تعداد زیادی از بنچمارک ها (Benchmark) رو میتونید پیدا کنید که نتایج اونها بعضا کاملا متفاوت هست ، و شاید بیشتر شما رو گیج کنه .

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

فقط هر انتخابی که کردید متعصب نباشید ، همه فریمورک ها مزیت ها و ویژگی های قابل توجهی نسبت به سایرین دارند ، مهم اینست که شما بروی فریمورکی که انتخاب میکنید مسلط باشید و وقتی این اتفاق بیافتد شما تغریبا هر کاری را می توانید با فریمورکتان پیاده کنید .

من در حال حاضر از فریمورک کیک-پی اچ پی (Cakephp) استفاده می کنم و خیلی راضیم و به شما هم پیشنهاد میکنم حتما یک گاز از کیک بزنید ;) در ضمن کیک پی اچ پی یک انجمن فارسی فعال و خوب هم داره که میتونه کمک خیلی بزرگی به شما بکنه : cakephp.ir

 

 

موضوعات : برنامه نویسی

CDN های رایگان برای وب »

2 نظرات

  1. ایول خدایی خیلی عالی توضیح دادی … متچکرم خیلی زیااااااد ;-)

  2. سلام خسته نباشید
    من هم از yii استفاده میکنم …عالی هست و کد نویسی و سرعت عمل در انجام پروژه فوق اعاده عالی هست .

پاسخ دهید

آدرس ایمیل شما منتشر نخواهد شد .

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

طراحی قالب توسط Anders Norénبالا ↑

کپی راست © 2017 علی فارمد | Ali Farmad