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