برنامه نویس خوب،برنامه نویس بد...!
تجربه برنامهنویسی در این چند سال، مسائل بسیاری را درباره توسعه نرمافزارها به من آموخته است. گشتی در اینترنت و فهرست کردن آنچه تجربه کرده ام، نکاتی را کنار هم قرار داد که شاید برای شما نیز جالب توجه باشد
نشانه های برنامهنویس و برنامه نویسی خوب...
begin
1- یک برنامهنویس، حدود ده الی بیست درصد زمان خود را به کدنویسی مشغول است و بیشتر برنامهنویسها بدون توجه به تجربه و مهارت، در هر روز حدود ده الی دوازده خط کدبرنامه که در محصول نهایی بهکار گرفته خواهد شد، می نویسند.
برنامهنویسهای حرفهای 90 درصد زمان خود را صرف فکرکردن، تحقیق و آزمایش برای پیداکردن بهترین طراحی میکنند، اما برنامهنویسان بد، نود درصد زمان خود را صرف تغییر تصادفی کد، مشاهده نتیجه و اشکالزدایی آن میکنند. بیل گیتس دراین باره میگوید:«یک تراشکار ماهر و شایسته حقوقی چندین برابر یک تراشکار معمولی دریافت میکند، اما ارزش یک برنامهنویس خیلی خوب و ماهر ده هزار برابر یک برنامهنویس معمولی است.»
2- یک برنامهنویس خوب، 10 برابر بیشتر از یک برنامهنویس ساده تولیدکننده، مولد و مفید است و یک برنامهنویس حرفهای و ماهر 20 تا 100 برابر بیشتر از یک برنامهنویس ساده مفید خواهد بود. این یک اغراق نیست. مطالعات از دهه 1960 تاکنون بدون تناقض مؤید این امر است. یک برنامهنویس بد، تنها بیفایده نیست. او نه تنها هیچ کاری را انجام نمیدهد، بلکه کارهای بسیاری ایجاد کرده و برای حل آنها برای دیگران دردسرایجاد میکند!
3- برنامهنویسان حرفهای زمان خیلی کمی را به کدنویسی (کدی که در محصول نهایی بهکار خواهد رفت) اختصاص میدهند. افرادی که بیشتر زمان خود را صرف کدنویسی میکنند بسیار تنبل، سهل انگار و متکبر هستند و زمانی برای پیدا کردن راه حل قدیمی برای مسئله پیش روی خود اختصاص نمیدهند. برنامهنویسان حرفهای استاد تشخیص و استفاده دوباره از الگوهای برنامهنویسی هستند.
آنها از بازنویسی و استفاده دوباره کد خود برای دستیابی به بهترین طراحی نمیترسند و تا دستیابی به نتیجه مطلوب، دست از تلاش بر نمیدارند. در مقابل، یک برنامهنویس بد کدهایی مینویسد که از عدم وجود یکپارچگی مفهومی رنج میبرند، قوانین و قواعد تکرار، بازنویسی و وراثت در آنها رعایت نشده و از هیچ الگویی پیروی نمیکنند و به همین دلیل، بازنویسی و ایجاد تغییر در آنها بسیار مشکل است. همیشه، کنار گذاشتن کد نامناسب و شروع اصولی همه چیز، بسیار بهتر از تغییر و دست و پا زدن در انواع مشکلات است.
4- نرم افزارها نیز مانند مفاهیم دیگر از قوانین بی نظمی (Entropy) پیروی میکنند. تغییرات پی در پی به خرابی و فرسایش کد منجر شده و در نهایت یکپارچگی طراحی اصلی را از بین میبرند. با اینکه تغییرات و به تبع آن فرسایش کد امری اجتنابناپذیر است، اما برنامهنویسی که در بهکارگیری یکپارچگی مفهومی طرح خود خوب عمل نمیکند، نرمافزاری تولید میکند که خیلی خیلی سریع دچار فرسایش کد شده و قبل از اتمام، از ارزش و اعتبار مناسب ساقط میشود.
به همین دلیل، مهمترین دلیل مشترک شکست پروژههای نرمافزاری، شکست درزمینه حفظ نظم در یکپارچگی مفهومی طرح نرمافزار به شمار میرود. دومین دلیل مهم مشترک در زمینه شکست پروژههای نرمافزار، ارائه محصولی غیر از آنچه مشتری خواسته است،به حساب میآید.نکته قابل توجه دیگر آن است که فرسایش کد، سرعت پروژههای برنامهنویسی را به شدت و به صورت نمایی کاهش میدهد و به همین دلیل، بسیاری از پروژهها در زمان برنامهریزی شده به اتمام نمیرسند و هزینههای بسیاری به سیستم تحمیل میکنند و در نهایت نیز کنار گذاشته میشوند.
5- براساس تحقیقی که در سال 2004 انجام شده حدود 51 درصد از پروژههای نرمافزاری در وضعیت حیاتی خود دچار شکست شده و حدود پانزده درصد از آنها بهطور کلی به شکست منتهی میشوند. با این حال، این آمار حکایت از پیشرفت شرکتها و توسعهدهندگان در رابطه با برنامهریزی و طراحی نسبت به ده سال قبل از آن دارد. در سال 1994 آمار گویای آن بودند که 31 درصد پروژههای نرمافزار به شکست منجر شدهاند.
6- برنامهنویسی یک کار بسیار دشوار، تمام وقت و یک فعالیت ذهنی سنگین است. برنامهنویسان حرفهای در تمام مدت روز و هفت روز هفته به کار خود فکر میکنند. آنها بهطور معمول حجم بسیاری از کد برنامه خود را در حمام یا در تختخواب مینویسند و به این دلیل که حجم بسیاری از کار برنامهنویسی جایی غیر از روبهروی صفحهکلید انجام میشود، افزایش ساعت کاری افراد در دفتر اداری یا افزایش افراد پروژه کمکی به افزایش سرعت پیشرفت پروژه نخواهد کرد.
7- برنامه نویس خوب به کیفیت محصول نهایی اهمیت ویژه ای می دهد و تمام تلاش خود را در انجام بدون Bug پروژه به کار میگیرد.برنامه نویس بد دانسته منتظر نظر کنترل کیفیت میماند تا Bug ها را فرصتی دیگر برطرف نماید.
برنامه نویس خوب نیاز مشتری را درک میکند ، تمام ساختار اصلی پروژه را درک میکند و راه حل حرفه ای تری پیشنهاد میدهد حال آنکه برنامه نویس بد فقط خطوط موردنیاز را بصورت لحظه ای به پروژه اضافه میکند.
و در نهایت برنامه نویس خوب نگران تکنولوژی های جدید نیست ، متون فنی جدید را دنبال میکند و به درک و فراگیری آنها میپردازد ،یک هنرمند است که هنر خود را در چرخه ی تولید به نمایش میگذارد.
نکته پایانی : توانایی نوشتن کد شما را یک برنامه نویس نمیکند! به تکنولوژی ای که استفاده میکنید مسلط شوید و تمام جوانب آن را بررسی کنید، معماری نرم افزار را بیاموزید و از تجربه دیگران الگو بگیرید.
منابع : Wikipedia , Google ,StackOverflow
end.
به برنامه نویس بد میشه کد نویس هم گفت، همون عنوانی که خیلی ها استفاده میکنند
این عنوان رو به کسانی نسبت می دهند و کسانی استفاده می کنند که تولید نرم افزار رو با تایپ حرفه ای یکی می دونند و درکی از طراحی خوب، تکنولوژی مناسب، زیرساخت ها ندارند.
ممنون از مطلبت