PDA

View Full Version : ضرورت استفاده از کلاس ها



barnamenevis2016
چهارشنبه 16 اردیبهشت 1394, 12:13 عصر
درود...آقا یک سوال...آیا ضرورت داره که برای نوشتن یک سایت پویا و داینامیک و به سبک فیسبوک ما در برنامه نویسیمون از کلاس ها هم استفاده کنیم و یا همون کار با func جواب می ده و یا می تونه جواب بده...آیا ضرورت داره که با مفاهیم کلاس نویسی آشنا بشیم و حتما از اون استفاده کنیم.؟:متفکر:

arenaw
چهارشنبه 16 اردیبهشت 1394, 14:04 عصر
به نظر من یه جست و جو کنید راجع به علت بوجود اومدن class و frameworkها. ولی ضرورت ندارن، یعنی حتی میشه فیسبوک رو هم با برنامه نویسی خطی یا فوقش با کمک فانکشن نوشت.

prans.info
چهارشنبه 16 اردیبهشت 1394, 16:11 عصر
برای بالا بردن سرعت توسعه باید از فریم ورک و کلاس ها استفاده کنید .
تقریبا ضروری هست

-سیّد-
پنج شنبه 17 اردیبهشت 1394, 11:41 صبح
به نظر من یه جست و جو کنید راجع به علت بوجود اومدن class و frameworkها. ولی ضرورت ندارن، یعنی حتی میشه فیسبوک رو هم با برنامه نویسی خطی یا فوقش با کمک فانکشن نوشت.
ببینید این حرف شما از نظر تئوری درسته، یعنی امکان‌پذیر هست که فیس‌بوک رو بدون استفاده از برنامه‌نویسی شیء گرا (Object-Oriented) نوشت. اما در عمل با اطمینان کامل بهتون می‌گم که امکان‌پذیر نیست. همونطور که دوستمون اشاره کردن:

برای بالا بردن سرعت توسعه باید از فریم ورک و کلاس ها استفاده کنید .
تقریبا ضروری هست
و من تصحیح می‌کنم که تقریباً نه، حتماً حتماً ضروری هست.

استفاده از کلاس‌ها از نظر functionality تقریباً چیز اضافه‌ای به شما نمی‌ده، ولی کمک می‌کنه کد رو مرتب و منظم بنویسید و امکان توسعه‌اش رو فراهم می‌کنه. انواع مفاهیم برنامه‌نویسی رو با استفاده از کلاس‌ها می‌تونید به کار ببرید. مثلاً Design Pattern ها رو بدون کلاس به سختی می‌تونید استفاده کنید (دقت کنید که خود Design Pattern ها چیزی نیستن که استفاده ازشون بایدی باشه، ولی به بهتر برنامه نوشتن خیلی کمک می‌کنن).

نتیجه‌گیری اخلاقی: تا وقتی برنامه و سایتتون کوچیک هست (یعنی تعداد صفحاتش زیاد نیست، کدش خیلی زیاد نیست، تعداد نفراتی که روش کار می‌کنن یکی دو نفر هست (یعنی تیمی برای انجام کار تشکیل نشده که نیاز به هماهنگی بین اعضاش باشه)، تعداد کاربراتون خییییلی زیاد نیست، و ...)، می‌تونید با خوشحالی کد رو flat بنویسید و از شیءگرایی استفاده نکنید (البته تقریباً مجبورید از توابع استفاده کنید). اما اگر برنامه از یه حدی بزرگ‌تر بشه، بیچاره می‌شید! هزینه‌ی نگهداری و توسعه‌اش به شدت می‌ره بالا، و اون موقع هست که پشیمون می‌شید که چرا از اول شیءگرا کار نکردید! بنابراین اگر هنوز سایتتون بزرگ نیست، ولی برنامه‌اش رو دارید که بزرگ بشه، به نفعتونه که هر چه زودتر به سمت برنامه‌نویسی شیءگرا برین.

MMSHFE
پنج شنبه 17 اردیبهشت 1394, 21:12 عصر
یکسری قابلیتهای جدید هم شئ گرایی به شما میده مثل Autoloading یا همون Lazy Loading فایلهای کلاسها، بحث جلوگیری از تداخل نامها با کمک namescapeها، قابلیت تعیین سطح دسترسی فیلدها و متدها، وراثت، رابطها و... که همه این ابزارها فقط برای ساده تر کردن زندگی برنامه نویسها به وجود اومدن. حالا اگه یکی دوست داره زندگی در شرایط سخت رو تجربه کنه، دیگه به خودش مربوطه. غیر ممکن نیست ولی منطقی هم نیست. به عبارت دیگه، حرام نیست ولی مکروهه!

Mohammadsgh
پنج شنبه 17 اردیبهشت 1394, 23:25 عصر
پروژتون که بزرگ بشه ساخت و توسعه پروژتون واستون کابوس میشه.ساخت کلاس آپلود فایل-آپلود عکس-ولیدیتشون-ولیدیت فرم و...ولی خوبی فریم ورک اینه که همه اینها رو داره.به خاطر کلاس آپلود عکس چند روز از زمان پروژم رفت.از دید من یا با mvc کار کنید.یا با یکی از فریم ورک ها

hamedarian2009
جمعه 18 اردیبهشت 1394, 00:23 صبح
البته صرف اینکه فقط یک کلاس تعریف کنید و داخلش چنتا متد و متدهارو هربار فراخوانی کنید بله فرقی زیادی با تابع نداره البته همین هم یکم کدتون رو مرتب تر میکنه اما اگر design pattern ها و مزایای شی گرایی به درستی استفاده کنید خودتون متوجه میشین فرقش چیه

amir.m9821
جمعه 18 اردیبهشت 1394, 20:15 عصر
جواب های دوستان خیلی خوب و دلنشین بود
ولی خودم چیزی که به عنوان تجربه متوجه شدم در واقع با استفاده از کلاس و تابع نویسی و ... می تونیم برنامه مون رو به بلاک های مختلفی تقسیم کنیم ک هر کدوم وظیفه متفاوتی دارن و سر جای مخصوص خودشون کاربرد دارن . این اتفاق باعث میشه خوانایی کد بسیار بالاتر بره و از اون مهم تر خطایابی هم راحت تر میشه بدین ترتیب ک وقتی مشکلی در قسمتی بوجود میاد می دونیم مشکل فقط مربوط به بلاک همون قسمت میشه و در نتیجه اون باید اصلاح بشه و دیگه لازم نیست کد کدمون رو زیر و رو کنیم
نکته دیگه اینکه کد نویسی مون طبق یک اصول و چارچوب انجام میشه و یکسری امکانات مناسب بهمون میده

arenaw
دوشنبه 21 اردیبهشت 1394, 13:44 عصر
من شی‌گرایی و فریم‌ورک هارو به فندک، و برنامه‌نویسی فانکشنال رو به کبریت واسه یه سیگاری تشبیه میکنم. حالا ادامه مطلب رو با این مثال ادامه میدم:

راجع به ضروری بودنش:

من فندک داشته باشم خیلی راحت سیگار رو روشن میکنم. اگه نبود با کبریت هم میشه. ولی اگه جفتشون نبودن، بازم میتونم با کمک ذره‌بین و کاغذ یا دوتا چوب و یا ... آتیش درست کنم.
خب الان نمیشه گفت فندک ضروری حساب میشه یا نه؟ درسته بودنش خیلی خیلی کارمو راحت میکنه و احتمال اینکه من بزنم کل اتاقو آتیش بزنم رو کم میکنه، ولی بازم به هر حال میشه سیگار رو روشن کرد با روش‌های دیگه.

راجع به بهتر بودن اینکه آدم گاهی با روش های قدیمی کار کنه:

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

abolfazl-z
دوشنبه 21 اردیبهشت 1394, 23:21 عصر
درود...آقا یک سوال...آیا ضرورت داره که برای نوشتن یک سایت پویا و داینامیک و به سبک فیسبوک ما در برنامه نویسیمون از کلاس ها هم استفاده کنیم و یا همون کار با func جواب می ده و یا می تونه جواب بده...آیا ضرورت داره که با مفاهیم کلاس نویسی آشنا بشیم و حتما از اون استفاده کنیم.؟:متفکر:

سلام

پویا و داینامیک هر دو یکی اند.

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

یک نگاهی به پیرامون خود کنید ...

کره زمین را در نظر بگیرید

قاره ها را در نظر بگیرید

کشور ها را در نظر بگیرید

استان ها را در نظر بگیرید

شهر ها را در نظر بگیرید

محله ها در نظر بگیرید

ساختمان ها را در نظر بگیرید

خانه ها را در نظر بگیرید

مثلا زبان اسمبلی(نزدیک ترین زبان به ماشین) از نظر ساختار به دلیل پرش هایی که داره با ذهن انسان خوب جور در نمیاد و کسی نمیاد یک برنامه notepad را با اسمبلی بنویسد. حال زمان های سطح بالاتر را در نظر بگیرید چه ساختار هایی دارند ؟ مزیت اصلی زبان c نسبت به c++ را در نظر بگیرید.

در کل میتونیم بگیم شئ گرایی و روش های امثال آن باعث کاهش پیچیدگی ذاتی نرم افزار(software crisis) می شود.

rezaonline.net
سه شنبه 22 اردیبهشت 1394, 01:29 صبح
الان هر چقدر بگید OOP خوبه این بنده خدا بیشتر گیج میشه
داداش گلم شما یکی دو تا پروژه رو فانکشنال بنویس اونوقت خودت کم کم حس میکنی یه چیزی کمه ...

j_naroogha@yahoo.com
سه شنبه 22 اردیبهشت 1394, 09:52 صبح
داداش شما برو با فانشنال یه پروژه بزرگ رو بنویس . من خودم قول میدم گینس ثبت بکنمش برات :D
این حرفت مثل این میمونه که بگی من میخام چند صد کیلومتر رو پیاده برم.... میشه اما چرا خودرو استفاده نکنی؟