معاهدههای کدنویسی (Coding conventions)
سلام،
معاهدههای کدنویسی (Coding conventions) به مجموعه استانداردها و روشهای کدنویسی یک زبان برنامه نویسی گفته می شود که معمولا توسط توسعه دهنده آن زبان معرفی می شود. این مقاله به معرفی مهم ترین معاهدههای برنامه نویسی می پردازد. در انتها فهرستی از معاهدههای کدنویسی مهمترین زبانهای برنامهنویسی ارائه شده است.
مقدمه
به مجموعه استانداردها و روشهای کدنویسی توسط یک زبان برنامه نویسی، معاهدههای کدنویسی این زبان گفته میشود. این معاهدهها دربرگیرنده راهنماهایی در زمینه ساختار فایل، فاصلهها، توضیحات، تعاریف، عبارات، فضاهای خالی، نامگذاری و… می باشند. معمولا توسعه دهنده یک زبان برنامه نویسی این معاهدهها را ارائه می کند. البته تیمها، شرکتها و سازمانها نیز ممکن است استانداردهای خاص خود را به همراه این معاهدهها به برنامه نویسان خود ابلاغ نمایند.
برنامهنویسان و توسعه دهندگان نرمافزارها استفاده از این استانداردها را بسیار توصیه می کنند. استفاده از معاهدهها علاوه بر افزایش خوانایی کدهای برنامه، نگهداری (Maintenance) نرمافزار را نیز آسانتر می کند. این نکته را در نظر داشته باشید که استفاده از معاهدهها اجباری نبوده و در صورت عدم استفاده از آنها به خطای کامپایلر برخورد نمینمایید.
نگهداری نرمافزار
کمکردن هزینه نگهداری نرمافزار (Software Maintenance) مهمترین دلیل پیروی از معاهدههای برنامه نویسی است. شرکت سان مایکروسیستمز در معرفی معاهدههای کدنویسی زبان جاوا چهار عامل زیر را دلیل ارائه معاهدههای کدنویسی معرفی کرده است:
- ۸۰٪ از هزینه طول عمر یک نرمافزار صرف تعمیر و نگهداری آن می شود.
- معمولا برنامهنویس نرمافزار در طول عمر نرمافزار عوض شده و ثابت باقی نمیماند.
- معاهدههای کدنویسی با افزایش خوانایی کدهای برنامه به مهندسان این امکان را میدهند که کدهای جدید را سریعتر و کاملتر درک کنند.
- در صورتی که شما کد منبع خود را به عنوان یک محصول عرضه مینمایید، باید از صحیح، مرتب و یکسان بود کدهای خود در محصولات مختلفتان مطمئن باشید.
کیفیت
در فرایند توسعه نرمافزار مرحلهای با عنوان ارزشیابی همتایان (Peer review) وجود دارد که در طی آن شخص انجام دهنده یک کار، تکلیف صورت گرفته را همراه با یک یا چند تن از همکاران خود ارزیابی می کند. هدف از این مرحله بررسی منظم محصول به منظور یافتن مشکلات احتمالی و رفع ایراد آنها میباشد. نام انگلیسی این مرحله (Software peer review) است.
Software peer review غالبا به بررسی کدها منبع میپردازد. در صورتی که کد منبع از معاهدههای زبان مورد نظر پیروی کرده باشد، علاوه بر افزایش کیفیت کد منبع موجب می شود تا مشاهده، بررسی و رفع ایرادات برای تیم ارزشیابی بسیار آسانتر شود.
با انجام صحیح ارزشیابی همتایان، بسیاری از مشکلات احتمالی حال و آینده رفع خواهد شد. به عنوان مثال در صورت مراجعه مجدد به کدمنبع در آینده فهمیدن و درک کدی که درست ارزشیابی شده و از معاهدهها پیروی کرده است راحتتر بوده و زمان کمتری را نیاز خواهد داشت.
تغییر در ساختار کد (Refactoring)
منظور از refactoring فعالیتی است که طی آن خوانایی کدمنبع افزایش یافته و ساختار وی بهبود می یابد. به طور کلی هر تغییری در کدمنبع که رفتار یک نرمافزار را تغییر ندهد می تواند به عنوان refactoring در نظر گرفته شود. برخی از این تغییرات عبارتند از: تغییر نام متغییرها، تغییر نام متدها و توابع، عوض کردن محل قرارگیری یک متد (یا کل کلاس) و شکستن یک متد یا تابع بزرگ به متدها یا توابع کوچکتر.
refactoring در برنامه نویسی یک نرمافزار به صورت تیمی، در مراحل ابتدایی کدنویسی انجام می شود. هدف از این کار یکسان کردن استانداردها و ساختار کدهای نوشته شده توسط اعضای تیم است. انتظار می رود که بعد از این مرحله اعضای تیم بیشتر معاهدهها و استانداردها را فراگرفته و از آنها پیروی نمایند.
اتوماسیون وظایف (Task automation)
معاهدههای کدنویسی این امکان را فراهم می کنند تا فرایندهایی غیر از کامپایل و اجرای نرمافزارها را به آسانی انجام داد. از جمله مهمترین این فرایندها می توان به ساخت و انتشار خودکار مستندات برنامه اشاره کرد. به عنوان مثال شما می توانید با نوشتن برچسبهای author، version، param و… در توضیحات کدمنبع به صورت خودکار مستندات فنی نرمافزار خود را ایجاد کنید. به کد جاوای زیر توجه کنید:
/**
* Simple calculator operation.
* @author <a href="mailto:me@my.com">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();
}
تصویر زیر خروجی HTML تولید شده با نرمافزار Javadoc را نشان می دهد:
برخی از معاهدههای کدنویسی مهمترین زبانهای برنامه نویسی
در زیر پیوندهایی به تعدادی از معاهدههای کدنویسی ارائه شده است:
- معاهدههای کدنویسی زبان جاوا
- استانداردهای کدنویسی در ANSI C
- معاهدههای کدنویسی C++ GCC
- راهنمای شیوه کدنویسی در پایتون
منابع
منبع تصویر: onlinedegrees.org
شاد و پیروز باشید ![]()
مطلب مرتبطی یافت نشد.
سعید زبردست
من برنامه نویس Java و PHP هستم. در کنار برنامه نویسی اطلاعات خوبی در زمینه پایگاه های داده بخصوص MySQL دارم. برای اطلاع بیشتر به صفحه درباره سعید زبردست مراجعه کنید.









من یه تعریف از Refactor کردن شنیدم که جالب بوده. تغییر در کد جهت بهبود کارایی بدون تغییر ورودی و خروجیهای آن.
اون طوری هم میشه تعریف کرد
حالا کجا شنیدی؟
درود
سپاس از نوشته خوبتون/ استفاده کردم.
سلام
معنی درست Refactoring، مولفه بندی یا فاکتوربندی مجدد نرم افزار است. این کار با هدف reusability و سازگارسازی معماریهای نرم افزاری متفاوت با یکدیگر انجام میشود.
استنباط جدیدی که از معنای آن باب شده است، چندان صحیح نیست.
سلام،
توضیحی که من در متن نوشتم از لحاظ مفهومی فرقی با توضیح شما نداره. فقط لغت ها و جمله بندیمون فرق می کنه:
منظور از refactoring فعالیتی است که طی آن خوانایی کدمنبع افزایش یافته و ساختار وی بهبود می یابد. به طور کلی هر تغییری در کدمنبع که رفتار یک نرمافزار را تغییر ندهد می تواند به عنوان refactoring در نظر گرفته شود. برخی از این تغییرات عبارتند از: تغییر نام متغییرها، تغییر نام متدها و توابع، عوض کردن محل قرارگیری یک متد (یا کل کلاس) و شکستن یک متد یا تابع بزرگ به متدها یا توابع کوچکتر.
سلام
کمی متفاوت است. refactoring پس از انجام پروژه صورت گرفته و ممکن است هدف از آن بهبود خوانایی کد نباشد (حتی برعکس شاید کد پیچیده تر هم بشود)، همچنین با فاکتوربندی مجدد معماری نرمافزار، ممکن است رفتار سیستم تا حدودی تغییر کند. تعریف شما مطابق با امکاناتی است که در IDE های توسعه نرمافزار تحت نام Refactoring به کدنویس ارائه میشود، که البته این مورد یک کاربرد از Refactoring است.
ممنون بابت اطلاعاتتون
بسم الله…
یادداشت مفیدی بود برام…ممنون میشم بازم راجع به این مفاهیم بنویسین…