ื”ืฉื•ื•ืื” ื‘ื™ืŸ ื›ืœื™ ื ื™ืงื•ื™ ื•ืคืœื˜ืคื•ืจืžื•ืช ืžื•ื‘ื™ืœื•ืช

ื”ืฉื•ื•ืื” ื‘ื™ืŸ ื›ืœื™ ื•ืคืœื˜ืคื•ืจืžื•ืช ืžื•ื‘ื™ืœื•ืช ืœื ื™ืงื•ื™ ืงื™ืจื•ืช ืขื‘ื•ืจ ืฆื•ื•ืชื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื

ืืจื’ื•ื ื™ ื”ื ื“ืกื” ื’ื“ื•ืœื™ื ื›ืžืขื˜ ื•ืœื ืžืชืงืฉื™ื ืขื ื”ื–ืžื™ื ื•ืช ืฉืœ ื›ืœื™ ืชื™ืงื•ืŸ (linting). ื”ืืชื’ืจ ื ื•ื‘ืข ืžืฉืžื™ืจื” ืขืœ ืื›ื™ืคืช ืื™ื›ื•ืช ืงื•ื“ ืขืงื‘ื™ืช ืขืœ ืคื ื™ ื‘ืกื™ืกื™ ืงื•ื“ ืจื‘-ืœืฉื•ื ื™ื™ื, ืฆื•ื•ืชื™ื ืžื‘ื•ื–ืจื™ื ื•ืฆื ืจืช ืืกืคืงื” โ€‹โ€‹ื”ืžืชืคืชื—ืช ืœืœื ื”ืจืฃ. ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช ื‘ื”ืŸ ืขืฉืจื•ืช ืฉื™ืจื•ืชื™ื ื•ืžืื’ืจื™ื ืžืชืคืชื—ื™ื ื‘ื• ื–ืžื ื™ืช, ืชื™ืงื•ืŸ (linting) ื”ื•ืคืš ืœื™ื•ืชืจ ืžืืฉืจ ืืžืฆืขื™ ื”ื’ื ื” ืขืœ ืกื’ื ื•ืŸ. ื”ื•ื ืคื•ืขืœ ื›ืฉื›ื‘ืช ืžื“ื™ื ื™ื•ืช ืื•ื˜ื•ืžื˜ื™ืช ื”ืžื ืกื” ืœืชืงื ืŸ ืืช ื”ืชื ื”ื’ื•ืช ื”ืงื•ื“, ืžื•ืกื›ืžื•ืช ืื“ืจื™ื›ืœื™ื•ืช ื•ืžืฆื‘ ืื‘ื˜ื—ื” ืขืœ ืคื ื™ ื›ืœ ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ ื”ืคื™ืชื•ื—.

ื”ืœื—ืฅ ื’ื•ื‘ืจ ื›ื›ืœ ืฉืชื™ืงื™ ื”ืคื™ืชื•ื— ืžืชืจื—ื‘ื™ื. ืคืœื˜ืคื•ืจืžื” ืืจื’ื•ื ื™ืช ืื—ืช ืขืฉื•ื™ื” ืœืฉืœื‘ ืฉื™ืจื•ืชื™ ื ืชื•ื ื™ื ืฉืœ Python, ืžืžืฉืงื™ API ืฉืœ Node.js, ืžืขืจื›ื•ืช ื’ื™ื‘ื•ื™ ืฉืœ Java, ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ืฉืœ Go ื•ืžืขืจื›ื•ืช ืžื“ื•ืจ ืงื•ื“ื ืฉืขื•ื‘ืจื•ืช ืžื•ื“ืจื ื™ื–ืฆื™ื” ื”ื“ืจื’ืชื™ืช. ื›ืœ ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืฉืœ ืฉืคื” ืžื‘ื™ืื” ืื™ืชื” ืคื™ืœื•ืกื•ืคื™ื™ืช ืขื™ื‘ื•ื“ ื ืชื•ื ื™ื, ืžืขืจื›ื™ ื›ืœืœื™ื ื•ืžื•ื“ืœื™ ืชื•ืกืคื™ื ืžืฉืœื”. ื›ืืฉืจ ื›ืœื™ื ืืœื” ื ืคืจืกื™ื ืœืœื ืžืžืฉืœ ืžืชื•ืื, ื”ืื›ื™ืคื” ื”ื•ืคื›ืช ืœื ืขืงื‘ื™ืช, ื•ืชื•ืฆืื•ืช ืขื™ื‘ื•ื“ ื”ื ืชื•ื ื™ื ืžืื‘ื“ื•ืช ืืžื™ื ื•ืช ื‘ืงืจื‘ ืฆื•ื•ืชื™ ื”ื ื“ืกื”. ืืชื’ืจื™ื ืžื‘ื ื™ื™ื ืืœื” ืžืฉืงืคื™ื ืกื•ื’ื™ื•ืช ืจื—ื‘ื•ืช ื™ื•ืชืจ ืฉืœ... ืคืœื˜ืคื•ืจืžื•ืช ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืœืžืคืชื—ื™ื ื›ืืฉืจ ื”ื—ืœื˜ื•ืช ืœื’ื‘ื™ ื›ืœื™ื ืžืขืฆื‘ื•ืช ื“ืคื•ืกื™ ืฉื™ืชื•ืฃ ืคืขื•ืœื” ื•ืžื”ื™ืจื•ืช ืืกืคืงื”.

ืฉืคืจ ืืช ืื™ื›ื•ืช ื”ืงื•ื“

ืฉืœื‘ ืื›ื™ืคืช ืคื™ื ื•ื™ ืกื™ื‘ื™ื ืขื SMART TS XL ื›ื“ื™ ืœื”ืฉื™ื’ ื”ื‘ื ื” ืจื—ื‘ื” ื™ื•ืชืจ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืžืขืจื›ืช ื•ืื™ื ื˜ืจืืงืฆื™ื•ืช ื”ืงื•ื“.

ื’ืœื” ืขื›ืฉื™ื•

ืœื™ื ื˜ื™ื ื’ ื’ื ืžืงื™ื™ื ืื™ื ื˜ืจืืงืฆื™ื” ื™ืฉื™ืจื” ืขื ืชืฉืชื™ืช ื”ืืกืคืงื”. ืฆื™ื ื•ืจื•ืช CI ืžื•ื“ืจื ื™ื™ื ืžืชื™ื™ื—ืกื™ื ืœื‘ื“ื™ืงื•ืช ืœื™ื ื˜ ื›ืืœ ืžื ื’ื ื•ื ื™ ืฉืขืจ ื”ืงื•ื‘ืขื™ื ื”ืื ื ื™ืชืŸ ืœืžื–ื’ ืื• ืœืคืจื•ืก ืงื•ื“. ื›ืืฉืจ ืงื‘ื•ืฆื•ืช ื›ืœืœื™ื ืžื›ื•ื™ืœื•ืช ื‘ืฆื•ืจื” ื’ืจื•ืขื”, ืฆื™ื ื•ืจื•ืช ื”ื•ืคื›ื™ื ืœื‘ืœืชื™ ื™ืฆื™ื‘ื™ื, ื•ืžื™ื™ืฆืจื™ื ื”ืชืจืื•ืช ืจื•ืขืฉื•ืช ืื• ืชื•ืฆืื•ืช ื—ื™ื•ื‘ื™ื•ืช ืฉื’ื•ื™ื•ืช ืฉืคื•ื’ืขื•ืช ื‘ืืžื•ืŸ ื‘ื‘ืงืจื•ืช ืื™ื›ื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช. ืขื ื”ื–ืžืŸ, ืฆื•ื•ืชื™ื ืขืฉื•ื™ื™ื ืœืขืงื•ืฃ ืœื—ืœื•ื˜ื™ืŸ ืืช ื”ืื›ื™ืคื”, ืœื”ื—ืœื™ืฉ ืืช ื”ืžืฉืžืขืช ื”ืื“ืจื™ื›ืœื™ืช ื•ืœื™ืฆื•ืจ ืกื˜ื ื“ืจื˜ื™ื ืžืงื•ื˜ืขื™ื ืฉืœ ืงื™ื“ื•ื“ ื‘ื™ืŸ ืฉื™ืจื•ืชื™ื.

ืขื‘ื•ืจ ืžื ื”ื™ื’ื™ ืคืœื˜ืคื•ืจืžื•ืช ื•ืฆื•ื•ืชื™ ืืจื›ื™ื˜ืงื˜ื•ืจื”, ื‘ื—ื™ืจืช ื›ืœื™ ื ื™ืงื•ื™ (linting) ื”ื•ืคื›ืช ืืคื•ื ืœื”ื—ืœื˜ื” ืืกื˜ืจื˜ื’ื™ืช ื•ืœื ื‘ื—ื™ืจื” ื”ืžืชืžืงื“ืช ืืš ื•ืจืง ื‘ืžืคืชื—ื™ื. ืคืœื˜ืคื•ืจืžื•ืช ื ื™ืงื•ื™ ื™ืขื™ืœื•ืช ื—ื™ื™ื‘ื•ืช ืœืื–ืŸ ื‘ื™ืŸ ื’ืžื™ืฉื•ืช ื›ืœืœื™ื, ื‘ื’ืจื•ืช ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช, ื‘ื™ืฆื•ืขื™ ื‘ื™ืฆื•ืข ื•ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืขืจื›ื•ืช CI/CD. ื”ื”ืฉื•ื•ืื” ื”ื‘ืื” ื‘ื•ื—ื ืช ื›ืœื™ ื•ืคืœื˜ืคื•ืจืžื•ืช ื ื™ืงื•ื™ ืžื•ื‘ื™ืœื™ื ื”ืžืฉืžืฉื™ื ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช, ืชื•ืš ื”ืชืžืงื“ื•ืช ื‘ืื•ืคืŸ ืฉื‘ื• ืžื ื•ืขื™ ื”ื›ืœืœื™ื ืฉืœื”ื, ืžืขืจื›ื•ืช ื”ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ ืชื•ืกืคื™ื ื•ืžืืคื™ื™ื ื™ื ืชืคืขื•ืœื™ื™ื ืžืฉืคื™ืขื™ื ืขืœ ืื›ื™ืคืช ืื™ื›ื•ืช ืชื•ื›ื ื” ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ.

SMART TS XL ื•ืชื•ื‘ื ื•ืช ื”ืชื ื”ื’ื•ืชื™ื•ืช ืœืžืžืฉืœ ืืจื’ื•ื ื™

ื›ืœื™ ืœื™ื˜ื•ืฉ (Linting) ืžืชืžืงื“ื™ื ื‘ืื•ืคืŸ ืžืกื•ืจืชื™ ื‘ื ื›ื•ื ื•ืช ืชื—ื‘ื™ืจื™ืช, ืžืฉืžืขืช ืกื’ื ื•ื ื™ืช ื•ื–ื™ื”ื•ื™ ื˜ืขื•ื™ื•ืช ืชื›ื ื•ืช ื ืคื•ืฆื•ืช. ืขื ื–ืืช, ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช, ืกื™ื›ื•ื ื™ื ื”ื ื“ืกื™ื™ื ืจื‘ื™ื ื ื•ื‘ืขื™ื ืžื—ื•ืฅ ืœืชื—ื•ื ื”ื‘ื“ื™ืงื•ืช ื”ืœืœื•. ืกื—ื™ืคื” ืื“ืจื™ื›ืœื™ืช, ืฉืจืฉืจืื•ืช ืชืœื•ืช ื ืกืชืจื•ืช ื•ื ืชื™ื‘ื™ ื‘ื™ืฆื•ืข ืœื ืžื›ื•ื•ื ื™ื ืขื•ืงืคื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืืช ื›ืœืœื™ ื”ืœื™ื˜ื•ืฉ ืžื›ื™ื•ื•ืŸ ืฉื”ื ื ื•ื‘ืขื™ื ืžื”ืชื ื”ื’ื•ืช ื”ืžืขืจื›ืช ื•ืœื ืžืฉื•ืจื•ืช ืงื•ื“ ื‘ื•ื“ื“ื•ืช. ืคืขืจ ื–ื” ื”ื•ืคืš ืœื”ื™ื•ืช ื’ืœื•ื™ ื‘ืžื™ื•ื—ื“ ื‘ืชื•ื›ื ื™ื•ืช ืžื•ื“ืจื ื™ื–ืฆื™ื”, ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืจื‘-ืชื›ืœื™ืชื™ื•ืช ื•ืžืขืจื›ื•ืช ืžื•ื ื•ืœื™ื˜ื™ื•ืช ื’ื“ื•ืœื•ืช ืฉืขื•ื‘ืจื•ืช ืคื™ืจื•ืง ืžื“ื•ืจื’.

ืคืœื˜ืคื•ืจืžื•ืช ื”ืžืจื—ื™ื‘ื•ืช ืืช ื ืจืื•ืช ื”-linting ืœืชื•ืš ืงืฉืจื™ ืงื•ื“ ืžื‘ื ื™ื™ื ืžืžืœืื•ืช ืชืคืงื™ื“ ืžืฉืœื™ื ื‘ืกื‘ื™ื‘ื•ืช ื”ื ื“ืกื” ืืจื’ื•ื ื™ื•ืช. ื‘ืžืงื•ื ืœื”ื—ืœื™ืฃ ื›ืœื™ lint ืกืคืฆื™ืคื™ื™ื ืœืฉืคื”, ืคืœื˜ืคื•ืจืžื•ืช ืชื•ื‘ื ื•ืช ื‘ื™ืฆื•ืข ื›ื’ื•ืŸ SMART TS XL ืœืกืคืง ืฉื›ื‘ื” ืื ืœื™ื˜ื™ืช ืจื—ื‘ื” ื™ื•ืชืจ ื”ืžืกื™ื™ืขืช ืœืฆื•ื•ืชื™ ื”ื ื“ืกื” ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืงื•ื“ ืžืชื ื”ื’ ื‘ืคื•ืขืœ ื‘ืžืขืจื›ื•ืช, ืžื•ื“ื•ืœื™ื ื•ืฉื™ืจื•ืชื™ื. ื‘ืกื‘ื™ื‘ื•ืช ื‘ื”ืŸ ืžืื•ืช ืฉื™ืจื•ืชื™ื ืžืงื™ื™ืžื™ื ืื™ื ื˜ืจืืงืฆื™ื” ื“ืจืš ืžืžืฉืงื™ API, ืžืกื“ื™ ื ืชื•ื ื™ื ื•ืฆื ืจืช ืื™ืจื•ืขื™ื ืžืฉื•ืชืคื™ื, ื›ืœืœื™ lint ืกื˜ื˜ื™ื™ื ืœื‘ื“ื ืื™ื ื ื™ื›ื•ืœื™ื ืœื—ืฉื•ืฃ ื”ืฉืคืขื” ืžื“ื•ืจื’ืช ืื• ื ืชื™ื‘ื™ ื–ืจื™ืžืช ื‘ืงืจื” ื ืกืชืจื™ื.

ื•ื™ื“ืื• ืฉืœ YouTube

ื ืจืื•ืช ื”ืชื ื”ื’ื•ืชื™ืช ืžืขื‘ืจ ืœ-linting ืžื‘ื•ืกืก ื›ืœืœื™ื

ืžื ื•ืขื™ lint ืžืกื•ืจืชื™ื™ื ืžืขืจื™ื›ื™ื ืงื‘ืฆื™ ืžืงื•ืจ ืžื•ืœ ืžืขืจื›ื™ ื›ืœืœื™ื ืžื•ื’ื“ืจื™ื ืžืจืืฉ. ื”ื ืžื–ื”ื™ื ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ, ื“ืคื•ืกื™ื ืœื ื‘ื˜ื•ื—ื™ื, ื—ื•ืกืจ ืขืงื‘ื™ื•ืช ื‘ืฉืžื•ืช ืื• ืชื‘ื ื™ื•ืช ืื ื˜ื™-ื“ืคื•ืก ืกืคืฆื™ืคื™ื•ืช ืœืฉืคื”. ื‘ืขื•ื“ ืฉื‘ื“ื™ืงื•ืช ืืœื• ื—ื™ื•ื ื™ื•ืช ืœืฉืžื™ืจื” ืขืœ ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ืขืงื‘ื™ื•ืช, ื”ืŸ ืคื•ืขืœื•ืช ื‘ืขื™ืงืจ ื‘ืจืžืช ื”ืงื•ื‘ืฅ ืื• ื”ืžื•ื“ื•ืœ. ืžืขืจื›ื•ืช ืืจื’ื•ื ื™ื•ืช ืžื•ืจื›ื‘ื•ืช ื“ื•ืจืฉื•ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื ื™ืชื•ื— ืฉืœ ืงืฉืจื™ื ื”ืžืฉืชืจืขื™ื ืขืœ ืคื ื™ ืชื™ืงื™ ื™ื™ืฉื•ืžื™ื ืฉืœืžื™ื.

SMART TS XL ืขื•ื ื” ืขืœ ืืชื’ืจ ื–ื” ืขืœ ื™ื“ื™ ื‘ื—ื™ื ืช ืชืœื•ืช ืžื‘ื ื™ื•ืช ื•ื ืชื™ื‘ื™ ื”ืชื ื”ื’ื•ืช ืขืœ ืคื ื™ ื‘ืกื™ืกื™ ืงื•ื“. ื‘ืžืงื•ื ืœื”ืชืžืงื“ ืืš ื•ืจืง ื‘ืื›ื™ืคื” ืกื’ื ื•ื ื™ืช, ื”ืคืœื˜ืคื•ืจืžื” ืžืกืคืงืช ื ืจืื•ืช ื›ื™ืฆื“ ืคื•ื ืงืฆื™ื•ืช, ืžื•ื“ื•ืœื™ื ื•ืฉื™ืจื•ืชื™ื ืžืงื™ื™ืžื™ื ืื™ื ื˜ืจืืงืฆื™ื” ื‘ืžื”ืœืš ืชืจื—ื™ืฉื™ ื‘ื™ืฆื•ืข. ื™ื›ื•ืœืช ื–ื• ืจืœื•ื•ื ื˜ื™ืช ื‘ืžื™ื•ื—ื“ ื‘ืกื‘ื™ื‘ื•ืช ื‘ื”ืŸ ืžืขืจื›ื•ืช ืจื‘-ืœืฉื•ื ื™ื•ืช ืžืชืคืชื—ื•ืช ื‘ื• ื–ืžื ื™ืช ื•ื›ืืฉืจ ื™ืฉ ืœื”ืขืจื™ืš ืฉื™ื ื•ื™ื™ื ืื“ืจื™ื›ืœื™ื™ื ืœืคื ื™ ื”ืคืจื™ืกื”.

ืฆื•ืจืช ื ื™ืชื•ื— ื–ื• ืชื•ืžื›ืช ื‘ืฆื•ื•ืชื™ื ื”ืžื ื”ืœื™ื ื™ื•ื–ืžื•ืช ืžื•ื“ืจื ื™ื–ืฆื™ื” ืื• ืฉื™ืคื•ืฅ ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ. ืœื“ื•ื’ืžื”, ื›ืืฉืจ ืฉื™ื ื•ื™ ืืจื›ื™ื˜ืงื˜ื•ื ื™ ืžืฉืคื™ืข ืขืœ ืจื›ื™ื‘ื™ื ืžืจื•ื‘ื™ื, ื ืจืื•ืช ืชืœื•ืช ืžืืคืฉืจืช ืœืฆื•ื•ืชื™ื ืœืฆืคื•ืช ื”ืฉืคืขื•ืช ืื“ื•ื•ืช ืœืคื ื™ ืฉืžื™ื–ื•ื’ ื”ืงื•ื“ ืœืขื ืคื™ ื”ื™ื™ืฆื•ืจ. ืชื•ื‘ื ื•ืช ื›ืืœื” ืชื•ืืžื•ืช ืงืฉืจ ื”ื“ื•ืง ืœืคืจืงื˜ื™ืงื•ืช ื”ืžืชื•ืืจื•ืช ื‘ืžื—ืงืจื™ ืืจื’ื•ืŸ ืฉืœ ื ื™ืชื•ื— ื’ืจืฃ ื”ืชืœื•ืช, ื›ืืฉืจ ื”ื‘ื ืช ืงืฉืจื™ ืžืขืจื›ื•ืช ื”ื•ืคื›ืช ืœืชื ืื™ ื”ื›ืจื—ื™ ืœืงื‘ืœืช ื”ื—ืœื˜ื•ืช ื”ื ื“ืกื™ื•ืช ื‘ื˜ื•ื—ื•ืช.

ืชืžื™ื›ื” ื‘ืื›ื™ืคืช lint ืขื ืชื•ื‘ื ื•ืช ื‘ื™ืฆื•ืข

ืžื“ื™ื ื™ื•ืช ื–ื™ื”ื•ื™ ื‘ืขื™ื•ืช (linting) ื ื›ืฉืœืช ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ื›ืืฉืจ ื”ืคืจื•ืช ื›ืœืœื™ื ืžืฆื˜ื‘ืจื•ืช ืžื”ืจ ื™ื•ืชืจ ืžืžื” ืฉืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœืคืจืฉ ืืช ื”ืฉืคืขืชืŸ ื”ืชืคืขื•ืœื™ืช. ื‘ืกื‘ื™ื‘ื•ืช ื”ื ื“ืกื™ื•ืช ื’ื“ื•ืœื•ืช, ืืœืคื™ ืื–ื”ืจื•ืช ื™ื›ื•ืœื•ืช ืœื”ื•ืคื™ืข ื‘ืžืื’ืจื™ื ืฉื•ื ื™ื ืœืœื ืื™ื ื“ื™ืงืฆื™ื” ื‘ืจื•ืจื” ืื™ืœื• ื‘ืขื™ื•ืช ืžื™ื™ืฆื’ื•ืช ืกื™ื›ื•ืŸ ืชืคืขื•ืœื™ ืืžื™ืชื™. ืฆื•ื•ืชื™ื ืขืฉื•ื™ื™ื ืœื”ืชืขืœื ืžืชื•ืฆืื•ืช ื–ื™ื”ื•ื™ ื‘ืขื™ื•ืช ืื• ืœื”ืงื“ื™ืฉ ื–ืžืŸ ืจื‘ ืžื“ื™ ืœื–ื™ื”ื•ื™ ืกื˜ื™ื•ืช ืกื’ื ื•ืŸ ืงืœื•ืช ืฉื™ืฉ ืœื”ืŸ ื”ืฉืคืขื” ืžื•ืขื˜ื” ืขืœ ื™ืฆื™ื‘ื•ืช ื”ืžืขืจื›ืช.

SMART TS XL ืžืฆื™ื’ ืคืจืกืคืงื˜ื™ื‘ื” ืžืฉืœื™ืžื” ืขืœ ื™ื“ื™ ื”ื“ื’ืฉืช ืชืœื•ืช ื”ืชื ื”ื’ื•ืชื™ืช ื•ื ืชื™ื‘ื™ ื‘ื™ืฆื•ืข ื”ืžืขืฆื™ืžื™ื ืืช ื”ื—ืฉื™ื‘ื•ืช ืฉืœ ืžืงื˜ืขื™ ืงื•ื“ ืกืคืฆื™ืคื™ื™ื. ื›ืืฉืจ ืžืžืฆืื™ ืœื™ืงื•ื™ื™ื ืžืชืจื—ืฉื™ื ื‘ืื–ื•ืจื™ื ื‘ืžืขืจื›ืช ื”ืžืฉืžืฉื™ื ื›ื ืงื•ื“ื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืงืจื™ื˜ื™ื•ืช ืื• ืžื•ื“ื•ืœื™ื ื‘ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ืจื‘, ืชื•ื‘ื ื•ืช ืืœื• ืžืกื™ื™ืขื•ืช ืœืชืขื“ืฃ ืžืืžืฆื™ ืชื™ืงื•ืŸ.

ืขื‘ื•ืจ ืฆื•ื•ืชื™ ืคืœื˜ืคื•ืจืžื•ืช ืืจื’ื•ื ื™ื•ืช ื”ืื—ืจืื™ื ืขืœ ืฆื™ื ื•ืจื•ืช ืืกืคืงื”, ื ืจืื•ืช ื–ื• ื’ื ืžืฉืคืจืช ืืช ืขืงื‘ื™ื•ืช ื”ืžืžืฉืœ. ื‘ืžืงื•ื ืœืื›ื•ืฃ ืกืคื™ ื›ืœืœื™ื ื–ื”ื™ื ื‘ื›ืœ ื”ืฉื™ืจื•ืชื™ื, ืืจื’ื•ื ื™ื ื™ื›ื•ืœื™ื ืœื›ื™ื™ืœ ืžื“ื™ื ื™ื•ืช lint ืขืœ ืกืžืš ื”ืชืคืงื™ื“ ื”ืืจื›ื™ื˜ืงื˜ื•ื ื™ ืฉืœ ื›ืœ ืจื›ื™ื‘. ืžื•ื“ื•ืœื™ื ื‘ืขืœื™ ื”ืฉืคืขื” ื’ื‘ื•ื”ื” ืขืฉื•ื™ื™ื ืœื“ืจื•ืฉ ืื›ื™ืคื” ืžื—ืžื™ืจื” ื™ื•ืชืจ, ื‘ืขื•ื“ ืฉืฉื™ืจื•ืชื™ื ื ื™ืกื™ื•ื ื™ื™ื ืื• ืžื‘ื•ื“ื“ื™ื ื™ื›ื•ืœื™ื ืœืืžืฅ ืชืฆื•ืจื•ืช ื›ืœืœื™ื ื’ืžื™ืฉื•ืช ื™ื•ืชืจ.

ืชื•ื‘ื ื•ืช ืžืขืจื›ื•ืช ื—ื•ืฆื•ืช-ืœืฉื•ื ื•ืช ืขื‘ื•ืจ ืชื™ืงื™ ืขื‘ื•ื“ื•ืช ืžื•ืจื›ื‘ื™ื

ืชื™ืงื™ ืชื•ื›ื ื” ืืจื’ื•ื ื™ื™ื ืžื•ื“ืจื ื™ื™ื ื›ืžืขื˜ ื•ืœื ืžื•ืจื›ื‘ื™ื ืžืฉืคืช ืชื›ื ื•ืช ืื—ืช. ืคืœื˜ืคื•ืจืžื•ืช ืคื™ื ื ืกื™ื•ืช, ืžืขืจื›ื•ืช ืชืงืฉื•ืจืช ื•ืชืฉืชื™ื•ืช ืงืžืขื•ื ืื™ื•ืช ื’ืœื•ื‘ืœื™ื•ืช ืžืฉืœื‘ื•ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžืขืจื›ื•ืช ืžื“ื•ืจ ืงื•ื“ื ืขื ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ืžื•ื“ืจื ื™ื™ื, ืฉื›ืœ ืื—ืช ืžื”ืŸ ื›ืชื•ื‘ื” ื‘ืฉืคื•ืช ื•ื‘ืžืกื’ืจื•ืช ืฉื•ื ื•ืช. ื’ื™ื•ื•ืŸ ื–ื” ืžืกื‘ืš ืืช ืื›ื™ืคืช ื”ืœื™ื›ื™ื ืžืฉืคื˜ื™ื™ื ืžื›ื™ื•ื•ืŸ ืฉื›ืœ ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืžืกืคืงืช ื›ืœื™ื, ืชื—ื‘ื™ืจ ื›ืœืœื™ื ื•ืคื•ืจืžื˜ื™ื ื ืคืจื“ื™ื ืœื“ื™ื•ื•ื—.

SMART TS XL ืžืกื™ื™ืข ืœื’ืฉืจ ืขืœ ืคื™ืฆื•ืœ ื–ื” ืขืœ ื™ื“ื™ ืžืชืŸ ืชืžื•ื ื” ืžืื•ื—ื“ืช ืฉืœ ืงืฉืจื™ื ื‘ื™ืŸ ืžืขืจื›ื•ืช ื”ื˜ืจื•ื’ื ื™ื•ืช. ื‘ืžืงื•ื ืœืคืจืฉ ืืช ืชื•ืฆืื•ืช ื”-lint ื‘ืื•ืคืŸ ืžื‘ื•ื“ื“ ืขื‘ื•ืจ ื›ืœ ืžืื’ืจ, ืžื ื”ื™ื’ื™ ื”ื ื“ืกื” ืžืฉื™ื’ื™ื ื”ื‘ื ื” ืจื—ื‘ื” ื™ื•ืชืจ ืฉืœ ื”ืื•ืคืŸ ืฉื‘ื• ืฉื™ืจื•ืชื™ื ืžืงื™ื™ืžื™ื ืื™ื ื˜ืจืืงืฆื™ื” ื‘ื™ืŸ ื’ื‘ื•ืœื•ืช ืฉืคื”. ื‘ืฉื™ืœื•ื‘ ืขื ื›ืœื™ linting ืงื•ื ื‘ื ืฆื™ื•ื ืœื™ื™ื, ืคืจืกืคืงื˜ื™ื‘ื” ื–ื• ืžืืคืฉืจืช ื ื™ื”ื•ืœ ืื™ื›ื•ืช ืงื•ื”ืจื ื˜ื™ ื™ื•ืชืจ ืขืœ ืคื ื™ ืชื™ืงื™ ื™ื™ืฉื•ืžื™ื ืฉืœืžื™ื.

ื”ืคืœื˜ืคื•ืจืžื” ืชื•ืจืžืช ื’ื ืœื ื™ื”ื•ืœ ืกื™ื›ื•ื ื™ื ืขืœ ื™ื“ื™ ื”ื“ื’ืฉืช ืชื—ื•ืžื™ื ืฉื‘ื”ื ืชืœื•ืช ืื“ืจื™ื›ืœื™ืช ืžืจื›ื–ืช ืืช ื”ื—ืฉื™ืคื” ื”ืชืคืขื•ืœื™ืช. ื‘ืžืขืจื›ื•ืช ืžื•ืจื›ื‘ื•ืช, ืžื•ื“ื•ืœ ืงื˜ืŸ ืขื ื—ื™ื‘ื•ืจื™ื ืจื‘ื™ื ื‘ืžืขืœื” ื•ื‘ืžื•ืจื“ ื”ื–ืจื ืขืœื•ืœ ืœื”ื•ื•ืช ืกื™ื›ื•ืŸ ื™ืฆื™ื‘ื•ืช ืœื ืคืจื•ืคื•ืจืฆื™ื•ื ืœื™. ื ืจืื•ืช ืื ืœื™ื˜ื™ืช ืฉืœ ืžื‘ื ื™ื ื›ืืœื” ืชื•ืžื›ืช ื‘ื”ื—ืœื˜ื•ืช ื”ื ื“ืกื™ื•ืช ืžื•ืฉื›ืœื•ืช ื™ื•ืชืจ ื•ืžื™ื™ืฉืจืช ืืช ืื›ื™ืคืช ื—ื•ืงื™ ื”ื ื™ืงื•ื– ืขื ื”ืฉืคืขื” ืชืคืขื•ืœื™ืช ืืžื™ืชื™ืช.

ืฆื™ืคื™ื™ื” ืœืกื™ื›ื•ื ื™ื ื‘ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ื”ื ื“ืกื™ื•ืช ื’ื“ื•ืœื•ืช

ืฆื•ื•ืชื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื ืžืชืงืฉื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืขื ื”ืคืขืจ ื‘ื™ืŸ ืื•ืชื•ืช ืื™ื›ื•ืช ืงื•ื“ ืกื˜ื˜ื™ื™ื ืœื‘ื™ืŸ ื”ืชื ื”ื’ื•ืช ืชืคืขื•ืœื™ืช ื‘ืขื•ืœื ื”ืืžื™ืชื™. ื›ืœื™ Linting ืžืกืคืงื™ื ืื™ื ื“ื™ืงื˜ื•ืจื™ื ืžื•ืงื“ืžื™ื ื‘ืขืœื™ ืขืจืš ืœื“ืคื•ืกื™ื ื‘ืขื™ื™ืชื™ื™ื, ืืš ื”ื ืื™ื ื ื™ื›ื•ืœื™ื ืœื™ื™ืฆื’ ื‘ืื•ืคืŸ ืžืœื ืืช ื”ืื™ื ื˜ืจืืงืฆื™ื” ื”ื“ื™ื ืžื™ืช ื‘ื™ืŸ ืฉื™ืจื•ืชื™ื, ืกืคืจื™ื•ืช ื•ื–ืจื™ืžื•ืช ื ืชื•ื ื™ื. ืžืขืจื›ื•ืช ื”ืžืชืคืชื—ื•ืช ื‘ืืžืฆืขื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืžืชืžืฉื›ืช ื•ืฆื™ื ื•ืจื•ืช ืคืจื™ืกื” ื“ื•ืจืฉื•ืช ืžื ื’ื ื•ื ื™ ืชื•ื‘ื ื” ืžืฉืœื™ืžื™ื ื›ื“ื™ ืœืฉืžื•ืจ ืขืœ ื™ืฆื™ื‘ื•ืช.

ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ ืฉืœ ืื›ื™ืคืช ืื™ื ื˜ืจืืงืฆื™ื” ืžื‘ื•ืกืกืช ื›ืœืœื™ื ืขื ื ืจืื•ืช ืžืขืจื›ืช ืžื‘ื ื™ืช, SMART TS XL ืชื•ืจื ืœื”ื‘ื ื” ืžืงื™ืคื” ื™ื•ืชืจ ืฉืœ ื”ืชื ื”ื’ื•ืช ืชื•ื›ื ื”. ื’ื™ืฉื” ื–ื• ืžืืคืฉืจืช ืœืžื•ื‘ื™ืœื™ ืคืœื˜ืคื•ืจืžื” ืœื–ื”ื•ืช ืฉื‘ืจื™ืจื™ื•ืช ืื“ืจื™ื›ืœื™ืช, ืœืขืงื•ื‘ ืื—ืจ ืฉืจืฉืจืื•ืช ืชืœื•ืช ื•ืœืฆืคื•ืช ืืช ื”ื”ืฉืคืขื•ืช ื”ืžืขืจื›ืชื™ื•ืช ืฉืœ ืฉื™ื ื•ื™ื™ ืงื•ื“ ืœืคื ื™ ืฉื”ื ืžืชืคืฉื˜ื™ื ื‘ืจื—ื‘ื™ ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ื”ื”ื ื“ืกื™ืช.

ืขื‘ื•ืจ ืืจื’ื•ื ื™ื ื”ืžื ื”ืœื™ื ืชื™ืงื™ ืขื‘ื•ื“ื•ืช ื’ื“ื•ืœื™ื ื•ื™ื•ื–ืžื•ืช ืžื•ื“ืจื ื™ื–ืฆื™ื”, ื ืจืื•ืช ื›ื–ื• ืชื•ืžื›ืช ื‘ืžืžืฉืœ ื—ื–ืง ื™ื•ืชืจ ื•ื‘ืชื•ืฆืื•ืช ืืกืคืงื” โ€‹โ€‹ืฆืคื•ื™ื•ืช ื™ื•ืชืจ. ื›ืืฉืจ ื›ืœื™ ื–ื™ื”ื•ื™ ืชื”ืœื™ื›ื™ื ืžืฉื•ืœื‘ื™ื ืขื ื ื™ืชื•ื— ื”ืชื ื”ื’ื•ืชื™ ืžืขืžื™ืง ื™ื•ืชืจ, ืฆื•ื•ืชื™ ื”ื ื“ืกื” ืžืงื‘ืœื™ื ืืช ื”ื™ื›ื•ืœืช ืœื ื•ืข ืžืขื‘ืจ ืœืื›ื™ืคืช ื›ืœืœื™ื ืžื‘ื•ื“ื“ืช ืœืขื‘ืจ ืชืคื™ืกื” ื”ื•ืœื™ืกื˜ื™ืช ื™ื•ืชืจ ืฉืœ ืืžื™ื ื•ืช ื•ืชื—ื–ื•ืงืช ื”ืžืขืจื›ืช.

ืคืœื˜ืคื•ืจืžื•ืช ืžื•ื‘ื™ืœื•ืช ืœืขื™ื‘ื•ื“ ืงื•ื“ ืขื‘ื•ืจ ืฆื•ื•ืชื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื

ื‘ื—ื™ืจืช ื›ืœื™ ืื™ื ื˜ื’ืจืฆื™ื” (linting) ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช ื“ื•ืจืฉืช ื™ื•ืชืจ ืžืืฉืจ ื”ืขืจื›ืช ืกืคืจื™ื•ืช ื›ืœืœื™ื ืื• ื›ื™ืกื•ื™ ืฉืคื•ืช. ืžื ื”ื™ื’ื™ ืคืœื˜ืคื•ืจืžื•ืช ื—ื™ื™ื‘ื™ื ืœืฉืงื•ืœ ื›ื™ืฆื“ ืžื ื•ืขื™ ืื™ื ื˜ื’ืจืฆื™ื” ืžืชื ื”ื’ื™ื ื›ืืฉืจ ื”ื ืžื•ื˜ืžืขื™ื ื‘ืฆื™ื ื•ืจื•ืช ืืกืคืงื”, ืชื™ืงื™ ืžืื’ืจื™ื ืžืจื•ื‘ื™ื ื•ืžืกื’ืจื•ืช ืžืžืฉืœ ื”ืื•ื›ืคื•ืช ืกื˜ื ื“ืจื˜ื™ื ื”ื ื“ืกื™ื™ื ืขืงื‘ื™ื™ื ืขืœ ืคื ื™ ืฆื•ื•ืชื™ื ื’ื“ื•ืœื™ื. ื‘ื”ืงืฉืจ ื–ื”, ืื™ื ื˜ื’ืจืฆื™ื” ื”ื•ืคื›ืช ืœืžื ื’ื ื•ืŸ ื‘ืงืจื” ืชืคืขื•ืœื™ ื”ืžืฉืคื™ืข ืขืœ ืžื“ื™ื ื™ื•ืช ืžื™ื–ื•ื’, ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืกืงื™ืจืช ืงื•ื“ ื•ื”ื™ืฆื™ื‘ื•ืช ื”ื›ื•ืœืœืช ืฉืœ ืžืขืจื›ื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืจืฆื™ืคื”.

ื”ื›ืœื™ื ื”ื›ืœื•ืœื™ื ื‘ื”ืฉื•ื•ืื” ื–ื• ืžื™ื™ืฆื’ื™ื ืคืœื˜ืคื•ืจืžื•ืช linting ืฉืื•ืžืฆื• ื‘ืื•ืคืŸ ื ืจื—ื‘, ื”ืชื•ืžื›ื•ืช ื‘ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ื”ื ื“ืกื™ื•ืช ื’ื“ื•ืœื•ืช ื‘ืืžืฆืขื•ืช ื™ื›ื•ืœืช ื”ืจื—ื‘ื”, ืงื”ื™ืœื•ืช ืชื•ืกืคื™ื ื—ื–ืงื•ืช ื•ื™ื›ื•ืœื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ื‘ื•ื’ืจื•ืช. ื‘ืžืงื•ื ืœื”ืชืžืงื“ ื‘ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ ืฉืคื•ืช ืฆืจื•ืช, ืคืชืจื•ื ื•ืช ืืœื” ื”ืชืคืชื—ื• ืœืžืกื’ืจื•ืช linting ื‘ื”ืŸ ืืจื’ื•ื ื™ื ืžืฉืชืžืฉื™ื ื›ื“ื™ ืœืื›ื•ืฃ ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“, ืœื–ื”ื•ืช ื“ืคื•ืกื™ื ื‘ืขื™ื™ืชื™ื™ื ื•ืœืื•ื˜ื•ืžื˜ื™ื™ื ื‘ื“ื™ืงื•ืช ืื™ื›ื•ืช ื‘ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ืžื’ื•ื•ื ื•ืช. ื”ืกืขื™ืคื™ื ื”ื‘ืื™ื ื‘ื•ื—ื ื™ื ื›ื™ืฆื“ ืคืœื˜ืคื•ืจืžื•ืช ืืœื” ืžืชืคืงื“ื•ืช ืชื—ืช ืขื•ืžืกื™ ืขื‘ื•ื“ื” ืืจื’ื•ื ื™ื™ื, ืชื•ืš ื”ื“ื’ืฉืช ืžื ื•ืขื™ ื”ื›ืœืœื™ื ืฉืœื”ืŸ, ืžื•ื“ืœื™ ื”ืื™ื ื˜ื’ืจืฆื™ื”, ื”ืชื ื”ื’ื•ืช ืงื ื” ื”ืžื™ื“ื” ื•ื”ืžื’ื‘ืœื•ืช ื”ืžื‘ื ื™ื•ืช ืฉืœื”ืŸ.

ืงื•ื“ ืื™ื›ื•ืช ืืงืœื™ื

ืืชืจ ืจืฉืžื™: ืงื•ื“ ืืงืœื™ื

Code Climate Quality ืžืชืคืงื“ ื›ืคืœื˜ืคื•ืจืžืช ื ื™ื”ื•ืœ ืื™ื›ื•ืช ื•ืžื™ื“ืข ื”ืžืื—ื“ืช ืžืกืคืจ ืžื ืชื—ื™ื ืžืื—ื•ืจื™ ืžืฉื˜ื— ื“ื™ื•ื•ื— ื•ืžื“ื™ื ื™ื•ืช ื™ื—ื™ื“. ื‘ืฆื•ื•ืชื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื, ืขื™ืฆื•ื‘ ื–ื” ืžืื•ืžืฅ ื‘ื“ืจืš ื›ืœืœ ื›ื“ื™ ืœื”ืคื—ื™ืช ืคื™ืฆื•ืœ ื‘ื™ืŸ ืžืื’ืจื™ื ื•ืฉืคื•ืช, ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ื‘ื“ื™ืงื•ืช ืื™ื›ื•ืช ืงื•ื“ ื—ื™ื™ื‘ื•ืช ืœื”ื™ื•ืช ืขืงื‘ื™ื•ืช ื‘ื™ืŸ ื™ื—ื™ื“ื•ืช ืขืกืงื™ื•ืช ืฉืžื’ื™ืขื•ืช ื‘ืงืฆื‘ ืฉื•ื ื”. ื”ืคืœื˜ืคื•ืจืžื” ืื™ื ื” ืžืชื—ืจื” ืขื ืคืชืจื•ื ื•ืช ืžื™ื“ืข ืžื‘ื•ืกืกื™ ืฉืคื” ืขืœ ื™ื“ื™ ื”ื—ืœืคืชื. ื”ื™ื ืžืืคืฉืจืช ืœื”ื ืœืคืขื•ืœ ืขืœ ื™ื“ื™ ืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื” ืฉืœ ืื•ืคืŸ ื”ืคืขืœืช ื”ื‘ื“ื™ืงื•ืช ื‘-CI, ื›ื™ืฆื“ ืžืžืฆืื™ื ืžื ื•ืจืžืœื™ื ื•ื›ื™ืฆื“ ืฆื•ื•ืชื™ื ืฆื•ืจื›ื™ื ืชื•ืฆืื•ืช ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ื•ื‘ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืฉืœ ื‘ืงืฉื•ืช ืžืฉื™ื›ื”.

ื“ืคื•ืก ืฉื™ืžื•ืฉ ืืจื’ื•ื ื™ ื ืคื•ืฅ ื”ื•ื ืงืœื™ื˜ื” ื‘ืจืžืช ื”ืžืื’ืจ ืขื ื‘ืกื™ืก, ื•ืœืื—ืจ ืžื›ืŸ ื”ื™ื“ื•ืง ื”ื“ืจื’ืชื™ ืฉืœ ื”ืฉืขืจื™ื. ื–ื” ื—ืฉื•ื‘ ื‘ืชื™ืงื™ ืขื‘ื•ื“ื•ืช ื’ื“ื•ืœื™ื ืžื›ื™ื•ื•ืŸ ืฉืžื“ื™ื ื™ื•ืช ืœื™ื˜ ืžื—ืžื™ืจื” ื”ืžื™ื•ืฉืžืช ื‘ืื•ืคืŸ ืื—ื™ื“ ืขืœ ืคื ื™ ืฉื™ืจื•ืชื™ื ืžื“ื•ืจ ืงื•ื“ื ื•ืžื•ื“ืจื ื™ื™ื ืขืœื•ืœื” ืœืขื›ื‘ ืืช ื”ืžืกื™ืจื”. ืžื•ื“ืœ ื”ืคืœื˜ืคื•ืจืžื” ืฉืœ Code Climate ืชื•ืžืš ื‘ืื›ื™ืคื” ืžื“ื•ืจื’ืช ืชื•ืš ืฉืžื™ืจื” ืขืœ ื ืจืื•ืช ืžืจื›ื–ื™ืช ืœืžื’ืžื•ืช, ื ืงื•ื“ื•ืช ื—ืžื•ืช ื•ื›ื™ืกื™ ืกื™ื›ื•ืŸ ืืจื•ื›ื™ ื˜ื•ื•ื—.

ื“ื’ื ืื“ืจื™ื›ืœื™

  • ืฉื›ื‘ืช ืฆื‘ื™ืจื”: ืžืกืคืจ ืžื ืชื—ื™ื ืคื•ืขืœื™ื ื‘ื›ืœ ืžืื’ืจ ื‘ื”ืชื‘ืกืก ืขืœ ืฉืคื•ืช ื•ื›ืœืœื™ื ืฉื”ื•ื’ื“ืจื•
  • ืžืฉื˜ื— ื‘ื™ืฆื•ืข: ื ื™ืชื•ื— ืžืฉื•ืœื‘ CI ื”ืžื•ืคืขืœ ื‘ื‘ืงืฉื•ืช ืžืฉื™ื›ื” ืื• ื‘ื”ืจืฆื•ืช ืฆื™ื ื•ืจ
  • ื ื•ึนืจืžึธืœึดื™ื–ึธืฆึดื™ึธื”: ืžืžืฆืื™ื ืžืกื•ื•ื’ื™ื ืœืคื™ ืกื•ื’ื™ ื‘ืขื™ื•ืช ืขืงื‘ื™ื™ื (ืชื—ื–ื•ืงื”, ืฉื›ืคื•ืœ, ืžื•ืจื›ื‘ื•ืช, ืกื’ื ื•ืŸ ื•ื“ืคื•ืกื™ ืคื’ืžื™ื ื ื‘ื—ืจื™ื)
  • ื ืงื•ื“ืช ืžื‘ื˜ ืฉืœ ืžืžืฉืœ: ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ื•ืžืขืงื‘ ื”ื™ืกื˜ื•ืจื™ ื‘ื™ืŸ ืžืื’ืจื™ื ื•ืฆื•ื•ืชื™ื

ื”ืชื ื”ื’ื•ืช ื‘ื™ืฆื•ืข ื‘-CI ื•ื‘ื‘ืงืฉื•ืช ืžืฉื™ื›ื”

  1. ืจื™ืฆืช ืฆื™ื ื•ืจ ืžืคืขื™ืœื” ืืช ืฉืœื‘ ื ื™ืชื•ื— ืืงืœื™ื ื”ืงื•ื“.
  2. ืžื ืชื—ื™ื ื ื‘ื—ืจื™ื ืžื‘ื•ืฆืขื™ื ื‘ื”ืงืฉืจ ืฉืœ ืžื›ื•ืœื”.
  3. ื”ืชื•ืฆืื•ืช ืžืื•ื—ื“ื•ืช ื•ืžืžื•ืคื•ืช ืœืกื›ื™ืžื” ืžืื•ื—ื“ืช.
  4. ืžืฉื•ื‘ ื‘ืงืฉืช ืžืฉื™ื›ื” ืžืฆื™ื’ ื‘ืขื™ื•ืช ื›ื”ืขืจื•ืช ื”ื ื™ืชื ื•ืช ืœืกืงื™ืจื”.
  5. ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืขื•ืงื‘ื™ื ืื—ืจ ืฉื™ื ื•ื™ื™ ื‘ืขื™ื•ืช ืœืื•ืจืš ื–ืžืŸ ื•ื‘ืžืื’ืจื™ื ืฉื•ื ื™ื.

ืžื•ื“ืœ ื‘ื™ืฆื•ืข ื–ื” ืžื•ืขืจืš ื‘ื“ืจืš ื›ืœืœ ื›ืืฉืจ ืฆื•ื•ืชื™ื ื–ืงื•ืงื™ื ืœืื›ื™ืคืช lint ืฆืคื•ื™ื” ื•ื—ื•ื–ืจืช ืขืœ ืขืฆืžื” ืžื‘ืœื™ ืœืืœืฅ ื›ืœ ืฆื•ื•ืช ืœืชื—ื–ืง ืฉืจืฉืจืื•ืช ื›ืœื™ื ื‘ืื•ืคืŸ ืžืงื•ืžื™. ื”ื•ื ื’ื ืžืกืคืง ืžืฉื˜ื— ืื™ื ื˜ื’ืจืฆื™ื” ื™ื—ื™ื“ ืขื‘ื•ืจ ืกืคืงื™ CI ื•ืคืœื˜ืคื•ืจืžื•ืช ืื™ืจื•ื— ืžืื’ืจื™ื, ื•ื‘ื›ืš ืžืคื—ื™ืช ืืช ืžืกืคืจ ืกืงืจื™ืคื˜ื™ ื”-glue ืœื›ืœ ืฉืคื” ืฉืื—ืจืช ืžืฆื˜ื‘ืจื™ื ื‘ืฆื™ื ื•ืจื•ืช ืืจื’ื•ื ื™ื™ื.

ืชืจื—ื™ืฉื™ื ืžื•ืชืืžื™ื ืœืืจื’ื•ืŸ

  • ืชื™ืงื™ ืขื‘ื•ื“ื•ืช ืคื•ืœื™ื’ืœื•ื˜: ืžืกืคืจ ืจื‘ ืฉืœ ืฉืคื•ืช ืฉื•ื ื•ืช ื‘ืงื•ื•ื™ ืžื•ืฆืจื™ื ื“ื•ืจืฉื•ืช ื“ื™ื•ื•ื— ื•ืžืžืฉืœ ืขืงื‘ื™ื™ื
  • ืกื‘ื™ื‘ื•ืช ืžืจื•ื‘ื•ืช ืžืื’ืจื™ื: ื ื“ืจืฉืช ืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื” ืขืœ ืคื ื™ ืขืฉืจื•ืช ืื• ืžืื•ืช ืžืื’ืจื™ื
  • ืืกืคืงื” โ€‹โ€‹ืžื•ื ืขืช ืชืื™ืžื•ืช: ื ื“ืจืฉืช ื™ื›ื•ืœืช ื‘ื™ืงื•ืจืช ืœืฆื•ืจืš ื”ื—ืœื˜ื•ืช ืื›ื™ืคืช ืžื“ื™ื ื™ื•ืช ื•ื“ื™ื•ื•ื— ืขืœ ืžื’ืžื•ืช
  • ืฆื•ื•ืชื™ื ืžื‘ื•ื–ืจื™ื: ื›ืœ ืฆื•ื•ืช ื”ื•ื ื”ื‘ืขืœื™ื ืฉืœ ื”ืงื•ื“, ืื‘ืœ ื”ื ื”ื’ืช ื”ืคืœื˜ืคื•ืจืžื” ื–ืงื•ืงื” ืœื ืจืื•ืช ืื—ื™ื“ื”

ืžื” ืฉื‘ื“ืจืš ื›ืœืœ ื—ืฉื•ื‘ ืœืงื•ื ื™ื

  • ื ื™ื”ื•ืœ ืžืจื›ื–ื™ ืœืœื ื”ื—ืœืคืช ื›ืœื™ื
    ืžื ื•ืขื™ ื”ืœื™ืฅ ื”ืงื™ื™ืžื™ื ื ืฉืืจื™ื ื‘ืžืงื•ืžื, ื‘ืขื•ื“ ื”ื“ื™ื•ื•ื— ื•ื”ืื›ื™ืคื” ื”ื•ืคื›ื™ื ืœืกื˜ื ื“ืจื˜ื™ื™ื.
  • ืขืงื‘ื™ื•ืช ื‘ืžื“ื™ื ื™ื•ืช ื‘ื™ืŸ ืฆื•ื•ืชื™ื
    ืชื‘ื ื™ืช ืชืฆื•ืจื” ื™ื—ื™ื“ื” ื™ื›ื•ืœื” ืœื”ืคื—ื™ืช "ืกื—ืฃ ืฉืœ ื›ืœืœื™ื" ื‘ื™ืŸ ืžืื’ืจื™ื ืฉื ื•ืฆืจื• ืขืœ ื™ื“ื™ ื—ื•ืœื™ื•ืช ืฉื•ื ื•ืช.
  • ื™ื™ืฉื•ืจ ื‘ืงืฉื•ืช ืžืฉื™ื›ื”
    ืžืžืฆืื™ื ืžื•ืคื™ืขื™ื ื‘ืžืงื•ื ืฉื‘ื• ืžืชืงื‘ืœื•ืช ื”ื—ืœื˜ื•ืช, ื‘ืชื•ืš ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืกืงื™ืจื” ื•ืœื ื‘ื“ื•ื—ื•ืช ืœืื—ืจ ืžื™ื–ื•ื’.
  • ื ืจืื•ืช ืžื’ืžื•ืช ืขื‘ื•ืจ ืžื ื”ื™ื’ื•ืช ื”ื ื“ืกื™ืช
    ื”ืขืจืš ื ื•ื‘ืข ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืคื—ื•ืช ืžืžืžืฆืื™ื ื—ื“ ืคืขืžื™ื™ื ื•ื™ื•ืชืจ ืžื–ื™ื”ื•ื™ ื ืงื•ื“ื•ืช ื—ืžื•ืช, ื“ืคื•ืกื™ ืจื’ืจืกื™ื” ื•ืื–ื•ืจื™ื ืฉื‘ื”ื ื—ื•ื‘ ืื™ื›ื•ืชื™ ืžืฆื˜ื‘ืจ ืžื”ืจ ื™ื•ืชืจ ืžื›ื•ืฉืจ ื”ืชื™ืงื•ืŸ.

ืฉื™ืงื•ืœื™ื ืชืคืขื•ืœื™ื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ

  • ื”ื’ื‘ืจื” ื‘ื–ืžืŸ ืจื™ืฆื”: ื”ืคืขืœืช ืžื ืชื—ื™ื ืจื‘ื™ื ืžื’ื“ื™ืœื” ืืช ืžืฉืš ื–ืžืŸ ื”ืคืขื•ืœื” ืฉืœ ื”ืฆื™ื ื•ืจ, ื‘ืžื™ื•ื—ื“ ื‘ืžืื’ืจื™ื ืžื•ื ื•ืžืจื™ื ืื• ืžืื’ืจื™ื ืขื ืงื•ื“ ื›ื‘ื“ ืฉื ื•ืฆืจ.
  • ืชืœื•ืช ื‘ืืกื˜ืจื˜ื’ื™ื™ืช ืžื˜ืžื•ืŸ: ืœืœื ืื—ืกื•ืŸ ื‘ืžื˜ืžื•ืŸ CI ื–ื”ื™ืจ, ื ื™ืชื•ื— ื—ื•ื–ืจ ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืœื—ืฅ ื‘ืชื•ืจ ื‘ืžื”ืœืš ื—ืœื•ื ื•ืช ืžื™ื–ื•ื’ ืฉื™ื.
  • ื ื™ื”ื•ืœ ืชืฆื•ืจื”: ื›ืœืœื™ื ืžืจื›ื–ื™ื™ื ื“ื•ืจืฉื™ื ื ื™ื”ื•ืœ ื’ืจืกืื•ืช ื•ื‘ืงืจืช ืฉื™ื ื•ื™ื™ื, ืื—ืจืช ืฆื•ื•ืชื™ื ื—ื•ื•ื™ื ืฉื™ื ื•ื™ื™ื ืคืชืื•ืžื™ื™ื ื‘ืฉืขืจ ืฉื ืจืื™ื ื›ืžื• ื—ื•ืกืจ ื™ืฆื™ื‘ื•ืช ื‘ื›ืœื™ื.

ืžื’ื‘ืœื•ืช ืžื‘ื ื™ื•ืช ื•ืคืฉืจื•ืช

  • ืกื™ื‘ื•ื›ื™ื•ืช ืฆื‘ื™ืจื”: ืชื•ืฆืื•ืช ืžืื•ื—ื“ื•ืช ืขืœื•ืœื•ืช ืœื˜ืฉื˜ืฉ ืืช ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ื”ืคืจื•ืช ืกื’ื ื•ื ื™ื•ืช ืœื‘ื™ืŸ ืžืžืฆืื™ื ื‘ืขืœื™ ื”ืฉืœื›ื•ืช ืขืœ ืกื™ื›ื•ืŸ ืชืคืขื•ืœื™, ื•ืœื”ื’ื“ื™ืœ ืืช ืชืงื•ืจืช ื”ืžื™ื•ืŸ ืื ืžื•ื“ืœื™ ื”ื—ื•ืžืจื” ืื™ื ื ืžื›ื•ื™ืœื™ื.
  • ืขืงื‘ื™ื•ืช ื‘ื™ืŸ ืžืื’ืจื™ื ืื™ื ื” ืื•ื˜ื•ืžื˜ื™ืช: ื”ืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื” ืžืฉืชืคืจืช, ืืš ืขื“ื™ื™ืŸ ืชืœื•ื™ื” ื‘ืคืจื™ืกื” ืžืžื•ืฉืžืขืช ื•ื‘ื ื™ื”ื•ืœ ื—ืจื™ื’ื™ื.
  • ื ืงื•ื“ื•ืช ืขื™ื•ื•ืจื•ืช ื”ืชื ื”ื’ื•ืชื™ื•ืช: ื›ืžื• ืจื•ื‘ ื”ืคืœื˜ืคื•ืจืžื•ืช ื”ืžืชืžืงื“ื•ืช ื‘ื‘ืขื™ื•ืช ืชืงืฉื•ืจืช (lints), ืื•ืชื•ืช ื ืฉืืจื™ื ื‘ืขื™ืงืจ ืžื‘ื•ืกืกื™ ืžื‘ื ื” ืงื•ื“ ื•ื›ืœืœื™ื ื•ืœื ืžื•ื“ืขื™ื ืœื ืชื™ื‘ ื‘ื™ืฆื•ืข, ืžื” ืฉื™ื›ื•ืœ ืœื”ื’ื‘ื™ืœ ืืช ื”ื™ื›ื•ืœืช ืœืชืขื“ืฃ ื‘ืขื™ื•ืช ืœืคื™ ื”ืฉืคืขื” ืžืขืจื›ืชื™ืช.

ืื•ืชื•ืช ืจื›ืฉ ืฉื‘ื“ืจืš ื›ืœืœ ืžืฆื‘ื™ืขื™ื ืขืœ ื”ืชืืžื”

  • ืชื™ืง ืขื‘ื•ื“ื•ืช ืฉื‘ื• ืžืกืคืจ ืฆื•ื•ืชื™ื ื›ื‘ืจ ืžืคืขื™ืœื™ื ืงื‘ื•ืฆื•ืช ืฉื•ื ื•ืช ืขื ืกืคื™ื ืœื ืขืงื‘ื™ื™ื
  • ื“ืจื™ืฉื” ืœื“ื™ื•ื•ื— ืžืื•ื—ื“ ื•ืงื•ื•ื™ ื‘ืกื™ืก ืื™ื›ื•ืช ืื•ืจื›ื™ื™ื
  • ืฆื•ืจืš ืœื”ืคื—ื™ืช ืืช ื”ืชืคืฉื˜ื•ืช ืกืงืจื™ืคื˜ื™ ื”-CI ืชื•ืš ืฉืžื™ืจื” ืขืœ ื–ืžื™ื ื•ืช ืžื ื•ืขื™ ืงื•ื“ ืžืงื•ืจื™ื™ื ืœืฉืคื”.
  • ื™ืขื“ ืžืžืฉืœืชื™ ืฉืžื˜ืจืชื• ืœื”ืคื•ืš ืืช ืื›ื™ืคืช ื”ืœื™ื›ื™ื ืžืฉืคื˜ื™ื™ื ืœืžื“ื™ื“ื” ืขืœ ืคื ื™ ื™ื—ื™ื“ื•ืช ืขืกืงื™ื•ืช ื•ืœื ืžืื’ืจ ืื—ืจ ืžืื’ืจ

MegaLinter

ืืชืจ ืจืฉืžื™: MegaLinter

MegaLinter ืคื•ืขืœืช ื›ืคืœื˜ืคื•ืจืžืช ืชื–ืžื•ืจ ืœื™ื ื˜ (lint organization) ื”ืžื™ื•ืขื“ืช ื‘ืขื™ืงืจ ืœืกื‘ื™ื‘ื•ืช ืžื‘ื•ืกืกื•ืช CI, ื‘ื”ืŸ ืฆื™ื ื•ืจ ื™ื—ื™ื“ ื—ื™ื™ื‘ ืœื”ืจื™ืฅ ืžื ื•ืขื™ lint ืจื‘ื™ื ื•ืฉื•ื ื™ื ืขืœ ืคื ื™ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืžื’ื•ื•ื ื•ืช. ื‘ืžืงื•ื ืœื”ืชืžืงื“ ื‘ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืื• ื‘ืชืฆื•ื’ื•ืช ืžืžืฉืœ ืืจื•ื›ื•ืช ื˜ื•ื•ื—, MegaLinter ืžืชืžืงื“ืช ื‘ืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื” ืฉืœ ื‘ื™ืฆื•ืขื™ื. ื”ื™ื ืื•ืจื–ืช ืขืฉืจื•ืช ืžืขืจื›ื•ืช lint ื”ื ืžืฆืื•ืช ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ืœืชื•ืš ืžืกื’ืจืช ืื—ืช ื”ืžื›ื™ืœื” ืงื•ื ื˜ื™ื™ื ืจ ืฉื™ื›ื•ืœื” ืœืคืขื•ืœ ื‘ืชื•ืš ืคืœื˜ืคื•ืจืžื•ืช CI ื›ื’ื•ืŸ GitHub Actions, GitLab CI, Jenkins ืื• Azure DevOps pipelines.

ื‘ืืจื’ื•ื ื™ ื”ื ื“ืกื” ื’ื“ื•ืœื™ื, ื”ื›ืœื™ ืžืฉืžืฉ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ืืฉืจ ืฆื•ื•ืชื™ื ืจื•ืฆื™ื ืœืคืฉื˜ ืืช ืชื–ืžื•ืจ ื”-lint ืขืœ ืคื ื™ ืžืื’ืจื™ื ื”ื˜ืจื•ื’ื ื™ื™ื. ื‘ืžืงื•ื ืœืชื—ื–ืง ืกืงืจื™ืคื˜ื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ืฉืœ pipeline ืขื‘ื•ืจ ื›ืœ ืฉืคืช ืชื›ื ื•ืช ืื• ืžื—ืกื ื™ืช ื˜ื›ื ื•ืœื•ื’ื™ื”, MegaLinter ืžืกืคืง ืกื‘ื™ื‘ืช ื‘ื™ืฆื•ืข ืžืื•ื—ื“ืช ื”ืžืื’ื“ืช ืžืกืคืจ ืžื ืชื—ื™ื. ื’ื™ืฉื” ื–ื• ืžืคื—ื™ืชื” ื—ื™ื›ื•ืš ืชืคืขื•ืœื™ ื‘ืขืช ื”ื›ื ืกืช linting ืœืคืจื•ื™ืงื˜ื™ื ื”ืžืฉืœื‘ื™ื ืงื•ื“ ื™ื™ืฉื•ืžื™ื, ืชืฆื•ืจืช ืชืฉืชื™ืช, ื”ื’ื“ืจื•ืช ืงื•ื ื˜ื™ื™ื ืจื™ื ื•ืืจื˜ื™ืคืงื˜ื™ื ืฉืœ ืชื™ืขื•ื“.

ืžื›ื™ื•ื•ืŸ ืฉืžืื’ืจื™ื ืืจื’ื•ื ื™ื™ื ืžื•ื“ืจื ื™ื™ื ืžื›ื™ืœื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืกื•ื’ื™ ืืจื˜ื™ืคืงื˜ื™ื ืจื‘ื™ื ื‘ื• ื–ืžื ื™ืช, ื”ื›ื™ืกื•ื™ ื”ืจื‘-ื“ื•ืžื™ื™ื ื™ ืฉืœ MegaLinter ื™ื›ื•ืœ ืœื”ืคื•ืš ืœื™ืชืจื•ืŸ ืชืคืขื•ืœื™. ื”ื•ื ื™ื›ื•ืœ ืœื”ืขืจื™ืš ืงื•ื“ ื™ื™ืฉื•ืžื™ื ืœืฆื“ Dockerfiles, ืžื ื™ืคืกื˜ื™ื ืฉืœ Kubernetes, ืชื‘ื ื™ื•ืช Terraform, ืงื‘ืฆื™ ืชืฆื•ืจื” ืฉืœ YAML ื•ื ื›ืกื™ ืคื™ืชื•ื— ืื—ืจื™ื ืฉืงื™ื™ืžื™ื ื‘ื“ืจืš ื›ืœืœ ื‘ืžืื’ืจื™ื ืžื•ื›ื•ื•ื ื™ DevOps.

ืืจื›ื™ื˜ืงื˜ื•ืจืช ื‘ื™ืฆื•ืข ื•ืžื•ื“ืœ ืชื–ืžื•ืจ

  • ืกื‘ื™ื‘ืช ื‘ื™ืฆื•ืข ืžืžื›ื•ืœื” ืฉืื•ืจื– ืขืฉืจื•ืช ืคื—ื™ื•ืช
  • ืคืขื•ืœื” ืžืงื•ืจื™ืช ืฉืœ CI ืžืชื•ื›ื ืŸ ืœืคืขื•ืœ ื›ืฉืœื‘ ืฆื™ื ื•ืจ
  • ื–ื™ื”ื•ื™ ืฉืคื” ื•ื—ืคืฆื™ื ืฉืžืคืขื™ืœ ืื ืœื™ื–ื˜ื•ืจื™ื ืจืœื•ื•ื ื˜ื™ื™ื ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™
  • ืฉื›ื‘ื•ืช ืชืฆื•ืจื” ืžืชืŸ ืืคืฉืจื•ืช ืœืฆื•ื•ืชื™ื ืœื”ืชืื™ื ืžืขืจื›ื•ืช ื›ืœืœื™ื ืœื›ืœ ืžืื’ืจ
  • ืžืขืจื›ืช ืชื•ืกืคื™ื ื ื™ืชื ืช ืœื”ืจื—ื‘ื” ื”ืžืืคืฉืจ ืœืืจื’ื•ื ื™ื ืœืฉืœื‘ ืžืขืจื›ื•ืช ืžื™ื“ืข ื ื•ืกืคื•ืช

ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ MegaLinter ืžื“ื’ื™ืฉื” ืฉื—ื–ื•ืจ. ื›ืœ ืจื™ืฆืช ืฆื™ื ื•ืจ ืžื‘ืฆืขืช ืืช ืื•ืชืŸ ื’ืจืกืื•ืช ืฉืœ ืžื ื•ืข lint ื‘ืชื•ืš ืชืžื•ื ืช ืžื›ื•ืœื” ืกื˜ื ื“ืจื˜ื™ืช. ื–ื” ืžืคื—ื™ืช ืคืขืจื™ื ื”ืžื•ืคื™ืขื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ืืฉืจ ืžืคืชื—ื™ื ืžืคืขื™ืœื™ื linters ื‘ืื•ืคืŸ ืžืงื•ืžื™ ืขื ื’ืจืกืื•ืช ืื• ืชืฆื•ืจื•ืช ื›ืœืœ ืฉื•ื ื•ืช. ืขื‘ื•ืจ ืฆื•ื•ืชื™ ืคืœื˜ืคื•ืจืžื” ืืจื’ื•ื ื™ืช ื”ืื—ืจืื™ื ืขืœ ืชื—ื–ื•ืงืช ืกื‘ื™ื‘ื•ืช CI, ื“ื˜ืจืžื™ื ื™ื–ื ื›ื–ื” ืžืคืฉื˜ ืคืชืจื•ืŸ ื‘ืขื™ื•ืช ื•ื ื™ื”ื•ืœ ืืžื™ื ื•ืช ื”ืฆื™ื ื•ืจ.

ื›ื™ืกื•ื™ ืขืœ ืคื ื™ ืžืžืฆืื™ ืคื™ืชื•ื—

ืžืืคื™ื™ืŸ ื‘ื•ืœื˜ ืื—ื“ ืฉืœ MegaLinter ื”ื•ื ื”ื™ืงืคื” ื”ืจื—ื‘ ืžืขื‘ืจ ืœืขื™ื‘ื•ื“ ืงื•ื“ ืžืงื•ืจ ืžืกื•ืจืชื™. ื”ืคืœื˜ืคื•ืจืžื” ื›ื•ืœืœืช ืžื ืชื—ื™ื ืœืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืชืงืœื•ืช ื”ื ื“ืกื™ื•ืช ื”ืžืฉืคื™ืขื•ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืขืœ ืื™ื›ื•ืช ื”ืžืกื™ืจื”.

ื“ื•ื’ืžืื•ืช ื›ื•ืœืœื•ืช:

  • ืขื™ื‘ื•ื“ ืงื•ื“ ืžืงื•ืจ ืขื‘ื•ืจ ืฉืคื•ืช ืชื›ื ื•ืช ืžืจื•ื‘ื•ืช
  • ืื™ืžื•ืช ืชืฉืชื™ืช ื›ืงื•ื“
  • ื ื™ืชื•ื— ืชืฆื•ืจืช ื”ืžื›ื•ืœื”
  • ื‘ื“ื™ืงื•ืช ืขื™ืฆื•ื‘ ืชื™ืขื•ื“
  • ืื™ืžื•ืช ืกื›ื™ืžื” ืฉืœ YAML ื•-JSON
  • ื’ื™ืœื•ื™ ืกื•ื“ื•ืช ื•ื”ื™ื’ื™ื™ื ืช ืชืฆื•ืจื”

ืขืœ ื™ื“ื™ ืื™ื—ื•ื“ ื‘ื“ื™ืงื•ืช ืืœื• ืœืฉืœื‘ CI ื™ื—ื™ื“, ืฆื•ื•ืชื™ ื”ื ื“ืกื” ื™ื›ื•ืœื™ื ืœื–ื”ื•ืช ืžื’ื•ื•ืŸ ืจื—ื‘ ื™ื•ืชืจ ืฉืœ ื‘ืขื™ื•ืช ืื™ื›ื•ืช ืœืคื ื™ ืฉื”ืฉื™ื ื•ื™ื™ื ืžื’ื™ืขื™ื ืœืกื‘ื™ื‘ื•ืช ืื™ื ื˜ื’ืจืฆื™ื”. ื’ื™ืฉื” ื–ื• ืžืชื™ื™ืฉื‘ืช ืขื ืืกื˜ืจื˜ื’ื™ื•ืช ืืกืคืงื” โ€‹โ€‹ืืจื’ื•ื ื™ื•ืช ืฉื‘ื”ืŸ ืฉื’ื™ืื•ืช ืชืฆื•ืจื” ื•ืชืฆื•ืจื•ืช ืฉื’ื•ื™ื•ืช ืฉืœ ื”ืชืฉืชื™ืช ืžื™ื™ืฆื’ื•ืช ื ืชื— ื”ื•ืœืš ื•ื’ื“ืœ ืฉืœ ืชืงืจื™ื•ืช ืชืคืขื•ืœื™ื•ืช.

ื”ื™ื›ืŸ MegaLinter ืžืฉืชืœื‘ืช ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช

MegaLinter ืžืฉืžืฉ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืืจื’ื•ื ื™ื ื”ื“ื•ืจืฉื™ื:

  • ื‘ื™ืฆื•ืข ืขืงื‘ื™ ืฉืœ lint ืขืœ ืคื ื™ ืžืื’ืจื™ื ืจื‘ื™ื
  • ืคื™ืฉื•ื˜ ืฆื™ื ื•ืจ CI ื‘ืืžืฆืขื•ืช ืžื›ื•ืœื•ืช ืกื˜ื ื“ืจื˜ื™ื•ืช
  • ื›ื™ืกื•ื™ ืจื—ื‘ ืฉืœ ื—ืคืฆื™ื ืžืขื‘ืจ ืœืงื•ื“ ื”ืžืงื•ืจ
  • ืงืœื™ื˜ื” ืžื”ื™ืจื” ืฉืœ ืคืจื•ื™ืงื˜ื™ื ื—ื“ืฉื™ื ืœืœื ื‘ื ื™ื™ืช ืฆื™ื ื•ืจื•ืช ืกื™ื‘ื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช

ื”ื›ืœื™ ืฉื™ืžื•ืฉื™ ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ืฆื•ื•ืชื™ื ืจื•ืฆื™ื ืœืืžืฅ ื’ื™ืฉืช "ืœื ืงื•ืช ื”ื›ืœ" ืœื”ื™ื’ื™ื™ื ืช ืžืื’ืจื™ื. ื‘ืžืงื•ื ืœืฉืœื‘ ื‘ื”ื“ืจื’ื” ืžืขืจื›ื•ืช ืœื™ื˜ื•ืฉ ื ืคืจื“ื•ืช ืขื‘ื•ืจ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืฉื•ื ื•ืช, MegaLinter ืžืืคืฉืจ ืœืืจื’ื•ื ื™ื ืœื”ืคืขื™ืœ ืฉื›ื‘ืช ื ื™ืชื•ื— ืจื—ื‘ื” ื‘ืื•ืคืŸ ืžื™ื™ื“ื™ ื•ืœืฉืคืจ ืืช ื”ื›ืœืœื™ื ื‘ื”ืžืฉืš, ื›ืืฉืจ ื”ืฆื•ื•ืชื™ื ืžืกืชื’ืœื™ื ืœื–ืจื™ืžืช ื”ืขื‘ื•ื“ื”.

ืžื’ื‘ืœื•ืช ืชืคืขื•ืœื™ื•ืช ื•ืคืฉืจื•ืช

  • ื’ื™ื“ื•ืœ ื‘ื–ืžืŸ ืจื™ืฆื” ืฉืœ ืฆื™ื ื•ืจ ื™ื›ื•ืœ ืœื”ืชืจื—ืฉ ื›ืืฉืจ ืžื ืชื—ื™ื ืจื‘ื™ื ืคื•ืขืœื™ื ื‘ื• ื–ืžื ื™ืช, ื‘ืžื™ื•ื—ื“ ื‘ืžื•ื ื•-ืจืคื• ื’ื“ื•ืœื™ื.
  • ืžื•ืจื›ื‘ื•ืช ื”ืชืฆื•ืจื” ืขื•ืœื” ื›ื›ืœ ืฉืืจื’ื•ื ื™ื ืžืชืื™ืžื™ื ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื”ืชื ื”ื’ื•ืช ื”ื›ืœืœื™ื ื‘ื™ืŸ ืฆื•ื•ืชื™ื ื•ืกื•ื’ื™ ืืจื˜ื™ืคืงื˜ื™ื ืฉื•ื ื™ื.
  • ืชืงื•ืจื” ืฉืœ ืคืจืฉื ื•ืช ื”ืชื•ืฆืื•ืช ืขืœื•ืœื•ืช ืœื”ื™ื•ื•ืฆืจ ืžื›ื™ื•ื•ืŸ ืฉืžื ื•ืขื™ ืœื™ื ื˜ ืžืจื•ื‘ื™ื ืžื™ื™ืฆืจื™ื ืžืžืฆืื™ื ื‘ืขืœื™ ืžื•ืกื›ืžื•ืช ื—ื•ืžืจื” ืฉื•ื ื•ืช.

ืžืืคื™ื™ื ื™ื ืืœื” ื’ื•ืจืžื™ื ืœื›ืš ืฉืžื’ื”-ืœื™ื ื˜ืจ ืžืชืคืงื“ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืฆื•ืจื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ื›ื›ืœื™ ืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื” ืฉืœ ืฆื™ื ื•ืจื•ืช ืงื•ื“ ื•ืœื ื›ืคืœื˜ืคื•ืจืžืช ื ื™ืชื•ื— ืžืžืฉืœ. ืœืžืจื•ืช ืฉื”ื™ื ืžืฆื˜ื™ื™ื ืช ื‘ืื™ื—ื•ื“ ื‘ื™ืฆื•ืข ืงื•ื“, ื”ื™ื ืื™ื ื” ืžืกืคืงืช ืืช ืื•ืชื” ืจืžืช ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ื‘ืื™ื›ื•ืช ื”ื™ืกื˜ื•ืจื™ืช ืื• ื ื™ื”ื•ืœ ืžื“ื™ื ื™ื•ืช ืžืจื›ื–ื™ ื”ืžื•ืฆืขื™ื ืขืœ ื™ื“ื™ ื—ืœืง ืžืคืœื˜ืคื•ืจืžื•ืช ืื™ื›ื•ืช ื”ืงื•ื“.

ื‘ืกื‘ื™ื‘ื•ืช ืืกืคืงื” โ€‹โ€‹ืืจื’ื•ื ื™ื•ืช, MegaLinter ื”ื•ืคืš ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœื—ืœืง ืžืืกื˜ืจื˜ื’ื™ื™ืช ืื™ื›ื•ืช ืจื—ื‘ื” ื™ื•ืชืจ ืฉื‘ื” ืฆื™ื ื•ืจื•ืช CI ืžื‘ืฆืขื™ื ื‘ื“ื™ืงื•ืช lint ื‘ืขื•ื“ ืคืœื˜ืคื•ืจืžื•ืช ื ื•ืกืคื•ืช ืžืกืคืงื•ืช ื ืจืื•ืช ืžืฆื˜ื‘ืจืช ื•ืชื•ื‘ื ื•ืช ืืจื›ื™ื˜ืงื˜ื•ื ื™ื•ืช ืขืœ ืคื ื™ ืžืื’ืจื™ื ืฉื•ื ื™ื.

ื’ื™ื˜ื”ืื‘ ืกื•ืคืจ-ืœื™ื ื˜ืจ

ืืชืจ ืจืฉืžื™: ื’ื™ื˜ื”ืื‘ ืกื•ืคืจ-ืœื™ื ื˜ืจ

GitHub Super-Linter ื”ื•ื ื›ืœื™ ืชื–ืžื•ืจ lint ื”ืžืชืžืงื“ ื‘-CI, ืฉื ื•ืขื“ ืœืชืงื ืŸ ืืช ืื›ื™ืคืช ืื™ื›ื•ืช ื”ืงื•ื“ ื‘ืชื•ืš ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ืžื‘ื•ืกืกื•ืช GitHub. ื‘ืžืงื•ื ืœืชืคืงื“ ื›ืคืœื˜ืคื•ืจืžืช linting ืขืฆืžืื™ืช ืขื ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ื•ืฉื›ื‘ื•ืช ืžืžืฉืœ, Super-Linter ืคื•ืขืœ ื›ื—ื‘ื™ืœืช ื‘ื™ืฆื•ืข ืฉืžืคืขื™ืœื” ืื•ืกืฃ ืฉืœ linters ืžื‘ื•ืกืกื™ื ื‘ืžื”ืœืš ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืžืื’ืจื™ื. ืžื˜ืจืชื• ื”ืขื™ืงืจื™ืช ื”ื™ื ืœืคืฉื˜ ืืช ื”ืื•ืคืŸ ืฉื‘ื• ืืจื’ื•ื ื™ื ืื•ื›ืคื™ื ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื‘ืชื•ืš ืฆื™ื ื•ืจื•ืช ืคืขื•ืœื•ืช GitHub.

ื‘ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ ื”ื ื“ืกื” ืืจื’ื•ื ื™ืช ืฉื‘ื”ืŸ GitHub ืžืชืคืงื“ ื›ืคืœื˜ืคื•ืจืžืช ืฉื™ืชื•ืฃ ืคืขื•ืœื” ืžืจื›ื–ื™ืช, ื’ื™ืฉื” ื–ื• ืžืืคืฉืจืช ืœื”ื˜ืžื™ืข ื‘ื“ื™ืงื•ืช lint ื™ืฉื™ืจื•ืช ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ pull request ื•-commit. ืฆื•ื•ืชื™ื ืื™ื ื ืฆืจื™ื›ื™ื ืœื”ืจื›ื™ื‘ ืฆื™ื ื•ืจื•ืช linting ื ืคืจื“ื™ื ืขื‘ื•ืจ ื›ืœ ืฉืคืช ืชื›ื ื•ืช ืื• ืกื•ื’ artifact. ื‘ืžืงื•ื ื–ืืช, Super-Linter ืžืกืคืง ืชืฆื•ืจื” ืžื•ื’ื“ืจืช ืžืจืืฉ ื”ืžืคืขื™ืœื” ืžืกืคืจ ืžื ืชื—ื™ื ื‘ืฉืœื‘ CI ื™ื—ื™ื“.

ื”ื›ืœื™ ืื˜ืจืงื˜ื™ื‘ื™ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืืจื’ื•ื ื™ื ื”ืžื ืกื™ื ืœืชืงื ืŸ ืืช ื”ื™ื’ื™ื™ื ืช ื”ืžืื’ืจื™ื ืขืœ ืคื ื™ ืชื™ืงื™ ื”ื ื“ืกื” ื’ื“ื•ืœื™ื. ืขืœ ื™ื“ื™ ื”ืกืชืžื›ื•ืช ืขืœ ืฉื›ื‘ืช ืชื–ืžื•ืจ ื™ื—ื™ื“ื” ื•ืžืชื•ื—ื–ืงืช ื‘ืื•ืคืŸ ืžืจื›ื–ื™, ืฆื•ื•ืชื™ ืคืœื˜ืคื•ืจืžื” ื™ื›ื•ืœื™ื ืœื”ืคื—ื™ืช ืืช ื”ืฉื•ื ื•ืช ื”ืžื•ืคื™ืขื” ื‘ืื•ืคืŸ ื˜ื‘ืขื™ ื›ืืฉืจ ืฆื•ื•ืชื™ื ืฉื•ื ื™ื ื‘ื•ื ื™ื ืฆื™ื ื•ืจื•ืช lint ืžืฉืœื”ื. ืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื” ื–ื• ืชื•ืžื›ืช ื‘ืฆื™ืคื™ื•ืช ืขืงื‘ื™ื•ืช ืฉืœ ืกืงื™ืจืช ืงื•ื“ ื•ื‘ื”ืชื ื”ื’ื•ืช CI ืฆืคื•ื™ื” ืขืœ ืคื ื™ ืžืื•ืช ืžืื’ืจื™ื.

ืืจื›ื™ื˜ืงื˜ื•ืจื” ืชืคืขื•ืœื™ืช

GitHub Super-Linter ืคื•ืขืœ ื›ืคืขื•ืœืช GitHub ืžืžื•ื™ื ืช ื‘ืžื›ื•ืœื”, ื”ืžื‘ืฆืขืช ืžืกืคืจ ืคืงื•ื“ื•ืช ืœื™ื ื˜ืจ ืกืคืฆื™ืคื™ื•ืช ืœืฉืคื” ื‘ืžืงื‘ื™ืœ ืื• ื‘ืจืฆืฃ, ื‘ื”ืชืื ืœืชืฆื•ืจื”. ื”ืžื›ื•ืœื” ืžืื’ื“ืช ืื•ืกืฃ ื’ื“ื•ืœ ืฉืœ ืžื ื•ืขื™ ืœื™ื ื˜ ืคื•ืคื•ืœืจื™ื™ื, ื”ืžื›ืกื™ื ืฉืคื•ืช ืชื›ื ื•ืช, ืคื•ืจืžื˜ื™ ืกื™ืžื•ืŸ, ืงื‘ืฆื™ ืชืฆื•ืจื” ืฉืœ ืชืฉืชื™ืช ื•ื”ื’ื“ืจื•ืช ืžื›ื•ืœื•ืช.

ืžืืคื™ื™ื ื™ื ืื“ืจื™ื›ืœื™ื™ื ืžืจื›ื–ื™ื™ื ื›ื•ืœืœื™ื:

  • ืกื‘ื™ื‘ืช ื‘ื™ืฆื•ืข ืžืžื›ื•ืœื” ืคื•ืขืœ ื‘ืชื•ืš GitHub Actions
  • ื—ื‘ื™ืœืช ืžื ื•ืข ืกื™ื‘ื™ื ืžื•ื’ื“ืจืช ืžืจืืฉ ืžื›ืกื” ืฉืคื•ืช ื•ืคื•ืจืžื˜ื™ื ืจื‘ื™ื
  • ืชืฆื•ืจื” ื‘ืจืžืช ื”ืžืื’ืจ ืžืืคืฉืจ ื”ืชืืžื•ืช ื›ืœืœื™ื ืœื›ืœ ืคืจื•ื™ืงื˜
  • ืžืฉื•ื‘ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ื‘ืงืฉืช ืžืฉื™ื›ื” ื‘ืืžืฆืขื•ืช ื‘ื™ืื•ืจื™ ื–ืจื™ืžืช ืขื‘ื•ื“ื”
  • ืื›ื™ืคื” ืžืจื›ื–ื™ืช ื‘ืืžืฆืขื•ืช ืชื‘ื ื™ื•ืช ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืžืฉื•ืชืคื•ืช

ืžื›ื™ื•ื•ืŸ ืฉ-Super-Linter ืคื•ืขืœ ื›ื•ืœื• ื‘ืชื•ืš ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ GitHub, ื—ื™ื›ื•ืš ื”ืื™ื ื˜ื’ืจืฆื™ื” ื ื•ื˜ื” ืœื”ื™ื•ืช ืžื™ื ื™ืžืœื™ ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ืฉื›ื‘ืจ ืžืฉืชืžืฉื™ื ื‘-GitHub Actions ื›ืคืœื˜ืคื•ืจืžืช ื”-CI ืฉืœื”ื. ืฆื•ื•ืชื™ ืคืœื˜ืคื•ืจืžื” ื™ื›ื•ืœื™ื ืœืคืจืกื ืชื‘ื ื™ื•ืช ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืกื˜ื ื“ืจื˜ื™ื•ืช ื”ืžื™ื™ืฉืžื•ืช ื›ืœืœื™ linting ื‘ืื•ืคืŸ ืขืงื‘ื™ ืขืœ ืคื ื™ ืžืื’ืจื™ื ืฉื•ื ื™ื, ื•ื‘ื›ืš ืœืคืฉื˜ ืืช ื”ืžืžืฉืœ ื‘ืืจื’ื•ื ื™ื ื’ื“ื•ืœื™ื.

ื›ื™ืกื•ื™ ืขืœ ืคื ื™ ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืžืžืฆืื™ื ื”ื ื“ืกื™ื™ื

ืžืื’ืจื™ื ืžื•ื“ืจื ื™ื™ื ืžื›ื™ืœื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื”ืจื‘ื” ื™ื•ืชืจ ืžืงื•ื“ ืžืงื•ืจ ืฉืœ ื™ื™ืฉื•ืžื™ื. ืชืฆื•ืจืช ืชืฉืชื™ืช, ื”ื’ื“ืจื•ืช ืงื•ื ื˜ื™ื™ื ืจื™ื, ืžื“ื™ื ื™ื•ืช ืื‘ื˜ื—ื” ื•ืชืกืจื™ื˜ื™ ืื•ื˜ื•ืžืฆื™ื” ืžืชืงื™ื™ืžื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื™ื—ื“ ื‘ืื•ืชื• ืžืื’ืจ. Super-Linter ืžื˜ืคืœ ื‘ืžืฆื™ืื•ืช ื–ื• ืขืœ ื™ื“ื™ ื”ื›ืœืœืช ืžื ืชื—ื™ื ืขื‘ื•ืจ ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืงื˜ื’ื•ืจื™ื•ืช ืฉืœ ืืจื˜ื™ืคืงื˜ื™ื.

ืื–ื•ืจื™ ื›ื™ืกื•ื™ ืื•ืคื™ื™ื ื™ื™ื ื›ื•ืœืœื™ื:

  • ืงื•ื“ ืžืงื•ืจ ืฉืœ ื™ื™ืฉื•ืžื™ื ื‘ืžืกืคืจ ืฉืคื•ืช ืชื›ื ื•ืช
  • ืงื‘ืฆื™ ืชืฆื•ืจื” ืฉืœ YAML ื•-JSON
  • ืกื˜ื ื“ืจื˜ื™ื ืœืชื™ืขื•ื“ Markdown
  • ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืœื™ืฆื™ืจืช ืงืฉืจื™ Dockerfile ื•ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืœืžื›ื•ืœื•ืช
  • ืื™ืžื•ืช ืชืฆื•ืจืช ืชืฉืชื™ืช ื›ืงื•ื“

ืจื•ื—ื‘ ื”ื™ืงืฃ ื–ื” ืžืืคืฉืจ ืœืฆื•ื•ืชื™ ื”ื ื“ืกื” ืœื‘ืฆืข ื‘ื“ื™ืงื•ืช ืœื™ื˜ื•ืฉ ืขืœ ืคื ื™ ื›ืœ ืฉื˜ื— ื”ืžืื’ืจ ื‘ืžืงื•ื ืœื”ืชืžืงื“ ืืš ื•ืจืง ื‘ืงื•ื“ ื”ืžืงื•ืจ. ื›ื›ืœ ืฉื”ื’ื“ืจื•ืช ืชืฉืชื™ืช ื”ื•ืคื›ื•ืช ื™ื•ืชืจ ื•ื™ื•ืชืจ ืœื—ืœืง ืžืฆื™ื ื•ืจื•ืช ืืกืคืงืช ื”ื™ื™ืฉื•ืžื™ื, ื‘ื“ื™ืงื•ืช ืืœื• ืชื•ืจืžื•ืช ืœืืžื™ื ื•ืช ืชืคืขื•ืœื™ืช ืจื—ื‘ื” ื™ื•ืชืจ.

ื“ืคื•ืกื™ ืื™ืžื•ืฅ ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช

ืืจื’ื•ื ื™ื ื‘ื“ืจืš ื›ืœืœ ืžืืžืฆื™ื ืืช GitHub Super-Linter ื›ืืฉืจ ื”ื ืจื•ืฆื™ื ืœื‘ืกืก ืžื“ื™ื ื™ื•ืช ื‘ืกื™ืกื™ืช ืฉืœ lint ื‘ืžื”ื™ืจื•ืช ืขืœ ืคื ื™ ืžืื’ืจื™ื ืจื‘ื™ื ื”ืžืชืืจื—ื™ื ื‘-GitHub. ื”ืžื›ื•ืœื” ื”ืกื˜ื ื“ืจื˜ื™ืช ืžื‘ื˜ืœืช ืืช ื”ืฆื•ืจืš ืžื›ืœ ืฆื•ื•ืช ืœื”ืจื›ื™ื‘ ืื•ืกืฃ ืžืฉืœื• ืฉืœ ื›ืœื™ lint, ืžื” ืฉืžืคื—ื™ืช ืืช ื”ื—ื™ื›ื•ืš ื‘ืงืœื™ื˜ื” ืœืคืจื•ื™ืงื˜ื™ื ื—ื“ืฉื™ื.

ื”ื›ืœื™ ื’ื ืžืฉืชืœื‘ ื”ื™ื˜ื‘ ืขื ื™ื•ื–ืžื•ืช ื”ื ื“ืกืช ืคืœื˜ืคื•ืจืžื” ืฉื‘ื”ืŸ ืฆื•ื•ืชื™ื ืžืจื›ื–ื™ื™ื ืžืคืจืกืžื™ื ืชื‘ื ื™ื•ืช ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืจื‘ ืคืขืžื™ื•ืช ืฉืœ CI. ืขืœ ื™ื“ื™ ื”ื˜ืžืขืช Super-Linter ื‘ืชื‘ื ื™ื•ืช ืืœื•, ืฆื•ื•ืชื™ ืคืœื˜ืคื•ืจืžื” ื™ื›ื•ืœื™ื ืœืื›ื•ืฃ ื‘ื“ื™ืงื•ืช ืื™ื›ื•ืช ืขืงื‘ื™ื•ืช ื•ืขื“ื™ื™ืŸ ืœืืคืฉืจ ืœื‘ืขืœื™ ืžืื’ืจื™ื ืœื”ืชืื™ื ืื™ืฉื™ืช ืกืคื™ ื›ืœืœื™ื ืื• ืœื”ืฉื‘ื™ืช ืžื ืชื—ื™ื ืกืคืฆื™ืคื™ื™ื ื‘ืขืช ื”ืฆื•ืจืš.

ืคืฉืจื•ืช ืชืคืขื•ืœื™ื•ืช

  • ืชืœื•ืช ื‘ืคืœื˜ืคื•ืจืžืช CI: ื”ื›ืœื™ ืžื•ืชืื ื‘ืขื™ืงืจ ืœืกื‘ื™ื‘ื•ืช GitHub Actions.
  • ื ื™ืชื•ื—ื™ ืžืžืฉืœ ืžื•ื’ื‘ืœื™ื: ื”ืชื•ืฆืื•ืช ืžื•ืคื™ืขื•ืช ื‘ืคืœื˜ ืฉืœ ื–ืจื™ืžืช ื”ืขื‘ื•ื“ื” ื•ืœื ื‘ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืžืจื›ื–ื™ื™ื.
  • ื’ื™ื“ื•ืœ ืžืฉืš ื–ืžืŸ ื”ืฆื™ื ื•ืจ: ื”ืคืขืœืช ืžื ืชื—ื™ื ืจื‘ื™ื ืขืฉื•ื™ื” ืœื”ืืจื™ืš ืืช ื–ืžืŸ ื”ื‘ื™ืฆื•ืข ื‘ืžืื’ืจื™ื ืขื ืงื‘ื•ืฆื•ืช ืงื‘ืฆื™ื ื’ื“ื•ืœื•ืช.

ืื™ืœื•ืฆื™ื ืืœื” ื’ื•ืจืžื™ื ืœื›ืš ืฉ-Super-Linter ืžืชืคืงื“ ื‘ืขื™ืงืจ ื›ืฉื›ื‘ืช ืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื” ืฉืœ ื‘ื™ืฆื•ืข ืงื•ื“ ื•ืœื ื›ืžืขืจื›ืช ื ื™ื”ื•ืœ ืื™ื›ื•ืช ืงื•ื“ ืžืœืื”.

ื‘ืคื•ืขืœ, ืืจื’ื•ื ื™ื ืžืฉืœื‘ื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืืช GitHub Super-Linter ืขื ืคืœื˜ืคื•ืจืžื•ืช ื ื™ืชื•ื— ืื—ืจื•ืช ืืฉืจ ืฆื•ื‘ืจื•ืช ืื•ืชื•ืช ืื™ื›ื•ืช ื‘ื™ืŸ ืžืื’ืจื™ื ืฉื•ื ื™ื. ื‘ืกื‘ื™ื‘ื•ืช ื›ืืœื”, Super-Linter ืžื‘ื˜ื™ื—ื” ืฉื‘ื“ื™ืงื•ืช ืขืงื‘ื™ื•ืช ื™ืคืขืœื• ื‘ื›ืœ ืฆื™ื ื•ืจ, ื‘ืขื•ื“ ืฉืคืœื˜ืคื•ืจืžื•ืช ื‘ืจืžื” ื’ื‘ื•ื”ื” ื™ื•ืชืจ ืžืคืจืฉื•ืช ืืช ื”ืชื•ืฆืื•ืช ื•ืžืกืคืงื•ืช ื ืจืื•ืช ืื™ื›ื•ืช ืืจื•ื›ืช ื˜ื•ื•ื— ืขื‘ื•ืจ ื”ื ื”ืœืช ื”ื”ื ื“ืกื”.

ืกืงื™ืจื” ื›ืœื‘

ืืชืจ ืจืฉืžื™: ืกืงื™ืจื” ื›ืœื‘

ืœ-Reviewdog ืžืขืžื“ ืžื•ื‘ื—ืŸ ื‘ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ ื™ืฆื™ืจืช ืงื•ื“ (linting) ืžืฉื•ื ืฉื”ื•ื ืื™ื ื• ืžืชืคืงื“ ื›ืžื ื•ืข ื™ืฆื™ืจืช ืงื•ื“ (lint) ื‘ืคื ื™ ืขืฆืžื•. ื‘ืžืงื•ื ื–ืืช, ื”ื•ื ืคื•ืขืœ ื›ืฉื›ื‘ืช ื ื™ืชื•ื‘ ืื‘ื—ื ืชื™ืช ื”ืžื—ื‘ืจืช ืงื•ื“ ื™ืฆื™ืจืช ืงื•ื“ (linters) ืงื™ื™ื ืœืžืขืจื›ื•ืช ืกืงื™ืจืช ืงื•ื“. ื”ืคืœื˜ืคื•ืจืžื” ื ื•ืขื“ื” ืœืชืจื’ื ืืช ืคืœื˜ ื”-lint ืœืžืฉื•ื‘ ืžื•ื‘ื ื” ื”ืžื•ืคื™ืข ื™ืฉื™ืจื•ืช ื‘ืชื•ืš ื‘ืงืฉื•ืช pull, ืžื” ืฉื”ื•ืคืš ืืช ืชื•ืฆืื•ืช ื”-lint ืœื—ืœืง ืžืชื”ืœื™ืš ืกืงื™ืจืช ื”ืงื•ื“ ื”ืฉื™ืชื•ืคื™ ื•ืœื ืœื™ื•ืžืŸ ืžื ื•ืชืง ืฉืœ ืฆื™ื ื•ืจ ื”-pipeline.

ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช, ืื™ืžื•ืฅ lint ื ื›ืฉืœ ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ืœื ืžืฉื•ื ืฉื›ืœืœื™ื ืื™ื ื ื™ืขื™ืœื™ื, ืืœื ืžืฉื•ื ืฉืžืžืฆืื™ื ืžืฉื•ืœื‘ื™ื ื‘ืฆื•ืจื” ื’ืจื•ืขื” ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืžืคืชื—ื™ื. ื›ืืฉืจ ืชื•ืฆืื•ืช lint ืžื•ืคื™ืขื•ืช ืจืง ื›ืคืœื˜ ืฉืœ ืžืฉื™ืžืช CI, ืžื”ื ื“ืกื™ื ื—ื™ื™ื‘ื™ื ืœืขื–ื•ื‘ ืืช ื”ืงืฉืจ ืฉืœ ืกืงื™ืจืช ื”ืงื•ื“ ื›ื“ื™ ืœืคืจืฉ ืื•ืชืŸ. ื”ืคืจื“ื” ื–ื• ืžื’ื‘ื™ืจื” ืืช ื–ืžืŸ ื”ื˜ืจื™ืื–' ื•ืžืคื—ื™ืชื” ืืช ื”ืกื‘ื™ืจื•ืช ืฉื”ื‘ืขื™ื•ืช ื™ื˜ื•ืคืœื• ื‘ืื•ืคืŸ ืขืงื‘ื™. Reviewdog ืžื˜ืคืœ ื‘ืคืขืจ ื–ื” ืขืœ ื™ื“ื™ ื”ืคื™ื›ืช ืชื•ืฆืื•ืช lint ืœื”ืขืจื•ืช ื”ืงืฉืจื™ื•ืช ื”ืžืฆื•ืจืคื•ืช ืœืฉื•ืจื•ืช ื”ืงื•ื“ ื”ืžื•ืฉืคืขื•ืช ื‘ื‘ืงืฉื•ืช pull.

ืžื›ื™ื•ื•ืŸ ืฉ-Reviewdog ืื™ื ื• ื›ื•ืคื” ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืžืฉืœื•, ื”ื•ื ื ืฉืืจ ื’ืžื™ืฉ ื‘ื™ืŸ ืฉืคื•ืช ืชื›ื ื•ืช ื•ืžื ื•ืขื™ lint. ื”ื•ื ืคืฉื•ื˜ ืฆื•ืจืš ืืช ื”ืคืœื˜ ืฉืœ ืžื ืชื—ื™ื ืงื™ื™ืžื™ื ื•ืžื ืชื‘ ืืช ื”ืžืžืฆืื™ื ืœืคืœื˜ืคื•ืจืžื•ืช ืกืงื™ืจื” ื ืชืžื›ื•ืช. ืืจื›ื™ื˜ืงื˜ื•ืจื” ื–ื• ื”ื•ืคื›ืช ืืช ื”ื›ืœื™ ืœืื˜ืจืงื˜ื™ื‘ื™ ื‘ืžื™ื•ื—ื“ ื‘ืกื‘ื™ื‘ื•ืช ื‘ื”ืŸ ืฆื•ื•ืชื™ื ื›ื‘ืจ ืžืฉืชืžืฉื™ื ื‘ืžืกืคืจ linters ืืš ื—ืกืจื™ื ืžื ื’ื ื•ืŸ ืขืงื‘ื™ ืœื”ืฆื’ืช ืชื•ืฆืื•ืช ื‘ืžื”ืœืš ืกืงื™ืจืช ืงื•ื“.

ื“ื’ื ืื“ืจื™ื›ืœื™

Reviewdog ืคื•ืขืœืช ื›ืฉื›ื‘ืช ืื™ื ื˜ื’ืจืฆื™ื” ืงืœืช ืžืฉืงืœ ื•ืœื ื›ืคืœื˜ืคื•ืจืžืช ื ื™ืชื•ื— ืžืกื•ืจืชื™ืช. ื”ืžืขืจื›ืช ืงื•ืจืืช ืืช ืคืœื˜ ื”ืžื™ื“ืข ื‘ืคื•ืจืžื˜ื™ื ืกื˜ื ื“ืจื˜ื™ื™ื ื•ืžืžื™ืจื” ืืช ื”ืžืžืฆืื™ื ืœื”ืขืจื•ืช ืื• ื‘ื™ืื•ืจื™ื ืœืกืงื™ืจื”.

ืžืืคื™ื™ื ื™ื ืื“ืจื™ื›ืœื™ื™ื ืžืจื›ื–ื™ื™ื ื›ื•ืœืœื™ื:

  • ื‘ืœื™ืขืช ืคืœื˜ ืžื•ืš ืžืžื ืชื—ื™ื ื—ื™ืฆื•ื ื™ื™ื
  • ืกืงื™ืจืช ืฉื™ืœื•ื‘ ื”ืžืขืจื›ืช ืขื ืคืœื˜ืคื•ืจืžื•ืช ื›ืžื• GitHub, GitLab ื•-Bitbucket
  • ื”ืขืจื•ืช ื‘ืงืฉืช ืžืฉื™ื›ื” ืฉืžื“ื’ื™ืฉื™ื ื‘ืขื™ื•ืช ื™ืฉื™ืจื•ืช ื‘ืฉื™ื ื•ื™ื™ ืงื•ื“
  • ืชืžื™ื›ื” ื’ืžื™ืฉื” ื‘ื ื™ืชื•ื— ื ืชื•ื ื™ื ืขื‘ื•ืจ ืžืกืคืจ ืคื•ืจืžื˜ื™ ืคืœื˜ ืฉืœ lint
  • ื‘ื™ืฆื•ืข ื™ื“ื™ื“ื•ืชื™ ืœ-CI ื‘ืืžืฆืขื•ืช ืฉื™ืœื•ื‘ ืฉื•ืจืช ืคืงื•ื“ื” ืคืฉื•ื˜

ืžื•ื“ืœ ื–ื” ืžืืคืฉืจ ืœืืจื’ื•ื ื™ื ืœืฉืžื•ืจ ืขืœ ื›ืœื™ ื”-lint ื”ืžื•ืขื“ืคื™ื ืขืœื™ื”ื ืชื•ืš ืฉื™ืคื•ืจ ื”ืื•ืคืŸ ืฉื‘ื• ื”ืชื•ืฆืื•ืช ืžื’ื™ืขื•ืช ืœืžืคืชื—ื™ื. ื‘ืžืงื•ื ืœื”ื—ืœื™ืฃ ื›ืœื™ ื”-lint ื”ืงื™ื™ืžื™ื, Reviewdog ืžืฉืคืจ ืืช ื”ืฉื™ืžื•ืฉื™ื•ืช ืฉืœื”ื ื‘ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืฉื™ืชื•ืคื™ื™ื.

ืฉื™ืœื•ื‘ ื–ืจื™ืžืช ืขื‘ื•ื“ื” ื‘ืชื•ืš ืฆื™ื ื•ืจื•ืช CI

Reviewdog ืžื‘ื•ืฆืข ื‘ื“ืจืš ื›ืœืœ ื›ืฉืœื‘ ื‘ืฆื™ื ื•ืจื•ืช CI ืœืื—ืจ ื‘ื™ืฆื•ืข ื‘ื“ื™ืงื•ืช lint. ื‘ืžื”ืœืš ืฉืœื‘ ื–ื”, ืคืœื˜ื™ ื”-lint ืžื ื•ืชื—ื™ื ื•ืžื•ืžืจื™ื ืœืžืฉื•ื‘ ืžื•ื‘ื ื” ื”ืงืฉื•ืจ ืœื‘ืงืฉืช ื”-pull ื”ื ื•ื›ื—ื™ืช.

ืชื”ืœื™ืš ืขื‘ื•ื“ื” ืคืฉื•ื˜ ื™ื•ืชืจ ืขืฉื•ื™ ืœื›ืœื•ืœ ืืช ื”ืฉืœื‘ื™ื ื”ื‘ืื™ื:

  1. ืฆื™ื ื•ืจ CI ืžืคืขื™ืœ ืžื ื•ืข lint ืื—ื“ ืื• ื™ื•ืชืจ.
  2. Linters ื™ื•ืฆืจื™ื ื“ื•ื—ื•ืช ืคืœื˜ ื‘ืคื•ืจืžื˜ื™ื ื ืชืžื›ื™ื.
  3. Reviewdog ืžืขื‘ื“ ืืช ื”ื“ื•ื—ื•ืช ื•ืžืžืคื” ืืช ื”ืžืžืฆืื™ื ืœืฉื•ืจื•ืช ืงื•ื“ ืฉืขื‘ืจื• ืฉื™ื ื•ื™.
  4. ื”ืžืขืจื›ืช ืžืคืจืกืžืช ื”ืขืจื•ืช ื™ืฉื™ืจื•ืช ื‘ืžืžืฉืง ืกืงื™ืจืช ื‘ืงืฉื•ืช ื”-pull.

ืฉื™ืœื•ื‘ ื–ืจื™ืžืช ืขื‘ื•ื“ื” ื–ื” ืžืคื—ื™ืช ืžืฉืžืขื•ืชื™ืช ืืช ื”ื—ื™ื›ื•ืš ื‘ืขืช ื˜ื™ืคื•ืœ ื‘ื”ืคืจื•ืช ืงื•ื“. ืžืคืชื—ื™ื ืจื•ืื™ื ื‘ืขื™ื•ืช ื‘ืื•ืคืŸ ืžื™ื™ื“ื™ ื‘ื”ืงืฉืจ ืฉืœ ืฉื™ื ื•ื™ื™ ื”ืงื•ื“ ืฉื”ื’ื™ืฉื•, ื‘ืžืงื•ื ืœืกืงื•ืจ ื™ื•ืžื ื™ CI ืืจื•ื›ื™ื.

ืžืงืจื™ ืฉื™ืžื•ืฉ ื‘ืืจื’ื•ื ื™ ื”ื ื“ืกื” ื’ื“ื•ืœื™ื

Reviewdog ื ืคื•ืฅ ื‘ืืจื’ื•ื ื™ื ืฉื›ื‘ืจ ืžืกืชืžื›ื™ื ืขืœ ืžืกืคืจ ื›ืœื™ lint ืืš ืจื•ืฆื™ื ืœืชืงื ืŸ ืืช ื”ืฆื’ืช ื”ืžืžืฆืื™ื. ืชืจื—ื™ืฉื™ื ืื•ืคื™ื™ื ื™ื™ื ื›ื•ืœืœื™ื:

  • ื‘ืกื™ืกื™ ืงื•ื“ ืคื•ืœื™ื’ืœื•ื˜ ืฉื‘ื”ื ืฆื•ื•ืชื™ื ืฉื•ื ื™ื ืžืชื—ื–ืงื™ื ืžื ื•ืขื™ ืœื™ื ื˜ ืกืคืฆื™ืคื™ื™ื ืœืฉืคื”
  • ืืจื’ื•ื ื™ื ืฉืจื•ืฆื™ื ืœื”ื˜ืžื™ืข ืชื•ืฆืื•ืช ืฉืœ lint ื™ืฉื™ืจื•ืช ื‘ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืฉืœ ืกืงื™ืจืช ืงื•ื“
  • ืฆื™ื ื•ืจื•ืช CI ื”ืžื™ื™ืฆืจื™ื ื›ืžื•ื™ื•ืช ื’ื“ื•ืœื•ืช ืฉืœ ืคืœื˜ ื ื™ืชื•ื— ืฉืงืฉื” ืœืคืจืฉ ื‘ื™ื•ืžื ื™ ืจื™ืฉื•ื ื’ื•ืœืžื™ื™ื
  • ืฆื•ื•ืชื™ ืคื™ืชื•ื— ืฉืžืขื“ื™ืคื™ื ื‘ืขืœื•ืช ืžื‘ื•ื–ืจืช ืขืœ ื›ืœืœื™ ืœื™ื ื˜ ืืš ืฉื™ืœื•ื‘ ื‘ื™ืงื•ืจืช ืžืจื›ื–ื™

ืขืœ ื™ื“ื™ ื”ืชืžืงื“ื•ืช ื‘ืฉื™ืœื•ื‘ ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืฉืœ ืžืคืชื—ื™ื ื‘ืžืงื•ื ื‘ืื›ื™ืคืช ื›ืœืœื™ื, Reviewdog ืžืฉืœื™ืžื” ืคืœื˜ืคื•ืจืžื•ืช ืชื–ืžื•ืจ ืื—ืจื•ืช ืฉืœ lint ื‘ืžืงื•ื ืœื”ืชื—ืจื•ืช ื‘ื”ืŸ.

ืžื’ื‘ืœื•ืช ืชืคืขื•ืœื™ื•ืช

  • ืื™ืŸ ื›ืœืœื™ ืœื™ื ื˜ ืžืงื•ืจื™ื™ื: ื”ื›ืœื™ ืชืœื•ื™ ืœื—ืœื•ื˜ื™ืŸ ื‘ืื ืœื™ืกื˜ื™ื ื—ื™ืฆื•ื ื™ื™ื.
  • ืชื›ื•ื ื•ืช ืžืžืฉืœ ืžื•ื’ื‘ืœื•ืช: ื”ื•ื ืื™ื ื• ืžืกืคืง ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืื• ืžื“ื“ื™ ืื™ื›ื•ืช ืœื˜ื•ื•ื— ืืจื•ืš.
  • ืžื•ืจื›ื‘ื•ืช ื”ืชืฆื•ืจื”: ืžื™ืคื•ื™ ืคื•ืจืžื˜ื™ ืคืœื˜ ืž-linters ืฉื•ื ื™ื ืขืฉื•ื™ ืœื“ืจื•ืฉ ื”ื’ื“ืจื” ื–ื”ื™ืจื”.

ืžืืคื™ื™ื ื™ื ืืœื” ื’ื•ืจืžื™ื ืœื›ืš ืฉ-Reviewdog ืžืชืคืงื“ ื‘ื“ืจืš ื›ืœืœ ื›ื—ืœืง ืžืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืื™ื›ื•ืชื™ืช ืจื—ื‘ื” ื™ื•ืชืจ. ื”ื•ื ืžืฉืคืจ ืืช ื”ื ืจืื•ืช ืฉืœ ืžืžืฆืื™ ื‘ืขื™ื•ืช ืืš ืื™ื ื• ืžื—ืœื™ืฃ ืืช ืžื ื•ืขื™ ื”ื ื™ืชื•ื— ื”ืื—ืจืื™ื ืขืœ ื’ื™ืœื•ื™ ื‘ืขื™ื•ืช.

ื‘ืกื‘ื™ื‘ื•ืช ื”ื ื“ืกื” ื’ื“ื•ืœื•ืช, ื”ื›ืœื™ ืžื•ืขืจืš ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ื–ื›ื•ืช ื™ื›ื•ืœืชื• ืœืกื’ื•ืจ ืืช ื”ืคืขืจ ื‘ื™ืŸ ื ื™ืชื•ื— ืื•ื˜ื•ืžื˜ื™ ืœืชื”ืœื™ื›ื™ ืกืงื™ืจื” ืื ื•ืฉื™ื™ื. ืขืœ ื™ื“ื™ ื”ื˜ืžืขืช ืžืฉื•ื‘ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ื™ืฉื™ืจื•ืช ื‘ื“ื™ื•ื ื™ื ืขืœ ื‘ืงืฉื•ืช ืžืฉื™ื›ื”, Reviewdog ืžืกื™ื™ืข ืœื”ื‘ื˜ื™ื— ืฉื”ืคืจื•ืช ื›ืœืœื™ื ื™ื”ืคื›ื• ืœืชื•ื‘ื ื•ืช ืžืขืฉื™ื•ืช ื•ืœื ืœืžืžืฆืื™ื ืžื™ื•ืชืจื™ื ืฉืœ ืชื”ืœื™ื›ื™ื ืืœื•.

DeepSource

ืืชืจ ืจืฉืžื™: DeepSource

DeepSource ื”ื™ื ืคืœื˜ืคื•ืจืžืช ืื™ื›ื•ืช ืงื•ื“ ื•ืชื™ืงื•ืŸ ืงื•ื“ ืžื‘ื•ืกืกืช ืขื ืŸ, ืฉื ื•ืขื“ื” ืœืฉืœื‘ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžื‘ื•ืกืก ื›ืœืœื™ื ืขื ื”ื ื—ื™ื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ืœืชื™ืงื•ืŸ ืงื•ื“. ื‘ื ื™ื’ื•ื“ ืœืžื ื•ืขื™ ืชื™ืงื•ืŸ ืงื•ื“ ืžืกื•ืจืชื™ื™ื ื”ืžืชืžืงื“ื™ื ื‘ืขื™ืงืจ ื‘ืื›ื™ืคื” ืกื’ื ื•ื ื™ืช, DeepSource ืžืžืฆื‘ืช ืืช ืขืฆืžื” ื›ืคืœื˜ืคื•ืจืžืช ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ื•ืืžื™ื ื•ืช ืœืžืคืชื—ื™ื, ื”ืžื ืชื—ืช ืงื•ื“ ื‘ืื•ืคืŸ ืจืฆื™ืฃ ื•ืžืกืคืงืช ืžืฉื•ื‘ ืžืขืฉื™ ื™ืฉื™ืจื•ืช ื‘ืชื•ืš ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ื”ืคื™ืชื•ื—.

ื‘ืกื‘ื™ื‘ื•ืช ื”ื ื“ืกื” ืืจื’ื•ื ื™ื•ืช, ื”ืคืœื˜ืคื•ืจืžื” ืžื•ืฆื’ืช ื‘ื“ืจืš ื›ืœืœ ื›ืืฉืจ ืืจื’ื•ื ื™ื ืจื•ืฆื™ื ืœืื—ื“ ืคืขื™ืœื•ื™ื•ืช ื ื™ืชื•ื— ืžืจื•ื‘ื•ืช ืœืฉื›ื‘ืช ืฉื™ืจื•ืช ืื—ืช. ื‘ืžืงื•ื ืœื”ืคืขื™ืœ ืžืขืจื›ื•ืช ื ื™ืชื•ื— (linters) ื‘ื ืคืจื“ ืขื‘ื•ืจ ื›ืœ ืฉืคื” ืื• framework, DeepSource ืื•ื’ื“ืช ืžืขืจื›ื•ืช ื ื™ืชื•ื— (linting), ื ื™ืชื•ื— ืกื˜ื˜ื™, ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ื•ื”ืขืจื›ื•ืช ืชื—ื–ื•ืงื” ื‘ืชื•ืš ืžืขืจื›ืช ืื—ืช. ืื™ื—ื•ื“ ื–ื” ืžืคื—ื™ืช ืืช ื”ืชืงื•ืจื” ื”ืชืคืขื•ืœื™ืช ืฉืœ ื ื™ื”ื•ืœ ื›ืœื™ ื ื™ืชื•ื— ืžืจื•ื‘ื™ื ืชื•ืš ืžืชืŸ ืืคืฉืจื•ืช ืœื“ื™ื•ื•ื— ืขืงื‘ื™ ื‘ื™ืŸ ืžืื’ืจื™ื ืฉื•ื ื™ื.

ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ ื”ืคืœื˜ืคื•ืจืžื” ืžืชืžืงื“ืช ื‘ื ื™ืชื•ื— ืžืชืžืฉืš ื”ืžื•ืคืขืœ ืขืœ ื™ื“ื™ ืื™ืจื•ืขื™ ืžืื’ืจ ื›ื’ื•ืŸ ื‘ืงืฉื•ืช ืžืฉื™ื›ื” ืื• ื“ื—ื™ืคื•ืช ืงื•ื“. ื›ืืฉืจ ืžืชืจื—ืฉ ืฉื™ื ื•ื™, DeepSource ืžืขืจื™ื›ื” ืืช ื”ืงื‘ืฆื™ื ื”ืžื•ืฉืคืขื™ื ื‘ืืžืฆืขื•ืช ืžื ืชื—ื™ ื”ืฉืคื” ื”ืกืคืฆื™ืคื™ื™ื ืฉืœื” ื•ืžื™ื™ืฆืจืช ืกื˜ ืžื•ื‘ื ื” ืฉืœ ืžืžืฆืื™ื. ืžืžืฆืื™ื ืืœื” ื ื—ืฉืคื™ื ื™ืฉื™ืจื•ืช ื‘ืชื•ืš ื‘ืงืฉื•ืช ืžืฉื™ื›ื”, ืžื” ืฉืžืืคืฉืจ ืœืฆื•ื•ืชื™ ื”ื ื“ืกื” ืœื˜ืคืœ ื‘ื‘ืขื™ื•ืช ืœืคื ื™ ืฉื”ืฉื™ื ื•ื™ื™ื ืžื’ื™ืขื™ื ืœืกื‘ื™ื‘ื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืื• ืคืจื™ืกื”.

ืืจื›ื™ื˜ืงื˜ื•ืจืช ืคืœื˜ืคื•ืจืžื” ื•ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืฉืœ ื ื™ืชื•ื—

ืžื•ื“ืœ ื”ื ื™ืชื•ื— ืฉืœ DeepSource ืžืฉืœื‘ ื–ื™ื”ื•ื™ ื˜ืงืกื˜ ืžื‘ื•ืกืก ื›ืœืœื™ื ืขื ืคืจืฉื ื•ืช ื ื•ืกืคืช ืฉืœ ืชื‘ื ื™ื•ืช ืงื•ื“. ื‘ืžืงื•ื ืœื”ืกืชืžืš ืืš ื•ืจืง ืขืœ ื˜ืงืกื˜ื™ื ื—ื™ืฆื•ื ื™ื™ื, ื”ืคืœื˜ืคื•ืจืžื” ื›ื•ืœืœืช ืžื ืชื—ื™ื ืžืงื•ืจื™ื™ื ืฉื ื•ืขื“ื• ืœื–ื”ื•ืช ืจื™ื—ื•ืช ืงื•ื“, ืชื‘ื ื™ื•ืช ืื ื˜ื™-ื“ืคื•ืก ื•ื‘ืขื™ื•ืช ืืžื™ื ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช.

ืชื”ืœื™ืš ื”ืขื‘ื•ื“ื” ื‘ื“ืจืš ื›ืœืœ ืขื•ืงื‘ ืื—ืจ ื”ืฉืœื‘ื™ื ื”ื‘ืื™ื:

  1. ืื™ืจื•ืข ืžืื’ืจ ืžืคืขื™ืœ ื ื™ืชื•ื—.
  2. DeepSource ืžื ืชื— ืงื‘ืฆื™ื ืฉืขื‘ืจื• ืฉื™ื ื•ื™ ื‘ืืžืฆืขื•ืช ืžื ื•ืขื™ ืขื–ืจ ืกืคืฆื™ืคื™ื™ื ืœืฉืคื”.
  3. ื”ืžืžืฆืื™ื ืžืกื•ื•ื’ื™ื ืœืคื™ ื—ื•ืžืจื” ื•ืกื•ื’.
  4. ื”ืชื•ืฆืื•ืช ืžื•ืขื‘ืจื•ืช ื›ื‘ื™ืื•ืจ ื‘ืงืฉื•ืช ืžืฉื™ื›ื” ืื• ื“ื•ื—ื•ืช ืœื•ื— ืžื—ื•ื•ื ื™ื.
  5. ืžืคืชื—ื™ื ืžืงื‘ืœื™ื ื”ืžืœืฆื•ืช ื•ื”ื ื—ื™ื•ืช ืœืชื™ืงื•ืŸ.

ืืจื›ื™ื˜ืงื˜ื•ืจื” ื–ื• ืžืืคืฉืจืช ืœืืจื’ื•ื ื™ื ืœื”ื›ื ื™ืก ืœืžืขืจื›ืช ื ื™ืชื•ื— ืกื˜ื˜ื™ ื•ืคื•ื ืงืฆื™ื•ืช ืชืงืฉื•ืจืช (linting) ืขื ืชืฆื•ืจืช ืชืฉืชื™ืช ืžื™ื ื™ืžืœื™ืช. ืžื›ื™ื•ื•ืŸ ืฉื”ืคืœื˜ืคื•ืจืžื” ืคื•ืขืœืช ื›ืฉื™ืจื•ืช ืžืชืืจื—, ืฆื•ื•ืชื™ ื”ื ื“ืกื” ื‘ื“ืจืš ื›ืœืœ ืžืฉืœื‘ื™ื ืื•ืชื” ื‘ืืžืฆืขื•ืช ืžื—ื‘ืจื™ ืžืื’ืจื™ื ื‘ืžืงื•ื ืœื ื”ืœ ืชืฉืชื™ืช ื ื™ืชื•ื— ืžืงื•ืžื™ืช.

ื™ื›ื•ืœื•ืช ืจืœื•ื•ื ื˜ื™ื•ืช ืœืฆื•ื•ืชื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื

DeepSource ืžืกืคืงืช ืžืกืคืจ ืชื›ื•ื ื•ืช ื”ืžื•ืขืจื›ื•ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืืจื’ื•ื ื™ื ื”ืžื ื”ืœื™ื ืชื™ืงื™ ืงื•ื“ ื’ื“ื•ืœื™ื.

ื™ื›ื•ืœื•ืช ืžืคืชื— ื›ื•ืœืœื•ืช:

  • ืชืžื™ื›ื” ื‘ื ื™ืชื•ื— ืจื‘-ืœืฉื•ื ื™ ืขื‘ื•ืจ ืฉืคื•ืช ืืจื’ื•ื ื™ื•ืช ื ืคื•ืฆื•ืช
  • ืžืฉื•ื‘ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ื‘ืงืฉืช ืžืฉื™ื›ื” ืžืฉื•ืœื‘ ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืกืงื™ืจืช ืงื•ื“
  • ืชื•ื‘ื ื•ืช ืชื—ื–ื•ืงื” ื•ืืžื™ื ื•ืช ื ื’ื–ืจ ืžื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™
  • ื–ื™ื”ื•ื™ ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื” ืžื•ื˜ืžืข ื‘ืฉื’ืจืช ื ื™ืชื•ื—
  • ื”ืฆืขื•ืช ืœืชื™ืงื•ืŸ ืื•ื˜ื•ืžื˜ื™ ื”ืžืฆื™ืขื™ื ืชื™ืงื•ืŸ ืขื‘ื•ืจ ืงื˜ื’ื•ืจื™ื•ืช ืžืกื•ื™ืžื•ืช ืฉืœ ื‘ืขื™ื•ืช

ื™ื›ื•ืœืช ื”ืชื™ืงื•ืŸ ื”ืื•ื˜ื•ืžื˜ื™ืช ืžื‘ื“ื™ืœื” ืืช DeepSource ืžื›ืœื™ ืชื™ืงื•ืŸ ื˜ืงืกื˜ื™ื ืžืกื•ืจืชื™ื™ื ืจื‘ื™ื. ื›ืืฉืจ ื”ืคืœื˜ืคื•ืจืžื” ืžื–ื”ื” ื“ืคื•ืกื™ื ืฉื ื™ืชืŸ ืœืชืงืŸ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™, ื”ื™ื ืขืฉื•ื™ื” ืœื”ืฆื™ืข ืฉื™ื ื•ื™ื™ ืงื•ื“ ื”ืžื˜ืคืœื™ื ื‘ื‘ืขื™ื” ื™ืฉื™ืจื•ืช. ื™ื›ื•ืœืช ื–ื• ื™ื›ื•ืœื” ืœื”ืื™ืฅ ืืช ื”ืชื™ืงื•ืŸ ื‘ืกื‘ื™ื‘ื•ืช ื‘ื”ืŸ ืžืกืคืจ ืจื‘ ืฉืœ ื‘ืขื™ื•ืช ืงืœื•ืช ืžืฆื˜ื‘ืจื•ืช ื‘ืžืื’ืจื™ื ืฉื•ื ื™ื.

ื“ืคื•ืกื™ ืื™ืžื•ืฅ ืืจื’ื•ื ื™ื™ื

ืืจื’ื•ื ื™ื ื ื•ื˜ื™ื ืœืืžืฅ ืืช DeepSource ื›ืืฉืจ ื”ื ืจื•ืฆื™ื ืคืœื˜ืคื•ืจืžื” ืฉืžืคื—ื™ืชื” ืืช ื”ืคื™ืฆื•ืœ ืฉื ื•ืฆืจ ืขืœ ื™ื“ื™ ืžื ื•ืขื™ lint ืžืจื•ื‘ื™ื. ื‘ืžืงื•ื ืœื”ื’ื“ื™ืจ ื•ืœืชื—ื–ืง ื›ืœื™ื ื ืคืจื“ื™ื ืœื‘ื“ื™ืงื•ืช ืกื’ื ื•ืŸ, ืกืจื™ืงืช ืื‘ื˜ื—ื” ื•ื ื™ืชื•ื— ืชื—ื–ื•ืงื”, ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœืจื›ื– ืคื•ื ืงืฆื™ื•ืช ืืœื• ื‘ืžืกื’ืจืช ืฉื™ืจื•ืช ืื—ื“.

ื”ืคืœื˜ืคื•ืจืžื” ืื˜ืจืงื˜ื™ื‘ื™ืช ื’ื ื‘ืกื‘ื™ื‘ื•ืช ื‘ื”ืŸ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื ื•ืชื ื™ื ืขื“ื™ืคื•ืช ืœืฉื™ืœื•ื‘ ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืฉืœ ืžืคืชื—ื™ื. ืขืœ ื™ื“ื™ ื”ืฆื’ืช ืžืžืฆืื™ื ื™ืฉื™ืจื•ืช ื‘ื‘ืงืฉื•ืช ืžืฉื™ื›ื” ื•ืžืชืŸ ื”ืฆืขื•ืช ืœืชื™ืงื•ื ื™ื, DeepSource ืžืขื•ื“ื“ืช ืžืคืชื—ื™ื ืœื˜ืคืœ ื‘ื‘ืขื™ื•ืช ื‘ืžื”ืœืš ืชื”ืœื™ืš ืกืงื™ืจืช ื”ืงื•ื“ ื”ืจื’ื™ืœ ื•ืœื ืœืื—ืจ ื”ืคืจื™ืกื”.

ืžื’ื‘ืœื•ืช ืชืคืขื•ืœื™ื•ืช ื•ืฉื™ืงื•ืœื™ื

  • ืชืœื•ืช ื‘ืขื ืŸ: ืชืฉืชื™ืช ื”ื ื™ืชื•ื— ืคื•ืขืœืช ื›ืฉื™ืจื•ืช ืžืชืืจื—, ื“ื‘ืจ ืฉืขืฉื•ื™ ืœื”ื›ื ื™ืก ืื™ืœื•ืฆื™ื ืœืืจื’ื•ื ื™ื ืขื ืžื“ื™ื ื™ื•ืช ืžื—ืžื™ืจื” ืฉืœ ืคืขื™ืœื•ืช ืžืงื•ืžื™ืช.
  • ื’ื‘ื•ืœื•ืช ื›ื™ืกื•ื™ ืฉืคื•ืช: ื‘ืขื•ื“ ืฉืงื™ื™ืžืช ืชืžื™ื›ื” ื‘ืจื™ื‘ื•ื™ ืฉืคื•ืช, ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ื™ื™ืขื•ื“ื™ื•ืช ืžืกื•ื™ืžื•ืช ืขืฉื•ื™ื•ืช ืœื“ืจื•ืฉ ื›ืœื™ lint ื ื•ืกืคื™ื.
  • ืื–ื”ืจืช ืชื™ืงื•ืŸ ืื•ื˜ื•ืžื˜ื™: ื™ืฉ ืขื“ื™ื™ืŸ ืœื‘ื“ื•ืง ื‘ืงืคื™ื“ื” ืืช ื”ืชื™ืงื•ื ื™ื ื”ืžื•ืฆืขื™ื ืื•ื˜ื•ืžื˜ื™ืช ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืฉื”ื›ื•ื•ื ื” ื”ืืจื›ื™ื˜ืงื˜ื•ื ื™ืช ื ืฉืžืจืช.

ืฉื™ืงื•ืœื™ื ืืœื” ืžื“ื’ื™ืฉื™ื ืฉ-DeepSource ืžืชืคืงื“ืช ื‘ืฆื•ืจื” ื”ื™ืขื™ืœื” ื‘ื™ื•ืชืจ ื›ืืฉืจ ื”ื™ื ืžืฉื•ืœื‘ืช ื‘ืืกื˜ืจื˜ื’ื™ื™ืช ื ื™ื”ื•ืœ ื”ื ื“ืกื™ ืจื—ื‘ื” ื™ื•ืชืจ, ื‘ืžืงื•ื ืœืคืขื•ืœ ื›ืžื ื’ื ื•ืŸ ืื‘ื˜ื—ืช ื”ืื™ื›ื•ืช ื”ื™ื—ื™ื“.

ื‘ื”ืงืฉืจื™ื ืืจื’ื•ื ื™ื™ื, ื”ืคืœื˜ืคื•ืจืžื” ื ืคืจืกืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ืฉื›ื‘ืช ื ื™ืชื•ื— ืžืจื›ื–ื™ืช ื”ืžืฉืœื™ืžื” ื‘ื™ืฆื•ืข lint ืžื‘ื•ืกืก CI. ื‘ืขื•ื“ ืฉื›ืœื™ pipeline ืื•ื›ืคื™ื ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื‘ืžื”ืœืš ื”ื‘ื ื™ื™ื”, DeepSource ืžืกืคืงืช ืชื•ื‘ื ื•ืช ืžืชืžืฉื›ื•ืช ืœื’ื‘ื™ ืžื’ืžื•ืช ื‘ืื™ื›ื•ืช ื”ืงื•ื“ ื•ืกื™ื›ื•ื ื™ื ืžืชืขื•ืจืจื™ื ื‘ืžืื’ืจื™ื ืฉื•ื ื™ื.

ืงื™ื“ื•ืฉื™ืŸ

ืืชืจ ืจืฉืžื™: ืงื™ื“ื•ืฉื™ืŸ

Codacy ื”ื™ื ืคืœื˜ืคื•ืจืžื” ืžืจื›ื–ื™ืช ืœืื™ื›ื•ืช ืงื•ื“ ื•ืชื–ืžื•ืจ lint ืฉื ื•ืขื“ื” ืœืกืคืง ื ื™ืชื•ื— ืื•ื˜ื•ืžื˜ื™, ื ื™ื”ื•ืœ ืžืื’ืจื™ื ื•ื ื™ื˜ื•ืจ ืื™ื›ื•ืช ืขืœ ืคื ื™ ืชื™ืงื™ ื”ื ื“ืกื” ื’ื“ื•ืœื™ื. ื”ืคืœื˜ืคื•ืจืžื” ืžืฉืœื‘ืช ืžื ื•ืขื™ lint ืžืจื•ื‘ื™ื, ื™ื›ื•ืœื•ืช ื ื™ืชื•ื— ืกื˜ื˜ื™ ื•ื›ืœื™ ืกืจื™ืงืช ืื‘ื˜ื—ื” ืœืžืขืจื›ืช ืžืื•ื—ื“ืช ื”ืžืฉืชืœื‘ืช ื™ืฉื™ืจื•ืช ืขื ืคืœื˜ืคื•ืจืžื•ืช ื‘ืงืจืช ื’ืจืกืื•ืช ื•ืฆื™ื ื•ืจื•ืช CI.

ื‘ืกื‘ื™ื‘ื•ืช ื”ื ื“ืกื” ืืจื’ื•ื ื™ื•ืช, Codacy ืžืฉืžืฉ ื‘ื“ืจืš ื›ืœืœ ืœืชืงื™ื ื” ืฉืœ ื‘ื“ื™ืงื•ืช ืื™ื›ื•ืช ื‘ื™ืŸ ืฆื•ื•ืชื™ื, ืชื•ืš ืฉืžื™ืจื” ืขืœ ื ืจืื•ืช ืœื’ื‘ื™ ื”ืื•ืคืŸ ืฉื‘ื• ืื™ื›ื•ืช ื”ืงื•ื“ ืžืชืคืชื—ืช ื‘ื™ืŸ ืžืื’ืจื™ื ืฉื•ื ื™ื. ื‘ื ื™ื’ื•ื“ ืœืžื ื•ืขื™ lint ืขืฆืžืื™ื™ื ื”ืคื•ืขืœื™ื ื‘ืื•ืคืŸ ืขืฆืžืื™ ื‘ืชื•ืš ืฆื™ื ื•ืจื•ืช ื‘ื ื™ื™ื”, Codacy ืคื•ืขืœืช ื›ืคืœื˜ืคื•ืจืžืช ื ื™ืชื•ื— ืจืฆื™ืคื” ืฉืขื•ืงื‘ืช ืื—ืจ ื‘ืขื™ื•ืช ืœืื•ืจืš ื–ืžืŸ, ืžื“ื’ื™ืฉื” ืžื’ืžื•ืช ืื™ื›ื•ืช ืžืชืคืชื—ื•ืช ื•ืžืกืคืงืช ื‘ืงืจื•ืช ืžืžืฉืœ ืœื”ื ื”ื’ื” ื”ื”ื ื“ืกื™ืช.

ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ ื”ืคืœื˜ืคื•ืจืžื” ื ื•ืขื“ื” ืœื”ืชืื™ื ืœืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ ืคื™ืชื•ื— ืจื‘-ื“ื•ื‘ืจื™ ืฉืคื•ืช. ืืจื’ื•ื ื™ื ื’ื“ื•ืœื™ื ืžืคืขื™ืœื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžืกืคืจ ืฉืคื•ืช ืชื›ื ื•ืช ื•ืžืกื’ืจื•ืช ื‘ื• ื–ืžื ื™ืช, ื“ื‘ืจ ืฉืžื‘ื™ื ืœืžื•ืจื›ื‘ื•ืช ื‘ืื›ื™ืคืช ืกื˜ื ื“ืจื˜ื™ื ืขืงื‘ื™ื™ื ืฉืœ ืื™ื›ื•ืช. Codacy ืขื•ื ื” ืขืœ ืืชื’ืจ ื–ื” ืขืœ ื™ื“ื™ ืฆื‘ื™ืจืช ืชื•ืฆืื•ืช ืžืžืกืคืจ ืžื ืชื—ื™ื ื•ื”ืฆื’ืชืŸ ื‘ืืžืฆืขื•ืช ืžืžืฉืง ื“ื™ื•ื•ื— ืžืจื›ื–ื™.

ืืจื›ื™ื˜ืงื˜ื•ืจืช ืคืœื˜ืคื•ืจืžื” ื•ืžื•ื“ืœ ื ื™ื”ื•ืœ

Codacy ืžื‘ืฆืขืช ื ื™ืชื•ื— ื‘ืืžืฆืขื•ืช ืฉื™ืœื•ื‘ ืฉืœ ืžื ื•ืขื™ lint ืžืฉื•ืœื‘ื™ื ื•ืฉื›ื‘ืช ืชื–ืžื•ืจ ืžืฉืœื”. ื›ืœ ืฉืคื” ื ืชืžื›ืช ืžืฉื•ื™ื›ืช ืœืžื ื•ืข ื ื™ืชื•ื— ืื—ื“ ืื• ื™ื•ืชืจ ื”ืžืกื•ื’ืœื™ื ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ืกื’ื ื•ื ื™ื•ืช, ืจื™ื—ื•ืช ืงื•ื“, ื—ืฉืฉื•ืช ืชื—ื–ื•ืงื” ื•ืงื˜ื’ื•ืจื™ื•ืช ืžืกื•ื™ืžื•ืช ืฉืœ ืกื™ื›ื•ื ื™ ืื‘ื˜ื—ื”.

ืจื›ื™ื‘ื™ื ืื“ืจื™ื›ืœื™ื™ื ืžืจื›ื–ื™ื™ื ื›ื•ืœืœื™ื:

  • ืฉื›ื‘ืช ื ื™ืชื•ื— ืจื‘-ืžื ื•ืขื™ ืชืžื™ื›ื” ื‘ืžืกืคืจ ืฉืคื•ืช ืชื›ื ื•ืช
  • ืฉื™ืœื•ื‘ ืžืื’ืจื™ื ืขื GitHub, GitLab ื•-Bitbucket
  • ื ื™ื˜ื•ืจ ืจืฆื™ืฃ ืฉืžืขืจื™ืš ืงื•ื“ ืœืื—ืจ ื‘ืงืฉื•ืช ืงื•ืžื™ื˜ ื•-pull
  • ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืžืจื›ื–ื™ื™ื ืžืขืงื‘ ืื—ืจ ืžื’ืžื•ืช ืื™ื›ื•ืช ื‘ืžืื’ืจื™ื ืฉื•ื ื™ื
  • ืฉืขืจื™ื ืื™ื›ื•ืชื™ื™ื ืžืฉืžืฉ ืœืื›ื™ืคืช ืžื“ื™ื ื™ื•ืช ืงื™ื“ื•ื“ ื‘ืฆื™ื ื•ืจื•ืช CI

ืืจื›ื™ื˜ืงื˜ื•ืจื” ื–ื• ืžืืคืฉืจืช ืœ-Codacy ืœืชืคืงื“ ื”ืŸ ื›ืคืœื˜ืคื•ืจืžืช ื‘ื™ืฆื•ืข lint ื•ื”ืŸ ื›ืฉื›ื‘ืช ืžืžืฉืœ ืขื‘ื•ืจ ืืจื’ื•ื ื™ ื”ื ื“ืกื”. ืฆื•ื•ืชื™ ืคืœื˜ืคื•ืจืžื” ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ืชืฆื•ืจื•ืช ื›ืœืœื™ื ื•ืกืคื™ ืื™ื›ื•ืช ื”ื—ืœื™ื ืขืœ ืžืื’ืจื™ื ืฉื•ื ื™ื, ื•ื‘ื›ืš ืœืกื™ื™ืข ืœื”ื‘ื˜ื™ื— ืฉื”ืฆื•ื•ืชื™ื ื™ืขืžื“ื• ื‘ืกื˜ื ื“ืจื˜ื™ื ืขืงื‘ื™ื™ื.

ื™ื›ื•ืœื•ืช ื ื™ื˜ื•ืจ ื•ื“ื™ื•ื•ื— ืื™ื›ื•ืช

ืื—ืช ืžื™ืชืจื•ื ื•ืชื™ื” ื”ืขื™ืงืจื™ื™ื ืฉืœ Codacy ื˜ืžื•ื ื” ื‘ื™ื›ื•ืœืชื” ืœืื’ื“ ืžืžืฆืื™ ืคื’ืžื™ื ืœืžื“ื“ื™ื ืžื•ื‘ื ื™ื ืฉืžื ื”ืœื™ ื”ื ื“ืกื” ื™ื›ื•ืœื™ื ืœื ืชื— ืœืื•ืจืš ื–ืžืŸ. ื‘ืžืงื•ื ืœื”ืฆื™ื’ ืจืง ืจืฉื™ืžื•ืช ืฉืœ ื”ืคืจื•ืช, ื”ืคืœื˜ืคื•ืจืžื” ืžืืจื’ื ืช ืžืžืฆืื™ื ืœืงื˜ื’ื•ืจื™ื•ืช ื›ื’ื•ืŸ ืžื•ืจื›ื‘ื•ืช, ื›ืคื™ืœื•ืช, ืชื—ื–ื•ืงื” ื•ืคื’ืžื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื.

ืชื›ื•ื ื•ืช ื“ื™ื•ื•ื— ืื•ืคื™ื™ื ื™ื•ืช ื›ื•ืœืœื•ืช:

  • ืžื’ืžื•ืช ื”ื™ืกื˜ื•ืจื™ื•ืช ื‘ืื™ื›ื•ืช ื”ืงื•ื“ ื‘ืžืื’ืจื™ื ืฉื•ื ื™ื
  • ื–ื™ื”ื•ื™ ื ืงื•ื“ื•ืช ื—ืžื•ืช ื‘ืงื•ื“ ืขื ืคื•ื˜ื ืฆื™ืืœ ื’ื‘ื•ื” ืœืคื’ืžื™ื
  • ืฆื™ื•ื ื™ ืชื—ื–ื•ืงื” ื”ื ื’ื–ืจื™ื ืžืชื•ืฆืื•ืช ื”ื ื™ืชื•ื—
  • ืชืฆื•ื’ื•ืช ื”ืฉื•ื•ืื” ืฉืœ ืžืื’ืจื™ื ื”ืžื“ื’ื™ืฉื•ืช ืกื˜ื™ื™ืช ืื™ื›ื•ืช ื‘ื™ืŸ ืฆื•ื•ืชื™ื

ื™ื›ื•ืœื•ืช ื“ื™ื•ื•ื— ืืœื• ืžืืคืฉืจื•ืช ืœืืจื’ื•ื ื™ื ืœื”ืชื™ื™ื—ืก ืœืžืžืฆืื™ ืชืงืœื•ืช ื›ืื™ื ื“ื™ืงื˜ื•ืจื™ื ืœื‘ืจื™ืื•ืช ื”ื ื“ืกื™ืช ืจื—ื‘ื” ื™ื•ืชืจ ื•ืœื ืœื”ืคืจื•ืช ื›ืœืœื™ื ื‘ื•ื“ื“ื•ืช. ืขื ื”ื–ืžืŸ, ืžื’ืžื•ืช ื™ื›ื•ืœื•ืช ืœื—ืฉื•ืฃ ื‘ืขื™ื•ืช ืžืขืจื›ืชื™ื•ืช ื›ื’ื•ืŸ ื”ืฆื˜ื‘ืจื•ืช ืžื•ืจื›ื‘ื•ืช ืื“ืจื™ื›ืœื™ืช ืื• ื™ืจื™ื“ื” ื‘ืชื—ื–ื•ืงื” ื‘ืชืช-ืžืขืจื›ื•ืช ืžืกื•ื™ืžื•ืช.

ื”ื™ื›ืŸ ืงื•ื“ืืกื™ ืžืฉืชืœื‘ืช ื‘ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ ื”ื ื“ืกื” ืืจื’ื•ื ื™ืช

ืงื•ื“ืืกื™ (Codacy) ืžื•ืฆื’ ื‘ื“ืจืš ื›ืœืœ ื‘ืืจื’ื•ื ื™ื ื”ื“ื•ืจืฉื™ื ืคื™ืงื•ื— ืžืจื›ื–ื™ ืขืœ ืื™ื›ื•ืช ื”ืงื•ื“ ื‘ื™ืŸ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ืžื‘ื•ื–ืจื™ื. ืขืœ ื™ื“ื™ ืื™ื—ื•ื“ ืชื•ืฆืื•ืช ื”ื ื™ืชื•ื— ืœืคืœื˜ืคื•ืจืžื” ืžืฉื•ืชืคืช, ื”ื ื”ืœืช ื”ื”ื ื“ืกื” ื™ื›ื•ืœื” ืœื ื˜ืจ ื”ืื ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืื™ื›ื•ืช ื ืื›ืคื™ื ื‘ืื•ืคืŸ ืขืงื‘ื™ ื•ืœื–ื”ื•ืช ืชื—ื•ืžื™ื ืฉื‘ื”ื ื™ืฉ ืœืชืช ืขื“ื™ืคื•ืช ืœืžืืžืฆื™ ืชื™ืงื•ืŸ.

ื”ืคืœื˜ืคื•ืจืžื” ื’ื ืžืชื™ื™ืฉื‘ืช ื”ื™ื˜ื‘ ืขื ืืกื˜ืจื˜ื’ื™ื•ืช ื ื™ื”ื•ืœ CI/CD. ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืฉืขืจื™ ืื™ื›ื•ืช ื›ื“ื™ ืœืžื ื•ืข ืžื™ื–ื•ื’ ืงื•ื“ ืื ืชื•ืฆืื•ืช ื”ื ื™ืชื•ื— ื—ื•ืจื’ื•ืช ืžืกืคื™ื ืžื•ื’ื“ืจื™ื. ืžื ื’ื ื•ืŸ ื–ื” ืžื‘ื˜ื™ื— ืฉืฆื•ื•ืชื™ื ืžื˜ืคืœื™ื ื‘ื‘ืขื™ื•ืช ืงืจื™ื˜ื™ื•ืช ืœืคื ื™ ืฉื”ืฉื™ื ื•ื™ื™ื ื”ื•ืคื›ื™ื ืœื—ืœืง ืžื‘ืกื™ืกื™ ื”ืงื•ื“ ืฉืœ ื”ื™ื™ืฆื•ืจ.

ืคืฉืจื•ืช ื•ืžื’ื‘ืœื•ืช ืชืคืขื•ืœื™ื•ืช

  • ืชืงื•ืจื” ื‘ื–ืžืŸ ืจื™ืฆื” ืฉืœ ื”ื ื™ืชื•ื—: ืกืจื™ืงืช ืžืื’ืจื™ื ื’ื“ื•ืœื™ื ืื• ืžื•ื ื•ืจืคื•ืื™ื ืขืฉื•ื™ื” ืœื”ืืจื™ืš ืืช ื–ืžืŸ ื‘ื™ืฆื•ืข CI.
  • ืžืืžืฅ ื›ื™ื•ืœ ื›ืœืœื™ื: ืื™ืžื•ืฅ ืืจื’ื•ื ื™ ื“ื•ืจืฉ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ื•ื•ื ื•ืŸ ืงืคื“ื ื™ ืฉืœ ืžืขืจื›ื™ ื›ืœืœื™ื ื›ื“ื™ ืœืžื ื•ืข ืจืขืฉ ืžื•ื’ื–ื.
  • ืชืœื•ืช ื‘ืื ืœื™ืกื˜ื™ื ื—ื™ืฆื•ื ื™ื™ื: ื›ืžื• ืคืœื˜ืคื•ืจืžื•ืช ืชื–ืžื•ืจ ืื—ืจื•ืช, ืžืžืฆืื™ื ืจื‘ื™ื ืžืงื•ืจื ื‘ืžื ื•ืขื™ lint ืžืฉื•ืœื‘ื™ื ื•ืœื ื‘ื”ื™ื’ื™ื•ืŸ ื”ื ื™ืชื•ื— ื”ืžืงื•ืจื™ ืฉืœ Codacy.

ืžืืคื™ื™ื ื™ื ืืœื” ืžื“ื’ื™ืฉื™ื ืฉ-Codacy ืžืชืคืงื“ืช ื‘ืฆื•ืจื” ื”ื™ืขื™ืœื” ื‘ื™ื•ืชืจ ื›ืคืœื˜ืคื•ืจืžืช ืžืžืฉืœ ื•ื“ื™ื•ื•ื— ื•ืœื ื›ืชื—ืœื™ืฃ ืœืžื ื•ืขื™ lint ื™ื™ืขื•ื“ื™ื™ื.

ื‘ืืจื’ื•ื ื™ ืชื•ื›ื ื” ื’ื“ื•ืœื™ื, ื”ืคืœื˜ืคื•ืจืžื” ื”ื•ืคื›ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืฉื›ื‘ืช ืชืฆืคื™ืช ืžืจื›ื–ื™ืช ืœืื•ืชื•ืช ืื™ื›ื•ืช ื”ื ื“ืกื™ื™ื. ืžืขืจื›ื•ืช CI ืžื‘ืฆืขื•ืช ื‘ื“ื™ืงื•ืช ืœื™ืงื•ื™ื™ื, ื‘ืขื•ื“ ืฉ-Codacy ืื•ืกืคืช ืืช ื”ืชื•ืฆืื•ืช, ืขื•ืงื‘ืช ืื—ืจ ืžื’ืžื•ืช ื•ืขื•ื–ืจืช ืœื”ื ื”ืœื” ืœื”ื‘ื™ืŸ ื”ื™ื›ืŸ ื™ื™ืชื›ืŸ ืฉื™ื”ื™ื” ืฆื•ืจืš ื‘ืฉื™ืคื•ืจื™ื ืžื‘ื ื™ื™ื ืื• ื‘ื™ื•ื–ืžื•ืช ืฉื™ืคื•ืฅ (refactoring) ื‘ื›ืœ ืชื™ืง ื”ื™ื™ืฉื•ืžื™ื.

ืคืœื˜ืคื•ืจืžื•ืช ืขื™ื‘ื•ื“ ืงื•ื“ ืืจื’ื•ื ื™ ื‘ื”ืฉื•ื•ืื” ื‘ื™ืŸ ืชื—ื•ืžื™ ื ื™ื”ื•ืœ, ืื•ื˜ื•ืžืฆื™ื” ื•ืชื•ื‘ื ื•ืช ืžืขืจื›ืช

ื‘ื—ื™ืจืช ืคืœื˜ืคื•ืจืžืช linting ืขื‘ื•ืจ ืฆื•ื•ืชื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื ื›ืจื•ื›ื” ื‘ื™ื•ืชืจ ืžื”ืฉื•ื•ืืช ืžืขืจื›ื™ ื›ืœืœื™ื ืื• ื›ื™ืกื•ื™ ืฉืคื•ืช. ืžื ื”ืœื™ ื”ืคืœื˜ืคื•ืจืžื•ืช ื—ื™ื™ื‘ื™ื ืœื”ืขืจื™ืš ื›ื™ืฆื“ ื›ืœ ื›ืœื™ ืชื•ืžืš ื‘ืฆื™ื ื•ืจื•ืช ืืกืคืงื”, ื ื™ื”ื•ืœ ื‘ื™ืŸ-ืžืื’ืจื™ื, ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืžืคืชื—ื™ื ื•ื ืจืื•ืช ืชื—ื–ื•ืงื” ืœื˜ื•ื•ื— ืืจื•ืš. ื‘ืชื™ืงื™ ื”ืฉืงืขื•ืช ื’ื“ื•ืœื™ื ืฉื‘ื”ื ืžืื•ืช ืฉื™ืจื•ืชื™ื ืžืชืคืชื—ื™ื ื‘ื• ื–ืžื ื™ืช, ื›ืœื™ linting ืžืฉืคื™ืขื™ื ืขืœ ืžื“ื™ื ื™ื•ืช ืžื™ื–ื•ื’, ืžื ื™ืขืช ืื™ืจื•ืขื™ื ื•ืขืงื‘ื™ื•ืช ืื“ืจื™ื›ืœื™ืช.

ื”ื”ืฉื•ื•ืื” ืฉืœื”ืœืŸ ืžืชืžืงื“ืช ื‘ื™ื›ื•ืœื•ืช ืชืคืขื•ืœื™ื•ืช ืฉืืจื’ื•ื ื™ื ื‘ื“ืจืš ื›ืœืœ ื ื•ืชื ื™ื ืขื“ื™ืคื•ืช ืœื”ืŸ ื‘ืขืช โ€‹โ€‹ื”ืขืจื›ืช ืคืœื˜ืคื•ืจืžื•ืช ื—ื™ื‘ื•ืจ (linting). ืืœื” ื›ื•ืœืœื•ืช ืชืžื™ื›ื” ื‘ืจื™ื‘ื•ื™ ืฉืคื•ืช, ืฉื™ืœื•ื‘ CI/CD, ืชื™ืงื•ื ื™ื ืื•ื˜ื•ืžื˜ื™ื™ื, ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื›ืœืœื™ื, ื™ื™ืฉื•ืจ ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืœืžืคืชื—ื™ื ื•ื“ื™ื•ื•ื— ืžืจื›ื–ื™. ืžื™ืžื“ ื ื•ืกืฃ ื”ื›ืœื•ืœ ื‘ื”ืฉื•ื•ืื” ื–ื• ื”ื•ื ืชื•ื‘ื ื” ื”ืชื ื”ื’ื•ืชื™ืช ื‘ืจืžืช ื”ืžืขืจื›ืช, ื™ื›ื•ืœืช ืฉื”ื•ืคื›ืช ืœื—ืฉื•ื‘ื” ื™ื•ืชืจ ื•ื™ื•ืชืจ ื›ืืฉืจ ื™ืฉ ืœืคืจืฉ ืžืžืฆืื™ ืœื™ืงื•ื™ื™ื ื‘ืžืกื’ืจืช ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ื”ืจื—ื‘ื” ื™ื•ืชืจ ืฉืœ ืชื™ืงื™ ืชื•ื›ื ื” ืžื•ืจื›ื‘ื™ื.

ื”ืฉื•ื•ืืช ืชื›ื•ื ื•ืช ืฉืœ ืคืœื˜ืคื•ืจืžื•ืช ื™ืฆื™ืจืช ืงืฉืจื™ื ืืจื’ื•ื ื™ื•ืช

ืชื›ื•ื ื” / ื™ื›ื•ืœืชืงื•ื“ ืืงืœื™ืMegaLinterื’ื™ื˜ื”ืื‘ ืกื•ืคืจ-ืœื™ื ื˜ืจืกืงื™ืจื” ื›ืœื‘DeepSourceืงื™ื“ื•ืฉื™ืŸSMART TS XL
ืชืžื™ื›ื” ื‘ืจื™ื‘ื•ื™ ืฉืคื•ืชื™ืฉื™ืฉื™ืฉืชืœื•ื™ ื‘ืฉื›ื‘ื•ืช ื—ื™ืฆื•ื ื™ื•ืชื™ืฉื™ืฉื™ืฉ
ืฉื™ืœื•ื‘ ืฆื™ื ื•ืจื•ืช CI/CDื™ืฉื™ืฉื›ืŸ (ืžืงื•ืจื™ ืœ-GitHub)ื™ืฉื™ืฉื™ืฉื™ืฉ
ื”ืขืจื•ืช ื‘ืงืฉืช ืžืฉื™ื›ื”ื™ืฉืžื•ื’ื‘ืœื™ืฉื™ืฉื™ืฉื™ืฉื™ืฉ
ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืฉืœ ืชื•ืกืคื™ืื™ืฉื ืจื—ื‘ืœึฐืžึทืชึตืŸืžืฉืชืžืฉ ื‘ืกืคื•ื’ ื—ื™ืฆื•ื ื™ืœึฐืžึทืชึตืŸื™ืฉื™ืฉ
ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื›ืœืœื™ืื™ืฉื™ืฉืžื•ื’ื‘ืœืชืœื•ื™ ื‘ืœื™ื ื˜ืจื™ืื™ืฉื™ืฉืžืชืงื“ื
ื”ืฆืขื•ืช ืœืชื™ืงื•ืŸ ืื•ื˜ื•ืžื˜ื™ืœืืžื•ื’ื‘ืœืœืืœืื™ืฉืžื•ื’ื‘ืœื™ืฉ
ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืœื ื™ื”ื•ืœ ืžืื’ืจื™ืื™ืฉืœืืœืืœืื™ืฉื™ืฉื™ืฉ
ื ืจืื•ืช ืฉืœ ืžืื’ืจื™ื ืžืจื•ื‘ื™ืื™ืฉืžื•ื’ื‘ืœืžื•ื’ื‘ืœืœืื™ืฉื™ืฉื™ืฉ
ืฉื™ืœื•ื‘ ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืฉืœ DevOpsื™ืฉื—ื–ืงื—ื–ืงื—ื–ืงื™ืฉื™ืฉื™ืฉ
ืชืฉืชื™ืช ื•ืชืฆื•ืจื”ืžื•ื’ื‘ืœื—ื–ืงื—ื–ืงืชืœื•ื™ ื‘ืœื™ื ื˜ืจื™ืืžื•ื’ื‘ืœืžื•ื’ื‘ืœื™ืฉ
ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ื•ืคื’ื™ืขื•ื™ื•ืชืžื•ื’ื‘ืœืžื•ื’ื‘ืœืžื•ื’ื‘ืœืœืื™ืฉืžื•ื’ื‘ืœื™ืฉ
ื ื™ืชื•ื— ื™ื—ืกื™ ืชืœื•ืชืœืืœืืœืืœืืžื•ื’ื‘ืœืžื•ื’ื‘ืœื—ื–ืง
ืชื•ื‘ื ื•ืช ืžืขืจื›ืชื™ื•ืช ื‘ื™ืŸ-ืœืฉื•ื ื™ื•ืชืœืืœืืœืืœืืžื•ื’ื‘ืœืžื•ื’ื‘ืœื—ื–ืง
ื•ื™ื–ื•ืืœื™ื–ืฆื™ื” ืฉืœ ืชืœื•ืช ืื“ืจื™ื›ืœื™ืชืœืืœืืœืืœืืœืืœืื™ืฉ
ื ื™ืชื•ื— ื”ืฉืคืขื” ืฉืœ ืฉื™ื ื•ื™ื™ ืงื•ื“ืœืืœืืœืืœืืžื•ื’ื‘ืœืžื•ื’ื‘ืœื™ืฉ
ืชืขื“ื•ืฃ ืกื™ื›ื•ื ื™ื ื”ืžื‘ื•ืกืก ืขืœ ื ืชื™ื‘ื™ ื‘ื™ืฆื•ืขืœืืœืืœืืœืืœืืœืื™ืฉ
ื ื™ืชื•ื— ืžืขืจื›ืช ื”ืชื ื”ื’ื•ืชื™ืชืœืืœืืœืืœืืœืืœืื™ื›ื•ืœืช ืœื™ื‘ื”

ืคื™ืจื•ืฉ ื”ื”ืฉื•ื•ืื”

ืคืœื˜ืคื•ืจืžื•ืช ืžืกื•ืจืชื™ื•ืช ืฉืœ ื™ืฆื™ืจืช ื˜ืงืกื˜ (linting) ืžืชืžืงื“ื•ืช ื‘ืขื™ืงืจ ื‘ืื›ื™ืคืช ื›ืœืœื™ื ื•ื‘ืื™ืžื•ืช ืกื’ื ื•ืŸ ื‘ืชื•ืš ืžืื’ืจื™ื ื‘ื•ื“ื“ื™ื. ื›ื•ื—ืŸ ื˜ืžื•ืŸ ื‘ื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ืชื—ื‘ื™ืจ, ื—ื•ืกืจ ืขืงื‘ื™ื•ืช ืกื’ื ื•ื ื™ ื•ืกื•ื’ื™ื ืžืกื•ื™ืžื™ื ืฉืœ ื˜ืขื•ื™ื•ืช ืชื›ื ื•ืช ืœืคื ื™ ืฉื”ืงื•ื“ ืžื’ื™ืข ืœืกื‘ื™ื‘ื•ืช ื™ื™ืฆื•ืจ. ืขื‘ื•ืจ ืืจื’ื•ื ื™ื ื”ืžืคืขื™ืœื™ื ืžืื’ืจื™ื ื•ืฉืคื•ืช ืชื›ื ื•ืช ืจื‘ื•ืช, ื›ืœื™ื ื›ืžื• MegaLinter ื•-GitHub Super-Linter ืžืกื™ื™ืขื™ื ื‘ืชืงื™ื ื” ืฉืœ ื‘ื™ืฆื•ืข ืฆื™ื ื•ืจื•ืช ืขื™ื‘ื•ื“ (pipeline) ื•ื‘ืื›ื™ืคื” ืฉืœ ื‘ื“ื™ืงื•ืช ืื™ื›ื•ืช ื‘ืกื™ืกื™ื•ืช.

ืคืœื˜ืคื•ืจืžื•ืช ื›ืžื• Code Climate, DeepSource ื•-Codacy ืžืจื—ื™ื‘ื•ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื–ื• ืขืœ ื™ื“ื™ ื”ืฆื’ืช ื“ื™ื•ื•ื— ืžืจื›ื–ื™, ืžื“ื“ื™ ืชื—ื–ื•ืงื” ื•ืื™ื ื˜ื’ืจืฆื™ื•ืช ืฉืœ ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืœืžืคืชื—ื™ื. ื™ื›ื•ืœื•ืช ืืœื• ืžืกื™ื™ืขื•ืช ืœื”ื ื”ืœืช ื”ื”ื ื“ืกื” ืœื ื˜ืจ ืžื’ืžื•ืช ื‘ืื™ื›ื•ืช ื”ืงื•ื“ ื‘ืžืื’ืจื™ื ืฉื•ื ื™ื ื•ืœืขืงื•ื‘ ืื—ืจ ื”ืฆื˜ื‘ืจื•ืช ื—ื•ื‘ ื˜ื›ื ื™ ืœืื•ืจืš ื–ืžืŸ.

ืขื ื–ืืช, ืœืžื ื•ืขื™ lint ืžื‘ื•ืกืกื™-ื›ืœืœื™ื ื—ื•ืœืงื™ื ืžื’ื‘ืœื” ืžื‘ื ื™ืช. ื”ื ื‘ื“ืจืš ื›ืœืœ ืžื ืชื—ื™ื ืงื‘ืฆื™ ืงื•ื“ ื‘ืื•ืคืŸ ืขืฆืžืื™ ื•ืžืชืžืงื“ื™ื ื‘ื”ืคืจื•ืช ื›ืœืœื™ื ื•ืœื ื‘ื”ืชื ื”ื’ื•ืช ื”ืจื—ื‘ื” ื™ื•ืชืจ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืืคืœื™ืงืฆื™ื”. ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช ืžื•ืจื›ื‘ื•ืช ืฉื‘ื”ืŸ ืฉื™ืจื•ืชื™ื ืžืงื™ื™ืžื™ื ืื™ื ื˜ืจืืงืฆื™ื” ื‘ืืžืฆืขื•ืช ืžืžืฉืงื™ API, ืžืกื“ื™ ื ืชื•ื ื™ื ืžืฉื•ืชืคื™ื ื•ืฆื™ื ื•ืจื•ืช ื”ืขื‘ืจืช ื”ื•ื“ืขื•ืช ืืกื™ื ื›ืจื•ื ื™ื™ื, ื”ื‘ื ืช ื”ืงืฉืจื™ื ื‘ื™ืŸ ืจื›ื™ื‘ื™ื ื”ื•ืคื›ืช ืงืจื™ื˜ื™ืช ืœืคื™ืจื•ืฉ ื”ืžืฉืžืขื•ืช ื”ืืžื™ืชื™ืช ืฉืœ ืžืžืฆืื™ lint.

ื–ื” ืื™ืคื” SMART TS XL ืžืฆื™ื’ ื™ื›ื•ืœืช ืื ืœื™ื˜ื™ืช ื™ื™ื—ื•ื“ื™ืช. ื‘ืžืงื•ื ืœื”ืชืžืงื“ ืืš ื•ืจืง ื‘ื”ืคืจื•ืช ื›ืœืœื™ื, ื”ืคืœื˜ืคื•ืจืžื” ืžื ืชื—ืช ืืช ื”ืงืฉืจื™ื ื”ืžื‘ื ื™ื™ื ื‘ื™ืŸ ืžื•ื“ื•ืœื™ื, ืฉื™ืจื•ืชื™ื ื•ื ืชื™ื‘ื™ ื‘ื™ืฆื•ืข ืขืœ ืคื ื™ ื‘ืกื™ืกื™ ืงื•ื“ ืฉืœืžื™ื. ืขืœ ื™ื“ื™ ื”ืฆื’ืช ืชืœื•ื™ื•ืช ื•ืžืขืงื‘ ืื—ืจ ื”ืชืคืฉื˜ื•ืช ืฉื™ื ื•ื™ื™ ืงื•ื“ ื“ืจืš ืžืขืจื›ื•ืช ืžื—ื•ื‘ืจื•ืช, SMART TS XL ืขื•ื–ืจ ืœืฆื•ื•ืชื™ ื”ื ื“ืกื” ืœื”ื‘ื™ืŸ ืื™ืœื• ื—ืœืงื™ื ืฉืœ ืžืขืจื›ืช ื ื•ืฉืื™ื ืืช ื”ืกื™ื›ื•ืŸ ื”ืชืคืขื•ืœื™ ื”ื’ื“ื•ืœ ื‘ื™ื•ืชืจ.

ื‘ืคื•ืขืœ, ืืจื’ื•ื ื™ื ืจื‘ื™ื ืžืฉืœื‘ื™ื ืžื ื•ืขื™ lint ืžื‘ื•ืกืกื™-ื›ืœืœื™ื ืขื ื›ืœื™ ื ื™ืชื•ื— ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ืžืขืžื™ืงื™ื ื™ื•ืชืจ. ื›ืœื™ Linting ืžื‘ื˜ื™ื—ื™ื ืกื˜ื ื“ืจื˜ื™ื ืขืงื‘ื™ื™ื ืฉืœ ืงื™ื“ื•ื“ ื•ืžื–ื”ื™ื ืคื’ืžื™ื ืžื™ื™ื“ื™ื™ื, ื‘ืขื•ื“ ืฉืคืœื˜ืคื•ืจืžื•ืช ืชื•ื‘ื ื•ืช ืžืขืจื›ืช ื—ื•ืฉืคื•ืช ืชืœื•ื™ื•ืช ื ืกืชืจื•ืช, ื ืชื™ื‘ื™ ื‘ื™ืฆื•ืข ื•ืฉื‘ืจื™ืจื™ื•ืช ืืจื›ื™ื˜ืงื˜ื•ื ื™ืช ืฉืžื ื•ืขื™ lint ืงื•ื ื‘ื ืฆื™ื•ื ืœื™ื™ื ืื™ื ื ื™ื›ื•ืœื™ื ืœื–ื”ื•ืช. ื’ื™ืฉื” ืจื‘-ืฉื›ื‘ืชื™ืช ื–ื• ืžืืคืฉืจืช ืœืฆื•ื•ืชื™ ื”ื ื“ืกื” ืœืขื‘ื•ืจ ืžืื›ื™ืคืช ื›ืœืœื™ื ืคืฉื•ื˜ื” ืœื”ื‘ื ื” ืžืงื™ืคื” ื™ื•ืชืจ ืฉืœ ื”ืชื ื”ื’ื•ืช ืชื•ื›ื ื” ืขืœ ืคื ื™ ืชื™ืงื™ ื™ื™ืฉื•ืžื™ื ื’ื“ื•ืœื™ื.

ื›ืœื™ ืคื™ื™ืชื•ืŸ ืœื™ื ื˜ื™ื ื’ ืขื‘ื•ืจ ืฆื•ื•ืชื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื

ืœืคื™ื™ืชื•ืŸ ืžืขืžื“ ื™ื™ื—ื•ื“ื™ ื‘ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ื”ื ื“ืกื™ื•ืช ืืจื’ื•ื ื™ื•ืช ืžื•ื“ืจื ื™ื•ืช. ื”ื•ื ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ืขื‘ื•ืจ ืฉื™ืจื•ืชื™ backend, ืฆื™ื ื•ืจื•ืช ื”ื ื“ืกืช ื ืชื•ื ื™ื, ืžืกื’ืจื•ืช ืื•ื˜ื•ืžืฆื™ื”, ืคืœื˜ืคื•ืจืžื•ืช ืœืžื™ื“ืช ืžื›ื•ื ื” ื•ื›ืœื™ื ืคื ื™ืžื™ื™ื. ืžื’ื•ื•ืŸ ืžืงืจื™ ืฉื™ืžื•ืฉ ื–ื” ืžื‘ื™ื ืœืžื•ืจื›ื‘ื•ืช ื‘ืื›ื™ืคืช ืกื˜ื ื“ืจื˜ื™ื ืขืงื‘ื™ื™ื ืฉืœ ืงื™ื“ื•ื“ ื‘ื™ืŸ ืžืื’ืจื™ื ื•ืฆื•ื•ืชื™ื. ืงื•ื“ ืฉืžืงื•ืจื• ื‘ืžื—ื‘ืจื•ืช ืžื“ืขื™ ื ืชื•ื ื™ื ืขืฉื•ื™ ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืœื”ืชืคืชื— ืœืžืžืฉืงื™ API ืฉืœ ื™ื™ืฆื•ืจ, ื‘ืขื•ื“ ืฉืกืงืจื™ืคื˜ื™ื ืคื ื™ืžื™ื™ื ืฉืœ ืื•ื˜ื•ืžืฆื™ื” ื™ื›ื•ืœื™ื ืœื”ืคื•ืš ืœืฉื™ืจื•ืชื™ ืชืคืขื•ืœ ืงืจื™ื˜ื™ื™ื ืœืžืฉื™ืžื”. ื›ื›ืœ ืฉื‘ืกื™ืกื™ ื”ืงื•ื“ ืฉืœ ืคื™ื™ืชื•ืŸ ื’ื“ืœื™ื, ืฉืžื™ืจื” ืขืœ ืงืจื™ืื•ืช, ืืžื™ื ื•ืช ื•ืžืฉืžืขืช ืื“ืจื™ื›ืœื™ืช ื”ื•ืคื›ืช ืœืงืฉื” ื™ื•ืชืจ ื•ื™ื•ืชืจ.

ื›ืœื™ ืœื™ื ื˜ื™ื ื’ ืžืžืœืื™ื ืชืคืงื™ื“ ืžื›ืจื™ืข ื‘ื”ืชืžื•ื“ื“ื•ืช ืขื ืืชื’ืจ ื–ื”. ื›ืœื™ ืœื™ื ื˜ื™ื ื’ ืฉืœ ืคื™ื™ืชื•ืŸ ืžื ืชื—ื™ื ืงื•ื“ ืžืงื•ืจ ื›ื“ื™ ืœื–ื”ื•ืช ื—ื•ืกืจ ืขืงื‘ื™ื•ืช ืกื’ื ื•ื ื™, ืคื’ืžื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื, ืžื‘ื ื™ื ืœื ื™ืขื™ืœื™ื ื•ืกื™ื›ื•ื ื™ ืชื—ื–ื•ืงื” ืœืคื ื™ ืคืจื™ืกืช ื”ืงื•ื“. ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช, ื›ืœื™ื ืืœื” ืžืฉื•ืœื‘ื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืฆื™ื ื•ืจื•ืช CI/CD ืฉื ื”ื ืžืชืคืงื“ื™ื ื›ืฉืขืจื™ ืื™ื›ื•ืช ืื•ื˜ื•ืžื˜ื™ื™ื. ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ื“ืคื•ืกื™ื ื‘ืขื™ื™ืชื™ื™ื ืžื•ืงื“ื, ืœื™ื ื˜ื™ื ื’ ืžืกื™ื™ืข ื‘ื”ืคื—ืชืช ืชืงืจื™ื•ืช ืชืคืขื•ืœื™ื•ืช ื•ืชื•ืžืš ื‘ืฆืžื™ื—ื” ื‘ืช ืงื™ื™ืžื ืฉืœ ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืฉืœ ืคื™ื™ืชื•ืŸ.

ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ ืคื™ื™ืชื•ืŸ ืžืฆื™ืขื•ืช ื›ืœื™ ืขื–ืจ ืจื‘ื™ื, ืืš ืจืง ืžืขื˜ื™ื ืžื”ื ื–ื•ื›ื™ื ืœืื™ืžื•ืฅ ื ืจื—ื‘ ื‘ืืจื’ื•ื ื™ ื”ื ื“ืกื” ื’ื“ื•ืœื™ื. ื”ืกืขื™ืฃ ื”ื‘ื ืžื“ื’ื™ืฉ ืืช ืื—ื“ ืžื›ืœื™ ื”ืขื–ืจ ื”ื ืคื•ืฆื™ื ื‘ื™ื•ืชืจ ืฉืœ ืคื™ื™ืชื•ืŸ ื•ื‘ื•ื—ืŸ ื›ืœื™ื ื—ืœื•ืคื™ื™ื ืฉืฆื•ื•ืชื™ื ืขืฉื•ื™ื™ื ืœืฉืงื•ืœ ื‘ื”ืชืื ืœื–ืจื™ืžื•ืช ื”ืขื‘ื•ื“ื” ืฉืœ ื”ืคื™ืชื•ื— ื•ืœื“ืจื™ืฉื•ืช ื”ืžืžืฉืœ ืฉืœื”ื.

ืคืœื™ื ื˜

ืืชืจ ืจืฉืžื™: ืคืœื™ื ื˜

Pylint ื”ื•ื ืื—ื“ ืžื›ืœื™ ื”-linting ื”ื•ื•ืชื™ืงื™ื ื‘ื™ื•ืชืจ ื‘ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ Python ื•ื ืฉืืจ ื‘ื—ื™ืจื” ื ืคื•ืฆื” ืขื‘ื•ืจ ืฆื•ื•ืชื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื ื”ื“ื•ืจืฉื™ื ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืขืžื™ืง ื•ื”ืชืืžื” ืื™ืฉื™ืช ื ืจื—ื‘ืช ืฉืœ ื›ืœืœื™ื. ื”ื›ืœื™, ืฉืคื•ืชื— ืชื—ืช ืจืฉื•ืช ืื™ื›ื•ืช ื”ืงื•ื“ ืฉืœ Python (PyCQA), ืžื ืชื— ืืช ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ Python ืขื‘ื•ืจ ืกื˜ื™ื•ืช ืกื’ื ื•ื ื™ื•ืช, ืฉื’ื™ืื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช, ืจื™ื—ื•ืช ืงื•ื“ ื•ื‘ืขื™ื•ืช ืชื—ื–ื•ืงื”.

ื‘ื ื™ื’ื•ื“ ืœ-linters ืงืœื™ื ื”ืžืชืžืงื“ื™ื ื‘ืขื™ืงืจ ื‘ื›ืœืœื™ ืขื™ืฆื•ื‘, Pylint ืžื‘ืฆืข ื ื™ืชื•ื— ืžื‘ื ื™ ืžืขืžื™ืง ื™ื•ืชืจ ืฉืœ ืงื•ื“ Python. ื”ื•ื ื‘ื•ื ื” ื™ื™ืฆื•ื’ ืžื•ืคืฉื˜ ืฉืœ ื‘ืกื™ืก ื”ืงื•ื“ ื•ืžืขืจื™ืš ืื•ืชื• ืžื•ืœ ืžืขืจืš ื›ืœืœื™ื ื’ื“ื•ืœ ื”ืžื›ืกื” ืžื•ืกื›ืžื•ืช ืœืžืชืŸ ืฉืžื•ืช, ืฉื™ืžื•ืฉ ื‘ืกื•ื’ื™ื, ืืจื’ื•ืŸ ื™ื™ื‘ื•ื, ืื™ื ื“ื™ืงื˜ื•ืจื™ื ืฉืœ ืžื•ืจื›ื‘ื•ืช ื•ื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ื‘ื–ืžืŸ ืจื™ืฆื”. ื’ื™ืฉื” ืื ืœื™ื˜ื™ืช ืจื—ื‘ื” ื™ื•ืชืจ ื–ื• ืžืืคืฉืจืช ืœื›ืœื™ ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ื”ื—ื•ืจื’ื•ืช ืžืขื‘ืจ ืœื”ืคืจื•ืช ืกื’ื ื•ืŸ ื‘ืจืžื” ื”ืฉื˜ื—ื™ืช.

ื™ื›ื•ืœื•ืช ื ื™ืชื•ื—

Pylint ืžื‘ืฆืข ืžืกืคืจ ืงื˜ื’ื•ืจื™ื•ืช ืฉืœ ื‘ื“ื™ืงื•ืช ื”ืจืœื•ื•ื ื˜ื™ื•ืช ืœืคืจื•ื™ืงื˜ื™ื ืืจื’ื•ื ื™ื™ื ืฉืœ Python:

  • ื–ื™ื”ื•ื™ ืฉืœ ื™ื™ื‘ื•ื, ืžืฉืชื ื™ื ื•ืคื•ื ืงืฆื™ื•ืช ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ
  • ื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ื–ืžืŸ ืจื™ืฆื” ืืคืฉืจื™ื•ืช ื•ืžื‘ื ื™ื ื—ืฉื•ื“ื™ื
  • ืื›ื™ืคืช ืžื•ืกื›ืžื•ืช ืœืžืชืŸ ืฉืžื•ืช ื•ืชืงื ื™ ืงื™ื“ื•ื“
  • ื ื™ืชื•ื— ืžื•ืจื›ื‘ื•ืช ืขื‘ื•ืจ ืคื•ื ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช ืื• ืžืงื•ื ื ื•ืช ืขืžื•ืง
  • ื–ื™ื”ื•ื™ ืœื•ื’ื™ืงื” ื›ืคื•ืœื” ื•ื—ืฉืฉื•ืช ืชื—ื–ื•ืงื”

ืžื›ื™ื•ื•ืŸ ืฉื‘ื“ื™ืงื•ืช ืืœื• ื—ื•ืจื’ื•ืช ืžืขื‘ืจ ืœื›ืœืœื™ ืขื™ืฆื•ื‘, ื”ื›ืœื™ ื™ื›ื•ืœ ืœื”ื“ื’ื™ืฉ ื‘ืขื™ื•ืช ืžื‘ื ื™ื•ืช ืฉืขืœื•ืœื•ืช ืœื”ื•ื‘ื™ืœ ืœืคื’ืžื™ื ืื• ืงืฉื™ื™ ืชื—ื–ื•ืงื” ื›ื›ืœ ืฉื‘ืกื™ืกื™ ื”ืงื•ื“ ื’ื“ืœื™ื.

ืฉื™ืœื•ื‘ ื‘ืชื•ืš ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืฉืœ CI ื•ืคื™ืชื•ื—

Pylint ืžืฉืชืœื‘ ื‘ืงืœื•ืช ืขื ืฆื™ื ื•ืจื•ืช ืคื™ืชื•ื— ืžื•ื“ืจื ื™ื™ื ื•ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—. ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืื•ืชื• ื›ื›ืœื™ ืฉื•ืจืช ืคืงื•ื“ื”, ืœื”ื˜ืžื™ืข ืื•ืชื• ื‘-IDEs, ืื• ืœื”ืคืขื™ืœ ืื•ืชื• ื›ื—ืœืง ืžื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืื•ื˜ื•ืžื˜ื™ื•ืช ืฉืœ CI.

ื“ืคื•ืกื™ ืฉื™ืžื•ืฉ ืื•ืคื™ื™ื ื™ื™ื ื‘ืืจื’ื•ื ื™ื ื›ื•ืœืœื™ื:

  • ื”ืคืขืœืช Pylint ื‘ืžื”ืœืš ืื™ืžื•ืช ื‘ืงืฉืช ืžืฉื™ื›ื”
  • ืื›ื™ืคืช ืกืคื™ ืื™ื›ื•ืช ื‘ืชื•ืš ืฆื™ื ื•ืจื•ืช CI
  • ืฉื™ืœื•ื‘ ืชื•ืฆืื•ืช ื ื™ืชื•ื— ื‘ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืฉืœ ืกืงื™ืจืช ืงื•ื“
  • ื ื™ื˜ื•ืจ ืฆื™ื•ื ื™ ืื™ื›ื•ืช ืงื•ื“ ื‘ืžืื’ืจื™ื ืฉื•ื ื™ื

ืืจื’ื•ื ื™ื ืจื‘ื™ื ืžืฉืœื‘ื™ื ื’ื Pylint ืขื ื•ื•ื™ื ืฉืœ repository ื”ืžื•ื ืขื™ื ื‘ื™ืฆื•ืข commit ืฉืœ ืงื•ื“ ืื ื”ื•ื ืžืคืจ ืกืคื™ ืื™ื›ื•ืช ืžื•ื’ื“ืจื™ื.

ื”ืชืืžื” ืื™ืฉื™ืช ื•ื ื™ื”ื•ืœ ื›ืœืœื™ื

ืื—ืช ืžื™ืชืจื•ื ื•ืชื™ื” ืฉืœ Pylint ื˜ืžื•ื ื” ื‘ื™ื›ื•ืœื•ืช ื”ืชืฆื•ืจื” ื”ื ืจื—ื‘ื•ืช ืฉืœื”. ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœื”ืชืื™ื ืืช ื”ืชื ื”ื’ื•ืช ื”ื›ืœืœื™ื ื‘ืืžืฆืขื•ืช ืงื‘ืฆื™ ืชืฆื•ืจื”, ืžื” ืฉืžืืคืฉืจ ืœื”ื ืœื”ืชืื™ื ืืช ื”ื›ืœื™ ืœืชืงื ื™ ื”ืงื™ื“ื•ื“ ื•ืœื“ืจื™ืฉื•ืช ื”ืืจื›ื™ื˜ืงื˜ื•ื ื™ื•ืช ืฉืœื”ื.

ื“ื•ื’ืžืื•ืช ืœืืœืžื ื˜ื™ื ื”ื ื™ืชื ื™ื ืœื”ื’ื“ืจื” ื›ื•ืœืœื•ืช:

  • ืžื•ืกื›ืžื•ืช ืžืชืŸ ืฉืžื•ืช ืœืžืฉืชื ื™ื ื•ืœืžื—ืœืงื•ืช
  • ืกืคื™ ืžื•ืจื›ื‘ื•ืช ืžื•ืชืจื™ื
  • ื™ื™ื‘ื•ื โ€‹โ€‹ืžื“ื™ื ื™ื•ืช ืืจื’ื•ืŸ
  • ื—ืจื™ื’ื™ื ืขื‘ื•ืจ ืžื•ื“ื•ืœื™ื ืžื“ื•ืจ ืงื•ื“ื

ื’ืžื™ืฉื•ืช ื–ื• ื”ื•ืคื›ืช ืืช Pylint ืœืฉื™ืžื•ืฉื™ืช ื‘ืžื™ื•ื—ื“ ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช ื‘ื”ืŸ ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื—ื™ื™ื‘ื™ื ืœื”ืชืื™ื ื”ืŸ ืœืฉื™ื˜ื•ืช ืคื™ืชื•ื— ืžื•ื“ืจื ื™ื•ืช ื•ื”ืŸ ืœืจื›ื™ื‘ื™ ืงื•ื“ ืžื“ื•ืจ ืงื•ื“ื.

ืฉื™ืงื•ืœื™ื ืชืคืขื•ืœื™ื™ื

ืœืžืจื•ืช ืฉ-Pylint ืžืกืคืง ื›ื™ืกื•ื™ ื ื™ืชื•ื— ื ืจื—ื‘, ื™ืกื•ื“ื™ื•ืชื• ืขืœื•ืœื” ืœื”ืฆื™ื‘ ืืชื’ืจื™ื ืชืคืขื•ืœื™ื™ื ื‘ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื. ืžื›ื™ื•ื•ืŸ ืฉื”ื›ืœื™ ืžื‘ืฆืข ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืขืžื™ืง ื™ื•ืชืจ ืžืืฉืจ ื›ืœื™ ืœื™ื ื˜ืจ ืงืœ ืžืฉืงืœ ืจื‘ื™ื, ื–ืžื ื™ ื”ื‘ื™ืฆื•ืข ืขืฉื•ื™ื™ื ืœื”ืชืืจืš ืขื‘ื•ืจ ืžืื’ืจื™ื ื’ื“ื•ืœื™ื. ื‘ื ื•ืกืฃ, ื›ืœืœื™ ื‘ืจื™ืจืช ืžื—ื“ืœ ืžื—ืžื™ืจื™ื ืขืฉื•ื™ื™ื ืœื™ื™ืฆืจ ืžืกืคืจ ืžืฉืžืขื•ืชื™ ืฉืœ ืื–ื”ืจื•ืช ื›ืืฉืจ ื”ื ืžื™ื•ืฉืžื™ื ืขืœ ื‘ืกื™ืกื™ ืงื•ื“ ืžื“ื•ืจ ืงื•ื“ื ืœืœื ื›ื•ื•ื ื•ืŸ ื”ื“ืจื’ืชื™.

ืžืกื™ื‘ื•ืช ืืœื”, ืืจื’ื•ื ื™ื ืจื‘ื™ื ืžืฆื™ื’ื™ื ืืช Pylint ื‘ื”ื“ืจื’ื”, ื”ื—ืœ ืžืกืคื™ ื›ืœืœื™ื ืžืงืœื™ื ื•ื”ื™ื“ื•ืง ื”ืื›ื™ืคื” ืœืื•ืจืš ื–ืžืŸ ื›ื›ืœ ืฉื”ืฆื•ื•ืชื™ื ืžืกืชื’ืœื™ื ืœื›ืœื™.

ื‘ืคื•ืขืœ, Pylint ื”ื•ืคืš ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœื—ืœืง ืžืืกื˜ืจื˜ื’ื™ื™ืช ืื™ื›ื•ืช ืจื—ื‘ื” ื™ื•ืชืจ ื”ืžืฉืœื‘ืช ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช (linting), ื•ื ื™ืชื•ื— ืื“ืจื™ื›ืœื™. ื›ืืฉืจ ื”ื•ื ืžื•ื’ื“ืจ ื‘ืงืคื™ื“ื”, ื”ื•ื ื™ื›ื•ืœ ืœืฉืžืฉ ื‘ืกื™ืก ืืžื™ืŸ ืœืฉืžื™ืจื” ืขืœ ืื™ื›ื•ืช ืงื•ื“ Python ืขืœ ืคื ื™ ืชื™ืงื™ ื”ื ื“ืกื” ื’ื“ื•ืœื™ื.

ื›ืœื™ ืคื™ื™ืชื•ืŸ ื—ืœื•ืคื™ื™ื ืœืœื™ื ื™ื ื’

ื›ืœื™ื™ืชืจื•ื ื•ืช ืขื™ืงืจื™ื™ืืžื’ื‘ืœื•ืช
ืคืœื™ื™ืง8ืงืœ ืžืฉืงืœ ื•ืžื”ื™ืจ; ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ื’ื“ื•ืœื” ืฉืœ ืชื•ืกืคื™ื; ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ืฆื™ื ื•ืจื•ืช CIื ื™ืชื•ื— ืคื—ื•ืช ืžืขืžื™ืง ื‘ื”ืฉื•ื•ืื” ืœืคื™ื™ืœื™ื ื˜
ืจืืฃื‘ื™ืฆื•ืขื™ื ืžื”ื™ืจื™ื ื‘ืžื™ื•ื—ื“; ืžืื—ื“ ื›ืœืœื™ ืกื™ื‘ื™ื ืจื‘ื™ื ื‘ืžื ื•ืข ืื—ื“ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ื—ื“ืฉื” ื™ื•ืชืจ; ืคื—ื•ืช ืื™ื ื˜ื’ืจืฆื™ื•ืช ื‘ื•ื’ืจื•ืช ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช ืžืกื•ื™ืžื•ืช
ืคื™ืœื™ื ื˜ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขืžื•ืง; ื™ื›ื•ืœื•ืช ืชืฆื•ืจื” ื ืจื—ื‘ื•ืชื‘ื™ืฆื•ืข ืื™ื˜ื™ ื™ื•ืชืจ ื‘ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืžืื•ื“
ืคื™ืคืœืงืกื–ื™ื”ื•ื™ ืคืฉื•ื˜ ื•ืžื”ื™ืจ ืฉืœ ืฉื’ื™ืื•ืช ื ืคื•ืฆื•ืช ืฉืœ ืคื™ื™ืชื•ืŸื›ื™ืกื•ื™ ื›ืœืœื™ื ืžื•ื’ื‘ืœ ื•ื”ืชืืžื” ืื™ืฉื™ืช
ืฉืื•ึนื“ึตื“ืœื™ื ื˜ื™ื™ืฉืŸ ืžืžื•ืงื“ ืื‘ื˜ื—ื” ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ Pythonืžืชืžืงื“ ื‘ืขื™ืงืจ ื‘ืื‘ื˜ื—ื” ื•ืœื ื‘ืื™ื›ื•ืช ืงื•ื“ ื›ืœืœื™ืช
ืžึฐื—ึทืคึตึผืฉื‚ืžืฉืœื‘ ืžืกืคืจ ื›ืœื™ ื ื™ืชื•ื— ืฉืœ Python ืœืชื•ืš ืชื”ืœื™ืš ืขื‘ื•ื“ื” ืื—ื“ืžื•ืจื›ื‘ื•ืช ืชืฆื•ืจื” ื‘ืกื‘ื™ื‘ื•ืช ื’ื“ื•ืœื•ืช

ื›ืœื™ื ืืœื” ืžืžื—ื™ืฉื™ื ืืช ืžื’ื•ื•ืŸ ื’ื™ืฉื•ืช ื”-linting ื‘ืชื•ืš ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ ืคื™ื™ืชื•ืŸ. ื—ืœืงืŸ ืžืชืžืงื“ื•ืช ื‘ื‘ื™ืฆื•ืขื™ื ื•ื‘ืคืฉื˜ื•ืช, ื‘ืขื•ื“ ืฉืื—ืจื•ืช ืžื“ื’ื™ืฉื•ืช ื ื™ืชื•ื— ืžืขืžื™ืง ื™ื•ืชืจ ืื• ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ืžื™ื•ื—ื“ื•ืช.

ืกื™ื›ื•ื: ื‘ื—ื™ืจืช ื’ื™ืฉืช ื”-linting ื”ื ื›ื•ื ื” ืฉืœ Python

ื›ืœื™ ืคื™ื™ืชื•ืŸ ืžืกื•ื’ linting ืžืฉืชื ื™ื ื‘ืžื™ื“ื” ืจื‘ื” ื‘ืขื•ืžืง ื”ื ื™ืชื•ื— ืฉืœื”ื, ื‘ืžืืคื™ื™ื ื™ ื”ื‘ื™ืฆื•ืขื™ื ื•ื‘ืžื•ื“ืœื™ ื”ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœื”ื. ื›ืœื™ื ืงืœื™ื ื›ืžื• Flake8 ื•-Ruff ื ื•ืชื ื™ื ืขื“ื™ืคื•ืช ืœืžื”ื™ืจื•ืช ื•ืœืคืฉื˜ื•ืช, ืžื” ืฉื”ื•ืคืš ืื•ืชื ืœืžืชืื™ืžื™ื ื‘ืžื™ื•ื—ื“ ืœืฆื™ื ื•ืจื•ืช CI ืžื”ื™ืจื™ื ื•ืœืžืื’ืจื™ ืงื•ื“ ืงื˜ื ื™ื ื™ื•ืชืจ. ืžื ืชื—ื™ื ืžืงื™ืคื™ื ื™ื•ืชืจ ื›ืžื• Pylint ืžืกืคืงื™ื ืชื•ื‘ื ื•ืช ืขืžื•ืงื•ืช ื™ื•ืชืจ ืœื’ื‘ื™ ืื™ื›ื•ืช ื”ืงื•ื“ ื•ืชื—ื–ื•ืงื”, ืืš ืขืฉื•ื™ื™ื ืœื“ืจื•ืฉ ืชืฆื•ืจื” ื–ื”ื™ืจื” ื›ื“ื™ ืœื”ื™ืžื ืข ืžืื–ื”ืจื•ืช ืžื•ื’ื–ืžื•ืช ื‘ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืื• ืžื“ื•ืจ ืงื•ื“ื.

ืฆื•ื•ืชื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื ืžืฉืœื‘ื™ื ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ืžืกืคืจ ื›ืœื™ื ื›ื“ื™ ืœืื–ืŸ ื‘ื™ืŸ ืคืฉืจื•ืช ืืœื•. ืœื“ื•ื’ืžื”, ืฉืจืช ืžื”ื™ืจ ืขืฉื•ื™ ืœืื›ื•ืฃ ื›ืœืœื™ ืขื™ืฆื•ื‘ ื‘ืžื”ืœืš ื”ืคื™ืชื•ื— ื‘ืขื•ื“ ืฉื›ืœื™ ื ื™ืชื•ื— ืขืžื•ืงื™ื ื™ื•ืชืจ ืคื•ืขืœื™ื ื‘ืฆื™ื ื•ืจื•ืช CI ืžืชื•ื–ืžื ื™ื ืื• ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืžืžืฉืœ. ืืกื˜ืจื˜ื’ื™ื” ืจื‘-ืฉื›ื‘ืชื™ืช ื–ื• ืžืกื™ื™ืขืช ืœืืจื’ื•ื ื™ื ืœืฉืžื•ืจ ืขืœ ืžืฉืžืขืช ืงื™ื“ื•ื“ ืžื‘ืœื™ ืœื”ืื˜ ืืช ืฆื™ื ื•ืจื•ืช ื”ืืกืคืงื”.

ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ืืกื˜ืจื˜ื’ื™ื™ืช ื”-linting ื”ื™ืขื™ืœื” ื‘ื™ื•ืชืจ ืฉืœ Python ืชืœื•ื™ื” ื‘ืงื ื” ืžื™ื“ื” ืฉืœ ื‘ืกื™ืก ื”ืงื•ื“, ื’ื™ื•ื•ืŸ ืฆื•ื•ืชื™ ื”ืคื™ืชื•ื— ื•ืžื’ื‘ืœื•ืช ื”ืชืคืขื•ืœ ืฉืœ ืกื‘ื™ื‘ืช ื”ืืกืคืงื”. ื›ืืฉืจ ืžื™ื•ืฉืžื™ื ื‘ืฆื•ืจื” ืžื•ืฉื›ืœืช, ื›ืœื™ linting ื™ื›ื•ืœื™ื ืœืžืœื ืชืคืงื™ื“ ืžืจื›ื–ื™ ื‘ืชื—ื–ื•ืงืช ืžืขืจื›ื•ืช Python ืืžื™ื ื•ืช ื•ื ื™ืชื ื•ืช ืœืชื—ื–ื•ืงื” ืขืœ ืคื ื™ ืชื™ืงื™ ืชื•ื›ื ื” ืืจื’ื•ื ื™ื™ื ืžื•ืจื›ื‘ื™ื.

ืคืชืจื•ื ื•ืช Java Linting ืœืื›ื™ืคืช ืื™ื›ื•ืช ืงื•ื“ ืืจื’ื•ื ื™

ื’'ืื•ื•ื” ื ื•ืชืจื” ืื—ืช ืžืฉืคื•ืช ื”ืชื›ื ื•ืช ื”ื ืคื•ืฆื•ืช ื‘ื™ื•ืชืจ ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช, ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืžืขืจื›ื•ืช backend, ืคืœื˜ืคื•ืจืžื•ืช ืคื™ื ื ืกื™ื•ืช, ืชืฉืชื™ื•ืช ื˜ืœืงื•ืžื•ื ื™ืงืฆื™ื” ื•ื™ื™ืฉื•ืžื™ื ืืจื’ื•ื ื™ื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ. ืžื›ื™ื•ื•ืŸ ืฉืžืขืจื›ื•ืช ื’'ืื•ื•ื” ืžืชืคืชื—ื•ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืื•ืจืš ื–ืžืŸ ืจื‘ ื•ืžืขืจื‘ื•ืช ืฆื•ื•ืชื™ ืคื™ืชื•ื— ืจื‘ื™ื, ืฉืžื™ืจื” ืขืœ ืกื˜ื ื“ืจื˜ื™ื ืขืงื‘ื™ื™ื ืฉืœ ืงื™ื“ื•ื“ ื”ื•ืคื›ืช ื—ื™ื•ื ื™ืช ืœืชื—ื–ื•ืงื” ืืจื•ื›ืช ื˜ื•ื•ื— ื•ื™ืฆื™ื‘ื•ืช ืชืคืขื•ืœื™ืช.

ื›ืœื™ ื™ืฆื™ืจืช ืงื•ื“ (Linting) ืžืกื™ื™ืขื™ื ืœื”ืชืžื•ื“ื“ ืขื ืืชื’ืจ ื–ื” ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ื”ืคืจื•ืช ืฉืœ ืžื•ืกื›ืžื•ืช ืงื™ื“ื•ื“, ื‘ืขื™ื•ืช ืชื›ื ื•ืŸ ืžื‘ื ื™ ื•ืžืงื•ืจื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื™ื ืœืคื’ืžื™ื. ื›ืืฉืจ ื”ื ืžืฉื•ืœื‘ื™ื ื‘ืฆื™ื ื•ืจื•ืช CI/CD, ื›ืœื™ื ืืœื” ืคื•ืขืœื™ื ื›ืฉืขืจื™ ืื™ื›ื•ืช ืื•ื˜ื•ืžื˜ื™ื™ื ื”ืื•ื›ืคื™ื ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ืœืคื ื™ ืฉืฉื™ื ื•ื™ื™ ืงื•ื“ ืžืžื•ื–ื’ื™ื ืœืžืื’ืจื™ื ืžืฉื•ืชืคื™ื.

ืฆ'ืงืกื˜ื™ื™ืœ

ืืชืจ ืจืฉืžื™: ืฆ'ืงืกื˜ื™ื™ืœ

Checkstyle ื”ื•ื ืื—ื“ ืžื›ืœื™ ื”-linting ื”ื•ื•ืชื™ืงื™ื ื‘ื™ื•ืชืจ ื‘ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ ื’'ืื•ื•ื” ื•ื”ื•ื ืขื“ื™ื™ืŸ ืžืื•ืžืฅ ื‘ืื•ืคืŸ ื ืจื—ื‘ ื‘ืงืจื‘ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ืืจื’ื•ื ื™ื™ื. ื”ื›ืœื™ ืžืชืžืงื“ ื‘ืขื™ืงืจ ื‘ืื›ื™ืคืช ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื•ืขืงื‘ื™ื•ืช ืžื‘ื ื™ืช ื‘ืชื•ืš ื‘ืกื™ืกื™ ืงื•ื“ ืฉืœ ื’'ืื•ื•ื”. ืขืœ ื™ื“ื™ ื ื™ืชื•ื— ืงื•ื“ ืžืงื•ืจ ืžื•ืœ ืžืขืจื›ื™ ื›ืœืœื™ื ื ื™ืชื ื™ื ืœื”ื’ื“ืจื”, Checkstyle ืžื‘ื˜ื™ื— ืฉื”ืงื•ื“ ื“ื‘ืง ื‘ืžื•ืกื›ืžื•ืช ืขื™ืฆื•ื‘, ื›ืœืœื™ ืžืชืŸ ืฉืžื•ืช ื•ื”ื ื—ื™ื•ืช ืื“ืจื™ื›ืœื™ื•ืช ืžื•ื’ื“ืจื•ืช.

ื‘ื ื™ื’ื•ื“ ืœื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ื™ื ืจื‘ื™ื ืœืžื˜ืจื•ืช ื›ืœืœื™ื•ืช ื”ืžื ืกื™ื ืœื–ื”ื•ืช ืคื’ืžื™ื ื‘ื–ืžืŸ ืจื™ืฆื”, Checkstyle ืžืชืžืงื“ ื‘ื”ื™ื‘ื˜ื™ื ืฉืœ ืชื—ื–ื•ืงื” ื•ืงืจื™ืื•ืช ืฉืœ ืื™ื›ื•ืช ื”ืงื•ื“. ื”ืชืžืงื“ื•ืช ื–ื• ื”ื•ืคื›ืช ืื•ืชื• ืœื™ืขื™ืœ ื‘ืžื™ื•ื—ื“ ื‘ืืจื’ื•ื ื™ ื”ื ื“ืกื” ื’ื“ื•ืœื™ื ืฉื‘ื”ื ื”ืงื•ื“ ื—ื™ื™ื‘ ืœื”ื™ืฉืืจ ืžื•ื‘ืŸ ื•ืขืงื‘ื™ ื‘ื™ืŸ ืฆื•ื•ืชื™ื ื•ืœืื•ืจืš ืžื—ื–ื•ืจื™ ืชื—ื–ื•ืงื” ืืจื•ื›ื™ื.

ื”ื™ืงืฃ ื ื™ืชื•ื— ื”ืงื•ื“

Checkstyle ืžืขืจื™ืš ืงื‘ืฆื™ ืžืงื•ืจ ืฉืœ Java ืžื•ืœ ืงื‘ื•ืฆื” ืฉืœ ื›ืœืœื™ื ืžื•ื’ื“ืจื™ื ืžืจืืฉ ืื• ืžื•ืชืืžื™ื ืื™ืฉื™ืช ื”ืžื’ื“ื™ืจื™ื ื ื•ื”ืœื™ ืงื™ื“ื•ื“ ืžืงื•ื‘ืœื™ื.

ืงื˜ื’ื•ืจื™ื•ืช ื›ืœืœื™ื ืื•ืคื™ื™ื ื™ื•ืช ื›ื•ืœืœื•ืช:

  • ืžื•ืกื›ืžื•ืช ืžืชืŸ ืฉืžื•ืช ืœืžื—ืœืงื•ืช, ืžืชื•ื“ื•ืช ื•ืžืฉืชื ื™ื
  • ืขื™ืฆื•ื‘ ืงื•ื“ ื•ื›ืœืœื™ ื”ื–ื—ื”
  • ื”ื–ืžื ืช ื™ื™ื‘ื•ื โ€‹โ€‹ื•ืื™ืžื•ืช ืžื‘ื ื” ื—ื‘ื™ืœื”
  • ืื›ื™ืคืช ืชืงื ื™ ืชื™ืขื•ื“
  • ื–ื™ื”ื•ื™ ื‘ืœื•ืงื™ ืงื•ื“ ืžื•ืจื›ื‘ื™ื ืžื“ื™ ืื• ื‘ืขืœื™ ืžื‘ื ื” ื’ืจื•ืข

ืžื›ื™ื•ื•ืŸ ืฉื ื™ืชืŸ ืœื”ืชืื™ื ืื™ืฉื™ืช ืืช ื”ื›ืœืœื™ื ื”ืœืœื• ื‘ืื•ืคืŸ ื ืจื—ื‘, ืืจื’ื•ื ื™ื ื™ื›ื•ืœื™ื ืœื”ืชืื™ื ืืช Checkstyle ืœืชืงื ื™ ืคื™ืชื•ื— ืคื ื™ืžื™ื™ื ืื• ืœื”ื ื—ื™ื•ืช ื”ืชืขืฉื™ื™ื” ื›ื’ื•ืŸ ืžื“ืจื™ืš ื”ืกื’ื ื•ืŸ ืฉืœ ื’ื•ื’ืœ ื’'ืื•ื•ื”.

ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœ ื–ืจื™ืžืช ืขื‘ื•ื“ื”

Checkstyle ืžืฉืชืœื‘ ื‘ืงืœื•ืช ืขื ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืžื•ื“ืจื ื™ื•ืช ืฉืœ ืคื™ืชื•ื— ื•ืžืขืจื›ื•ืช ื‘ื ื™ื™ื”. ื ื™ืชืŸ ืœื”ืคืขื™ืœ ืืช ื”ื›ืœื™ ื“ืจืš ืžืžืฉืงื™ ืฉื•ืจืช ืคืงื•ื“ื”, ืชื•ืกืคื™ ื‘ื ื™ื™ื” ืื• ืื™ื ื˜ื’ืจืฆื™ื•ืช IDE.

ื“ืคื•ืกื™ ืคืจื™ืกื” ื ืคื•ืฆื™ื ื‘ืืจื’ื•ื ื™ื ื›ื•ืœืœื™ื:

  • ื”ืจืฆืช Checkstyle ื‘ืžื”ืœืš ืชื”ืœื™ื›ื™ ื‘ื ื™ื™ื” ืฉืœ Maven ืื• Gradle
  • ืฉื™ืœื•ื‘ ื‘ื“ื™ืงื•ืช ืกื™ื‘ื™ื ื‘ืฉืœื‘ื™ ืฆื™ื ื•ืจ CI
  • ืžืชืŸ ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื‘ืชื•ืš ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—
  • ืื›ื™ืคืช ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื‘ืžื”ืœืš ืื™ืžื•ืช ื‘ืงืฉื•ืช ืžืฉื™ื›ื”

ื’ืžื™ืฉื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ื–ื• ืžืืคืฉืจืช ืœืฆื•ื•ืชื™ ื”ื ื“ืกืช ื”ืคืœื˜ืคื•ืจืžื” ืœื”ื‘ื˜ื™ื— ืื›ื™ืคื” ืขืงื‘ื™ืช ืฉืœ ื‘ืขื™ื•ืช ื‘ืœื™ ืœืฉื‘ืฉ ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืงื™ื™ืžื•ืช ืฉืœ ืžืคืชื—ื™ื.

ื’ืžื™ืฉื•ืช ืชืฆื•ืจื”

ืื—ืช ื”ืชื›ื•ื ื•ืช ื”ื—ืฉื•ื‘ื•ืช ื‘ื™ื•ืชืจ ืฉืœ Checkstyle ื”ื™ื ืžื ื•ืข ื”ื›ืœืœื™ื ื”ื ื™ืชืŸ ืœื”ื’ื“ืจื”. ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ืงื‘ื•ืฆื•ืช ื›ืœืœื™ื ื‘ืืžืฆืขื•ืช ืงื‘ืฆื™ ืชืฆื•ืจื” ืฉืœ XML ื”ืงื•ื‘ืขื™ื ื›ื™ืฆื“ ื”ื›ืœื™ ืžืขืจื™ืš ืืช ืงื•ื“ ื”ืžืงื•ืจ.

ื™ื›ื•ืœื•ืช ื”ืชืฆื•ืจื” ื›ื•ืœืœื•ืช:

  • ื”ืคืขืœื” ืื• ื”ืฉื‘ืชื” ืฉืœ ืงื˜ื’ื•ืจื™ื•ืช ื›ืœืœื™ื ืกืคืฆื™ืคื™ื•ืช
  • ื”ืชืืžืช ืจืžื•ืช ื—ื•ืžืจื” ืœื”ืคืจื•ืช ื›ืœืœื™ื
  • ื”ื’ื“ืจืช ืžื•ืกื›ืžื•ืช ืžืชืŸ ืฉืžื•ืช ืžื•ืชืืžื•ืช ืื™ืฉื™ืช
  • ื™ืฆื™ืจืช ืžื“ื™ื ื™ื•ืช ืงื™ื“ื•ื“ ืกืคืฆื™ืคื™ืช ืœืืจื’ื•ืŸ

ืืคืฉืจื•ื™ื•ืช ืชืฆื•ืจื” ืืœื• ืžืืคืฉืจื•ืช ืœืืจื’ื•ื ื™ื ืœื”ื›ื ื™ืก ื‘ื”ื“ืจื’ื” ื‘ืขื™ื•ืช ื’ื™ืฉื” (linting) ืœืžืขืจื›ื•ืช ืžื“ื•ืจ ืงื•ื“ื ืžื‘ืœื™ ืœื”ืขืžื™ืก ืขืœ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื‘ืื–ื”ืจื•ืช ืžื•ื’ื–ืžื•ืช.

ืฉื™ืงื•ืœื™ื ืชืคืขื•ืœื™ื™ื

ื‘ืขื•ื“ ืฉ-Checkstyle ืžืกืคืง ืื›ื™ืคื” ืืžื™ื ื” ืฉืœ ืžื•ืกื›ืžื•ืช ืงื™ื“ื•ื“, ื”ื•ื ืื™ื ื• ืžื™ื•ืขื“ ืœื‘ืฆืข ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืขืžื™ืง ืฉืœ ื”ืชื ื”ื’ื•ืช ื”ืชื•ื›ื ื™ืช. ื”ื›ืœื™ ืžืชืžืงื“ ื‘ื”ื™ื‘ื˜ื™ื ืกื’ื ื•ื ื™ื™ื ื•ืžื‘ื ื™ื™ื ืฉืœ ืงื•ื“ ื•ืœื ื‘ืฉื’ื™ืื•ืช ืœื•ื’ื™ื•ืช ื‘ื–ืžืŸ ืจื™ืฆื”. ื›ืชื•ืฆืื” ืžื›ืš, ืืจื’ื•ื ื™ื ืจื‘ื™ื ืžืฉืœื‘ื™ื ืืช Checkstyle ืขื ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืื—ืจื™ื ื”ืžืขืจื™ื›ื™ื ื‘ื™ืฆื•ืขื™ื, ืื‘ื˜ื—ื” ืื• ื—ืฉืฉื•ืช ืืžื™ื ื•ืช.

ื‘ืคื•ืขืœ, Checkstyle ืžืชืคืงื“ ื‘ืฆื•ืจื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ื›ื‘ืกื™ืก ืœืชื—ื•ื ืงื™ื“ื•ื“ ื‘ืžืื’ืจื™ Java. ื›ืืฉืจ ื”ื•ื ื ืคืจืก ืœืฆื“ ื›ืœื™ ื ื™ืชื•ื— ืžืฉืœื™ืžื™ื, ื”ื•ื ืžืกื™ื™ืข ืœืฉืžื•ืจ ืขืœ ืงืจื™ืื•ืช, ืขืงื‘ื™ื•ืช ื•ืชื—ื–ื•ืงื” ื‘ืชื•ืš ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ื’ื“ื•ืœื•ืช ืฉืœ ื”ื ื“ืกืช Java.

ื›ืœื™ ื—ื™ื‘ื•ืจ ื—ืœื•ืคื™ื™ื ืœื’'ืื•ื•ื”

ื›ืœื™ื™ืชืจื•ื ื•ืช ืขื™ืงืจื™ื™ืืžื’ื‘ืœื•ืช
PMDืžื–ื”ื” ืจื™ื—ื•ืช ืงื•ื“ ื•ื‘ืื’ื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื; ืกืคืจื™ื™ืช ื›ืœืœื™ื ื—ื–ืงื”ืžื•ืจื›ื‘ื•ืช ืชืฆื•ืจื” ื‘ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื
SpotBugsืžืชืžืงื“ ื‘ื–ื™ื”ื•ื™ ืคื’ืžื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื ื‘ื–ืžืŸ ืจื™ืฆื”ืคื—ื•ืช ื“ื’ืฉ ืขืœ ืื›ื™ืคืช ืกื’ื ื•ืŸ ืงื™ื“ื•ื“
ืฉื’ื™ืื” ื ื•ื˜ื”ืžื–ื”ื” ื˜ืขื•ื™ื•ืช ืชื›ื ื•ืช ืขื“ื™ื ื•ืช ื‘ืžื”ืœืš ืงื•ืžืคื™ืœืฆื™ื”ื“ื•ืจืฉ ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืกื‘ื™ื‘ื•ืช ื‘ื ื™ื™ื” ืกืคืฆื™ืคื™ื•ืช
ืกื•ื ืืจืœื™ื ื˜ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื‘ืชื•ืš IDEsืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืกื™ื‘ื™ื ืขืฆืžืื™ืช ืžื•ื’ื‘ืœืช
Semgrepืžื ื•ืข ื›ืœืœื™ื ื’ืžื™ืฉ ื”ืžืกื•ื’ืœ ืœื–ื”ื•ืช ื“ืคื•ืกื™ื ืžื•ืจื›ื‘ื™ืื“ื•ืจืฉ ืžื•ืžื—ื™ื•ืช ื‘ืคื™ืชื•ื— ื›ืœืœื™ื

ื ืงื•ื“ื•ืช ืžืคืชื— ืœืืกื˜ืจื˜ื’ื™ื•ืช ืœื™ื˜ื•ืฉ ื‘ื’'ืื•ื•ื”

ื›ืœื™ ื™ืฆื™ืจืช ืงืฉืจื™ื (linting) ื‘ื’'ืื•ื•ื” ืžืฉืชื ื™ื ื‘ืžื™ืงื•ื“ ื•ื‘ืขื•ืžืง ื”ื ื™ืชื•ื— ืฉืœื”ื. ื›ืœื™ื ื›ืžื• Checkstyle ืžืชืžืงื“ื™ื ื‘ืื›ื™ืคืช ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื•ื‘ื”ื‘ื˜ื—ืช ืงืจื™ืื•ืช, ืžื” ืฉื”ื•ืคืš ืื•ืชื ื‘ืขืœื™ ืขืจืš ืœืฉืžื™ืจื” ืขืœ ืขืงื‘ื™ื•ืช ื‘ื™ืŸ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื’ื“ื•ืœื™ื. ื›ืœื™ื ืื—ืจื™ื ืžื“ื’ื™ืฉื™ื ื–ื™ื”ื•ื™ ืคื’ืžื™ื ืื• ืื›ื™ืคืช ื›ืœืœื™ื ืื“ืจื™ื›ืœื™ื™ื, ืืฉืจ ืขืฉื•ื™ื™ื ืœื”ืฉืœื™ื ื’ื™ืฉื•ืช ื™ืฆื™ืจืช ืงืฉืจื™ื ื”ืžืชืžืงื“ื•ืช ื‘ืกื’ื ื•ืŸ.

ืขื‘ื•ืจ ืืจื’ื•ื ื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื, ื”ืืกื˜ืจื˜ื’ื™ื” ื”ื™ืขื™ืœื” ื‘ื™ื•ืชืจ ื›ืจื•ื›ื” ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืฉื™ืœื•ื‘ ืฉืœ ืžืกืคืจ ื›ืœื™ ื ื™ืชื•ื—. ืœื™ื ื˜ืจื™ื ืžื•ื›ื•ื•ื ื™ ืกื’ื ื•ืŸ ืฉื•ืžืจื™ื ืขืœ ืขืงื‘ื™ื•ืช ื‘ื™ืŸ ืžืื’ืจื™ื ืฉื•ื ื™ื, ื‘ืขื•ื“ ืฉื›ืœื™ ื ื™ืชื•ื— ืขืžื•ืงื™ื ื™ื•ืชืจ ืžื–ื”ื™ื ืคื’ืžื™ื, ื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื ืื• ื”ืคืจื•ืช ืื“ืจื™ื›ืœื™ื•ืช. ื’ื™ืฉื” ืจื‘-ืฉื›ื‘ืชื™ืช ื–ื• ืžืกื™ื™ืขืช ืœื”ื‘ื˜ื™ื— ืฉื‘ืกื™ืกื™ ืงื•ื“ ืฉืœ Java ื™ื™ืฉืืจื• ืงืจื™ืื™ื ื•ืืžื™ื ื™ื ื›ืื—ื“ ื›ื›ืœ ืฉื”ืžืขืจื›ื•ืช ืžืชืคืชื—ื•ืช ืขื ื”ื–ืžืŸ.

ื›ืœื™ ื—ื™ื‘ื•ืจ ื‘-C# ื•-.NET ืœื ื™ื”ื•ืœ ืงื•ื“ ืืจื’ื•ื ื™

C# ื•ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ื”ืจื—ื‘ื” ื™ื•ืชืจ ืฉืœ .NET ื ืžืฆืื•ืช ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ืคื™ืชื•ื— ืชื•ื›ื ื” ืืจื’ื•ื ื™ืช, ื‘ืžื™ื•ื—ื“ ื‘ืžื’ื–ืจื™ื ื›ืžื• ืคื™ื ื ืกื™ื, ืฉื™ืจื•ืชื™ ื‘ืจื™ืื•ืช ื•ืคืœื˜ืคื•ืจืžื•ืช SaaS ืืจื’ื•ื ื™ื•ืช. ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืฉืœ .NET ืžืฉืชืจืขื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืขืœ ืคื ื™ ืฉื™ืจื•ืชื™ื, ืกืคืจื™ื•ืช ื•ืžื•ื“ื•ืœื™ื ืžื“ื•ืจ ืงื•ื“ื ืจื‘ื™ื ื”ืžืชืคืชื—ื™ื ืœืื•ืจืš ืชืงื•ืคื•ืช ืืจื•ื›ื•ืช. ืฉืžื™ืจื” ืขืœ ืกื˜ื ื“ืจื˜ื™ื ืขืงื‘ื™ื™ื ืฉืœ ืงื™ื“ื•ื“ ื‘ืžืขืจื›ื•ืช ืืœื• ื”ื•ืคื›ืช ื—ื™ื•ื ื™ืช ืœื”ื‘ื˜ื—ืช ืชื—ื–ื•ืงื” ื•ืœื”ืคื—ืชืช ืกื™ื›ื•ื ื™ื ืชืคืขื•ืœื™ื™ื.

ื›ืœื™ Linting ื‘ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ .NET ืžืกื™ื™ืขื™ื ื‘ืื›ื™ืคืช ืžื•ืกื›ืžื•ืช ืกื’ื ื•ืŸ, ื‘ื–ื™ื”ื•ื™ ื˜ืขื•ื™ื•ืช ืชื›ื ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ื•ื‘ื“ื’ืฉ ืขืœ ื—ืฉืฉื•ืช ื‘ื ื•ื’ืข ืœืชื—ื–ื•ืงื” ืœืคื ื™ ืžื™ื–ื•ื’ ื”ืงื•ื“ ืœืžืื’ืจื™ื ืžืฉื•ืชืคื™ื. ื›ืืฉืจ ื”ื ืžืฉื•ืœื‘ื™ื ื‘ืฆื™ื ื•ืจื•ืช ื‘ื ื™ื™ื” ื•ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—, ื›ืœื™ื ืืœื” ืžืกืคืงื™ื ืžืฉื•ื‘ ืื•ื˜ื•ืžื˜ื™ ื”ืชื•ืžืš ื‘ืฉื™ื˜ื•ืช ื”ื ื“ืกื™ื•ืช ืขืงื‘ื™ื•ืช ื‘ื™ืŸ ืฆื•ื•ืชื™ื.

ืžื ืชื—ื™ StyleCop

ืืชืจ ืจืฉืžื™: ืžื ืชื—ื™ StyleCop

StyleCop Analyzers ื”ื•ื ืื—ื“ ืžืคืชืจื•ื ื•ืช ื”-linting ื”ื ืคื•ืฆื™ื ื‘ื™ื•ืชืจ ื‘ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ C#. ื”ื›ืœื™, ืฉื ื‘ื ื” ืขืœ ื’ื‘ื™ ืคืœื˜ืคื•ืจืžืช ื”ืžื”ื“ืจ ืฉืœ Roslyn, ืžื‘ืฆืข ื ื™ืชื•ื— ืกื˜ื˜ื™ ืฉืœ ืงื•ื“ C# ื•ืžืขืจื™ืš ืื•ืชื• ืžื•ืœ ืกื˜ ืžืงื™ืฃ ืฉืœ ื›ืœืœื™ ืกื’ื ื•ืŸ ื•ืขื™ืฆื•ื‘. ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืžืฉืชืœื‘ ื™ืฉื™ืจื•ืช ืขื ืชืฉืชื™ืช ื”ืžื”ื“ืจ ืฉืœ .NET, StyleCop ื™ื›ื•ืœ ืœื ืชื— ืงื•ื“ ื‘ืžื”ืœืš ื”ืงื•ืžืคื™ืœืฆื™ื” ื•ืœืกืคืง ืžืฉื•ื‘ ืžื™ื™ื“ื™ ื‘ืชื•ืš ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ื•ืฆื™ื ื•ืจื•ืช CI.

ื”ืžื•ืงื“ ื”ืขื™ืงืจื™ ืฉืœ ื”ื›ืœื™ ื”ื•ื ืื›ื™ืคืช ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื•ืฉื™ืคื•ืจ ืงืจื™ืื•ืช ื”ืงื•ื“. ืขื‘ื•ืจ ืฆื•ื•ืชื™ ื”ื ื“ืกื” ื’ื“ื•ืœื™ื, ืขืงื‘ื™ื•ืช ื–ื• ื”ื•ืคื›ืช ื—ืฉื•ื‘ื” ื‘ืžื™ื•ื—ื“ ื›ื›ืœ ืฉื”ืคืจื•ื™ืงื˜ื™ื ื’ื“ืœื™ื ื•ื›ื•ืœืœื™ื ืชื•ืจืžื™ื ืžืžืกืคืจ ืžื—ืœืงื•ืช ืื• ืฉื•ืชืคื™ื ื—ื™ืฆื•ื ื™ื™ื.

ืชื—ื•ืžื™ ื ื™ืชื•ื— ืžืจื›ื–ื™ื™ื

StyleCop Analyzers ืžืขืจื™ืš ืืช ืงื•ื“ ื”ืžืงื•ืจ ืœืคื™ ืžื’ื•ื•ืŸ ืงื˜ื’ื•ืจื™ื•ืช ืฉืœ ื›ืœืœื™ื ื”ืžื’ื“ื™ืจื•ืช ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ืžื•ืžืœืฆื•ืช ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ื‘-C#.

ืงื‘ื•ืฆื•ืช ื›ืœืœื™ื ื ืคื•ืฆื•ืช ื›ื•ืœืœื•ืช:

  • ืžื•ืกื›ืžื•ืช ืžืชืŸ ืฉืžื•ืช ืœืžื—ืœืงื•ืช, ืžืชื•ื“ื•ืช ื•ืžืฉืชื ื™ื
  • ื›ืœืœื™ ืืจื’ื•ืŸ ืงื‘ืฆื™ื ื•ืžื‘ื ื” ืงื•ื“
  • ื“ืจื™ืฉื•ืช ืชื™ืขื•ื“ ืขื‘ื•ืจ ืžืžืฉืงื™ API ืฆื™ื‘ื•ืจื™ื™ื
  • ืžื•ืกื›ืžื•ืช ืขื™ืฆื•ื‘ ื•ืจื•ื•ื—ื™ื ืœื‘ื ื™ื
  • ืกื“ืจ ืฉื™ืžื•ืฉ ื‘ื”ื ื—ื™ื•ืช ื•ื—ื‘ืจื™ ืžื—ืœืงื”

ื›ืœืœื™ื ืืœื” ืขื•ื–ืจื™ื ืœื”ื‘ื˜ื™ื— ืฉืงื•ื“ ืฉื ื›ืชื‘ ืขืœ ื™ื“ื™ ืฆื•ื•ืชื™ื ืฉื•ื ื™ื ื™ืขืžื•ื“ ื‘ืกื’ื ื•ืŸ ืขืงื‘ื™, ืžื” ืฉืžืคื—ื™ืช ื—ื™ื›ื•ื›ื™ื ื‘ืžื”ืœืš ืกืงื™ืจื•ืช ืงื•ื“ ื•ืžืคืฉื˜ ืชื—ื–ื•ืงื” ืืจื•ื›ืช ื˜ื•ื•ื—.

ืฉื™ืœื•ื‘ ื‘ืชื•ืš ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืคื™ืชื•ื—

ืžื›ื™ื•ื•ืŸ ืฉ-StyleCop ื‘ื ื•ื™ ืขืœ ืคืœื˜ืคื•ืจืžืช ื”ืžื”ื“ืจ ืฉืœ Roslyn, ื”ื•ื ืžืฉืชืœื‘ ื‘ืฆื•ืจื” ื—ืœืงื” ืขื ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืžื•ื“ืจื ื™ื•ืช ืฉืœ ืคื™ืชื•ื— .NET.

ื“ืคื•ืกื™ ืคืจื™ืกื” ืื•ืคื™ื™ื ื™ื™ื ืœืืจื’ื•ื ื™ื ื›ื•ืœืœื™ื:

  • ื”ืจืฆืช StyleCop ื‘ืžื”ืœืš ืชื”ืœื™ื›ื™ ื‘ื ื™ื™ื” ื‘ืชื•ืš ืคืจื•ื™ืงื˜ื™ื ืฉืœ .NET
  • ืฉื™ืœื•ื‘ ื‘ื“ื™ืงื•ืช ืกื™ื‘ื™ื ื‘ืฆื™ื ื•ืจื•ืช CI/CD
  • ื”ืฆื’ืช ืชื•ืฆืื•ืช ื ื™ืชื•ื— ื™ืฉื™ืจื•ืช ื‘-Visual Studio ื•ื‘-IDEs ืื—ืจื™ื
  • ืื›ื™ืคืช ืžื“ื™ื ื™ื•ืช ืกื’ื ื•ืŸ ื‘ืืžืฆืขื•ืช ืื™ืžื•ืช ื‘ืงืฉื•ืช ืžืฉื™ื›ื”

ืื™ื ื˜ื’ืจืฆื™ื” ื”ื“ื•ืงื” ื–ื• ืžืืคืฉืจืช ืœืžืคืชื—ื™ื ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ืžื•ืงื“ื ื‘ืžื—ื–ื•ืจ ื”ืคื™ืชื•ื— ื‘ืžืงื•ื ืœื’ืœื•ืช ืื•ืชืŸ ืžืื•ื—ืจ ื™ื•ืชืจ ื‘ืžื”ืœืš ื‘ื™ืฆื•ืข ื”ืฆื™ื ื•ืจ.

ื”ื’ื“ืจืช ื›ืœืœื™ื ื•ื”ืชืืžื” ืื™ืฉื™ืช

ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืืช ื›ืœืœื™ StyleCop ื“ืจืš ืงื‘ืฆื™ ืชืฆื•ืจืช ื”ืคืจื•ื™ืงื˜, ืžื” ืฉืžืืคืฉืจ ืœืฆื•ื•ืชื™ื ืœื”ืชืื™ื ืืช ื”ื›ืœื™ ืœืชืงื ื™ ื”ืงื™ื“ื•ื“ ืฉืœื”ื.

ื™ื›ื•ืœื•ืช ืชืฆื•ืจื” ื›ื•ืœืœื•ืช ื‘ื“ืจืš ื›ืœืœ:

  • ื”ืคืขืœื” ืื• ื”ืฉื‘ืชื” ืฉืœ ื›ืœืœื™ื ืกืคืฆื™ืคื™ื™ื
  • ื”ืชืืžืช ืจืžื•ืช ื—ื•ืžืจื” ืฉืœ ื”ืคืจื•ืช
  • ื”ื’ื“ืจืช ืžื•ืกื›ืžื•ืช ืžืชืŸ ืฉืžื•ืช ืžื•ืชืืžื•ืช ืื™ืฉื™ืช
  • ืžืชืŸ ืืคืฉืจื•ืช ืœื—ืจื™ื’ื™ื ืขื‘ื•ืจ ืจื›ื™ื‘ื™ื ืžื“ื•ืจ ืงื•ื“ื

ืืคืฉืจื•ื™ื•ืช ืืœื• ืžืืคืฉืจื•ืช ืœืืจื’ื•ื ื™ื ืœื”ื›ื ื™ืก ืœ-linting ื‘ื”ื“ืจื’ื”, ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ืขื•ื‘ื“ื™ื ืขื ื‘ืกื™ืกื™ ืงื•ื“ ืžื“ื•ืจ ืงื•ื“ื ืฉืขืฉื•ื™ื™ื ื‘ืชื—ื™ืœื” ืœื ืœืขืžื•ื“ ื‘ื”ื ื—ื™ื•ืช ืกื’ื ื•ืŸ ืžื—ืžื™ืจื•ืช.

ืฉื™ืงื•ืœื™ื ืชืคืขื•ืœื™ื™ื

ื‘ืขื•ื“ ืฉ-StyleCop ื™ืขื™ืœ ืžืื•ื“ ืœืื›ื™ืคืช ืขืงื‘ื™ื•ืช ื‘ืกื’ื ื•ืŸ ืงื•ื“, ื”ื•ื ืื™ื ื• ืžื ืกื” ืœื–ื”ื•ืช ืืช ื›ืœ ื”ืงื˜ื’ื•ืจื™ื•ืช ืฉืœ ืคื’ืžื™ ื–ืžืŸ ืจื™ืฆื” ืื• ื‘ืขื™ื•ืช ืืจื›ื™ื˜ืงื˜ื•ื ื™ื•ืช. ื›ืชื•ืฆืื” ืžื›ืš, ืฆื•ื•ืชื™ื ืืจื’ื•ื ื™ื™ื ืจื‘ื™ื ืžืฉืœื‘ื™ื ืื•ืชื• ืขื ื›ืœื™ ื ื™ืชื•ื— ื ื•ืกืคื™ื ื›ื’ื•ืŸ ืกื•ืจืงื™ ืื‘ื˜ื—ื” ืื• ืคืœื˜ืคื•ืจืžื•ืช ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขืžื•ืงื•ืช ื™ื•ืชืจ.

ืœืžืจื•ืช ืžื’ื‘ืœื” ื–ื•, StyleCop ื ื•ืชืจ ื‘ืกื™ืก ืืžื™ืŸ ืœืฉืžื™ืจื” ืขืœ ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ืขืงื‘ื™ื•ืช ื‘ืžืื’ืจื™ C# ื’ื“ื•ืœื™ื.

ื›ืœื™ ืœื™ื˜ื•ืฉ ื—ืœื•ืคื™ื™ื ื‘-C#

ื›ืœื™ื™ืชืจื•ื ื•ืช ืขื™ืงืจื™ื™ืืžื’ื‘ืœื•ืช
ืžื ืชื—ื™ ืจื•ื–ืœื™ืŸืื™ื ื˜ื’ืจืฆื™ื” ืขืžื•ืงื” ืขื ืžื”ื“ืจ .NET; ื™ื›ื•ืœื•ืช ื ื™ืชื•ื— ืขื•ืฆืžืชื™ื•ืชื™ื™ืชื›ืŸ ืฉืชืฆื•ืจื” ืชื“ืจื•ืฉ ืžื•ืžื—ื™ื•ืช
ืงื•ื“ ื‘ื“ื™ืงื” ืžื—ื“ืฉื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืชืงื“ื ื•ืชื›ื•ื ื•ืช ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืœืžืคืชื—ื™ืื“ืจื™ืฉื•ืช ืจื™ืฉื•ื™ ืžืกื—ืจื™
SonarLint ืขื‘ื•ืจ .NETื–ื™ื”ื•ื™ ื‘ืขื™ื•ืช ื‘ื–ืžืŸ ืืžืช ื‘ืชื•ืš ืกื‘ื™ื‘ื•ืช IDEื“ื•ืจืฉ ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืจื—ื‘ื” ื™ื•ืชืจ ืฉืœ ืกื•ื ืืจ
N ืชืœื•ื™ื ื™ืชื•ื— ืืจื›ื™ื˜ืงื˜ื•ื ื™ ื—ื–ืง ื•ื”ื“ืžื™ื” ืฉืœ ืชืœื•ืชื”ืžื™ืงื•ื“ ืžืฉืชืจืข ืžืขื‘ืจ ืœืคื™ื ื•ื™ ืกื™ื‘ื™ื; ืขืงื•ืžืช ืœืžื™ื“ื” ืชืœื•ืœื” ื™ื•ืชืจ
Semgrepืžื ื•ืข ื›ืœืœื™ื ื’ืžื™ืฉ ื”ืชื•ืžืš ื‘ืฉืคื•ืช ืžืจื•ื‘ื•ืชื ื“ืจืฉ ืคื™ืชื•ื— ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ืœืงื‘ืœืช ื”ืชื•ืฆืื•ืช ื”ื˜ื•ื‘ื•ืช ื‘ื™ื•ืชืจ

ืกื™ื›ื•ื ืืกื˜ืจื˜ื’ื™ื•ืช ืœื™ื ื˜ื™ื ื’ ื‘-C#

ื›ืœื™ ื™ืฆื™ืจืช ื˜ืงืกื˜ื™ื ื‘-C# ืฉื•ื ื™ื ื–ื” ืžื–ื” ื‘ืžื™ืงื•ื“ ื”ืื ืœื™ื˜ื™ ื•ื‘ืžื•ื“ืœื™ ื”ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœื”ื. StyleCop ืžื“ื’ื™ืฉ ืกื˜ื ื“ืจื˜ื™ื ืขืงื‘ื™ื™ื ืฉืœ ืงื™ื“ื•ื“ ื•ืงืจื™ืื•ืช, ื‘ืขื•ื“ ืฉื›ืœื™ื ืื—ืจื™ื ื‘ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืžืกืคืงื™ื ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขืžื•ืง ื™ื•ืชืจ ืื• ืชื•ื‘ื ื•ืช ืืจื›ื™ื˜ืงื˜ื•ื ื™ื•ืช. ื‘ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ืืจื’ื•ื ื™ื•ืช, ืฆื•ื•ืชื™ื ืžืฉืœื‘ื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžืกืคืจ ื›ืœื™ื ื›ื“ื™ ืœืื–ืŸ ื‘ื™ืŸ ืื›ื™ืคืช ืกื’ื ื•ืŸ, ื–ื™ื”ื•ื™ ืคื’ืžื™ื ื•ื ื™ืชื•ื— ื‘ืจืžืช ื”ืžืขืจื›ืช.

ืขืœ ื™ื“ื™ ืฉื™ืœื•ื‘ linting ื‘ืฆื™ื ื•ืจื•ืช ื‘ื ื™ื™ื” ื•ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—, ืืจื’ื•ื ื™ื ื™ื›ื•ืœื™ื ืœืฉืžื•ืจ ืขืœ ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ืขืงื‘ื™ื•ืช ืชื•ืš ื”ืคื—ืชืช ื”ืกื‘ื™ืจื•ืช ืœื”ื›ื ืกืช ืคื’ืžื™ื ืœื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืฉืœ .NET.

ื›ืœื™ ืœื™ื˜ื•ืฉ ืฉืœ Verilog ืœื‘ืงืจืช ืื™ื›ื•ืช ืขื™ืฆื•ื‘ ื—ื•ืžืจื”

ืขื™ื‘ื•ื“ ืฉื‘ื‘ื™ Verilog ืคื•ืขืœ ืชื—ืช ืื™ืœื•ืฆื™ื ืฉื•ื ื™ื ืžืฉืคื•ืช ืขื™ื‘ื•ื“ ืฉื‘ื‘ื™ ืชื•ื›ื ื”, ืžืฉื•ื ืฉืฉืคื•ืช ืชื™ืื•ืจ ื—ื•ืžืจื” ืžืงื•ื“ื“ื•ืช ื›ื•ื•ื ื” ืžื‘ื ื™ืช ืฉื”ื•ืคื›ืช ืœืœื•ื’ื™ืงื” ืคื™ื–ื™ืช ืœืื—ืจ ื”ืกื™ื ืชื–ื”. ืกื˜ื™ื•ืช ืกื’ื ื•ื ื™ื•ืช ืงื˜ื ื•ืช ื™ื›ื•ืœื•ืช ืœื”ืชื‘ื˜ื ื‘ืื™-ื”ืชืืžื•ืช ื‘ืกื™ืžื•ืœืฆื™ื”, ืขืžื™ืžื•ืช ื‘ืกื™ื ืชื–ื”, ืื• ืื™ืคื•ืก ื•ื”ืชื ื”ื’ื•ืช ืชื—ื•ื ืฉืขื•ืŸ ืฉืงืฉื” ืœืื‘ื—ืŸ ืœืื—ืจ ืฉื™ืœื•ื‘ื ื‘-SoC ื’ื“ื•ืœ ื™ื•ืชืจ. ื‘ืชื•ื›ื ื™ื•ืช ื—ื•ืžืจื” ืืจื’ื•ื ื™ื•ืช, ืขื™ื‘ื•ื“ ืฉื‘ื‘ื™ ืžื˜ื•ืคืœ ื›ื‘ืงืจื” ืžื•ืงื“ืžืช ื”ืžืคื—ื™ืชื” ืืช ืกื™ื›ื•ืŸ ื”ืื™ื ื˜ื’ืจืฆื™ื” ื‘ื™ืŸ ื‘ืœื•ืงื™ IP, ืกื‘ื™ื‘ื•ืช ืื™ืžื•ืช ื•ื–ืจื™ืžื•ืช ื™ื™ืฉื•ื ื‘ืžื•ืจื“ ื”ื–ืจื.

ื›ืœื™ ืœื™ื˜ื•ืฉ (Linting) ื‘ืกื‘ื™ื‘ื•ืช Verilog ืžืชืžืงื“ื™ื ื‘ื ื›ื•ื ื•ืช ืžื‘ื ื™ืช, ืกื™ื ืชื–ื™ื•ืช, ืชืื™ืžื•ืช ืœื”ื ื—ื™ื•ืช ืงื™ื“ื•ื“ ื•ืชื‘ื ื™ื•ืช ืฉื‘ื“ืจืš ื›ืœืœ ื’ื•ืจืžื™ื ืœื‘ืจื™ื—ื•ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช. ืœื™ื˜ื•ืฉ ื™ืขื™ืœ ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืชื•ืื ืœืžืชื•ื“ื•ืœื•ื’ื™ื™ืช ื”ืขื™ืฆื•ื‘ ืฉืœ ื”ืืจื’ื•ืŸ, ื›ื•ืœืœ ืžื•ืกื›ืžื•ืช ืฉืขื•ืŸ, ืืกื˜ืจื˜ื’ื™ื•ืช ืื™ืคื•ืก, ื›ืœืœื™ ืžืชืŸ ืฉืžื•ืช ื•ื”ื’ื‘ื•ืœื•ืช ื‘ื™ืŸ ื›ื•ื•ื ืช RTL ืœื‘ื™ืŸ ืžื‘ื ื™ ืื™ืžื•ืช.

ืžืฆื‘ ืžื•ืš ืฉืœ ืžืืžืช

ืืชืจ ืจืฉืžื™: ืžื›ื•ื ืช ืžื ื™ื—ื”

Verilator ื ืžืฆื ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ืฆื•ื•ืชื™ ื—ื•ืžืจื” ืืจื’ื•ื ื™ื™ื ื›ืฉืจืฉืจืช ื›ืœื™ื ืžื”ื™ืจื” ืฉืœ SystemVerilog ื•-Verilog ื”ื›ื•ืœืœืช ื™ื›ื•ืœื•ืช linting ืœืฆื“ ื”ืืฆืช ืงื•ืžืคื™ืœืฆื™ื” ื•ืกื™ืžื•ืœืฆื™ื”. ื‘ืขื•ื“ ืฉ-Verilator ื ื‘ื—ืจ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืกื™ืžื•ืœืฆื™ื” ื‘ืขืœืช ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืื™ืžื•ืช, ืžืฆื‘ ื”-lint ืฉืœื• ืžืฉืžืฉ ื’ื ื›ืฉื›ื‘ืช linting ืคืจื’ืžื˜ื™ืช ืœื’ื™ืœื•ื™ ื‘ืขื™ื•ืช ืžื‘ื ื™ื•ืช, ืžื‘ื ื™ื ืžืคื•ืงืคืงื™ื ื•ื“ืคื•ืกื™ ืงื™ื“ื•ื“ ื”ืžื’ื‘ื™ืจื™ื ืืช ื”ืกื™ื›ื•ืŸ ืœืื™ื ื˜ื’ืจืฆื™ื” ื‘ืžื•ืจื“ ื”ื–ืจื.

ื™ื›ื•ืœืช ื”-linting ืฉืœ ื”ื›ืœื™ ืžืขืจื™ื›ื” ืืช RTL, ื•ื‘ื”ืชืื ืœืชืฆื•ืจื”, ืืช ืžื‘ื ื™ SystemVerilog ืขื‘ื•ืจ ืžื’ื•ื•ืŸ ืื–ื”ืจื•ืช ื”ืžืฉืงืคื•ืช ืกื›ื ื•ืช ืชื›ื ื•ืŸ ื ืคื•ืฆื•ืช. ืกื›ื ื•ืช ืืœื• ืœืจื•ื‘ ืื™ื ืŸ "ืฉื’ื™ืื•ืช ืชื—ื‘ื™ืจ" ืืœื ื“ืคื•ืกื™ื ืฉื™ื›ื•ืœื™ื ืœื”ื•ื‘ื™ืœ ืœื—ื•ืžืจื” ืœื ืžื›ื•ื•ื ืช, ื”ืชื ื”ื’ื•ืช ืกื™ืžื•ืœืฆื™ื” ื‘ืœืชื™ ืฆืคื•ื™ื” ืื• ื”ืคืชืขื•ืช ืกื™ื ืชื–ื” ื›ืืฉืจ ื”ืŸ ืžืฉื•ืœื‘ื•ืช ืขื IP ืื—ืจ.

ืžืืคื™ื™ื ื™ ื ื™ืชื•ื— ื”ืจืœื•ื•ื ื˜ื™ื™ื ืœ-RTL ืืจื’ื•ื ื™

ื‘ื“ื™ืงื•ืช ืกื™ื‘ื™ื ืฉืœ ื•ืจื™ืœื˜ื•ืจื™ื ืžืกืคืงื•ืช ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ืื‘ื—ื•ืŸ ื‘ืจืžืช ื”ืื•ืช ื•ื‘ืžื‘ื ื”, ืฉื™ืžื•ืฉื™ ื‘ืชื•ื›ื ื™ื•ืช ื—ื•ืžืจื” ื’ื“ื•ืœื•ืช:

  • ื–ื™ื”ื•ื™ ืื•ืชื•ืช ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ ื•ืœื•ื’ื™ืงื” ื‘ืœืชื™ ืžื•ืฉื’ืช
  • ืื–ื”ืจื•ืช ืœื’ื‘ื™ ืื™ ื”ืชืืžื” ื‘ืจื•ื—ื‘ ื•ืกื™ื›ื•ื ื™ ืงื™ืฆื•ืฅ
  • ื“ืคื•ืกื™ ื”ืกืงื” ืžืจื•ืžื–ื™ื ืฉืœ ืชืคืก
  • ืœื•ืœืื•ืช ืงื•ืžื‘ื™ื ืฆื™ื” ื•ื ืชื™ื‘ื™ ืžืฉื•ื‘ ืœื ืžื›ื•ื•ื ื™ื
  • ืื•ื’ืจื™ื ืœื ืžืื•ืชื—ืœื™ื ื•ื”ืชื ื”ื’ื•ืช ืื™ืคื•ืก ืžืขื•ืจืคืœืช
  • ืฉื™ืžื•ืฉ ื—ืฉื•ื“ ื‘ื—ืกื™ืžื” ื•ื‘ืžืฉื™ืžื” ืฉืื™ื ื” ื—ืกื™ืžื”
  • ื“ืคื•ืกื™ ื›ื™ืกื•ื™ ืœื ืขืงื‘ื™ื™ื ืฉืœ ื”ืฆื”ืจื•ืช ืžืงืจื”

ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช, ืžืžืฆืื™ื ืืœื” ื‘ื“ืจืš ื›ืœืœ ืžื ื•ืชื‘ื™ื ืœืžืขืจื›ื•ืช CI ื›ื“ื™ ืœืžื ื•ืข ืž-RTL ืœื ื™ืฆื™ื‘ ืœื”ื™ื›ื ืก ืœืขื ืคื™ ืื™ื ื˜ื’ืจืฆื™ื” ืžืฉื•ืชืคื™ื. ืžื›ื™ื•ื•ืŸ ืฉืคืจื•ื™ืงื˜ื™ื ืฉืœ Verilog ื™ื›ื•ืœื™ื ืœื›ืœื•ืœ ืกืคืงื™ IP ืžืจื•ื‘ื™ื ื•ืฆื•ื•ืชื™ื ืคื ื™ืžื™ื™ื, ื–ื™ื”ื•ื™ ืžื•ืงื“ื ืฉืœ ื“ืคื•ืกื™ื ืืœื” ืžืคื—ื™ืช ืืช ื”ืกื‘ื™ืจื•ืช ืœื›ืฉืœื™ื ื‘ืฉืœื‘ื™ื ืžืื•ื—ืจื™ื ืฉืœ ืื™ื ื˜ื’ืจืฆื™ื”.

ืฉื™ืœื•ื‘ ื‘ืฆื™ื ื•ืจื•ืช ื‘ื ื™ื™ื” ื•ืื™ืžื•ืช

ืžืฆื‘ lint ืฉืœ Verilator ืžื‘ื•ืฆืข ื‘ื“ืจืš ื›ืœืœ ื›ื—ืœืง ืžืชื”ืœื™ืš ืขื‘ื•ื“ื” ืฉืœ ืื™ื ื˜ื’ืจืฆื™ื” ืจืฆื™ืคื” ืืฉืจ ืžืืžืช ืฉื™ื ื•ื™ื™ื ื‘-RTL ืœืคื ื™ ืฉืžืชื—ื™ืœื•ืช ืจื’ืจืกื™ื•ืช ืกื™ืžื•ืœืฆื™ื” ืื• ื‘ื“ื™ืงื•ืช ืกื™ื ืชื–ื”.

ื“ืคื•ืกื™ ืฉื™ืžื•ืฉ ื ืคื•ืฆื™ื ื›ื•ืœืœื™ื:

  • ื”ืคืขืœืช lint ื‘ืžื”ืœืš ืื™ืžื•ืช ื‘ืงืฉืช pull ืขื‘ื•ืจ ืžืื’ืจื™ RTL
  • ืื›ื™ืคืช ืกืคื™ ืœื™ื˜ื•ืฉ ืขื‘ื•ืจ ืื–ื”ืจื•ืช ื”ืžืกื•ื•ื’ื•ืช ื›"ื—ื•ื‘ื” ืœืชืงืŸ"
  • ื”ืชื™ื™ื—ืกื•ืช ืœืกื•ื’ื™ ืื–ื”ืจื•ืช ื ื‘ื—ืจื™ื ื›ืืœ ืฉื™ื ื•ื™ื™ื ื‘ืžื‘ื ื”
  • ืฉืžื™ืจื” ืขืœ ืงื•ื•ื™ ื‘ืกื™ืก ืฉืœ ื›ืœืœื™ื ืขื‘ื•ืจ ื‘ืœื•ืงื™ IP ืžื“ื•ืจ ืงื•ื“ื ื‘ืžื”ืœืš ื ื™ืงื•ื™ ืžื“ื•ืจื’

ืžื•ื“ืœ ื–ื” ืžืืคืฉืจ ืœืฆื•ื•ืชื™ ื—ื•ืžืจื” ืœื”ืคืจื™ื“ ื‘ื™ืŸ ื‘ื“ื™ืงื•ืช ืœื™ืงื•ื™ื™ื ืžื‘ื ื™ื™ื ืœื‘ื™ืŸ ืื™ืžื•ืช ืคื•ื ืงืฆื™ื•ื ืœื™ ืžืœื, ืžื” ืฉืžืืคืฉืจ ืžืฉื•ื‘ ืžื”ื™ืจ ื™ื•ืชืจ ื‘ืฉืœื‘ื™ ื™ื™ืฆื•ืจ ืžื•ืงื“ืžื™ื.

ื”ืชื ื”ื’ื•ืช ืชืฆื•ืจื” ื•ืื›ื™ืคื”

ื”ืชื ื”ื’ื•ืช ื”-lint ืฉืœ Verilator ื ืฉืœื˜ืช ื‘ืืžืฆืขื•ืช ื“ื’ืœื™ื ื•ืงื˜ื’ื•ืจื™ื•ืช ืื–ื”ืจื”. ื’ื™ืฉืช ืชืฆื•ืจื” ื–ื• ืžืืคืฉืจืช ืœืฆื•ื•ืชื™ื ืœื›ื™ื™ืœ ืืช ื”ืื›ื™ืคื” ืขืœ ืกืžืš ื‘ื’ืจื•ืช ื”ืชื›ื ื•ืŸ ื•ืกื‘ื™ืœื•ืช ื”ืกื™ื›ื•ืŸ.

ืชืฆื•ืจื•ืช ืืจื’ื•ื ื™ื•ืช ืื•ืคื™ื™ื ื™ื•ืช ื›ื•ืœืœื•ืช:

  • ื”ืคืขืœืช ืื–ื”ืจื•ืช ืจื•ื—ื‘ ื•ืงื™ืฆื•ืจ ืžื—ืžื™ืจื™ื ื‘ื›ืœ ื”ืžื•ื“ื•ืœื™ื
  • ื”ืกืœืžืช ืื–ื”ืจื•ืช ื”ืกืงืช ื‘ืจื™ื— ืœืฉื’ื™ืื•ืช ืฉืขืจ
  • ืงื˜ื’ื•ืจื™ื•ืช ืื–ื”ืจื” ื‘ืจืฉื™ืžื” ื”ืœื‘ื ื” ืขื‘ื•ืจ ื‘ืœื•ืงื™ื ืžื“ื•ืจ ืงื•ื“ื ื”ื ืžืฆืื™ื ื‘ืžื•ื“ืจื ื™ื–ืฆื™ื”
  • ื”ื’ื“ืจืช ืขื˜ื™ืคื•ืช ืขืงื‘ื™ื•ืช ืฉืœ lint ื‘ืคืจื•ื™ืงื˜ื™ื ืฉื•ื ื™ื

ืžื›ื™ื•ื•ืŸ ืฉื‘ืกื™ืกื™ ืงื•ื“ RTL ื’ื“ื•ืœื™ื ืฆื•ื‘ืจื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื“ืคื•ืกื™ื ื”ื™ืกื˜ื•ืจื™ื™ื ืฉืื™ื ื ืชื•ืืžื™ื ืืช ืชืงื ื™ ื”ืงื™ื“ื•ื“ ื”ื ื•ื›ื—ื™ื™ื, ืื›ื™ืคื” ืžื“ื•ืจื’ืช ื ื“ืจืฉืช ื‘ื“ืจืš ื›ืœืœ ื›ื“ื™ ืœืžื ื•ืข ืขืฆื™ืจืช ืคื™ืชื•ื—.

ืื™ืœื•ืฆื™ื ืชืคืขื•ืœื™ื™ื

ืžืฆื‘ lint ืฉืœ Verilator ื™ืขื™ืœ ื›ื‘ื“ื™ืงื” ืžื‘ื ื™ืช ืžื”ื™ืจื”, ืืš ื”ื•ื ืื™ื ื• ืžื—ืœื™ืฃ ื›ืœื™ lint ืžืกื—ืจื™ื™ื ืžื™ื•ื—ื“ื™ื ื”ืžืฉืžืฉื™ื ืœืื›ื™ืคืช ืžืชื•ื“ื•ืœื•ื’ื™ื” ืžืขืžื™ืงื” ื•ืœืžืขืจื›ื•ืช ื›ืœืœื™ื ืžืชืงื“ืžื•ืช ื”ืžืชืžืงื“ื•ืช ื‘-CDC. ื‘ื ื™ื”ื•ืœ ืชื›ื ื•ืŸ ื—ื•ืžืจื”, linting ื”ื•ื ื‘ื“ืจืš ื›ืœืœ ืจื‘-ืฉื›ื‘ืชื™: ื‘ื“ื™ืงื•ืช lint ืžื”ื™ืจื•ืช ื‘ืงื•ื“ ืคืชื•ื— ืคื•ืขืœื•ืช ื‘ืฉืœื‘ื™ CI ืžื•ืงื“ืžื™ื, ื‘ืขื•ื“ ืฉื›ืœื™ ื ื™ืชื•ื— ืขืžื•ืงื™ื ื™ื•ืชืจ ืคื•ืขืœื™ื ื‘ืฉืขืจื™ ืื™ืžื•ืช ื™ืงืจื™ื ื™ื•ืชืจ.

ื‘ืชื•ื›ื ื™ื•ืช ื’ื“ื•ืœื•ืช, Verilator ืžืื•ืžืฅ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžืฉื•ื ืฉื”ื•ื ืžืกืคืง ืžืฉื•ื‘ ืžื™ื™ื“ื™ ื‘ืขืœื•ืช ืชืคืขื•ืœื™ืช ื ืžื•ื›ื” ื•ืžืฉืชืœื‘ ื‘ืงืœื•ืช ื‘ืฆื™ื ื•ืจื•ืช ืื•ื˜ื•ืžื˜ื™ื™ื, ืžื” ืฉืžืคื—ื™ืช ืืช ืžืกืคืจ ืฉื™ื ื•ื™ื™ ื”-RTL ื”ืœื ื™ืฆื™ื‘ื™ื ืžื‘ื—ื™ื ื” ืžื‘ื ื™ืช ืฉืžื’ื™ืขื™ื ืœืื™ื ื˜ื’ืจืฆื™ื”.

ืžืฆื‘ ื”-lint ืฉืœ Verilator ืžืชืคืงื“ ื‘ื“ืจืš ื›ืœืœ ื‘ืฆื•ืจื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ื›ืžืกื ืŸ ืžื‘ื ื™ ืจืืฉื•ืŸ ื‘ืฆื™ื ื•ืจ ืื™ื›ื•ืช RTL ืฉื›ื‘ืชื™, ื•ืžืกืคืง ื–ื™ื”ื•ื™ ืžื”ื™ืจ ืฉืœ ืกื›ื ื•ืช ืชื›ื ื•ืŸ ื‘ืชื“ื™ืจื•ืช ื’ื‘ื•ื”ื” ืชื•ืš ืžืชืŸ ืืคืฉืจื•ืช ืœืื›ื™ืคืช ืžืชื•ื“ื•ืœื•ื’ื™ื” ืžืขืžื™ืงื” ื™ื•ืชืจ ื‘ืฉืœื‘ื™ ืื™ืžื•ืช ืžืื•ื—ืจื™ื ื™ื•ืชืจ.

ื›ืœื™ ืœื™ื ื˜ื™ื ื’ ื—ืœื•ืคื™ื™ื ืฉืœ Verilog

ื›ืœื™ื™ืชืจื•ื ื•ืช ืขื™ืงืจื™ื™ืืžื’ื‘ืœื•ืช
ืžื•ืš SpyGlassื—ื™ื‘ื•ืจ ืจืฆื™ืฃ (linting) ืกื˜ื ื“ืจื˜ื™ ื‘ืชืขืฉื™ื™ื” ืขื‘ื•ืจ RTL; ืกืคืจื™ื™ืช ื›ืœืœื™ื ืขืžื•ืงื” ืœืกื™ื ืชื–ื” ื•ืžื•ื›ื ื•ืช ืœ-CDCืจื™ืฉื•ื™ ืžืกื—ืจื™; ืชืฆื•ืจื” ืžื•ืจื›ื‘ืช
ืืกื ื˜ ืœื™ื ื˜ื ื™ืชื•ื— ืกื˜ื˜ื™ ื—ื–ืง ืœืชืงื™ื ื•ืช RTL ื•ืื›ื™ืคืช ืžืชื•ื“ื•ืœื•ื’ื™ื”ืขืœื•ืช ืจื™ืฉื•ื™ ืืจื’ื•ื ื™
HDLCeckerื™ืฆื™ืจืช ืงืฉืจื™ื ื‘ืงื•ื“ ืคืชื•ื— ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ืฉืœ HDL; ืžืฉืชืœื‘ ืขื ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืงื˜ื ื” ื™ื•ืชืจ ืฉืœ ื›ืœืœื™ื
ืกืœื ื’ ืœื™ื ื˜ืจืžื ื•ืข ื ื™ืชื•ื— ื•ื ื™ืชื•ื— ืžื•ื“ืจื ื™ ืฉืœ SystemVerilog ืขื ืชืžื™ื›ื” ื—ื–ืงื” ื‘ืฉืคื”ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืžืชืคืชื—ืช ื‘ื”ืฉื•ื•ืื” ืœื›ืœื™ื ื‘ื•ื’ืจื™ื
ืกื•ืจืœื™ื ื˜ื”ืชืžืงื“ื•ืช ื‘ืชืงื™ื ื•ืช ืžื‘ื ื™ืช ื•ืื›ื™ืคืช ื”ื ื—ื™ื•ืช ืงื™ื“ื•ื“ืื™ืžื•ืฅ ืžื•ื’ื‘ืœ ื‘ื”ืฉื•ื•ืื” ืœื›ืœื™ื ืžืกื—ืจื™ื™ื ื’ื“ื•ืœื™ื ื™ื•ืชืจ

ืคืจืกืคืงื˜ื™ื‘ื” ืžืขืฉื™ืช ืขืœ ืืกื˜ืจื˜ื’ื™ื•ืช ืœื™ื˜ื•ืฉ ืฉืœ Verilog

ื›ืœื™ ื”-linting ืฉืœ Verilog ื ืขื™ื ื‘ื™ืŸ ืžื ืชื—ื™ ืงื•ื“ ืคืชื•ื— ืงืœื™ื ื•ืขื“ ืคืœื˜ืคื•ืจืžื•ืช ืžืกื—ืจื™ื•ืช ืžืชื•ื—ื›ืžื•ืช ื”ืžื™ื•ืขื“ื•ืช ืœืชื•ื›ื ื™ื•ืช ืžื•ืœื™ื›ื™ื ืœืžื—ืฆื” ื’ื“ื•ืœื•ืช. ื›ืœื™ื ื›ืžื• Verilator ืžืกืคืงื™ื ื‘ื“ื™ืงื•ืช ืžื‘ื ื™ื•ืช ืžื”ื™ืจื•ืช ื”ืžืชืื™ืžื•ืช ืœืฆื™ื ื•ืจื•ืช CI ื•ืœืฉืœื‘ื™ ืคื™ืชื•ื— ืžื•ืงื“ืžื™ื, ื‘ืขื•ื“ ืฉืคืชืจื•ื ื•ืช lint ื‘ืจืžื” ืืจื’ื•ื ื™ืช ืžืชืžืงื“ื™ื ื‘ืื›ื™ืคืช ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช ืชื›ื ื•ืŸ, ืชืื™ืžื•ืช ืกื™ื ืชื–ื” ื•ื‘ื˜ื™ื—ื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืขืœ ืคื ื™ ื‘ืกื™ืกื™ ืงื•ื“ RTL ืžื•ืจื›ื‘ื™ื.

ืืจื’ื•ื ื™ ื”ื ื“ืกืช ื—ื•ืžืจื” ื’ื“ื•ืœื™ื ืคื•ืจืกื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืืกื˜ืจื˜ื’ื™ื™ืช ืคื™ื ื•ื™ ืกื™ื‘ื™ื ืฉื›ื‘ืชื™ืชื‘ื“ื™ืงื•ืช lint ืžื”ื™ืจื•ืช ืคื•ืขืœื•ืช ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื‘ืžื”ืœืš commits ืงื•ื“ ื›ื“ื™ ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ืžื‘ื ื™ื•ืช ืžื•ืงื“ื, ื‘ืขื•ื“ ืฉื›ืœื™ ื ื™ืชื•ื— ืžื‘ื•ืกืกื™ ื›ืœืœื™ื ืขืžื•ืงื™ื ื™ื•ืชืจ ืžืืžืชื™ื ืืช ื ื›ื•ื ื•ืช ื”ืชื›ื ื•ืŸ ืœืคื ื™ ืจื’ืจืกื™ื•ืช ืกื™ืžื•ืœืฆื™ื” ืื• ืฉืœื‘ื™ ืกื™ื ืชื–ื”. ื’ื™ืฉื” ื–ื• ืžืกื™ื™ืขืช ืœืฉืžื•ืจ ืขืœ ืื™ื›ื•ืช RTL ืชื•ืš ืžื ื™ืขืช ื›ืฉืœื™ื ืื™ื ื˜ื’ืจืฆื™ื™ื ื‘ืฉืœื‘ื™ื ืžืื•ื—ืจื™ื ื‘ืชื•ื›ื ื™ื•ืช ืคื™ืชื•ื— ื—ื•ืžืจื” ืžื•ืจื›ื‘ื•ืช.

ื›ืœื™ ืื ื’ื•ืœืจ ืœื™ื ื˜ื™ื ื’ ืœืžืžืฉืœ ื—ื–ื™ืชื™ ืืจื’ื•ื ื™

ื™ื™ืฉื•ืžื™ Angular ืžืฉืžืฉื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ืฉื›ื‘ืช ื”ื”ืฆื’ื” ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช ืืจื’ื•ื ื™ื•ืช, ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืคื ื™ืžื™ื™ื ื•ืคื•ืจื˜ืœื™ื ื”ืคื•ื ื™ื ืœืœืงื•ื—ื•ืช. ืžื›ื™ื•ื•ืŸ ืฉื™ื™ืฉื•ืžื™ื ืืœื” ืžืชืคืชื—ื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืขืœ ืคื ื™ ืฆื•ื•ืชื™ื ืžืจื•ื‘ื™ื ื•ืžื—ื–ื•ืจื™ ืคื™ืชื•ื— ืืจื•ื›ื™ื, ืฉืžื™ืจื” ืขืœ ืกื˜ื ื“ืจื˜ื™ื ืขืงื‘ื™ื™ื ืฉืœ ืงื™ื“ื•ื“ ื•ืžืฉืžืขืช ืื“ืจื™ื›ืœื™ืช ื”ื•ืคื›ืช ื—ื™ื•ื ื™ืช ืœื”ื‘ื˜ื—ืช ืชื—ื–ื•ืงื” ื•ื”ืชื ื”ื’ื•ืช ืืคืœื™ืงืฆื™ื” ืฆืคื•ื™ื”.

ื›ืœื™ ื™ืฆื™ืจืช ืงืฉืจื™ื (Linting) ื‘ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ Angular ืขื•ื–ืจื™ื ืœืื›ื•ืฃ ื”ื ื—ื™ื•ืช ืกื’ื ื•ืŸ, ืœื–ื”ื•ืช ื˜ืขื•ื™ื•ืช ืชื›ื ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ื•ืœืฉืžื•ืจ ืขืœ ืขืงื‘ื™ื•ืช ื‘ืงื•ื“ TypeScript ื•ื‘ืงื•ื“ ืชื‘ื ื™ื•ืช. ื›ืœื™ื ืืœื” ืžืฉื•ืœื‘ื™ื ื‘ื“ืจืš ื›ืœืœ ื‘ืฆื™ื ื•ืจื•ืช CI/CD ื•ื‘ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—, ืฉื ื”ื ืคื•ืขืœื™ื ื›ืฉืขืจื™ ืื™ื›ื•ืช ืื•ื˜ื•ืžื˜ื™ื™ื ื”ืžื•ื ืขื™ื ื›ื ื™ืกื” ืฉืœ ืงื•ื“ ื‘ืขื™ื™ืชื™ ืœืžืื’ืจื™ื ืžืฉื•ืชืคื™ื.

Angular ESLint

ืืชืจ ืจืฉืžื™: Angular ESLint

Angular ESLint ื”ืคื›ื” ืœืžืกื’ืจืช ื”ืคื™ืชื•ื— ื”ืขื™ืงืจื™ืช ื”ืžืฉืžืฉืช ื‘ืคืจื•ื™ืงื˜ื™ื ืžื•ื“ืจื ื™ื™ื ืฉืœ Angular. ื”ื›ืœื™ ืžืจื—ื™ื‘ ืืช ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ ESLint ื”ืžืื•ืžืฆืช ื‘ืื•ืคืŸ ื ืจื—ื‘ ื›ื“ื™ ืœืชืžื•ืš ื‘ืชื‘ื ื™ื•ืช ืกืคืฆื™ืคื™ื•ืช ืœ-Angular, ื›ื•ืœืœ ืืจื›ื™ื˜ืงื˜ื•ืจืช ืจื›ื™ื‘ื™ื, ืžื‘ื ื” ืชื‘ื ื™ื•ืช ื•ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœ TypeScript. ืžื›ื™ื•ื•ืŸ ืฉื™ื™ืฉื•ืžื™ Angular ืžืกืชืžื›ื™ื ื‘ืžื™ื“ื” ืจื‘ื” ืขืœ TypeScript ื•ืžื•ืกื›ืžื•ืช ืฉืœ ืžืกื’ืจืช, Angular ESLint ืžืกืคืงืช ืขืจื›ื•ืช ื›ืœืœื™ื ื”ืžื•ืชืืžื•ืช ืœืชื‘ื ื™ื•ืช ืคื™ืชื•ื— ืืœื•.

ื”ื›ืœื™ ืžื—ืœื™ืฃ ืืช ืžื•ื“ืœ ื”-linting ื”ื™ืฉืŸ ื™ื•ืชืจ ื”ืžื‘ื•ืกืก ืขืœ TSLint, ืืฉืจ ืฉื™ืžืฉ ื‘ืื•ืคืŸ ื”ื™ืกื˜ื•ืจื™ ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ Angular. ื›ื›ืœ ืฉืžืขืจื›ื•ืช ื”ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ JavaScript ื•-TypeScript ืขื‘ืจื• ืœื›ื™ื•ื•ืŸ ESLint ื›ืžื ื•ืข ื”-linting ื”ื“ื•ืžื™ื ื ื˜ื™, ESLint ืฉืœ Angular ืฆืฅ ื›ื’ื™ืฉื” ื”ืกื˜ื ื“ืจื˜ื™ืช ืœืื›ื™ืคืช ืื™ื›ื•ืช ืงื•ื“ ื‘ื™ื™ืฉื•ืžื™ Angular.

ื ื™ืชื•ื— ืžื•ื“ืข ืœืžืกื’ืจืช

Angular ESLint ืžืขืจื™ืš ื”ืŸ ืืช ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ TypeScript ื•ื”ืŸ ืืช ืชื‘ื ื™ื•ืช Angular, ื•ืžืืคืฉืจ ืœืฆื•ื•ืชื™ื ืœืื›ื•ืฃ ื›ืœืœื™ื ืขืœ ืคื ื™ ื”ืžื‘ื ื” ื”ืžืœื ืฉืœ ื™ื™ืฉื•ืžื™ Angular.

ืชื—ื•ืžื™ ื ื™ืชื•ื— ืžืจื›ื–ื™ื™ื ื›ื•ืœืœื™ื:

  • ืžื•ืกื›ืžื•ืช ืœืžืชืŸ ืฉืžื•ืช ืœืจื›ื™ื‘ื™ื ื•ื”ื ื—ื™ื•ืช
  • ืชืงื™ื ื•ืช ื•ืžื‘ื ื” ืชื—ื‘ื™ืจ ื”ืชื‘ื ื™ืช
  • ื“ืคื•ืกื™ ืฉื™ืžื•ืฉ ื‘ืžื—ื–ื•ืจ ื—ื™ื™ื ืฉืœ Angular
  • ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืœื”ื–ืจืงืช ืชืœื•ืช
  • ืืจื’ื•ืŸ ืขืงื‘ื™ ืฉืœ ืงื‘ืฆื™ื ื•ืžื•ื“ื•ืœื™ื

ื ื™ืชื•ื— ื–ื”, ื”ืžื•ื“ืข ืœืžืกื’ืจืช, ืžืกื™ื™ืข ืœืฉืžื•ืจ ืขืœ ืขืงื‘ื™ื•ืช ืื“ืจื™ื›ืœื™ืช ื‘ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืฉืœ Angular, ืฉื‘ื”ื ืฆื•ื•ืชื™ื ืžืจื•ื‘ื™ื ืชื•ืจืžื™ื ืจื›ื™ื‘ื™ื ื•ืžื•ื“ื•ืœื™ื.

ืฉื™ืœื•ื‘ ื‘ืชื•ืš ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืคื™ืชื•ื—

Angular ESLint ืžืฉืชืœื‘ ื™ืฉื™ืจื•ืช ืขื ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ Angular CLI ื•ืคื™ื ื™ืœื™ CI/CD ื ืคื•ืฆื™ื. ื–ื” ืžืืคืฉืจ ืœืฆื•ื•ืชื™ื ืœื”ื—ื™ืœ ื‘ื“ื™ืงื•ืช linting ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื‘ืžื”ืœืš builds ื•ืื™ืžื•ืช ื‘ืงืฉื•ืช pull.

ื“ืคื•ืกื™ ืื™ื ื˜ื’ืจืฆื™ื” ืืจื’ื•ื ื™ื™ื ื ืคื•ืฆื™ื ื›ื•ืœืœื™ื:

  • ื”ืจืฆืช ื‘ื“ื™ืงื•ืช lint ื‘ืžื”ืœืš ืชื”ืœื™ื›ื™ ื‘ื ื™ื™ื” ืฉืœ Angular CLI
  • ืื›ื™ืคืช ื›ืœืœื™ lint ื‘ืžื”ืœืš ืฉืœื‘ื™ ืฆื™ื ื•ืจ CI
  • ื”ืฆื’ืช ื‘ืขื™ื•ืช ื™ืฉื™ืจื•ืช ื‘ืชื•ืš ืกื‘ื™ื‘ื•ืช IDE
  • ืžื ื™ืขืช ืžื™ื–ื•ื’ื™ ืงื•ื“ ื›ืืฉืจ ื”ืคืจื•ืช ืฉืœ ืงื•ื“ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ื—ื•ืจื’ื•ืช ืžืกืคื™ ืงื•ื“ ืžื•ื’ื“ืจื™ื

ืฉื™ืœื•ื‘ ื–ื” ืžื‘ื˜ื™ื— ื›ื™ ืชืงื ื™ ืงื™ื“ื•ื“ ื ืื›ืคื™ื ื‘ืื•ืคืŸ ืขืงื‘ื™ ืžื‘ืœื™ ืœื“ืจื•ืฉ ืžืžืคืชื—ื™ื ืœื”ืคืขื™ืœ ื›ืœื™ lint ื‘ืื•ืคืŸ ื™ื“ื ื™.

ื’ืžื™ืฉื•ืช ืชืฆื•ืจื”

Angular ESLint ืžืกืคืงืช ืืคืฉืจื•ื™ื•ืช ืชืฆื•ืจื” ื ืจื—ื‘ื•ืช ื”ืžืืคืฉืจื•ืช ืœืืจื’ื•ื ื™ื ืœื”ืชืื™ื ืืช ื›ืœืœื™ ื”-lint ืœืชืงื ื™ ื”ืคื™ืชื•ื— ืฉืœื”ื.

ื™ื›ื•ืœื•ืช ืชืฆื•ืจื” ืื•ืคื™ื™ื ื™ื•ืช ื›ื•ืœืœื•ืช:

  • ื”ืคืขืœืช ืงื‘ื•ืฆื•ืช ื›ืœืœื™ื ืกืคืฆื™ืคื™ื•ืช ืœ-Angular
  • ื”ื’ื“ืจืช ืžื•ืกื›ืžื•ืช ืžืชืŸ ืฉืžื•ืช ืœืจื›ื™ื‘ื™ื ื•ืฉื™ืจื•ืชื™ื
  • ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื”ืชื ื”ื’ื•ืช ื™ืฆื™ืจืช ืชื‘ื ื™ืช
  • ืฉื™ืœื•ื‘ ืชื•ืกืคื™ ESLint ื ื•ืกืคื™ื ืขื‘ื•ืจ TypeScript ื•-JavaScript

ืชื›ื•ื ื•ืช ืชืฆื•ืจื” ืืœื• ืžืืคืฉืจื•ืช ืœืฆื•ื•ืชื™ ื”ื ื“ืกื” ืœืืžืฅ ื‘ื”ื“ืจื’ื” ืžื“ื™ื ื™ื•ืช ืื™ืกื•ืฃ ื ืชื•ื ื™ื ืชื•ืš ื”ืชืืžืช ืจื›ื™ื‘ื™ื ืžื“ื•ืจ ืงื•ื“ื ืื• ื“ืคื•ืกื™ ืื“ืจื™ื›ืœื•ืช ืžืชืคืชื—ื™ื.

ืฉื™ืงื•ืœื™ื ืชืคืขื•ืœื™ื™ื

ืžื›ื™ื•ื•ืŸ ืฉ-Angular ESLint ื‘ื ื•ื™ ืขืœ ื’ื‘ื™ ESLint, ื”ื‘ื™ืฆื•ืขื™ื ื•ื›ื™ืกื•ื™ ื”ื›ืœืœื™ื ืชืœื•ื™ื™ื ื‘ื—ืœืงื ื‘ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ ื”ืชื•ืกืฃ ESLint. ื™ื™ืฉื•ืžื™ Angular ื’ื“ื•ืœื™ื ืขืฉื•ื™ื™ื ืœื“ืจื•ืฉ ืชืฆื•ืจืช ื›ืœืœื™ื ืžื“ื•ืงื“ืงืช ื›ื“ื™ ืœืžื ื•ืข ืื–ื”ืจื•ืช ืžื•ื’ื–ืžื•ืช ืื• ืขื™ื›ื•ื‘ื™ื ื‘ื‘ื™ืฆื•ืข ืฆื™ื ื•ืจ.

ืœืžืจื•ืช ืฉื™ืงื•ืœื™ื ืืœื”, Angular ESLint ื ื•ืชืจ ืคืชืจื•ืŸ ื”-linting ื”ื ืคื•ืฅ ื‘ื™ื•ืชืจ ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ Angular ื•ื ื—ืฉื‘ ืœื’ื™ืฉืช ื”-linting ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืœืคื™ืชื•ื— Angular ืžื•ื“ืจื ื™.

Angular ESLint ืžืกืคืง ืื™ื–ื•ืŸ ืžืขืฉื™ ื‘ื™ืŸ ืžื•ื“ืขื•ืช ืœ-frameworks ืœื‘ื™ืŸ ืื™ื ื˜ื’ืจืฆื™ื” ืขื ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ื”ืจื—ื‘ื” ื™ื•ืชืจ ืฉืœ ESLint, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื‘ืกื™ืก ืžืชืื™ื ืœืฉืžื™ืจื” ืขืœ ืื™ื›ื•ืช ื”ืงื•ื“ ื‘ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื ืฉืœ Angular.

ื›ืœื™ ืกื™ื‘ื™ื ื—ืœื•ืคื™ื™ื ืฉืœ ืื ื’ื•ืœืจ

ื›ืœื™ื™ืชืจื•ื ื•ืช ืขื™ืงืจื™ื™ืืžื’ื‘ืœื•ืช
TSLint (ืžื•ืจืฉืช)ืžืฉื•ืœื‘ ื”ื™ืกื˜ื•ืจื™ืช ืขื Angular CLIื”ื•ืฆื ืžืฉื™ืžื•ืฉ ื•ืœื ืžืชื•ื—ื–ืง ื‘ืื•ืคืŸ ืคืขื™ืœ ืขื•ื“
SonarLint ืขื‘ื•ืจ Angularืžื–ื”ื” ื‘ืขื™ื•ืช ืชื—ื–ื•ืงื” ื•ืืžื™ื ื•ืชื“ื•ืจืฉ ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ ืกื•ื ืืจ
ืกืจื™ืงื” ืขืžื•ืงื”ื ื™ืชื•ื— ืžืชืงื“ื ืฉืœ JavaScript ื•-TypeScriptื›ื™ืกื•ื™ ืžื•ื’ื‘ืœ ืฉืœ ื›ืœืœื™ื ืกืคืฆื™ืคื™ื™ื ืœ-Angular
Semgrepืžื ื•ืข ื›ืœืœื™ื ื’ืžื™ืฉ ื”ืžืกื•ื’ืœ ืœื–ื”ื•ืช ื“ืคื•ืกื™ื ืžื•ืจื›ื‘ื™ืื“ื•ืจืฉ ืคื™ืชื•ื— ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช
MegaLinterืžืจื™ืฅ ืžืกืคืจ ืจื‘ ืฉืœ ืžืขืจื›ื•ืช ื—ื™ื‘ื•ืจ (linters) ืขืœ ืคื ื™ ืžืื’ืจื™ Frontendืœื ืกืคืฆื™ืคื™ ืœ-Angular; ื ื“ืจืฉืช ืชืฆื•ืจื”

ืฉื™ืงื•ืœื™ื ืžืขืฉื™ื™ื ืขื‘ื•ืจ ืื ื’ื•ืœืจ ืœื™ื ื˜ื™ื ื’

ื›ืœื™ ื—ื™ื‘ื•ืจ Angular ื—ื™ื™ื‘ื™ื ืœื”ืชืžื•ื“ื“ ื”ืŸ ืขื ืžื•ืกื›ืžื•ืช Framework ื•ื”ืŸ ืขื ืชืงื ื™ ืงื™ื“ื•ื“ ื›ืœืœื™ื™ื ืฉืœ TypeScript. Angular ESLint ืžืกืคืง ืื™ื ื˜ื’ืจืฆื™ื” ื—ื–ืงื” ืขื ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ Angular ืชื•ืš ืฉืžื™ืจื” ืขืœ ืชืื™ืžื•ืช ืขื ืžื ื•ืข ื”ื›ืœืœื™ื ื”ืจื—ื‘ ื™ื•ืชืจ ืฉืœ ESLint. ืขื‘ื•ืจ ืฆื•ื•ืชื™ Frontend ืืจื’ื•ื ื™ื™ื, ืฉื™ืœื•ื‘ ืฉืœ Angular ESLint ืขื ืื›ื™ืคืช ืฆื™ื ื•ืจ CI ืžืกื™ื™ืข ืœืฉืžื•ืจ ืขืœ ืขืงื‘ื™ื•ืช ื‘ื™ืŸ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืจื›ื™ื‘ื™ื ื•ืฉื™ื˜ื•ืช ืคื™ืชื•ื—.

ืืจื’ื•ื ื™ื ื”ืžื ื”ืœื™ื ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืฉืœ ืงืฆื” ื”ืงืฆื” ืžืฉืœื™ืžื™ื ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช ืชื”ืœื™ื›ื™ ื—ื™ื‘ื•ืจ (linting) ืกืคืฆื™ืคื™ื™ื ืœ-Angular ืขื ืคืœื˜ืคื•ืจืžื•ืช ื ื™ืชื•ื— ืกื˜ื˜ื™ื•ืช ืจื—ื‘ื•ืช ื™ื•ืชืจ, ืืฉืจ ืžืขืจื™ื›ื•ืช ื‘ื™ืฆื•ืขื™ื, ืื‘ื˜ื—ื” ื•ื“ืคื•ืกื™ื ืืจื›ื™ื˜ืงื˜ื•ื ื™ื™ื ืขืœ ืคื ื™ ื›ืœ ืžื—ืกื ื™ืช ื”ื™ื™ืฉื•ืžื™ื.

ื›ืœื™ ืœื™ื ื˜ื™ื ื’ ืฉืœ TypeScript ืœืคื™ืชื•ื— ืžืžืฉืง ืงืฆื” ื•ืฉื™ืจื•ืชื™ื ื ื™ืชื ื™ื ืœื”ืจื—ื‘ื”

TypeScript ื”ืคื›ื” ืœืฉืคื” ืžืจื›ื–ื™ืช ื‘ืชื™ืงื™ ืชื•ื›ื ื” ืืจื’ื•ื ื™ื™ื ืžื•ื“ืจื ื™ื™ื. ื”ื™ื ื ืžืฆืืช ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ Frontend, ืฉื™ืจื•ืชื™ Node.js, ืคืœื˜ืคื•ืจืžื•ืช Serverless ื•ืกืคืจื™ื•ืช ืžืฉื•ืชืคื•ืช ื”ืชื•ืžื›ื•ืช ื‘ืžืขืจื›ื•ืช ืžื‘ื•ื–ืจื•ืช ื’ื“ื•ืœื•ืช. ืžื›ื™ื•ื•ืŸ ืฉ-TypeScript ืžืฆื™ื’ื” ื”ืงืœื“ื” ืกื˜ื˜ื™ืช ืœืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ JavaScript, ืืจื’ื•ื ื™ื ืžืกืชืžื›ื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืขืœ ื›ืœื™ linting ื›ื“ื™ ืœืื›ื•ืฃ ื”ืŸ ืžืฉืžืขืช ืกื’ื ื•ื ื™ืช ื•ื”ืŸ ืฉื™ืžื•ืฉ ื ื›ื•ืŸ ื‘ืชื›ื•ื ื•ืช ื”ืฉืคื”.

ื›ืœื™ Linting ืขื‘ื•ืจ TypeScript ืžื ืชื—ื™ื ืงื•ื“ ืžืงื•ืจ ื›ื“ื™ ืœื–ื”ื•ืช ื“ืคื•ืกื™ื ืœื ื‘ื˜ื•ื—ื™ื, ืฉื™ืžื•ืฉ ืœื ื ื›ื•ืŸ ื‘ืกื•ื’ื™ื ื•ื‘ืขื™ื•ืช ืชื—ื–ื•ืงื” ืœืคื ื™ ืฉื”ืŸ ืžืชืคืฉื˜ื•ืช ื‘ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื. ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช ื‘ื”ืŸ ืฆื•ื•ืชื™ื ืจื‘ื™ื ืžืฉืชืคื™ื ืคืขื•ืœื” ื‘ืกืคืจื™ื•ืช ืžืฉื•ืชืคื•ืช ื•ื‘ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื, ื›ืœื™ื ืืœื” ืžืกื™ื™ืขื™ื ื‘ืื›ื™ืคืช ืฉื™ื˜ื•ืช ืคื™ืชื•ื— ืขืงื‘ื™ื•ืช ืชื•ืš ืžื ื™ืขืช ื˜ืขื•ื™ื•ืช ืชื›ื ื•ืช ืขื“ื™ื ื•ืช ืžืœื”ื’ื™ืข ืœืžืฆื‘ ื”ื™ื™ืฆื•ืจ.

ESLint ืขื ืชื•ืกืฃ TypeScript

ืืชืจ ืจืฉืžื™: ESLint

ESLint ื”ืคื›ื” ืœืžืกื’ืจืช ื”-linting ื”ื“ื•ืžื™ื ื ื˜ื™ืช ื”ืŸ ืขื‘ื•ืจ ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ JavaScript ื•ื”ืŸ ืขื‘ื•ืจ TypeScript. ื‘ืืžืฆืขื•ืช ื”ืฉื™ืžื•ืฉ ื‘- @typescript-eslint ืชื•ืกืฃ ื–ื”, ESLint ืžืจื—ื™ื‘ ืืช ืžื ื•ืข ื”ื›ืœืœื™ื ืฉืœื• ื›ื“ื™ ืœืชืžื•ืš ื‘ืชื—ื‘ื™ืจ ื•ื‘ื ื™ืชื•ื— ืกื•ื’ื™ื ืกืคืฆื™ืคื™ื™ื ืœ-TypeScript. ืฉื™ืœื•ื‘ ื–ื” ืžืืคืฉืจ ืœืืจื’ื•ื ื™ื ืœืชื—ื–ืง ืคืœื˜ืคื•ืจืžืช linting ืื—ืช ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ JavaScript ื•-TypeScript ื›ืื—ื“.

ื”ืคื•ืคื•ืœืจื™ื•ืช ืฉืœ ESLint ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช ื ื•ื‘ืขืช ืžื”ื’ืžื™ืฉื•ืช ืฉืœื”. ื”ืคืœื˜ืคื•ืจืžื” ืชื•ืžื›ืช ื‘ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืจื—ื‘ื” ืฉืœ ืชื•ืกืคื™ื ื•ืขืจื›ื•ืช ื›ืœืœื™ื ื”ืžืืคืฉืจื™ื ืœืฆื•ื•ืชื™ื ืœื”ืชืื™ื ืžื“ื™ื ื™ื•ืช linting ืœืžืกื’ืจืชื•ืช, ื“ืคื•ืกื™ ืืจื›ื™ื˜ืงื˜ื•ืจื” ืื• ื“ืจื™ืฉื•ืช ืื‘ื˜ื—ื” ืกืคืฆื™ืคื™ื•ืช.

ื”ืขืจื›ืช ื›ืœืœื™ื ืžื•ื“ืขืช ืœ-TypeScript

ื›ืืฉืจ ืžื•ื’ื“ืจ ืขื ืชืžื™ื›ื” ื‘-TypeScript, ESLint ืžืขืจื™ืš ื”ืŸ ืชืงื™ื ื•ืช ืชื—ื‘ื™ืจื™ืช ื•ื”ืŸ ืชื‘ื ื™ื•ืช ืžื•ื“ืขื•ืช ืœืกื•ื’ ื‘ืงื•ื“ TypeScript.

ืงื˜ื’ื•ืจื™ื•ืช ื›ืœืœื™ื ืื•ืคื™ื™ื ื™ื•ืช ื›ื•ืœืœื•ืช:

  • ืฉื™ืžื•ืฉ ื ื›ื•ืŸ ื‘ืกื•ื’ื™ ื•ืžืžืฉืงื™ื ืฉืœ TypeScript
  • ื–ื™ื”ื•ื™ ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ ื•ื™ื™ื‘ื•ื
  • ืฉื™ืžื•ืฉ ื‘ื˜ื•ื— ื‘ any ืกื•ื’ื™ื ื•ื˜ืขื ื•ืช ืกื•ื’
  • ืžื‘ื ื™ ื™ื™ื‘ื•ื โ€‹โ€‹ืžื•ื“ื•ืœื™ื ืขืงื‘ื™ื™ื
  • ืื›ื™ืคืช ืžื•ืกื›ืžื•ืช ืœืžืชืŸ ืฉืžื•ืช ื•ืืจื’ื•ืŸ ืงื‘ืฆื™ื

ืžื›ื™ื•ื•ืŸ ืฉื™ื™ืฉื•ืžื™ TypeScript ืžื›ื™ืœื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื”ื™ืจืจื›ื™ื•ืช ื˜ื™ืคื•ืกื™ื ืžื•ืจื›ื‘ื•ืช ื•ืžืžืฉืงื™ื ืžืฉื•ืชืคื™ื, ื‘ื“ื™ืงื•ืช ืืœื• ืžืกื™ื™ืขื•ืช ืœืฉืžื•ืจ ืขืœ ื‘ื”ื™ืจื•ืช ื•ืœื”ืคื—ื™ืช ืฉื™ืžื•ืฉ ืœืจืขื” ื‘ืฉื•ื’ื’ ื‘ื˜ื™ืคื•ืกื™ื.

ืฉื™ืœื•ื‘ ื‘ืชื•ืš ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืืจื’ื•ื ื™ื•ืช

ESLint ืžืฉืชืœื‘ ื‘ืงืœื•ืช ืขื ื›ืœื™ ืคื™ืชื•ื—, ืฆื™ื ื•ืจื•ืช CI/CD ื•ืขื•ืจื›ื™ ืงื•ื“ ืžื•ื“ืจื ื™ื™ื.

ื’ื™ืฉื•ืช ื ืคื•ืฆื•ืช ืœืคืจื™ืกื” ืืจื’ื•ื ื™ืช ื›ื•ืœืœื•ืช:

  • ื”ืจืฆืช ื‘ื“ื™ืงื•ืช ESLint ื‘ืžื”ืœืš ืื™ืžื•ืช ื‘ืงืฉืช ืžืฉื™ื›ื”
  • ืฉื™ืœื•ื‘ ืื›ื™ืคืช lint ื‘ืฉืœื‘ื™ ื‘ื ื™ื™ืช CI
  • ื”ืฆื’ืช ืžืžืฆืื™ lint ื™ืฉื™ืจื•ืช ื‘ืชื•ืš ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—
  • ืื›ื™ืคืช ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื›ืœืœ-ืžืื’ืจ ื‘ืืžืฆืขื•ืช ืชืฆื•ืจื•ืช ืžืฉื•ืชืคื•ืช

ืื™ื ื˜ื’ืจืฆื™ื•ืช ืืœื• ืžืืคืฉืจื•ืช ืœืืจื’ื•ื ื™ื ืœื”ื—ื™ืœ ื›ืœืœื™ linting ืขืงื‘ื™ื™ื ืขืœ ืคื ื™ ืžืกืคืจ ืจื‘ ืฉืœ ืžืื’ืจื™ื ืžื‘ืœื™ ืœื“ืจื•ืฉ ื‘ื™ืฆื•ืข ื™ื“ื ื™ ืขืœ ื™ื“ื™ ืžืคืชื—ื™ื.

ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืฉืœ ืชื•ืกืคื™ื ื•ื™ื›ื•ืœืช ื”ืจื—ื‘ื”

ืื—ืช ืžื™ืชืจื•ื ื•ืชื™ื” ื”ื’ื“ื•ืœื™ื ื‘ื™ื•ืชืจ ืฉืœ ESLint ื”ื™ื ืžืขืจื›ืช ื”ืชื•ืกืคื™ื ืฉืœื”. ืชื•ืกืคื™ื ืจื‘ื™ื ืžืจื—ื™ื‘ื™ื ืืช ื™ื›ื•ืœื•ืชื™ื” ื›ื“ื™ ืœืชืžื•ืš ื‘ืžืกื’ืจื•ืช ื•ื“ืคื•ืกื™ ืคื™ืชื•ื— ื ื•ืกืคื™ื.

ื“ื•ื’ืžืื•ืช ื›ื•ืœืœื•ืช:

  • ื”ืจื—ื‘ื•ืช ื›ืœืœ TypeScript ื“ืจืš @typescript-eslint
  • ืื™ื ื˜ื’ืจืฆื™ื•ืช Framework ืขื‘ื•ืจ React, Angular ื•-Node.js
  • ื›ืœืœื™ ืกื™ื‘ื™ื ืžื•ื ื—ื™ ืื‘ื˜ื—ื”
  • ืฉื™ืœื•ื‘ ืขื™ืฆื•ื‘ ืงื•ื“ ืขื ื›ืœื™ื ื›ืžื• Prettier

ื™ื›ื•ืœืช ื”ืจื—ื‘ื” ื–ื• ืžืืคืฉืจืช ืœ-ESLint ืœืฉืžืฉ ื›ืคืœื˜ืคื•ืจืžืช linting ืื•ื ื™ื‘ืจืกืœื™ืช ื‘ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ืžื’ื•ื•ื ื•ืช.

ืฉื™ืงื•ืœื™ื ืชืคืขื•ืœื™ื™ื

ืœืžืจื•ืช ืฉ-ESLint ืžืกืคืงืช ื™ื›ื•ืœื•ืช ื”ืชืืžื” ืื™ืฉื™ืช ื—ื–ืงื•ืช ืฉืœ ื›ืœืœื™ื, ืงื‘ื•ืฆื•ืช ื›ืœืœื™ื ืฉืชืฆื•ืจืชืŸ ืื™ื ื” ื ื›ื•ื ื” ืขืœื•ืœื•ืช ืœื™ื™ืฆืจ ืื–ื”ืจื•ืช ืžื•ื’ื–ืžื•ืช ืืฉืจ ืžืคื—ื™ืชื•ืช ืืช ืืžื•ืŸ ื”ืžืคืชื—ื™ื ื‘ืชื•ืฆืื•ืช ื”-linting. ืฆื•ื•ืชื™ื ืืจื’ื•ื ื™ื™ื ื‘ื“ืจืš ื›ืœืœ ืžื ื”ืœื™ื ืกื™ื›ื•ืŸ ื–ื” ืขืœ ื™ื“ื™ ื”ื’ื“ืจืช ื—ื‘ื™ืœื•ืช ืชืฆื•ืจื” ืžืฉื•ืชืคื•ืช ืืฉืจ ืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื•ืช ืืช ื”ืชื ื”ื’ื•ืช ื”-lint ื‘ื™ืŸ ืžืื’ืจื™ื ืฉื•ื ื™ื.

ื›ืืฉืจ ESLint ื ืคืจืก ืขื ื ื™ื”ื•ืœ ืชืฆื•ืจื” ืขืงื‘ื™, ื”ื•ื ืžืกืคืง ื‘ืกื™ืก ื ื™ืชืŸ ืœื”ืจื—ื‘ื” ืœืฉืžื™ืจื” ืขืœ ืื™ื›ื•ืช ืงื•ื“ TypeScript ื‘ืืจื’ื•ื ื™ ื”ื ื“ืกื” ื’ื“ื•ืœื™ื.

ื”ืฉื™ืœื•ื‘ ืฉืœ ESLint ื‘ื™ืŸ ื™ื›ื•ืœืช ื”ื”ืจื—ื‘ื”, ื‘ื’ืจื•ืช ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ื•ืชืžื™ื›ื” ื—ื–ืงื” ื‘-TypeScript ื”ืคืš ืื•ืชื” ืœืคืœื˜ืคื•ืจืžืช ื”-linting ื“ื” ืคืงื˜ื• ืขื‘ื•ืจ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ืืจื’ื•ื ื™ื™ื ืจื‘ื™ื.

ื›ืœื™ ืœื™ื˜ื•ืฉ ื—ืœื•ืคื™ื™ื ืฉืœ TypeScript

ื›ืœื™ื™ืชืจื•ื ื•ืช ืขื™ืงืจื™ื™ืืžื’ื‘ืœื•ืช
TSLint (ื”ื•ืฆื ืžืฉื™ืžื•ืฉ)ืžืฉื•ืœื‘ ื‘ืขื‘ืจ ืขื ื›ืœื™ TypeScriptื”ื•ืฆื ืžืฉื™ืžื•ืฉ ืจืฉืžื™ืช ืœื˜ื•ื‘ืช ESLint
ืจืืฃ (ืชืžื™ื›ื” ื‘-TypeScript ืžืชืคืชื—ืช)ื‘ื™ืฆื•ืขื™ ืกื™ืœื•ืง ืกื™ื‘ื™ื ืžื”ื™ืจื™ื ื‘ืžื™ื•ื—ื“ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืขื“ื™ื™ืŸ ืžืชืคืชื—ืช
ืกืจื™ืงื” ืขืžื•ืงื”ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืชืงื“ื ืขื‘ื•ืจ JavaScript ื•-TypeScriptื”ืชืืžื” ืื™ืฉื™ืช ืžื•ื’ื‘ืœืช ืฉืœ ื›ืœืœื™ื ื‘ื”ืฉื•ื•ืื” ืœ-ESLint
Semgrepื ื™ืชื•ื— ืงื•ื“ ืžื‘ื•ืกืก ืชื‘ื ื™ื•ืช ืจื‘ ืขื•ืฆืžื”ื ื“ืจืฉืช ื™ืฆื™ืจืช ื›ืœืœ ืœืงื‘ืœืช ื”ืชื•ืฆืื•ืช ื”ื˜ื•ื‘ื•ืช ื‘ื™ื•ืชืจ
MegaLinterืฆื•ื‘ืจ ืžืกืคืจ ื—ื™ื‘ื•ืจื™ ืœื™ื ื˜ืจ ืขื‘ื•ืจ ืฆื™ื ื•ืจื•ืช CIื“ื•ืจืฉ ืชืฆื•ืจื” ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ืฉืœ TypeScript

ืชืฆืคื™ื•ืช ืขืœ ืืกื˜ืจื˜ื’ื™ื•ืช ืœื™ื ื˜ื™ื ื’ ื‘-TypeScript

ื›ืœื™ ื™ืฆื™ืจืช ืงืฉืจื™ื (linting) ืฉืœ TypeScript ื—ื™ื™ื‘ื™ื ืœืื–ืŸ ื‘ื™ืŸ ื’ืžื™ืฉื•ืช ืœืขืงื‘ื™ื•ืช ื‘ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ื’ื“ื•ืœื•ืช. ESLint ืžืกืคืงืช ืคืœื˜ืคื•ืจืžื” ืžืงื•ื‘ืœืช ื”ืชื•ืžื›ืช ื”ืŸ ื‘ื ื™ืชื•ื— ืกืคืฆื™ืคื™ ืœืฉืคื” ื•ื”ืŸ ื‘ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืกื’ืจื•ืช ืจื‘ื•ืช. ื’ืžื™ืฉื•ืช ื–ื• ืžืืคืฉืจืช ืœืืจื’ื•ื ื™ื ืœืชืงื ืŸ ืืช ืžื“ื™ื ื™ื•ืช ื”ื™ืฆื™ืจืช ืงืฉืจื™ื ืชื•ืš ืชืžื™ื›ื” ื‘ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื™ื™ืฉื•ืžื™ื.

ื‘ืชื™ืงื™ ืชื•ื›ื ื” ืืจื’ื•ื ื™ื™ื, ืฉื›ื‘ื•ืช ืžืกื•ื’ TypeScript ืžืฉื•ืœื‘ื•ืช ื‘ื“ืจืš ื›ืœืœ ืขื ื›ืœื™ ื‘ื“ื™ืงื” ืื•ื˜ื•ืžื˜ื™ื™ื ื•ื ื™ืชื•ื— ืกื˜ื˜ื™. ื™ื—ื“, ืฉื›ื‘ื•ืช ืืœื• ืžืกื™ื™ืขื•ืช ืœื”ื‘ื˜ื™ื— ืฉื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืฉืœ TypeScript ื™ื™ืฉืืจื• ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื”, ืฆืคื•ื™ื™ื ื•ืžื•ืชืืžื™ื ืœืชืงื ื™ ืคื™ืชื•ื— ืืจื’ื•ื ื™.

ื›ืœื™ React Linting ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจืช Frontend ืืจื’ื•ื ื™ืช

ื™ื™ืฉื•ืžื™ React ืžืคืขื™ืœื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžืžืฉืงื™ ืžืฉืชืžืฉ ืžื•ืจื›ื‘ื™ื ื‘ืžืขืจื›ื•ืช ืืจื’ื•ื ื™ื•ืช, ื›ื•ืœืœ ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืคื ื™ืžื™ื™ื, ืคื•ืจื˜ืœื™ ืœืงื•ื—ื•ืช ื•ืคืœื˜ืคื•ืจืžื•ืช ืžืกื—ืจ ืืœืงื˜ืจื•ื ื™ ื’ื“ื•ืœื•ืช. ื™ื™ืฉื•ืžื™ื ืืœื” ื›ื•ืœืœื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžืคืชื—ื™ื ืจื‘ื™ื ื”ืชื•ืจืžื™ื ืจื›ื™ื‘ื™ื, ื•ื•ื™ื ื•ืœื•ื’ื™ืงืช ื ื™ื”ื•ืœ ืžืฆื‘ื™ื ืขืœ ืคื ื™ ืžืื’ืจื™ื ืืจื•ื›ื™ ื˜ื•ื•ื—. ืœืœื ืกื˜ื ื“ืจื˜ื™ื ืขืงื‘ื™ื™ื ืฉืœ ืงื™ื“ื•ื“, ื‘ืกื™ืกื™ ืงื•ื“ ืฉืœ React ื™ื›ื•ืœื™ื ืœืฆื‘ื•ืจ ื‘ื”ื“ืจื’ื” ื“ืคื•ืกื™ ืจื›ื™ื‘ื™ื ืœื ืขืงื‘ื™ื™ื, ื˜ื™ืคื•ืœ ื‘ืžืฆื‘ื™ื ืฉื‘ื™ืจื™ื ื•ืืชื’ืจื™ ืชื—ื–ื•ืงื”.

ื›ืœื™ Linting ืžืกื™ื™ืขื™ื ืœื”ืชืžื•ื“ื“ ืขื ืกื™ื›ื•ื ื™ื ืืœื” ืขืœ ื™ื“ื™ ื–ื™ื”ื•ื™ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ื“ืคื•ืกื™ื ื‘ืขื™ื™ืชื™ื™ื ื‘ืจื›ื™ื‘ื™ React ื•ื‘ืงื•ื“ JavaScript ืื• TypeScript. ื›ืืฉืจ ื”ื ืžืฉื•ืœื‘ื™ื ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืคื™ืชื•ื— ื•ื‘ืฆื™ื ื•ืจื•ืช CI, ื›ืœื™ Linting ืื•ื›ืคื™ื ืขืงื‘ื™ื•ืช ืื“ืจื™ื›ืœื™ืช ื•ืžืคื—ื™ืชื™ื ืืช ื”ืกื‘ื™ืจื•ืช ืœื”ื—ื“ืจืช ื‘ืื’ื™ื ื”ืงืฉื•ืจื™ื ืœืฉื™ืžื•ืฉ ืœื ื ื›ื•ืŸ ื‘ืžื—ื–ื•ืจ ื”ื—ื™ื™ื ืฉืœ React ืื• ื“ืคื•ืกื™ Hook.

ESLint ืขื ืชื•ืกืฃ React

ืืชืจ ืจืฉืžื™: ESLint

ESLint, ื‘ืฉื™ืœื•ื‘ ืขื ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ ืชื•ืกืคื™ React, ื”ืคื›ื” ืœื’ื™ืฉืช ื”-linting ื”ื“ื•ืžื™ื ื ื˜ื™ืช ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ React. eslint-plugin-react ื• eslint-plugin-react-hooks ื—ื‘ื™ืœื•ืช ืžืจื—ื™ื‘ื•ืช ืืช ืžื ื•ืข ื”ื›ืœืœื™ื ืฉืœ ESLint ื›ื“ื™ ืœื”ื‘ื™ืŸ ืชื‘ื ื™ื•ืช ืจื›ื™ื‘ื™ React, ืชื—ื‘ื™ืจ JSX ื•ื›ืœืœื™ ืžื—ื–ื•ืจ ื—ื™ื™ื ืฉืœ Hook. ื ื™ืชื•ื— ื–ื”, ื”ืžื•ื“ืข ืœืžืกื’ืจืช, ืžืกื™ื™ืข ืœืฆื•ื•ืชื™ื ืœืื›ื•ืฃ ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืกืคืฆื™ืคื™ื•ืช ืœืคื™ืชื•ื— React.

ืžื›ื™ื•ื•ืŸ ืฉืคืจื•ื™ืงื˜ื™ื ืจื‘ื™ื ืฉืœ Frontend ืืจื’ื•ื ื™ ื›ื‘ืจ ืžืฉืชืžืฉื™ื ื‘-ESLint ืขื‘ื•ืจ linting ื‘-JavaScript ืื• TypeScript, ื”ื•ืกืคืช ืชืžื™ื›ื” ื‘-React ื“ืจืš ืชื•ืกืคื™ื ืžืืคืฉืจืช ืœืฆื•ื•ืชื™ื ืœืฉืžื•ืจ ืขืœ framework linting ืื—ื™ื“ ืขืœ ืคื ื™ ื›ืœ ืžื—ืกื ื™ืช ื”-frontend ืฉืœื”ื.

ื ื™ืชื•ื— ืœื™ื ื˜ ืกืคืฆื™ืคื™ ืœ-React

ืชื•ืกืฃ React ESLint ืžื ืชื— ืงื•ื“ ืจื›ื™ื‘ื™ื ื•ืชื‘ื ื™ื•ืช JSX ื›ื“ื™ ืœื–ื”ื•ืช ื“ืคื•ืกื™ื ืฉืขืœื•ืœื™ื ืœื”ื•ื‘ื™ืœ ืœืฉื’ื™ืื•ืช ื‘ื–ืžืŸ ืจื™ืฆื” ืื• ื‘ืขื™ื•ืช ืชื—ื–ื•ืงื”.

ืงื˜ื’ื•ืจื™ื•ืช ื›ืœืœื™ื ื ืคื•ืฆื•ืช ื›ื•ืœืœื•ืช:

  • ืฉื™ืžื•ืฉ ื ื›ื•ืŸ ื‘-Hooks ื•ื‘ืžืขืจื›ื™ ืชืœื•ื™ื•ืช ืฉืœ React
  • ืžืชืŸ ืฉืžื•ืช ื•ืžื‘ื ื” ืขืงื‘ื™ื™ื ืœืจื›ื™ื‘ื™ื
  • ื–ื™ื”ื•ื™ ืฉืœ ืื‘ื™ื–ืจื™ื ื•ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ
  • ืื™ืžื•ืช ืชื—ื‘ื™ืจ ื•ืฉื™ืžื•ืฉ ื‘ืžืืคื™ื™ื ื™ื ืฉืœ JSX
  • ืžื ื™ืขืช ืฉื™ืžื•ืฉ ื‘ืฉื™ื˜ื•ืช ืžื—ื–ื•ืจ ื—ื™ื™ื ืœื ื‘ื˜ื•ื—ื•ืช

ื‘ื“ื™ืงื•ืช ืืœื• ืžืกื™ื™ืขื•ืช ื‘ืžื ื™ืขืช ื‘ืขื™ื•ืช ืขื“ื™ื ื•ืช ื›ื’ื•ืŸ ืชืœื•ืช ื—ืกืจื” ื‘-Hook, ืืฉืจ ืขืœื•ืœื•ืช ืœื’ืจื•ื ืœื”ืชื ื”ื’ื•ืช ื‘ืœืชื™ ืฆืคื•ื™ื” ืฉืœ ืจื›ื™ื‘ื™ื.

ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—

React linting ืขื ESLint ืžืฉืชืœื‘ ื‘ืงืœื•ืช ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืžื•ื“ืจื ื™ื•ืช ืฉืœ ื—ื–ื™ืช ืงืฆื”.

ื“ืคื•ืกื™ ืคืจื™ืกื” ืื•ืคื™ื™ื ื™ื™ื ืœืืจื’ื•ื ื™ื ื›ื•ืœืœื™ื:

  • ื”ืจืฆืช ื‘ื“ื™ืงื•ืช ESLint ื‘ืžื”ืœืš ืื™ืžื•ืช ื‘ืงืฉืช ืžืฉื™ื›ื”
  • ื‘ื™ืฆื•ืข ื‘ื“ื™ืงื•ืช lint ื‘ืฉืœื‘ื™ ืฆื™ื ื•ืจ CI/CD
  • ืžืชืŸ ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื‘ืืžืฆืขื•ืช ื”ืจื—ื‘ื•ืช IDE
  • ืื›ื™ืคืช ืกืคื™ lint ื‘ืžื”ืœืš ืžื™ื–ื•ื’ื™ ืžืื’ืจื™ื

ืฉื™ืœื•ื‘ ื–ื” ืžืืคืฉืจ ืœืžืคืชื—ื™ื ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ื‘ืฉืœื‘ ืžื•ืงื“ื ืฉืœ ืชื”ืœื™ืš ื”ืคื™ืชื•ื— ื‘ืžืงื•ื ืœื’ืœื•ืช ืื•ืชืŸ ื‘ืžื”ืœืš ื ื™ืคื•ื™ ืฉื’ื™ืื•ืช ื‘ื–ืžืŸ ืจื™ืฆื”.

ืชืฆื•ืจื” ื•ื™ื›ื•ืœืช ื”ืจื—ื‘ื”

ืžื•ื“ืœ ื”ืชืฆื•ืจื” ืฉืœ ESLint ืžืืคืฉืจ ืœืืจื’ื•ื ื™ื ืœื”ืชืื™ื ืžื“ื™ื ื™ื•ืช linting ืœืืจื›ื™ื˜ืงื˜ื•ืจืช React ืฉืœื”ื.

ื“ื•ื’ืžืื•ืช ืœืืœืžื ื˜ื™ื ื”ื ื™ืชื ื™ื ืœื”ื’ื“ืจื” ื›ื•ืœืœื•ืช:

  • ื”ืคืขืœืช ืงื‘ื•ืฆื•ืช ื›ืœืœื™ื ืกืคืฆื™ืคื™ื•ืช ืœ-React
  • ื”ื’ื“ืจืช ืžื•ืกื›ืžื•ืช ืœืžืชืŸ ืฉืžื•ืช ืœืจื›ื™ื‘ื™ื
  • ืื›ื™ืคืช ืžื“ื™ื ื™ื•ืช ืฉื™ืžื•ืฉ ื‘ื•ื•
  • ืฉื™ืœื•ื‘ ื›ืœืœื™ ืขื™ืฆื•ื‘ ื“ืจืš Prettier

ืฆื•ื•ืชื™ื ื™ื›ื•ืœื™ื ื’ื ืœื™ืฆื•ืจ ื—ื‘ื™ืœื•ืช ืชืฆื•ืจื” ืžืฉื•ืชืคื•ืช ืฉืžืชืงื ื•ืช ืืช ื›ืœืœื™ ื”-lint ื‘ืžืกืคืจ ืคืจื•ื™ืงื˜ื™ื ืฉืœ React.

ืฉื™ืงื•ืœื™ื ืชืคืขื•ืœื™ื™ื

ื™ื™ืฉื•ืžื™ React ื’ื“ื•ืœื™ื ืžืฉืœื‘ื™ื ืœืขื™ืชื™ื ืงืจื•ื‘ื•ืช TypeScript, ืžืกื’ืจื•ืช ื ื™ื”ื•ืœ ืžืฆื‘ื™ื ื•ื›ืœื™ ื‘ื ื™ื™ื” ื›ืžื• Webpack ืื• Vite. ื‘ืกื‘ื™ื‘ื•ืช ื›ืืœื”, ื™ืฉ ืœื ื”ืœ ื‘ืงืคื™ื“ื” ืืช ืชืฆื•ืจื•ืช ESLint ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืชืื™ืžื•ืช ืขื ืชื•ืกืคื™ื ื•ืžืกื’ืจื•ืช ืžืจื•ื‘ื™ื.

ืœืžืจื•ืช ืžื•ืจื›ื‘ื•ืช ื–ื•, ESLint ืขื ืชื•ืกืคื™ React ื ื•ืชืจื” ื’ื™ืฉืช ื”-linting ื”ื ืคื•ืฆื” ื‘ื™ื•ืชืจ ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ React ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ืžืฉืชืœื‘ืช ื‘ืฆื•ืจื” ื—ืœืงื” ืขื ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืงื™ื™ืžื•ืช ืฉืœ JavaScript ื•-TypeScript.

ืขื‘ื•ืจ ืฆื•ื•ืชื™ Frontend ืืจื’ื•ื ื™ื™ื, React linting ืžืกื™ื™ืข ืœืฉืžื•ืจ ืขืœ ืขืงื‘ื™ื•ืช ืืจื›ื™ื˜ืงื˜ื•ื ื™ืช ืชื•ืš ื”ืคื—ืชืช ื”ืกื™ื›ื•ืŸ ืœื”ื›ื ืกืช ืฉื’ื™ืื•ืช ื–ืžืŸ ืจื™ืฆื” ื‘ื”ื™ืจืจื›ื™ื•ืช ืจื›ื™ื‘ื™ื ืžื•ืจื›ื‘ื•ืช.

ื›ืœื™ ืจื™ืืงื˜ ื—ืœื•ืคื™ื™ื ืœืœื™ื˜ื™ื ื’

ื›ืœื™ื™ืชืจื•ื ื•ืช ืขื™ืงืจื™ื™ืืžื’ื‘ืœื•ืช
ืกื•ื ืืจืœื™ื ื˜ืžื–ื”ื” ื‘ืขื™ื•ืช ืชื—ื–ื•ืงื” ื•ื‘ืื’ื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื ื‘ืงื•ื“ Reactื“ื•ืจืฉ ืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ ืกื•ื ืืจ
ืกืจื™ืงื” ืขืžื•ืงื”ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืชืงื“ื ืขื‘ื•ืจ ืžืกื’ืจื•ืช JavaScriptื”ืชืืžื” ืื™ืฉื™ืช ืžื•ื’ื‘ืœืช ืฉืœ ื›ืœืœื™ื ืกืคืฆื™ืคื™ื™ื ืœ-React
Semgrepืžื ื•ืข ื ื™ืชื•ื— ื’ืžื™ืฉ ืžื‘ื•ืกืก ืชื‘ื ื™ื•ืชื“ื•ืจืฉ ืคื™ืชื•ื— ื›ืœืœื™ื ืขื‘ื•ืจ ืชื‘ื ื™ื•ืช React
MegaLinterืžืคืขื™ืœ ืžืกืคืจ ืจื‘ ืฉืœ ืžืขืจื›ื•ืช ืชืžื™ื›ื” ื‘ืงืฆื” ื”ืงื“ืžื™ ื‘ืชื•ืš ืฆื™ื ื•ืจื•ืช CIืชืงื•ืจืช ืชืฆื•ืจื” ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื
ืงื•ื“ ืืงืœื™ืื ื™ื˜ื•ืจ ืื™ื›ื•ืช ืžืจื›ื–ื™ ื•ืฆื‘ื™ืจืช ืกื™ื‘ื™ืืชืœื•ื™ ื‘ืžื ื•ืขื™ ืกื™ื‘ื™ื ื—ื™ืฆื•ื ื™ื™ื

ืชืฆืคื™ื•ืช ืขืœ ืืกื˜ืจื˜ื’ื™ื•ืช linting ื‘-React

ื›ืœื™ ื”-linting ืฉืœ React ืžืชืžืงื“ื™ื ื‘ืขื™ืงืจ ื‘ืื›ื™ืคืช ืชื‘ื ื™ื•ืช ืจื›ื™ื‘ื™ื ื ื›ื•ื ื•ืช ื•ื‘ืžื ื™ืขืช ื˜ืขื•ื™ื•ืช ื ืคื•ืฆื•ืช ื”ืงืฉื•ืจื•ืช ืœ-hooks. ืžืขืจื›ืช ื”ืคืœืื’ื™ืŸ ืฉืœ ESLint ืžืืคืฉืจืช ืœืืจื’ื•ื ื™ื ืœื”ืจื—ื™ื‘ ืืช ื›ื™ืกื•ื™ ื”-lint ืขืœ ืคื ื™ JSX, TypeScript ื•ืกื‘ื™ื‘ื•ืช ื‘ื ื™ื™ืช Frontend ืžื•ื“ืจื ื™ื•ืช.

ื‘ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ืืจื’ื•ื ื™ื•ืช, React linting ืคื•ืขืœ ื‘ื“ืจืš ื›ืœืœ ืœืฆื“ ืžืกื’ืจื•ืช ื‘ื“ื™ืงื” ื•ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ื™ื ื”ืžืขืจื™ื›ื™ื ื‘ื™ืฆื•ืขื™ื ื•ื—ืฉืฉื•ืช ืื‘ื˜ื—ื”. ื™ื—ื“, ื›ืœื™ื ืืœื” ืžืกื™ื™ืขื™ื ื‘ืฉืžื™ืจื” ืขืœ ื™ืฆื™ื‘ื•ืช ื•ืชื—ื–ื•ืงื” ื‘ืชื•ืš ืชื™ืงื™ ื™ื™ืฉื•ืžื™ื ื’ื“ื•ืœื™ื ืฉืœ ืงืฆื” ื”ืงืฆื”.

ื›ืœื™ ื™ืฆื™ืจืช ืงืฉืจ ื‘-JavaScript ืขื‘ื•ืจ ืชื™ืงื™ ืืชืจื™ื ื•ืฉื™ืจื•ืชื™ื ืืจื’ื•ื ื™ื™ื

JavaScript ื ื•ืชืจื” ืฉืคืช ื™ืกื•ื“ ื‘ืžืขืจื›ื•ืช ืืจื’ื•ื ื™ื•ืช, ื”ื›ื•ืœืœืช ื™ื™ืฉื•ืžื™ื ืžื‘ื•ืกืกื™ ื“ืคื“ืคืŸ, ืฉื™ืจื•ืชื™ Node.js, ืกืงืจื™ืคื˜ื™ื ืœืื•ื˜ื•ืžืฆื™ื” ื•ื›ืœื™ื ื—ื•ืฆื™ ืคืœื˜ืคื•ืจืžื•ืช. ืžื›ื™ื•ื•ืŸ ืฉืงื•ื“ JavaScript ืžืชืคืชื— ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืžื”ื™ืจื•ืช ื•ืžืชื•ื—ื–ืง ืขืœ ื™ื“ื™ ืฆื•ื•ืชื™ื ืžืจื•ื‘ื™ื, ืขืงื‘ื™ื•ืช ื•ืžื ื™ืขืช ืคื’ืžื™ื ื”ื•ืคื›ื•ืช ืœืงืฉื•ืช ืœืœื ืื›ื™ืคื” ืื•ื˜ื•ืžื˜ื™ืช. ื‘ืชื™ืงื™ ืชื™ืงื™ื ื’ื“ื•ืœื™ื, ื”ืืชื’ืจ ื”ืขื™ืงืจื™ ืื™ื ื• ืจืง ืžืกืคืจ ื”ืžืื’ืจื™ื ืืœื ื’ื ืžื’ื•ื•ืŸ ืกื‘ื™ื‘ื•ืช ื–ืžืŸ ื”ืจื™ืฆื” ื•ื“ืคื•ืกื™ ื”ืงื™ื“ื•ื“ ื”ืžืชืงื™ื™ืžื™ื ื™ื—ื“ ื‘ืืจื’ื•ืŸ ื™ื—ื™ื“.

ื›ืœื™ Linting ืžืกืคืงื™ื ืฉื›ื‘ืช ืžื“ื™ื ื™ื•ืช ืื•ื˜ื•ืžื˜ื™ืช ื”ืžื–ื”ื” ืžื‘ื ื™ื ืžื•ืขื“ื™ื ืœืฉื’ื™ืื•ืช, ืื•ื›ืคืช ืกื˜ื ื“ืจื˜ื™ื ื•ืžืคื—ื™ืชื” ืกื—ื™ืคื” ื‘ื™ืŸ ืฆื•ื•ืชื™ื. ื‘ืฆื™ื ื•ืจื•ืช ืืกืคืงื” โ€‹โ€‹ืืจื’ื•ื ื™ื™ื, linting ื‘-JavaScript ื”ื•ืคืš ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืฉืขืจ ื”ืฉื•ืœื˜ ื‘ื–ื›ืื•ืช ืœืžื™ื–ื•ื’ ื•ืžื•ื ืข ืืช ื”ื›ื ืกืชื ืฉืœ ื“ืคื•ืกื™ื ืฉืžืขืจืขืจื™ื ืืช ื”ืชื ื”ื’ื•ืช ื”ื™ื™ืฆื•ืจ.

ESLint

ืืชืจ ืจืฉืžื™: ESLint

ESLint ื”ื™ื ืžืกื’ืจืช ื”-linting ื”ื ืคื•ืฆื” ื‘ื™ื•ืชืจ ืขื‘ื•ืจ JavaScript ื•ื”ืคื›ื” ืœืกื˜ื ื“ืจื˜ ื”ืืจื’ื•ื ื™ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืœืื›ื™ืคื” ืžื‘ื•ืกืกืช ื›ืœืœื™ื ื‘ื‘ืกื™ืกื™ ืงื•ื“ ืฉืœ frontend ื•-Node.js. ื”ืจืœื•ื•ื ื˜ื™ื•ืช ื”ืืจื’ื•ื ื™ืช ืฉืœื” ื ื•ื‘ืขืช ืžืฉื ื™ ืžืืคื™ื™ื ื™ื: ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืฉืœ ืชื•ืกืคื™ื ื‘ื•ื’ืจืช ื•ืžื•ื“ืœ ืชืฆื•ืจื” ื”ืžืืคืฉืจ ืœืืจื’ื•ื ื™ื ืœื”ื’ื“ื™ืจ ืงื•ื•ื™ ื‘ืกื™ืก ืขืงื‘ื™ื™ื ืฉืœ ืžื“ื™ื ื™ื•ืช ืขืœ ืคื ื™ ืžืื•ืช ืžืื’ืจื™ื.

ื‘ื ื™ื’ื•ื“ ืœ-linters ืฉืžื’ื™ืขื™ื ืขื ืกื˜ ื—ื•ืงื™ื ืงื‘ื•ืข, ESLint ืžืชืคืงื“ ื›ืžื ื•ืข ื—ื•ืงื™ื ื”ื ื™ืชืŸ ืœื”ื’ื“ืจื”. ื—ื•ืงื™ื ื™ื›ื•ืœื™ื ืœืื›ื•ืฃ ืžื•ืกื›ืžื•ืช ืกื’ื ื•ื ื™ื•ืช, ืœื–ื”ื•ืช ื“ืคื•ืกื™ื ืœื ื‘ื˜ื•ื—ื™ื ื•ืœืงื•ื“ื“ ืคืจืงื˜ื™ืงื•ืช ืกืคืฆื™ืคื™ื•ืช ืœืืจื’ื•ืŸ. ื’ืžื™ืฉื•ืช ื–ื• ืชื•ืžื›ืช ื‘ืžื•ื“ืœื™ื ืฉืœ ืžืžืฉืœ ืืจื’ื•ื ื™ ืฉื‘ื”ื ืžื“ื™ื ื™ื•ืช ืงื™ื“ื•ื“ ื—ื™ื™ื‘ืช ืœื”ืกืชื’ืœ ื‘ื™ืŸ ืžืกื’ืจื•ืช, ืœื‘ื ื•ืช ืฆื™ื ื•ืจื•ืช ื•ื’ื‘ื•ืœื•ืช ืฉื™ืจื•ืช.

ื”ืชื ื”ื’ื•ืช ืžื ื•ืข ื”ื›ืœืœื™ื ื•ื”ื™ืงืฃ ื”ื–ื™ื”ื•ื™

ESLint ืžืขืจื™ื›ื” ืืช ืงื•ื“ ื”ืžืงื•ืจ ืฉืœ JavaScript ืขืœ ื™ื“ื™ ื ื™ืชื•ื—ื• ืœืขืฅ ืชื—ื‘ื™ืจ ืžื•ืคืฉื˜ ื•ื™ื™ืฉื•ื ื‘ื“ื™ืงื•ืช ื›ืœืœื™ื ื›ื ื’ื“ ื”ืžื‘ื ื” ื”ืžืชืงื‘ืœ. ื’ื™ืฉื” ื–ื• ืžืืคืฉืจืช ื–ื™ื”ื•ื™ ื“ืคื•ืกื™ื ืฉืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžื•ื‘ื™ืœื™ื ืœืคื’ืžื™ื ื‘ื–ืžืŸ ืจื™ืฆื” ืื• ืจื’ืจืกื™ื•ืช ืชื—ื–ื•ืงื”.

ืงื˜ื’ื•ืจื™ื•ืช ื ืคื•ืฆื•ืช ืฉืœ ื›ืœืœื™ ืืจื’ื•ืŸ ื›ื•ืœืœื•ืช:

  • ื–ื™ื”ื•ื™ ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ, ืงื•ื“ ืฉืื™ื ื• ื ื’ื™ืฉ ื•ืœื•ื’ื™ืงื” ื—ืฉื•ื“ื”
  • ื”ื’ื‘ืœื•ืช ืขืœ ืžืืคื™ื™ื ื™ ืฉืคื” ืœื ื‘ื˜ื•ื—ื™ื ื•ื›ืคื™ื™ื” ืžืจื•ืžื–ืช
  • ืžื“ื™ื ื™ื•ืช ืขืงื‘ื™ืช ืฉืœ ืžืชืŸ ืฉืžื•ืช ื•ื™ื™ื‘ื•ื โ€‹โ€‹ืžื•ื“ื•ืœื™ื
  • ื›ืœืœื™ื ืกืคืฆื™ืคื™ื™ื ืœืžืกื’ืจืช ืขื‘ื•ืจ React, Node.js ื•ืžืกื’ืจื•ืช ื‘ื“ื™ืงื”
  • ื“ืคื•ืกื™ื ืžื•ื›ื•ื•ื ื™ ืื‘ื˜ื—ื” ื‘ืืžืฆืขื•ืช ืชื•ืกืคื™ื ื™ื™ืขื•ื“ื™ื™ื

ื‘ืคื•ืขืœ, ืฆื•ื•ืชื™ ืืจื’ื•ืŸ ืžืฉืชืžืฉื™ื ื‘-ESLint ื›ื“ื™ ืœืื›ื•ืฃ ื‘ืกื™ืก ื™ืฆื™ื‘ ืฉืœ ื ื›ื•ื ื•ืช ื•ืขืงื‘ื™ื•ืช ืงื•ื“. ื”ืคืจื™ืกื•ืช ื”ื™ืขื™ืœื•ืช ื‘ื™ื•ืชืจ ื ืžื ืขื•ืช ืžืฆืคื™ืคื•ืช ื›ืœืœื™ื ืžื•ื’ื–ืžืช ื‘ื”ืชื—ืœื”, ืžื›ื™ื•ื•ืŸ ืฉื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ืžืžืฆืื™ื ื™ื›ื•ืœื” ืœืคื’ื•ืข ื‘ืžื”ื™ืจื•ืช ื‘ืืžื•ืŸ ื”ืžืคืชื—ื™ื ื‘ืฉืขืจื™ ื’ื™ืฉื”.

ื“ืคื•ืกื™ ืื™ื ื˜ื’ืจืฆื™ื” ื‘ืฆื™ื ื•ืจื•ืช ืืกืคืงื”

ESLint ืžืฉืชืœื‘ ื‘ืจื•ื‘ ืžืขืจื›ื•ืช CI/CD ื•ื›ืœื™ ื‘ื ื™ื™ื” ืžื•ื“ืจื ื™ื™ื. ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช, ื”ื›ืœื™ ืžื•ื’ื“ืจ ื‘ื“ืจืš ื›ืœืœ ื’ื ื›ืžื ื’ื ื•ืŸ ืžืฉื•ื‘ ืœืžืคืชื—ื™ื ืžืงื•ืžื™ ื•ื’ื ื›ืฉืขืจ ืฆื™ื ื•ืจ.

ื“ืคื•ืกื™ื ื ืคื•ืฆื™ื ื›ื•ืœืœื™ื:

  • ื‘ื“ื™ืงื•ืช lint ืœืคื ื™ commit ื›ื“ื™ ืœืžื ื•ืข ื”ืคืจื•ืช ื‘ืจื•ืจื•ืช ืœื”ื™ื›ื ืก ืœืžืื’ืจ
  • ืฉืขืจื™ lint ืฉืœ ื‘ืงืฉื•ืช ืžืฉื™ื›ื” (Pull request lint gates) ื”ืื•ื›ืคื™ื ืกื˜ื ื“ืจื˜ื™ื ื›ืœืœ-ืžืื’ืจ
  • ื‘ื™ืฆื•ืข lint ืฉืœ Monorepo ืขื ืื—ืกื•ืŸ ื‘ืžื˜ืžื•ืŸ ืœืฉืœื™ื˜ื” ื‘ื”ืฉืคืขืช ื–ืžืŸ ื”ืจื™ืฆื”
  • ื—ื‘ื™ืœื•ืช ืชืฆื•ืจื” ืžืจื›ื–ื™ื•ืช ื”ืžืฉื•ืชืคื•ืช ื‘ื™ืŸ ืฆื•ื•ืชื™ื ื•ืคืจื•ื™ืงื˜ื™ื ืžืจื•ื‘ื™ื

ืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื” ื–ื• ืฉืœ ืชืฆื•ืจื” ื”ื™ื ืœืจื•ื‘ ืงืจื™ื˜ื™ืช ื‘ืืจื’ื•ื ื™ื ื’ื“ื•ืœื™ื. ื‘ืœืขื“ื™ื”, ืฆื•ื•ืชื™ื ื ืคืจื“ื™ื ื ื•ื˜ื™ื ืœื™ืฆื•ืจ ืžืขืจื›ื™ ื›ืœืœื™ื ืฉื•ื ื™ื ื”ืคื•ื’ืขื™ื ื‘ืขืงื‘ื™ื•ืช ื›ืœืœ-ืืจื’ื•ื ื™ืช.

ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืฉืœ ืชื•ืกืคื™ื ื•ื™ื›ื•ืœืช ื”ืจื—ื‘ื”

ืžืขืจื›ืช ื”ืชื•ืกืคื™ื ืฉืœ ESLint ื”ื™ื ืื—ื“ ื”ืžื‘ื“ื™ืœื™ื ืื•ืชื” ื‘ื™ื•ืชืจ. ืืจื’ื•ื ื™ื ื™ื›ื•ืœื™ื ืœืืžืฅ ืžื ื•ืข ื™ืฆื™ืจืช ื˜ืงืกื˜ ื™ื—ื™ื“ ืชื•ืš ื”ืจื—ื‘ืชื• ืขื‘ื•ืจ ืžืกื’ืจื•ืช ื•ืชื‘ื ื™ื•ืช ืกืคืฆื™ืคื™ื•ืช.

ืฉื™ืขื•ืจื™ ืชื•ืกืคื™ื ื‘ืขืœื™ ื”ืฉืคืขื” ื’ื‘ื•ื”ื” ื›ื•ืœืœื™ื:

  • ื›ืœืœื™ ืžืกื’ืจืช ืขื‘ื•ืจ React, Vue, Node.js ื•ืกื‘ื™ื‘ื•ืช ื‘ื“ื™ืงื”
  • ืฉื™ืœื•ื‘ TypeScript ื‘ืืžืฆืขื•ืช ืฉื›ื‘ื•ืช ืžื ืชื— ื•ืชื•ืกืคื™ื ื™ื™ืขื•ื“ื™ื•ืช
  • ื›ืœืœื™ื ืžืžื•ืงื“ื™ ืื‘ื˜ื—ื” ื”ืžื–ื”ื™ื ื“ืคื•ืกื™ JavaScript ื—ืฉื•ื“ื™ื
  • ืฉื™ืœื•ื‘ื™ ื™ื™ืฉื•ืจ ืขื™ืฆื•ื‘ ืขื ื›ืœื™ ืขื™ืฆื•ื‘ ืงื•ื“

ื™ื›ื•ืœืช ื”ืจื—ื‘ื” ื–ื• ืžืืคืฉืจืช ืœ-ESLint ืœืชืคืงื“ ื›ืคืœื˜ืคื•ืจืžืช linting ืžืจื›ื–ื™ืช ื‘ื”ืงืฉืจื™ื ืžื’ื•ื•ื ื™ื ืฉืœ ืฉื™ืžื•ืฉ ื‘-JavaScript, ื”ื—ืœ ืžื™ื™ืฉื•ืžื™ ื“ืคื“ืคืŸ ื•ืขื“ ืœืฉื™ืจื•ืชื™ backend.

ืฉื™ืงื•ืœื™ื ืชืคืขื•ืœื™ื™ื ืชื—ืช ืงื ื” ืžื™ื“ื”

ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืฉืœ JavaScript ื™ื›ื•ืœื™ื ืœื”ื˜ื™ืœ ืœื—ืฅ ื‘ื™ืฆื•ืข ืขืœ ืฆื™ื ื•ืจื•ืช CI. ื–ื” ื‘ื“ืจืš ื›ืœืœ ืžืชื‘ื˜ื ื‘ื–ืžื ื™ ืจื™ืฆื” ืืจื•ื›ื™ื ื™ื•ืชืจ ืฉืœ ืฆื™ื ื•ืจื•ืช, ืžื—ืœื•ืงืช ืžืฉืื‘ื™ื ื‘ืจืฆื™ื ืžืฉื•ืชืคื™ื, ืื• ื”ืชื ื”ื’ื•ืช ื’ื™ืฉื” ืœื ืขืงื‘ื™ืช ื›ืืฉืจ ืžืื’ืจื™ื ืžื›ื™ืœื™ื ืงื‘ืฆื™ื ืฉื ื•ืฆืจื• ืื• ืคืจื“ื™ื’ืžื•ืช ืงื™ื“ื•ื“ ืžืขื•ืจื‘ื•ืช.

ืืžืฆืขื™ ื”ืคื—ืชื” ืืจื’ื•ื ื™ื™ื ื›ื•ืœืœื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช:

  • ืฉื™ื ื•ื™ื™ื ืžืฆื˜ื‘ืจื™ื ื‘ืงื‘ืฆื™ื ืฉื”ืฉืชื ื• ื‘ืžื”ืœืš ื‘ืงืฉื•ืช ืžืฉื™ื›ื”
  • ืืกื˜ืจื˜ื’ื™ื•ืช ืื—ืกื•ืŸ ื‘ืžื˜ืžื•ืŸ ืœื”ืคื—ืชืช ืชืงื•ืจื” ืฉืœ ื ื™ืชื•ื— ื—ื•ื–ืจ
  • ืงื‘ื™ืขืช ื‘ืกื™ืก ืฉืœ ื›ืœืœื™ื ืขื‘ื•ืจ ืžื•ื“ื•ืœื™ื ืžื“ื•ืจ ืงื•ื“ื ืœืชืžื™ื›ื” ื‘ืชื™ืงื•ืŸ ืžื“ื•ืจื’
  • ื—ืœื•ืงืช ื“ืจื’ื•ืช ื—ื•ืžืจื” ื”ืžื‘ื—ื™ื ื” ื‘ื™ืŸ ืงื˜ื’ื•ืจื™ื•ืช "ืžื™ื–ื•ื’ ื‘ืœื•ืงื™ื" ื•"ืžืขืงื‘ ืื—ืจ ื ื™ืงื•ื™"

ESLint ื”ื•ืคืš ืœื™ืขื™ืœ ื‘ื™ื•ืชืจ ื›ืืฉืจ ื”ื•ื ืžื˜ื•ืคืœ ื›ื›ืœื™ ืกืคืฆื™ืคื™ ืœืžืคืชื— ืฉืชืฆื•ืจืชื• ืžื•ื’ื“ืจืช ืื“-ื”ื•ืง ืœื›ืœ ืžืื’ืจ.

ื”ื“ื•ืžื™ื ื ื˜ื™ื•ืช ืฉืœ ESLint ื‘-linting ื‘-JavaScript ืืจื’ื•ื ื™ ื ื•ื‘ืขืช ื‘ื“ืจืš ื›ืœืœ ืžื™ื›ื•ืœืชื” ืœืฉืžืฉ ื›ืžื ื•ืข lint ื™ื—ื™ื“ ืขืœ ืคื ื™ ืžืกืคืจ ืžืกื’ืจื•ืช ืชื•ืš ืชืžื™ื›ื” ื‘ืžืžืฉืœ ืขืงื‘ื™ ื‘ืืžืฆืขื•ืช ืชืฆื•ืจื•ืช ืžืฉื•ืชืคื•ืช ื•ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœ CI.

ื›ืœื™ ืœื™ื˜ื•ืฉ ื—ืœื•ืคื™ื™ื ืฉืœ JavaScript

ื›ืœื™ื™ืชืจื•ื ื•ืช ืขื™ืงืจื™ื™ืืžื’ื‘ืœื•ืช
JSHintืžื•ื“ืœ ืคืฉื•ื˜ ืœื”ืกืจืช ืกื™ื‘ื™ื; ืื™ืžื•ืฅ ื ืจื—ื‘ ืžื‘ื—ื™ื ื” ื”ื™ืกื˜ื•ืจื™ืชืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืคื—ื•ืช ืžื•ื“ืจื ื™ืช; ืชืžื™ื›ื” ื—ืœืฉื” ื™ื•ืชืจ ื‘ืžืกื’ืจืช
StandardJSืกื˜ ื›ืœืœื™ื ื“ืขืชื ื™ ืขื ืชืฆื•ืจื” ืžื™ื ื™ืžืœื™ืชื’ืžื™ืฉื•ืช ืžื•ื’ื‘ืœืช ืœื”ืชืืžืช ืžื“ื™ื ื™ื•ืช ืืจื’ื•ื ื™ืช
Semgrepื–ื™ื”ื•ื™ ืชื‘ื ื™ื•ืช ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ืจื‘ ืขื•ืฆืžื” ืžืขื‘ืจ ืœื›ืœืœื™ ืกื™ื‘ื™ื ืžืกื•ืจืชื™ื™ืื ื“ืจืฉืช ืžื•ืžื—ื™ื•ืช ื‘ื›ืชื™ื‘ืช ื›ืœืœื™ื ืœืงื‘ืœืช ื›ื™ืกื•ื™ ืžื™ื˜ื‘ื™
MegaLinterืชื–ืžื•ืจ CI ืฉืœ ื›ืœื™ lint ืžืจื•ื‘ื™ื ืขืœ ืคื ื™ ืืจื˜ื™ืคืงื˜ื™ื ืฉืœ ืžืื’ืจื™ืืžื•ืกื™ืฃ ืชืงื•ืจื” ืฉืœ ื–ืžืŸ ืจื™ืฆื” ืฉืœ ืฆื™ื ื•ืจ ื‘ืžืื’ืจื™ื ื’ื“ื•ืœื™ื
ืงื•ื“ ืืงืœื™ืื“ื™ื•ื•ื— ื•ืฆื‘ื™ืจื” ืžืจื›ื–ื™ื™ื ื‘ื™ืŸ ืžืื’ืจื™ืืชืœื•ื™ ื‘ืžื ื•ืขื™ lint ื—ื™ืฆื•ื ื™ื™ื ืขื‘ื•ืจ ืžืžืฆืื™ JS

ืชืฆืคื™ื•ืช ืžืขืฉื™ื•ืช ืœื ื™ื”ื•ืœ ื—ื™ื‘ื•ืจื™ JavaScript

โ€Linting ืฉืœ JavaScript ืืจื’ื•ื ื™ ืžืฆืœื™ื— ื›ืืฉืจ ืกื—ืฃ ื”ืชืฆื•ืจื” ื ืฉืœื˜ ื•ืคืœื˜ ื”-lint ื ืฉืืจ ื ื™ืชืŸ ืœืคืขื•ืœื”. ESLint ืžืกืคืง ื’ืžื™ืฉื•ืช ื—ื–ืงื”, ืืš ืื•ืชื” ื’ืžื™ืฉื•ืช ืขืœื•ืœื” ืœื™ืฆื•ืจ ืคื™ืฆื•ืœ ืื ืชื”ืœื™ื›ื™ ื‘ืขืœื•ืช ืขืœ ื›ืœืœื™ื ื•ืชื”ืœื™ื›ื™ ืคืจื™ืกื” ืื™ื ื ืžื ื•ื”ืœื™ื. ืืจื’ื•ื ื™ื ื‘ื“ืจืš ื›ืœืœ ืžื™ื™ืฆื‘ื™ื ืืช ื”ืžืžืฉืœ ื‘ืืžืฆืขื•ืช ื—ื‘ื™ืœื•ืช ืชืฆื•ืจื” ืžืฉื•ืชืคื•ืช, ืื›ื™ืคื” ืžืฆื˜ื‘ืจืช ื•ืžื•ื“ืœื™ื ืฉืœ ื‘ื™ืฆื•ืข CI ืืฉืจ ืฉื•ืžืจื™ื ืขืœ ื”ืชื ื”ื’ื•ืช ืฆื™ื ื•ืจ ืฆืคื•ื™ื” ืชื•ืš ืฉื™ืคื•ืจ ื”ื“ืจื’ืชื™ ืฉืœ ื”ืชืื™ืžื•ืช ื‘ื™ืŸ ืžืื’ืจื™ื.

ื”ืกื‘ืจ ืขืœ ื ื™ืชื•ื— ืœื™ื ื˜ื™: ืžืฉืžืขื•ืช, ืžื˜ืจื” ื•ืชืคืงื™ื“ ื‘ืงื™ื“ื•ื“ ืžื•ื“ืจื ื™

ืžืงื•ืจื• ืฉืœ ืžื•ืฉื’ ื”-linting ื‘ืฉื™ื˜ื•ืช ืคื™ืชื•ื— ืชื•ื›ื ื” ืžื•ืงื“ืžื•ืช, ื‘ื”ืŸ ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ื›ืœื™ื ืื•ื˜ื•ืžื˜ื™ื™ื ืœื–ื™ื”ื•ื™ ื“ืคื•ืกื™ื ื—ืฉื•ื“ื™ื ื‘ืงื•ื“ ื”ืžืงื•ืจ ืœืคื ื™ ืงื•ืžืคื™ืœืฆื™ื” ืื• ื‘ื™ืฆื•ืข. ื‘ืกื‘ื™ื‘ื•ืช ื”ื ื“ืกื” ืžื•ื“ืจื ื™ื•ืช, linting ื”ืชืคืชื— ืœืžื ื’ื ื•ืŸ ืื‘ื˜ื—ืช ืื™ื›ื•ืช ื‘ืกื™ืกื™ ื”ืžืขืจื™ืš ืงื•ื“ ืขื‘ื•ืจ ืขืงื‘ื™ื•ืช ืกื’ื ื•ื ื™ืช, ืคื’ืžื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื ื•ืกื™ื›ื•ื ื™ ืชื—ื–ื•ืงื”. ื‘ืžืงื•ื ืœื”ืชืžืงื“ ืจืง ื‘ื ื›ื•ื ื•ืช ืชื—ื‘ื™ืจ, ื›ืœื™ linting ืžื•ื“ืจื ื™ื™ื ืžื ืชื—ื™ื ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“, ื“ืคื•ืกื™ื ืื“ืจื™ื›ืœื™ื™ื ื•ืžื•ืกื›ืžื•ืช ืกืคืฆื™ืคื™ื•ืช ืœืฉืคื”.

ื‘ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ ืคื™ืชื•ื— ืืจื’ื•ื ื™, ื‘ื”ืŸ ืฆื•ื•ืชื™ื ื’ื“ื•ืœื™ื ืชื•ืจืžื™ื ืœื‘ืกื™ืกื™ ืงื•ื“ ืžืฉื•ืชืคื™ื, ื›ืœื™ linting ืžืžืœืื™ื ืชืคืงื™ื“ ื—ื™ื•ื ื™ ื‘ืžืžืฉืœ. ื”ื ืžืืคืฉืจื™ื ืœืืจื’ื•ื ื™ื ืœืื›ื•ืฃ ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื•ืœืฉืžื•ืจ ืขืœ ืขืงื‘ื™ื•ืช ื‘ื™ืŸ ืžืื’ืจื™ื, ืฉื™ืจื•ืชื™ื ื•ืฆื•ื•ืชื™ ืคื™ืชื•ื—. ื›ืืฉืจ ื”ื ืžืฉื•ืœื‘ื™ื ื‘ืฆื™ื ื•ืจื•ืช ืคื™ืชื•ื—, ื›ืœื™ linting ืžืฉืžืฉื™ื ื›ืžืขืจื›ื•ืช ื”ืชืจืขื” ืžื•ืงื“ืžื•ืช ื”ืžื“ื’ื™ืฉื•ืช ื“ืคื•ืกื™ื ื‘ืขื™ื™ืชื™ื™ื ืœืคื ื™ ืฉื”ื ืžืชืคืฉื˜ื™ื ื‘ืกื‘ื™ื‘ื•ืช ื™ื™ืฆื•ืจ.

ื™ืฆื™ืจืช ืœื™ื˜ื™ื ื‘ืงื•ื“ ื•ืœื™ื˜ื™ื ื‘ืงื™ื“ื•ื“

ื‘ื“ื™ืงืช ืงื•ื“ (Code linting) ืžืชื™ื™ื—ืกืช ืœืชื”ืœื™ืš ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืกืจื™ืงืช ืงื•ื“ ืžืงื•ืจ ื›ื“ื™ ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ืฉืขืฉื•ื™ื•ืช ืœื”ืฉืคื™ืข ืขืœ ื”ืงืจื™ืื•ืช, ื”ืชื—ื–ื•ืงื” ืื• ื”ืืžื™ื ื•ืช. ื”ืžื•ื ื— "lint" ืžืงื•ืจื• ื‘ื›ืœื™ ืขื–ืจ ื™ื•ื ื™ืงืก ืžื•ืงื“ื ืฉื ื™ืชื— ืชื•ื›ื ื™ื•ืช C ื›ื“ื™ ืœื–ื”ื•ืช ืžื‘ื ื™ื ื—ืฉื•ื“ื™ื ืฉืขืœื•ืœื™ื ืœื”ื•ื‘ื™ืœ ืœื‘ืขื™ื•ืช ื‘ื–ืžืŸ ืจื™ืฆื”. ืขื ื”ื–ืžืŸ, ื”ืžื•ืฉื’ ื”ืชืจื—ื‘ ื•ื›ืœืœ ื”ืขืจื›ื” ืžื‘ื•ืกืกืช ื›ืœืœื™ื ืฉืœ ืงื•ื“ ื‘ืฉืคื•ืช ืชื›ื ื•ืช ืจื‘ื•ืช.

ื‘ืคื™ืชื•ื— ืชื•ื›ื ื” ืžื•ื“ืจื ื™, ื›ืœื™ ืœื™ื ื˜ื™ื ื’ ืžื‘ืฆืขื™ื ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ื‘ื“ื™ืงื•ืช ื‘ื”ืชืื ืœืฉืคื” ื•ืœืžืกื’ืจืช ื”ืžื ื•ืชื—ืช. ื›ืœื™ื ืืœื” ื‘ื“ืจืš ื›ืœืœ ื‘ื•ื—ื ื™ื ืืช ืžื‘ื ื” ื”ืงื•ื“, ืžื•ืกื›ืžื•ืช ืžืชืŸ ืฉืžื•ืช, ื›ืœืœื™ ืขื™ืฆื•ื‘ ื•ืฉื’ื™ืื•ืช ืœื•ื’ื™ื•ืช ืืคืฉืจื™ื•ืช. ืขืœ ื™ื“ื™ ื”ื“ื’ืฉืช ื‘ืขื™ื•ืช ืืœื• ื‘ืฉืœื‘ ืžื•ืงื“ื ืฉืœ ืชื”ืœื™ืš ื”ืคื™ืชื•ื—, ืœื™ื ื˜ื™ื ื’ ืžืกื™ื™ืข ื‘ื”ืคื—ืชืช ืžืกืคืจ ื”ืคื’ืžื™ื ื”ืžื’ื™ืขื™ื ืœืฉืœื‘ื™ื ืžืื•ื—ืจื™ื ื™ื•ืชืจ ืฉืœ ื‘ื“ื™ืงื•ืช ืื• ืคืจื™ืกืช ื™ื™ืฆื•ืจ.

ืœื™ื ื˜ื™ื ื’ ืžืฉืžืฉ ื‘ื“ืจืš ื›ืœืœ ื‘ืžื”ืœืš ืžืกืคืจ ืฉืœื‘ื™ื ืฉืœ ืชื”ืœื™ืš ื”ืขื‘ื•ื“ื” ืฉืœ ื”ืคื™ืชื•ื—:

  • ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื‘ืชื•ืš ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—
  • ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื‘ืžื”ืœืš ืื™ืžื•ืช ื‘ืงืฉืช commit ืื• pull
  • ืื›ื™ืคืช ืื™ื›ื•ืช ื‘ืžื”ืœืš ื‘ื™ืฆื•ืข ืฆื™ื ื•ืจ CI/CD
  • ื ื™ืชื•ื— ืชืงื•ืคืชื™ ืฉืœ ืžืื’ืจื™ื ืœืžืขืงื‘ ืื—ืจ ืžื’ืžื•ืช ืชื—ื–ื•ืงื”

ืžื ื’ื ื•ื ื™ื ืืœื” ืžืืคืฉืจื™ื ืœืฆื•ื•ืชื™ ืคื™ืชื•ื— ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ื‘ืžื”ื™ืจื•ืช ื•ืœืฉืžื•ืจ ืขืœ ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ืขืงื‘ื™ื•ืช ื‘ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื.

ืžื” ื–ื” ืงื•ื“ ืœื™ื ื˜ื™ื ื’ ื•ืžืฉืžืขื•ืช ื”ืœื™ื ื˜ื™ื ื’?

ืžืฉืžืขื•ืช ื”ืžื•ื ื— "linting" ื—ื•ืจื’ืช ืžื‘ื“ื™ืงื•ืช ืขื™ืฆื•ื‘ ืคืฉื•ื˜ื•ืช. ื›ืœื™ linting ืžื•ื“ืจื ื™ื™ื ืžื‘ืฆืขื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื ื™ืชื•ื— ืžืขืžื™ืง ื™ื•ืชืจ ืฉืžืขืจื™ืš ืืช ืžื‘ื ื” ื”ืงื•ื“ ื•ื›ื™ืฆื“ ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืžื‘ื ื™ ืชื›ื ื•ืช ืžืกื•ื™ืžื™ื. ืœื“ื•ื’ืžื”, ื›ืœื™ linting ืขืฉื•ื™ื™ื ืœื–ื”ื•ืช ืžืฉืชื ื™ื ืฉืื™ื ื ื‘ืฉื™ืžื•ืฉ, ื ืชื™ื‘ื™ ืงื•ื“ ืฉืื™ื ื ื ื’ื™ืฉื™ื ืื• ื“ืคื•ืกื™ื ืžืกื•ื›ื ื™ื ืฉืขืœื•ืœื™ื ืœื”ื•ื‘ื™ืœ ืœืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื”.

ื‘ืฉืคื•ืช ืจื‘ื•ืช, ืฉืคืช ืงื•ื“ (linting) ืื•ื›ืคืช ื’ื ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ื”ืžื•ืžืœืฆื•ืช ืขืœ ื™ื“ื™ ืงื”ื™ืœืช ื”ืฉืคื•ืช ืื• ืžืชื—ื–ืงื™ ื”ืžืกื’ืจื•ืช. ื”ื ื—ื™ื•ืช ืืœื• ืขื•ื–ืจื•ืช ืœืžืคืชื—ื™ื ืœืขืงื•ื‘ ืื—ืจ ื“ืคื•ืกื™ื ื”ืžืฉืคืจื™ื ืืช ืงืจื™ืื•ืช ื”ืงื•ื“ ื•ืžืคื—ื™ืชื™ื ืืช ื”ืกื‘ื™ืจื•ืช ืœื”ื—ื“ืจืช ื‘ืื’ื™ื ืขื“ื™ื ื™ื.

ื‘ืกื‘ื™ื‘ื•ืช ื”ื ื“ืกืช ืชื•ื›ื ื” ืืจื’ื•ื ื™ื•ืช, ื™ืฆื™ืจืช ื—ื™ื‘ื•ืจื™ื (linting) ืžืฉืจืชืช ื‘ื“ืจืš ื›ืœืœ ืฉืœื•ืฉ ืžื˜ืจื•ืช ืขื™ืงืจื™ื•ืช:

  • ืกื˜ื ื“ืจื˜ื™ื–ืฆื™ื” ืฉืœ ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ื‘ื™ืŸ ืฆื•ื•ืชื™ื ื•ืžืื’ืจื™ื
  • ื’ื™ืœื•ื™ ืžื•ืงื“ื ืฉืœ ื˜ืขื•ื™ื•ืช ืชื›ื ื•ืช ืœืคื ื™ ื‘ื“ื™ืงื•ืช ื‘ื–ืžืŸ ืจื™ืฆื”
  • ื™ื›ื•ืœืช ืชื—ื–ื•ืงื” ืžืฉื•ืคืจืช ื‘ืืžืฆืขื•ืช ืžื‘ื ื” ืงื•ื“ ืขืงื‘ื™

ื™ืชืจื•ื ื•ืช ืืœื” ื”ื•ืคื›ื™ื ืœื—ืฉื•ื‘ื™ื ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ื’ื“ืœื™ื ืื• ื›ืืฉืจ ืฉื™ืจื•ืชื™ื ืžืจื•ื‘ื™ื ื—ื•ืœืงื™ื ืกืคืจื™ื•ืช ื•ืชื‘ื ื™ื•ืช ืื“ืจื™ื›ืœื™ื•ืช ืžืฉื•ืชืคื•ืช.

ื ื™ืชื•ื— ืœื™ื ื˜ื™ (linting) ื‘ืฆื™ื ื•ืจื•ืช ืคื™ืชื•ื— ืžื•ื“ืจื ื™ื™ื

ื ื™ืชื•ื— ืœื™ื ื˜ื™ื ื’ ืžืขืจื™ืš ืืช ืงื•ื“ ื”ืžืงื•ืจ ื‘ื”ืชืื ืœืžืขืจื›ื•ืช ื›ืœืœื™ื ืžื•ื’ื“ืจื•ืช ืžืจืืฉ ื”ืžืชืืจื•ืช ื ื•ื”ืœื™ ืงื™ื“ื•ื“ ืžืงื•ื‘ืœื™ื. ืžืขืจื›ื•ืช ื›ืœืœื™ื ืืœื• ื™ื›ื•ืœื•ืช ืœื”ืชื‘ืกืก ืขืœ ืžื“ืจื™ื›ื™ ืกื’ื ื•ืŸ ืฉืคื”, ืžื•ืกื›ืžื•ืช ืžืกื’ืจืช ืื• ืžื“ื™ื ื™ื•ืช ื”ื ื“ืกื” ืกืคืฆื™ืคื™ืช ืœืืจื’ื•ืŸ. ืชื”ืœื™ืš ื”ื ื™ืชื•ื— ื›ืจื•ืš ื‘ื“ืจืš ื›ืœืœ ื‘ื ื™ืชื•ื— ืงื•ื“ ื”ืžืงื•ืจ ื•ื”ืขืจื›ืชื• ืžื•ืœ ื›ืœืœื™ื ืืœื” ื›ื“ื™ ืœื–ื”ื•ืช ื”ืคืจื•ืช.

ื‘ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ืืจื’ื•ื ื™ื•ืช, ื ื™ืชื•ื— ื‘ื“ื™ืงืช ื‘ืขื™ื•ืช ื™ืฆื™ืจืชื™ื•ืช (linting) ืคื•ืขืœ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ื—ืœืง ืžืืกื˜ืจื˜ื’ื™ื™ืช ื‘ืงืจืช ืื™ื›ื•ืช ืจื‘-ืฉื›ื‘ืชื™ืช. ื”ืฉื›ื‘ื” ื”ืจืืฉื•ื ื” ืžื–ื”ื” ื‘ืขื™ื•ืช ืกื’ื ื•ื ื™ื•ืช ื•ืžื‘ื ื™ื•ืช ื‘ืืžืฆืขื•ืช ื›ืœื™ ื‘ื“ื™ืงืช ื‘ืขื™ื•ืช ื™ืฆื™ืจืชื™ื•ืช (linting). ืฉื›ื‘ื•ืช ื ื•ืกืคื•ืช ืขืฉื•ื™ื•ืช ืœื›ืœื•ืœ ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื”, ืคืœื˜ืคื•ืจืžื•ืช ื ื™ืชื•ื— ืกื˜ื˜ื™, ืกืจื™ืงืช ืื‘ื˜ื—ื” ื•ืžืขืจื›ื•ืช ื ื™ื˜ื•ืจ ื‘ื–ืžืŸ ืจื™ืฆื”.

ื ื™ืชื•ื— ืžื•ื“ืจื ื™ ืฉืœ ืชื”ืœื™ื›ื™ื ืžื‘ื•ืกืกื™ ืื™ื ื˜ื’ืจืฆื™ื” ืžืฉื•ืœื‘ ื‘ื“ืจืš ื›ืœืœ ื‘ืฆื™ื ื•ืจื•ืช ืื™ื ื˜ื’ืจืฆื™ื” ืจืฆื™ืคื™ื, ืฉื ื”ื•ื ืžืฉืžืฉ ื›ืฉืขืจ ืื™ื›ื•ืช ืื•ื˜ื•ืžื˜ื™. ื›ืืฉืจ ืฉื™ื ื•ื™ื™ ืงื•ื“ ืžืคืจื™ื ื›ืœืœื™ื ืžื•ื’ื“ืจื™ื, ื”ืฆื™ื ื•ืจ ื™ื›ื•ืœ ืœื—ืกื•ื ืžื™ื–ื•ื’ื™ื ืื• ืœื“ืจื•ืฉ ืชื™ืงื•ืŸ ืœืคื ื™ ืฉื”ืฉื™ื ื•ื™ื™ื ื™ืชืงื‘ืœื•.

ืื›ื™ืคื” ืื•ื˜ื•ืžื˜ื™ืช ื–ื• ืžืกื™ื™ืขืช ืœืฉืžื•ืจ ืขืœ ืกื˜ื ื“ืจื˜ื™ื ื”ื ื“ืกื™ื™ื ืขืงื‘ื™ื™ื ื‘ืืจื’ื•ื ื™ ืคื™ืชื•ื— ื’ื“ื•ืœื™ื. ืขื ื”ื–ืžืŸ, ื ื™ืชื•ื— ืงื•ื“ ืงื•ื“ ืชื•ืจื ืœืื™ื›ื•ืช ืงื•ื“ ื’ื‘ื•ื”ื” ื™ื•ืชืจ, ืชื—ื–ื•ืงื” ืžืฉื•ืคืจืช ื•ื”ืคื—ืชืช ื”ืกื™ื›ื•ืŸ ื”ืชืคืขื•ืœื™ ื‘ืžืขืจื›ื•ืช ืชื•ื›ื ื” ืžื•ืจื›ื‘ื•ืช.

ืœื™ื ื˜ื™ื ื’ ื›ื‘ืกื™ืก ืœืื™ื›ื•ืช ืชื•ื›ื ื” ื‘ืช ืงื™ื™ืžื

ื›ืœื™ ืœื™ื ื˜ื™ื ื’ ื”ืชืคืชื—ื• ืžื‘ื•ืงืจื™ ืชื—ื‘ื™ืจ ืคืฉื•ื˜ื™ื ืœืžืจื›ื™ื‘ ื—ื™ื•ื ื™ ื‘ื ื™ื”ื•ืœ ื”ื ื“ืกืช ืชื•ื›ื ื” ืžื•ื“ืจื ื™. ื‘ื™ืŸ ืฉืคื•ืช ื•ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืฉืœ ืคื™ืชื•ื—, ืœื™ื ื˜ื™ื ื’ ืžืชืคืงื“ ื›ื™ื•ื ื›ืฉื›ื‘ืช ืื›ื™ืคื” ืื•ื˜ื•ืžื˜ื™ืช ื”ืžืงื“ืžืช ืขืงื‘ื™ื•ืช ืงื™ื“ื•ื“, ืžื•ื ืขืช ื˜ืขื•ื™ื•ืช ืชื›ื ื•ืช ื ืคื•ืฆื•ืช ื•ืขื•ื–ืจืช ืœืฆื•ื•ืชื™ื ืœืฉืžื•ืจ ืขืœ ื‘ืกื™ืกื™ ืงื•ื“ ืงืจื™ืื™ื ื•ื ื™ืชื ื™ื ืœืชื—ื–ื•ืงื”. ืขื‘ื•ืจ ืืจื’ื•ื ื™ื ื”ืžื ื”ืœื™ื ืชื™ืงื™ ืขื‘ื•ื“ื•ืช ื’ื“ื•ืœื™ื ืฉืœ ื™ื™ืฉื•ืžื™ื ื•ืฉื™ืจื•ืชื™ื, ื™ื›ื•ืœืช ื–ื• ื”ื•ืคื›ืช ื‘ืขืœืช ืขืจืš ื‘ืžื™ื•ื—ื“ ืžื›ื™ื•ื•ืŸ ืฉืกืงื™ืจืช ืงื•ื“ ื™ื“ื ื™ืช ืœื‘ื“ื” ืื™ื ื” ื™ื›ื•ืœื” ืœืื›ื•ืฃ ืกื˜ื ื“ืจื˜ื™ื ื‘ืื•ืคืŸ ืžื”ื™ืžืŸ ืขืœ ืคื ื™ ืžืื•ืช ืžืื’ืจื™ื.

ื”ื”ืฉื•ื•ืื” ื‘ื™ืŸ ืคืœื˜ืคื•ืจืžื•ืช ื™ืฆื™ืจืช ืงื•ื“ (linting) ืืจื’ื•ื ื™ื•ืช ืžื“ื’ื™ืฉื” ื›ื™ืฆื“ ื›ืœื™ื ืฉื•ื ื™ื ืžื˜ืคืœื™ื ื‘ื”ื™ื‘ื˜ื™ื ืฉื•ื ื™ื ืฉืœ ืชื”ืœื™ืš ืื›ื™ืคืช ื”ืื™ื›ื•ืช. ื—ืœืง ืžื”ืคืชืจื•ื ื•ืช ืžืชืžืงื“ื™ื ื‘ื ื™ื˜ื•ืจ ื ื™ื”ื•ืœ ืžืจื›ื–ื™ ื•ื ื™ื˜ื•ืจ ืžืื’ืจื™ื, ื‘ืขื•ื“ ืฉืื—ืจื™ื ื ื•ืชื ื™ื ืขื“ื™ืคื•ืช ืœืชื–ืžื•ืจ ืฆื™ื ื•ืจื•ืช ืงื•ื“ (CI pipeline) ืื• ืœืฉื™ืœื•ื‘ ื™ืฉื™ืจ ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืžืคืชื—ื™ื. ื›ืœื™ื ื›ืžื• MegaLinter ื•-GitHub Super-Linter ืขื•ื–ืจื™ื ืœืชืงื ืŸ ืืช ื‘ื™ืฆื•ืข ื”-lint ื‘ื™ืŸ ืฆื™ื ื•ืจื•ืช, ื‘ืขื•ื“ ืฉืคืœื˜ืคื•ืจืžื•ืช ื›ืžื• Code Climate, DeepSource ื•-Codacy ืžืกืคืงื•ืช ื ืจืื•ืช ืจื—ื‘ื” ื™ื•ืชืจ ืœืžื’ืžื•ืช ืื™ื›ื•ืช ื”ืงื•ื“ ื‘ืฆื•ื•ืชื™ื ื•ื‘ืคืจื•ื™ืงื˜ื™ื.

ื›ืœื™ ืœื™ื ื˜ื™ื ื’ ืกืคืฆื™ืคื™ื™ื ืœืฉืคื” ื ื•ืชืจื™ื ืงืจื™ื˜ื™ื™ื ื’ื ื‘ืกื‘ื™ื‘ื•ืช ื”ื ื“ืกื” ื’ื“ื•ืœื•ืช. ื›ืœื™ ืœื™ื ื˜ื™ื ื’ ืžื•ื“ืขื™ื ืœ-Framework ืขื‘ื•ืจ ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ื›ืžื• Python, Java, C# ื•-frontend stacks ืžื•ื“ืจื ื™ื™ื ืื•ื›ืคื™ื ื“ืคื•ืกื™ื ื™ื™ื—ื•ื“ื™ื™ื ืœืฉืคื•ืช ื•ืœ-Frameworks ื”ืœืœื•. ื›ืืฉืจ ื”ื ืžืฉื•ืœื‘ื™ื ื›ืจืื•ื™ ื‘ืฆื™ื ื•ืจื•ืช CI ื•ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—, ื›ืœื™ื ืืœื” ืขื•ื–ืจื™ื ืœื”ื‘ื˜ื™ื— ืฉืชืงื ื™ ืงื™ื“ื•ื“ ื™ื™ืฉืืจื• ืขืงื‘ื™ื™ื ืœืœื ืงืฉืจ ืœืžื”ื™ืจื•ืช ืฉื‘ื” ืฆื•ื•ืชื™ ื”ืคื™ืชื•ื— ืžืชืจื—ื‘ื™ื.

ืขื ื–ืืช, ื›ืœื™ ืขื™ื‘ื•ื“ ืฉื‘ื‘ื™ (linting) ืžื ืชื—ื™ื ืงื•ื“ ื‘ืขื™ืงืจ ื‘ืจืžืช ื”ื›ืœืœ ื•ื”ืงื•ื‘ืฅ. ื‘ืขื•ื“ ืฉื’ื™ืฉื” ื–ื• ื™ืขื™ืœื” ืœื–ื™ื”ื•ื™ ื‘ืขื™ื•ืช ืกื’ื ื•ื ื™ื•ืช ื•ื˜ืขื•ื™ื•ืช ืชื›ื ื•ืช ื ืคื•ืฆื•ืช, ื”ื™ื ืœื ืชืžื™ื“ ื—ื•ืฉืคืช ืชืœื•ืช ืžื‘ื ื™ื•ืช ืขืžื•ืงื•ืช ื™ื•ืชืจ ืื• ืงืฉืจื™ื ื”ืชื ื”ื’ื•ืชื™ื™ื ื‘ืชื•ืš ืžืขืจื›ื•ืช ืžื•ืจื›ื‘ื•ืช. ืขื‘ื•ืจ ืืจื’ื•ื ื™ื ื”ืžืคืขื™ืœื™ื ืชื™ืงื™ ื™ื™ืฉื•ืžื™ื ื’ื“ื•ืœื™ื ืžืจื•ื‘ื™ ืฉืคื•ืช, ื”ื‘ื ืช ืงืฉืจื™ื ืื“ืจื™ื›ืœื™ื™ื ืจื—ื‘ื™ื ื™ื•ืชืจ ืืœื” ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื—ืฉื•ื‘ื” ืœื ืคื—ื•ืช ืžืื›ื™ืคืช ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“.

ื‘ืคื•ืขืœ, ืฆื•ื•ืชื™ ื”ื ื“ืกื” ืืจื’ื•ื ื™ื™ื ืจื‘ื™ื ืžืืžืฆื™ื ืืกื˜ืจื˜ื’ื™ื™ืช ืื™ื›ื•ืช ืžืจื•ื‘ื“ืช. ื›ืœื™ Linting ืžืกืคืงื™ื ื–ื™ื”ื•ื™ ืžื•ืงื“ื ืฉืœ ื‘ืขื™ื•ืช ืงื™ื“ื•ื“ ื•ืื•ื›ืคื™ื ื ื”ืœื™ื ืขืงื‘ื™ื™ื, ื‘ืขื•ื“ ืฉืคืœื˜ืคื•ืจืžื•ืช ื ื™ืชื•ื— ื ื•ืกืคื•ืช ืžืฆื™ืขื•ืช ื ืจืื•ืช ืขืžื•ืงื” ื™ื•ืชืจ ืœืชืœื•ืช ืื“ืจื™ื›ืœื™ืช ื•ื”ืชื ื”ื’ื•ืช ื‘ื™ืฆื•ืข ืขืœ ืคื ื™ ืžืขืจื›ื•ืช ืฉืœืžื•ืช. ืฉื™ืœื•ื‘ ื–ื” ืžืืคืฉืจ ืœืืจื’ื•ื ื™ื ืœืฉืžื•ืจ ื”ืŸ ืขืœ ืžืฉืžืขืช ื‘ืจืžืช ื”ืงื•ื“ ื•ื”ืŸ ืขืœ ืชื•ื‘ื ื•ืช ื‘ืจืžืช ื”ืžืขืจื›ืช ื›ื›ืœ ืฉืคืœื˜ืคื•ืจืžื•ืช ื”ืชื•ื›ื ื” ื’ื“ืœื•ืช ื‘ืงื ื” ืžื™ื“ื” ื•ื‘ืžื•ืจื›ื‘ื•ืช.

ื›ืืฉืจ ืžื™ื•ืฉื ื‘ืฆื•ืจื” ืžื•ืฉื›ืœืช, ื’ื™ืฉื” ืœ-linting ื”ื•ืคื›ืช ืœื™ื•ืชืจ ืžื ื•ื—ื•ืช ืคื™ืชื•ื—. ื”ื™ื ื”ื•ืคื›ืช ืœืืžืฆืขื™ ื”ื’ื ื” ืžื‘ื ื™ ื”ืชื•ืžืš ื‘ืชื•ื›ื ื” ื ื™ืชื ืช ืœืชื—ื–ื•ืงื”, ืฆื™ื ื•ืจื•ืช ืืกืคืงื” โ€‹โ€‹ื™ืฆื™ื‘ื™ื ื•ืฉื™ื˜ื•ืช ื”ื ื“ืกื™ื•ืช ืขืงื‘ื™ื•ืช ื‘ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืชื•ื›ื ื” ืืจื’ื•ื ื™ื•ืช ืžื•ื“ืจื ื™ื•ืช.

ืชื•ื›ืŸ ื”ืขื ื™ื™ื ื™ื