چارچوب های برنامه نویسی پی اچ پی مقایسه و انتخاب

توسط مجتبی بنائی - جمعه 14 خرداد 1389 - گروه : روزنوشت - مشاهده : 0
برچسب‌ها: #تخصصی‌نرم‌افزار #برنامه‌نویسی #تجربیات #تخصصی #وب

s: برنامه نویسی | تجربیات | تخصصی | وب قصد دارم تابستان امسال را روی یک کار تحت وب سرمایه گذاری کنم که با توجه به نیازسنجی که انجام داده ام احتمال موفقیتش خیلی بالاست . فعلاً به خود پروژه کاری ندارم اما مدتیست دنبال یک چهارچوب برنامه نویسی پی اچ پی می گردم. درست است که اکثر سایتهایی که آماده کرده ام به کمک سیستم مدیریت محتوای جوملا بوده است و حتی سال گذشته یک کامپوننت کامل مدیریت مدرسه هم برای جوملا نوشته ام ، اما چون سیستمهای مدیریت محتوا سیستمهای همه منظوره اند ، برای کاربردهای خاص مناسب نیستند و معمولاً کندتر از سیستم های تک منظوره اند. کامپونتتی که برای مدرسه در جوملا نوشتم ، مزیت مهمی که داشت مرا با دنیای برنامه نویسی سه لایه در وب یعنی مدل MVC آشنا کرد. مدلی که در آن کاربر با لایه بیرونی ( View ) ارتباط دارد، داده ها در لایه داده ( Model ) ذخیره می شوند و کنترل برنامه دست لایه ( Controller ) است. مدلی که به دلیل منطق پشت آن ، امروزه بسیار رایج شده است. برنامه هایی که در شرکت نیز کار می کنیم و غیر وبی هستند نیز به این شیوه کد نویسی می شوند. مزیت چهارچوب های برنامه نویسی این است که همه چیز در آنها پیش بینی شده است از قبیل امنیت ، کتابخانه های جاوا اسکریپت و کلی امکانات دیگر . دقیقاً مشابه چهارچوب دات نت که مجموعه ای از هزاران کلاس آماده شده مایکروسافت است و برنامه نویسی به کمک آنها بسیار راحت تر شده است. پس از جستجوهای زیاد به این چند مورد رسیدم : CakePHP (کیک پی اچ پی) Zend FrameWork Symfony (سیمفونی) CodeIgniter  (کدایگنایتر) Yii از بین اینها قبلاً نظرم روی CakePHP بود اما پس از بررسی متوجه شدم سرعت پزدازش صفحات در آن بالاست . چهارچوب Zend نیز به طور خاص برای برنامه نویسی سه لایه طراحی نشده است (هر چند شرکت اصلی توسعه دهنده پی اچ پی شرکت Zend است) Symfony هم مشابه CakePHP بود . بین دوتای آخر که از لحاظ سرعت و کارآیی طبق آزمایشات انجام شده مشابه هم بودند، CodeIgniter را به دلیل داشتن مستندات بیشتر انتخاب کردم (با یک جستجوی ساده در 4Shared سه تا کتاب جدید در مورد CodeIgniter پیدا کردم.) فعلا دارم روی این چهارچوب برنامه نویسی پی اچ پی کار می کنم (اما با جستجوی بیشتر نهایتاً سیمفونی را برای برنامه نویسی نهایی انتخاب کردم و اولین برنامه حرفه ای نوشته شده با آن که حدود یکسال از وقتم را گرفت تا بهار 91 به بازار عرضه خواهد شد.- نوروز 91) --------------------------------------------- توضیحی را بعد از دیدن کامنت ها ضروری میدانم که به مطلب فوق اضافه کنم انتخاب چهارچوب برنامه نویسی یا همان PHP Framework به نظرم علاوه بر مقیاس های مختلف ، می تواند سلیقه ای نیز باشد. مثلاً ممکن است یکی از دوستان شما که با Zend کار کرده باشد از مزایای آن برایتان تعریف کند و شما هم با کمی جستجو همان را انتخاب کنید یا خودم نمی دانم چرا اما از سایت کیک پی اچ پی خوشم آمده بود و قصد داشتم با آن کار کنم. توی بعضی از سایتها مانند تالار گفتگوی سایت ایران پی اچ پی مشاهده کردم که بعضی دوستان متعصبانه نظر داده اند یا بدون تحقیق کافی که مناسب بحثهای تخصصی نیست. به خاطر داشته باشید که امکانات اصلی هر چهارچوب برنامه نویسی تا حدود زیادی مانند بقیه است و اگر هم یکی فاقد امکان خاصی باشد سریعاً به آن اضافه خواهد شد مانند امکان ORM (تبدیل جداول بانک اطلاعاتی به کلاسهای متناظر در برنامه نویسی شئ گرا) که دوستان جزء ضعفهای کدایگنایتر دانسته اند در صورتی که در نسخه های جدید در قالب اکتیو رکورد تا حدود زیادی پیاده سازی شده است. بنابراین ملاکتان نقص امکانات یک چهارچوب نباشد و مثلاً مستندات خوب و راهنمای قابل استفاده بخصوص به زبان فارسی می تواند یک معیار خیلی خوب باشد که به نظر کیک پی اچ چی با داشتن یک سایت فارسی از بقیه در این زمینه جلوتر است. اما در مورد منابعی که در مورد مقایسه فریم ورک های پی اچ پی استفاده کردم : مقایسه فریم ورک های برنامه نویسی به صورت کلی در ویکی پدیا مقایسه چارت مانند امکانات چهارچوب ها - که به نظرم قدیمی است و خیلی قابل استفاده نیست. مقایسه امکانات با توضیح مختصر هر یک مقایسه کارآیی  و سرعت به کمک یک محک (ابزار آزمایش یا همان Benchmark)  که تصمیم اصلی را از این سایت گرفتم هر چند خودم انجامش ندادم. مقایسه کارآیی و سرعت که چون در خود سایت Yii انجام شده نباید خیلی قابل اطمینان باشد. اما نکته مهمی را که از سایتهای فوق و بخصوص منبع چهارم متوجه شدم این است که سرعت اجرای یک صفحه ساده پی اچ پی حدود 130 برابر صفحه ایست که به کمک یک چهارچوب برنامه نویسی پی اچ پی نوشته شده است یعنی درست است که سرعت تولید و نگهداشت برنامه ها سریعتر می شود اما سرعت اجرای برنامه ها کاهش می یابد و هر چه بتوانیم با چهارچوبی کار کنیم که سبک تر و سریعتر باشد ، برد کرده ایم. خوشحال می شوم

نظرات