سلام،
معاهدههای کدنویسی (Coding conventions) به مجموعه استانداردها و روشهای کدنویسی یک زبان برنامه نویسی گفته می شود که معمولا توسط توسعه دهنده آن زبان معرفی می شود. این مقاله به معرفی مهم ترین معاهدههای برنامه نویسی می پردازد. در انتها فهرستی از معاهدههای کدنویسی مهمترین زبانهای برنامهنویسی ارائه شده است.
مقدمه
به مجموعه استانداردها و روشهای کدنویسی توسط یک زبان برنامه نویسی، معاهدههای کدنویسی این زبان گفته میشود. این معاهدهها دربرگیرنده راهنماهایی در زمینه ساختار فایل، فاصلهها، توضیحات، تعاریف، عبارات، فضاهای خالی، نامگذاری و... می باشند. معمولا توسعه دهنده یک زبان برنامه نویسی این معاهدهها را ارائه می کند. البته تیمها، شرکتها و سازمانها نیز ممکن است استانداردهای خاص خود را به همراه این معاهدهها به برنامه نویسان خود ابلاغ نمایند.
برنامهنویسان و توسعه دهندگان نرمافزارها استفاده از این استانداردها را بسیار توصیه می کنند. استفاده از معاهدهها علاوه بر افزایش خوانایی کدهای برنامه، نگهداری (Maintenance) نرمافزار را نیز آسانتر می کند. این نکته را در نظر داشته باشید که استفاده از معاهدهها اجباری نبوده و در صورت عدم استفاده از آنها به خطای کامپایلر برخورد نمینمایید.
نگهداری نرمافزار
کمکردن هزینه نگهداری نرمافزار (Software Maintenance) مهمترین دلیل پیروی از معاهدههای برنامه نویسی است. شرکت سان مایکروسیستمز در معرفی معاهدههای کدنویسی زبان جاوا چهار عامل زیر را دلیل ارائه معاهدههای کدنویسی معرفی کرده است:
۸۰٪ از هزینه طول عمر یک نرمافزار صرف تعمیر و نگهداری آن می شود.
معمولا برنامهنویس نرمافزار در طول عمر نرمافزار عوض شده و ثابت باقی نمیماند.
معاهدههای کدنویسی با افزایش خوانایی کدهای برنامه به مهندسان این امکان را میدهند که کدهای جدید را سریعتر و کاملتر درک کنند.
در صورتی که شما کد منبع خود را به عنوان یک محصول عرضه مینمایید، باید از صحیح، مرتب و یکسان بود کدهای خود در محصولات مختلفتان مطمئن باشید.
کیفیت
در فرایند توسعه نرمافزار مرحلهای با عنوان ارزشیابی همتایان (Peer review) وجود دارد که در طی آن شخص انجام دهنده یک کار، تکلیف صورت گرفته را همراه با یک یا چند تن از همکاران خود ارزیابی می کند. هدف از این مرحله بررسی منظم محصول به منظور یافتن مشکلات احتمالی و رفع ایراد آنها میباشد. نام انگلیسی این مرحله (Software peer review) است.
Software peer review غالبا به بررسی کدها منبع میپردازد. در صورتی که کد منبع از معاهدههای زبان مورد نظر پیروی کرده باشد، علاوه بر افزایش کیفیت کد منبع موجب می شود تا مشاهده، بررسی و رفع ایرادات برای تیم ارزشیابی بسیار آسانتر شود.
با انجام صحیح ارزشیابی همتایان، بسیاری از مشکلات احتمالی حال و آینده رفع خواهد شد. به عنوان مثال در صورت مراجعه مجدد به کدمنبع در آینده فهمیدن و درک کدی که درست ارزشیابی شده و از معاهدهها پیروی کرده است راحتتر بوده و زمان کمتری را نیاز خواهد داشت.
تغییر در ساختار کد (Refactoring)
منظور از refactoring فعالیتی است که طی آن خوانایی کدمنبع افزایش یافته و ساختار وی بهبود می یابد. به طور کلی هر تغییری در کدمنبع که رفتار یک نرمافزار را تغییر ندهد می تواند به عنوان refactoring در نظر گرفته شود. برخی از این تغییرات عبارتند از: تغییر نام متغییرها، تغییر نام متدها و توابع، عوض کردن محل قرارگیری یک متد (یا کل کلاس) و شکستن یک متد یا تابع بزرگ به متدها یا توابع کوچکتر.
refactoring در برنامه نویسی یک نرمافزار به صورت تیمی، در مراحل ابتدایی کدنویسی انجام می شود. هدف از این کار یکسان کردن استانداردها و ساختار کدهای نوشته شده توسط اعضای تیم است. انتظار می رود که بعد از این مرحله اعضای تیم بیشتر معاهدهها و استانداردها را فراگرفته و از آنها پیروی نمایند.
اتوماسیون وظایف (Task automation)
رعایت معاهدههای کدنویسی باعث میشود تا بتوان فرایندهایی غیر از کامپایل و اجرای نرمافزار را به آسانی انجام داد. از جمله مهمترین این فرایندها می توان به ساخت و انتشار خودکار مستندات برنامه اشاره کرد. به عنوان مثال شما می توانید با نوشتن برچسبهای author، version، param و... در توضیحات کدمنبع به صورت خودکار مستندات فنی نرمافزار خود را ایجاد کنید. به کد جاوای زیر توجه کنید:
[java]
/**
* Simple calculator operation.
* @author <a href="mailto:[email protected]">Me</a>
* @version 1.0
*/
public interface Operation {
/**
* Perform a single calculation.
* @param operand the operand to use for calculation.
*/
public void calculate(double operand);
/**
* Get the current result.
* @return the current result. If no calculations were
* performed the result is undefined.
*/
public double getResult();
}
[/java]
تصویر زیر خروجی HTML تولید شده با نرمافزار Javadoc را نشان می دهد:
برخی از معاهدههای کدنویسی مهمترین زبانهای برنامه نویسی
در زیر پیوندهایی به تعدادی از معاهدههای کدنویسی ارائه شده است:
- معاهدههای کدنویسی زبان جاوا
- استانداردهای کدنویسی در ANSI C
- معاهدههای کدنویسی C++ GCC
- راهنمای شیوه کدنویسی در پایتون
منابع
- Coding conventions (Wikipedia)
- Software peer review
- Java Fundamentals Tutorial : Javadoc
- Code Conventions for the Java Programming Language
منبع تصویر: onlinedegrees.org
شاد و پیروز باشید :)