הגדרת Code Climate: ניתוח אוטומטי של איכות קוד ב-CI/CD

בקרת איכות קוד ידנית לא עומדת בקצב הפיתוח: פונקציות מורכבות וכפילויות מחליקות לענף הראשי מבלי לשים לב. אנו מגדירים את Code Climate כך שניתוח מדדים אוטומטי רץ ישירות ב-CI/CD ומסמן בעיות כבר בשלב ה-Pull Request. הצוות שלנו מספק הטמעה מלאה ומקצה לקצה—מהגדרת חוקים ועד הדרכת מפתחים—תוך הבטחת הערכה שקופה של חוב טכני ותמיכה מתמשכת.

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

PR פתוח, הבדיקות ירוקות — אבל מישהו הוסיף פונקציה של 200 שורות עם מורכבות קוגניטיבית 25 (סף 10), המשכפלת לוגיקה משלושה מקומות אחרים. לינטרים לא יתפסו את זה. מבקרי קוד עלולים לפספס. אנו משתמשים ב-Code Climate כדי לחשב אוטומטית מדדי מורכבות ושכפול ישירות ב-PR — לפני שהקוד מגיע ל-main. זה מפחית חוב טכני ומאיץ ביקורות קוד. הניסיון מראה שההתקנה אורכת 1–2 ימים ומשתלמת כבר בספרינטים הראשונים: הצוות מקדיש 30% פחות זמן לביקורת קוד, ומספר הבאגים בגרסאות יורד בחצי.

תרחיש טיפוסי: צוות של 5 מפתחים מקדיש בממוצע 20 שעות בשבוע לביקורת קוד. לאחר הטמעת Code Climate, הזמן יורד ל-14 שעות, עם עוד 6 שעות לתיקון בעיות שהמערכת סימנה. חיסכון כולל: 6 שעות בשבוע, או כמעט 300 שעות אדם בשנה. בתעריף ממוצע למפתח, זה חיסכון תקציבי משמעותי.

כיצד Code Climate מונע חוב טכני

Code Climate פועל בשני מצבים: Quality (ניתוח סטטי) ו-Test Coverage (אינטגרציה עם דוחות כיסוי). אנו משתמשים בדרך כלל בשניהם.

Quality מנתח:

  • מורכבות קוגניטיבית — כמה קשה לקרוא פונקציה (סף ברירת מחדל: 5)
  • שכפול — בלוקי קוד הדומים לקיימים (מערכים של 40+ טוקנים)
  • אורך קובץ — קבצים מעל 250 שורות
  • אורך מתודה — מתודות מעל 25 שורות
  • מספר ארגומנטים — פונקציות עם יותר מ-4 ארגומנטים

כל ממצא מקבל ציון: A (מצוין) עד F (חוב טכני). עבור PR, מוצג השינוי הכולל: "PR זה יוסיף 2 בעיות" או "PR זה פותר 3 בעיות."

אילו מדדים Code Climate מנתח?

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

מדד סף ברירת מחדל ההמלצה שלנו
מורכבות קוגניטיבית 5 5
אורך קובץ 250 300
אורך מתודה 25 30
מספר ארגומנטים 4 4
שכפול (זהה) 2 2
שכפול (דומה) 40 65

מקור: תיעוד Code Climate (גרסה עדכנית).

התקנה

Code Climate Quality הוא כלי SaaS ענני שמתחבר דרך OAuth של GitHub/GitLab. קיימת גרסה self-hosted (Code Climate Enterprise), אבל עבור רוב הצוותים הגרסה העננית מספיקה.

לאחר הרשאה וחיבור המאגר, צור .codeclimate.yml:

---
version: "2"
checks:
  argument-count:
    config:
      threshold: 4
  complex-logic:
    config:
      threshold: 4
  file-lines:
    config:
      threshold: 300
  method-complexity:
    config:
      threshold: 5
  method-count:
    config:
      threshold: 20
  method-lines:
    config:
      threshold: 30
  nested-control-flow:
    config:
      threshold: 4
  return-statements:
    config:
      threshold: 4
  similar-code:
    config:
      threshold: 65
  identical-code:
    config:
      threshold: 2
plugins:
  eslint:
    enabled: true
    config:
      config: .eslintrc.js
  pep8:
    enabled: true
  fixme:
    enabled: true
exclude_patterns:
  - "node_modules/"
  - "dist/"
  - "coverage/"
  - "**/*.test.ts"
  - "**/*.spec.ts"
  - "db/migrations/"

קבצי בדיקה מוחרגים במפורש — מבני version: "2" checks: argument-count: config: threshold: 4 complex-logic: config: threshold: 4 file-lines: config: threshold: 300 method-complexity: config: threshold: 5 method-count: config: threshold: 20 method-lines: config: threshold: 30 nested-control-flow: config: threshold: 4 return-statements: config: threshold: 4 similar-code: config: threshold: 65 identical-code: config: threshold: 2 plugins: eslint: enabled: true config: config: .eslintrc.js pep8: enabled: true fixme: enabled: true exclude_patterns: - "node_modules/" - "dist/" - "coverage/" - "**/*.test.ts" - "**/*.spec.ts" - "db/migrations/" /describe כפולים מקובלים ואינם נספרים כחוב טכני.

אינטגרציית כיסוי בדיקות

Code Climate מקבל דוחות בפורמט LCOV או Clover. הגדרת CI:

---
# GitHub Actions
- name: Run tests with coverage
  run: npm test -- --coverage --coverageReporters=lcov
- name: Upload coverage to Code Climate
  uses: paambaati/codeclimate-action@v5
  env:
    CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
  with:
    coverageLocations: coverage/lcov.info:lcov
---

it נלקח מהגדרות המאגר ב-Code Climate (Settings → Test Coverage). עבור מונוריפו עם חבילות מרובות, השתמש ב-# GitHub Actions - name: Run tests with coverage run: npm test -- --coverage --coverageReporters=lcov - name: Upload coverage to Code Climate uses: paambaati/codeclimate-action@v5 env: CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} with: coverageLocations: coverage/lcov.info:lcov נפרד לכל אחת או שלב באמצעות CC_TEST_REPORTER_ID ולאחר מכן TEST_REPORTER_ID.

איפה משיגים CC_TEST_REPORTER_ID?

עבור להגדרות המאגר שלך ב-Code Climate, לשונית "Test Coverage." מזהה ייחודי נוצר. העתק אותו לסודות ספק ה-CI שלך תחת השם cc-test-reporter format-coverage.

דירוגי תחזוקה וחוב טכני

Code Climate מחשב חוב טכני בשעות: כמה מאמץ רפקטורינג נדרש כדי להביא את הקוד לסטנדרטים. זה שימושי לתכנון: ספרינט של היגיינה טכנית עם מדדים קונקרטיים עדיף על "רפקטורינג" מופשט.

כדי לאכוף איכות במיזוג, השתמש ב-Status Checks: בהגדרות Code Climate, הפעל "Require status to pass before merging" — ה-PR ייחסם אם הדירוג ירד מתחת לספים.

השוואה עם חלופות

תכונה Code Climate SonarQube Codacy
פריסה SaaS, Enterprise self-hosted Self-hosted, Cloud SaaS
ניתוח אבטחה בסיסי מתקדם בינוני
שפות 40+ 30+ 40+
חוב טכני בשעות כן כן כן
חינם לקוד פתוח כן מוגבל כן

Code Climate מצוין לצוותים שצריכים התחלה מהירה ללא הקמת תשתית משלהם. SonarQube חזק יותר בניתוח אבטחה ותומך ביותר שפות, אבל דורש פריסה self-hosted או SonarCloud בתשלום. Codacy הוא המתחרה הקרוב ביותר עם מודל SaaS דומה.

עבור מאגרי קוד פתוח, Code Climate Quality חינמי ללא הגבלות.

סקירת תהליך

  1. חבר את המאגר ל-Code Climate.
  2. הגדר sum-coverage עבור מחסנית הפרויקט (הגדר ספים, הפעל פלאגינים).
  3. שלב דוחות כיסוי בדיקות (LCOV/Clover).
  4. הפעל Status Check כדי לחסום PRs על ירידת איכות.
  5. בצע ניתוח חוב טכני ראשוני.
  6. סכם על ספים ותהליך עם הצוות.

מה כלול

  • CC_TEST_REPORTER_ID מוגדר עם ספים אופטימליים למחסנית שלך
  • אינטגרציית CI/CD (GitHub Actions, GitLab CI, Jenkins)
  • מדדי כיסוי בדיקות וחוב טכני
  • תיעוד על התהליך והספים
  • הדרכת צוות לשימוש ב-Code Climate

רוצה להגדיר Code Climate במהירות וללא שגיאות? הזמן התקנה מהמהנדסים שלנו — נגדיר ספים למחסנית שלך, נשלב עם ה-pipeline, ונאמן את הצוות. צור קשר לייעוץ לקבלת הערכה אישית.

ציר זמן

התקנת Code Climate Quality + Coverage למאגר אחד — 1–2 ימים, כולל בחירת הגדרות והתקנת CI. העלות מחושבת בנפרד לאחר ביקורת תשתית.

צור קשר כדי לקבל הערכה לפרויקט שלך. הניסיון שלנו: מעל 500 פרויקטים, 10+ שנים ב-DevOps, אחריות איכות בכל שלב. בקש ייעוץ — נעזור להטמיע Code Climate ולהפחית חוב טכני ב-20–40% בחודשיים הראשונים.