« לעמוד הראשי

כיצד SonarQube עוזר למפתחים ולמנהלי פיתוח?

Getting your Trinity Audio player ready...

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

developers using sonarqube

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

ראשית, אסביר את הנושא ב- High level ולאחר מכן אכלול פרטים (עם הפרדה ע"פ מהדורות SonarQube השונות).

להורדה: שימו לב שיש לנו קובץ Excel מפורט ועדכני עם רשימתכל הפונקציונליות ב- SonarQube, ומסודרת לפי editions , באופן שניתן לפלטר ולמיין ע"פ מהדורות – ניתן להוריד כאן.

כיצד SonarQube עוזר למפתחים – תשובה תמציתית ב- High level:

SonarQube עוזר למפתחים בכמה היבטים של עבודתם:

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

כיצד SonarQube עוזר למפתחים – בפירוט:

SonarQube מוצע ב-4 מהדורות שונות, בעוד שמפתחים ומנהלי מו"פ יכולים ליהנות מכל הפונקציונליות החל מהמהדורה הארגונית (המהדורה השלישית מתוך 4).

בואו נראה את הפונקציונליות העיקרית המוצעת בכל מהדורה:

 

מה יש ב- SonarQube Community Edition עבור מפתחים?

מהדורת Community מבוססת קוד פתוח וחינמית, והיא מציעה את הדברים הבאים:

1. ליבת SonarQube

 ו-60+ תוספים. מגוון תוספים שנעשו עבור SonarQube (חלקם בחינם וחלקם בתשלום). אתה יכול גם לבנות תוספים משלך (ואנחנו יכולים לבנות את זה בשבילך).

2. סריקת שפות קוד (ניתוח קוד סטטי)

מהדורת זו תומכת בסריקה בסיסית של 16 שפות:

Java, JavaScript, C#, Terraform, TypeScript, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML, VB.NET

("בסיסית" הכוונה שלא ניתן להפעיל ולסרוק את כל החוקים המוצעים לשפות הנ"ל – בפרט חוקים הקשורים ל- Code Security).

3. סריקת ה- master (main) branch בלבד:

סריקת ענף ה-git המאסטר (הראשי).

שים לב שאינך יכול לסרוק branches אחרים (למשל, ענפי תכונה) באמצעות מהדורת Community, כך שאינך יכול ליישם מתודולוגיית "Shift Left" באמצעות המהדורה הזו.

4. SonarLint (יסודות)

SonarLint עוזר לך לקבל התראות על בעיות קוד ובאגים, בזמן אמת, לתוך ה-IDE של המפתחים (למשל IntelliJ / VS Code) – מה שעוזר להם לפתח קוד "נקי" יותר.

צפו בהדגמה מהירה:

הערה: לא ניתן להגדיר את SonarLint בגרסה זו (תוכל לעשות זאת במהדורת המפתחים כפי שמוסבר להלן)

 

כיצד Developer Edition עוזר למפתחים/ות?

מהדורת המפתחים מציעה את כל מה שיש במהדורת Community (לעיל), ובנוסף:

  1. Branch Analysis

ניתן לסרוק כל branch שאתה רוצה – למשל ענפי משימה או תכונה (ולא הענף הראשי [מאסטר] בלבד), כך שתוכל לזהות בעיות הרבה יותר מוקדם – עוד לפני שהקוד יתמזג במעלה הזרם לענפים הראשיים

  1. עיצוב וניתוח Pull Request

מאפשר לך לשלב את SonarQube עם כלי בקרת הגרסאות שלך ולהוסיף ניתוח SonarQube ושער איכות לבקשות ה-Pull Requests שלך (או מיזוג בקשות) בממשק של ספק ALM / DevOps שלך, כולל GitLab, GitHub, Bitbucket ו-Azure DevOps.
זה עוזר לך לקבל משוב מהיר (של תוצאות סריקה) ללוח המחוונים.

pull merge request decoration sonarqube gitlab
איור: Pull (Merge) Request עם SonarQube ו-GitLab. לחץ להגדלה
  1. ניתוח אבטחת קוד / יכולות

סריקת אבטחה עם מגוון כללים לכל שפת קוד – למשל. איתור injection flaws.
(הגיליון האלקטרוני שלנו [הורד כאן download here] מציין כמה כללים יש לך לכל שפה)

הערה: מהדורת Community החינמית אינה סורקת לאיתור פרצות אבטחה

  1. יכולות נוספות של SonarLint (למשל התראות חכמות)

בגרסה זו ניתן להגדיר ולקבל התראות חכמות (לא זמין במהדורת Community,
כך שאם אתה (כמפתח) משתמש ב-SonarLint דרך ה-IDE שלך, תוכל להגדיר ולקבל התראות.

לדוגמא: ניתן לקבל הודעה אם לא עברת את ה-Quality Gates.

הערה: SonarLint במהדורת Community אינה סורקת שפות שאינן נתמכות בגרסה החינמית (למשל C, C++ ואחרות כמפורט להלן)

  1. תמיכה בשפות נוספות:

מהדורת המפתחים סורקת גם את שפות הקוד הבאות:

  1. C
  2. C++
  3. Objective-C
  4. PL/SQL
  5. ABAP
  6. TSQL
  7. Swift

מהדורת מפתחים תומכת סך הכול ב-24 שפות קוד.

 

כיצד Enterprise Edition עוזר למפתחים/ות ולמנהלי/ות פיתוח?

SonarQube Enterprise Edition מציעה את כל המוצרים  במהדורת מפתחים (Developer Edition) , ובנוסף:

  1. תמיכה בשפות נוספות

Enterprise Edition גם סורקת את שפות הקוד הבאות:

  1. Apex (של Salesforce)
  2. Cobol (קובול)
  3. PL/1
  4. RPG
  5. VB 6 (Visual Basic)

SonarQube Enterprise Edition תומכת ב-29 שפות קוד בסך הכל.

2. Portfolio and Reporting

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

  1. צבירת פרויקטים. לדוגמה, אתה יכול להחליט מה לקבץ יחד לפי קריטריונים שאתה מחליט, למשל: שפת קוד נפוצה; פרויקטי מורשת (legacy); קבוצות ; צוותים וכו'.
  2. אתה יכול להפוך את הדוח לאוטומטי ולשלוח אותו בדוא"ל (כדוח PDF)
צפו בהדגמה (2 דקות):

3. Security Reports

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

SonarQube עוזר לך לראות את עמדת האבטחה שלך לפי תקני OWASP Top 10 ו-CWE Top 25.

לדוגמא:

sonarqube security reports
דוחות אבטחה (לחץ להגדלה)

4. Security Hotspot + Security vulnerabilities

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

ראה דוגמא (לחץ להגדלה)

sonarqube security hotspot
נקודה חמה של אבטחה (גיבוב נתונים רגיש לאבטחה)

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

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

לדוגמה (לחץ להגדלה):

sonarqube security vulnerabilities
בפרצות אבטחה, SonarQube מזהה את הקוד הבעייתי ונותן פתרון כיצד לפתור אותו (במקרה זה: שימוש באורך מפתח המספק מספיק אנטרופיה נגד התקפות בכוח גס. עבור אלגוריתם RSA הוא צריך להיות באורך של לפחות 2048 סיביות)

5. Parallel Processing

מאפשר לך לנהל סריקות ודוחות במקביל. זה שימושי אם אתה צריך להריץ הרבה סריקות ודוחות.
ניתן להפעיל עד 10 Workers במקביל.

 

שאלות נפוצות (FAQ):

  • ש: מה התמחור של SonarQube?
    ת: תמחור SonarQube תלוי במספר פרמטרים:
    1. סוג המהדורה (כפי שהוסבר לעיל במאמר);
    2. כמות שורות הקוד שיש לך
    3. האם תרצו גם תמיכה טכנית של היצרן
    צור איתנו קשר כדי לקבל תמחור מדויק והצעות מחיר: sonarqube@almtoolbox.com או התקשר אלינו.
  • ש: אני משתמש בשפת קוד הנתמכת על ידי מהדורת Community (למשל Java או #C).
    האם זה אומר שאני מקבל את כל היכולות של SonarQube?
    ת: לא. אם אתה משתמש במהדורה החינמית יש לך גישה לתכונות הזמינות במהדורת ה- Community החינמית בלבד.
    לדוגמה: אם אתה משתמש ב-Java ובמהדורה החינמית לא תוכל להשתמש בחוקי security ונוספים ; לא ניתן יהיה להשתמש ב- Branch analysis (אלא רק על ה- main branch) ; לא יהיו דו"חות ועוד.
  • ש: האם המוצר עובד גם ברשת סגורה לאינטרנט (Self-hosted / air-gapped) ?
    ת: כן בהחלט

 ALM-Toolbox היא המפיצה רשמית של SonarQube בישראל, ומספקת ייעוץ, רישיונות SonarQube ו-SonarCloud, הטמעה, הדרכה, שירותים מנוהלים (managed services) ומסייעת ללקוחות לשלב את SonarQube עם תהליכים עסקיים ו- CI/CD pipelines .
צרו איתנו קשר לכל שאלה, כולל תמחור והצעות מחיר: sonarqube@almtoolbox.com 
או התקשר אלינו: 072-240-5222

קישורים בנושא: