PDA

View Full Version : مقاله: نگاهی به فریم ورک ها



amirdd
شنبه 13 فروردین 1390, 01:35 صبح
با سلام خدمت تمام عزیزان و استادان گرامی
راستش اسمش رو نمی دونستم چی بذارم شاید حتی الان هم کمی این اسم براش بی کعنی باشه اما به زودی درست می شه.
توی این مقاله قصد دارم که با گفتن یک سری از مقدمات وارد مبحث فریم ورک ها بشم و شاید هم بتونم با همین مقاله دوستانی رو علاقه مند به استفاده از فریم ورک خاصی کنم.
قبل از شروع بگب که من سعی کردم خیلی خیلی ساده (در حد درک و فهم خودم:لبخندساده:) مطالب رو بیان کنم و از حاشیه رفتن و آوردن مطالب اضافی و بیش از حد حرفه ای (البته به نظرم در این حد اصلا نمی شه مطالب حرفه ای رو قاطی کرد) خودداری کردم .
این اولین باری هست که دارم برای php مقاله می نویسم بنابراین از تمام استادن و عزیزان صاحبنظر می خوام که اگر کم و کاستی در این مقاله می بینن من رو راهنمائی کنند .

*در ضمن این مقاله برای یکی از درس های دانشگاهیم هست که فعلا این چیزاییش رو که اینجا می نویسم فقط در حد چکیده هست به مرور مطالب تکمیلی به اول و آخر مقاله اضافه می شن.
ممنون
موفق و پیروز باشید


کد نویسی آماتور یا معمول PHP
بر خلاف اکثر زبان های برنامه نویسی که باید برای کوچکترین کار حداقل یک تابع نوشت در PHP می توان کارهای بسیاری را بدون استفاده از توابع انجام داد.
ماژول گرایی با استفاده از کدنویسی ساخت یافته
با استفاده از PHP می توان برای هر کار ماژولی را تعریف کرد که این ماژول ها در بسیاری از مواقع و در کارهای کوچک به صورت ساخت یافته(شیءگرا نیستند) هستند. که این موضوع در پروژه های کوچک خوب است اما در مورد پروژه های بزرگ کار را قدری دشوار می کند.
چرا کدنویسی شیء گرا ؟
شیءگرائی در PHP برای پروژه های کوچک مثل کشتن پشه با چکش است!
اگر پروژه بزرگی را بخواهیم با استفاده از ماژول نویسی ساخت یافته بنویسیم شاید کار امکان پذیر باشد اما در آینده امکان توسعه و نگهداری برنامه بسیار دشوار خواهد شد.
همچنین با استفاده از برنامه نویسی شیءگرا می توانیم ساختاری منحصر به فرد را برای خود یا اعضای تیم خود تعیین کنیم و سپس بر اساس این ساختار پروژه با پروژه هایی خود را بنا کنیم.
فریم ورک چیست ؟
بطور کلی می‌توان فریم ورک را مجموعه‌ای از ابزارها، کتابخانه‌ها، قراردادها و بهترین شیوه‌ها تعریف کرد بطوریکه سعی می‌کنند وظایف روتین را به سوی مدل‌های جامعی سوق دهند که دوباره می‌توانند مورد استفاده قرار بگیرند. هدف این است که به یک طراح یا توسعه دهنده اجازه داده شود تا بر روی وظایفی که در انجام پروژه مهم هستند تمرکز کند. (منبع: http://saleh.soozanchi.ir/tag/%D9%81%D8%B1%DB%8C%D9%85-%D9%88%D8%B1%DA%A9/)
چرا فریم ورک ؟
استفاده از فریمورک ها باعث می شود تا برنامه نویسانی که برروی پروژه خاصی در حال کار هستند راحتتر متوجه شوند که برنامه نویس همکار آنها یک قطعه کد خاص را برای چه منظوری استفاده کرده است. (درک کار راحتتر شده و کار سریعتر پیش می رود)
اگر پروژه ای با استفاده از فریم ورک خاصی نوشته شود در آینده توسعه و نگهداری پروژه خیلی بهتر و راحتتر خواهد شد.
همچنین با استفاده از فریمورک ها از انجام دادن یکسری از کارهای تکراری جلوگیری می کنیم.

کدام فریم ورک ؟
این موضوع رو به زودی به صورت یک مطلب جامعتر و همچینین با استفاده از یک جدول که حاوی مقایسه فریمورک هاست ارائه می کنم.

ادامه به زودی .......

رضا قربانی
شنبه 13 فروردین 1390, 04:19 صبح
جالبه و خوبه که ادامه بدی .

فقط حاجی ، به استاد همین طوری با غلط املایی تحویل ندی که نمره درب و داغون می گیری . (:لبخند: شوخی)

eshpilen
شنبه 13 فروردین 1390, 09:15 صبح
بهتره برای هر فریمورک نمونه کد بذاری که عملا نشون بدی چه امکاناتی داره و با چه روشی ازشون استفاده میشه.
وگرنه بحث کلی گویی که همیشه زیاد بوده و هست و چیز زیادی هم عاید کسی نمیشه. بگذریم از اینکه اکثرا این کلی گویی ها مشکل دارن.

amirdd
شنبه 13 فروردین 1390, 13:43 عصر
جالبه و خوبه که ادامه بدی .

فقط حاجی ، به استاد همین طوری با غلط املایی تحویل ندی که نمره درب و داغون می گیری . (:لبخند: شوخی)
راستش این چیزایی که دارم می ذارم قرار بشه پاورپوینت و بره برای ارائه وقتی خواستم ارائه کتبیش کنم همه چیش درست می شه توی ایران پی اچ پی هم گذاشتمش اونجا غلطاش رو گرفتم ;)


بهتره برای هر فریمورک نمونه کد بذاری که عملا نشون بدی چه امکاناتی داره و با چه روشی ازشون استفاده میشه.
وگرنه بحث کلی گویی که همیشه زیاد بوده و هست و چیز زیادی هم عاید کسی نمیشه. بگذریم از اینکه اکثرا این کلی گویی ها مشکل دارن.
ممنون نظر خوبی هست و سعی می کنم برای سه تا فریم ورکی که به نظرم محبوب تر هستند یعنی zend cake symphony نمونه بذارم و البته بقیه رو هم با هم یک مقایسه ای می کنم.

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

Mr.Moghadam
شنبه 13 فروردین 1390, 19:23 عصر
جالبه ادامه بده

اگر در مورد الگوهای برنامه نویسی (MVC , Factory ,Singleton , ... ) هم بتونی مطالبی بذاری اینکه اینها چطوری کار میکنن و چه فریم ورکهایی از چه الوهایی استفاده میکنند و کدوم الگو برای وب بهترین کاربرد رو داره یک مقاله کامل و مفید میشه.

موفق باشی

amirdd
یک شنبه 14 فروردین 1390, 00:27 صبح
جالبه ادامه بده

اگر در مورد الگوهای برنامه نویسی (MVC , Factory ,Singleton , ... ) هم بتونی مطالبی بذاری اینکه اینها چطوری کار میکنن و چه فریم ورکهایی از چه الوهایی استفاده میکنند و کدوم الگو برای وب بهترین کاربرد رو داره یک مقاله کامل و مفید میشه.

موفق باشی
راستش به نظرم منطقی نیست که بیام توی همچین مقاله ای در مورد اینکه یک فریم ورک چه جور داره کار می کنه بگم به نظرم فقط یک توضیح در مورد الگو و اینکه فلان فریم ورک داره از فلان الگو استفاده می کنه کافی هست.

دوستان در موزد صحت و گویایی همین مطالب فعلی نظر خاصی ندارند ؟

بازم ممنون از عزیزانی که نظر می دن.
موفق باشید

رضا قربانی
یک شنبه 14 فروردین 1390, 03:00 صبح
راستش به نظرم منطقی نیست که بیام توی همچین مقاله ای در مورد اینکه یک فریم ورک چه جور داره کار می کنه بگم به نظرم فقط یک توضیح در مورد الگو و اینکه فلان فریم ورک داره از فلان الگو استفاده می کنه کافی هست.

دوستان در موزد صحت و گویایی همین مطالب فعلی نظر خاصی ندارند ؟

بازم ممنون از عزیزانی که نظر می دن.
موفق باشید

خب داداش ، اینجا انجمن هست و اومدیم چیز میز یاد بگیریم و با دانشگاه فرق می کنه که شما بیایی و در مورد فلان فلان فریم ورک توضیح بدید و وسلام . داخلش کدهای فریم فرک ها هم بگذاری بدک نیست ، البته اینجا (اگه دوست داشتی دانشگاه هم کد بذار :لبخند: )

amirdd
یک شنبه 14 فروردین 1390, 14:28 عصر
خب داداش ، اینجا انجمن هست و اومدیم چیز میز یاد بگیریم و با دانشگاه فرق می کنه که شما بیایی و در مورد فلان فلان فریم ورک توضیح بدید و وسلام . داخلش کدهای فریم فرک ها هم بگذاری بدک نیست ، البته اینجا (اگه دوست داشتی دانشگاه هم کد بذار :لبخند: )
!!!! فکر کنم توی دانشگاه هم چیز میز یاد می گیریم (البته اگر دانشگاش دانشگاه باشه) منم نمی خوام که فقط توضیح بدم گفتم که کد سه تا از فریم ورک ها رو هم می خوام بذارم. ببین عمو جون خوب پست های قبلی من رو نمی خوانییا :بامزه: :چشمک:

amirdd
سه شنبه 16 فروردین 1390, 06:49 صبح
کدام فریم ورک ؟
همیشه این سوال مطرح می شود که کدام فریم ورک بهترین است یا اینکه با چه فریم ورکی کار کنم در همین راستا هم سایت های بسیاری از نظر خودشان و کاربرانشان فریم ورک ها را رتبه بندی کرده اند اما خوب به علت اینکه سلیقه های شخصی در این رتبه بندی ها بسیار تاثیر گذار بوده است در وب هیچ دو رتبه بندی را نمی توانید ببینید که مشابه هم باشند. من هم در بین سایت های معروفی که رتبه بندی کرده اند جستجو کردم و لیستی کامل تهیه کردم که در آن، لیست 10 فریم ورک برتر از نظرهر وب سایت برتری که فریم ورک ها را رتبه بندی کرده اند آورده ام و سپس بر اساس این لیست 5 فریم ورک برتر را امتیاز دهی کرده ام که در ادامه می توانید نتیجه را مشاهده کنید. در زیر این لیست را مشاهده می کنید.
68315

بعد از جمع آوری این لیست فریم ورک های برتر را با توجه به رتبه ای که دارند امتیاز دهی کردم پنج فریم ورک برتری که تقریبا در همه ی این رتبه بندی ها بودند و بالاترین امتیازها را گرفتند عبارتند از :

1- CodeIgniter با امتیاز 55

2- CakePHP و Symfony با امتیاز 53

3- Yii با امتیاز 44

4- Zend با امتیاز 42

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



ادامه دارد
موفق باشید
امیر درجه

UnnamE
سه شنبه 16 فروردین 1390, 10:47 صبح
آره واقعا قدرت فقط در CI پيدا ميشه، zf كه باس كشك بسابه!!!!

sargardoon
سه شنبه 16 فروردین 1390, 12:32 عصر
اینجا هم آمار خوبی دادند:
Comparison of web application frameworks (http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks)
2011 Top 5 PHP Frameworks (http://videos-formation.blogspot.com/2011/04/2011-top-5-php-frameworks.html)
Top 10 PHP frameworks 2011 (http://videos-formation.blogspot.com/2011/04/2011-top-5-php-frameworks.html)