PDA

View Full Version : گفتگو: بلایی به نام کامپوننت



fjm11100
شنبه 03 بهمن 1388, 11:28 صبح
" کسی کامپوننت برای... داره؟"
"C.r.a.c.k کامپوننت ... میخوام"
این جمله ها و سوالات از جمله ها و سوالهای متداول فروم های برنامه نویسی هستند!!
اصولا من مخالف Component و Component base بودن برنامه ها نیستم اما...
فلسفه نوشتن برنامه ها بر پایه اجزای ریزتر با عملکرد مستقل یا همان کامپوننت از اصول بسیار درست و 100% مهندسی در مهندسی نرم افزار است. ریز کردن کد به روتین ها و توابع از همان اوایل پیدایش زبانهای برنامه نویسی به عنوان یک بخش ضروری در نظر گرفته میشد. بعدها هم که شی گرایی بوجود آمد با خلق مفهومی به نام کلاس این مطلب بصورت جدی تری دنبال شد. در ادامه مهندسان نرم افزار تصمیم به ساخت اجزایی گرفتند که علاوه بر ریز کردن نرم افزار اصلی قابلیت استفاده مجدد در دیگر پروژه ها را نیز داشته باشد. Reuse بودن اجزا نقش بسزایی در تسریع پروژه ها داشته و دارد و این مطلب شدیدا مورد تاکید مدیران پروژه ها قرار دارد.
اما با تجاری شدن این قطعات کد قابل استفاده مجدد در قالب Com ها، Activex ها و کامپوننت ها مسئله صورت جدیدی به خود گرفت. شما به عنوان مدیر پروژه از کد بسته ای در درون پروژه خود استفاده می نمایید که به هیچ وجه به ساختار آن دسترسی ندارید، نمیدانید چگونه و با چه کیفیتی پیاده سازی شده است، چقدر بهینه بودن و امنیت کد در آن لحاظ شده است، پشتیبانی آن چه به لحاظ توسعه و چه به لحاظ رفع خطاهای احتمالی تا چه حد پایدار و قابل اعتماد است، تا چه میزان با پلتفرم سخت افزاری و نرم افزاری که محیط اجرای نرم افزار شماست سازگاری دارد و...
درواقع شما با اینکار آینده پروژه و حتی آینده شرکت خود را به شرکت دیگری وابسته می کنید که هیچ اطلاعی از اعتبار و پایداری آن شرکت بطور شفاف در اختیار ندارید، به نوعی خودکشی تجاری!!!
نظر من به اختراع دوباره چرخ نیست. بطور مثال چه ضرورتی دارد که شما یک تیم حرفه ای را چندین سال درگیر نوشتن یک ابزار گزارش گیری و یا کامپوننت پیچیده ریاضی نمایید در حالی که براحتی می توانید به ابزاری مشابه با قیمتی مناسب و پشتیبانی پایدار(که مسلما شامل محصولات کرک شده نمی شود!!) از یک شرکت معتبر و با سابقه دسترسی داشته باشید؟
اما استفاده از کامپوننت های کرک شده و یا خریداری شده از شرکتهای نامعتبر و کم سابقه برای کاربردهایی مانند GUI تنها و تنها منجر به نابودی محصول شما در میان مدت و یا دراز مدت خواهد شد.
این مقوله برای برنامه نویسان تازه کار زیان سنگین تری بهمراه خواهد داشت. تنبلی ذهن، درگیر شدن در یادگیری ابزار بجای یاد گرفتن علوم و تکنولوژی های روز و اتلاف زمان، ایجاد وهم کسب مهارت حرفه ای از جمله زیان های استفاده از این شکلاتهای مسموم می باشد.
اما راهکار چیست؟
1- استفاده از دانش خود و تلاش بیشتر در ساخت ابزار مورد استفاده خودتان که علاوه بر اشراف شما بر محصول تولید شده منجر به افزایش دانش شما خواهد شد و شاید هم روزی همین ابزار بطور مستقل برای شما تولید درامد داشته باشد!!
2- استفاده از ابزار کد باز
3- استفاده از محصولات معتبر و خریداری آنها برای استفاده از خدمات پشتیبانی

نظر شما چیست؟

kia1349
شنبه 03 بهمن 1388, 12:45 عصر
به نظر من بگارگیری کامپوننتهایی که کارهای مهمی رو انجام میدن در پروژه های با اهمیت ، با ریسک زیادی همراه است به همون دلایل منطقی که شما گفتید
ولی استفاده از برخی کامپوننتهای معروف که قطعا اسم و برند شرکتهای تولید کننده اونها هم کلی ارزش داره و شرکتهای تولید کننده الزامات و تعهدات زیادی در قبال محصول تولیدیشون دارن(البته ک ر ک نشده ها) با ریسک بسیار پائینی همراه است.ولی خود من همین الان هم بسیاری از کارهامو در برنامه نویسی با کد انجام میدم(البته کدهای استاندارد و مطابق با الگوریتم کدهای تولید شده توسط سیستم) و سعی میکنم طوری در گیر سیستم بشم تا اصطلاحا ابتکار برنامه نویسی از من گرفته نشه.استفاده از امکاناتی مانند ویزاردها و ..... میتونه به برنامه نویس سرعت بده ولی قطعا در قبالش بهای سنگینی رو از برنامه نویس میگیره بنام خلاقیت