แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ— SonarQube แƒ“แƒ แƒ’แƒแƒ•แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ— SonarQube แƒ“แƒ แƒ’แƒแƒ•แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ’แƒแƒ•แƒฃแƒ–แƒ˜แƒแƒ แƒแƒ— SonarQube แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜แƒก แƒ’แƒแƒ–แƒแƒ›แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก DPO แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก (แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ Alameda-แƒก แƒ“แƒ”แƒžแƒแƒ–แƒ˜แƒขแƒแƒ แƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒšแƒ˜แƒ แƒ˜แƒœแƒ’แƒฃแƒšแƒ˜ แƒแƒฆแƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—) แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒแƒ•แƒœแƒฃแƒš แƒกแƒแƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ แƒ“แƒ”แƒžแƒแƒ–แƒ˜แƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒจแƒ˜.

แƒ”แƒ แƒแƒ•แƒœแƒฃแƒšแƒ˜ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ”แƒžแƒแƒ–แƒ˜แƒขแƒแƒ แƒ˜ (แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒ™แƒแƒ•แƒ˜แƒก แƒ‘แƒ˜แƒ แƒŸแƒ˜แƒก แƒฏแƒ’แƒฃแƒคแƒ˜) แƒแƒ แƒ˜แƒก แƒคแƒ˜แƒœแƒแƒœแƒกแƒฃแƒ แƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒ“แƒ แƒแƒฆแƒ แƒ˜แƒชแƒฎแƒแƒ•แƒก แƒ แƒฃแƒกแƒฃแƒšแƒ˜ แƒ“แƒ แƒฃแƒชแƒฎแƒแƒฃแƒ แƒ˜ แƒ”แƒ›แƒ˜แƒขแƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒกแƒ˜แƒแƒœแƒ˜ แƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒ‘แƒ˜แƒก 50 แƒขแƒ แƒ˜แƒšแƒ˜แƒแƒœ แƒ แƒฃแƒ‘แƒšแƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒฆแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก. แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ–แƒแƒ แƒ“แƒ˜ แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ, แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒฃแƒฌแƒงแƒ•แƒ”แƒขแƒ˜ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ, แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜แƒก แƒฌแƒงแƒแƒ แƒแƒก แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒแƒก. แƒแƒ› แƒ›แƒ˜แƒ–แƒœแƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒฌแƒ”แƒ•แƒแƒ“ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒ SonarQube แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜. แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒแƒฆแƒ•แƒฌแƒ”แƒ แƒ— SonarQube แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜แƒก แƒจแƒ”แƒฃแƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒš แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒแƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ“แƒ”แƒžแƒแƒ แƒขแƒแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒจแƒ˜.

แƒ›แƒแƒ™แƒšแƒ”แƒ“ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ›แƒžแƒ”แƒขแƒ”แƒœแƒชแƒ˜แƒ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒ“แƒฃแƒšแƒ”แƒ‘แƒก: แƒ’แƒแƒ“แƒแƒฎแƒ“แƒ”แƒ‘แƒ˜ NSD แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ (EDF), แƒกแƒแƒ•แƒแƒญแƒ แƒ แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ (แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒขแƒฃแƒšแƒ˜ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ), แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒกแƒ แƒ“แƒ NSD-แƒก แƒจแƒแƒ แƒ˜แƒก แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒฎแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒกแƒฎแƒ•แƒ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒกแƒแƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ แƒกแƒแƒฅแƒ›แƒ˜แƒแƒœแƒแƒ‘แƒ˜แƒก แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ  แƒ›แƒฎแƒแƒ แƒ”แƒ–แƒ” แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒ แƒ’แƒแƒกแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ”. แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒแƒคแƒ˜แƒชแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒก แƒแƒœแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒแƒกแƒ”แƒ‘แƒ˜ แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ”แƒœ: แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ”แƒœ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก แƒ“แƒ แƒฌแƒแƒ แƒ›แƒแƒ’แƒ•แƒ˜แƒ“แƒ’แƒ”แƒœแƒ”แƒœ แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ— แƒฎแƒ”แƒ“แƒ•แƒแƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒแƒ”แƒ แƒ’แƒแƒก แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒก. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒกแƒฅแƒ”แƒ›แƒ: แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ - แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ - แƒกแƒแƒชแƒ“แƒ”แƒšแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ - แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ แƒ”แƒจแƒ˜ แƒฃแƒจแƒฃแƒแƒšแƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ แƒแƒขแƒแƒ› SonarQube?

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒก แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒแƒจแƒ˜ - แƒแƒ“แƒ แƒ” แƒแƒ›แƒแƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ“แƒ˜แƒ—, แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒแƒก แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ“แƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒ›แƒ–แƒแƒ แƒ“แƒ˜ แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒก แƒแƒ› แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ’แƒฃแƒœแƒ“แƒจแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ“แƒ˜แƒแƒœ แƒ’แƒแƒ›แƒแƒฃแƒชแƒ“แƒ”แƒšแƒ˜ แƒ—แƒแƒœแƒแƒ›แƒจแƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ” แƒแƒ  แƒ˜แƒชแƒœแƒแƒ‘แƒ”แƒœ แƒจแƒ˜แƒ“แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒ’แƒฃแƒšแƒแƒชแƒ˜แƒ”แƒ‘แƒก แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒขแƒ”แƒœแƒ“แƒ”แƒœแƒชแƒ˜แƒ แƒแƒฅแƒ•แƒ—. แƒ™แƒแƒ“แƒ˜แƒก แƒฎแƒแƒ แƒ˜แƒกแƒฎแƒ˜แƒก แƒ’แƒแƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ“แƒ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ SonarQube แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ“แƒ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— NSD แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜, แƒ“แƒ˜แƒ“แƒ˜ แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒ˜ แƒแƒ  แƒ˜แƒงแƒ. แƒแƒ“แƒ แƒ” แƒกแƒฎแƒ•แƒ แƒ“แƒ”แƒžแƒแƒ แƒขแƒแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒšแƒ”แƒ’แƒ”แƒ‘แƒ˜ แƒ›แƒแƒก แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ“แƒœแƒ”แƒœ แƒ›แƒ˜แƒ™แƒ แƒแƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒกแƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒšแƒแƒ“ Alameda แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜ (NSD-แƒ˜แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒแƒ“แƒ”แƒžแƒแƒ–แƒ˜แƒขแƒ แƒ“แƒ แƒกแƒแƒแƒฆแƒ แƒ˜แƒชแƒฎแƒ•แƒ แƒแƒฆแƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ), CFT-แƒจแƒ˜ (แƒกแƒแƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ‘แƒฃแƒฆแƒแƒšแƒขแƒ แƒฃแƒšแƒ˜ แƒแƒฆแƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก, แƒ‘แƒแƒšแƒแƒœแƒกแƒ”แƒ‘แƒ˜แƒก, แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ“แƒ แƒจแƒ˜แƒ“แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก) แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒจแƒ˜. แƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜. แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ“แƒแƒ’แƒ•แƒ”แƒฌแƒงแƒ SonarQube-แƒ˜แƒก แƒฃแƒคแƒแƒกแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒ—. แƒแƒกแƒ” แƒ แƒแƒ›, แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒกแƒแƒฅแƒ›แƒ”แƒ–แƒ”.

แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜

แฒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก:

  • แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒแƒฌแƒงแƒแƒ‘แƒ TeamCity-แƒจแƒ˜;
  • แƒ“แƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ MergeRequest-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ GitLab-แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜แƒ“แƒแƒœ แƒ›แƒ—แƒแƒ•แƒแƒ  แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜ (แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ GitHub Flow-แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—);
  • SonarQube, แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ DPO แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒกแƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—.

แฒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ˜แƒ–แƒแƒœแƒ˜: แƒ™แƒแƒ“แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ DPO-แƒ˜แƒก CI/CD แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒจแƒ˜.

แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ: แƒ™แƒแƒ“แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜แƒ— แƒงแƒแƒ•แƒ”แƒšแƒ˜ MergeRequest แƒ›แƒ—แƒแƒ•แƒแƒ  แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜.

แƒ˜แƒ›แƒแƒ—. แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒแƒกแƒ”แƒ—แƒ˜แƒ: แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜ แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜, แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒแƒฎแƒแƒšแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ. แƒ—แƒฃ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ“แƒ”แƒก. แƒฃแƒ™แƒ•แƒ” แƒกแƒแƒฌแƒงแƒ˜แƒก แƒ”แƒขแƒแƒžแƒ–แƒ” แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒซแƒ”แƒšแƒ˜แƒ— แƒ™แƒแƒ“แƒจแƒ˜ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ“แƒ’แƒ”แƒœแƒ. แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜: แƒ›แƒ˜แƒกแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒ˜แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

QualityGate-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ SonarQube-แƒจแƒ˜

QualityGate แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒกแƒแƒช แƒ•แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒ— แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒกแƒ˜แƒฆแƒ แƒ›แƒ”แƒจแƒ˜. แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ“แƒ˜แƒ— แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒฃแƒš แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก, แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒš แƒ“แƒ, แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒฌแƒ˜แƒšแƒแƒ“, แƒ›แƒ—แƒšแƒแƒ“ แƒกแƒฌแƒแƒ แƒ˜. แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒแƒ แƒฏแƒ”แƒ  แƒฉแƒแƒ•แƒแƒขแƒแƒ แƒ”แƒ— แƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ SonarQube-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—: แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒกแƒ™แƒแƒœแƒ˜แƒ แƒ”แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜ แƒ“แƒ แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜, แƒกแƒแƒ“แƒแƒช แƒ•แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ“แƒ˜แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒแƒก, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒจแƒ”แƒ•แƒแƒ“แƒแƒ แƒ”แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ. แƒ”แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒแƒ  แƒ˜แƒงแƒ แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒ˜ แƒ“แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒซแƒšแƒ”แƒ•แƒ“แƒ แƒกแƒฌแƒแƒ  แƒจแƒ”แƒ“แƒ”แƒ’แƒก. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ™แƒ˜ แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ˜แƒ”แƒ—, แƒ แƒแƒ› SonarQube-แƒ˜แƒก แƒแƒ แƒฏแƒ”แƒ  แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒฌแƒ”แƒกแƒแƒ— แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ (QualityGate) แƒ“แƒ แƒ’แƒแƒ•แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ— แƒ“แƒ แƒจแƒ”แƒ•แƒแƒ“แƒแƒ แƒ”แƒ‘แƒ—.

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ— SonarQube แƒ“แƒ แƒ’แƒแƒ•แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜

แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒฉแƒ•แƒ”แƒœ แƒ™แƒ•แƒšแƒแƒ• แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒžแƒ แƒ˜แƒ›แƒ˜แƒขแƒ˜แƒฃแƒš แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒแƒก. แƒแƒฆแƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ, แƒ แƒแƒ› SonarQube แƒแƒ  แƒแƒ แƒ˜แƒก แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ”แƒœแƒแƒกแƒ—แƒแƒœ, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก Delphi-แƒกแƒ—แƒแƒœ. แƒแƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ PLSql แƒ™แƒแƒ“แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒแƒกแƒ”:

  • แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ PL/SQL แƒ™แƒแƒ“แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.
  • SonarQube-แƒก แƒแƒฅแƒ•แƒก QualityGate แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒแƒ  แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒแƒก แƒฉแƒแƒ“แƒ”แƒœแƒ˜แƒกแƒแƒก.
  • แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ˜แƒงแƒ 229. แƒ—แƒฃ แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ›แƒ”แƒขแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ แƒ“แƒแƒฃแƒจแƒ•แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ.
  • แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ—แƒฃ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ“แƒ”แƒ‘แƒ, แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ QualityGate-แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ.
  • แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒฅแƒฃแƒšแƒ”แƒ‘แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒคแƒแƒ แƒ•แƒ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ.แƒจ.

แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒกแƒฅแƒ”แƒ›แƒ:

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ— SonarQube แƒ“แƒ แƒ’แƒแƒ•แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜

แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒแƒ  แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ. แƒแƒกแƒ” แƒ แƒแƒ›, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฌแƒ”แƒกแƒ แƒ˜แƒ’แƒจแƒ˜แƒ.

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ— SonarQube แƒ“แƒ แƒ’แƒแƒ•แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜

แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ.

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ— SonarQube แƒ“แƒ แƒ’แƒแƒ•แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜

แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜ แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒฃแƒคแƒ แƒ แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒ’แƒแƒฎแƒ“แƒ. แƒแƒกแƒ” แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒชแƒฃแƒ“แƒ˜แƒ.

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ— SonarQube แƒ“แƒ แƒ’แƒแƒ•แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜

แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒฆแƒ˜แƒšแƒแƒ™แƒ˜ แƒฌแƒ˜แƒ—แƒ”แƒšแƒ˜แƒ. แƒแƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒ  แƒแƒ แƒ˜แƒก แƒแƒ™แƒ แƒซแƒแƒšแƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒ™แƒ”แƒ—แƒ“แƒ”แƒ‘แƒ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒฎแƒ”แƒ“แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ . แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ˜แƒชแƒ˜แƒšแƒแƒ— แƒแƒกแƒ”แƒ—แƒ˜ แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒจแƒ˜ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ.

แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ— SonarQube แƒ“แƒ แƒ’แƒแƒ•แƒแƒชแƒœแƒแƒ‘แƒ˜แƒ”แƒ แƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜

แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ–แƒ” แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ˜แƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ SonarQube แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒก แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒ™แƒแƒชแƒ แƒ˜ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—. แƒ˜แƒก, แƒ แƒแƒกแƒแƒช แƒ˜แƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒ“ แƒ›แƒ˜แƒ˜แƒฉแƒœแƒ”แƒ•แƒก, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ  แƒ˜แƒงแƒแƒก แƒฉแƒ•แƒ”แƒœแƒก แƒ™แƒแƒ“แƒจแƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒ“แƒ แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ”แƒก แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ, แƒแƒœ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒจแƒ˜ แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ. แƒแƒ› แƒ’แƒ–แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒแƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒก. แƒ“แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ˜แƒก แƒแƒ› แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒแƒก.

แƒ แƒ แƒ›แƒ˜แƒ•แƒ”แƒ“แƒ˜แƒ—

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ˜แƒ–แƒแƒœแƒ˜ แƒ˜แƒงแƒ แƒ’แƒแƒ’แƒ•แƒ”แƒ’แƒ, แƒ›แƒ˜แƒ–แƒแƒœแƒจแƒ”แƒฌแƒแƒœแƒ˜แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒ—แƒฃ แƒแƒ แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒ–แƒ” แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ. แƒ“แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ›แƒ แƒ’แƒแƒแƒ›แƒแƒ แƒ—แƒšแƒ แƒ›แƒแƒšแƒแƒ“แƒ˜แƒœแƒ˜. SonarQube แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒ•แƒแƒซแƒšแƒ”แƒ•แƒก แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ”แƒœแƒ”แƒ‘แƒ—แƒแƒœ, แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ™แƒแƒ›แƒžแƒ”แƒขแƒ”แƒœแƒขแƒฃแƒ  แƒแƒœแƒแƒšแƒ˜แƒ–แƒก แƒ“แƒ แƒแƒฅแƒ•แƒก แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜ แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒแƒ— แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒก แƒ แƒฉแƒ”แƒ•แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ. แƒกแƒแƒ”แƒ แƒ—แƒ แƒฏแƒแƒ›แƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜ แƒ•แƒแƒ แƒ— SonarQube-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ•แƒ’แƒ”แƒ’แƒ›แƒแƒ•แƒ— แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ› แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒแƒก แƒแƒ› แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒšแƒ˜แƒ—, แƒ แƒแƒ› แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒซแƒšแƒ”แƒ‘แƒ— แƒ“แƒแƒ–แƒแƒ’แƒแƒ— แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ แƒ แƒ“แƒ แƒซแƒแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒแƒ–แƒ” แƒ“แƒ แƒ’แƒแƒ•แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒแƒ— แƒ˜แƒก แƒแƒ“แƒแƒ›แƒ˜แƒแƒœแƒฃแƒ แƒ˜ แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒก แƒแƒฆแƒ›แƒแƒคแƒฎแƒ•แƒ แƒ˜แƒก แƒ’แƒ–แƒ˜แƒ—. แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒแƒ› แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜ แƒแƒฆแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒแƒ— แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒœแƒแƒ™แƒšแƒแƒ•แƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒแƒœ, แƒžแƒ˜แƒ แƒ˜แƒฅแƒ˜แƒ—, แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ”แƒ—, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒ แƒแƒ› แƒ“แƒ˜แƒ“แƒ˜ แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒแƒšแƒ˜แƒ—.

แƒแƒ› แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ˜แƒก แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ— SonarQube แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒชแƒœแƒแƒ‘แƒแƒ–แƒ”. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒฅแƒ•แƒ— แƒจแƒ”แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ˜, แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜. แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฎแƒแƒ แƒ— แƒแƒ› แƒ—แƒ”แƒ›แƒ˜แƒ—, แƒแƒฎแƒแƒš แƒžแƒฃแƒ‘แƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒฆแƒ•แƒฌแƒ”แƒ แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒกแƒฌแƒแƒ แƒแƒ“ แƒ“แƒ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒ™แƒแƒ“แƒ˜ แƒแƒกแƒ”แƒ—แƒ˜ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒšแƒแƒ“.

แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒก แƒแƒ•แƒขแƒแƒ แƒ˜: แƒแƒขแƒแƒœแƒ

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ