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 חינמי ללא הגבלות.
סקירת תהליך
- חבר את המאגר ל-Code Climate.
- הגדר
sum-coverageעבור מחסנית הפרויקט (הגדר ספים, הפעל פלאגינים). - שלב דוחות כיסוי בדיקות (LCOV/Clover).
- הפעל Status Check כדי לחסום PRs על ירידת איכות.
- בצע ניתוח חוב טכני ראשוני.
- סכם על ספים ותהליך עם הצוות.
מה כלול
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% בחודשיים הראשונים.







