برنامه بهینه تر یا برنامه کاراتر؟

معمولاً تو کلاسهای درسیم دانش آموزانی رو دارم که آشنایی کمی با مبحث شی گرا دارند که بعضاً میگویند که کسی که خوب شی گرا بنویسه لزوماً برنامه های خیلی سریعی هم میتونه بنویسیه!

یک نکته ایی رو نباید فراموش کنید این هست که کامپیوترها بطور پیشفرض مسائل رو بطور خطی یعنی دستورات را زیر هم حل میکنند و اصولاً کامپیوترها (منظور همان CPU میباشد) در این حالت یعنی در حالت برنامه نویسی خطی بیشترین و بالاترین سرعت را دارا میباشند.

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

اما چرا ما انسانها حاضریم برنامه های کندتر بنویسیم؟

دلیل اصلی این امر در نوع نگاه ما انسانها به حل مسئله نهفته است. اینکه ما برای حل مسائل پیچیده ابتدا آنها را به اجزای کوچکتر تبدیل میکنیم سپس سعی در حل نمودن مسائل کوچک نموده تا مسئله اصلی را حل کنیم.

اگر با این نگاه به دنیای شی گرا نگاه کنیم، آنگاه درک خواهید کرد که هر کلاس را میتوان همانند یک تکه کوچک از پازل بزرگی به نام سیستم(مسئله) در نظر بگیریم که برای حل کل مسئله نیاز به تکه تکه کردن آن داریم.

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

 

 

2 فکر می‌کنند “برنامه بهینه تر یا برنامه کاراتر؟

  1. neyayesh19

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

    پاسخ
    1. vahid نویسنده

      سلام
      اگر منظورتون از نیایش، همون بزرگراه نیایشه که خوب جایی هستید 🙂
      در مورد اسلاید که فرمودید: این اسلایدهایی هست که خودم تهیه کردم و معمولاً سر کلاسهام ازشون استفاده میکنیم امیدوارم که به دردتون بخوره
      http://www.slideshare.net/VahidHashemi/ss-37992190
      همچنین در صورت تمایل میتونید از کلاسهای نیمه خصوصی بنده هم استفاده ببرید :
      http://www.tekplanet.ir

      پاسخ

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*