เช…เชฎเซ‡ SonarQube เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชฎเชนเชพเชจ เช•เซเชทเชฎเชคเชพเชจเซ‹ เช…เชนเซ‡เชธเชพเชธ เช•เชฐเซเชฏเซ‹

เช…เชฎเซ‡ SonarQube เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชฎเชนเชพเชจ เช•เซเชทเชฎเชคเชพเชจเซ‹ เช…เชนเซ‡เชธเชพเชธ เช•เชฐเซเชฏเซ‹

เช…เชฎเซ‡ เชจเซ‡เชถเชจเชฒ เชธเซ‡เชŸเชฒเชฎเซ‡เชจเซเชŸ เชกเชฟเชชเซ‹เชเชฟเชŸเชฐเซ€เชจเซ€ เชกเซ€เชชเซ€เช“ เชธเชฟเชธเซเชŸเชฎ (เช…เชฒเชฎเซ‡เชกเชพ เชกเชฟเชชเซ‹เชเชฟเชŸเชฐเซ€ เช…เชจเซ‡ เช•เซเชฒเชฟเชฏเชฐเชฟเช‚เช— เชเช•เชพเช‰เชจเซเชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเชจเซ‹ เช‰เชฎเซ‡เชฐเซ‹) เชตเชฟเช•เชธเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชนเชพเชฒเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชฎเชพเช‚ เชธเซ‹เชจเชพเชฐเช•เซเชฏเซเชฌ เช•เซ‹เชกเชจเซ€ เช—เซเชฃเชตเชคเซเชคเชพเชจเชพ เชธเชคเชค เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช…เชจเซ‡ เชฎเชพเชชเชจ เชฎเชพเชŸเซ‡เชจเชพ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเชพ เช…เชฎเชพเชฐเชพ เช…เชจเซเชญเชตเชจเซ‡ เชถเซ‡เชฐ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช.

เชจเซ‡เชถเชจเชฒ เชธเซ‡เชŸเชฒเชฎเซ‡เชจเซเชŸ เชกเชฟเชชเซ‹เชเชฟเชŸเชฐเซ€ (เชฎเซ‹เชธเซเช•เซ‹ เชเช•เซเชธเชšเซ‡เชจเซเชœ เช—เซเชฐเซ‚เชช เช“เชซ เช•เช‚เชชเชจเซ€เช) เช เชฎเซเช–เซเชฏ เชจเชพเชฃเชพเช•เซ€เชฏ เชฎเชพเชณเช–เชพเช•เซ€เชฏ เช•เช‚เชชเชจเซ€เช“เชฎเชพเช‚เชจเซ€ เชเช• เช›เซ‡ เชœเซ‡ 50 เชŸเซเชฐเชฟเชฒเชฟเชฏเชจ เชฐเซเชฌเซ‡เชฒเซเชธเชฅเซ€ เชตเชงเซ เชฎเซ‚เชฒเซเชฏเชจเซ€ เชฐเชถเชฟเชฏเชจ เช…เชจเซ‡ เชตเชฟเชฆเซ‡เชถเซ€ เช‡เชถเซเชฏเซเช…เชฐเซเชธเชจเซ€ เชธเชฟเช•เซเชฏเซ‹เชฐเชฟเชŸเซ€เชเชจเซ‹ เชธเช‚เช—เซเชฐเชน เช…เชจเซ‡ เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเซ‡ เช›เซ‡. เชธเชฟเชธเซเชŸเชฎ เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ€ เชตเชงเชคเซ€ เชœเชคเซ€ เชฎเชพเชคเซเชฐเชพ, เชคเซ‡เชฎเชœ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชฎเชพเช‚ เชธเชคเชค เชตเชงเชพเชฐเซ‹, เชธเชฟเชธเซเชŸเชฎเชจเชพ เชธเซเชฐเซ‹เชค เช•เซ‹เชกเชจเซ€ เช‰เชšเซเชš เช—เซเชฃเชตเชคเซเชคเชพ เชœเชพเชณเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เชงเซเชฏเซ‡เชฏ เชนเชพเช‚เชธเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชเช• เชธเชพเชงเชจ เชธเซ‹เชจเชพเชฐเช•เซเชฏเซเชฌ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช• เช›เซ‡. เช† เชฒเซ‡เช–เชฎเชพเช‚, เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชตเชฟเชญเชพเช—เชจเซ€ เชนเชพเชฒเชจเซ€ เชตเชฟเช•เชพเชธ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชฎเชพเช‚ เชธเซ‹เชจเชพเชฐเช•เซเชฏเซเชฌ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เชเช•เซ€เช•เซƒเชค เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเชพ เชธเชซเชณ เช…เชจเซเชญเชตเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เช เช›เซ€เช.

เชตเชฟเชญเชพเช— เชตเชฟเชถเซ‡ เชธเช‚เช•เซเชทเชฟเชชเซเชคเชฎเชพเช‚

เช…เชฎเชพเชฐเซ€ เชฏเซ‹เช—เซเชฏเชคเชพเชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเชพ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡: NSD เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ เชšเซ‚เช•เชตเชฃเซ€, เช‡เชฒเซ‡เช•เซเชŸเซเชฐเซ‹เชจเชฟเช• เชฆเชธเซเชคเชพเชตเซ‡เชœ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชจ (EDF), เชŸเซเชฐเซ‡เชก เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ (เช‘เชซ-เชเช•เซเชธเชšเซ‡เชจเซเชœ เชŸเซเชฐเชพเชจเซเชเซ‡เช•เซเชถเชจเชจเซ€ เชจเซ‹เช‚เชงเชฃเซ€), เช•เซเชฒเชพเชฏเชจเซเชŸ เช…เชจเซ‡ NSD เชตเชšเซเชšเซ‡ เช‡เชฒเซ‡เช•เซเชŸเซเชฐเซ‹เชจเชฟเช• เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เชšเซ‡เชจเชฒเซ‹ เช…เชจเซ‡ เช˜เชฃเซเช‚ เชฌเชงเซเช‚. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ€ เชคเช•เชจเซ€เช•เซ€ เชฌเชพเชœเซ เชชเชฐ เช•เชพเชฎเชจเซ‹ เชฎเซ‹เชŸเซ‹ เชธเซเชคเชฐ. เช…เชฎเซ‡ เช…เชฐเชœเซ€เช“เชจเชพ เช†เชงเชพเชฐเซ‡ เช•เชพเชฎ เช•เชฐเซ€เช เช›เซ€เช. เชŸเซ‡เชฒเชฐเซเชธเชจเซ€ เช…เชฐเชœเซ€เช“ เชตเชฟเชถเซเชฒเซ‡เชทเช•เซ‹ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡: เชคเซ‡เช“ เช—เซเชฐเชพเชนเช•เชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฎเชพเช‚ เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชซเชฟเชŸ เชฅเชตเซ‹ เชœเซ‹เชˆเช เชคเซ‡ เช…เช‚เช—เซ‡เชจเซเช‚ เชคเซ‡เชฎเชจเซเช‚ เชตเชฟเชเชจ เช…เชฎเชจเซ‡ เชฐเชœเซ‚ เช•เชฐเซ‡ เช›เซ‡. เช†เช—เชณ, เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชฏเซ‹เชœเชจเชพ: เช•เซ‹เชก เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ - เชŸเซ‡เชธเซเชŸเชฟเช‚เช— - เชŸเซเชฐเชพเชฏเชฒ เช“เชชเชฐเซ‡เชถเชจ - เชธเซ€เชงเชพ เช—เซเชฐเชพเชนเช•เชจเซ‡ เช‰เชคเซเชชเชพเชฆเช• เชธเชฐเซเช•เชฟเชŸเชฎเชพเช‚ เช•เซ‹เชกเชจเซ€ เชกเชฟเชฒเชฟเชตเชฐเซ€.

เชถเชพ เชฎเชพเชŸเซ‡ SonarQube?

เช•เซ‹เชก เช•เซเชตเซ‹เชฒเชฟเชŸเซ€ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชฎเชพเชŸเซ‡ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช…เชฎเชพเชฐเชพ เชตเชฟเชญเชพเช—เชจเซ‹ เช† เชชเชนเซ‡เชฒเซ‹ เช…เชจเซเชญเชต เช›เซ‡ - เช…เช—เชพเช‰ เช…เชฎเซ‡ เชคเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เช•เชฐเซเชฏเซเช‚ เชนเชคเซเช‚, เชฎเชพเชคเซเชฐ เช•เซ‹เชก เชฐเชฟเชตเซเชฏเซ‚. เชชเชฐเช‚เชคเซ เช•เชพเชฎเชจเชพ เชตเชงเชคเชพ เชœเชฅเซเชฅเชพเชจเซ‡ เช† เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเชพ เช“เชŸเซ‹เชฎเซ‡เชถเชจเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เช‰เชชเชฐเชพเช‚เชค, เชŸเซ€เชฎเชฎเชพเช‚ เชเชตเชพ เชฌเชฟเชจเช…เชจเซเชญเชตเซ€ เช•เชฐเซเชฎเชšเชพเชฐเซ€เช“ เชชเชฃ เช›เซ‡ เชœเซ‡เช“ เช†เช‚เชคเชฐเชฟเช• เชตเชฟเช•เชพเชธเชจเชพ เชจเชฟเชฏเชฎเซ‹เชฅเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชชเชฐเชฟเชšเชฟเชค เชจเชฅเซ€ เช…เชจเซ‡ เชตเชงเซ เชญเซ‚เชฒเซ‹ เช•เชฐเชตเชพเชจเซเช‚ เชตเชฒเชฃ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เช•เซ‹เชกเชจเซ€ เช—เซเชฃเชตเชคเซเชคเชพเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‹ เช…เชฎเชฒ เช•เชฐเชตเชพเชจเซ‹ เชจเชฟเชฐเซเชฃเชฏ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹. SonarQube เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช•เซ‡เชŸเชฒเซ€เช• NSD เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเซ‹เชตเชพเชฅเซ€, เชคเซ‡เชจเซ‡ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชฎเชพเช‚ เชฒเชพเช‚เชฌเซ‹ เชธเชฎเชฏ เชฒเชพเช—เซเชฏเซ‹ เชจเชฅเซ€. เช…เช—เชพเช‰, เช…เชจเซเชฏ เชตเชฟเชญเชพเช—เซ‹เชจเชพ เชธเชนเช•เชพเชฐเซเชฏเช•เชฐเซ‹ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช…เชฒเชฎเซ‡เชกเชพ เชธเชฟเชธเซเชŸเชฎ (เชเชจเชเชธเชกเซ€เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชกเชฟเชชเซ‹เชเชฟเชŸเชฐเซ€ เช…เชจเซ‡ เช•เซเชฒเชฟเชฏเชฐเชฟเช‚เช— เชเช•เชพเช‰เชจเซเชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ), CFT (เชเช•เชพเช‰เชจเซเชŸเชฟเช‚เช—, เชฌเซ‡เชฒเซ‡เชจเซเชธ, เชซเชฐเชœเชฟเชฏเชพเชค เช…เชจเซ‡ เช†เช‚เชคเชฐเชฟเช• เชฐเชฟเชชเซ‹เชฐเซเชŸเชฟเช‚เช—เชจเซ€ เชคเซˆเชฏเชพเชฐเซ€ เชฎเชพเชŸเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชธเชฟเชธเซเชŸเชฎ) เชฎเชพเช‚ เชฎเชพเช‡เช•เซเชฐเซ‹เชธเชฐเซเชตเชฟเชธเชฟเชธเชจเชพ เช•เซ‹เชกเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชคเชพ เชนเชคเชพ. เชธเชฟเชธเซเชŸเชฎเซ‹ เชชเซเชฐเชฏเซ‹เช—เซ‹ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ SonarQube เชจเชพ เชฎเชซเชค เชธเช‚เชธเซเช•เชฐเชฃเชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เช›เซ‡. เชคเซ‹ เชšเชพเชฒเซ‹ เช†เชชเชฃเชพ เช•เซ‡เชธ เชคเชฐเชซ เช†เช—เชณ เชตเชงเซ€เช.

เช…เชฎเชฒเซ€เช•เชฐเชฃ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ

เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡:

  • เชŸเซ€เชฎเชธเชฟเชŸเซ€เชฎเชพเช‚ เชธเชฟเชธเซเชŸเชฎเชจเซ€ เชธเซเชตเชšเชพเชฒเชฟเชค เชเชธเซ‡เชฎเซเชฌเชฒเซ€;
  • GitLab (GitHub เชซเซเชฒเซ‹ เช…เชจเซเชธเชพเชฐ เชตเชฟเช•เชพเชธ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ) เชฎเชพเช‚ เชซเซ€เชšเชฐ เชถเชพเช–เชพเชฎเชพเช‚เชฅเซ€ เชฎเชพเชธเซเชŸเชฐ เชฌเซเชฐเชพเชจเซเชšเชฎเชพเช‚ MergeRequest เชฎเชพเชฐเชซเชคเซ‡ เช•เซ‹เชก เช…เชชเชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชธเซ‡เชŸ เช•เชฐเซ‹;
  • SonarQube เชถเซ‡เชกเซเชฏเซ‚เชฒ เชชเชฐ DPO เชธเชฟเชธเซเชŸเชฎ เชฎเชพเชŸเซ‡ เช•เซ‹เชกเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช—เซ‹เช เชตเซ‡เชฒเซเช‚ เช›เซ‡.

เช†เชชเชฃเซ‹ เชฒเช•เซเชท: AVE เชจเซ€ CI/CD เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชฎเชพเช‚ เชธเซเชตเชšเชพเชฒเชฟเชค เช•เซ‹เชก เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ‹.

เช•เชธเซเชŸเชฎเชพเช‡เช เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡: เชฎเซเช–เซเชฏ เชถเชพเช–เชพเชฎเชพเช‚ เชฆเชฐเซ‡เช• เชฎเชฐเซเชœเชฐเชฟเช•เซเชตเซ‡เชธเซเชŸ เชธเชพเชฅเซ‡ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช• เชฆเซเชตเชพเชฐเชพ เช•เซ‹เชกเชจเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชคเชชเชพเชธเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ.

เชคเซ‡. เชฒเช•เซเชทเซเชฏ เชšเชฟเชคเซเชฐ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช›เซ‡: เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชซเซ€เชšเชฐ เชถเชพเช–เชพเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช…เชชเชฒเซ‹เชก เช•เชฐเซ‡ เชคเซ‡ เชœเชฒเชฆเซ€, เช•เซ‹เชกเชฎเชพเช‚ เชจเชตเซ€ เชญเซ‚เชฒเซ‹ เชฎเชพเชŸเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เชคเชชเชพเชธ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡. เชœเซ‹ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชญเซ‚เชฒเซ‹ เชจ เชนเซ‹เชฏ, เชคเซ‹ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชธเซเชตเซ€เช•เชพเชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช›เซ‡, เช…เชจเซเชฏเชฅเชพ เชญเซ‚เชฒเซ‹ เชธเซเชงเชพเชฐเชตเซ€ เชชเชกเชถเซ‡. เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชคเชฌเช•เซเช•เซ‡, เช…เชฎเซ‡ เช•เซ‹เชกเชฎเชพเช‚ เชšเซ‹เช•เซเช•เชธ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชญเซ‚เชฒเซ‹เชจเซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชคเชพ. เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เช–เซ‚เชฌ เชœ เชฒเชตเชšเซ€เช• เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เช›เซ‡: เชคเซ‡ เชเชตเซ€ เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“เชจเชพ เชšเซ‹เช•เซเช•เชธ เช•เชพเชฐเซเชฏเซ‹ เชฎเชพเชŸเซ‡, เชฆเชฐเซ‡เช• เชธเชฟเชธเซเชŸเชฎ เช…เชจเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชถเซˆเชฒเซ€ เชฎเชพเชŸเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡.

เชธเซ‹เชจเชพเชฐเช•เซเชฏเซเชฌเชฎเชพเช‚ เช•เซเชตเซ‹เชฒเชฟเชŸเซ€เช—เซ‡เชŸเชจเซ‡ เช—เซ‹เช เชตเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

เช•เซเชตเซ‹เชฒเชฟเชŸเซ€เช—เซ‡เชŸ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช เชเชตเซ€ เชตเชธเซเชคเซ เช›เซ‡ เชœเซ‡ เช†เชชเชฃเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸเชจเชพ เช†เช‚เชคเชฐเชกเชพเชฎเชพเช‚ เชตเชพเช‚เชšเซ€เช เช›เซ€เช. เชถเชฐเซ‚เช†เชคเชฎเชพเช‚, เช…เชฎเซ‡ เชเช• เช…เชฒเช— เช…เชญเชฟเช—เชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹, เชตเชงเซ เชœเชŸเชฟเชฒ เช…เชจเซ‡ เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เชคเชฆเซเชฆเชจ เชฏเซ‹เช—เซเชฏ เชจเชฅเซ€. เชธเซŒเชชเซเชฐเชฅเชฎ, เช…เชฎเซ‡ SonarQube เชฆเซเชตเชพเชฐเชพ เชฌเซ‡ เชตเชพเชฐ เชธเซเช•เซ‡เชจ เชšเชฒเชพเชตเซเชฏเซเช‚: เช…เชฎเซ‡ เชซเซ€เชšเชฐ เชฌเซเชฐเชพเชจเซเชš เช…เชจเซ‡ เชคเซ‡ เชฌเซเชฐเชพเชจเซเชšเชจเซ‡ เชธเซเช•เซ‡เชจ เช•เชฐเซ€ เชœเซเชฏเชพเช‚ เช…เชฎเซ‡ เชซเซ€เชšเชฐ เชฌเซเชฐเชพเชจเซเชšเชจเซ‡ เชฎเชฐเซเชœ เช•เชฐเชตเชพ เชœเชˆ เชฐเชนเซเชฏเชพ เชนเชคเชพ, เช…เชจเซ‡ เชชเช›เซ€ เช…เชฎเซ‡ เชญเซ‚เชฒเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเซ€. เช† เชชเชฆเซเชงเชคเชฟ เชธเซเชฅเชฟเชฐ เชจ เชนเชคเซ€ เช…เชจเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชฏเซ‹เช—เซเชฏ เชชเชฐเชฟเชฃเชพเชฎ เช†เชชเชคเซ€ เชจ เชนเชคเซ€. เช…เชจเซ‡ เชชเช›เซ€ เช…เชฎเซ‡ เชถเซ€เช–เซเชฏเชพ เช•เซ‡ เชธเซ‹เชจเชพเชฐเช•เซเชฏเซเชฌเชจเซ‡ เชฌเซ‡ เชตเชพเชฐ เชšเชฒเชพเชตเชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡, เชคเชฎเซ‡ เช•เชฐเซ‡เชฒเซ€ เชญเซ‚เชฒเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ (เช•เซเชตเซ‹เชฒเชฟเชŸเซ€เช—เซ‡เชŸ) เชชเชฐ เชฎเชฐเซเชฏเชพเชฆเชพ เชธเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชคเชฎเซ‡ เช…เชชเชฒเซ‹เชก เช•เชฐเซ‹ เช›เซ‹ เช…เชจเซ‡ เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเซ‹ เช›เซ‹ เชคเซ‡ เชœ เชถเชพเช–เชพเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เช…เชฎเซ‡ SonarQube เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชฎเชนเชพเชจ เช•เซเชทเชฎเชคเชพเชจเซ‹ เช…เชนเซ‡เชธเชพเชธ เช•เชฐเซเชฏเซ‹

เชนเชฎเชฃเชพเช‚ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชนเชœเซ€ เชชเชฃ เช†เชฆเชฟเชฎ เช•เซ‹เชก เชšเซ‡เช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช. เช เชจเซ‹เช‚เชงเชตเซเช‚ เชœเซ‹เชˆเช เช•เซ‡ SonarQube เชกเซ‡เชฒเซเชซเซ€ เชธเชนเชฟเชค เช•เซ‡เชŸเชฒเซ€เช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพเช“ เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชค เชจเชฅเซ€. เช† เช•เซเชทเชฃเซ‡, เช…เชฎเชพเชฐเซ€ เชธเชฟเชธเซเชŸเชฎ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชซเช•เซเชค PLSql เช•เซ‹เชกเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ€เช เช›เซ€เช.

เชคเซ‡ เช†เชจเซ€ เชœเซ‡เชฎ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡:

  • เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเชพเชŸเซ‡ เชฎเชพเชคเซเชฐ PL/SQL เช•เซ‹เชกเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ€เช เช›เซ€เช.
  • เช•เซเชตเซ‹เชฒเชฟเชŸเซ€เช—เซ‡เชŸ เชธเซ‹เชจเชพเชฐเช•เซเชฏเซเชฌเชฎเชพเช‚ เช—เซ‹เช เชตเซ‡เชฒ เช›เซ‡ เชœเซ‡เชฅเซ€ เช•เชฎเชฟเชŸ เชธเชพเชฅเซ‡ เชญเซ‚เชฒเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เชจ เชฅเชพเชฏ.
  • เชชเซเชฐเชฅเชฎ เชฐเชจ เชชเชฐ เชญเซ‚เชฒเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ 229 เชนเชคเซ€. เชœเซ‹ เช•เชฎเชฟเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชตเชงเซ เชญเซ‚เชฒเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เชฎเชฐเซเชœ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เชจเชฅเซ€.
  • เช†เช—เชณ, เชญเซ‚เชฒเซ‹เชจเชพ เชธเซเชงเชพเชฐเชฃเชพเชจเซ‡ เช†เชงเชฟเชจ, เช•เซเชตเซ‹เชฒเชฟเชŸเซ€เช—เซ‡เชŸเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เช—เซ‹เช เชตเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชฌเชจเชถเซ‡.
  • เชคเชฎเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชฎเชพเชŸเซ‡ เชจเชตเซ€ เช†เช‡เชŸเชฎ เชชเชฃ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชธเชพเชฅเซ‡ เช•เซ‹เชก เช•เชตเชฐเซ‡เชœ เชตเช—เซ‡เชฐเซ‡.

เช•เชพเชฐเซเชฏ เชฏเซ‹เชœเชจเชพ:

เช…เชฎเซ‡ SonarQube เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชฎเชนเชพเชจ เช•เซเชทเชฎเชคเชพเชจเซ‹ เช…เชนเซ‡เชธเชพเชธ เช•เชฐเซเชฏเซ‹

เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซ€ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚, เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชธเซเชตเชฟเชงเชพ เชถเชพเช–เชพเชฎเชพเช‚ เชญเซ‚เชฒเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เชฅเชฏเซ‹ เชจเชฅเซ€. เชคเซ‡เชฅเซ€ เชฌเชงเซเช‚ เชฌเชฐเชพเชฌเชฐ เช›เซ‡.

เช…เชฎเซ‡ SonarQube เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชฎเชนเชพเชจ เช•เซเชทเชฎเชคเชพเชจเซ‹ เช…เชนเซ‡เชธเชพเชธ เช•เชฐเซเชฏเซ‹

เชฎเชฐเซเชœ เชฌเชŸเชจ เช‰เชชเชฒเชฌเซเชง เชฌเชจเซ‡ เช›เซ‡.

เช…เชฎเซ‡ SonarQube เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชฎเชนเชพเชจ เช•เซเชทเชฎเชคเชพเชจเซ‹ เช…เชนเซ‡เชธเชพเชธ เช•เชฐเซเชฏเซ‹

เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซ€ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚, เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชธเซเชตเชฟเชงเชพ เชถเชพเช–เชพเชฎเชพเช‚ เชญเซ‚เชฒเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฎเช‚เชœเซ‚เชฐเซ€ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชฅเชˆ เช—เชˆ เช›เซ‡. เชคเซ‡เชฅเซ€ เชฌเชงเซเช‚ เช–เชฐเชพเชฌ เช›เซ‡.

เช…เชฎเซ‡ SonarQube เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชฎเชนเชพเชจ เช•เซเชทเชฎเชคเชพเชจเซ‹ เช…เชนเซ‡เชธเชพเชธ เช•เชฐเซเชฏเซ‹

เชฎเชฐเซเชœ เชฌเชŸเชจ เชฒเชพเชฒ เช›เซ‡. เช† เช•เซเชทเชฃเซ‡, เชญเซ‚เชฒเชญเชฐเซ‡เชฒเชพ เช•เซ‹เชกเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช…เชชเชฒเซ‹เชก เช•เชฐเชตเชพ เชชเชฐ เช•เซ‹เชˆ เชชเซเชฐเชคเชฟเชฌเช‚เชง เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช† เชœเชตเชพเชฌเชฆเชพเชฐ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเชจเชพ เชตเชฟเชตเซ‡เช•เชฌเซเชฆเซเชงเชฟเชฅเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚, เชคเชฎเซ‡ เช†เชตเชพ เช•เชฎเชฟเชŸเซเชธเชจเซ‡ เชฎเซเช–เซเชฏ เชถเชพเช–เชพเชฎเชพเช‚ เชฅเชคเชพ เช…เชŸเช•เชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹.

เช…เชฎเซ‡ SonarQube เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชฎเชนเชพเชจ เช•เซเชทเชฎเชคเชพเชจเซ‹ เช…เชนเซ‡เชธเชพเชธ เช•เชฐเซเชฏเซ‹

เชญเซ‚เชฒเซ‹ เชธเชพเชฅเซ‡ เชธเซเชต-เชตเซเชฏเชตเชนเชพเชฐ

เช†เช—เชณ, เชคเชฎเชพเชฐเซ‡ เชธเชฟเชธเซเชŸเชฎ เชฆเซเชตเชพเชฐเชพ เชถเซ‹เชงเชพเชฏเซ‡เชฒ เชฌเชงเซ€ เชญเซ‚เชฒเซ‹ เชคเชชเชพเชธเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ SonarQube เชคเซ‡เชจเชพ เช•เชกเช• เชงเซ‹เชฐเชฃเซ‹ เช…เชจเซเชธเชพเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡ เชœเซ‡เชจเซ‡ เชญเซ‚เชฒ เชฎเชพเชจเซ‡ เช›เซ‡ เชคเซ‡ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เช†เชชเชฃเชพ เช•เซ‹เชกเชฎเชพเช‚ เชเช• เชจ เชนเซ‹เชˆ เชถเช•เซ‡. เชคเซ‡เชฅเซ€, เชคเชฎเชพเชฐเซ‡ เชคเชชเชพเชธเชตเชพเชจเซ€ เช…เชจเซ‡ เชจเซ‹เช‚เชง เชฒเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช•เซ‡ เชถเซเช‚ เช† เช–เชฐเซ‡เช–เชฐ เชญเซ‚เชฒ เช›เซ‡, เช…เชฅเชตเชพ เช…เชฎเชพเชฐเซ€ เชถเชฐเชคเซ‹เชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เช†เชฎ, เช…เชฎเซ‡ เชญเซ‚เชฒเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เช˜เชŸเชพเชกเซ€เช เช›เซ€เช. เชธเชฎเชฏ เชœเชคเชพเช‚, เชธเชฟเชธเซเชŸเชฎ เช† เช˜เซ‹เช‚เช˜เชพเชŸเชจเซ‡ เชธเชฎเชœเชตเชพเชจเซเช‚ เชถเซ€เช–เชถเซ‡.

เช†เชชเชฃเซ‡ เชถเซเช‚ เช•เชฐเชตเชพ เช†เชตเซเชฏเชพ เช›เซ€เช

เช…เชฎเชพเชฐเซ‹ เชงเซเชฏเซ‡เชฏ เช เชธเชฎเชœเชตเชพเชจเซ‹ เชนเชคเซ‹ เช•เซ‡ เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เช•เซ‹เชก เชตเซ‡เชฐเชฟเชซเชฟเช•เซ‡เชถเชจเชจเซ‡ เช“เชŸเซ‹เชฎเซ‡เชถเชจเชฎเชพเช‚ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช•เชฐเชตเซเช‚ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ. เช…เชจเซ‡ เชชเชฐเชฟเชฃเชพเชฎ เช…เชชเซ‡เช•เซเชทเชพเช“ เชชเซเชฐเชฎเชพเชฃเซ‡ เชฐเชนเซเชฏเซเช‚. SonarQube เช…เชฎเชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เชญเชพเชทเชพเช“ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เชเช•เชฆเชฎ เชธเช•เซเชทเชฎ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ เชŸเชฟเชชเซเชธ เชชเชพเชธเซ‡เชฅเซ€ เชถเซ€เช–เชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เช…เชฎเซ‡ เชธเซ‹เชจเชพเชฐเช•เซเชฏเซเชฌ เชธเชพเชฅเซ‡เชจเชพ เช…เชฎเชพเชฐเชพ เชชเซเชฐเชฅเชฎ เช…เชจเซเชญเชตเชฅเซ€ เช–เซเชถ เช›เซ€เช เช…เชจเซ‡ เช† เชฆเชฟเชถเชพเชฎเชพเช‚ เชตเชงเซ เชตเชฟเช•เชพเชธ เช•เชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เชฌเชจเชพเชตเซ€เช เช›เซ€เช. เช…เชฎเซ‡ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซ€เช เช›เซ€เช เช•เซ‡ เชญเชตเชฟเชทเซเชฏเชฎเชพเช‚ เช…เชฎเซ‡ เช•เซ‹เชก เชฐเชฟเชตเซเชฏเซ‚ เชชเชฐ เชตเชงเซ เชธเชฎเชฏ เช…เชจเซ‡ เชฎเชนเซ‡เชจเชค เชฌเชšเชพเชตเซ€ เชถเช•เซ€เชถเซเช‚ เช…เชจเซ‡ เชฎเชพเชจเชต เชชเชฐเชฟเชฌเชณเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เชตเชงเซ เชธเชพเชฐเซเช‚ เชฌเชจเชพเชตเซ€ เชถเช•เซ€เชถเซเช‚. เช•เชฆเชพเชš เช† เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เช†เชชเชฃเซ‡ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชจเซ€ เช–เชพเชฎเซ€เช“ เชถเซ‹เชงเซ€ เชถเช•เซ€เชถเซเช‚, เช…เชฅเชตเชพ เชคเซ‡เชจเชพเชฅเซ€ เชตเชฟเชชเชฐเซ€เชค, เช…เชฎเซ‡ เชซเชฐเซ€ เชเช•เชตเชพเชฐ เช–เชพเชคเชฐเซ€ เช•เชฐเซ€เชถเซเช‚ เช•เซ‡ เช† เชฎเชนเชพเชจ เชธเช‚เชญเชตเชฟเชคเชคเชพ เชธเชพเชฅเซ‡ เชเช• เชธเชฐเชธ เชตเชธเซเชคเซ เช›เซ‡.

เช† เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เชฒเซ‡เช–เชฎเชพเช‚, เช…เชฎเซ‡ เชธเซ‹เชจเชพเชฐเช•เซเชฏเซเชฌ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช• เชธเชพเชฅเซ‡เชจเซ€ เช…เชฎเชพเชฐเซ€ เช“เชณเช–เชพเชฃ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€. เชœเซ‹ เชคเชฎเชจเซ‡ เชชเซเชฐเชถเซเชจเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เช•เซƒเชชเชพ เช•เชฐเซ€เชจเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชฎเชพเช‚ เชฒเช–เซ‹. เชœเซ‹ เชคเชฎเชจเซ‡ เช† เชตเชฟเชทเชฏเชฎเชพเช‚ เชฐเซเชšเชฟ เช›เซ‡, เชคเซ‹ เชจเชตเชพ เชชเซเชฐเช•เชพเชถเชจเชฎเชพเช‚ เช…เชฎเซ‡ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เช•เชฐเซ€เชถเซเช‚ เช•เซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชงเซเช‚ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เช†เชตเซ€ เชคเชชเชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชก เชฒเช–เชตเซ‹.

เชŸเซ‡เช•เซเชธเซเชŸ เชฒเซ‡เช–เช•: เช…เชคเชจเซเชฏเชพ

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹