ื”ืฉื•ื•ืื” ื‘ื™ืŸ ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ื™ื ืฉืœ ืจื•ื‘ื™

ื”ืฉื•ื•ืื” ื‘ื™ืŸ ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ื™ื ืฉืœ Ruby ืขื‘ื•ืจ ืฉืžื™ืจืช ืกืฃ ืฉืœ CI ื•ื‘ืงืจืช ืกื™ื›ื•ื ื™ื

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

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

ืกื™ื›ื•ืŸ ื ื™ืชื•ื— ืงื•ืจืœืฆื™ื”

Smart TS XL ืžืฉืžืฉ ื›ืคืœื˜ืคื•ืจืžืช ืชื•ื‘ื ื•ืช ืฉื”ื•ืคื›ืช ื ืชื•ื ื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืฉืœ Ruby ืœื‘ื™ื ื” ืืจื›ื™ื˜ืงื˜ื•ื ื™ืช ืžืขืฉื™ืช.

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

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

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

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

Smart TS XL ื›ืฉื›ื‘ืช ืฉืžื™ืจืช ืกืฃ ื•ืงื•ืจืœืฆื™ื” ืฉืœ ืกื™ื›ื•ื ื™ื ื‘-CI ืขื‘ื•ืจ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืฉืœ Ruby

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

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

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

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

ื ืจืื•ืช ืชืœื•ืช ื‘ื™ืŸ-ื›ืœื™ื™ื ืžืขื‘ืจ ืœื ืชื—ื™ Ruby ืžื‘ื•ื“ื“ื™ื

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

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

ื”ื™ื‘ื˜ื™ื ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ืžืจื›ื–ื™ื™ื ื›ื•ืœืœื™ื:

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

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

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

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

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

ื™ืชืจื•ื ื•ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื ืขื‘ื•ืจ ืงื”ืœ ื”ื™ืขื“ ื›ื•ืœืœื™ื:

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

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

ื ื•ืจืžืœื™ื–ืฆื™ื” ื•ืชืขื“ื•ืฃ ืื•ืชื•ืช ืขืœ ืคื ื™ ืฉืœื‘ื™ CI

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

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

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

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

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

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

ืขื‘ื•ืจ ืžื ื”ืœื™ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืจืืฉื™ื•ืช (CTO), ืžื•ื‘ื™ืœื™ ืคืœื˜ืคื•ืจืžื•ืช ื•ืื“ืจื™ื›ืœื™ ืžื•ื“ืจื ื™ื–ืฆื™ื”, ื”ื”ื—ืœื˜ื” ืœื”ืžืฉื™ืš ื•ืœืขืกื•ืง ื‘ืคืจื•ื™ืงื˜ื™ื ืชืœื•ื™ื” ื‘ืฉืืœื” ื”ืื ื”ืคืœื˜ืคื•ืจืžื” ืžืคื—ื™ืชื” ืืช ืื™ ื”ื•ื•ื“ืื•ืช ืžื‘ืœื™ ืœื”ื•ืกื™ืฃ ืชืงื•ืจื” ืชืคืขื•ืœื™ืช. ื”ืจืœื•ื•ื ื˜ื™ื•ืช ืฉืœ Smart TS XL ืœื ื™ืชื•ื— ืกื˜ื˜ื™ ืฉืœ Ruby ื˜ืžื•ื ื” ื‘ื™ื›ื•ืœืชื” ืœื”ืขืœื•ืช ืืช ื”ืฉื™ื—ื•ืช ืžืžืฆื‘ ืฉืœ ืขืžื™ื“ื” ื‘ื›ืœืœื™ื ืœื ื™ื”ื•ืœ ืกื™ื›ื•ื ื™ ืืกืคืงื”.

ืžื‘ื—ื™ื ื” ืคื•ื ืงืฆื™ื•ื ืœื™ืช, ื–ื” ืžืชื•ืจื’ื ืœ:

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

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

ื”ืฉื•ื•ืื” ื‘ื™ืŸ ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ื™ื ืฉืœ Ruby ืขื‘ื•ืจ ืฉืžื™ืจืช ืกืฃ ืฉืœ CI ื•ื‘ืงืจืช ืกื™ื›ื•ื ื™ื

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

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

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

  • ืฉืขืจ ื˜ืจื•ื-ืžื™ื–ื•ื’ ืžื”ื™ืจ ื•ื“ื˜ืจืžื™ื ื™ืกื˜ื™: ืจื•ื‘ื•ืงื•ืค, ืกื˜ื ื“ืจื“RB
  • ื–ื™ื”ื•ื™ ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื” ืกืคืฆื™ืคื™ื•ืช ืœืจื›ื‘ื•ืช: ื‘ืœื
  • ืื›ื™ืคืช ืžื“ื™ื ื™ื•ืช ืืจื’ื•ื ื™ืช ื‘ืžืื’ืจื™ื ืฉื•ื ื™ื: Semgrep, CodeQL
  • ื‘ืงืจืช ืกื—ืฃ ืžืžืฉืง ื‘ืžื”ืœืš ืฉื™ืคื•ืฅ: ืกื•ืจื‘ื”, ืชืœื•ืœ
  • ืชื—ื–ื•ืงื” ื•ืขื™ื‘ื•ื“ ืžื—ื“ืฉ ืฉืœ ื–ื™ื”ื•ื™ ื ืงื•ื“ื•ืช ื—ืžื•ืช: ืจื™ืง, ืจื•ื‘ื™ ืงืจื™ื˜ื™ืง
  • ื ื™ืชื•ื— ืื‘ื˜ื—ื” ืกืžื ื˜ื™ ืžืจื›ื–ื™ ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ: CodeQL
  • ื“ื™ื•ื•ื— ื•ื ืจืื•ืช ืžื’ืžื•ืช ืขื‘ื•ืจ ืžื ื”ื™ื’ื•ืช: ืจื•ื‘ื™ ืงืจื™ื˜ื™ืง

ืจื•ื‘ื•ืงื•ืค

ืืชืจ ืจืฉืžื™: ืจื•ื‘ื•ืงื•ืค

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

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

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

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

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

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

ืกื˜ื ื“ืจื˜ื™RB

ืืชืจ ืจืฉืžื™: ืกื˜ื ื“ืจื˜ื™RB

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

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

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

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

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

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

ื‘ืœื

ืืชืจ ืจืฉืžื™: ื‘ืœื

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

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

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

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

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

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

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

Semgrep

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

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

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

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

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

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

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

CodeQL

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

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

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

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

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

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

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

ืกื•ืจื‘ื”

ืืชืจ ืจืฉืžื™: ืกื•ืจื‘ื”

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

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

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

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

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

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

ืชึธืœื•ึผืœ

ืืชืจ ืจืฉืžื™: ืชึธืœื•ึผืœ

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

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

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

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

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

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

ืžื‘ื˜ ื”ืฉื•ื•ืืชื™ ืขืœ ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ื™ื ืฉืœ Ruby ืชื—ืช ืœื—ืฅ ืฉืœ CI ืืจื’ื•ื ื™

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

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

ื›ืœื™ืชืคืงื™ื“ ืขื™ืงืจื™ ื‘-CIืขื•ืžืง ื”ื ื™ืชื•ื—ื”ืชื ื”ื’ื•ืช ื‘ื™ืฆื•ืขื”ืชืืžืช ืฉืขืจ CIืžืฆื™ืื•ืช ืฉืœ ืงื ื” ืžื™ื“ื” ืืจื’ื•ื ื™ืžื’ื‘ืœื•ืช ืžื‘ื ื™ื•ืช
ืจื•ื‘ื•ืงื•ืคื™ืฆื™ืจืช ืžื•ื“ื‘ืงื•ืช ื•ืื›ื™ืคืช ืžื“ื™ื ื™ื•ืชืชื—ื‘ื™ืจื™ ื•ืžื‘ื ื™ืžื”ื™ืจ, ืžื‘ื•ืกืก ืงื‘ืฆื™ื, ื“ื˜ืจืžื™ื ื™ืกื˜ื™ื—ื–ืง ืขื‘ื•ืจ ืฉืขืจื™ ื˜ืจื•ื-ืžื™ื–ื•ื’ืžืชืจื—ื‘ ื”ื™ื˜ื‘ ื‘ื™ืŸ ืžื•ื ื•ืจืคื•; ื“ื•ืจืฉ ื ื™ื”ื•ืœ ืชืฆื•ืจื”ืื™ืŸ ื–ืจื™ืžืช ื ืชื•ื ื™ื, ืื™ืŸ ืžื•ื“ืœื™ื ืฉืœ ื‘ื™ืฆื•ืข, ืชื•ื‘ื ื•ืช ืื‘ื˜ื—ื” ืžื•ื’ื‘ืœื•ืช
ืกื˜ื ื“ืจื˜ื™RBืขื™ืฆื•ื‘ ื•ืขื™ืฆื•ื‘ ืื—ื™ื“ื™ืืชึทื—ื‘ึผึดื™ืจึดื™ืžื”ื™ืจ, ื“ืขืชืŸ, ืฉื•ื ื•ืช ื ืžื•ื›ื”ื—ื–ืง ืขื‘ื•ืจ ืฉืขืจื™ ื˜ืจื•ื-ืžื™ื–ื•ื’ืชืงื•ืจืช ืชืฆื•ืจื” ื ืžื•ื›ื”; ื™ืฉ ืœื ื”ืœ ืกื—ืฃ ื—ืจื™ื’ื™ืื”ืชืืžื” ืื™ืฉื™ืช ืžื•ื’ื‘ืœืช; ืœืœื ื ื™ืชื•ื— ืกืžื ื˜ื™ ืื• ืื‘ื˜ื—ื”
ื‘ืœืืกืจื™ืงืช ืื‘ื˜ื—ื” ืฉืœ ืžืกื™ืœื•ืชื–ืจื™ืžืช ื ืชื•ื ื™ื ื—ืœืงื™ืช ื•ืžื•ื“ืข ืœืžืกื’ืจืชื ื™ืชื•ื— ืžืงื•ืจื•ืช ืกื˜ื˜ื™; ื‘ืœืชื™ ืชืœื•ื™ ื‘ื–ืžืŸ ืจื™ืฆื”ื‘ื™ื ื•ื ื™, ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืชืœื•ื™ ืฉื—ืจื•ืจืื•ืช ื’ื‘ื•ื” ืขื‘ื•ืจ ืžื•ื ื•ืœื™ื˜ื™ื ืฉืœ ืžืกื™ืœื•ืช; ื”ื™ืงืฃ ืžื•ื’ื‘ืœ ืœืžืกื™ืœื•ืชืœื ืจืœื•ื•ื ื˜ื™ ืœ-Ruby ืฉืื™ื ื• Rails; ื“ื™ื•ืง ืžื•ืคื—ืช ืขื ืžื˜ื-ืชื›ื ื•ืช ื›ื‘ื“
Semgrepืื›ื™ืคืช ืžื“ื™ื ื™ื•ืช ื•ืชืื™ืžื•ืชื–ืจื™ืžืช ื ืชื•ื ื™ื ืžื•ื’ื‘ืœืช ืžื‘ื•ืกืกืช ืชื‘ื ื™ื•ืชื ื™ืชืŸ ืœื”ืงื‘ื™ืœื”; ืขืœื•ืช ืชืœื•ื™ืช ื›ืœืœื’ืžื™ืฉ, ืชืœื•ื™ ื‘ื“ืจื’ื•ืช ื”ื›ืœืœื™ืื ื™ืชืŸ ืœื”ืจื—ื‘ื” ื‘ื™ืŸ ืžืื’ืจื™ื ืฉื•ื ื™ื; ื ื™ื”ื•ืœ ืžื—ื–ื•ืจ ื—ื™ื™ ื”ื›ืœืœื™ื ื”ื•ื ืงืจื™ื˜ื™ืžื’ื‘ืœื•ืช ื“ืคื•ืก ืขืœ ื”ืชื ื”ื’ื•ืช ืžืชืคืจืฆืช; ื”ื›ื™ืกื•ื™ ืžืฉืชื ื” ืœืคื™ ืจืžื”
CodeQLืื‘ื˜ื—ื” ืขืžื•ืงื” ื•ื ื™ืชื•ื— ืกืžื ื˜ื™ื–ืจื™ืžืช ื ืชื•ื ื™ื ืฉืœืžื” ืฉืœ ื”ืชื•ื›ื ื™ืชื‘ื ื™ื™ืช ืžืกื“ ื ืชื•ื ื™ื ื‘ืชื•ืกืคืช ื‘ื™ืฆื•ืข ืฉืื™ืœืชื”ื ืžื•ืš ืœืžื™ื–ื•ื’ ืžืงื“ื™ื; ื—ื–ืง ืœืกืจื™ืงื•ืช ืžืชื•ื–ืžื ื•ืชื ื™ื”ื•ืœ ืžืจื›ื–ื™; ืžื•ืจื›ื‘ื•ืช ืžื—ืฉื•ื‘ ื•ืฆื ืจืช ื’ื‘ื•ื”ื” ื™ื•ืชืจืชืงื•ืจื” ืชืคืขื•ืœื™ืช; ืœื•ืœืื•ืช ืžืฉื•ื‘ ืื™ื˜ื™ื•ืช ื™ื•ืชืจ
ืกื•ืจื‘ื”ื‘ืงืจืช ืกื—ืฃ ืžืžืฉืงืžื‘ื•ืกืก-ืกื•ื’, ืžืžื•ืงื“-ื’ื‘ื•ืœื•ืชืžืฆื˜ื‘ืจ; ืชืœื•ื™ ื”ื™ืงืฃืฉืขืจื™ื ืกืœืงื˜ื™ื‘ื™ื™ื ื‘ื ืชื™ื‘ื™ื ืงืจื™ื˜ื™ื™ืืขืจืš ื’ื‘ื•ื” ื‘ืžื”ืœืš ืขื™ื‘ื•ื“ ืžื—ื“ืฉ; ื“ื•ืจืฉ ื‘ืขืœื•ืช ืขืœ ืืจื˜ื™ืคืงื˜ื™ื ืžืกื•ื’ื™ืืžื™ื“ื•ืœ ืžื•ื’ื‘ืœ ืฉืœ ื”ืชื ื”ื’ื•ืช ื“ื™ื ืžื™ืช ืฉืœ ืจื•ื‘ื™
ืชึธืœื•ึผืœืื™ืžื•ืช ื—ื•ื–ื” ื‘ืืžืฆืขื•ืช RBSืžื‘ื•ืกืก-ืกื•ื’, ืžื•ื ื—ื”-ืžืคืจื˜ื”ืขืจื›ืช ื—ืชื™ืžื•ืช ื‘ืชื•ืกืคืช ื‘ื“ื™ืงื•ืช ืงื•ื“ืกืœืงื˜ื™ื‘ื™, ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืื—ืจ ืžื™ื–ื•ื’ื—ื–ืง ื‘ืืจื’ื•ื ื™ื ืžื•ื ืขื™ ื—ื•ื–ื™ื; ื ื“ืจืฉืช ืžืžืฉืœ ื—ืชื™ืžื•ืชืกื™ื›ื•ืŸ ืกื—ื™ืคื” ืฉืœ RBS; ื“ืคื•ืกื™ื ื“ื™ื ืžื™ื™ื ื“ื•ืจืฉื™ื ืžื™ื“ื•ืœ ื™ื“ื ื™

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

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

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

ื ื™ืชื•ื— ืกื˜ื˜ื™ ื‘ื•ืœื˜ ืฉืœ Ruby ื•ื›ืœื™ื ืกืžื•ื›ื™ื ืœืคื™ ืžืงืจื” ืฉื™ืžื•ืฉ ื ื™ืฉื”

  • ืจื•ื‘ื™ ืงืจื™ื˜ื™ืง
    ืื•ืกืฃ ืชื•ืฆืื•ืช ืžื›ืœื™ื ื›ืžื• Reek ื›ื“ื™ ืœื™ื™ืฆืจ ืฆื™ื•ื ื™ ืชื—ื–ื•ืงื”, ืžื“ื“ื™ ื ื˜ื™ืฉื” ื•ื ื™ืชื•ื— ื ืงื•ื“ื•ืช ื—ืžื•ืช. ืฉื™ืžื•ืฉื™ ื‘ื™ื•ืชืจ ืœื“ื™ื•ื•ื—ื™ ืžื ื”ื™ื’ื•ืช ื•ืงื‘ื™ืขืช ืกื“ืจื™ ืขื“ื™ืคื•ื™ื•ืช ืžื—ื“ืฉ ื‘ืžืงื•ื ืžื™ื–ื•ื’ื™ื.
  • ืฆึทื—ึฒื ึธื”
    ื–ื™ื”ื•ื™ ืจื™ื— ืงื•ื“ ืžืžื•ืงื“ ืฉืžื˜ืจืชื• ืœื—ืฉื•ืฃ ืกื™ื›ื•ื ื™ ืชื—ื–ื•ืงื” ื•ืชื›ื ื•ืŸ. ืžืฉืžืฉ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืชื›ื ื•ืŸ ืžื•ื“ืจื ื™ื–ืฆื™ื” ืœื–ื™ื”ื•ื™ ืžื•ืขืžื“ื™ื ืœืฉื™ืคื•ืฅ, ืืš ื‘ื“ืจืš ื›ืœืœ ืื™ื ื• ืžืชืื™ื ืœืื›ื™ืคืช CI ืงืคื“ื ื™ืช ืขืงื‘ ืคืจืฉื ื•ืช ืกื•ื‘ื™ื™ืงื˜ื™ื‘ื™ืช ืฉืœ ืื•ืชื•ืช.
  • ื‘ื™ืงื•ืจืช ื—ื‘ื™ืœื•ืช
    ืžื‘ืฆืข ื‘ื“ื™ืงื•ืช ืคื’ื™ืขื•ืช ืชืœื•ื™ื•ืช ืžื•ืœ ื™ื™ืขื•ืฅ ื™ื“ื•ืข. ืžืฉืœื™ื ืกื•ืจืงื™ื ื‘ืจืžืช ื”ืงื•ื“ ืขืœ ื™ื“ื™ ื”ืชื™ื™ื—ืกื•ืช ืœืกื™ื›ื•ืŸ ืฉืจืฉืจืช ื”ืืกืคืงื”, ื‘ืžื™ื•ื—ื“ ื‘ืกื‘ื™ื‘ื•ืช ืžื•ืกื“ืจื•ืช ืฉื‘ื”ืŸ ื—ืฉื™ืคื” ืœืฆื“ ืฉืœื™ืฉื™ ื ื‘ื“ืงืช ื‘ืงืคื™ื“ื”.
  • ืœึฐื”ึทืœืงื•ึนืช
    ืžื•ื“ื“ ืืช ืžื•ืจื›ื‘ื•ืช ื”ืงื•ื“ ืขืœ ืกืžืš ืฉื™ืžื•ืฉ ื‘ืื•ืคืจื˜ื•ืจ ื•ืœื ืขืœ ืกืžืš ืžื“ื“ื™ื ืžื‘ื ื™ื™ื. ืžืฉืžืฉ ืœืขื™ืชื™ื ืœื–ื™ื”ื•ื™ ืžืชื•ื“ื•ืช Ruby ื”ืžื•ืจื›ื‘ื•ืช ืžื‘ื—ื™ื ื” ืงื•ื’ื ื™ื˜ื™ื‘ื™ืช, ืื ื›ื™ ื”ืชื•ืฆืื•ืช ื“ื•ืจืฉื•ืช ืคืจืฉื ื•ืช ื”ืงืฉืจื™ืช.
  • ืœึดื ึฐื–ื•ึนืฃ
    ืžื–ื”ื” ื›ืคื™ืœื•ื™ื•ืช ืžื‘ื ื™ื•ืช ื‘ื‘ืกื™ืกื™ ืงื•ื“ ืฉืœ Ruby. ืฉื™ืžื•ืฉื™ ื‘ืžื”ืœืš ื™ื•ื–ืžื•ืช ืงื•ื ืกื•ืœื™ื“ืฆื™ื” ืื• ืฉื™ืคื•ืฅ ืžื—ื“ืฉ ืฉื‘ื”ืŸ ืœื•ื’ื™ืงื” ื›ืคื•ืœื” ืžื’ื‘ื™ืจื” ืืช ื”ืกื™ื›ื•ืŸ ืœืชื—ื–ื•ืงื” ื•ืœืคื’ืžื™ื.
  • ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ืขื‘ื•ืจ ืžืกื™ืœื•ืช
    ืžืกืคืง ื‘ื“ื™ืงื•ืช ืžื‘ื•ืกืกื•ืช ื”ื™ื•ืจื™ืกื˜ื™ืงื” ืขื‘ื•ืจ ืชื‘ื ื™ื•ืช ืื ื˜ื™-ืกืคืฆื™ืคื™ื•ืช ืœ-Rails. ื™ื›ื•ืœ ืœื”ืฆื™ืข ืžืฉื•ื‘ ืžื”ื™ืจ ื‘ื™ื™ืฉื•ืžื™ Rails ืžื“ื•ืจ ืงื•ื“ื, ืืš ืื™ื›ื•ืช ื”ืื•ืช ืžืฉืชื ื” ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ืขื ื’ื™ืœ ื”-framework ื•ื”ืชืืžื” ืื™ืฉื™ืช.
  • ืžื ืชื—ื™ SonarQube Ruby
    ืžืฉื•ืœื‘ ื‘ืคืœื˜ืคื•ืจืžื•ืช ืื™ื›ื•ืช ืจื‘-ืœืฉื•ื ื™ื•ืช ืจื—ื‘ื•ืช ื™ื•ืชืจ. ื ื‘ื—ืจ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœื“ื™ื•ื•ื— ืžืจื›ื–ื™ ื•ืขืงื‘ื™ื•ืช ื‘ื™ืŸ-ืœืฉื•ื ื™ืช, ืืš ืขื•ืžืง ื”ื›ืœืœื™ื ื•ื ืืžื ื•ืช ื”ื‘ื™ืฆื•ืข ืฉืœ ืจื•ื‘ื™ ืขืฉื•ื™ื™ื ืœืคื’ืจ ืื—ืจื™ ื›ืœื™ื ื™ื™ืขื•ื“ื™ื™ื.

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

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

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

ืœื—ืฅ ืชืคื•ืงื” ืฉืœ CI ื•ื“ืจื™ืฉื•ืช ืฉืžื™ืจืช ืกืฃ ื“ื˜ืจืžื™ื ื™ืกื˜ื™ื•ืช

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

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

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

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

ืื—ื•ื–ื•ืช ืจื•ื‘ื™ ืžื“ื•ืจ ืงื•ื“ื ื•ื›ื™ืกื•ื™ ื ื™ืชื•ื— ืœื ืื—ื™ื“

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

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

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

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

ืžืžืฉืœ, ื‘ื™ืงื•ืจืช ื•ื”ืชืืžืช ืชืื™ืžื•ืช

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

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

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

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

ืžื˜ืจื•ืช ืืกื˜ืจื˜ื’ื™ื•ืช ืฉืœ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืฉืœ Ruby ื‘ืฆื™ื ื•ืจื•ืช CI

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

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

ืื›ื™ืคืช ื”ืชื ื”ื’ื•ืช ืžื™ื–ื•ื’ ืฆืคื•ื™ื” ืžื‘ืœื™ ืœืคื’ื•ืข ื‘ืชืคื•ืงื”

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

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

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

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

ื”ืคื—ืชืช ืขืœื•ื™ื•ืช ืชื™ืงื•ืŸ ืœืื—ืจ ืžื™ื–ื•ื’ ื•ืื—ืจื™ ืฉื—ืจื•ืจ

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

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

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

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

ืชืžื™ื›ื” ื‘ื™ื•ื–ืžื•ืช ืžื•ื“ืจื ื™ื–ืฆื™ื” ื•ืจื™ืคืงื˜ื•ืจื™ื ื’ ืžื‘ื•ืงืจ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ืื›ื™ืคืช ืžื“ื™ื ื™ื•ืช ืขืœ ืคื ื™ ืื—ื•ื–ื•ืช ืจื•ื‘ื™ ืžืจื•ื‘ื•ืช ืฆื•ื•ืชื™ื

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

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

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

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

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

ื‘ืงืจืช ื’ื‘ื•ืœื•ืช ืžื•ื ืขืช-ืกื•ื’ื™ื ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช Ruby ืžื•ื›ื•ื•ื ื•ืช ืฉื™ืจื•ืชื™ื

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

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

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

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

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

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

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

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

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

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

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