
در این جا قصد دارم رازی را برای شما مطرح کنم، شما باید بدانید که بهترین کد نویس و برنامه نویس، کسی است که کمترین میزان کد نویسی را داشته باشد و هدف خود را سریعتر بدست آورد. باید مطمئن بود که، این یک شوخی یا یک مزاح نیست. تصور کنید شما ملزم به نوشتن برنامه یک موتور سه بعدی هستید، مشخصاً نوشتن این برنامه از نوشتن یک منو، بسیار دشوارتر بوده و نیاز به کد نویسی بیشتری خواهد داشت. مطلبی که من به آن اشاره میکنم، هم شامل کد نویسان حرفه ای و هم کد نویسان تازه کار خواهد بود. فرآیندی که در این واقعه رخ میدهد را، میتوان با عبارت تنبل شدن برنامهنویسان معنا کرد. این تنبلی همیشه بد نیست. اغلب کد نویسانی که رشد یافته و خبره تر شدهاند، در کد نویسی تنبلتر شده و در نوشتن صرفه جویی خواهند کرد. آنان فراگرفتهاند که چگونه میتوان کارآمد تر نوشت و کدهای نوشته شده را مجدداً در دیگر برنامهها مورد استفاده قرار داد. در این مقاله به برخی نکات که در طی سالیان دراز در رابطه با کد نویسی آموختهام، اشاره خواهم کرد.
تمامی خطهای یک برنامه نادر نیستند. عبارتی شعارگونه وجود دارد که، همه جا امروزه دیده میشود؛ و آن چیزی نیست جز، «تلاش کنید تا کدهای چند بار مصرف بنویسید.» این عبارت امروزه بر تبلیغات شغلی، مقاله های برنامه نویسی، و یا سایر نوشته های آموزشی دیده میشود. اما دلیل این گفته چیست!؟ هرچه شما در کد نویسی، قابلیت استفاده مجدد کدهای خود را بالاتر ببرید، کمتر نیاز به نوشتن خواهید داشت. علاوه بر این در وقت و ثروت خود صرفه جویی خواهید کرد. اگر چه برای برنامه نویسانی که کار خود را به تازگی شروع کردهاند، نگاشتن کدهای قابل استفاده مجدد، ممکن است دشوار باشد. آنان اغلب ترجیح میدهند تا، کدهایی بنویسند که فقط یک خط سیر مستقیم را طی خواهند کرد. برنامه ای که آنان مینویسند بر این باور نوشته میشود که در آینده مورد استفاده دیگری نخواهد داشت و فقط و فقط برای همین برنامه کنونی نوشته شده است. اما اگر بدانند که به این کدها نیاز خواهند داشت، تمام تلاش خود را برای نوشتن بهینه آن و ایجاد قابلیت مجدد در آن به کار خواهند گرفت. نگاه کردن به یک قطعه کد طولانی، و گفتن این مطلب که این تکه کد مطمئناً نادر بوده و در جای دیگر قابلیت استفاده ندارد، بسیار آسان است. اما یکی از اصول تنبل شدن و توانایی استفاده مجدد از کدها این است که، این قطعه از کد را به تکه های متفاوت تقسیم کرده و مجدداً به آن نگاه کنید. تکه های برنامه ای که، به سادگی نوشته شده است. اما در عین سادگی از کارایی بالایی قرار دارند، میتوانند همیشه مورد استفاده مجدد قرار گیرند. یکی از مواردی که همیشه در برنامه نویسی فلش، مورد نظر قرار میگیرد، حصول اطمینان از قرار گرفتن متن، بر روی پیکسلهای کامل است. اگر Text Field شما، روی یک پیکسل کامل قرار نگیرد، در این صورت متن به خوبی، رندر نخواهد شد.
myTextField.x = 12;
//instead of
myTextField.x = 12.2;
OR use
myTextField.x = int(12.7);
همان طور که در بالا میبینید با استفاده از یک داده عددی، ارزش معینی به محل قرار گیری متن داده شده و به خوبی جا نمایی خواهد شد. اما برای این که بتوان در استفاده های مجدد، Text Field را به هر نحو دلخواهی مورد استفاده قرار داد، لازم است یک کلاس پایه برای متن استفاده شود. در این جا دیگر نگرانی برای این که متن بر روی نیم پیکسل قرار گیرد، وجود نخواهد داشت. مقدار x، به طور دلخواه تعیین خواهد شد. اما اصولی که به طور پایه مشخص شدهاند، از رندرینگ دچار اشکال، جلوگیری میکنند. در این جا شما از تایپ بدون دلیل و بیش از حد خود جلوگیری کرده و در دفعات بعدی به راحتی میتوانید از این تکه کد استفاده کنید. علاوه بر این میتوان اطمینان داشت که، به خاطر استفاده از یک کلاس پایه، نگاشتن این برنامه در دفعات بعدی، بدون مشکل انجام خواهد گرفت. یکی دیگر از راه های کاهش نوشتن کد نویسی، ذخیره کردن تابعهای مهم است. توابع ریاضی معمولاً از آن دسته توابعی هستند که من در به خاطر سپردن آنها با مشکل مواجه هستم. ازاین رو تمامی آنان را ذخیره کرده و برای استفاده های بعدی به کار میبندم. به طور مثال، چه تعداد دفعاتی پیش آمده که یک عدد تصادفی بین دو عدد مشخص نیاز داشتهاید!؟ شما میتوانید تابع زیر را به خاطر سپارید و یا به روش زیر عمل کنید. برای اندازه گیری زاویه بین دو نقطه و سپس تبدیل آن به رادیان چگونه عمل میکنید!؟ توابعی از این دست، معمولاً به طور مستمر مورد استفاده قرار میگیرند؛ و در صورت نداشتن آنها، شما ملزم به نوشتن از صفر خواهید بود. بنابراین بهتر است یک بار برای همیشه، یک تابع را ذخیره کنید.
public static function randomInt(min:int=0,max:int=1):int
{
return Math.random()*(max-min)+min;
}
//Then the next time you need a random int
//this is all you need to remember:
var myRand:int = Utils.randomInt(min,max);
در برخی موارد میبینیم که اشکال در یک صفحه، از لحاظ گرافیکی دارای تفاوتهای قابل ذکری هستند. اما وقتی به برنامه نویسی آنها رجوع میکنیم، میبینیم که شباهتهای زیادی در آنها وجود دارد. یکی از مثالهای واضحی در این زمینه، دکمهها هستند. دکمهها میتوانند بسیار متفاوت به نظر برسند، اما در درون، از عناصر کاملاً مشابهی ساخته شدهاند. تمامی آنها منطقه ای برای کلیک و حرکت موس استفاده کردهاند. بنابراین بهتر است با نوشتن یک کلاس پایه به تمامی دکمهها، کار خود را ساده کنید. از این طریق میتوانید از تکرار مکررات جلوگیری کرده و موارد مشابه را یک جا استفاده کنید. در زیر مثالی برای یک کلاس پایه دکمه، آورده شده است. سپس برای شخصی و بینه سازی تک تک دکمهها میتوانید از onHover و onOut، بهره گیری کنید. که آنها توابعی برای ایجاد این افکتها هستند. در این جا زمان بسیار زیادی از شما، صرفه جویی شده است چرا که در مورد منطقه کلیک دکمه، نگرانی نخواهید داشت.
در عین اینکه استفاده مجدد از برنامه نویسی، و کدهای نوشته شده مورد استفاده زیاد برنامهنویسان قرار میگیرد، اما بهکارگیری این روش برای تمامی کدها راهی نادرست است. در برخی از موارد قطعه، قطعه کردن کدها، برای قابلیت استفاده مجدد در آنها زمان بیشتری از نوشتن یک برنامه کامل از شما، صرف خواهد کرد. یکی از مثالهایی که در این رابطه میتوان عنوان کرد، نوارهای پیمایش هستند. نوارهای پیمایش را میتوان در سایتها و شکلهای مختلف طراحی کرد، اما سلایق متفاوت متعددی که در این زمینه وجود دارد، تفاوتهای فراوانی در آنها به وجود میآورد. اغلب این نوارهای پیمایش در زاویه های افقی و یا عمودی حرکت میکنند. اما میبینیم که برخی از کد نویسان علاقهمند هستند تا، دیگر زوایا از جمله 90،180،127 و... را برای استفاده این نوارها، امکان پذیر کنند. صرف زمان زیاد و شاید روزهای متمادی که از شما، برای نوشتن این کدها گرفته میشود، اصلاً مقرون به صرفه نخواهد بود. ما به عنوان کد نویسانی که در این حوزه، خبره شده و از اصول کم نوشتن استفاده میکنیم، هیچ گاه به این سمت نخواهیم رفت و به طراحی کلاسهای پایه برای یک Scroll Bar، نخواهیم پرداخت. هدف کلی از کم نوشتن کد، ذخیره زمان و صرفه جویی در آن است. بنابراین همیشه به خاطر داشته باشید، که شما میتوانید اصول تنبل بودن را به خوبی فرا بگیرید.
