# زبان های اسکریپتی > PHP > CodeIgniter >  من با استفاده از فریم ورک مخالفم

## reza_web

سلام
من خیلی تحقیق و البته فکر کردم و به این نتیجه رسیدم که استفاده از فریم ورک کار اشتباهی است (حالا حتما طرفداران فریم ورک حسابی آماده بحث می شوند)
برای یادگیری یک فریم ورک علاوه  بر صرف وقت برای یادگیری اصول پایه php باید وقت زیادی هم برای یادگیری اون فریم ورک کنید که به نظر من می شود این وقت را صرف نوشتن کلاسها و پلاگینهای مورد نیاز خود بکنیم.
خیلی از کلاسها و پلاگینهای فریم ورک ها واقعا به درد نخور هستند که دلیلی برای یادگیری آنها وجود ندارد.
کسی که آنقدر php بلد است که می خواهد از فریم ورک برای پروژه هاش استفاده کند پس براحتی می تواند خودش کلاسهای مورد نیازش را بنویسید. تازه این حسن را هم دارد که دقیقا خودش می داند چه کرده است.
من خودم پارسال یک web Application نوشتم(نه وب سایت) که خیلی زمان برد ولی بعد از کامل شدن آن الان برای نوشتن یک web applicaion البته ساده فقط و فقط 30 ساعت مفید کار کردم و تماما از کلاسهای برنامه قبلی استفاده کردم مه اگر می خواستم از اول این برنامه را بنویسم حداقل 100 ساعت زمان نیاز داشت.
خب پس به چه دلیلی از فریم ورک استفاده کنم
البته اینم قبول دارم که برای برنامه های عظیم (که فکر نکنم زیاد در ایران داشته باشیم) فریم ورک زند عالیه ولی در حالت عادی استفاده از فریم ورک اشتباهه
حالا یک چیزی بگم که شر بپا بشه:
به نظرم استفاده از فریم ورک بیشتر حالت کلاس و مد شدن و قیافه گرفتن خوبه تا برنامه نویسی حرفه ای

----------


## nimatramon

دوست عزیز گاهی اوقات استفاده از فریم ورک ها حتی سخت تر از پیاده سازی application  از base هستش اما هرینه های پروژه ، ضریب امنیت، دد لاین ها ، تعداد افراد تیم، و همچنین نیاز به توسعه پذیری باعث می شه تا فریم ورک ها بر رسی شن و اگر انتخاب مناسبی باشه از اون ها استفاده کرد. راستی معماری یادم رفت ....

----------


## binyaft

به نظر من ، فریم ورک ها بیشتر برای توسعه چند نفره استفاده میشن ، همین

----------


## idinex

من فكر ميكنم استفاده از فريم وركها هميشه لزوم ندارد.

در برنامه هاي ساده و كوچك اصلا نياز نيست با فريم وركها كار بشه. فقط در سيستمهاي بزرگ كه ممكنه تعداد زيادي كلاس وجود داشته باشه و كلاسها چندين بار استفاده مي شوند بدرد مي خورند.

در كارهاي گروهي هم خيلي كمك مي كنند.

من چند وقت پيش يك سيستم طراحي كردم كه با نيازهايي كه مدير شركت پشت سر هم تعريف مي كرد در حقيقت هيچ وقت تكميل نميشد و هميشه قسمت جديدي اضافه ميشد و قسمتهاي قبلي هم بهشون قابليت جديد اضافه ميشد و يا قابليتهاي قبلي تغيير مي كردند.

من خودم يك فريم ورك ساده درست كردم براي خودم. از اين فريم ورك كه استفاده كردم واقعا كارم ساده شد. با اينكه برنامه كلي بخش داشت و چندين سطح و مدل كاربر داشت به راحتي ميشد همه چيز رو مديريت كرد. هر تغيير به سادگي و سرعت زياد اعمال ميشد و هر خطاي به سادگي قابل پيگيري و رفع بود.

ولي بعد از اون سايت تا حالا ديگه از فريم ورك استفاده نكردم.  :لبخند گشاده!:

----------


## UnnamE

فريم ورك تو پرو‍ژه هاي كوچيك و تك نفره هم كاملا عالي ميشه
چه يه وبلاگ كه تو 15 دقيقه ميشه ازش ساخت چه يه سايت كه بخواد در ثانيه ميليوني كويري اجرا كنه و محاسبات ابري انجام بده!
اگه دوستاني كه با فريم ورك مخالف هستن كمي بيشتر در مورد منطق كار فريمورك ها مطالعه كنند متوجه ميشند نظم در برنامه نويسي چي هست و نيست
كي دوس داره همش بشينه كلاس هاي برقراري امنيت رو بازرسي كنه؟
كي حال داره بشينه كويري ها رو بالا و پايين كنه؟
كي ميخواد واسه اضافه كردن يه امكان جديد به پروژه 10-15 فايل و 30-40 كلاس و تابع رو ويرايش و دوباره نويسي كنه؟ در صورتي سه سوت پلاگين نويسي رو ميتونه انجام بده
ولي موضوع افه و كلاس و ايش و اينا خيلي خدا بود

----------


## peachcms

با سلام

به نظر من حتی برای یک Hello world هم باید از FrameWork استفاده بشه زیرا دوران برنامه نویسی بدون نظم به سر اومده. کشور های دیگه چرا موفق هستند؟ زیرا در برنامه هاشون نظم و هماهنگی وجود دارد و خیلی ساده قابل گسترش و توسعه هستند این در صورتی هست که در ایران وقتی برای بار اول ورژن 1 یک سیستم نوشته میشه ورژن 2 دیگه توی کار نیست چون برنامه نویس وقتی source رو نگاه میکنه خودشم نمیفهمه چی کرده و همین باعث پیشرفت نکردن ما در این ضمینه هست که باید فرهنگ استفاده از FrameWork در بین برنامه نویسان ما رواج پیدا کنه با این کار خود به خود شاهد رشد سریع سطح ما در تولید نرم افزار خواهد شد.
در مورد اینکه کسانی می گویند من مخالف با ستفاده از FarmeWork هستم دلیل این سخن ها محدود می باشد که عرض خواهم کرد.

1- آشنا نبودن کافی برنامه نویس به PHP یا هر زبان برنامه نویسی دیگری.
2- عدم درک کافی MVC و برنامه نویسی منظم
3- ترس از یاد گیری و سخت بودن

برای انتخاب FrameWork مناسب باید با توجه به امکانات به سرعت، امنیت، انعطاف پذیری و پشتیبانی Framework توجه خاصی داشت.

با سپاس

----------


## ghasem.fattahpour

*به این مطلب توجه کنید:*

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

 معمولا کسی که به این چیز ها عقیده خاصی نداره در این چند دسته گروه جای میگیره:

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

----------


## ayub_coder

حالا دوستانی که میگن فریم ورک
من که تازه می خوام وارد عرصه فریم ورک و کلاس گذاشتن بشم کدوم رو انتخاب کنم؟
یکی دوسالیه php کار میکنم. می خوام از فریم ورک استفاده کنم. ولی نمی دونم کدوم؟ :افسرده:

----------


## ghasem.fattahpour

تحقیق کن و فرق بین ابزار رو بشناس. من با codeigniter شروع کردم ولی الان با cake کار می کنم. دلایل زیادی هم داره. ولی باید اول بفهمی چرا داری از framework استفاده کنی!

----------


## alireza.stack

نمیشود گفت فریم وورک خوب نیست و نمیشه گفت بد نیست.
خوب است چرا که خطای انسانی و فراموشی گاهی اوقات باعث میشود مواردی مثل SQL Injection Attack و... نادیده گرفته شود و حفره های امنیتی بر جای بگزاریم.
و از جهتی بد است و آن این است که شما را تنبل میکنه!
موفق باشید

----------


## ghasem.fattahpour

> ...
> خوب است چرا که خطای انسانی و فراموشی گاهی اوقات باعث میشود مواردی مثل SQL Injection Attack و... نادیده گرفته شود و حفره های امنیتی بر جای بگزاریم.
> ...


تقریبا چیزی که شما گفتید محاله! مگر ابنکه خودتان از روی عمد اون رو نخواهید ویا غیر فعال کنید

----------


## masoud_tamizy

> کسی که آنقدر php بلد است که می خواهد از فریم ورک برای پروژه هاش استفاده کند پس براحتی می تواند خودش کلاسهای مورد نیازش را بنویسید. تازه این حسن را هم دارد که دقیقا خودش می داند چه کرده است.
> من خودم پارسال یک web Application نوشتم(نه وب سایت) که خیلی زمان برد ولی بعد از کامل شدن آن الان برای نوشتن یک web applicaion البته ساده فقط و فقط 30 ساعت مفید کار کردم و تماما از کلاسهای برنامه 
> به نظرم استفاده از فریم ورک بیشتر حالت کلاس و مد شدن و قیافه گرفتن خوبه تا برنامه نویسی حرفه ای


 Web Application در PHP چیست و چگونه است ؟؟؟

----------


## masoud1990

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

----------


## javidabbaci

به نظ من هرکسی  که با فریم ورک مخالف است ، باید در دانش برنامه نویسی او شک کرد !!

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

----------


## moalla

چندتا سایت بیشتر با فریم ورکها بیشتر کار نکردم و در حد همین تجربه ها، نظرم رو میگم. قبلش با asp و php کار میکردم
نکته اول در تایید فریم ورکها همینیه که دوستان گفتن و اون بالا بودن خوانایی کدهاست. بخصوص در کیک که قواعد نام گذاری خاصی داره و در نتیجه یه برنامه نویس وقتی به نتیجه نگاه کار نگاه کنه دقیقا میدونه کد بخشی که داره میبینه رو کجا پیدا کنه....
نکته دوم که باز از نکته اول منشعب میشه: کار گروهی با استفاده از فریم ورکها خیلی خیلی بهتره. اگه یه وب سایت به من بدن که با php نوشته شده و بگن فلان بخشش تغییر کنه از همین الان سرگیجه میگیرم! اما اگه با کیک نوشته شده باشه فقط بگن کجا نیاز به تغییر داره چشم بسته هم میشه گفت کد مربوطه کجا قرار داده و مستقیم میشه رفت سراغش رو تغییرش داد.
این دو نکته تو صحبتهای دوستان هم بود و اما نکته بعدی که مفصل تر عرض میکنم
با این سوال شروع میکنم: آیا من میخوام همه چیز رو از صفر بنویسم یا میخوام از کدهای آماده هم استفاده کنم. قبل از اینکه بریم سراغ جواب، به دو نکته توجه کنیم:
1- از یه برنامه نویس وب خیلی چیزها رو انتظار دارن که هر کدوم در واقع یه تخصصه: css، jquery, graphic, seo, برنامه نویسی سمت سرور و .... باید تو تمام اینها اوستا و به روز بود تا بشه کار درخوری ارائه داد.
2- سرعت به روز شدن برای یه طراح وب باید واقعا زیاد باشه. همیشه در کنار اجرای پروژه هاش در حال یادگیری هم هست! برخلاف رشته های دیگه که یبار فرامیگیرند و هرازچندگاهی یه آپدیت مختصرش هم میکنن. فکر میکنم خیلی از دوستان رشته های اکادمیک دیگه ای رو هم خوندن و میفهمن چی میگم. واقعا هیچ چیزی رو به اندازه برنامه نویسی ندیدم که هر روز نیاز به اپدیت شدن داشته باشه
حالا با توجه به این نکات که فکر کنم همه قبول داشته باشیم میرسیم به سوال: آیا میخوام همه چیز رو از صفر بنویسم یا از کدهای آماده هم استفاده کنم؟ مطمئنا دوستانی که با فریم ورک مخالف  هستن هم نمیان دیگه هر چیزی رو از صفر بنویسن که عمر نوح میخواد! آخرش بهتره از فریم ورک جی کوئری بجای جاوا اسکریپ استفاده کنیم تا دغدغه اجرای کد تو بروزرهای مختلف رو کمتر داشته باشیم و افکت های ساده تری رو هم داشته باشیم.
شخصا گاهی تو برخی قسمتها با اینکه کد امادش هم هست اما ترجیح میدم از اول خودم بنویسم که دانش خودم رو هم ارتقا بدم اما خیلی اوقات دیگه فقط وقت تلف کردن میشه. چیزهای زیادی برای یادگیری وجود داره که سطح برنامه نویسی من رو خیلی بیشتر ارتقا میده تا اینکه من بیام وقتم رو برای یادگیری چیزی بذارم که ارزش کمتری در روند پیشرفتم داره. امیدوارم منظورم رو گرفته باشید.
حالا میام یه فریم ورکی مثل CI رو هم در کارم قرار میدم. در واقع کلی helper و کلاس رو کنار برنامه قرار دادم. اگه خواستم یه بخش مثل کار با فایلها رو دیگه از اول نمینویسم و از helper کمک میگیرم. اما اگر دوست داشتم یه بخشی رو از صفر کار کنم خوب برای اون بخش همین کارو میکنم. 
اگه بخوام کل حرفم رو خلاصه تر بگم: موضوعات بی شماری برای یادگیری وجود داره اما نقش هر کدوم در روند پیشرفت من و شما یکی نیست. بخشی که اهمیت کمتری داره رو واگذارم میکنم به یه کد خوب با مستندات خوب و بخشی که ارزش بیشتری داره رو سعی میکنم خودم دقیق بنویسم تا از منطق کار بیشتر سردربیارم.

----------


## sa0017

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

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

در مورد انتخاب فریم ورک هم من به افرادی که به سطحی از php  رسیدن که میخواهند از فریم ورک استفاده کنند فریم ورک codeigniter  رو پیشنهاد میدم.

----------


## godofphp

منم یه کوتاه نظر خودم رو بگم
ببینید شما اگه یه پروژه کوچیک دارید و نیاز به انجام کارهای بزرگ نداره و میدونید که توی کارتون تکرار کاری (استفاده مجدد از کدها) نیست و توی آینده هم قرار نیست 
غیر از خودتون کس دیگه هم پیدا بشه اونو گسترش یا ادامه بده ... در این وضعیت میتونید با پی اچ پی خام وب رو پیاده کنید 
امّا
زمانی هست که میخوایید توی آینده وب شما توسط چندین نفر برنامه نویسی بشه ویرایش بشه گسترش داده بشه
یا در آینده روز به روز پیشرفت خواهد کرد و نیازمند یک قانون منسجم هست 
باید باید باید از فرم ورک استفاده کنید
مثلا شما با ci یه سایتی رو ساختی 
همه اون کسایی که ci بلد هستند میتونند رو پروژت کار کنند 
ولی اگه اختصاصی کد بزنی مخصوصا اگه کدات کثیف باشن هیچ کس حاضر هم کاری نمیشه 
بعدشم وقتی زحمت کشیدند واسه ما فرم ورک ساختند چرا نباید استفاده کنیم ؟
ما الان باید خودمون فرم ورک میساختیم چه برسه به نتیجه گیری درباره انتخاب یا عدم انتخاب فرم ورک ساده و آماده ای مثل ci یا Cake 
با تشکر

----------


## parsboy

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

----------


## sara banu

*منم با نیما موافقم اما باید باهاش کار کنی تا لمش دستت بیاد*

----------

