مایکروسافت، گوگل یا یاهو

  • یوسف مهرداد بی‌بالان

اینکه در شرکتهای بزرگ دنیا چگونه کار می‏کنند، براي من هميشه جذاب بوده است، از آن جهت كه مي‏توان از روش كارشان الگوبرداري كرد و سعي كرد چرخ را دوباره اختراع نكنيم. يكي از موضوعاتي كه با دوستان خارج از كشور هميشه مورد بحث و بررسي قرار مي‏دهيم، همين نكته است.

داستان يك كارورز از مايكروسافت، گوگل و ياهو را مطالعه كنيد. نكات جالب و جذاب زيادي در آن بيان شده است.

http://tastyresearch.wordpress.com/work-stories

كرم ضد آفتاب بماليد: سخن راني كورت ونه گات در مراسم فارغ التحصيلي سال 1997 دانشگاهM.I.T

  • یوسف مهرداد بی‌بالان

نمی‏دانم مطلب زیر را کدام یک از دوستانم برایم فرستاده است. نمی‏دانم مرجع اصلی مطلب زیر کجاست. ولی خواندنش خالی از لطف نیست.

كورت ونه گات، يكي از دوست داشتني‏ترين نويسنده‏هاي زنده دنيا است. او سال 1922 در اينديانا پوليس آمريكا به دنيا آمده است. اگرچه خيلي‏ها او را يك نويسنده داستان‏هاي علمي تخيلي به شمار مي‏آورند، رمان‏هاي او عموما” خيلي فراتر از يك قصه علمي تخيلي معمولي است. نگاه انتقادي ونه گات نسبت به جامعه مدرن به خصوص جامعه امريكا به همراه طنزي كه استادانه در لابه لاي كلمات و جمله‏هايش استفاده مي‏كند، از او نويسنده‏اي دقيق و تيزبين ساخته است.

مشهورترين كتابي كه از ونه گات به فارسي ترجمه شده سلاخ خانه شماره پنج است. شب مادر، اسلپ استيك، گهواره گربه و مجمع الجزاير گالاپاگوس هم از جمله رمان‏هايي است كه مي‏توانيد در بازار از او پيدا كنيد.

خانم ها و آقايان فارغ التحصيل! كرم ضد آفتاب بماليد.
اگر مي‏خواستم براي آينده شما فقط يك نصيحت بكنم، راه ماليدن كرم ضد آفتاب را توضيح مي‏دادم. خواص و آثار مفيد درازمدت كرم ضد آفتاب توسط دانشمندان ثابت شده است. در حالي كه ساير نصايح من هيچ پايه و اساس قابل اعتمادي جز تجربه‏هاي پرپيچ و خم شخص خودم ندارد. اينك اين نصايح را خدمتتان عرض مي‏كنم.
قدر نيرو و زيبايي جواني‏تان را بدانيد، ولي اگر هم ندانستيد، ولش. روزي قدر نيرو و زيبايي جواني‏تان را خواهيد دانست كه طراوت آن روبه افول مي‏گذارد، اما باور كنيد تا بيست سال ديگر به عكس‏هاي جواني خودتان نگاه خواهيد كرد و به ياد مي‏آوريد چه امكاناتي در اختيارتان بوده و چقدر فوق‏العاده بوده‏ايد.
آن طوركه تصور مي‏كنيد چاق نيستيد.
نگران آينده نباشيد. اگر هم دلتان مي‏خواهد نگران باشيد، فقط بدانيد كه نگراني همان اندازه مؤثر است كه جويدن آدامس بادكنكي درحل يك مساله جبر.
مشكلات اساسي زندگي شما، بي‏ترديد چيزهايي خواهند بود كه هرگز به مخيله نگران شما خطور هم نكرده‏اند. از همان نوعي كه ساعت چهار بعدازظهر يك روز سه‏شنبه عاطل و باطل ناگهان ديد انسان را كور مي‏كند.
هر روز يكي از كارهايي را كه از آن وحشت داريد انجام بدهيد.
آواز بخوانيد.
با دل ديگران بي‏رحم نباشيد و با كساني كه با دل شما بي‏رحم بوده‏اند سر نكنيد.
نخ دندان به كار ببريد.
عمرتان را با حسادت تلف نكنيد. گاهي شما جلو هستيد و گاهي عقب، مسابقه طولاني است و سر آخر خودتان هستيد كه داريد با خودتان مسابقه مي‏دهيد.
تعريف‏هايي را كه از شما مي‏شود به خاطر بسپاريد. ناسزاها را فراموش كنيد. اگر موفق به انجام اين كار شديد راهش را به من هم نشان بدهيد.
نامه‏هاي عاشقانه قديمي تان را حفظ كنيد. صورت حساب هاي بانكي گذشته را دور بيندازيد.
نرمش كنيد. بدنتان را هر قدر كه مي‏توانيد كش بياوريد. اگر نمي‏دانيد مي‏خواهيد با زندگي‏تان چه كنيد، احساس گناه نكنيد. جالب‏ترين افرادي را كه در زندگي شناخته‏ام در بيست و دو سالگي نمي‏دانسته‏اند مي‏خواهند با زندگي‏شان چه كنند.
برخي از جالب‏ترين چهل ساله‏هايي را هم كه مي‏شناسم هنوز نمي‏دانند.
تا مي‏توانيد كلسيم بخوريد. با زانوهايتان مهربان باشيد. وقتي قدرت زانوهاي خود را از دست داديد كمبودشان را به شدت حس خواهيد كرد.
ممكن است ازدواج كنيد، ممكن است نكنيد، ممكن است صاحب فرزند شويد، ممكن است نشويد، ممكن است در چهل سالگي طلاق بگيريد، احتمال هم دارد كه در هفتاد و پنجمين سالگرد ازدواجتان رقصكي هم بكنيد. هر چه مي‏كنيد نه زياد به خودتان بگيريد، نه زياد خودتان را سرزنش كنيد. انتخاب هاي شما بر پايه احتمال پنجاه درصد بوده است، همان طور كه مال همه بود.
از بدنتان لذت ببريد و از آن چه ديگران درباره آن مي‏انديشند وحشت نداشته باشيد. اين بهترين ابزاري است كه در سراسر عمر خواهيد داشت.
از خواندن مجلات مربوط به زيبايي پرهيز كنيد. تنها خاصيت آنها اين است كه به شما بقبولانند زشتيد.
دستورالعمل‏ها را بخوانيد، حتي اگر از آن ها پيروي نمي‏كنيد.
در شناخت پدر و مادر خود بكوشيد. هيچ كس نمي‏داند كي آن ها را براي هميشه از دست خواهد داد.
با خواهران و برادران خود مهربان باشيد، آن ها بهترين رابط شما با گذشته هستند و به ظن قوي، كساني كه بيش از هر كس ديگري در آينده به شما خواهند رسيد.

به ياد داشته باشيد كه دوستان مي‏آيند و مي‏روند ولي آن تك و توك دوستان جاني خود را حفظ كنيد. براي پل زدن ميان اختلاف‏هاي جغرافيايي و روشهاي زندگي سخت بكوشيد، زيرا هر چه بيشتر از عمر شما بگذرد، بيشتر پي مي‏بريد كه به افرادي كه در جواني مي‏شناختيد محتاجيد.
سفر كنيد.
برخي حقايق لاينفك را بپذيريد: قيمت‏ها صعود مي كنند، سياست مداران كلك مي‏زنند، شما هم پير مي‏شويد. و آن گاه كه شديد، در تخيلاتتان به ياد مي‏آوريد كه وقتي جوان بوديد قيمت‏ها مناسب بودند، سياست‏مداران شريف بودند، و بچه‏ها به بزرگترهايشان احترام مي‏گذاشتند.
به بزرگترها احترام بگذاريد.
توقع نداشته باشيد كه كس ديگري نان آور شما باشد. ممكن است حساب پس‏اندازي داشته باشيد، شايد هم همسر ثروتمندي نصيب تان شده باشد، ولي هيچ گاه نمي‏توانيد پيش‏بيني كنيد كه كدام خالي مي‏شود يا جا خالي مي‏دهد.
خيلي به موهايتان ور نرويد، وگرنه وقتي چهل سالتان شد شبيه موهاي هشتاد ساله‏ها مي‏شود.
دقت كنيد كه نصايح چه كسي را مي‏پذيريد، اما با كساني كه آنها را صادر مي‏كنند بردبار باشيد. نصيحت، گونه ديگر غم غربت است. ارايه آن روشي است براي بازيافت گذشته از ميان تل زباله‏ها، گردگيري آن، و ماله كشيدن بر روي زشتي‏هايش و مصرف دوباره آن به قيمت بالاتر از آن چه ارزش دارد.
اگر نخواستيد توصيه‏هايم را گوش كنيد، نكنيد. اما حرفم را در مورد كرم ضد آفتاب بپذيريد.

افول برنامه‏نویسی شیءگرا

  • یوسف مهرداد بی‌بالان

مقاله جالبی در سه قسمت از Karsten Wagner مطالعه کردم که در نقد برنامه‏نویسی شیءگرا و بیان دلایلی در افول آن بود.
خواندن این مقاله را به شما توصیه می‏کنم.
OOP is dead – Part 1
OOP is dead – Part 2

OOP is dead – Part 3

اگر فرصت کردید، نظرتان را در اینجا یادداشت کنید تا در مورد آن مباحثه‏ای داشته باشیم.

رابطه معماري نرم‏افزار و آبگوشت

  • یوسف مهرداد بی‌بالان

يكي از نكات مهمي كه در مفهوم معماري نرم‏افزار وجود دارد اين مطلب كه معماري در يك كلام، اثبات كردن راه‏حلي است كه شما براي نرم‏افزار ارائه كرده‏ايد با توجه به معيارهاي كيفي كه با مشتري توافق كرده‏ايد. داشتم اين مطلب را براي بچه‏ها در كلاس توضيح مي‏دادم و در نظرم بود كه به شكلي كاري كنم كه اين مطلب در ذهنشان ماندگار شود. به ياد واقعه‏اي افتادم كه يكي از نزديكان تعريف كرده بود.

موضوع از اين قرار بود كه عده‏اي جايي مهمان بودند و غذا هم آبگوشت بود. موقع كوبيدن گوشت، نخود و لوبياي آبگوشت كه صاحب‏خانه مشغولش بود. گفتگوي زير رخ داد:

-مهمان: چقدر حرفه‏اي گوشت كوبيده را مي‏كوبي؟

-ميزبان: لطف داريد. تازه اين كه چيزي نيست. مي‏تونم بدون اين كه سرم را حركت دهم، گوشت كوبيده را بكوبم. شما مي‏توني اين كار رو بكوني؟

– مهمان: بله كه مي‏توانم.

ميزبان: خوب بفرما ثابت كن.

البته مهمان اين كار را نكرد. ولي واقعيتش اين بود كه اين كلكي بود كه ميزبان براي خلاصي از دست كوبيدن گوشت كوبيده به ذهنش رسیده بود.

با گفتن اين داستان همه زدند زير خنده و واقعاً هم خنده‏دار بود. با اين داستان ياد استاد عزيز و دوست‏داشتني آقاي روحاني رانكوهي افتادم كه هميشه با اين روشها به ما ياد مي‏داد كه كنه مطلب چيست. خداوند يار و نگهدارش باشد.

بله واقعيت همين است. اگر مطمئن هستيد كه راه حلي كه ارائه كرده‏ايد، جواب مي‏دهد، ثابتش كنيد. اين تلاش شما همان چيزي است معماري مبناگفته مي‏شود.(در بيان ساده و عاميانه)

در حاشیه: صحبت از آبگوشت كه مي‏شود ياد دوستان و همكاران خوبم آقايان مهندس روح‏الله رستمي، احمد زارعي، محمد باكويي وآرش فرزين در شركت نبراس انفورماتيك مي‏افتم كه به ديزي‏سرايي در خيابان ولي‏عصر مي‏رفيتم و نهار ديزي مي‏خورديم.

جاي همه شما خالي.

کی جاوا خواهد مرد؟

  • یوسف مهرداد بی‌بالان

مطلب جالبي از Matt Quail با عنوان When Java is dead مطالعه كردم كه در نوع خودش جالب بود.

علاوه بر اشاره به این نکته كه افزايش پيچيدگي نرم‏افزار باعث خواهد شد به سمت زبانها و راه‏كارهاي جديد برويم، به نكات جالب ديگري نيز اشاره كرده بود.

اما پاراگراف آخر مطلبش كه از دلتنگي‏هايش از دوري جاوا مي‏گويد، بسيار خواندني است.

در آدرس زير مي‏توانيد تاريخچه‏اي از زبانهاي برنامه‏سازي را پيدا كنيد:

قانون بقاي پيچيدگي نرم‏افزار ( the first law of software complexity)

  • یوسف مهرداد بی‌بالان

قوانين بسيار زبادي حاكي از آن هستند كه موضوعات طبيعت مقادير ثابتي دارند و از شكلي به شكل ديگر تبديل مي‏شوند.

– قانون بقاي ماده و انرژي

– قانون P * V / T= Cte

– قانون بقاي پروژه در دانشگاه

– قانون بقاي دمپايي در خوابگاه

Matt Quail در نوشته‏اي با نام “قانون اول Matt در پیچیدگی نرم‏افزار” بحث جالبي را مطرح مي‏كند. اين نكته كه “پيچيدگي مسئله مقدار ثابتي است” و مي‏توانآن را مخفي كرد ولي هنوز وجود دارد. تجرید تنها كمك مي‏كند كه پيچيدگي را به جايي منتقل كنيد كه مديريت و كنترل آن آسان‏تر است. (تفرقه بنداز و حكومت كن).

هر چند با اين قانون كاملاً مؤافقم ولي اين مطلب، موضوع جديدي نيست.نگاهي به تاريخچه مهندسي نرم‏افزارمؤيد اين تلاش است. تلاش براي مقابله با پيچيدگي روزافزون مسائلي كه در حوزه نرم‏افزار با آن مواجه هستيم. اصلاً مهندسي نرم‏افزار زاييده بحران توليد نرم‏افزار است كه خود معلول افزايش پيچيدگي حوزه مسئله و حوزه راه حل است.

حركت به سمت تجريدهاي سطح بالاتر در حوزه راه حل (Solution Domain) – مانند زبانهاي خاص حوزه مسئله DSL يا چارچوبهايي مانند J2ee, .NET – در همين راستا هستند.

اما فراموش نكنيد: انسانها اكثراً در حال حل مسائلي هستند كه خود آنها را به وجود آورده‏اند.

وقتي كه تجريد و لفاف‏بندي نشتي پيدا مي‏كنند (Leaky Abstractions)

  • یوسف مهرداد بی‌بالان

تجرید(Abstraction) به عنوان یکی از مبانی اصلی در رهیافت شیءگرایی و به طور کلی مهندسی نرم‏افزار پذيرفته شده است. تجريد بهمعناي برجسته‏سازي آن چه كه براي خواننده مهم است و حذف آن چه كه براي خواننده مهم نيست، تعريف شده است. ‍‍‌[Mary Shaw].

تجرید و لفاف‏بندی(Encapsulation) همواره توسط طراحان تعديل مي‏شوند.بهعبارت ديگر،تعديل بين آن چه كه براي استفاده كننده مهم است و مخفي‏كردن نحوه انجام آن، هميشه يكي از مهم‏ترين تصميماتي است كه طراحان بايد اتخاذ نمايند. اما گاهي نحوه انجام تجريد به گونه‏اي مي‏شود كه تجريد اصطلاحاً نشتي پيدا مي‏كند. شايد بهتر است بگوييم كه لفاف‏بندي دچار نشتي مي‏شود. مثالهاي خيلي جالبي از اين موضوع را در نوشته‏هاي Joel Spolsky پيدا كردم كه توصيه مي‏كنم حتماً آنها را مطالعه نماييد.

نشتي تجريد،ما را به ياد ضرب‏المثل معروف “هر چه بگندد، نمكش مي‏زنند. واي به روزي كه بگندد نمك”مي‏اندازد.

برای خروج از جستجو کلید ESC را بفشارید