بایگانی ماهیانه: اردیبهشت ۱۳۹۳

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

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

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

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

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

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

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

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