מוסכמות קידוד

מוסכמות קידוד הן אוסף של הנחיות לשפת תכנות ספציפית הממליצות על סגנון תכנות ושיטות עבודה עבור כל היבט של תוכנית הנכתבה בשפה זו. מוסכמות אלו בדרך כלל כוללות הנחיות בנוגע לארגון קבצים, הזחה, הערות, הצהרות, מוסכמות על שמות, שיטות תכנות, וכדומה. למפתחי תוכנה מומלץ מאוד לעקוב אחר ההנחיות הללו כדי לעזור לשפר את קריאות קוד המקור שלהם ולהקל על תחזוקת התוכנה. המוסכמות עשויות להיות רשמיות ברשימה מתועדת של כללים שצוות או חברה עוקבים אחריהם, או עשויות להיות לא פורמליות כמו שיטות הקידוד הרגילות של אדם. מוסכמות קידוד אינן נאכפות על ידי מהדרים.

תחזוקת תוכנה 
הפחתת עלות תחזוקת התוכנה היא אחת הטענות המרכזיות למעקב אחר מוסכמות קידוד. בהקדמה שלהם למוסכמות הקוד עבור ג'אווה, סאן מיקרוסיסטמס סיפקה את הרציונל הבא:מוסכמות קוד חשובות למתכנתים ממספר סיבות:
 40%–80% מעלות תוכנה בטווח הארוך הולכת לתחזוקה.
 כמעט אף תוכנה מתוחזקת במשך כל קיומה על ידי המחבר המקורי.
 מוסכמות קוד משפרות את קריאות התוכנה, ומאפשרות למפתחים להבין קוד חדש בצורה מהירה ויסודית יותר.
 אם אתה שולח את קוד המקור שלך כמוצר, עליך לוודא שהוא ארוז ונקי כמו כל מוצר אחר שאתה יוצר.

איכות 
סקירת עמיתים של תוכנה כוללת לעיתים קרובות קריאת קוד מקור. סוג זה של ביקורת עמיתים הוא בעיקר זיהוי באגים. יהיה קל יותר לבודקים אחרים להבין, לתקן ולשפר קוד שנכתב תוך שימוש במוסכמות באופן עקבי, מה שמשפר את היעילות של תהליך זיהוי הבאגים.

אפילו עבור המחבר המקורי, תוכנה המקודדת באופן עקבי מקלה על התחזוקה. אדם לא בהכרח יזכור את הרציונל המדויק מדוע קטע קוד מסוים נכתב בצורה מסוימת הרבה זמן לאחר שהקוד נכתב במקור. מוסכמות קידוד יכולות לעזור. שימוש עקבי ברווח לבן משפר את קריאות הקוד ומפחית את הזמן שלוקח להבנת התוכנה.

ארגון קוד מחדש 
Refactoring מתייחס לפעילות תחזוקת תוכנה שבה קוד המקור עובר שינויים על מנת לשפר את הקריאות או את המבנה שלו. תוכנה עוברת לעיתים קרובות ארגון מחדש כדי להתאים אותה למוסכמות הקידוד המוצהרות של צוות לאחר השחרור הראשוני שלה. כל שינוי שלא משנה את התנהגותה של תוכנה יכול להיחשב לארגון מחדש. שינויים נפוצים מסוג זה הם שינוי שמות משתנים, שינוי שמות של שיטות, העברת שיטות או מחלקות שלמות ופירוק שיטות גדולות לקטנות יותר.

מתודולוגיות פיתוח תוכנה זריזות מתכננות ארגון מחדש קבוע (או אפילו מתמשך) מה שהופך אותה לחלק בלתי נפרד מתהליך פיתוח התוכנה של הצוות.

הערות שוליים 

תחזוקת תוכנה
הנדסת תוכנה