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

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

مقاله جالبی در سه قسمت از 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 پيدا كردم كه توصيه مي‏كنم حتماً آنها را مطالعه نماييد.

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

ضرورت بكارگيري مدل بومي SPCOM توسط پيمانكاران پروژ ه هاي فناوري اطلاعات

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

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

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

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

عنوانمقاله: ضرورت بكارگيري مدل بومي SPCOM توسط پيمانكاران پروژ ه هاي فناوري اطلاعات

خلاصه مقاله:
در حال حاضر انجام پروژه هاي فناور ي اطلاعات و نرم افزار يكي از مهمترين دغدغه هاي هر كشور بوده، كه اين موضوع حركت به سوي كاربرد مدل ها و استانداردهاي مديريتي اين پروژه ها توسط پيمانكار ان را ضروري مي نمايد. در اين تحقيق اهميت و جايگاه كنترل و پايش در مديريت پروژه هاي مذكور مورد بررسي قرار گرفته و با معرفي اجمالي مدل بومي كنترل و پايش پروژه هاي نرم افزاري (SPCOM) -طراحي شده درمركز رشد دانشگاه تهران – به ضرورت كاربرد اين مدل مي پردازد. دلايل اين ضرورت در پنج سطح مختلف كه شامل انجام، مديريت،ا ستانداردسازي، مديريت كمي و بهينه سازي فرآيندهاي كنترل و پايش است، به تفصيل شرح داده شده و خصوصيات و موفقيت هاي پيمانكاران، در هر سطح اين مدل بيان گرديده است.

کتاب جالب

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

هفته پیش یه کتاب خیلی جالب خواندم. اسم این کتاب «دایرةالمعارف بی‏نزاکتی یا چطور کفر مامان رو در بیاریم» نوشته آر.جی.فیچر و ترجمه تبسم آتشین‏جان، چاپ ششم از نشر حوض نقره بود.
این کتاب سعی دارد تا نکات مهمی! را به کوچولوها بیاموزد.
بخشهایی از آن را انتخاب کردم و تقدیم می‏کنم به «رها» کوچولو.
-می‏دونی همه جازیستهای موفق وقتی بچه بودن، موقع غذا خوردن مدام با قاشق می‏زدن روی ظرفشون
-علم ثابت کرده وقتی غذا رو بمالی به صورتت خوش مزه‏تر می‏شه
-اگه گفتی کاغذ توالت چند متره؟
– مامان عاشق نقاشی‏های توست. دیوارهای اتاقشو …
-بعد از عبارت «تو دیگه بچه نیستی» منتظر شنیدن یه چیز ناخوش‏آیند باش
-نذار کسی سرت شیره بماله. غذای تو بشقاب مامان و بابا خیلی خوش‏مزه‏تر ازغذای توی بشقاب خودته
-یادت باشه که آدم قبل از اینکه قاشق داشته باشه، انگشت داشته
-ته بستنی قیفی جایزه هست. اول ته شو بخور
-می‏خوای گربه رو راحت‏تر پیدا کنی؟ به پاهاش شکلات بمال
-سی دی مثل بشقاب پرنده است. می‏گی نه. امتحانش کن

واقعاً مادرانمون چقدر برامون زحمت کشیدند و جداً بهشت براشون خیلی کمه.
خوش باشید.

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