Shiran.Tips

Clean Code

January 10, 2019 | 2 Minute Read

SQL#

והפעם- חמישה טיפים לכתיבת קוד SQL נקי ומקצועי

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

חמשת הטיפים שלי לכתיבת קוד SQL בהיר ומובן

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

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

נכתוב:

  1. הקצאת שמות למשתנים או לאובייקטים(כמו טבלאות),
    • תמיד נרצה לבחור בשמות קצרים ומשמעותיים, כך לדוגמה במקום לקרוא לשדה purchase_invoice_unique_number נעדיף לקרוא לו invoice_num
  • נהוג להשתמש באותיות גדולות לכתיבת שמות הפקודות והפונקציות של SQL (כמו SELECT, FROM) וקטנות לשמות השדות והטבלאות. מודה שאצלנו לא מקפידים על זה כיוון שבאופן אוטומטי שמות הפקודות והפונקציות נצבעות בצבע שונה, כך שזה מספיק בולט ומעבר בין אותיות גדולות לקטנות יכול לסרבל את ההקלדה ולהאריך את זמן הכתיבה.

  • אופני כתיבה מקובלים שימוש בקו הפרדה תחתון בין מילה למילה snake_case שימוש באותיות גדולות בתחילת כל מילה נוספת, ללא רווחים camelCase אני אישית מעדיפה את כתיבת הנחש - הפרדה בקו תחתון בין המילים.

  1. יצירת בלוקים מכירים את זה שהשאילתה מסתבכת ויש לכם מספר sub queries תתי שאילתות, אתם מנסים לקרוא מהחלק הפנימי לחיצוני ונופלים באמצע? יש לכך פתרון! בכדי לכתוב קוד נקי יותר ולהיות מסוגלים לעשות שימוש חוזר בשאילתא שברצוננו להמשיך ולתשאל נשתמש בטבלה זמנית - common table expressions (CTEs) כך לדוגמה, במקום:

נכתוב:

  1. על זו הדרך נוכל להשתמש ביצירת פונקציה זמנית עבור פונקציות ארוכות כמו לדוגמה case. כך לדוגמה, במקום:

נכתוב:

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

רוצה להשאר מעודכנ/ת?

* שדה חובה