۱۳۸۶ شهریور ۲۶, دوشنبه

KISS( "Keep It Simple, Stupid")

من به سوال ایکس فکر کردم. سوال خیلی ساده بودش...

لئو هم دقیقا نظر من رو داشتش. چون خدا انسان رو به دو دسته تقسیم کرد! چون خدا همه چیز رو زوج آفرید! اما در این جواب یک اشکال وجود داشتش... خوب خدا این کار رو کرد! من که نکردم! یعنی چرا منم باید دو دسته کنمش؟

-چون این سادست! "Keep It Simple, Stupid"

- ایکس!! تو از کجا پیدات شد؟

- زمانی که تو بالاخره می خوای از در منطق وارد بشی یک لحظه ی دیدنی هستش آدم نمی تونه اونو از دست بده!

- اما برای من سوال ایجاد شد! فکر کن آدم یک شیء هستش. یک شیء که ما پس از شناساییش توی ذهنمون ازش می سازیم. چرا ما توی اولین کارمون می خوایم که متد getGenre رو صدا کنیم؟ چرا از زمانی که با یکی آشنا می شیم اولین چیزی که توی ذهنمون براش میاریم جنسیتش هستش؟

- من فکر کنم خودت به این فکر کردی توی این مدت.

- چرا تو فعل جمله رو اول میاری؟

-چرا تو می خوای از جواب دادن در بری؟

- من وقتی آدم ها رو طبقه بندی می کنم واسم ساده تره نظر دادن در موردشون. طبقه بندی یک چیزی مثل کلاس بندی هستش توی برنامه نویسی و ساده می کنه کارم رو.

-ببین تو هم فعلتو اول اوردی! باید می گفتی کارم رو ساده تر می کنه!

-خوب من توی ذهنم یک کلاس آدم دارم که دو تا کلاس ازش ارث می برند. زن و مرد.

-هوشمندانست. لابد چند تا متد هم اور راید می کنند!

-آره! چیز بدی نمیشه.

- این جوری می تونی شدت یک سری چیزها رو کم و زیاد بکنی. خوب دختر خوب تو داری الان به طور غیر ارادی از برتری ذهن یک انسان استفاده می کنی! از مفهوم Abstraction .

اگه خودتو بکشی نمی تونی درست اینو به یک ماشین یاد بدی و تو هم ازش خوب استفاده کردی. توی این طبقه بندی تو زن و مرد رو از انسان مشتق کردی و برای هر کدوم از اونها یک خصوصیت گذاشتی. خوب می خوای الان یک نتیجه گیری بکنی؟

-فکر کنم ... صبر کن.... تو داری می گی که ما هممون توی ذهنمون داریم از مفهوم Abstraction

استفاده می کنیم و می خوایم همه چیز رو طبقه بندی بکنیم و چون دوست داریم پیچیده فکر نکنیم و کارمون رو راحت کنیم میایم انسان رو به دو دسته زن و مرد تقسیم می کنیم. و چون می خوایم خیلی ساده تر فکر کنیم مبنای این تقسیم رو تفاوت های فیزیولوژیکی قرار دادیم.

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

- مطمئن نیستم... آخه چرا ما می خوایم یک نفر رو طبقه بندی بکنیم؟

-خودت گفتی چون راحت تر باهاش برخورد بکنی. وقتی که تو بدونی که مثلا

if(Obj instanceof Female)

اون زمان هستش که میای به اون چیز ناشناخته اسم زن می دی بعدش:

Female fm=(Female)Obj;

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

همه ی اینایی که گفتم برای این بودش که بهت نشون بدم که زن و یا مرد رو ذهنت به کار می بره تا کار خودش راحت بشه ! بدونه چه شکلی باید ارتباط برقرار بکنه. پیش بینی بکنه رفتارشو.اصولا این کار پر از exception

هست! ولی خوب این روش کاملا تقریبی هستش...

- و گاهی ازش استفاده بکنه! یعنی روش اپریتور کوچکتر و یا بزرگتر رو اورلود بکنه!

- خوش بختانه یا متاسفانه درسته! این همش به خاطر اون حس قدرت طلبی و برتری طلبی کلاس انسان هستش!

-----------------------------------------------------------------------------

پی نوشت: اصلا design درستی نداشتش! چرا؟ چون که اگه کامپیوتری بهش نگاه کنی باید بری به متغیر هات دست بزنی به قول یک دوست key رو عوض کنی مثلا یک متغیر رو هی بهش اضافه می کنی از یک Type یا یکی رو ازش کم می کنی که این اصلا قشنگ نیستش! چون تو داری به برنامت دست می زنی... اگه می خوایند بهش کامپیوتری نگاه کنید بهتره بهش الفبایی نگاه کنید! یعنی ما 32 تا حرف داریم ولی می تونند بینهایت تا چیز رو نشون بدند! وقتی تو الفبایی بهش نگاه کنی نیاز نیست چیز های جدید تعریف بکنی. مثل متغیر شجاعت رو در نتیجه مشکل design نخواهی داشت. اگه این کارو بکنی اصلا نوع طراحی ما رو می تونی زیر سوال ببره عزیزم! و زن و مرد رو دیگه کلاس ندونی و فقط یک متد بدونی که باتوجه به روش های آماریت بهت می گه فلانی زن هست یا مرد!! اما چون ما یعنی من و X اصلا از دید الفبایی به قضیه نگاه نکردیم این Design بسی ضایع شد!

۵ نظر:

ناشناس گفت...

kamelan mokhalefam. be nazare man in taghsim bandi kamelan ehstebahe. to nemitoon ienghadr mojoodato sarih taghsim koni. bebin to vaghti migi in objecte man az no female e yani be yeseri az moteghyerhaye object pedaresh(ensan) dari meghdar midi. to migi az roo in mishe be alaegh o... pey bord dar hali ke in method hat hich rabti be in mozoo nadaran. to dar sharayete addi migi in adame che bahale. nemigi chon dokhtare bahale. manzooramo mifahmi? ba sakhtane female fm=(female)obj; faghat ye mahdoodiate eshtebah misazi. in class dar vagheiat farzande class adam nist. ye class jodaganast.age cast koni motegha va method haye protected ro az dast midi. benazaram x dare eshtebah mikone.

ناشناس گفت...

SALAM
FELAN AZ BABATE HOSNE SALIGHE VA ALAYEGHE SHAKHSITON BEHETOON TABRIK MIGAM TA BAD KE DAR FORSATE MONASEB TAMAME NEVESHTEHATOON RO BEKHONAM VA BAHRE BEBARAM,MOVAFAGH BASHID...

ناشناس گفت...

to sara:
ببین خیلی از چیزا آماری هستش!
تو نمی گی چون این جوریه باحاله! نمی گی به خاطر جنسیتش باحاله... اصلا اما تو می تونه خیلی چیزا رو به واسطه ی دختر و پسر بودنش بهش نسبت بدی خودم هم گفتم که خیلی خطا و استثنا خواهد داشت اما برای شروع چیز بدی نیستش!
ببین وقتی تو یکی رو دقیق نمی شناسی می خوای بهتر بشناسیش و از همین فرض های دست و پا شکسته استفاده میشه! مثلا تو فرهنگ ما این فرض های دست و پا شکسته کلی دارند بازی می کنند! تو یک زن رو موجود دوست داشتنی می گیری چون تجلی مادرت رو می بینی! نمی گم درسته اما وجود داره...
به نظر من این ما هستیم که داریم اشتباه می کنیم! هر چیزی رو کلی می گیریم! راچع به هیچ موجودی نمی تونی کلی نظر بدی! تو به واسطه ی دختر گرفتن یک نفر یا پسر گرفتنش به خودت اجازه می دی یک سری حرف ها بهش بزنی! فکر کن!
همین جوری نگاه کردن هستش که میاد و میگه هی فلانی چقدر کارت پسرونه هستش! چرا؟ چون توی ذهنش روی شی پسر این تعریف شده! همین برداشت و تصور هستش که باعث میشه تو به یک پسربچه که گریه می کنه بگی مرد که گریه نمی کنه!

ناشناس گفت...

تا حدودی آره !( این کامنت خودتو می گم ! )
( راستی به سلامتی با آنتی قیلطر صفحه کامنتاتونو باز نمودیم :P )
ببین این کلاس بندی ها اولین بعدش که خیلی ازش ارث می بری از هر فرد موجود جدیدی می سازی
مثلا در اول کار آناهیتا یه دختر قد بلنده که موهاش روشنه
در حالت بعدی یه دوسته که فوتبال دوست داره از
PC
هم زیاد حالیشه !
الان من دیگه فک نمی کنم که این یه دختره !
چون اون ماله زمانیه که من اطلاعاتی ازت ندارم و نمی تونم این فیلد رو خالی بزارم که تو چی هستی !

اما دختر بودن یا پسر بودن ملت عواقب دیگه ای هم داره !
مثلا اینکه خیره به یه دختره نگاه کنی با اینکه به همون نحو به یه پسره در یک مکان عمومی ( اتوبوس !!!!! ) نگا کنی کلی تفاوت می ندازه رو کار
می فهمی که ؛)
حالا هر چی باشه من باز هم 12 تا پله رو نمی تونم بپرم !
گاها که به سرم می زنه که چرا پسر نیستیم!
( جالبه که بری تو بلاگ های من بگی که این جانب دختره ، واکنش ها خنده ، نه بابا ، برو بابا ، من فک می کردم پسره می شه ...
چرا ؟ چون کمی خشن فک می کنیم !!
البت می گن
Leo
نامی برای پسراست :-??
)
نتیجه ای که عایدم می شه اینه که اگه پسر بودم ، هم حتما شل می بودم که داغ 12 تا پله کف دلم بمونه ...

ADayDreamer گفت...

مشکل من و X هم این بود!
ما می تونیم به هزاران طریق تقسیم بکنیم هم رو ولی سخته!
سخته و خیلی سخته!
و ما میایم خیلی ساده نگاه می کنیم به همه چیز...

شایدم نگاه نمی کنیم و شما با من و X مخالف باشید...
اما این چیز رو تا حدودی تجربه کردم