Skip to main content

Үндсэн ойлголт

SonarQube ашиглахад шаардлагатай үндсэн ойлголтууд.


Issues (Асуудлууд)

Кодын дотор илрүүлсэн бүх асуудлууд. Кодчлолын стандартыг зөрчсөн, алдаатай, аюулгүй байдлын эрсдэлтэй хэсгүүд.

Түвшин: Critical, Major, Minor, Info

Төрөл: Bug, Vulnerability, Code Smell

Статус: Open, Confirmed, Resolved, False Positive, Won't Fix

Удирдах:

  • Projects → Issues цэсээр харах
  • Төрөл, түвшингээр шүүх
  • Issue дээр дарж дэлгэрэнгүй харах
  • Кодыг засч "Resolved" болгох

Rules (Дүрмүүд)

Кодыг шинжилэхэд ашигладаг дүрмүүдийн сан. Кодчлолын стандарт, best practices, аюулгүй байдлын зөвлөмжүүдийг тодорхойлно.

Төрлүүд:

  • Code Smell Rules: Кодын чанарыг сайжруулах
  • Bug Rules: Алдаа илрүүлэх
  • Vulnerability Rules: Аюулгүй байдлын сул талуудыг илрүүлэх
  • Security Hotspot Rules: Аюулгүй байдлын боломжит асуудлууд

Удирдах:

  • Quality → Rules цэсээр харах
  • Quality Profiles дотор идэвхжүүлэх/хаах

Quality Profiles (Чанарын профайлууд)

Тодорхой хэл, платформын хувьд ямар дүрмүүдийг ашиглахыг тодорхойлдог тохиргоо.

Үүсгэх:

  1. Quality → Profiles цэсээр орно
  2. Create товчийг дарна
  3. Activate/Deactivate Rules хэсгээр дүрмүүдийг идэвхжүүлнэ
  4. Set as Default хэсгээр анхдагч болгоно

Project-д холбох: Project → Settings → Quality Profile


Quality Gates (Чанарын шалгуур)

Код production-д орох эсэхийг шийдэх шалгуур. Кодын чанарын түвшинг хэмжиж, стандартад хүрээгүй код merge хийхэд хориг тавьдаг.

Шалгадаг метрикүүд:

  • Bugs: Кодын алдааны тоо
  • Vulnerabilities: Аюулгүй байдлын сул талуудын тоо
  • Code Smells: Кодын чанарын асуудлуудын тоо
  • Security Hotspots: Боломжит асуудлууд
  • Coverage: Code coverage-ийн хувь (жишээ: 80%+)
  • Duplicated Lines: Давхардсан мөрүүдийн хувь

Статус:

  • Passed: Бүх шалгуурыг давсан
  • Failed: Шалгуурыг давсангүй, засах шаардлагатай
  • Warning: Ойролцоогоор бүтэлгүйтэх нөхцөл байдал

Тохируулах:

  1. Quality → Quality Gates цэсээр орно
  2. Create товчийг дарна
  3. Метрик бүрийн хувьд шалгуур тогтооно
  4. Project → Settings → Quality Gate хэсгээр холбоно

Issue-ийн төрлүүд

1. Bugs (Алдаанууд)

Кодын алдаа буюу буруу ажиллах боломжтой хэсгүүд.

Жишээ: Null pointer exception, буруу логик, массивын хязгаарыг давсан индекс

Эрсдэл: Програм буруу ажиллах, уналт, мэдээлэл алдагдах

2. Vulnerabilities (Аюулгүй байдлын сул талууд)

Аюулгүй байдлын эрсдэл үүсгэх боломжтой кодын хэсгүүд.

Жишээ: SQL injection, баталгаажуулаагүй оролт, нууц үг кодонд бичсэн, XSS

Эрсдэл: Систем рүү нэвтрэлт, мэдээлэл алдагдах

3. Code Smells (Кодын муу хэв маяг)

Кодын чанарын асуудал. Одоогоор асуудал үүсгэхгүй ч ирээдүйд засвар үйлчилгээ хийхэд хэцүү болгоно.

Жишээ: Хэт урт функц, давхардсан код, тодорхой бус нэр томьёо, dead code

Эрсдэл: Код засах/ойлгоход хэцүү, техникийн өр төлбөр нэмэгдэх


Code Coverage

Тестүүд хэдэн хувийн кодыг шалгаж байгааг харуулдаг метрик.

Төрлүүд:

  • Line Coverage: Хэдэн хувийн мөрийг тест шалгасан
  • Branch Coverage: Хэдэн хувийн conditional statement-ийг тест шалгасан
  • Function Coverage: Хэдэн хувийн функцүүдийг тест дуудаж байгаа

Утга:

  • 0-50%: Бага coverage
  • 50-80%: Дунд зэргийн coverage
  • 80-100%: Өндөр coverage

Нэмэгдүүлэх: Юнит тест бичих, integration тест нэмэх, edge case-үүдийг тестлэх

Зорилго: 80%+


Code Duplication (Кодын давхардал)

Ижил эсвэл маш төстэй кодын хэсгүүд давтагдсан байдал.

Асуудал:

  • Засвар үйлчилгээ хийхэд хэцүү
  • Алдаа тараах эрсдэл
  • Код хэмжээ нэмэгдэх

Бууруулах:

  • Функц ашиглах
  • Класс үүсгэх
  • Helper functions бичих
  • Refactoring хийх

Метрикүүд: Duplicated Lines, Duplicated Blocks, Duplicated Files

Зорилго: 3%-аас бага


Метрикүүдийн хамаарал

Rules → Quality Profiles → Code Analysis → Issues → Quality Gate

Metrics

Ажиллах процесс:

  1. Quality Profile дотор Rules-ийг идэвхжүүлнэ
  2. SonarQube кодод дүрмүүдийг хэрэглэж Issues-ийг илрүүлнэ
  3. Issues-ийн дагуу Metrics тооцоологдоно
  4. Quality Gate метрикүүдийг шалгаж production-д орох эсэхийг шийднэ

Практик зөвлөмж

Issue удирдах:

  • Critical, Major түвшний issue-үүдээс эхлэх
  • Bugs ба Vulnerabilities-д анхаарах
  • False Positive шалгах

Quality Profile:

  • Project-ийн хэрэгцээнд тохируулах
  • Чухал дүрмүүдээс эхлэх

Quality Gate:

  • Бодитой зорилго тавих
  • Аажмаар сайжруулах
  • Төслийн хэмжээнд тохируулах

Кодын чанарыг сайжруулах нь тасралтгүй процесс. SonarQube-ийг байнгын хөгжүүлэлтийн процессын нэг хэсэг болгох.

Тусламж