تور لحظه آخری
امروز : چهارشنبه ، 16 آبان 1403    احادیث و روایات:  امام علی (ع):علم گنج بزرگی است که با خرج کردن تمام نمی شود.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

قیمت پنجره دوجداره

بازسازی ساختمان

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

اوزمپیک چیست

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

 






آمار وبسایت

 تعداد کل بازدیدها : 1826656555




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
 refresh

کدهای نرم افزارهای موفق چه ویژگی دارند؟


واضح آرشیو وب فارسی:ماهنامه شبکه: تنوع کدهای نرم افزاری در جهان بسیار زیاد شده است. گوگل به تنهایی بیش از دو میلیارد دستور برنامه نویسی را در مخزن کدهایش نگه داری می کند؛ اما همه کدها با یکدیگر یکسان نیستند. طراحان نرم افزارها معمولاً از استراتژی های خاصی برای بهینه سازی کدهای خود استفاده می کنند؛ اما سؤال اصلی این است که چه عواملی باعث می شوند تا کدهای یک نرم افزار متمایز از کدهای نرم افزار دیگر شده و چه عواملی باعث می شوند، برنامه نویسان حرفه ای، یک کد نرم افزاری را خوب یا بد قلمداد کنند؟برای آن که بتوانیم به این پرسش پاسخ درستی دهیم باید با تعداد زیادی از توسعه دهندگان گفت وگو کنیم، برگه های مرتبط با برنامه نویسی را موردبررسی قرار دهیم، کدهای نوشته شده توسط افراد مختلف را تحلیل کنیم و بالاخره عوامل مثبت و منفی را دسته بندی کنیم تا آنگاه بتوانیم علت خوب یا بد بودن یک قطعه کد را بیان کنیم. عوامل بسیار زیادی باعث می شوند تا کدهای یک نرم افزار خوب یا بد شناخته شوند، اما به طورکلی همه برنامه نویس ها بر این موضوع اتفاق نظر دارند که شش عامل اصلی خوانایی، فهم آسان، توضیحات، قابلیت نگهداری، ساده و انعطاف پذیر بودن و درنهایت اجرایی بودن باعث می شوند کدهای یک نرم افزار متمایز از کدهای مشابه شود. در ادامه به این شش عامل پرداخته ایم. مطلب پیشنهادی افزایش سرعت برنامه نویسی با متدها و کلاس های از پیش ساخته شده در دات نت ترفندهای کوتاه و کاربردی در سی شارپ راحت خوانده شوند به نظر می رسد همه طراحان و توسعه دهندگان در این مورد اتفاق نظر دارند که یکی از مهم ترین عامل های موفقیت یک نرم افزار، خوانا بودن کدهای آن است؛ یعنی کدهایی که توسط طراحان و برنامه نویس ها در مدت زمان اندکی قابل خواندن و فهمیدن باشند، به عنوان کد خوب شناخته می شوند. لوک برنام، مهندس ارشد نرم افزار در Lionbridge می گوید: «اگر من احساس کنم توانایی درک کدی را در 5 دقیقه یا کمتر از آن ندارم، نشان می دهد، کدنویس کارش را به درستی انجام نداده است.» کامپیوتر اهمیتی به نام متغیرها یا تورفتگی موجود در کدها نمی دهد اما این موضوع برای مردم بااهمیت است. یک کد فقط یک بار نوشته می شود، اما هزاران مرتبه خوانده می شود. ازاین رو به کارگیری نام های بامسما برای متغیرها و به کارگیری درست تورفتگی در زمان کدنویسی باعث افزایش خوانایی کد شده و کیفیت کدها را افزایش می دهد. کدنویسی خوب به معنی پیاده سازی درست سبک بندی کدها است. رعایت فاصله مناسب، به کارگیری درست تورفتگی کدها، پیروی از قواعد مرسوم و از همه مهم تر انتخاب نام مناسب برای متغیرها ازجمله عوامل مؤثر در خوانا بودن یک کد به شمار می روند. به طور مثال شکل 1 به هیچ عنوان یک حرکت هوشمندانه درزمینه رعایت تورفتگی ها نیست. اگر یک تابع دارای دو آرگومان است، این دو آرگومان را در دو خط قرار دهید. اگر یک عبارت ریاضی از واژه های ریاضی استفاده می کند، سعی کنید هر یک از آن ها را در خط مربوط به خود قرار دهید. به طور خلاصه، خوانایی بیشتر برابر با درک بیشتر است، همین موضوع باعث می شود تا زندگی راحت تر شود. شکل1: عدم رعایت درست سطح تورفتگی در کدها باعث می شود خوانایی آن ها به طرز محسوسی کاهش یابد. زمانی که افراد با نگاه کردن به کدهایی به سرعت آن ها را درک کنند، نرم افزارها نیز به همان سرعت به جلو پیش خواهند رفت. زمانی که یک گروه نرم افزاری گرد هم می آیند و نرم افزاری را خلق می کنند، اعضاء این گروه تا ابد در کنار یکدیگر نخواهند بود و عضوهای جدیدی به گروه اضافه خواهند شد، درنتیجه اگر کدهای یک محصول نرم افزاری با وضوح کامل نوشته شده باشند، برنامه نویس های جدید به سرعت کدها را درک کرده و قادر هستند نرم افزار را با سرعت بیشتری به جلو هدایت کنند. توضیح خوبی داشته باشند لوک برنام در ادامه صحبت های خود می افزاید: «در کنار قالب بندی و نام گذاری مناسب، توضیحات درج شده در کنار کدها می تواند به طرز شگفت انگیزی به فهم ساده تر کدها کمک کند؛ اما هرگونه توضیحی مناسب نیست. من به توضیحاتی که اعلام می دارند یک حلقه For چگونه کار می کند نیازی ندارم. (شکل 2) من به توضیحاتی نیاز دارم که به من بگویند یک قطعه کد چرا و به چه دلیل استفاده شده و قرار است چه کاری انجام دهد. (شکل 3) به نظر من کدی خوب است که نشان دهد در ذهن نویسنده کد چه چیزی گذشته است.» توضیح خوب نه تنها به طراحان دیگر کمک می کند تا از فلسفه کدها آگاه شوند، به خود برنامه نویس هم کمک می کند. یک برنامه نویس زمانی که کدهایی را می نویسد می داند بر مبنای چه منطقی رفتار کرده است، اما چند سال بعد، به طور دقیق نمی داند یک قطعه کد به چه منظوری نوشته شده و چه کاری انجام می دهد. درواقع پارادایم برنامه نویسی ادیبانه به چیزی فراتر از یکسری توضیح های مختصر بازمی گردد، به طوری که دربرگیرنده مستنداتی است که اقدام به توضیح کدها می کند. کوین مویلن مهندس ارشد نرم افزار در Genuine Interactive این موضوع را به سادگی این گونه بیان می کند: «نظرات بسیار عظیم و حائز اهمیت اند.» البته در این زمینه دو دیدگاه وجود دارد، عده ای بر این باوراند که قطعه کدی خوب است که نیاز به هیچ توضیحی نداشته باشد و بتواند خودتعریف باشد، اما در طرف مقابل گروه دیگری بر این باور هستند که کدها با هر کیفیتی که تولیدشده باشند، به توضیح نیاز دارند. شکل2: هر فرد غیر برنامه نویسی با نگاه کردن به این دستورات به خوبی می داند، قطعه کد اول دریافت کد کشور و قطعه کد دوم برابر بودن عبارت واردشده با US را نشان می دهد. ساده باشند یک قطعه کد درنهایت ممکن است کارهای پیچیده ای را انجام دهد، اما طراحان خوب، بهترین کدها را به ساده ترین شکل ممکن طراحی می کنند. برنامه نویس های خوب به درستی می دانند که کار را چگونه باید انجام دهند، به طوری که کدهای نوشته شده به دوراز هرگونه پیچیدگی باشند. مویلن دراین باره می گوید: «هر قطعه کدی که برای انجام کار مشخصی طراحی شده است، خواه کوچک یا بزرگ باید وظیفه اش را به بهترین نحوه ممکن انجام دهد. بهترین راه حل ها در ساده ترین راه حل ها قرار دارند.» یک تابع کوچک که بتواند یک وظیفه را به خوبی به سرانجام برساند از 1000 خط کد که مدیریت آن ها کابوس شبانه است، ارزشمندتر است. لوک برنام نیز بر ساده سازی کدها تأکید خاصی دارد، او همواره به اعضای گروه خود توصیف می کند کدها را تا حد امکان ساده کنند. لوک برنام در ادامه صحبت های خود درباره ساده سازی می افزاید: «کد خوب تنها ساده نیست، بلکه از ساده ترین و دم دست ترین روش ها استفاده می کند. کد خوب به کمترین زمان ممکن برای طراحی نیازمند است. من کدهای زیادی را دیده ام که انواع مختلفی از کارها را به خوبی انجام می دادند، به دلیل این که از ابتدا به ساده ترین شکل ممکن نوشته شده بودند.» شاید این جمله معروف از بیل گیتس را شنیده باشید که می گوید: «من همیشه انسان های تنبل را برای انجام کارهای سخت در مایکروسافت انتخاب می کنم، به دلیل این که یک انسان تنبل همواره ساده ترین راه را برای انجام کارها انتخاب می کند.» (به نقل از سایت telegraph.co.uk)  شکل3: در این مثال من در نظر دارم تابعی را از یک کتابخانه دیگر فراخوانی کنم. توضیحات به خوبی بیان گر این موضوع هستند. خلاصه طراحان بر این باور هستند که ساده نگه داشتن چیزها سرانجام به طراحی نرم افزارهای باکیفیت تر کمک می کند. آمارها نشان داده اند که بخش عمده ای از باگ های نرم افزاری به علت پیچیده بودن سورس کدها به وجود آمده است. انعطاف پذیر باشند انعطاف پذیری یک قطعه کد نرم افزاری به این معنی است که هر زمان نیازی به تغییر داشته باشد، در سریع ترین زمان ممکن تغییر روی آن اعمال شده و نرم افزار گسترش پیدا کند. همچنین قطعه کدی انعطاف پذیر است که در آینده به ساده ترین شکل ممکن در بخش های دیگر قابل استفاده مجدد (reuse) باشد. لوک برنام انعطاف پذیری را این گونه بیان می کند: «نرم افزاری به خوبی نوشته شده است که هر دو جنبه نیازهای امروز و نیازهای آینده را در خود جای داده باشد». پیش بینی نیازهای آینده غیرممکن است، اما می توان نرم افزاری را نوشت که از انعطاف پذیری لازم برخوردار باشد و با مختصر تغییرهایی با نیازهای آینده همسو شود. کدی خوب به شمار می رود که طراحان در آینده با اضافه کردن یا تغییر بخش های مشخصی از کد، بدون آن که نیازی به شکستن بخش های دیگر باشد، بتوانند با آن کار کنند.» کریستوفر جانسون در سایت Stack overflow نوشته است: «شما زمانی اطلاع پیدا خواهید کرد یک قطعه کد به درستی نوشته شده است یا خیر که خود تلاش کنید آن ها را تغییر دهید.» مایکل رایلی در Stack Exchange نوشته است: «نشانه یک کد خوب، محصولی است که شما کدنویسی آن را شش ماه پیش انجام داده اید و اکنون شخص دیگری بدون آن که سؤالی در خصوص این کد از شما داشته باشد توانایی ویرایش آن ها را داشته باشد». در کنار قالب بندی و نام گذاری مناسب، توضیحات درج شده در کنار کدها می تواند به طرز شگفت انگیزی به فهم ساده تر کدها کمک کند قابلیت نگه داری داشته باشند مهم نیست یک قطعه کد تا چه اندازه خوب نوشته شده باشد، این احتمال وجود دارد که یک قطعه کد دارای باگ های نرم افزاری باشد. مویلن می گوید: «کدهای خود را به گونه ای پیاده سازی کنید که در زمان موردنیاز هر شخصی توانایی اصلاح آن ها را داشته باشد.» قابلیت نگه داری، یکی از ویژگی های کلیدی کدهای خوب به شمار می رود. برای آن که همه کدها قابلیت نگهداری داشته باشند لازم نیست آن ها را بیش ازحد پیچیده کنید. همواره در پیاده سازی کدهای خود سعی کنید، وظایفی همچون تغییر مقدار آدرس های URL، دسترسی های کلیدی، تغییر گذرواژه بانک های اطلاعاتی و چنین مواردی را به ساده ترین شکل ممکن انجام دهید. توجه به این نکته باعث می شود تا نگه داری کدها در آینده به سادگی امکان پذیر باشد. دیوید ریچمن در Quora نوشته است: «تفاوت کدی که به درستی کار می کند با کدی که از طراحی عالی برخوردار است به قابلیت نگهداری آن بازمی گردد.» و ... کار کنند سرانجام به بارزترین و مشخص ترین ویژگی یک کد نرم افزاری خوب می رسیم. یک کد خوب درنهایت باید قابلیت اجرا داشته باشد. مویلن دراین باره می گوید: «یک قطعه کد نرم افزاری در درجه اول باید کاری را که برای آن طراحی شده است انجام دهد.» لوک برنام دراین باره می گوید: «هرچند همه چیز در سادگی خلاصه می شود، اما اگر یک نرم افزار توانایی انجام وظیفه ای را که از آن انتظار داریم نداشته باشد، مهم نیست چقدر خوب به نظر برسد، چون فاقد ارزش خواهد بود». ============================= شاید به این مطالب هم علاقمند باشید: CES 2016: کِرم روباتی که به کودکان سه ساله کدنویسی آموزش می دهد CES 2016: توپ اسباب بازی که اصول پایه برنامه نویسی را به کودکان آموزش می دهد + تصویر بهترین کتاب های رایگان آموزش برنامه نویسی وب 2015 + لینک دانلود بهترین ابزارهای CSS مناسب برنامه نویسان وب چهارده زبان برنامه نویسی برای شغل آینده شما ساخت برنامه های ویندوز 10 بدون یک خط کدنویسی اینفوگرافی: انتخاب اولین زبان برنامه نویسی بر اساس زندگی که می خواهید نگاهی به Galaxy S6 Edge Plus برنامه نویسی بر فراز ابرها انقلاب برنامه نویسی گرافیکی قیام NoSQL ادامه دارد با این سایت زبان SQL را رایگان و کلاسیک بیاموزید


یکشنبه ، ۱فروردین۱۳۹۵


[مشاهده متن کامل خبر]





این صفحه را در گوگل محبوب کنید

[ارسال شده از: ماهنامه شبکه]
[مشاهده در: www.shabakeh-mag.com]
[تعداد بازديد از اين مطلب: 128]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن