קוד נקי

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

המונח הפך לפופולרי בעקבות רוברט ססיל מרטין , שכתב את הספר "Clean Code: A Handbook of Agile Software Craftsmanship" בשנת 2008. בספר זה, הוא הציג סדרה של עקרונות ושיטות עבודה מומלצות לכתיבת קוד נקי, כמו מתן שמות משמעותיים למשתנים, פונקציות קצרות, הערות ברורות ופורמט עקבי.

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

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

עקרונות ה-TED
Terse - תמצות
הקפדה על אורך קוד קצר ומתומצת. יש לחסוך במשתנים שאינם שימושיים בקוד או כאלו שאפשר להמיר אותם במשתנים קיימים או קלים להשגה.

לדוגמה, במקום לכתוב:
int users_count = users_list.size();
if (users_count == 0) {
    // do something
}
נעדיף:
if (users_list.isEmpty()) {
    // do something
}

Expressive – ביטוי הצורך באופן מדויק וברור
יש להסביר באופן המדויק ביותר מה הקוד עושה, ולכן:
 יש להעדיף שמות כלליים שישמשו לטווח רחוק (לדוגמה: אין להוסיף לשם המשתנה את הסוג שלו).
 יש להימנע משמות בעלי משמעות כפולה או רחבה.
 אין לכלול מספר בשם המשתנה, כיוון שלא ברור מה המספר אמור לבטא.
 יש שממליצים לפתוח את כל שמות הפונקציות באחד מהשלושה is,get,do:
 is_XXX - הפונקציה תחזיר ערך בוליאני
 get_XXX - הפונקציה תחזיר ערך כלשהו
 do_XXX - הפונקציה תבצע פעולה מסוימת בלי להחזיר ערך

Do one thing - עשה דבר אחד בכל פעם
כל שורת קוד או פונקציה אמורה לבצע פעולה אחת בלבד.
קישורים חיצוניים




הערות שוליים

קטגוריה:תכנות
קטגוריה:מונחים בתוכנה