ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื‘-C#

ื›ืœื™ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื‘-C# ืฉื›ื“ืื™ ืœื”ื›ื™ืจ

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

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

ื ื™ืชื•ื— ืกื™ื›ื•ืŸ ืงื•ื“ ะก#

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

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

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

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

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

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

SMART TS XL

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

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

ื™ืชืจื•ื ื•ืชื™ื• ืฉืœ SMART TS XL ืขื‘ื•ืจ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื‘-C#

  • ืžืฆื™ื’ ืืช ื–ืจื™ืžืช ื”ืงืจื™ืื” ื”ืžืœืื” ื•ืืช ื ืชื™ื‘ื™ ื”ืœื•ื’ื™ืงื” ืขืœ ืคื ื™ ืžื—ืœืงื•ืช, ืืกืžื‘ืœื™ ื•ืฉื™ืจื•ืชื™ื
  • ืžื–ื”ื” ืชืœื•ื™ื•ืช ื ืกืชืจื•ืช ื•ืงื•ื“ ืžืช ื‘ืชื•ืš ื™ื™ืฉื•ืžื™ C# ื’ื“ื•ืœื™ื
  • ืชื•ืžืš ื‘ืžืขืจื›ื•ืช ื›ืœืœื™ื ื”ื ื™ืชื ื•ืช ืœื”ืชืืžื” ืื™ืฉื™ืช ืœืื›ื™ืคืช ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื•ืžื“ื™ื ื™ื•ืช ืื“ืจื™ื›ืœื™ืช
  • ืžืฉืชืœื‘ ืขื ืฆื™ื ื•ืจื•ืช CI/CD ืœืื•ื˜ื•ืžืฆื™ื” ืฉืœ ื‘ื“ื™ืงื•ืช ืื™ื›ื•ืช ื•ืื™ืžื•ืช ืงื•ื“
  • ืžืฆื™ืข ื ื™ืชื•ื— ื”ืฉืคืขื” ืจื‘ ืขื•ืฆืžื” ืœืชืžื™ื›ื” ื‘ืžืืžืฆื™ ืฉื™ืคื•ืฅ ื•ืžื•ื“ืจื ื™ื–ืฆื™ื”
  • ืžืชืจื—ื‘ ื‘ื™ืขื™ืœื•ืช ืขืœ ืคื ื™ ืืœืคื™ ืงื‘ืฆื™ื ื•ืžืื’ืจื™ ืงื•ื“ ืžืจื•ื‘ื™ื
  • ืžืงืœ ืขืœ ืขืžื™ื“ื” ื‘ืชืงื ื™ ืื‘ื˜ื—ื” ื•ืชืขืฉื™ื™ื” ื›ื’ื•ืŸ OWASP, ISO ื•-MISRA

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

ReSharper

ReSharper, ืฉืคื•ืชื— ืขืœ ื™ื“ื™ JetBrains, ื”ื•ื ืื—ื“ ืžื›ืœื™ ื”ื ื™ืชื•ื— ื•ื”ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ื”ืกื˜ื˜ื™ื™ื ื”ืคื•ืคื•ืœืจื™ื™ื ื•ื”ื™ื“ื™ื“ื•ืชื™ื™ื ื‘ื™ื•ืชืจ ืœืžืคืชื—ื™ื ืขื‘ื•ืจ C# ื•ื”ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ื”ืจื—ื‘ื” ื™ื•ืชืจ ืฉืœ .NET. ReSharper, ื”ืžืฉื•ืœื‘ ื™ืฉื™ืจื•ืช ื‘-Visual Studio, ืžืฉืคืจ ืืช ื—ื•ื•ื™ื™ืช ื”ืงื™ื“ื•ื“ ืขื ื‘ื“ื™ืงืช ืงื•ื“ ื‘ื–ืžืŸ ืืžืช, ื”ืฆืขื•ืช ื—ื›ืžื•ืช, ื™ื›ื•ืœื•ืช ืฉื™ืคื•ืฅ ื•ืชื›ื•ื ื•ืช ื ื™ื•ื•ื˜ ื‘ืงื•ื“. ื”ื•ื ืชื•ืžืš ื‘ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืชื›ื•ื ื•ืช ื•ืžืกื’ืจื•ืช ื‘ืฉืคืช C#, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื—ื™ื•ื ื™ ื‘ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ืžืงืฆื•ืขื™ื•ืช ืจื‘ื•ืช.

ื ื™ืชื•ื—ื™ ReSharper ื‘-C#

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

ื™ืชืจื•ื ื•ืช

  • ืื™ื ื˜ื’ืจืฆื™ื” ืขืžื•ืงื” ืขื Visual Studio ืœื—ื•ื•ื™ื™ืช ืžืคืชื— ื—ืœืงื”
  • ื‘ื“ื™ืงื•ืช ืงื•ื“ ื‘ื–ืžืŸ ืืžืช ืขื‘ื•ืจ C#, ASP.NET, XAML ื•ืฉืคื•ืช .NET ืื—ืจื•ืช
  • ืžืขืœ 2,000 ื‘ื“ื™ืงื•ืช ืื™ื›ื•ืช ืงื•ื“ ื•ืขืฉืจื•ืช ืฉื™ื ื•ื™ื™ื ืžื—ื“ืฉ (rfactoring)
  • ื›ืœื™ ื ื™ื•ื•ื˜ ื•ื—ื™ืคื•ืฉ ืงื•ื“ ืžื™ื™ื“ื™ื™ื ืœื—ืงืจ ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื
  • ื”ืฉืœืžืช ืงื•ื“ ืžื•ื“ืขืช ืœื”ืงืฉืจ ื•ื”ืฆืขื•ืช ืœืชื—ื‘ื™ืจ
  • ื—ื•ืžืจืช ื‘ื“ื™ืงื” ื•ื›ืœืœื™ื ื”ื ื™ืชื ื™ื ืœื”ืชืืžื” ืื™ืฉื™ืช ืขื‘ื•ืจ ืกื˜ื ื“ืจื˜ื™ื ืกืคืฆื™ืคื™ื™ื ืœืฆื•ื•ืช
  • ืจืฅ ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื” ืžื•ื‘ื ื” ื”ืชื•ืžืš ื‘-NUnit, MSTest, xUnit ื•ืขื•ื“

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ืœืžืจื•ืช ื ืงื•ื“ื•ืช ื”ื—ื•ื–ืง ืฉืœื•, ืœ-ReSharper ื™ืฉ ืžื’ื‘ืœื•ืช ื‘ื•ืœื˜ื•ืช ืฉืขืฉื•ื™ื•ืช ืœื”ืฉืคื™ืข ืขืœ ื”ืชืืžืชื• ืœืžืงืจื™ ืฉื™ืžื•ืฉ ื‘ื ื™ืชื•ื— ืกื˜ื˜ื™ ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ ืื• ื‘ื ื™ืชื•ื— ืžืฉื•ืœื‘ CI:

  • ื‘ื™ืฆื•ืขื™ื ืชืงื•ืจื”
    ReSharper ื™ื“ื•ืข ื›ืžื’ื“ื™ืœ ืžืฉืžืขื•ืชื™ืช ืืช ื ื™ืฆื•ืœ ื”ื–ื™ื›ืจื•ืŸ ื•ืืช ื–ืžืŸ ื”ืืชื—ื•ืœ ื‘-Visual Studio, ื‘ืžื™ื•ื—ื“ ื‘ืคืชืจื•ื ื•ืช ื’ื“ื•ืœื™ื. ื”ื•ื ื™ื›ื•ืœ ืœื”ืื˜ ืืช ืชื’ื•ื‘ืช ื”-IDE, ื“ื‘ืจ ื”ืžืชืกื›ืœ ืžืคืชื—ื™ื ืฉืขื•ื‘ื“ื™ื ืขื ื‘ืกื™ืกื™ ืงื•ื“ ืืจื’ื•ื ื™ื™ื ืžื•ืจื›ื‘ื™ื.
  • ืื™ืŸ ืฉื™ืœื•ื‘ ืžืžืฉืง ืฉื•ืจืช ืคืงื•ื“ื” (CRI) ืื• ืฉืจืฉืจืช ื›ืœื™ื ืฉืœ CI ืขืฆืžืื™ืช
    ReSharper ืžื™ื•ืขื“ ืœืฉื™ืžื•ืฉ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ ื‘ืชื•ืš Visual Studio. ื”ื•ื ืื™ื ื• ืžืฆื™ืข ืžืžืฉืง ืฉื•ืจืช ืคืงื•ื“ื” ืขืฆืžืื™ ื ืชืžืš ื‘ืžืœื•ืื• ืœืฉื™ืœื•ื‘ ื‘ืฆื™ื ื•ืจื•ืช CI/CD, ื“ื‘ืจ ื”ืžื’ื‘ื™ืœ ืืช ื”ืฉื™ืžื•ืฉ ื‘ื• ืขื‘ื•ืจ ืฉืขืจื™ ืื™ื›ื•ืช ืื•ื˜ื•ืžื˜ื™ื™ื ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืื™ื ื˜ื’ืจืฆื™ื” ืจืฆื™ืคื”.
  • ื ื™ืชื•ื— ืื“ืจื™ื›ืœื™ ืžื•ื’ื‘ืœ
    ืœืžืจื•ืช ืฉื”ื™ื ืžืฆื•ื™ื ืช ืœื‘ืขื™ื•ืช ื‘ืจืžืช ื”ืงื•ื“, ReSharper ืื™ื ื” ืžืกืคืงืช ืžืคื•ืช ืชืœื•ืช ืื“ืจื™ื›ืœื™ื•ืช, ื’ืจืคื™ ืงืจื™ืื•ืช ื›ืœืœ-ืžืขืจื›ืชื™ื™ื ืื• ื ื™ืชื•ื— ื–ืจื™ืžื” ืžืชืงื“ื ืขืœ ืคื ื™ ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื ืื• ืกื‘ื™ื‘ื•ืช ื—ื•ืฆื•ืช ืžืื’ืจื™ื.
  • ืœื ืžืชืื™ื ืœื‘ืกื™ืกื™ ืงื•ื“ ื‘ื™ืŸ ืฉืคื•ืช
    ื”ืžื•ืงื“ ื”ืขื™ืงืจื™ ืฉืœ ReSharper ื”ื•ื .NET. ื”ื•ื ืื™ื ื• ืชื•ืžืš ื‘ืžืขืจื›ื•ืช ืจื‘-ืœืฉื•ื ื™ื•ืช ื”ื›ื•ืœืœื•ืช Java, C++ ืื• COBOL, ื“ื‘ืจ ื”ืžื’ื‘ื™ืœ ืืช ื™ืขื™ืœื•ืชื• ื‘ื”ืงืฉืจื™ื ื”ื™ื‘ืจื™ื“ื™ื™ื ืื• ืžื•ื“ืจื ื™ื–ืฆื™ื” ืžื“ื•ืจ ืงื•ื“ื.
  • ืจื™ืฉื•ื™ ืžืกื—ืจื™
    ReSharper ื”ื•ื ืžื•ืฆืจ ื‘ืชืฉืœื•ื ืขื ืจื™ืฉื™ื•ื ื•ืช ืœืคื™ ืžืฉืชืžืฉ. ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ื’ื“ื•ืœื™ื, ื–ื•ื”ื™ ื”ื•ืฆืื” ืžืฉืžืขื•ืชื™ืช ื‘ื”ืฉื•ื•ืื” ืœื›ืœื™ ืงื•ื“ ืคืชื•ื— ืื• ืžื‘ื•ืกืกื™ CI ื”ืžืฆื™ืขื™ื ืื•ื˜ื•ืžืฆื™ื” ืจื—ื‘ื” ื™ื•ืชืจ ืœืœื ืขืœื•ืช ืœืคื™ ืžืฉืชืžืฉ.
  • ืื™ืŸ ืกืจื™ืงืช ืื‘ื˜ื—ื” ืžื•ื‘ื ื™ืช
    ืœ-ReSharper ื—ืกืจื•ืช ื™ื›ื•ืœื•ืช ื™ื™ืขื•ื“ื™ื•ืช ืœื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ืช ื™ื™ืฉื•ืžื™ื ืกื˜ื˜ื™ื•ืช (SAST), ื›ื’ื•ืŸ ื–ื™ื”ื•ื™ ืคื’ื™ืขื•ื™ื•ืช ื”ื–ืจืงื”, ืงืจื™ืคื˜ื•ื’ืจืคื™ื” ืœื ืžืื•ื‘ื˜ื—ืช ืื• ื‘ืขื™ื•ืช ืื™ืžื•ืช. ืœืฆื•ืจืš ืฉื™ื˜ื•ืช ืคื™ืชื•ื— ืžืื•ื‘ื˜ื—ื•ืช, ื ื“ืจืฉื™ื ื›ืœื™ื ืžืฉืœื™ืžื™ื.

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

ืžื ืชื—ื™ ืจื•ื–ืœื™ืŸ

ืžื ืชื—ื™ ืจื•ื–ืœื™ืŸ C#

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

ืžื ืชื—ื™ Roslyn ืžื”ื•ื•ื™ื ืืช ื”ื‘ืกื™ืก ืœืžืขืจื›ื•ืช ื›ืœืœื™ื ืจื‘ื•ืช ืื—ืจื•ืช, ื›ื•ืœืœ ืืœื• ื”ื ืžืฆืื•ืช ื‘-Microsoft.CodeAnalysis, ืžื ืชื—ื™ SDK ืฉืœ .NET, ื•ื”ื ื—ื™ื•ืช ื”ืื‘ื˜ื—ื”, ื”-API ื•ื”ืชืื™ืžื•ืช ืฉืœ ืžื™ืงืจื•ืกื•ืคื˜ ืขืฆืžื”. ื”ื ืื™ื“ื™ืืœื™ื™ื ืœื”ื‘ื˜ื—ืช ืขืงื‘ื™ื•ืช ืงื•ื“, ืื™ืชื•ืจ ื‘ืื’ื™ื ื ืคื•ืฆื™ื ื•ื™ื™ืฉื•ื ื›ืœืœื™ ืกื’ื ื•ืŸ ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ C# ื‘ืฆื•ืจื” ื ื™ืชื ืช ืœื”ืจื—ื‘ื” ื•ืื•ื˜ื•ืžื˜ื™ืช.

ื™ืชืจื•ื ื•ืช

  • ืžื•ื‘ื ื” ื‘ืชื•ืš .NET SDK ื•ื ืชืžืš ืขืœ ื™ื“ื™ ืžื™ืงืจื•ืกื•ืคื˜
  • ืื•ื›ืฃ ืืช ื”ื”ื ื—ื™ื•ืช ื”ืจืฉืžื™ื•ืช ืฉืœ ืžื™ืงืจื•ืกื•ืคื˜ ื•ืืช ืžื•ืกื›ืžื•ืช ื”ืกื’ื ื•ืŸ
  • ืžืฉืชืœื‘ ื‘ืื•ืคืŸ ื˜ื‘ืขื™ ื‘ืชื”ืœื™ื›ื™ Visual Studio ื•-MSBuild
  • ืชืžื™ื›ื” ื‘ื™ืฆื™ืจืช ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ื‘-C# ืขื ืžืžืฉืงื™ API ื’ืžื™ืฉื™ื
  • ื™ืขื™ืœ ืœืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื•ืฉื™ืœื•ื‘ ืฆื™ื ื•ืจ CI
  • ืชื•ืื ืœืงื•ื“ Visual Studio ื“ืจืš OmniSharp
  • ืžื•ื ืข ืขืœ ื™ื“ื™ ื”ืงื”ื™ืœื” ืขื ืขื“ื›ื•ื ื™ื ืฉื•ื˜ืคื™ื ื•ืฉื™ืคื•ืจื™ ื›ืœืœื™ื

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ืœืžืจื•ืช ื”ืชื•ืขืœืช ื•ื”ืื™ื ื˜ื’ืจืฆื™ื” ื”ื˜ื‘ืขื™ืช ืฉืœื”ื, ืœ-Roslyn Analyzers ื™ืฉ ืžืกืคืจ ืชื—ื•ืžื™ื ืฉื‘ื”ื ื”ื ืื™ื ื ืขื•ืžื“ื™ื ื‘ื“ืจื™ืฉื•ืช ื”ื ื™ืชื•ื— ื”ืกื˜ื˜ื™ ื”ืžืชืงื“ื:

  • ืขื•ืžืง ืžื•ื’ื‘ืœ ื‘ื–ืจื™ืžืช ืงื•ื“ ื•ื ื™ืชื•ื— ืืจื›ื™ื˜ืงื˜ื•ืจื”
    ืžื ืชื—ื™ ืจื•ื–ืœื™ืŸ ืคื•ืขืœื™ื ื‘ืขื™ืงืจ ื‘ืจืžื•ืช ื”ืชื—ื‘ื™ืจ ื•ื”ืกืžื ื˜ื™ืงื”. ื”ื ื—ืกืจื™ื ื ื™ืชื•ื— ื–ืจื™ืžื” ื‘ื™ืŸ-ืคืจื•ืฆื“ื•ืจื™ ืžืขืžื™ืง, ืžื™ืคื•ื™ ืชืœื•ืช ื‘ื™ืŸ-ืคืจื•ื™ืงื˜ื™ื ื•ืื›ื™ืคืช ื›ืœืœื™ื ืื“ืจื™ื›ืœื™ื™ื ื›ืžื• ื›ืœื™ื ืืจื’ื•ื ื™ื™ื. SMART TS XL ืื• ื”ืฆืขื” ืฉืœ NDepend.
  • ื”ื™ืขื“ืจ ืžืขืจื›ื™ ื›ืœืœื™ ืื‘ื˜ื—ื” ืžื•ื‘ื ื™ื
    ืžื ืชื—ื™ Roslyn ืžื•ื›ื ื™ื ืœืฉื™ืžื•ืฉ ืื™ื ื ืžืชืžืงื“ื™ื ื‘ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื” ื›ื’ื•ืŸ ื ื™ืงื•ื™ ืงืœื˜, ื“ืœื™ืคืช ื ืชื•ื ื™ื ืื• ืฉื™ืžื•ืฉ ืœื ื‘ื˜ื•ื— ื‘-API. ื”ืจื—ื‘ื•ืช ืžืžื•ืงื“ื•ืช ืื‘ื˜ื—ื” (ืœืžืฉืœ, Microsoft Security Code Analysis) ื ื“ืจืฉื•ืช ืขื‘ื•ืจ ื™ื›ื•ืœื•ืช SAST.
  • ื›ืœื™ ื•ื™ื–ื•ืืœื™ื–ืฆื™ื” ืžื™ื ื™ืžืœื™ื™ื
    ืื™ืŸ ืชืžื™ื›ื” ื‘ื’ืจืคื™ ืงืจื™ืื”, ื’ืจืคื™ ืชืœื•ืช ืื• ืžืžืฉืงื™ ืžืžืฉืง ืžืฉืชืžืฉ ืขืฉื™ืจื™ื ืœื”ื‘ื ืช ื‘ืกื™ืกื™ ืงื•ื“ ืžื•ืจื›ื‘ื™ื. ืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœื”ืกืชืžืš ืขืœ ืคืœื˜ ื˜ืงืกื˜ื•ืืœื™ ืื• ืื™ื ื˜ื’ืจืฆื™ื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™ ืœืงื‘ืœืช ืžืฉื•ื‘ ื—ื–ื•ืชื™.
  • ืชืงื•ืจืช ืชื—ื–ื•ืงื” ืขื‘ื•ืจ ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช
    ื‘ืขื•ื“ ืฉื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื›ืœืœื™ื ื”ื™ื ืขื•ืฆืžืชื™ืช, ื”ื™ื ื“ื•ืจืฉืช ื’ื ื™ื“ืข ืžืขืžื™ืง ื‘ืžืžืฉืงื™ ื”-API ืฉืœ Roslyn ื•ืชื—ื–ื•ืงื” ืฉื•ื˜ืคืช ื›ื›ืœ ืฉื‘ืกื™ืกื™ ื”ืงื•ื“ ืžืชืคืชื—ื™ื. ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื ื˜ืœ ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ืœืœื ืžื•ืžื—ื™ื•ืช ื™ื™ืขื•ื“ื™ืช ื‘ื›ืœื™ื.
  • ื“ื™ื•ื•ื— ืฉื’ื™ืื•ืช ื‘ืกื™ืกื™ ื•ืฉื™ืœื•ื‘ ื–ืจื™ืžืช ืขื‘ื•ื“ื”
    ื‘ื”ืฉื•ื•ืื” ืœื›ืœื™ื ื›ืžื• SonarQube ืื• CodeQL, ืœ-Roslyn Analyzers ื™ืฉ ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืœื“ื™ื•ื•ื—, ืชื›ื•ื ื•ืช ืžืขืงื‘ ืื—ืจ ื‘ืขื™ื•ืช ื•ืฉื™ืœื•ื‘ ืžื•ื’ื‘ืœื™ื ืขื ืคืœื˜ืคื•ืจืžื•ืช ื›ืžื• GitHub PR reviews ืื• Jira.
  • ืœื ืื™ื“ื™ืืœื™ ืœืคืชืจื•ื ื•ืช ืจื‘-ืœืฉื•ื ื™ื™ื
    ืžื ืชื—ื™ื ืืœื” ืกืคืฆื™ืคื™ื™ื ืœ-C# ื•ืœ-VB.NET. ื”ื ืื™ื ื ื™ื›ื•ืœื™ื ืœื”ืชืžื•ื“ื“ ืขื ืขืจื™ืžื•ืช ืžืขื•ืจื‘ื•ืช ื”ื›ื•ืœืœื•ืช JavaScript, C++, COBOL ืื• ืฉืคื•ืช ืืจื’ื•ื ื™ื•ืช ืื—ืจื•ืช.

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

N ืชืœื•ื™

NDepend ื”ื•ื ื›ืœื™ ืจื‘ ืขื•ืฆืžื” ืœื ื™ืชื•ื— ืกื˜ื˜ื™ ื•ื ื™ื”ื•ืœ ืื“ืจื™ื›ืœื™ ืฉืชื•ื›ื ืŸ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ื‘ืกื™ืกื™ ืงื•ื“ ืฉืœ .NET, ื›ื•ืœืœ C#. ื”ื•ื ืžืฆื™ืข ืžื“ื“ื™ ืงื•ื“ ืžืชืงื“ืžื™ื, ื•ื™ื–ื•ืืœื™ื–ืฆื™ื” ืฉืœ ืชืœื•ื™ื•ืช, ืื›ื™ืคืช ื›ืœืœื™ ืงื•ื“ ื•ืžืขืงื‘ ืื—ืจ ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื. NDepend ืžืฉืชืœื‘ ืขื Visual Studio, ืฆื™ื ื•ืจื•ืช CI/CD, ื•ืชื•ืžืš ื‘ื”ื’ื“ืจืช ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ื‘ืืžืฆืขื•ืช ืฉืคืช ืฉืื™ืœืชื•ืช ืžื‘ื•ืกืกืช LINQ ืžืฉืœื• (CQLinq).

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

ื™ืชืจื•ื ื•ืช

  • ืžื“ื“ื™ ืงื•ื“ ื ืจื—ื‘ื™ื (ืœืžืฉืœ, ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ืช, ืฆื™ืžื•ื“, ืงื•ื”ื™ื–ืฆื™ื”)
  • ื’ืจืคื™ ืชืœื•ืช ื•ืžื˜ืจื™ืฆื•ืช ืœื”ืžื—ืฉื” ืฉืœ ืื“ืจื™ื›ืœื•ืช
  • ืฉืคืช ืฉืื™ืœืชื•ืช CQLinq ืœื›ืชื™ื‘ื” ื•ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื›ืœืœื™ ืงื•ื“
  • ืชื•ืžืš ื‘ื ื™ืชื•ื— ืžื’ืžื•ืช ื•ื‘ืžืขืงื‘ ืื—ืจ ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื ืœืื•ืจืš ื–ืžืŸ
  • ืื™ื ื˜ื’ืจืฆื™ื” ืขื Visual Studio ื•-Azure DevOps
  • ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขื‘ื•ืจ ืงื•ื“ ืžืงื•ืจ ื•ืืกืžื‘ืœื™ื ืžื”ื•ื“ืจื™ื
  • ืžื–ื”ื” ืจื™ื—ื•ืช ืงื•ื“, ืชื‘ื ื™ื•ืช ืื ื˜ื™-ื“ืคื•ืก ื•ืžื˜ืจื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช ืœืขื™ื‘ื•ื“ ืžื—ื“ืฉ
  • ืื™ื“ื™ืืœื™ ืขื‘ื•ืจ ื‘ืกื™ืกื™ ืงื•ื“ ืืจื’ื•ื ื™ื™ื ื’ื“ื•ืœื™ื, ืฉื›ื‘ืชื™ื™ื ืื• ืžื“ื•ืจ ืงื•ื“ื

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

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

  • ืžื•ืจื›ื‘ื•ืช ื•ืขืงื•ืžืช ืœืžื™ื“ื” ืชืœื•ืœื”
    ื”ืชื›ื•ื ื•ืช ื”ื ืจื—ื‘ื•ืช ืฉืœ NDepend, ื‘ืžื™ื•ื—ื“ CQLinq ื•ืžื™ืคื•ื™ ืชืœื•ื™ื•ืช, ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืžื›ืจื™ืขื•ืช ืขื‘ื•ืจ ืžืฉืชืžืฉื™ื ื—ื“ืฉื™ื. ืฆื•ื•ืชื™ื ื–ืงื•ืงื™ื ืœื”ื›ืฉืจื” ื›ื“ื™ ืœืžื ืฃ ื‘ื™ืขื™ืœื•ืช ืืช ื™ื›ื•ืœื•ืชื™ื•, ื•ืžืฉืชืžืฉื™ื ืžื–ื“ืžื ื™ื ืขืฉื•ื™ื™ื ืœืžืฆื•ื ืืช ื”ืžืžืฉืง ื•ื”ื”ืชืงื ื” ืœื ืื™ื ื˜ื•ืื™ื˜ื™ื‘ื™ื™ื.
  • ืžืฉื•ื‘ ืžื•ื’ื‘ืœ ื‘ื–ืžืŸ ืืžืช ื‘ืžื”ืœืš ื”ืคื™ืชื•ื—
    ื‘ื ื™ื’ื•ื“ ืœื›ืœื™ื ื›ืžื• ReSharper ืื• Roslyn Analyzers ื”ืžืกืคืงื™ื ืื‘ื—ื•ืŸ ืžื™ื™ื“ื™ ื‘ืชื•ืš ื”ืขื•ืจืš, ื”ืžืฉื•ื‘ ืฉืœ NDepend ื ื™ืชืŸ ื‘ื“ืจืš ื›ืœืœ ืœืื—ืจ ื”ื ื™ืชื•ื—. ื™ื™ืชื›ืŸ ืฉืžืคืชื—ื™ื ื™ืฆื˜ืจื›ื• ืœื”ืคืขื™ืœ ื”ืจืฆื•ืช ื™ื“ื ื™ื•ืช ืื• ืžืชื•ื–ืžื ื•ืช ื›ื“ื™ ืœืฆืคื•ืช ื‘ืชื•ืฆืื•ืช.
  • ืชืœื•ืช ื‘-Visual Studio
    ื‘ืขื•ื“ ืฉ-NDepend ืžืฆื™ืข ืฉื™ืœื•ื‘ ืฉื•ืจืช ืคืงื•ื“ื” ื•-CI, ื”ื—ื•ื•ื™ื” ื”ืขืฉื™ืจื” ื‘ื™ื•ืชืจ ื‘ืชื›ื•ื ื•ืช ืฉืœื• ืงืฉื•ืจื” ืœ-Visual Studio. ื™ื™ืชื›ืŸ ืฉืžืคืชื—ื™ื ื”ืžืฉืชืžืฉื™ื ื‘-Rider ืื• ื‘-Visual Studio Code ืœื ื™ืงื‘ืœื• ืชืžื™ื›ื” ืžืœืื”.
  • ื‘ืขื™ืงืจ ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจื” ื•ืžื“ื“ื™ื
    NDepend ื™ื•ืฆื ื“ื•ืคืŸ ื‘ืื™ืžื•ืช ืžื‘ื ื™ ื•ืื“ืจื™ื›ืœื™, ืืš ื—ืกืจ ืœื• ืขื•ืžืง ื‘ืชื—ื•ืžื™ื ืžืกื•ื™ืžื™ื ื›ืžื• ื™ืฆื™ืจืช ืฉืžื•ืช ื‘ืจืžืช ื”ืชื—ื‘ื™ืจ ืื• ื›ืœืœื™ ืขื™ืฆื•ื‘. ื”ื•ื ืื™ื ื• ืื•ื›ืฃ ืžื•ืกื›ืžื•ืช ืœืžืชืŸ ืฉืžื•ืช ืื• ื›ืœืœื™ ืจื•ื•ื— ืœื‘ืŸ ื›ืžื• StyleCop ืื• EditorConfig.
  • ืื™ืŸ ืกืจื™ืงืช ืื‘ื˜ื—ื” ืžื•ื‘ื ื™ืช
    ื”ื›ืœื™ ืื™ื ื• ืžื–ื”ื” ื‘ืื•ืคืŸ ื˜ื‘ืขื™ ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื” ื ืคื•ืฆื•ืช ื›ื’ื•ืŸ ื”ื–ืจืงืช SQL, ืงืจื™ืคื˜ื•ื’ืจืคื™ื” ืœื ืžืื•ื‘ื˜ื—ืช ืื• ืกื™ื›ื•ื ื™ ื—ืฆื™ื™ืช ื ืชื™ื‘ื™ื. ืืจื’ื•ื ื™ื ื”ืžืชืžืงื“ื™ื ื‘ืื‘ื˜ื—ื” ื—ื™ื™ื‘ื™ื ืœืฉืœื‘ ืื•ืชื• ืขื ื›ืœื™ื ื›ืžื• SMART TS XL, CodeQL, ืื• Veracode.
  • ืžื•ื“ืœ ืจื™ืฉื•ื™ ืžืกื—ืจื™
    NDepend ื”ื•ื ืžื•ืฆืจ ื‘ืชืฉืœื•ื ืขื ืจื™ืฉื™ื•ื ื•ืช ืœื›ืœ ืžื•ืฉื‘, ื“ื‘ืจ ืฉืขืฉื•ื™ ืœื”ื™ื•ืช ื’ื•ืจื ื—ื•ืกื ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ืงื˜ื ื™ื ืื• ืชื•ืจืžื™ื ื‘ืงื•ื“ ืคืชื•ื— ื‘ื”ืฉื•ื•ืื” ืœืืคืฉืจื•ื™ื•ืช ื—ื™ื ืžื™ื•ืช ื›ืžื• Roslyn Analyzers ืื• ESLint.
  • ืœื ืžืชืื™ื ืœื‘ืกื™ืกื™ ืงื•ื“ ืจื‘-ืชื›ืœื™ืชื™ื™ื
    ื›ื›ืœื™ ื”ืžืชืžืงื“ ื‘-.NET, NDepend ืื™ื ื• ืชื•ืžืš ื‘-JavaScript, Python, COBOL ืื• ืฉืคื•ืช ืื—ืจื•ืช ืฉืื™ื ืŸ .NET ื”ื ืžืฆืื•ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืกื‘ื™ื‘ื•ืช ืืจื’ื•ื ื™ื•ืช ืžืœืื•ืช ืื• ืžื“ื•ืจ ืงื•ื“ื.

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

ืกื˜ื•ื“ื™ื• PVS

PVS-Studio ื”ื•ื ื›ืœื™ ืœื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืฉืคื•ืชื— ืขืœ ื™ื“ื™ Program Verification Systems, ื”ืชื•ืžืš ื‘ืฉืคื•ืช ืžืจื•ื‘ื•ืช, ื›ื•ืœืœ C, C++, C# ื•-Java. ืขื‘ื•ืจ C#, ื”ื•ื ืžืฉืชืœื‘ ื‘-Visual Studio ื•ืžืฆื™ืข ื ื™ืชื•ื— ืžืขืžื™ืง ืœื’ื™ืœื•ื™ ื‘ืื’ื™ื, ืจื™ื—ื•ืช ืงื•ื“, ื‘ืขื™ื•ืช ืžืงื‘ื™ืœื™ื•ืช ื•ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื”. PVS-Studio ืฉื ื“ื’ืฉ ืขืœ ื™ื›ื•ืœื•ืช ื–ื™ื”ื•ื™ ื‘ืขืœื•ืช ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ื•ืžืฉืžืฉ ืฆื•ื•ืชื™ื ืจื‘ื™ื ื‘ืžืขืจื›ื•ืช ืžืฉื•ื‘ืฆื•ืช, ืฉื™ืจื•ืชื™ื ืคื™ื ื ืกื™ื™ื ื•ื™ื™ืฉื•ืžื™ื ืืจื’ื•ื ื™ื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ.

ื ื™ืชื•ื— ืงื•ื“ C# ืฉืœ PVC Studio

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

ื™ืชืจื•ื ื•ืช

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

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ืœืžืจื•ืช ื—ื•ื–ืงื• ื”ื˜ื›ื ื™, ืœ-PVS-Studio ืžืกืคืจ ื”ื™ื‘ื˜ื™ื ืฉื™ื›ื•ืœื™ื ืœื”ื’ื‘ื™ืœ ืืช ืื™ืžื•ืฅ ื”ืชื•ื›ื ื” ืื• ืืช ื™ืขื™ืœื•ืชื” ื‘ืกื‘ื™ื‘ื•ืช ืžืกื•ื™ืžื•ืช:

  • ืคืœื˜ ืžืคื•ืจื˜ ื•ืจืขืฉ ืื–ื”ืจื”
    PVS-Studio ื™ื›ื•ืœ ืœื™ื™ืฆืจ ืžืกืคืจ ืจื‘ ืฉืœ ืื–ื”ืจื•ืช, ื‘ืžื™ื•ื—ื“ ื‘ื”ืคืขืœื” ื”ืจืืฉื•ื ื”. ืœืžืจื•ืช ืฉื”ื•ื ื›ื•ืœืœ ื›ืœื™ ื“ื™ื›ื•ื™, ื”ืจืขืฉ ื”ืจืืฉื•ื ื™ ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื›ืจื™ืข, ื•ืœื“ืจื•ืฉ ืžืืžืฅ ืžืกื•ืจ ื›ื“ื™ ืœื›ื•ื•ื ืŸ ืื•ืชื• ืœืฉื™ืžื•ืฉ ืคืจื•ื“ื•ืงื˜ื™ื‘ื™.
  • ื”ืชืืžื” ืื™ืฉื™ืช ืžื•ื’ื‘ืœืช ืฉืœ ื›ืœืœื™ื
    ื‘ื ื™ื’ื•ื“ ืœ-Roslyn Analyzers ืื• NDepend, PVS-Studio ืื™ื ื• ืžืฆื™ืข ืžื ื•ืข ื›ืœืœื™ื ืžื•ืชืื ืื™ืฉื™ืช ืจื‘ ืขื•ืฆืžื”. ืžืคืชื—ื™ื ืื™ื ื ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ื‘ืงืœื•ืช ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ืœืืจื›ื™ื˜ืงื˜ื•ืจื” ื”ืคื ื™ืžื™ืช ืื• ืœืชืงื ื™ ื”ืงื™ื“ื•ื“ ืฉืœื”ื.
  • ื—ื•ืกืจ ืชื•ื‘ื ื” ืื“ืจื™ื›ืœื™ืช
    ื”ื›ืœื™ ืžืชืžืงื“ ื‘ืขื™ืงืจ ื‘ื–ื™ื”ื•ื™ ืฉื’ื™ืื•ืช ื•ืœื ื‘ืื™ืžื•ืช ืืจื›ื™ื˜ืงื˜ื•ืจื”. ื”ื•ื ืื™ื ื• ืžืฆื™ืข ืชื›ื•ื ื•ืช ื›ืžื• ื’ืจืคื™ ืชืœื•ืช, ืžืขืงื‘ ืื—ืจ ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžืื˜ื™ืช ืื• ืื›ื™ืคืช ืชื›ื ื•ืŸ ืฉื›ื‘ืชื™ืช.
  • ืขืœื•ืช ืจื™ืฉื•ื™ ืชืœื•ืœื”
    PVS-Studio ื”ื•ื ื›ืœื™ ืžืกื—ืจื™ ืขื ืžื•ื“ืœ ืจื™ืฉื•ื™ ืฉืขืฉื•ื™ ืœื”ื™ื•ืช ื™ืงืจ ืขื‘ื•ืจ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ืงื˜ื ื™ื ื™ื•ืชืจ ืื• ืกื‘ื™ื‘ื•ืช ื—ื™ื ื•ื›ื™ื•ืช. ืœื ืงื™ื™ื ื’ืจืกื” ื—ื™ื ืžื™ืช ืœืฉื™ืžื•ืฉ ืžืงืฆื•ืขื™ ืžืขื‘ืจ ืœืชืงื•ืคืช ื ื™ืกื™ื•ืŸ.
  • ื—ื•ื•ื™ื™ืช ืžืฉืชืžืฉ ืคื—ื•ืช ื™ื“ื™ื“ื•ืชื™ืช ืœืžืคืชื—ื™ื
    ื‘ืขื•ื“ ืฉื”ืื™ื ื˜ื’ืจืฆื™ื” ืขื Visual Studio ืคื•ื ืงืฆื™ื•ื ืœื™ืช, ื”ืžืžืฉืง ื—ืกืจ ื—ืœืง ืžืชื›ื•ื ื•ืช ื”ืขื™ื“ื•ืŸ ื•ื”ืฉื™ืžื•ืฉื™ื•ืช ื”ื ืžืฆืื•ืช ื‘ื›ืœื™ื ื›ืžื• ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืฉืœ ReSharper ืื• SonarQube.
  • ืžื™ืงื•ื“ ืื‘ื˜ื—ื” ืคื—ื•ืช ื—ื–ืง ืžืืฉืจ ื›ืœื™ SAST ื™ื™ืขื•ื“ื™ื™ื
    ืœืžืจื•ืช ืฉื”ื•ื ืžื–ื”ื” ื›ืžื” ื‘ืขื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืื‘ื˜ื—ื”, PVS-Studio ืื™ื ื• ืชื—ืœื™ืฃ ืœืคืœื˜ืคื•ืจืžื•ืช ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ืกื˜ื˜ื™ื•ืช ื™ื™ืขื•ื“ื™ื•ืช ืœื™ื™ืฉื•ืžื™ื. ื”ื•ื ื—ืกืจ ืžืขืจื›ื™ ื›ืœืœื™ื ืฉืœ OWASP, ื ื™ืชื•ื— ื–ื™ื”ื•ืžื™ื ื•ืฉื™ืœื•ื‘ ืฉืœ ื ื™ืงื•ื“ ืคื’ื™ืขื•ื™ื•ืช.
  • ืžืžื•ืงื“ ื‘ืขื™ืงืจ ื‘-Microsoft stack
    ืœืžืจื•ืช ืฉื”ื›ืœื™ ืชื•ืžืš ื‘ืžืกืคืจ ืฉืคื•ืช, ื™ื›ื•ืœื•ืช ื”-C# ื”ื˜ื•ื‘ื•ืช ื‘ื™ื•ืชืจ ืฉืœื• ืžืกืชืžื›ื•ืช ืขืœ ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช ืฉืœ ืžื™ืงืจื•ืกื•ืคื˜. ืฉื™ืžื•ืฉ ื—ื•ืฆื” ืคืœื˜ืคื•ืจืžื•ืช ื‘-.NET Core ืื• ื‘-VS Code ืขืฉื•ื™ ืœื”ืจื’ื™ืฉ ืžื•ื’ื‘ืœ ื‘ื”ืฉื•ื•ืื”.

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

ื›ื™ืกื•ื™ (ืกื™ื ื•ืคืกื™ืก)

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

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

ื™ืชืจื•ื ื•ืช

  • ื–ื™ื”ื•ื™ ืคื’ื™ืขื•ื™ื•ืช ืžืชืงื“ื, ื›ื•ืœืœ ื’ืœื™ืฉื•ืช ืžืื’ืจ, ืคื’ืžื™ ื”ื–ืจืงื” ื•ืžืžืฉืงื™ API ืœื ื‘ื˜ื•ื—ื™ื
  • ืชืื™ืžื•ืช ื—ื–ืงื” ืขื ืชืงื ื™ ื”ืชืขืฉื™ื™ื” (CWE, OWASP, PCI DSS ื•ื›ื•')
  • ืžืฉืชืœื‘ ืขื ืคืœื˜ืคื•ืจืžื•ืช Visual Studio ื•-CI/CD ื›ืžื• Jenkins, GitHub Actions ื•-Azure DevOps
  • ืžืกืคืง ื›ืœื™ ืžื™ื•ืŸ ืงื•ื“ ื•ื–ืจื™ืžืช ืขื‘ื•ื“ื” ืฉื™ืชื•ืคื™ืช ืœืชื™ืงื•ืŸ ืคื’ืžื™ื
  • ืžื˜ืคืœ ื‘ื‘ืกื™ืกื™ ืงื•ื“ ืฉืœ ืืจื’ื•ื ื™ื ื’ื“ื•ืœื™ื ืขื ืžื ื•ืข ื ื™ืชื•ื— ืžืžื•ืงื“ ื‘ื™ืฆื•ืขื™ื
  • ืชื•ืžืš ื‘ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืžืจื›ื–ื™ื™ื ื•ืชื›ื•ื ื•ืช ื‘ื™ืงื•ืจืช
  • ืžืฆื™ืข ืขืจื›ื•ืช ื›ืœืœื™ื ืื™ื›ื•ืชื™ื•ืช ืฉื ื‘ื—ืจื• ืœืžืขืŸ ืื‘ื˜ื—ื” ื•ื‘ื˜ื™ื—ื•ืช

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

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

  • ืชืงื•ืจื•ืช ื›ื‘ื“ื•ืช ืฉืœ ื”ืงืžื” ื•ืชืฉืชื™ื•ืช
    Coverity ื“ื•ืจืฉืช ื”ืชืงื ื” ืžืฉืžืขื•ืชื™ืช, ื›ื•ืœืœ ืฉืจืชื™ backend ื•ืชืฆื•ืจื” ืฉืœ ืชืฉืชื™ืช ืกืจื™ืงื”. ื”ื™ื ืื™ื ื” ืžืชืื™ืžื” ื‘ืžื™ื•ื—ื“ ืœืฆื•ื•ืชื™ื ื‘ืชื ื•ืขื” ืžื”ื™ืจื” ืื• ืœืคืจื•ื™ืงื˜ื™ื ืงื˜ื ื™ื ืœืœื ืžืฉืื‘ื™ DevSecOps ื™ื™ืขื•ื“ื™ื™ื.
  • ืขืœื•ื™ื•ืช ืจื™ืฉื•ื™ ื•ืชืžื™ื›ื” ื’ื‘ื•ื”ื•ืช
    ืžื‘ื ื” ื”ืชืžื—ื•ืจ ืžื›ื•ื•ืŸ ืœืืจื’ื•ื ื™ื ื’ื“ื•ืœื™ื. ื—ื‘ืจื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ ืื• ืžืคืชื—ื™ื ืขืฆืžืื™ื™ื ื™ืžืฆืื• ืืช ืขืœื•ืช ื”ืจื™ืฉื•ื™ ื™ืงืจื” ื‘ืื•ืคืŸ ื‘ืœืชื™ ืกื‘ื™ืจ ื‘ื”ืฉื•ื•ืื” ืœื—ืœื•ืคื•ืช ืงื•ื“ ืคืชื•ื— ืื• ืงืœื•ืช ืžืฉืงืœ.
  • ืžืฉื•ื‘ ืžื•ื’ื‘ืœ ื‘ื–ืžืŸ ืืžืช ื‘ืžื”ืœืš ืงื™ื“ื•ื“
    Coverity ืคื•ืขืœ ื‘ืฆื•ืจื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ื‘ืžืฆื‘ ืืฆื•ื•ื” ืื• ืกืจื™ืงื” ืžื‘ื•ืกืกืช CI. ืžืคืชื—ื™ื ืื™ื ื ืžืงื‘ืœื™ื ืžืฉื•ื‘ ืžื™ื™ื“ื™ ื›ืžื• ืฉื”ื™ื• ืžืงื‘ืœื™ื ืขื ืžื ืชื—ื™ Roslyn, ReSharper ืื• ื”ื›ืœื™ื ื”ืžื•ื‘ื ื™ื ืฉืœ Visual Studio.
  • ืขืงื•ืžืช ืœืžื™ื“ื” ืชืœื•ืœื” ืœืชืฆื•ืจื”
    ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ืคืจื•ืคื™ืœื™ ื ื™ืชื•ื—, ื“ื™ื›ื•ื™ื™ื ืื• ื›ืœืœื™ื ื“ื•ืจืฉืช ื”ื›ืฉืจื” ื•ื”ื™ื›ืจื•ืช ืขื ืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ื”ื™ื™ื—ื•ื“ื™ืช ืฉืœ Coverity ืœืชืฆื•ืจื”. ื”ืชื™ืขื•ื“ ื ืจื—ื‘ ืืš ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฆืคื•ืฃ.
  • ืžืชืžืงื“ ื™ื•ืชืจ ื‘ืื‘ื˜ื—ื” ืžืืฉืจ ื‘ืชื—ื–ื•ืงื” ืื• ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื”
    Coverity ืžืชืžื—ื” ื‘ื–ื™ื”ื•ื™ ืื‘ื˜ื—ื” ื•ืืžื™ื ื•ืช ืืš ื—ืกืจื™ื ื›ืœื™ื ืื“ืจื™ื›ืœื™ื™ื ื›ืžื• ื’ืจืคื™ ืชืœื•ืช, ืžืขืงื‘ ืื—ืจ ื—ื•ื‘ื•ืช ื˜ื›ื ื™ื™ื ืื• ืžื“ื“ื™ ืžื’ืžื•ืช ืฉืžืกืคืงื™ื ื›ืœื™ื ื›ืžื• NDepend.
  • ืžืžืฉืง ื”ืžืฉืชืžืฉ ื•ื—ื•ื•ื™ื™ืช ื”ืžืฉืชืžืฉ ืœื ืขื‘ืจื• ืžื•ื“ืจื ื™ื–ืฆื™ื”
    ืžืžืฉืง ื”ืžืคืชื—ื™ื ื•ืœื•ื— ื”ืžื—ื•ื•ื ื™ื, ืœืžืจื•ืช ืฉื”ื ืคื•ื ืงืฆื™ื•ื ืœื™ื™ื, ืžืคื’ืจื™ื ืื—ืจื™ ืกื˜ื ื“ืจื˜ื™ื ืžื•ื“ืจื ื™ื™ื ืฉืœ ืขื™ืฆื•ื‘. ื‘ื”ืฉื•ื•ืื” ืœื›ืœื™ ืขื‘ื•ื“ื” ืžืžื•ืงื“ื™ ืžืฉืชืžืฉ ื›ืžื• SonarQube ืื• CodeClimate, Coverity ื™ื›ื•ืœ ืœื”ืจื’ื™ืฉ ืžื™ื•ืฉืŸ ื•ืžืกื•ืจื‘ืœ.
  • ื“ื•ืจืฉ ื›ื•ื•ื ื•ืŸ ืชืงื•ืคืชื™ ื›ื“ื™ ืœืžื ื•ืข ืชื•ืฆืื•ืช ื—ื™ื•ื‘ื™ื•ืช ืฉื’ื•ื™ื•ืช
    ื‘ืขื•ื“ ืฉ-Coverity ื–ื•ื›ื” ืœืฉื‘ื—ื™ื ืขืœ ื“ื™ื•ืงื•, ื—ืœืง ืžื”ืžืฉืชืžืฉื™ื ืžื“ื•ื•ื—ื™ื ืขืœ ืชื•ืฆืื•ืช ื—ื™ื•ื‘ื™ื•ืช ืฉื’ื•ื™ื•ืช, ื‘ืžื™ื•ื—ื“ ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ืชื›ื•ื ื•ืช ืฉืคื” ืžืชืงื“ืžื•ืช ืื• ื‘ืžืกื’ืจื•ืช ืžื•ืชืืžื•ืช ืื™ืฉื™ืช. ื“ื‘ืจ ื–ื” ืžื—ื™ื™ื‘ ื—ื™ื“ื•ื“ ืžืชืžืฉืš ืฉืœ ื›ืœืœื™ื ื•ื“ื™ื›ื•ื™ื™ื.

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

ืงื•ื“

CodeRush ืžื‘ื™ืช DevExpress ื”ื™ื ื”ืจื—ื‘ืช ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืขื‘ื•ืจ Visual Studio ื”ื›ื•ืœืœืช ื ื™ื•ื•ื˜ ืงื•ื“, ืฉื™ืคื•ืฅ ื•ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™. CodeRush, ืฉืชื•ื›ื ืŸ ืชื•ืš ื“ื’ืฉ ื—ื–ืง ืขืœ ื—ื•ื•ื™ื™ืช ื”ืžืคืชื—, ืžืฉืคืจ ืืช ืื™ื›ื•ืช ื”ืงื•ื“ ื•ืชื—ื–ื•ืงืชื• ืชื•ืš ื”ื’ื‘ืจืช ื”ื™ืขื™ืœื•ืช ื‘ื›ืชื™ื‘ื”, ืงืจื™ืื” ื•ื ื™ื•ื•ื˜ ื‘ืงื•ื“ C#.

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

ื™ืชืจื•ื ื•ืช

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

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

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

  • ืœื ืกื•ืจืง SAST ืื• ืกื•ืจืง ืื‘ื˜ื—ื” ื™ื™ืขื•ื“ื™
    CodeRush ืžืชืžืงื“ ื‘ืกื’ื ื•ืŸ ืงื•ื“, ืžื‘ื ื” ื•ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืฉืœ ืžืคืชื—ื™ื. ื”ื•ื ืื™ื ื• ืžืชืžื—ื” ื‘ื–ื™ื”ื•ื™ ืคื’ื™ืขื•ื™ื•ืช ืื• ืขืžื™ื“ื” ื‘ืชืงื ื™ื ื›ืžื• OWASP ืื• CWE.
  • ื—ืกืจื•ืช ืชื›ื•ื ื•ืช ื“ื™ื•ื•ื— ืืจื’ื•ื ื™ื•ืช
    ื”ื•ื ืื™ื ื• ืžืกืคืง ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืžืจื›ื–ื™ื™ื, ืžืขืงื‘ ืื—ืจ ืžื’ืžื•ืช ืคื’ืžื™ื ืื• ื™ื›ื•ืœื•ืช ื“ื™ื•ื•ื— ื”ืžืชืื™ืžื•ืช ืœื ื™ืชื•ื— ื›ืœืœ-ืฆื•ื•ืชื™ ืขืœ ืคื ื™ ืฆื™ื ื•ืจื•ืช CI.
  • ื”ืจื—ื‘ืช ื›ืœืœื™ื ืžื•ื’ื‘ืœืช
    ื‘ื”ืฉื•ื•ืื” ืœืžื ืชื—ื™ Roslyn ืื• ื›ืœื™ื ื›ืžื• NDepend, CodeRush ืื™ื ื• ืžืฆื™ืข ืžืกื’ืจืช ืžืงื™ืคื” ืœื‘ื ื™ื™ื” ื•ืื›ื™ืคื” ืฉืœ ื›ืœืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžื•ืชืืžื™ื ืื™ืฉื™ืช ืื• ืื™ืœื•ืฆื™ื ืื“ืจื™ื›ืœื™ื™ื.
  • ืื™ืŸ ืฉื™ืœื•ื‘ ืฉื•ืจืช ืคืงื•ื“ื” ืื• CI/CD
    ื”ื ื™ืชื•ื— ืžืชื‘ืฆืข ื›ื•ืœื• ื‘ืชื•ืš ืกื‘ื™ื‘ืช Visual Studio. ืื™ืŸ ืชืžื™ื›ื” ื‘ื‘ื™ืฆื•ืข ืœืœื headless ื‘ืฆื™ื ื•ืจื•ืช ื‘ื ื™ื™ื” ืื• ื‘ืชืฉืชื™ืช ื ื™ืชื•ื— ืžืจื—ื•ืง.
  • ืื™ืŸ ื ื™ืชื•ื— ืขืžื•ืง ืฉืœ ื–ืจื™ืžืช ื ืชื•ื ื™ื ืื• ื–ื™ื”ื•ืžื™ื
    CodeRush ืื™ื ื• ืžื‘ืฆืข ื ื™ืชื•ื— ืจื’ื™ืฉ ืœื ืชื™ื‘, ืกืจื™ืงื” ื‘ื™ืŸ-ืคืจื•ืฆื“ื•ืจื™ืช ืื• ืžืขืงื‘ ืžืชืงื“ื ืื—ืจ ื–ืจื™ืžืช ื ืชื•ื ื™ื. ืœื›ืŸ, ื”ื•ื ืขืœื•ืœ ืœืคืกืคืก ื‘ืื’ื™ื ืžื•ืจื›ื‘ื™ื ื”ืžืฉืชืจืขื™ื ืขืœ ืคื ื™ ืžืกืคืจ ืงื‘ืฆื™ื ืื• ืฉื›ื‘ื•ืช.
  • ื™ื•ืชืจ ืžื•ื›ื•ื•ืŸ ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืžืืฉืจ ืื›ื™ืคืช ืื™ื›ื•ืช
    ื”ื”ืชืžืงื“ื•ืช ื‘ืืจื’ื•ื ื•ืžื™ื” ืฉืœ ืžืคืชื—ื™ื ื™ื›ื•ืœื” ืœื’ืจื•ื ืœืื›ื™ืคื” ืคื—ื•ืช ืงืคื“ื ื™ืช ืฉืœ ืชืงื ื™ ืงื•ื“ ื‘ื”ืฉื•ื•ืื” ืœื›ืœื™ื ื›ืžื• SonarQube ืื• Coverity, ืฉืžืขื“ื™ืคื™ื ื“ื™ื•ืง ืฉืœ ืคื’ืžื™ื.
  • ืœื ืื™ื“ื™ืืœื™ ืขื‘ื•ืจ ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ืื• ืžื“ื•ืจ ืงื•ื“ื
    ืœืžืจื•ืช ืฉ-CodeRush ืจืกืคื•ื ืกื™ื‘ื™ ื‘ืคืจื•ื™ืงื˜ื™ื ืงื˜ื ื™ื ืขื“ ื‘ื™ื ื•ื ื™ื™ื, ื™ื™ืชื›ืŸ ืฉืœื ื ื™ืชืŸ ืœื”ืจื—ื™ื‘ ืื•ืชื• ื‘ื™ืขื™ืœื•ืช ื‘ืžืื’ืจื™ ืืจื’ื•ื ื™ื ื’ื“ื•ืœื™ื ื”ื“ื•ืจืฉื™ื ื‘ื“ื™ืงื•ืช ืกื˜ื˜ื™ื•ืช ืžืขืžื™ืงื•ืช, ื‘ื™ืงื•ืจื•ืช ืื• ื”ืขืจื›ืช ืชืื™ืžื•ืช.

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

StyleCop

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

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

ื™ืชืจื•ื ื•ืช

  • ืžืงื“ื ืกื’ื ื•ืŸ ืงื™ื“ื•ื“ ืขืงื‘ื™ ื‘ื™ืŸ ืฆื•ื•ืชื™ื ื•ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื
  • ืžืฆื™ืข ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ื›ืœืœื™ื ื”ื ื™ืชื ื™ื ืœื”ืชืืžื” ืื™ืฉื™ืช ืœืขื™ืฆื•ื‘, ืžืชืŸ ืฉืžื•ืช, ืกื™ื“ื•ืจ ื•ื”ืขืจื•ืช
  • ืžืฉื•ืœื‘ ืขื Visual Studio ื•ืชื•ืื ืœืžื ืชื—ื™ Roslyn
  • ืื•ื›ืฃ ืืช ืกื’ื ื•ืŸ ื”ืงื•ื“ ื‘ื–ืžืŸ ื”ืงื•ืžืคื™ืœืฆื™ื”, ื•ืขื•ื–ืจ ืœืฉืžื•ืจ ืขืœ ืื™ื›ื•ืช ื‘ืžื”ืœืš ื”ืคื™ืชื•ื—
  • ื ื™ืชืŸ ืœื”ืจื—ื‘ื” ื‘ืืžืฆืขื•ืช ืงื‘ืฆื™ ืชืฆื•ืจื” ืื• ืขืจื›ื•ืช ื›ืœืœื™ื ื ื•ืกืคื•ืช
  • ืฉื™ืœื•ื‘ ืงืœ ื‘ืกื‘ื™ื‘ื•ืช ื‘ื ื™ื™ื” ื•-CI (ื“ืจืš NuGet ืื• MSBuild)
  • ืžืขื•ื“ื“ ืงื•ื“ C# ื ืงื™, ืงืจื™ื ื•ืžืชื•ืขื“ ื”ื™ื˜ื‘

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

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

  • ืžืชืžืงื“ ืจืง ื‘ืกื’ื ื•ืŸ ื”ืงื•ื“, ืœื ื‘ื ื›ื•ื ื•ืช ืื• ื‘ืื‘ื˜ื—ื”
    StyleCop ืื™ื ื• ืžื–ื”ื” ื‘ืื’ื™ื, ื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื ืื• ืคื’ื™ืขื•ื™ื•ืช. ื”ื•ื ืžืฉืœื™ื ื›ืœื™ื ื›ืžื• ืžื ืชื—ื™ Roslyn ืื• SonarQube ืืš ืื™ื ื• ืžื—ืœื™ืฃ ืื•ืชื.
  • ื™ื›ื•ืœ ืœื”ื™ื•ืช ืงืคื“ื ื™ ืžื“ื™ ื•ืžืœื ืžื™ืœื™ื
    ื”ื›ืœืœื™ื ืฉืœ StyleCop ืจื‘ื™ื ื•ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืžื—ืžื™ืจื™ื. ืœืœื ืชืฆื•ืจื” ืžื•ืฉื›ืœืช, ืฆื•ื•ืชื™ื ืขืœื•ืœื™ื ืœืžืฆื•ื ืืช ืขืฆืžื ืžื•ืฆืคื™ื ื‘ืื–ื”ืจื•ืช ืœื’ื‘ื™ ื‘ืขื™ื•ืช ืกื’ื ื•ืŸ ืฉืื™ื ืŸ ืงืจื™ื˜ื™ื•ืช, ืืฉืจ ืขืœื•ืœื•ืช ืœืฉื‘ืฉ ืืช ื”ืจื™ื›ื•ื– ืื• ืœื’ืจื•ื ืœืขื™ื™ืคื•ืช ื”ื›ืœืœื™ื.
  • ืชืžื™ื›ื” ืžื•ื’ื‘ืœืช ื‘ืžื‘ื ื™ C# ืžื•ื“ืจื ื™ื™ื
    ื‘ืขื•ื“ ืฉืœ-StyleCop.Analyzers ื™ืฉ ืชืื™ืžื•ืช ืžืฉื•ืคืจืช ืขื ื’ืจืกืื•ืช C# ื—ื“ืฉื•ืช ื™ื•ืชืจ (ื›ื’ื•ืŸ ืจืฉื•ืžื•ืช, ื”ืชืืžืช ืชื‘ื ื™ื•ืช ืื• ืกื•ื’ื™ ื”ืคื ื™ื•ืช ื”ื ื™ืชื ื™ื ืœ-null), ื”ืชืžื™ื›ื” ืคื™ื’ืจื” ืžื“ื™ ืคืขื ืื—ืจื™ ืขื“ื›ื•ื ื™ ื”ืžื”ื“ืจ, ืžื” ืฉื’ืจื ืœื—ื™ื›ื•ืš ื‘ืคืจื•ื™ืงื˜ื™ื ื”ืžืชืคืชื—ื™ื ื‘ืžื”ื™ืจื•ืช.
  • ืื™ืŸ ื“ื™ื•ื•ื— ื—ื–ื•ืชื™ ืื• ืžื“ื“ื™ื
    ืฉืœื ื›ืžื• SonarQube ืื• NDepend, ืœ-StyleCop ืื™ืŸ ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื, ื’ืจืคื™ื ืื• ืžืขืงื‘ ืื—ืจ ืžื’ืžื•ืช. ื”ื•ื ืžืฆื™ื’ ืจืง ืื–ื”ืจื•ืช ื‘ืคืœื˜ ืฉืœ ื”-IDE ืื• ื”-build, ืžื” ืฉืžื’ื‘ื™ืœ ืืช ื”ื ืจืื•ืช ื‘ื›ืœืœื•ืช ื”ืฆื•ื•ืช.
  • ืื™ืŸ ื ื™ืชื•ื— ืื“ืจื™ื›ืœื™ ืื• ืžื•ืจื›ื‘ื•ืช
    StyleCop ืื™ื ื• ืžื ืชื— ืชืœื•ื™ื•ืช ืงื•ื“, ืžื‘ื ื” ืžื—ืœืงื•ืช ืื• ืื™ื ื“ืงืกื™ื ืฉืœ ืชื—ื–ื•ืงื”. ื”ื•ื ืžืชืžืงื“ ื‘ืขืงื‘ื™ื•ืช ืฉื˜ื—ื™ืช, ืœื ื‘ืื™ื›ื•ืช ืขื™ืฆื•ื‘ ืขืžื•ืงื” ื™ื•ืชืจ.
  • ื™ื›ื•ืœ ืœื”ื™ื•ืช ืคื•ืœืฉื ื™ ืื ืœื ืžื•ื’ื“ืจ ื›ืจืื•ื™
    ื”ืคืขืœืช StyleCop ื‘ืคืจื•ื™ืงื˜ื™ื ืงื™ื™ืžื™ื ืขืœื•ืœื” ืœื”ืฆื™ืฃ ืžืขืจื›ื•ืช ื‘ื ื™ื” ื‘ืื–ื”ืจื•ืช. ืฆื•ื•ืชื™ื ื—ื™ื™ื‘ื™ื ืœื”ืชืื™ื ื‘ืงืคื™ื“ื” ืืช ื”ื›ืœืœื™ื ื›ื“ื™ ืœืื–ืŸ ื‘ื™ืŸ ืื›ื™ืคื” ืœื‘ื™ืŸ ืคืจืงื˜ื™ื•ืช, ื‘ืžื™ื•ื—ื“ ื‘ืžื”ืœืš ื”ืื™ืžื•ืฅ.
  • ืชืœื•ื™ ื‘ืชื—ื–ื•ืงื” ืงื”ื™ืœืชื™ืช
    ืžืื—ืจ ืฉืคืจื•ื™ืงื˜ ืžื™ืงืจื•ืกื•ืคื˜ ื”ืžืงื•ืจื™ ืื•ื—ืกืŸ ื‘ืืจื›ื™ื•ืŸ, ื”ืคื™ืชื•ื— ื”ืžืชืžืฉืš ืชืœื•ื™ ื‘ืชื•ืจืžื™ื ืžื”ืงื”ื™ืœื”. ื‘ืขื•ื“ ืฉืงื™ื™ืžื•ืช ืืงื˜ื™ื‘ื™ืช ื•ืืจื•ื›ืช ื˜ื•ื•ื— ืขืฉื•ื™ื” ืœื”ื“ืื™ื’ ืืจื’ื•ื ื™ื ื”ืžืกืชืžื›ื™ื ืขืœ ืขื“ื›ื•ื ื™ื ื•ืชืžื™ื›ื” ืชื›ื•ืคื™ื.

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

ืคืง-ืงื•ืค

FxCop ื”ื™ื” ืื—ื“ ืžื›ืœื™ ื”ื ื™ืชื•ื— ื”ืกื˜ื˜ื™ ื”ืžื•ืงื“ืžื™ื ื‘ื™ื•ืชืจ ืฉืคื•ืชื—ื• ืขืœ ื™ื“ื™ ืžื™ืงืจื•ืกื•ืคื˜, ื›ืฉื”ื•ื ืžืžื•ืงื“ ื‘ืงื•ื“ ืžื ื•ื”ืœ ื‘ืคื•ืจืžื˜ .NET. ื”ื•ื ืžื ืชื— ืืกืžื‘ืœื™ ืงื•ืžืคื™ืœืฆื™ื” (ืงื•ื“ IL) ื‘ืžืงื•ื ืงื•ื“ ืžืงื•ืจ, ืžื” ืฉืžืืคืฉืจ ืœื• ืœื‘ื“ื•ืง ืžื•ืœ ื”ื ื—ื™ื•ืช ื”ืขื™ืฆื•ื‘ ืฉืœ .NET Framework ืฉืœ ืžื™ืงืจื•ืกื•ืคื˜. ืขื ื”ื–ืžืŸ, ื”ื•ื ื”ืชืคืชื— ืœ-FxCop Analyzers, ืงื‘ื•ืฆื” ืฉืœ ืžื ืชื—ื™ื ืžื‘ื•ืกืกื™ Roslyn ื”ืžืฉื•ืœื‘ื™ื ืขื Visual Studio ื•-MSBuild, ื”ืžื ืชื—ื™ื ืงื•ื“ C# ื•-VB.NET ื‘ืžื”ืœืš ื”ืงื•ืžืคื™ืœืฆื™ื”.

ื‘ืขื•ื“ ืฉ-FxCop ื”ืžืงื•ืจื™ ื•ื”ืขืฆืžืื™ ื”ื•ืฆื ืžืฉื™ืžื•ืฉ, ื—ื‘ื™ืœืช ืžื ืชื—ื™ FxCop ื ื•ืชืจื” ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื•ื ืกืคื’ื” ื‘ืžื™ื“ื” ืจื‘ื” ื‘ืžื ืชื—ื™ .NET SDK ื›ื—ืœืง ืžืคื™ืชื•ื— .NET ืžื•ื“ืจื ื™.

ื™ืชืจื•ื ื•ืช

  • ื ื‘ื ื” ื•ืžืชื•ื—ื–ืง ืขืœ ื™ื“ื™ ืžื™ืงืจื•ืกื•ืคื˜, ืชื•ืš ื”ื‘ื˜ื—ืช ืื™ื ื˜ื’ืจืฆื™ื” ืขืžื•ืงื” ืขื Visual Studio ื•-.NET SDK
  • ืžื ืชื— ืงื•ื“ ื‘ื–ืžืŸ ื”ื‘ื ื™ื™ื” ื‘ืืžืฆืขื•ืช Roslyn, ื•ืžืกืคืง ืžืฉื•ื‘ ืžื”ื™ืจ ื•ื‘ื–ืžืŸ ืืžืช
  • ืžืกื™ื™ืข ื‘ืื›ื™ืคืช ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช, ืžื•ืกื›ืžื•ืช ืœืžืชืŸ ืฉืžื•ืช, ื”ืฆืขื•ืช ื‘ื™ืฆื•ืขื™ื ื•ืขืžื™ื“ื” ื‘ื”ื ื—ื™ื•ืช ืขื™ืฆื•ื‘
  • ืชื•ืžืš ื‘ื“ื™ื›ื•ื™ ื•ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื›ืœืœื™ื ื‘ืืžืฆืขื•ืช ืขืจื›ื•ืช ื›ืœืœื™ื ื•-editorconfig
  • ืงืœ ืœื”ืชืงื ื” ื“ืจืš NuGet ื•ืœืฉื™ืœื•ื‘ ื‘ืคืจื•ื™ืงื˜ื™ื ืงื™ื™ืžื™ื ืฉืœ .NET Core ืื• .NET 5+
  • ืกื˜ ืขืฉื™ืจ ืฉืœ ื›ืœืœื™ื ื”ืžื›ืกื™ื ืฉื™ืžื•ืฉ, ื’ืœื•ื‘ืœื™ื–ืฆื™ื”, ืืžื™ื ื•ืช, ืชื—ื–ื•ืงื” ื•ืขื•ื“
  • ืคื™ืชื•ื— ืคืขื™ืœ ืขื‘ืจ ื›ืขืช ืœ ืžื ืชื—ื™ .NET, ืชื•ืš ื”ื‘ื˜ื—ืช ื”ืžืฉื›ื™ื•ืช ืขืชื™ื“ื™ืช

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

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

  • ืื™ืŸ ื ื™ืชื•ื— ืžืžื•ืงื“ ืื‘ื˜ื—ื”
    FxCop ืื™ื ื• ืžื›ืกื” ืคื’ืžื™ ืื‘ื˜ื—ื” ืžืขืžื™ืงื™ื, ืžืขืงื‘ ืื—ืจ ื–ื™ื”ื•ืžื™ื ืื• ืคื’ื™ืขื•ื™ื•ืช ื ืคื•ืฆื•ืช ื›ืžื• XSS ืื• ื”ื–ืจืงืช SQL. ืœืฆื•ืจืš ืื‘ื˜ื—ืช ืื‘ื˜ื—ื”, ื›ืœื™ื ื›ืžื• CodeQL, veracode, ืื• ืœื—ื–ืง ื ื“ืจืฉื™ื.
  • ื™ื›ื•ืœืช ื”ืจื—ื‘ื” ืžื•ื’ื‘ืœืช
    ื™ืฆื™ืจืช ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ืืคืฉืจื™ืช ืืš ืžื•ืจื›ื‘ืช ื‘ื”ืฉื•ื•ืื” ืœืžืกื’ืจื•ืช ืื—ืจื•ืช ืฉืœ ื ื™ืชื•ื— ื ืชื•ื ื™ื. ืืจื’ื•ื ื™ื ื”ืžื—ืคืฉื™ื ืื›ื™ืคืช ืžื“ื™ื ื™ื•ืช ืžื•ืชืืžืช ืื™ืฉื™ืช ืขืฉื•ื™ื™ื ืœืžืฆื•ื ืืช ืคื™ืชื•ื— Roslyn Analyzer ื’ืžื™ืฉ ื™ื•ืชืจ.
  • ื’ืจืกื” ืขืฆืžืื™ืช ืฉื”ื•ืฆืื” ืžืฉื™ืžื•ืฉ
    ืžืžืฉืง ื”ืžืฉืชืžืฉ ื”ื’ืจืคื™ ื”ืžืงื•ืจื™ ืฉืœ FxCop ื•ื›ืœื™ ื”ื ื™ืชื•ื— ื‘ืจืžืช IL ืื™ื ื ืžืชื•ื—ื–ืงื™ื ืขื•ื“. ืžืฉืชืžืฉื™ื ืžื“ื•ืจ ืงื•ื“ื ื—ื™ื™ื‘ื™ื ืœืขื‘ื•ืจ ืœืžื ืชื—ื™ื ืžื‘ื•ืกืกื™ Roslyn, ื”ื ื‘ื“ืœื™ื ื–ื” ืžื–ื” ื‘ื”ืชื ื”ื’ื•ืชื ื•ื‘ื”ื™ืงืฃื.
  • ืœื ืžื™ื•ืขื“ ืœื ื™ืชื•ื— ืืจื›ื™ื˜ืงื˜ื•ื ื™ ืื• ื ื™ืชื•ื— ืชืœื•ืช
    FxCop ืื™ื ื• ืžืกืคืง ืชื•ื‘ื ื•ืช ืœื’ื‘ื™ ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืžืขืจื›ืช, ืชืœื•ื™ื•ืช ืžื•ื“ื•ืœื™ื ืื• ื”ืคืจื•ืช ืฉื›ื‘ื•ืช. ื›ืœื™ื ื›ืžื• N ืชืœื•ื™ ืžืชืื™ืžื™ื ื™ื•ืชืจ ืœื“ืื’ื•ืช ืืœื•.
  • ื”ื™ืขื“ืจ ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืื• ืžื“ื“ื™ื ื—ื–ื•ืชื™ื™ื
    FxCop ืื™ื ื• ืžืฆื™ืข ืžืžืฉืง ืžืฉืชืžืฉ ืžืงื•ืจื™ ืœื“ื™ื•ื•ื—, ืžืขืงื‘ ืื—ืจ ืžื’ืžื•ืช ืื• ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ื›ืœืœ-ืฆื•ื•ืชื™ื™ื. ื”ื•ื ืžืกืชืžืš ืขืœ ืื‘ื—ื•ืŸ IDE ืื• ืคืœื˜ ื‘ื ื™ื™ื” ืœืงื‘ืœืช ืžืฉื•ื‘, ืžื” ืฉืžื’ื‘ื™ืœ ืืช ื”ื ืจืื•ืช ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ื•ืžื ื”ืœื™ื.
  • ื—ืคื™ืคื” ืขื ืžื ืชื—ื™ SDK ืฉืœ .NET
    ื‘ื’ืจืกืื•ืช .NET ืžื•ื“ืจื ื™ื•ืช, ื›ืœืœื™ FxCop ืจื‘ื™ื ืžืžื•ื–ื’ื™ื ืœืชื•ืš ื”ืžื ืชื—ื™ื ื”ืžื•ื‘ื ื™ื ืฉืœ ืขืจื›ืช ื”ืคื™ืชื•ื— (SDK). ื“ื‘ืจ ื–ื” ืขืœื•ืœ ืœื”ื•ื‘ื™ืœ ืœื‘ืœื‘ื•ืœ ืื• ื›ืคื™ืœื•ื™ื•ืช ืืœื ืื ื›ืŸ ืžืขืจื›ื™ ื”ื›ืœืœื™ื ืžื ื•ื”ืœื™ื ื‘ืงืคื™ื“ื”.
  • ืชืžื™ื›ื” ื’ืจื•ืขื” ื‘ืกื‘ื™ื‘ื•ืช ืฉืื™ื ืŸ MSBuild
    ืคืจื•ื™ืงื˜ื™ื ืžื—ื•ืฅ ืœืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ MSBuild (ืœืžืฉืœ, ืฉื™ืžื•ืฉ ื‘-Bazel ืื• ื‘ืžืขืจื›ื•ืช ื‘ื ื™ื™ื” ืžื•ืชืืžื•ืช ืื™ืฉื™ืช) ื ืชืงืœื™ื ื‘ืงืฉื™ื™ื ื‘ืฉื™ืœื•ื‘ ื›ืœืœื™ื ื‘ืกื’ื ื•ืŸ FxCop.

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

ืžื ืชื— ืงื•ื“ ืกื˜ื˜ื™ ืฉืœ Fortify

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

ื™ืชืจื•ื ื•ืช

  • ืชืžื™ื›ื” ืจื—ื‘ื” ื‘ืฉืคื•ืช ื•ื‘ืžืกื’ืจืชื•ืช, ื›ื•ืœืœ ื›ื™ืกื•ื™ ืžืœื ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ C# ื•-.NET ืžื•ื“ืจื ื™ื™ื
  • ืžื–ื”ื” ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืคื’ืžื™ ืื‘ื˜ื—ื”, ื›ื•ืœืœ ืคื’ื™ืขื•ื™ื•ืช ื”ื–ืจืงื”, ืงืจื™ืคื˜ื•ื’ืจืคื™ื” ืœื ืžืื•ื‘ื˜ื—ืช, ื‘ืขื™ื•ืช ืื™ืžื•ืช ื•ืขื•ื“.
  • ืžืฉืœื‘ ืกื˜ื ื“ืจื˜ื™ื ื‘ืชืขืฉื™ื™ื” ื›ืžื• CWE, OWASP Top 10 ื•-SANS 25 ื‘ืกื™ื•ื•ื’ ื”ืคื’ื™ืขื•ื™ื•ืช ืฉืœื•.
  • ืชืžื™ื›ื” ื‘ืื™ื ื˜ื’ืจืฆื™ื” ืขื ื›ืœื™ CI/CD, IDEs (ื›ื’ื•ืŸ Visual Studio) ื•ืคื™ื ื™ืœื™ DevSecOps
  • ื“ื•ื—ื•ืช ืžืคื•ืจื˜ื™ื ืขื ื”ื ื—ื™ื•ืช ืชื™ืงื•ืŸ ื‘ืขื“ื™ืคื•ืช ืขืœื™ื•ื ื”
  • ืžืฆื™ืข ืžืจื›ื– ืื‘ื˜ื—ืช ืชื•ื›ื ื” (SSC) ืœืžืžืฉืœ, ืžืขืงื‘ ื•ื ื™ื”ื•ืœ ืกื™ื›ื•ื ื™ื ื‘ืจืžืช ื”ืืจื’ื•ืŸ
  • ืชืžื™ื›ื” ื‘ื—ื‘ื™ืœื•ืช ื›ืœืœื™ื ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ื•ื‘ืชืฆื•ืจื” ืขื‘ื•ืจ ืžื“ื™ื ื™ื•ืช ืกืคืฆื™ืคื™ืช ืœื“ื•ืžื™ื™ืŸ
  • ืžื’ื•ื‘ื” ืขืœ ื™ื“ื™ ืฆื•ื•ืช ืžื—ืงืจ ืื‘ื˜ื—ื” ื•ืชื™ืง ื•ืขื“ื›ื•ื ื™ ื›ืœืœื™ื ืฉื•ื˜ืคื™ื
  • ื›ื•ืœืœ ืชืžื™ื›ื” ื”ืŸ ื‘ื™ื™ืฉื•ืžื™ .NET ืžืงื•ืจื™ื™ื ื‘ืขื ืŸ ื•ื”ืŸ ื‘ื™ื™ืฉื•ืžื™ .NET ืžื“ื•ืจ ืงื•ื“ื

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ื‘ืขื•ื“ ืฉ-Fortify SCA ื”ื•ื ืขื•ืฆืžืชื™, ืžื•ืจื›ื‘ื•ืชื• ื•ืžื™ืงื•ื“ื• ื‘ืืจื’ื•ืŸ ืžื’ื™ืขื™ื ืขื ืคืฉืจื•ืช ืžืกื•ื™ืžื•ืช:

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

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

ืฆ'ืงืžืจืงืก

Checkmarx ื”ื™ื ืคืœื˜ืคื•ืจืžืช SAST ืืจื’ื•ื ื™ืช ืžื•ื‘ื™ืœื” ื”ืžืกื™ื™ืขืช ืœืืจื’ื•ื ื™ื ืœื–ื”ื•ืช ื•ืœืชืงืŸ ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื” ื‘ืงื•ื“ ื”ืžืงื•ืจ ื‘ืฉืœื‘ ืžื•ืงื“ื ืฉืœ ืžื—ื–ื•ืจ ื—ื™ื™ ื”ืคื™ืชื•ื—. ื”ื™ื ืชื•ืžื›ืช ื‘ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืฉืคื•ืช ื•ืžืกื’ืจื•ืช, ืขื ื™ื›ื•ืœื•ืช ื ื™ืชื•ื— ืžืขืžื™ืงื•ืช ืขื‘ื•ืจ ืกื‘ื™ื‘ื•ืช C# ื•-.NET, ื›ื•ืœืœ ASP.NET, Blazor ื•ืืคืœื™ืงืฆื™ื•ืช .NET Framework ืžื“ื•ืจ ืงื•ื“ื. Checkmarx, ืฉืชื•ื›ื ื ื” ืœืฉื™ืœื•ื‘ ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืžื•ื“ืจื ื™ื•ืช ืฉืœ DevSecOps, ืžืื•ืžืฆืช ื‘ืื•ืคืŸ ื ืจื—ื‘ ื‘ืžื’ื–ืจื™ื ื›ืžื• ืคื™ื ื ืกื™ื, ืฉื™ืจื•ืชื™ ื‘ืจื™ืื•ืช ื•ื‘ื™ื˜ื—ื•ืŸ.

ื™ืชืจื•ื ื•ืช

  • ืชืžื™ื›ื” ืžืงื™ืคื” ื‘ืคืจื•ื™ืงื˜ื™ื ืžื‘ื•ืกืกื™ C# ื•-.NET ื›ื•ืœืœ ื ื™ืชื•ื— ืชื—ื‘ื™ืจ, ืกืžื ื˜ื™ืงื” ื•ื–ืจื™ืžื” ืžืœืื™ื
  • ืžื–ื”ื” ื‘ื™ืขื™ืœื•ืช ืคื’ื™ืขื•ื™ื•ืช ื›ืžื• ื”ื–ืจืงืช SQL, ืกืงืจื™ืคื˜ื™ื ื‘ื™ืŸ ืืชืจื™ื, ืกื•ื“ื•ืช ืžืงื•ื“ื“ื™ื, ื‘ื™ื˜ื•ืœ ืกืจื™ืืœื™ื–ืฆื™ื” ืœื ืžืื•ื‘ื˜ื— ื•ืคื’ืžื™ ืื™ืžื•ืช
  • ืžืžื ืฃ ื–ืจื™ืžืช ื ืชื•ื ื™ื ื•ืžื™ื“ื•ืœ ื–ืจื™ืžืช ื‘ืงืจื” ื›ื“ื™ ืœืกืคืง ืžืขืงื‘ ืื—ืจ ืคื’ื™ืขื•ื™ื•ืช ื‘ื”ืงืฉืจ
  • ืžืฉืชืœื‘ ืขื Visual Studio, Azure DevOps, GitHub, GitLab, Jenkins ื•ืขื•ื“
  • ืžื“ื™ื ื™ื•ืช ืกืจื™ืงื” ื•ืžื™ืคื•ื™ ืชืื™ืžื•ืช ื”ื ื™ืชื ื™ื ืœื”ืชืืžื” ืื™ืฉื™ืช (ืœืžืฉืœ, OWASP Top 10, PCI DSS, HIPAA, GDPR)
  • ื›ื•ืœืœ ื”ื ื—ื™ื•ืช ืœืชื™ืงื•ืŸ ื‘ืขื™ื•ืช ืขื ื“ื•ื’ืžืื•ืช ืฉื™ืขื–ืจื• ืœืžืคืชื—ื™ื ืœืชืงืŸ ืื•ืชืŸ ืžื”ืจ ื™ื•ืชืจ
  • ืœื•ื— ืžื—ื•ื•ื ื™ื ื•ื“ื™ื•ื•ื— ืžืจื›ื–ื™ื™ื ืœื ื™ื”ื•ืœ ืกื™ื›ื•ื ื™ื, ืชืื™ืžื•ืช ื•ืžื•ื›ื ื•ืช ืœื‘ื™ืงื•ืจืช
  • ืžืฆื™ืข ืฉื™ืจื•ืช ืกืจื™ืงื” ืžื ื•ื”ืœ ืžื‘ื•ืกืก ืขื ืŸ (Checkmarx One) ื•ื›ืŸ ืคืจื™ืกื” ืžืงื•ืžื™ืช
  • ืชื•ืžืš ื‘ืื™ื ื˜ื’ืจืฆื™ื” ืขื ื›ืœื™ ื ื™ืชื•ื— ื”ืจื›ื‘ ืชื•ื›ื ื” (SCA) ื•ืชืฉืชื™ืช ื›ืงื•ื“ (IaC)

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ืœืžืจื•ืช ื ืงื•ื“ื•ืช ื”ื—ื•ื–ืง ื”ืืจื’ื•ื ื™ื•ืช ืฉืœื”, Checkmarx ืžื’ื™ืขื” ืขื ืžืกืคืจ ืื–ื”ืจื•ืช ื”ืจืœื•ื•ื ื˜ื™ื•ืช ื‘ืžื™ื•ื—ื“ ืœืฆื•ื•ืชื™ื ืฉืขื•ื‘ื“ื™ื ืขื C#:

  • ื”ืชืงื ื” ืขืชื™ืจืช ืžืฉืื‘ื™ื ื•ืžื•ืจื›ื‘ืช
    ื”ื’ื“ืจื” ืจืืฉื•ื ื™ืช, ื›ื•ืœืœ ื›ื•ื•ื ื•ืŸ ื›ืœืœื™ื ื•ืฉื™ืœื•ื‘ CI, ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื’ื•ื–ืœืช ื–ืžืŸ. ืคืจื™ืกื” ื™ืขื™ืœื” ื“ื•ืจืฉืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืกื™ื•ืข ื‘ื”ื˜ืžืขื” ืื• ืชืžื™ื›ื” ืฉืœ ื”ืกืคืง.
  • ืชื•ืฆืื•ืช ื—ื™ื•ื‘ื™ื•ืช ืฉื’ื•ื™ื•ืช ื‘ื‘ืกื™ืกื™ ืงื•ื“ C# ืžื“ื•ืจ ืงื•ื“ื
    ืชื‘ื ื™ื•ืช ืงื•ื“ ื™ืฉื ื•ืช ื™ื•ืชืจ ืื• ืœื ืกื˜ื ื“ืจื˜ื™ื•ืช (ืœืžืฉืœ, ืขื ื”ืฉืชืงืคื•ืช ื“ื™ื ืžื™ืช ืื• ADO.NET) ืขืœื•ืœื•ืช ืœื”ื•ื‘ื™ืœ ืœืฉื™ืขื•ืจื™ื ื’ื‘ื•ื”ื™ื ื™ื•ืชืจ ืฉืœ ื—ื™ื•ื‘ื™ ืฉื’ื•ื™ ืืœื ืื ื›ืŸ ื›ืœืœื™ ื”ืกืจื™ืงื” ืžื•ืชืืžื™ื ืื™ืฉื™ืช.
  • ืžื“ื“ื™ ืื™ื›ื•ืช ืืจื›ื™ื˜ืงื˜ื•ื ื™ืช/ืงื•ื“ ืžื•ื’ื‘ืœื™ื
    ื‘ืขื•ื“ ืฉ-Checkmarx ืžืฆื•ื™ืŸ ืœื˜ื™ืคื•ืœ ื‘ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื”, ื”ื•ื ืžืกืคืง ืชื•ื‘ื ื•ืช ืžื•ื’ื‘ืœื•ืช ืœื’ื‘ื™ ืชื—ื–ื•ืงื”, ืžื•ื“ื•ืœืจื™ื•ืช ืื• ืขืžื™ื“ื” ื‘ืขืงืจื•ื ื•ืช ืืจื›ื™ื˜ืงื˜ื•ืจื” ื ืงื™ื™ื”. ื›ืœื™ื ื›ืžื• NDepend ืื• ReSharper ื ื•ืชืจื• ื ื—ื•ืฆื™ื ืœืื›ื™ืคืช ืื™ื›ื•ืช.
  • ืขืœื•ืช ื’ื‘ื•ื”ื” ื•ืžื™ืงื•ื“ ืืจื’ื•ื ื™
    ืขืœื•ื™ื•ืช ื”ืจื™ืฉื•ื™ ืžืฉืžืขื•ืชื™ื•ืช ื•ื™ื™ืชื›ืŸ ืฉืœื ื™ืชืื™ืžื• ืœืฆื•ื•ืชื™ื ืงื˜ื ื™ื ืื• ืœื—ื‘ืจื•ืช ื”ื–ื ืง. ื”ืคืœื˜ืคื•ืจืžื” ืžื›ื•ื•ื ืช ื‘ืขื™ืงืจ ืœืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื— ื’ื“ื•ืœื•ืช ื•ืœืืจื’ื•ื ื™ื ื”ืžืชืžืงื“ื™ื ื‘ืื‘ื˜ื—ื”.
  • ืžืฉืš ืกืจื™ืงื” ื‘ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื ืฉืœ C#
    ื“ื™ื•ืง ืกืจื™ืงื” ืขืžื•ืงื” ืžื’ื“ื™ืœ ืืช ื–ืžืŸ ื”ืขื™ื‘ื•ื“. ื‘ื‘ืกื™ืกื™ ืงื•ื“ ืžื•ื ื•ืœื™ื˜ื™ื™ื ืื• ื‘ื‘ืกื™ืกื™ ืงื•ื“ ืฆืžื•ื“ื™ื, ืกืจื™ืงื•ืช ื™ื›ื•ืœื•ืช ืœื”ืื˜ ืืช ืฆื™ื ื•ืจื•ืช ื”ืขื™ื‘ื•ื“ ืœืœื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”.
  • ืื™ืŸ ืื™ื ื˜ื’ืจืฆื™ื” ืขืžื•ืงื” ืขื ื—ืœืง ืžื–ืจื™ืžื•ืช ื”ืขื‘ื•ื“ื” ื”ืกืคืฆื™ืคื™ื•ืช ืœ-.NET
    ื‘ื”ืฉื•ื•ืื” ืœื›ืœื™ื ืžืงื•ืจื™ื™ื ืฉืœ ืžื™ืงืจื•ืกื•ืคื˜, ืฉื™ืœื•ื‘ ืขื ืชื›ื•ื ื•ืช ื›ืžื• ืžื ืชื—ื™ื, ืกื•ื’ื™ ื”ืคื ื™ื•ืช ื”ื ื™ืชื ื™ื ืœ-null ืื• ืชืฆื•ืจื•ืช ืกืคืฆื™ืคื™ื•ืช ืœื–ืžืŸ ืจื™ืฆื” ืขืฉื•ื™ ืœื”ื™ื•ืช ื—ืกืจ ืขื•ืžืง.
  • ืขืงื•ืžืช ืœืžื™ื“ื” ืœืžืคืชื—ื™ื
    ืžืคืชื—ื™ื ืฉืื™ื ื ืžื›ื™ืจื™ื ืงื™ื“ื•ื“ ืžืื•ื‘ื˜ื— ืื• ืกื•ื’ื™ ืคื’ื™ืขื•ื™ื•ืช ืžืชืงื“ืžื™ื ืขืฉื•ื™ื™ื ืœืžืฆื•ื ืืช ืคืœื˜ ื”ื“ื•ื— ืงืฉื” ืœืคื™ืจื•ืฉ ืœืœื ื”ื“ืจื›ื” ืื• ื”ื›ืฉืจื”.

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

ื ื™ืชื•ื— ืกื˜ื˜ื™ ืฉืœ Veracode

Veracode ืžืฆื™ืขื” ืคืœื˜ืคื•ืจืžืช ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ืช ื™ื™ืฉื•ืžื™ื ืกื˜ื˜ื™ื•ืช (SAST) ืžื‘ื•ืกืกืช ืขื ืŸ, ื”ื™ื“ื•ืขื” ื‘ืงืœื•ืช ื”ืงืœื™ื˜ื” ื•ื‘ื ื™ื”ื•ืœ ื”ืืจื’ื•ื ื™ ืฉืœื”. ื”ื™ื ื ืžืฆืืช ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ืชืขืฉื™ื•ืช ืขื ื“ืจื™ืฉื•ืช ืชืื™ืžื•ืช ื—ื–ืงื•ืช, ื›ื’ื•ืŸ ื‘ื ืงืื•ืช, ืฉื™ืจื•ืชื™ ื‘ืจื™ืื•ืช ื•ื‘ื™ื˜ื•ื—. ืขื‘ื•ืจ ืžืคืชื—ื™ C# ื•ืฆื•ื•ืชื™ .NET, Veracode ืชื•ืžื›ืช ื‘ื ื™ืชื•ื— ืฉืœ ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜ ื•ืฉื•ืœื—ืŸ ืขื‘ื•ื“ื” ื›ืื—ื“, ื›ื•ืœืœ ASP.NET Core, Blazor ื•ืคืจื•ื™ืงื˜ื™ื ืžื“ื•ืจ ืงื•ื“ื ืฉืœ .NET Framework.

ื™ืชืจื•ื ื•ืช

  • ืชืžื™ื›ื” ืžืœืื” ื‘ื‘ืกื™ืกื™ ืงื•ื“ C# ืžื•ื“ืจื ื™ื™ื ื•ืžืกื•ืจืชื™ื™ื, ื›ื•ืœืœ .NET Core ื•-.NET 6+
  • ืžื–ื”ื” ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืคื’ื™ืขื•ื™ื•ืช, ื›ื•ืœืœ ื”ื–ืจืงื”, ืคื’ืžื™ื ืงืจื™ืคื˜ื•ื’ืจืคื™ื™ื, ืžืžืฉืงื™ API ืœื ืžืื•ื‘ื˜ื—ื™ื ื•ื‘ืขื™ื•ืช ืœื•ื’ื™ืงื” ืขืกืงื™ืช
  • ืื™ืŸ ืฆื•ืจืš ื‘ืชืฉืชื™ืช ืžืงื•ืžื™ืช ื”ื•ื“ื•ืช ืœืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื‘ื•ืกืกืช ืขื ืŸ ืžืœืื”
  • ืžื•ื“ืœ ืคืฉื•ื˜ ืฉืœ ื”ืขืœืื” ื•ืกืจื™ืงื” ื‘ืืžืฆืขื•ืช ืงื‘ืฆื™ื ื‘ื™ื ืืจื™ื™ื ืฉืขื‘ืจื• ื”ื™ื“ื•ืจ ืžืจืืฉ (ืงื‘ืฆื™ DLL, EXE ื•ื›ื•')
  • ืขื•ืžื“ ื‘ืชืงื ื•ืช OWASP Top 10, CWE, SANS 25 ื•ืชืงื ื•ืช ืกืคืฆื™ืคื™ื•ืช ืœืชืขืฉื™ื™ื”
  • ืชื•ืžืš ื‘ืคื™ืชื•ื— ืžื•ื ื—ื” ืžื“ื™ื ื™ื•ืช ืขื ืื›ื™ืคื” ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ ืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ืžืื•ื‘ื˜ื—ื•ืช
  • ืžืฉืชืœื‘ ืขื Visual Studio, Azure DevOps, Jenkins, GitHub, GitLab ื•ืคืœื˜ืคื•ืจืžื•ืช CI/CD ืื—ืจื•ืช
  • ืžืกืคืง ื”ื ื—ื™ื•ืช ื‘ืจื•ืจื•ืช ืœืชื™ืงื•ืŸ, ืงื™ืฉื•ืจื™ื ืœ-CWE ื•ื”ืžืœืฆื•ืช ืœืชื™ืงื•ืŸ
  • ืžืฆื™ืข ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ืื ืœื™ื˜ื™ื™ื ื•ื“ื™ื•ื•ื— ืกื™ื›ื•ื ื™ื ืžืจื›ื–ื™ ืœืฆื•ืจืš ืžืขืงื‘ ืื—ืจ ืชืื™ืžื•ืช ื•ื‘ื™ืงื•ืจืช
  • ืžื’ื•ื‘ื” ื‘ืžื—ืงืจ ืื‘ื˜ื—ื” ื•ื‘ืขื“ื›ื•ื ื™ ื—ื‘ื™ืœืช ื›ืœืœื™ื ืฉื•ื˜ืคื™ื

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ื‘ืขื•ื“ ืฉ-Veracode ืžืกืคืง ื ื™ืชื•ื— ืื‘ื˜ื—ื” ื—ื–ืง ืขื‘ื•ืจ C#, ื”ื•ื ืžื’ื™ืข ืขื ื›ืžื” ืคืฉืจื•ืช ืืจื›ื™ื˜ืงื˜ื•ื ื™ื•ืช ื•ืžืขืฉื™ื•ืช:

  • ืกืจื™ืงื” ื‘ื™ื ืืจื™ืช ืžื•ืจื›ื‘ืช ืžืจืืฉ ืžื’ื‘ื™ืœื” ืืช ื”ื”ืงืฉืจ ื‘ืจืžืช ื”ืžืงื•ืจ
    ืžื›ื™ื•ื•ืŸ ืฉ-Veracode ืคื•ืขืœ ืขืœ ืงื•ื“ ืžื”ื•ื“ืจ, ื—ืกืจื” ืœื• ื ืจืื•ืช ืœื’ื‘ื™ ืžื‘ื ื™ื ืžืกื•ื™ืžื™ื ื‘ื–ืžืŸ ื”ืคื™ืชื•ื—, ื›ื’ื•ืŸ ืงื•ื“ ืœื ืžืื•ื‘ื˜ื— ืขื ื”ืขืจื•ืช, ื”ืขืจื•ืช ืงื•ื“ ืื• ืชื ืื™ ื–ืจื™ืžืช ื‘ืงืจื” ืžื“ื•ื™ืงื™ื. ืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœืงืžืคืœ ืืช ื”ืืคืœื™ืงืฆื™ื•ืช ืฉืœื”ื ืœืคื ื™ ื”ืขืœืื”.
  • ืื™ืŸ ืชืžื™ื›ื” ื‘ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช, ืžื‘ื•ืกืก IDE
    ื‘ื ื™ื’ื•ื“ ืœื›ืœื™ื ื›ืžื• Roslyn Analyzers ืื• ReSharper, Veracode ืื™ื ื• ืžืกืคืง ืื–ื”ืจื•ืช ืžื•ื˜ื‘ืขื•ืช ืื• ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ื•ืช ื‘ืžื”ืœืš ื”ืคื™ืชื•ื—. ืคื’ื™ืขื•ื™ื•ืช ื ื—ืฉืคื•ืช ืจืง ืœืื—ืจ ื‘ื ื™ื™ื” ื•ื”ืขืœืื” ืฉืœ ื”ืงื•ื‘ืฅ ื”ื‘ื™ื ืืจื™.
  • ืœื•ืœืื•ืช ืžืฉื•ื‘ ืื™ื˜ื™ื•ืช ื™ื•ืชืจ ื‘-CI/CD
    ืœืžืจื•ืช ืฉื”ื•ื ืžืฉื•ืœื‘ ืขื ืฆื™ื ื•ืจื•ืช ืจื‘ื™ื, ืชื”ืœื™ืš ื”ืขืœืืช ื”ืงื‘ืฆื™ื ื”ื‘ื™ื ืืจื™ื™ื ื•ื”ื”ืžืชื ื” ืœืชื•ืฆืื•ืช ื”ื ื™ืชื•ื— ืขืœื•ืœ ืœื”ืื˜ ืื™ื˜ืจืฆื™ื•ืช ืžื”ื™ืจื•ืช ืื• ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืžื•ื ื—ื•ืช-ื‘ื“ื™ืงื•ืช. ืœื ืžืชืื™ื ืœืžื—ื–ื•ืจื™ ืคื™ืชื•ื— ืฆืคื•ืคื™ื ืœืœื ื›ื•ื•ื ื•ืŸ.
  • ืื™ื›ื•ืช ืงื•ื“ ืกื˜ื˜ื™ ืžื•ื’ื‘ืœืช ืื• ืื›ื™ืคืช ืกื’ื ื•ืŸ ืžื•ื’ื‘ืœืช
    Veracode ืžืชืžืงื“ ื‘ืคื’ืžื™ ืื‘ื˜ื—ื” ื•ืœื ื‘ืื™ื›ื•ืช ืงื•ื“ ื›ืœืœื™ืช, ืื™ืžื•ืช ืืจื›ื™ื˜ืงื˜ื•ืจื” ืื• ืขื™ืฆื•ื‘. ืฆื•ื•ืชื™ื ืฆืจื™ื›ื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืฉืœื‘ ืื•ืชื• ืขื ื›ืœื™ื ื›ืžื• StyleCop, NDepend ืื• ืžืงื‘ื™ืœื•ืช ืฉืœ ESLint ืœืงื‘ืœืช ื›ื™ืกื•ื™ ืžืœื.
  • ืชืžื—ื•ืจ ื‘ืจืžืช ื”ืืจื’ื•ืŸ
    ื”ืขืœื•ื™ื•ืช ื‘ื“ืจืš ื›ืœืœ ื’ื‘ื•ื”ื•ืช ืžื“ื™ ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ืงื˜ื ื™ื ื™ื•ืชืจ. ื”ืคืœื˜ืคื•ืจืžื” ืžืžื•ืงืžืช ืขื‘ื•ืจ ืืจื’ื•ื ื™ื ื‘ื™ื ื•ื ื™ื™ื ืขื“ ื’ื“ื•ืœื™ื ืขื ื”ืชืงืฆื™ื‘ ื•ื”ืชื”ืœื™ื›ื™ื ื”ื ื“ืจืฉื™ื ืœืชืžื™ื›ื” ื‘ืคื™ืชื•ื— ืžื•ื ืข ืื‘ื˜ื—ื”.
  • ื—ื•ืกืจ ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื›ืœืœื™ื
    ื‘ื”ืฉื•ื•ืื” ืœื›ืœื™ื ื‘ืงื•ื“ ืคืชื•ื— ืื• ื‘ื›ืœื™ื ื”ืžืชืืจื—ื™ื ื‘ืื•ืคืŸ ืžืงื•ืžื™, Veracode ืžืฆื™ืขื” ื™ื›ื•ืœืช ืžื•ื’ื‘ืœืช ืœื”ืชืืžื” ืื™ืฉื™ืช ืื• ื™ืฆื™ืจืช ื›ืœืœื™ ื–ื™ื”ื•ื™ ื—ื“ืฉื™ื ืขื‘ื•ืจ ืชื‘ื ื™ื•ืช ืงื™ื“ื•ื“ ืงื ื™ื™ื ื™ื•ืช ืื• ืžืžืฉืงื™ API ืฉืœ C# ื ื™ืฉื”.

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

ืงืœื•ืงื•ืจืง

Klocwork, ืฉืคื•ืชื—ื” ืขืœ ื™ื“ื™ Perforce, ื”ื™ื ื›ืœื™ ืœื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ืกื˜ื˜ื™ื•ืช ืฉืœ ื™ื™ืฉื•ืžื™ื (SAST) ื”ืžื™ื•ืขื“ ืœืคื™ืชื•ื— ืชื•ื›ื ื” ื‘ืขืœืช ืื‘ื˜ื—ื” ื’ื‘ื•ื”ื”. ื”ื™ื ืชื•ืžื›ืช ื‘ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืฉืคื•ืช, ื›ื•ืœืœ C#, C++, Java, Python ื•-JavaScript, ื•ื ืžืฆืืช ื‘ืฉื™ืžื•ืฉ ื ืจื—ื‘ ื‘ืชืขืฉื™ื•ืช ืžื•ืกื“ืจื•ืช ื•ืงืจื™ื˜ื™ื•ืช ืœื‘ื˜ื™ื—ื•ืช ื›ืžื• ืจื›ื‘, ืชืขื•ืคื” ื•ื—ืœืœ, ื‘ื™ื˜ื—ื•ืŸ ื•ื‘ืจื™ืื•ืช.

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

ื™ืชืจื•ื ื•ืช

  • ืชืžื™ื›ื” ื‘ืชืงื ื™ C# ืžื•ื“ืจื ื™ื™ื ื•ืื™ื ื˜ื’ืจืฆื™ื” ืขื Visual Studio ื•-MSBuild
  • ืžื–ื”ื” ื’ืœื™ืฉื•ืช ืžืื’ืจ, ื—ืจื™ื’ื™ื ื‘ื”ืคื ื™ื•ืช null, ืคื’ื™ืขื•ื™ื•ืช ื”ื–ืจืงื”, ื‘ืขื™ื•ืช ืžืงื‘ื™ืœื™ื•ืช ื•ืคื’ืžื™ื ืœื•ื’ื™ื™ื
  • ื”ืชืžืงื“ื•ืช ื—ื–ืงื” ื‘ ืชืื™ืžื•ืช ืื‘ื˜ื—ื”, ื”ืžืฆื™ืข ืขืจื›ื•ืช ื›ืœืœื™ื ืžื•ื‘ื ื•ืช ืขื‘ื•ืจ ืชืงื ื™ OWASP Top 10, CWE, MISRA ื•-CERT
  • ืžืกืคืง ื ื™ืชื•ื— ืžืฆื˜ื‘ืจ ืขื ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช ื›ืืฉืจ ืงื•ื“ ืžืฉืชื ื”, ืžื” ืฉืขื•ื–ืจ ืœืžื ื•ืข ืจื’ืจืกื™ื•ืช
  • ืชื•ืื ืœื‘ืกื™ืกื™ ืงื•ื“ C# ื’ื“ื•ืœื™ื ื•ืžื•ืจื›ื‘ื™ื ืžื‘ืœื™ ืœืคื’ื•ืข ื‘ื‘ื™ืฆื•ืขื™ื
  • ืžืฉืชืœื‘ ืขื ืฆื™ื ื•ืจื•ืช CI/CD ื›ื•ืœืœ Jenkins, GitHub Actions, Azure DevOps ื•ืขื•ื“
  • ื”ืžื™ื•ื—ื“ื•ืช ืฉืœื ื• ืžืขืงื‘ ืื—ืจ ื–ืจื™ืžืช ืคื’ืžื™ื ื•ืื‘ื—ื•ืŸ ืžืขืžื™ืง ืœื”ื‘ื ืช ื’ื•ืจืžื™ื ื‘ืกื™ืกื™ื™ื
  • ื›ื•ืœืœ ืชื•ืกืฃ ืœืžื—ืฉื‘ ืฉื•ืœื—ื ื™ ืœืžืคืชื—ื™ื ื•ื“ื™ื•ื•ื— ืžื‘ื•ืกืก ืฉืจืช ืœืžื ื”ืœื™ื ื•ืœ-QA
  • ื ื™ืชืŸ ืœื”ืจื—ื‘ื” ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ืžื‘ื•ื–ืจื™ื ื”ืขื•ื‘ื“ื™ื ืขืœ ืžืขืจื›ื•ืช ืžื•ื ื•ืœื™ื˜ื™ื•ืช ืื• ืžื‘ื•ืกืกื•ืช ืžื™ืงืจื•-ืฉื™ืจื•ืชื™ื
  • ืžืืคืฉืจ ืคื™ืชื•ื— ืžืžื•ืงื“ ืื‘ื˜ื—ื” ื‘ืกื‘ื™ื‘ื•ืช DevSecOps ื•-Agile

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

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

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

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

Semgrep

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

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

ื™ืชืจื•ื ื•ืช

  • ืžื ืชื— ืงืœ ื•ืžื”ื™ืจ ืžื‘ื•ืกืก CLI ืขื ืชืžื™ื›ื” ื‘ืชื—ื‘ื™ืจ C# ืžื•ื“ืจื ื™
  • ื›ืœืœื™ื ืžื‘ื•ืกืกื™ YAML ืงืœื™ื ืœื›ืชื™ื‘ื” ื•ื”ื‘ื ื” ืžืืคืฉืจื™ื ื“ืคื•ืกื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ืกืคืฆื™ืคื™ื™ื ืœืฉื™ื˜ื•ืช ื”ืงื™ื“ื•ื“ ืฉืœ ื”ืืจื’ื•ืŸ.
  • ื”ืชืืžื” ื˜ื•ื‘ื” ืœ-DevSecOps pipelines ื”ื•ื“ื•ืช ืœื‘ื™ืฆื•ืข ืžื”ื™ืจ ื•ืฉื™ืœื•ื‘ CI/CD ืขื GitHub Actions, GitLab CI, Azure DevOps ื•ืื—ืจื™ื.
  • ืกืคืจื™ื•ืช ื›ืœืœื™ื ืžื•ื‘ื ื•ืช ืœืื‘ื˜ื—ื”, ืชื—ื–ื•ืงื” ื•ื‘ื™ืฆื•ืขื™ื (ื›ื•ืœืœ OWASP Top 10, SANS 25 ื•ืขื•ื“)
  • ืชืžื™ื›ื” ื—ื–ืงื” ื‘ื”ืขื‘ืจืช ืื‘ื˜ื—ื” ืฉืžืืœื”, ืื™ืชื•ืจ ื‘ืขื™ื•ืช ืœืคื ื™ ืžื™ื–ื•ื’ ืื• ืคืจื™ืกื”
  • ืขื•ื‘ื“ ื”ื™ื˜ื‘ ืœืื›ื™ืคืช ื“ืคื•ืกื™ ืื‘ื˜ื—ื” ื•ืฉื™ื˜ื•ืช ืขื‘ื•ื“ื” ืžื•ืžืœืฆื•ืช ื‘ื‘ืกื™ืกื™ ืงื•ื“ ืžืฉื•ืชืคื™ื
  • ืคืœื˜ืคื•ืจืžืช ืขื ืŸ (Semgrep Cloud Platform) ื›ื•ืœืœืช ืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื, ื”ืขืจื•ืช ื™ื—ืกื™ ืฆื™ื‘ื•ืจ, ื™ื•ืžื ื™ ื‘ื™ืงื•ืจืช ื•ืื›ื™ืคืช ื›ืœืœื™ื ืžื‘ื•ืกืกืช ืฆื•ื•ืช
  • ื ื™ืชืŸ ืœื”ืจื—ื‘ื” ืขื Semgrep Supply Chain ื•-Semgrep Secrets ืœื›ื™ืกื•ื™ ืื‘ื˜ื—ืช ื™ื™ืฉื•ืžื™ื ืžืขืžื™ืง ื™ื•ืชืจ
  • ืงื”ื™ืœื” ืชื•ืกืกืช ื•ืžืจืฉื ื—ื•ืงื™ื ืคืชื•ื— ืฉื’ื“ืœ ืœืœื ื”ืจืฃ
  • ืจืžื” ื—ื™ื ืžื™ืช ื–ืžื™ื ื” ืขื ืžื’ื‘ืœื•ืช ื ื“ื™ื‘ื•ืช ื•ืœืœื ื—ืกื ื›ื ื™ืกื” ืœืฆื•ื•ืชื™ื ืงื˜ื ื™ื

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ืœืžืจื•ืช ื”ื’ืžื™ืฉื•ืช ื•ื”ืžื”ื™ืจื•ืช ืฉืœื”, ืœ-Semgrep ื™ืฉ ืžื’ื‘ืœื•ืช ื‘ื•ืœื˜ื•ืช ื›ืืฉืจ ืžื™ื•ืฉืžื™ื ื‘ืงื•ื“ C#, ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืžืฉื™ืžื•ืช ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขืžื•ืง:

  • ืชืžื™ื›ื” ื—ืœืงื™ืช ื‘ืฉืคื” C#
    ื‘ื”ืฉื•ื•ืื” ืœืชืžื™ื›ื” ื”ื‘ื•ื’ืจืช ืฉืœื” ื‘-JavaScript, Python ืื• Go, ืชืžื™ื›ืช C# ืฉืœ Semgrep ืขื“ื™ื™ืŸ ื ืžืฆืืช ื‘ืคื™ืชื•ื—. ื™ื™ืชื›ืŸ ืฉื”ื™ื ืœื ืชื ืชื— ืื• ืชื‘ื™ืŸ ื‘ืื•ืคืŸ ืžืœื ืชื›ื•ื ื•ืช C# ืžืชืงื“ืžื•ืช ื›ืžื• LINQ, ื–ืจื™ืžื•ืช async/await, ืจื›ื™ื‘ื™ื ื’ื ืจื™ื™ื ืื• ืขืฆื™ ื‘ื™ื˜ื•ื™ ืžื•ืจื›ื‘ื™ื.
  • ืื™ืŸ ื ื™ืชื•ื— ืžืขืžื™ืง ืฉืœ ื–ืจื™ืžืช ื ืชื•ื ื™ื
    Semgrep ืžืฆื˜ื™ื™ื ืช ื‘ื”ืชืืžื” ืชื—ื‘ื™ืจื™ืช ื•ืกืžื ื˜ื™ืช ืืš ื—ืกืจื” ื‘ืงืจื” ืžืชืงื“ืžืช ืฉืœ ื–ืจื™ืžืช ืžื™ื“ืข ื•ื ื™ืชื•ื— ื›ืชืžื™ื ื›ืคื™ ืฉืžืฆื™ืขื™ื ื›ืœื™ื ื›ืžื• Coverity, Klocwork ืื• CodeQL. ืžืฆื‘ ื–ื” ื™ื›ื•ืœ ืœื”ื’ื‘ื™ืœ ืืช ื™ื›ื•ืœืชื” ืœื–ื”ื•ืช ืคื’ื™ืขื•ื™ื•ืช ื”ืžืฉืชืจืขื•ืช ืขืœ ืคื ื™ ืžืกืคืจ ืงื‘ืฆื™ื ืื• ืงืจื™ืื•ืช ืœืžืชื•ื“ื”.
  • ืฉื™ืœื•ื‘ IDE ืžื•ื’ื‘ืœ
    ื‘ื ื™ื’ื•ื“ ืœืžื ืชื—ื™ื ืžื‘ื•ืกืกื™ Roslyn ืื• ReSharper, Semgrep ืื™ื ื• ืžืกืคืง ืื‘ื—ื•ืŸ ืžื•ื‘ื ื” ื‘ืชื•ืš Visual Studio ืื• Rider ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœื”ืกืชืžืš ืขืœ ืžืฉื•ื‘ CI ืื• ืœื”ืฉืชืžืฉ ื‘ื• ื›ื›ืœื™ ืกืจื™ืงื” ื™ื“ื ื™ ืืœื ืื ื›ืŸ ื ื•ืฆืจื•ืช ืื™ื ื˜ื’ืจืฆื™ื•ืช ืžื•ืชืืžื•ืช ืื™ืฉื™ืช.
  • ืื™ืŸ ื•ื™ื–ื•ืืœื™ื–ืฆื™ื” ืื• ื ื™ืชื•ื— ืื“ืจื™ื›ืœื™
    ืื™ืŸ ืชืžื™ื›ื” ื‘ื’ืจืคื™ ืชืœื•ืช, ืžื“ื“ื™ ืงื•ื“ ืื• ืชื›ื•ื ื•ืช ืื™ืžื•ืช ืืจื›ื™ื˜ืงื˜ื•ืจื” ื”ื ื“ืจืฉื•ืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืขืœ ื™ื“ื™ ืฆื•ื•ืชื™ื ืืจื’ื•ื ื™ื™ื.
  • ืขืงื•ืžืช ืœืžื™ื“ื” ืชืœื•ืœื” ืœื™ืฆื™ืจืช ื›ืœืœื™ื
    ื‘ืขื•ื“ ืฉื›ืœืœื™ื ื‘ืกื™ืกื™ื™ื ืงืœื™ื ืœื›ืชื™ื‘ื”, ื™ืฆื™ืจืช ืชื‘ื ื™ื•ืช ืืžื™ื ื•ืช ื•ืœืœื ืจืขืฉ ืขื‘ื•ืจ ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ื‘-C# ืขืฉื•ื™ื” ืœื“ืจื•ืฉ ื™ื“ืข ืžืคื•ืจื˜ ื‘ืžื‘ื ื” ืขืฅ ื”ืชื—ื‘ื™ืจ ื”ืžื•ืคืฉื˜ ืฉืœ Semgrep ื•ื‘ืคื ื™ืžื™ื•ืช ื”ืฉืคื”.
  • ื™ืขื™ืœ ื™ื•ืชืจ ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ ืื‘ื˜ื—ื” ืžืืฉืจ ืื›ื™ืคืช ืื™ื›ื•ืช ื›ืœืœื™ืช
    ื ืงื•ื“ื•ืช ื”ื—ื•ื–ืง ืฉืœ Semgrep ื˜ืžื•ื ื•ืช ื‘ืกืจื™ืงืช ืื‘ื˜ื—ื” ื•ื‘ืชืื™ืžื•ืช ืœืžื“ื™ื ื™ื•ืช. ื”ื™ื ืื™ื ื” ืžืคื•ืืจืช ืœืื›ื™ืคืช ืžื•ืกื›ืžื•ืช ืกื’ื ื•ืŸ ืื• ื‘ื™ืฆื•ืข ื‘ื“ื™ืงื•ืช ืžื•ืจื›ื‘ื•ืช ืฆื™ืงืœื•ืžื˜ื™ื•ืช ื›ืžื• ื›ืœื™ื ื›ืžื• NDepend ืื• StyleCop.

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

CodeQL

CodeQL, ืฉืคื•ืชื— ืขืœ ื™ื“ื™ GitHub (ื›ื™ื•ื ื—ืœืง ืž-Microsoft), ื”ื•ื ืžื ื•ืข ื ื™ืชื•ื— ืงื•ื“ ืกืžื ื˜ื™ ื”ืžืืคืฉืจ ืœื‘ืฆืข ืฉืื™ืœืชื•ืช ื‘ืงื•ื“ ื”ืžืงื•ืจ ื›ืื™ืœื• ื”ื™ื” ื ืชื•ื ื™ื. ื”ื•ื ื‘ื•ื ื” ืžืกื“ ื ืชื•ื ื™ื ื™ื—ืกื™ ืžื‘ืกื™ืก ื”ืงื•ื“ ื•ืžืืคืฉืจ ืœืžืฉืชืžืฉื™ื ืœื›ืชื•ื‘ ืฉืื™ืœืชื•ืช ื›ื“ื™ ืœื–ื”ื•ืช ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื”, ื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื ื•ืคื’ืžื™ ืงื™ื“ื•ื“. ื›ื—ืœืง ืž-GitHub Advanced Security (GHAS), CodeQL ืžืžืœื ืชืคืงื™ื“ ืžืจื›ื–ื™ ื‘ืฆื™ื“ ืคื’ื™ืขื•ื™ื•ืช ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ, ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืงื•ื“ ืคืชื•ื—.

C# ื”ื™ื ื‘ื™ืŸ ื”ืฉืคื•ืช ื”ื ืชืžื›ื•ืช ืจืฉืžื™ืช, ื•-GitHub ื”ืจื—ื™ื‘ื” ืืช ืชืžื™ื›ืชื” ื‘ืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ืžื‘ื•ืกืกื•ืช .NET.

ื™ืชืจื•ื ื•ืช

  • ืžืืคืฉืจ ื ื™ืชื•ื— ืกืžื ื˜ื™ ืขืžื•ืง ืฉืœ ืงื•ื“ C#, ืžื™ื“ื•ืœ ื‘ืงืจืช ื ืชื•ื ื™ื ื•ื–ืจื™ืžืช ื ืชื•ื ื™ื ืœื’ื™ืœื•ื™ ืคื’ื™ืขื•ื™ื•ืช ืžื•ืจื›ื‘ื•ืช ื•ืจื‘-ืฉืœื‘ื™ื•ืช
  • ืขื•ื‘ื“ ืขื ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืžืงื•ืจื™ื•ืช ืฉืœ GitHub, ื•ืžืฆื™ืข ืื™ื ื˜ื’ืจืฆื™ื” ื—ืœืงื” ืœืชื•ืš ื‘ืงืฉื•ืช ืžืฉื™ื›ื”, ืื™ืจื•ืขื™ ื“ื—ื™ืคื” ื•ืกืจื™ืงื•ืช ืื‘ื˜ื—ื” ืžืชื•ื–ืžื ื•ืช.
  • ื™ื›ื•ืœ ืœื–ื”ื•ืช ื‘ืขื™ื•ืช ืฉืงืฉื” ืœืžืฆื•ื ื›ืžื• ื‘ื™ื˜ื•ืœ ืกืจื™ืืœื™ื–ืฆื™ื” ืœื ืžืื•ื‘ื˜ื—, ืงืœื˜ื™ื ืœื ืžืื•ืžืชื™ื, ื—ืฆื™ื™ืช ื ืชื™ื‘ื™ื ื•ื“ืคื•ืกื™ ื”ื–ืจืงื”
  • ืžื’ื•ื‘ื” ืขืœ ื™ื“ื™ ื”ืฆืžื™ื—ื” ืฉืœ GitHub ืกืคืจื™ื•ืช ืฉืื™ืœืชื•ืช, ื›ื•ืœืœ 10 ื”ืชืงื ื™ื ื”ืžื•ื‘ื™ืœื™ื ืฉืœ OWASP ื•ื›ืœืœื™ื ื”ืžื•ืชืืžื™ื ืœ-CWE
  • ืžืกืคืง ืฉืœื™ื˜ื” ืžืœืื” ื‘ื›ืชื™ื‘ืช ืฉืื™ืœืชื•ืช CodeQL ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ื‘ืืžืฆืขื•ืช ืฉืคื” ื™ื™ืขื•ื“ื™ืช ื”ืžื‘ื•ืกืกืช ืขืœ Datalog
  • ืžื•ื“ืขื•ืช ื—ื–ืงื” ืœื‘ืงืจืช ื’ืจืกืื•ืช, ื™ื›ื•ืœืช ืžืขืงื‘ ืื—ืจ ืฉื™ื ื•ื™ื™ื ื‘ื™ืŸ ืกื ื™ืคื™ื ื•ื™ื—ืกื™ ืฆื™ื‘ื•ืจ
  • ืžืชืื™ื ืœื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื ื•ืœืืจื’ื•ื ื™ื ืžืจื•ื‘ื™ ืžืื’ืจื™ื ื”ื•ื“ื•ืช ืœืงื ื” ืžื™ื“ื” ืžื‘ื•ืกืก ืคืขื•ืœื•ืช GitHub
  • ื—ื‘ื™ืœื•ืช ืฉืื™ืœืชื•ืช ื‘ืงื•ื“ ืคืชื•ื— ืžืืคืฉืจื•ืช ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ื•ืฉื™ืชื•ืฃ ืฉืœ ื‘ื“ื™ืงื•ืช ืื‘ื˜ื—ื” ืฉืคื•ืชื—ื• ืขืœ ื™ื“ื™ ื”ืงื”ื™ืœื”
  • ืžืืคืฉืจ ืกืงื™ืจืช ืงื•ื“ ื”ื™ืกื˜ื•ืจื™ ื•ื‘ื™ืงื•ืจืช ืคื’ื™ืขื•ื™ื•ืช ืขื‘ื•ืจ ื—ื•ืงืจื™ ืื‘ื˜ื—ื”
  • ืฆื•ื•ืช ื”ืื‘ื˜ื—ื” ืฉืœ GitHub ืžืฉืชืžืฉ ื‘-CodeQL ื‘ืื•ืคืŸ ืคื ื™ืžื™ ืœืฆื™ื“ CVE ื’ืœื•ื‘ืœื™, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืžื‘ื—ืŸ ืขืžื™ื“ ื‘ืคื ื™ ืžืงืจื™ ืฉื™ืžื•ืฉ ื‘ืขืœื™ ื”ืฉืคืขื” ื’ื‘ื•ื”ื”.

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ืœืžืจื•ืช ื”ื™ื•ืชื• ืื—ื“ ื”ื›ืœื™ื ื”ื—ื–ืงื™ื ื‘ื™ื•ืชืจ ื”ื–ืžื™ื ื™ื ืœื ื™ืชื•ื— ืกื˜ื˜ื™ ืขืžื•ืง, ืœ-CodeQL ื™ืฉ ืžืกืคืจ ืื–ื”ืจื•ืช ื›ืืฉืจ ื”ื•ื ืžื™ื•ืฉืžื™ื ื‘-C# ื‘ืคื™ืชื•ื— ื™ื•ืžื™ื•ืžื™:

  • ืขืงื•ืžืช ืœืžื™ื“ื” ืชืœื•ืœื” ืขื‘ื•ืจ ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช
    ื›ืชื™ื‘ืช ืฉืื™ืœืชื•ืช ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ื“ื•ืจืฉืช ื™ื“ืข ื‘ืฉืคืช ื”ืฉืื™ืœืชื•ืช CodeQL, ื‘ืขืœืช ืชื—ื‘ื™ืจ ื•ืžื•ื“ืœ ืกืžื ื˜ื™ ื™ื™ื—ื•ื“ื™ื™ื. ืจื•ื‘ ื”ืžืคืชื—ื™ื ื–ืงื•ืงื™ื ืœื”ื›ืฉืจื” ื™ื™ืขื•ื“ื™ืช ืื• ืœื–ืžืŸ ื›ื“ื™ ืœื”ื™ื•ืช ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื™ื.
  • ื“ื•ืจืฉ ืžืกื“ื™ ื ืชื•ื ื™ื ืฉืœ ืงื•ื“ ื‘ื ื™ื™ื”
    ืœืคื ื™ ืฉื ื™ืชืŸ ืœื”ืจื™ืฅ ื›ืœ ืฉืื™ืœืชื”, ื™ืฉ ืœืงืžืคืœ ืืช ื”ืงื•ื“ ื•ืœื”ืžื™ืจ ืื•ืชื• ืœืžืกื“ ื ืชื•ื ื™ื ืฉืœ CodeQL. ืฉืœื‘ ื–ื” ืžื•ืกื™ืฃ ืžื•ืจื›ื‘ื•ืช ื•ื–ืžืŸ ืœืฆื™ื ื•ืจื•ืช CI, ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืžืื’ืจื™ื ื’ื“ื•ืœื™ื ืื• ื”ืžืฉืชื ื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช.
  • ืžื•ื’ื‘ืœ ืขืœ ื™ื“ื™ ื›ื™ืกื•ื™ ืฉืคืช ื”ืžืงื•ืจ ื•ื›ืœื™ื
    ืœืžืจื•ืช ืฉ-C# ื ืชืžืš, ื”ื•ื ืขืฉื•ื™ ืœืคื’ืจ ืื—ืจื™ ื™ืขื“ื™ ื”ืฉืคื” ื”ืขื™ืงืจื™ื™ื ืฉืœ CodeQL ื›ืžื• Java, JavaScript ื•-Python ืžื‘ื—ื™ื ืช ื›ืœืœื™ื ืžื•ื›ื ื™ื ื•ืื™ื›ื•ืช ืฉืื™ืœืชื•ืช. ื›ืžื• ื›ืŸ, ื”ืชื ื”ื’ื•ื™ื•ืช ืžืชืงื“ืžื•ืช ืกืคืฆื™ืคื™ื•ืช ืœ-.NET (ืœืžืฉืœ, ื”ืฉืชืงืคื•ืช, ื™ืฆื™ืจืช ืงื•ื“ ื‘ื–ืžืŸ ืจื™ืฆื”) ืขืฉื•ื™ื•ืช ืœื”ื™ื•ืช ืžืืชื’ืจื•ืช ืœืžื™ื“ื•ืœ.
  • ืœื ืžืชืื™ื ืœื›ืœืœื™ ืกื’ื ื•ืŸ ืื• ืขื™ืฆื•ื‘
    CodeQL ืื™ื ื• ื ื•ืขื“ ืœืื›ื•ืฃ ืžื“ืจื™ื›ื™ ืกื’ื ื•ืŸ ืื• ืขื™ืฆื•ื‘ ืงื•ื“. ื”ื•ื ืžืชืžืงื“ ืืš ื•ืจืง ื‘ืชื‘ื ื™ื•ืช ืœื•ื’ื™ื•ืช, ืกืžื ื˜ื™ื•ืช ื•ืื‘ื˜ื—ืชื™ื•ืช.
  • ื—ื•ืกืจ ืชืžื™ื›ื” ื‘-IDE
    ืื™ืŸ ืื™ื ื˜ื’ืจืฆื™ื” ื™ืฉื™ืจื” ืขื Visual Studio ืื• Rider, ื›ืš ืฉืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœื”ืกืชืžืš ืขืœ ืžืฉื•ื‘ CI/CD ืื• ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ CRI ื‘ืื•ืคืŸ ื™ื“ื ื™.
  • ื ื“ืจืฉ ืจื™ืฉื™ื•ืŸ ืืจื’ื•ื ื™ ืขื‘ื•ืจ ื›ืœ ื”ืชื›ื•ื ื•ืช
    GitHub Advanced Security (GHAS), ื”ืžืกืคืง ืืช ืฉื™ืจื•ืช CodeQL ื”ืžื ื•ื”ืœ, ื–ืžื™ืŸ ืจืง ืœืœืงื•ื—ื•ืช GitHub Enterprise Cloud ื•-Server. ื–ื” ืžื’ื‘ื™ืœ ืืช ื”ืื™ืžื•ืฅ ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ืฉืื™ื ื ืžืฉืชืžืฉื™ื ื‘-GitHub.
  • ืขืจืš ืžื•ื’ื‘ืœ ืขื‘ื•ืจ ืคืจื•ื™ืงื˜ื™ื ืงื˜ื ื™ื ื™ื•ืชืจ
    ืขื‘ื•ืจ ืืคืœื™ืงืฆื™ื•ืช C# ืคืฉื•ื˜ื•ืช ืื• ืฆื•ื•ืชื™ื ื”ืžื—ืคืฉื™ื ืชื•ืฆืื•ืช ืžื”ื™ืจื•ืช, ื”ื”ืชืงื ื” ื•ื”ืžื•ืจื›ื‘ื•ืช ืฉืœ CodeQL ืขืฉื•ื™ื•ืช ืœืขืœื•ืช ืขืœ ื™ืชืจื•ื ื•ืชื™ื” ื‘ื”ืฉื•ื•ืื” ืœื›ืœื™ื ืงืœื™ื ื›ืžื• Roslyn ืื• ReSharper.

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

ืื™ื™ืงื™ื“ื•

Aikido Security ื”ื™ื ืฉื—ืงื ื™ืช ื—ื“ืฉื” ื™ื•ืชืจ ื‘ืชื—ื•ื ืื‘ื˜ื—ืช ื”ื™ื™ืฉื•ืžื™ื, ื”ืžืฆื™ืขื” SAST, SCA ื•ืกืจื™ืงืช ืกื•ื“ื•ืช ื™ื“ื™ื“ื•ืชื™ื™ื ืœืžืคืชื—ื™ื ื‘ืคืœื˜ืคื•ืจืžื” ืžืื•ื—ื“ืช. ื”ื™ื ื‘ื ื•ื™ื” ืชื•ืš ืžื—ืฉื‘ื” ืขืœ ืคืฉื˜ื•ืช ื•ืžื”ื™ืจื•ืช, ื•ืžื›ื•ื•ื ืช ืœื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืžื•ื“ืจื ื™ื•ืช ืฉืœ ืคื™ืชื•ื— ืขื ืื™ื ื˜ื’ืจืฆื™ื” ืžื•ื›ื ื” ืœืฉื™ืžื•ืฉ ืขื‘ื•ืจ ืคืœื˜ืคื•ืจืžื•ืช ืคื•ืคื•ืœืจื™ื•ืช ื›ืžื• GitHub, GitLab, Bitbucket ื•-Azure DevOps.

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

ื™ืชืจื•ื ื•ืช

  • ืงืœ ืžืฉืงืœ ื•ืงืœ ืœืฉื™ืœื•ื‘ ื‘ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืฉืœ CI/CD ืขื‘ื•ืจ GitHub, GitLab, Bitbucket ื•-Azure
  • ืžืฆื™ืข ืกืจื™ืงื” ืžื•ื‘ื ื™ืช ืขื‘ื•ืจ SAST, SCA (ื ื™ืชื•ื— ืงื•ืžืคื•ื–ื™ืฆื™ื” ืฉืœ ืชื•ื›ื ื”) ื•ืกื•ื“ื•ืช ื‘ืคืœื˜ืคื•ืจืžื” ืื—ืช
  • ืชื•ืžืš ื‘-C# ืขื ื“ืคื•ืกื™ ื–ื™ื”ื•ื™ ืคื’ื™ืขื•ื™ื•ืช ื ืคื•ืฆื™ื ื›ื’ื•ืŸ ืกื•ื“ื•ืช ืžืงื•ื“ื“ื™ื, ื”ื–ืจืงืช SQL ื•ืชืœื•ื™ื•ืช ืœื ืžืื•ื‘ื˜ื—ื•ืช
  • ืžืžืฉืง ืžืฉืชืžืฉ ื ืงื™ ื•ืžื•ื“ืจื ื™ ืฉื ื•ืขื“ ืœืžืคืชื—ื™ื ื•ืฆื•ื•ืชื™ DevOps ื•ืœื ืœืžื•ืžื—ื™ ืื‘ื˜ื—ื”
  • ืžื™ื•ืŸ ื‘ืขื™ื•ืช ื•ืงื‘ื™ืขืช ืกื“ืจื™ ืขื“ื™ืคื•ื™ื•ืช ืกื™ื›ื•ื ื™ื ื”ืžื•ื“ืขื™ื ืœื”ืงืฉืจ ืžืกื™ื™ืขื™ื ื‘ืžื ื™ืขืช ืขื™ื™ืคื•ืช ืขืจื ื•ืช
  • ืžืืคืฉืจ ื‘ืงืจื•ืช ืžื‘ื•ืกืกื•ืช ืžื“ื™ื ื™ื•ืช, ืœืžืฉืœ, ื—ืกื™ืžืช ืžื™ื–ื•ื’ื™ื ืื ื ืžืฆืื• ื‘ืขื™ื•ืช ืงืจื™ื˜ื™ื•ืช
  • ืื™ืŸ ืฆื•ืจืš ื‘ื”ื’ื“ืจื” ืขื‘ื•ืจ ื”ื’ื“ืจืช ื›ืœืœื™ื, ืขื ื’ื™ืœื•ื™ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืคืจื•ื™ืงื˜ื™ื ื•ืฉืคื•ืช
  • ืฉื›ื‘ื” ื—ื™ื ืžื™ืช ื–ืžื™ื ื” ืœืฆื•ื•ืชื™ื ืงื˜ื ื™ื ื•ืœืชื•ืจืžื™ื ื‘ืงื•ื“ ืคืชื•ื—
  • ื–ืžื ื™ ืกืจื™ืงื” ืžื”ื™ืจื™ื ืขื ืคืœื˜ ืžืขืฉื™ ื‘ื‘ืงืฉื•ืช ืžืฉื™ื›ื”
  • ืชืจื‘ื•ืช ื—ื‘ืจื” ืฉืžืงื“ืžืช ืืช ื”ืื‘ื˜ื—ื”, ืขื ืชืื™ืžื•ืช ืœืชืงื ื•ืช GDPR ื•-ISO 27001

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ื‘ืขื•ื“ ืฉืื™ื™ืงื™ื“ื• ื”ื™ื ืคืœื˜ืคื•ืจืžืช DevSecOps ืžืจืฉื™ืžื” ืขื‘ื•ืจ ืฆื•ื•ืชื™ื ืžื•ื“ืจื ื™ื™ื, ื™ืฉ ืœื” ืื™ืœื•ืฆื™ื ืขื‘ื•ืจ ืืœื• ื”ืžื—ืคืฉื™ื ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขืžื•ืง ืื• ื‘ื“ื™ืงื•ืช ืงื•ื“ ืžืชืงื“ืžื•ืช ืกืคืฆื™ืคื™ื•ืช ืœ-C#:

  • ืขื•ืžืง ื›ืœืœื™ื ืžื•ื’ื‘ืœ ืขื‘ื•ืจ ืชื‘ื ื™ื•ืช ืงื•ื“ C# ืžื•ืจื›ื‘ื•ืช
    ืื™ื™ืงื™ื“ื• ืžืชืžืงื“ ื™ื•ืชืจ ื‘ืกืจื™ืงืช ืื‘ื˜ื—ื” ืžืืฉืจ ื‘ืื™ื›ื•ืช ื”ืงื•ื“, ื•ื—ืกืจื™ื ืจื‘ื™ื ืžื”ื‘ื“ื™ืงื•ืช ื”ืœื•ื’ื™ื•ืช ืื• ื”ืงืฉื•ืจื•ืช ืœื‘ื™ืฆื•ืขื™ื ืฉืžืกืคืงื™ื ื›ืœื™ื ื›ืžื• NDepend ืื• ReSharper.
  • ืœื ืื™ื“ื™ืืœื™ ืœื’ื™ืœื•ื™ ืคื’ืžื™ื ื‘ืชื›ื ื•ืŸ ืžื‘ื ื™ ืื• ื”ืฆืขื•ืช ืœืฉื™ื ื•ื™ ืžื‘ื ื”
    ื”ื•ื ืœื ื™ื–ื”ื” ื‘ืขื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืฉื™ืžื•ืฉ ืœืจืขื” ื‘ืžื•ื“ืœ ืื•ื‘ื™ื™ืงื˜ื™ื, ืชืœื•ื™ื•ืช ืžืขื’ืœื™ื•ืช ืื• ืจื™ื—ื•ืช ืื“ืจื™ื›ืœื™ื™ื ื ืคื•ืฆื™ื ื‘ื™ื™ืฉื•ืžื™ื ื‘ืจืžืช ืืจื’ื•ืŸ.
  • ื—ืกืจื” ืชืžื™ื›ื” ื‘ื™ืฆื™ืจืช ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ืื• ื”ื’ื“ืจื” ืžื“ื•ื™ืงืช
    ืžืฉืชืžืฉื™ื ืื™ื ื ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ื›ืœืœื™ื ืกื˜ื˜ื™ื™ื ืžืฉืœื”ื ืื• ืœื”ืจื—ื™ื‘ ื‘ืงืœื•ืช ืืช ืœื•ื’ื™ืงืช ื”ื–ื™ื”ื•ื™, ื‘ื ื™ื’ื•ื“ ืœืžื ืชื—ื™ CodeQL ืื• Roslyn.
  • ืื™ืŸ ืฉื™ืœื•ื‘ ืขื Visual Studio ืื• IDE
    ื›ืœ ื”ืชื•ืฆืื•ืช ืžื•ืฆื’ื•ืช ื“ืจืš ืžืžืฉืง ื”ืื™ื ื˜ืจื ื˜ ืื• ื‘ืืžืฆืขื•ืช ืชื’ื•ื‘ื•ืช ืฉืœ ื‘ืงืฉื•ืช ืžืฉื™ื›ื”. ืžืคืชื—ื™ื ื”ืžื•ืจื’ืœื™ื ื‘-linting ืžื‘ื•ืกืก IDE ืขืœื•ืœื™ื ืœืžืฆื•ื ื‘ื›ืš ื‘ืขื™ื”.
  • ื‘ื ื•ื™ ื‘ืขื™ืงืจ ืกื‘ื™ื‘ ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ืžื‘ื•ืกืกื•ืช Git
    ื™ื™ืชื›ืŸ ืฉืฆื•ื•ืชื™ื ื”ืžืฉืชืžืฉื™ื ื‘ื‘ืงืจืช ืžืงื•ืจ ืžืจื›ื–ื™ืช ืื• ื‘ืžื•ื“ืœื™ ืคืจื™ืกื” ื™ืฉื ื™ื ื™ื•ืชืจ ืœื ื™ื™ื”ื ื• ืžืชื›ื•ื ื•ืช ื”ืื•ื˜ื•ืžืฆื™ื” ืฉืœื•.
  • ืกืจื™ืงื” ืžืชืจื—ืฉืช ื‘ืขื™ืงืจ ื‘-CI, ืœื ื‘ืžื”ืœืš ืคื™ืชื•ื— ืžืงื•ืžื™
    ืื™ืŸ ื›ืœื™ื ืžืงื•ืจื™ื™ื ืขื‘ื•ืจ hooks ืœืคื ื™ commit ืื• ืžืฉื•ื‘ ืงื•ื“ ื‘ื–ืžืŸ ืืžืช ื‘ืชื•ืš ื–ืจื™ืžืช ื”ืขื‘ื•ื“ื” ืฉืœ ื”ืžืคืชื—.

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

DeepSource

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

ื”ื•ื ืžืฉืชืœื‘ ืขื ืคืœื˜ืคื•ืจืžื•ืช ื‘ืงืจืช ื’ืจืกืื•ืช ื›ืžื• GitHub, GitLab ื•-Bitbucket ื›ื“ื™ ืœื”ืจื™ืฅ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืขืœ ื›ืœ ื‘ืงืฉืช commit ื•-pull.

ื™ืชืจื•ื ื•ืช

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

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

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

  • ื”ืชืžื™ื›ื” ื‘-C# ืคื—ื•ืช ื‘ื•ื’ืจืช ืžืืฉืจ ื‘-Python ืื• JavaScript
    ืœ-DeepSource ื—ืกืจื™ื ื”ืขื•ืžืง ื•ื”ืจื•ื—ื‘ ืฉืœ ื”ื›ืœืœื™ื ื”ืกื˜ื˜ื™ื™ื ื”ื ืžืฆืื™ื ื‘ื›ืœื™ื ื›ืžื• Roslyn, ReSharper ืื• NDepend, ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืชื‘ื ื™ื•ืช ื™ื™ืฉื•ืžื™ื ืžื•ืจื›ื‘ื•ืช ื‘-.NET.
  • ื”ืชืืžื” ืื™ืฉื™ืช ืžื•ื’ื‘ืœืช ืฉืœ ื›ืœืœื™ื
    ืžืฉืชืžืฉื™ื ืื™ื ื ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ื›ืœืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžื•ืชืืžื™ื ืื™ืฉื™ืช ื‘ืืžืฆืขื•ืช ืฉืคื” ืกืคืฆื™ืคื™ืช ืœืชื—ื•ื ืื• ืœื”ืจื—ื™ื‘ ืงื‘ื•ืฆื•ืช ื›ืœืœื™ื ืžืขื‘ืจ ืœืžื” ืฉื ืชืžืš ื‘ืื•ืคืŸ ื˜ื‘ืขื™.
  • ืื™ืŸ ืื™ื ื˜ื’ืจืฆื™ื” ืขื Visual Studio
    ืžืคืชื—ื™ื ืฉืขื•ื‘ื“ื™ื ื‘ืžืขืจื›ื•ืช IDE ื›ืžื• Visual Studio ืื• Rider ื—ื™ื™ื‘ื™ื ืœื”ืกืชืžืš ืขืœ ืžืฉื•ื‘ ืžื‘ื•ืกืก CI ืื• ืœื‘ื“ื•ืง ืชื•ืฆืื•ืช ื™ื“ื ื™ืช ื‘ืžืžืฉืง ื”ืžืฉืชืžืฉ ืฉืœ DeepSource.
  • ืžืชืžืงื“ ื‘ื ื•ืฉืื™ื ื‘ืจืžืช ื”ืงื•ื“ ืืš ืื™ื ื• ืžื›ืกื” ื ื™ืชื•ื— ื‘ืจืžืช ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ืžื‘ื ื” ื”ืงื•ื“.
  • ืื™ืŸ ืชืžื™ื›ื” ื‘ื ื™ืชื•ื— ื–ืจื™ืžื” ืžืชืงื“ื ืื• ืžืขืงื‘ ื ืชื•ื ื™ื
    ื–ื” ื”ื•ืคืš ืื•ืชื• ืœืคื—ื•ืช ื™ืขื™ืœ ื‘ื–ื™ื”ื•ื™ ืคื’ื™ืขื•ื™ื•ืช ืžืจื•ื‘ื•ืช ืฉื•ืจื•ืช ืื• ื›ืฉืœื™ื ืžื•ืจื›ื‘ื™ื ื‘ืœื•ื’ื™ืงืช ืื‘ื˜ื—ื”.
  • ืชื›ื•ื ื•ืช ืคืจื™ืžื™ื•ื ื ืขื•ืœื•ืช ืžืื—ื•ืจื™ ืชื•ื›ื ื™ื•ืช ืืจื’ื•ื ื™ื•ืช
    ืชื›ื•ื ื•ืช ื›ืžื• ืžืขืงื‘ ื”ื™ืกื˜ื•ืจื™, ื“ื™ื•ื•ื—ื™ ืชืื™ืžื•ืช ืื• ืื›ื™ืคืช ืžื“ื™ื ื™ื•ืช ื“ื•ืจืฉื•ืช ืจื™ืฉื™ื•ื ื•ืช ื‘ืจืžื” ื’ื‘ื•ื”ื” ื™ื•ืชืจ.
  • ืžื‘ื•ืกืก ื‘ืขื™ืงืจ ืขืœ ืขื ืŸ, ืขื ืืคืฉืจื•ื™ื•ืช ืžื•ื’ื‘ืœื•ืช ืฉืœ ืฉื™ืžื•ืฉ ืžืงื•ืžื™ ื‘ืกื‘ื™ื‘ื•ืช ืžื•ืกื“ืจื•ืช ืžืื•ื“

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

ืœึฐื”ึทืกึดื™ืง#

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

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

ื™ืชืจื•ื ื•ืช

  • ืžื‘ื•ืกืก ืขืœ ืžื ื•ืข Infer ืฉืœ ืคื™ื™ืกื‘ื•ืง, ื”ืžื•ืขืจืš ืžืื•ื“ ื‘ื–ื›ื•ืช ื ื™ืชื•ื— ืกื˜ื˜ื™ ืžืชืงื“ื ืฉืœ ืงื•ื“ ืœืžื•ื‘ื™ื™ืœ ื•ืœืฆื“ ื”ืฉืจืช.
  • ืžื‘ืฆืข ื ื™ืชื•ื— ื‘ื™ืŸ-ืคืจื•ืฆื“ื•ืจืœื™ ื•ืกืžืœื™, ื•ืžื–ื”ื” ื‘ืขื™ื•ืช ื”ืžืฉืชืจืขื•ืช ืขืœ ืคื ื™ ืžืกืคืจ ืฉื™ื˜ื•ืช ืื• ืžื—ืœืงื•ืช
  • ืฉื™ืžื•ืฉื™ ื‘ืžื™ื•ื—ื“ ืœื–ื™ื”ื•ื™ ื”ืคื ื™ื•ืช ืฉืœ ืžืฆื‘ื™ืขื™ null, ื“ืœื™ืคื•ืช ื–ื™ื›ืจื•ืŸ ื•ื‘ืขื™ื•ืช ืžืงื‘ื™ืœื™ื•ืช
  • ื™ื›ื•ืœืช ื—ืฉื™ื‘ื” ื‘ื ื•ื’ืข ืœืฉืคืช ื‘ื™ื ื™ื™ื (IL) ืฉืœ .NET, ื”ืžืืคืฉืจืช ื ื™ืชื•ื— ื‘ื›ืœ ื”ืฉืคื•ืช ื”ื ืชืžื›ื•ืช ืขืœ ื™ื“ื™ .NET.
  • ืคื•ืชื— ื‘ืื•ืคืŸ ืคืขื™ืœ ืขืœ ื™ื“ื™ Microsoft Research ืขื ื‘ืกื™ืก ืืงื“ืžื™ ื—ื–ืง
  • ืงื•ื“ ืคืชื•ื—, ืขื ืจื™ืฉื•ื™ ืžืชื™ืจ ืœืฉื™ืžื•ืฉ ืืจื’ื•ื ื™ ืื• ืืงื“ืžื™
  • ืฉื™ืœื•ื‘ ืืคืฉืจื™ ืขื MSBuild ื•-CI pipelines ืœื ื™ืชื•ื— ืื•ื˜ื•ืžื˜ื™
  • ืฉื™ืžื•ืฉื™ ื‘ืžืกื’ืจื•ืช ืžื—ืงืจ, ื‘ื™ืงื•ืจื•ืช ืงื™ื“ื•ื“ ืžืื•ื‘ื˜ื—ื•ืช, ืื• ื›ื—ืœืง ืžืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืจืฉืžื™ื™ื ืœืื™ืžื•ืช
  • ืžื–ื”ื” ืงืจื™ืกื•ืช ืืคืฉืจื™ื•ืช ื‘ื–ืžืŸ ืจื™ืฆื” ื•ืชืงืœื•ืช ืœื•ื’ื™ื•ืช ืฉืงืฉื” ืœืืชืจ ื‘ืขื–ืจืช ื›ืœื™ื ืกื˜ื ื“ืจื˜ื™ื™ื

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ื‘ืขื•ื“ ืฉ-Infer# ื—ื–ืง ื‘ื”ื™ืงืคื•, ื™ืฉ ืœื• ืžืกืคืจ ื—ืกืจื•ื ื•ืช ื”ืžื’ื‘ื™ืœื™ื ืืช ื”ืฉื™ืžื•ืฉื™ื•ืช ืฉืœื• ืขื‘ื•ืจ ื–ืจื™ืžื•ืช ืขื‘ื•ื“ื” ื›ืœืœื™ื•ืช ืฉืœ ืคื™ืชื•ื—:

  • ืœื ืžื ืชื— ืกื˜ื˜ื™ ืžืœื ืชื›ื•ื ื•ืช ืขื‘ื•ืจ ืกื’ื ื•ืŸ ืงื•ื“ ื›ืœืœื™, ืขื™ืฆื•ื‘ ืื• ืชื—ื–ื•ืงื”
    Infer# ืžืชืžืงื“ ืืš ื•ืจืง ื‘ื–ื™ื”ื•ื™ ื‘ืื’ื™ื ื•ืื™ื ื• ืžืกืคืง ืžื“ื“ื™ ืื™ื›ื•ืช ืงื•ื“, ื ื™ืชื•ื— ืžื•ืจื›ื‘ื•ืช ืื• ืชื•ื‘ื ื•ืช ืืจื›ื™ื˜ืงื˜ื•ื ื™ื•ืช ื›ืžื• NDepend ืื• ReSharper.
  • ืื™ืŸ ืื™ื ื˜ื’ืจืฆื™ื” ืขื Visual Studio ืื• IDEs
    ื›ืœ ื”ืื™ื ื˜ืจืืงืฆื™ื” ืžืชื‘ืฆืขืช ืžืฉื•ืจืช ื”ืคืงื•ื“ื”. ื–ื” ืœื ืžืชืื™ื ืœืžืคืชื—ื™ื ื”ืžืฆืคื™ื ืœืžืฉื•ื‘ ื‘ืชื•ืš ื”ืขื•ืจืš ืื• ืœืชื™ืงื•ื ื™ื ืื•ื˜ื•ืžื˜ื™ื™ื.
  • ื—ืกื ื›ื ื™ืกื” ื˜ื›ื ื™ ื’ื‘ื•ื”
    ื“ื•ืจืฉ ื™ื“ืข ื‘-IL, ืคืขื•ืœื•ืช ืฉื•ืจืช ืคืงื•ื“ื”, ื•ืื•ืœื™ ื”ื™ื›ืจื•ืช ืžืกื•ื™ืžืช ืขื ืฉื™ื˜ื•ืช ืคื•ืจืžืœื™ื•ืช ืœืคื™ืจื•ืฉ ืคืœื˜ื™ื ืžืกื•ื™ืžื™ื.
  • ืชื™ืขื•ื“ ื“ืœื™ืœ ื•ืชืžื™ื›ื” ืงื”ื™ืœืชื™ืช
    ื‘ื”ืฉื•ื•ืื” ืœื›ืœื™ื ื›ืžื• ืžื ืชื—ื™ Roslyn ืื• SonarQube, ืœ-Infer# ื—ืกืจื™ื ื”ื“ืจื›ื•ืช ืžืงื™ืคื•ืช, ื“ื•ื’ืžืื•ืช ืื• ืคื•ืจื•ืžื™ื ืคืขื™ืœื™ื ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช.
  • ืœื ืžืชื•ื—ื–ืง ื‘ืื•ืคืŸ ืคืขื™ืœ ืœืฉื™ืžื•ืฉ ื™ื™ืฆื•ืจ ืจื—ื‘
    ื–ื”ื• ืคืจื•ื™ืงื˜ ืžื—ืงืจ ืฉืœ ืžื™ืงืจื•ืกื•ืคื˜, ืžื” ืฉืื•ืžืจ ืฉื™ื™ืชื›ืŸ ืฉื”ื•ื ืœื ื™ืงื‘ืœ ืขื“ื›ื•ื ื™ื ืขืงื‘ื™ื™ื ืื• ืชืžื™ื›ื” ื‘ืจืžืช ื™ื™ืฆื•ืจ.
  • ืื™ืŸ ืกืจื™ืงืช SCA (ืชืœื•ืช) ืื• ื›ืœืœื™ื ืกืคืฆื™ืคื™ื™ื ืœืื‘ื˜ื—ื”
    ื”ื•ื ืื™ื ื• ื™ื›ื•ืœ ืœื–ื”ื•ืช ื—ื‘ื™ืœื•ืช ืžื™ื•ืฉื ื•ืช, ืฉื™ืžื•ืฉ ืœื ืžืื•ื‘ื˜ื— ื‘-API ืื• ื—ืฉืฉื•ืช ืื‘ื˜ื—ื” ืื—ืจื™ื ื‘ืจืžืช ื”ืฉื˜ื—.
  • ื—ืฉืฉื•ืช ืœื’ื‘ื™ ืžื“ืจื’ื™ื•ืช ื‘ืคืจื•ื™ืงื˜ื™ื ืืจื’ื•ื ื™ื™ื ื’ื“ื•ืœื™ื
    ื ื™ืชื•ื— ื™ื›ื•ืœ ืœื”ื™ื•ืช ืื™ื˜ื™ ื•ืœืฆืจื•ืš ืžืฉืื‘ื™ ืžืขืจื›ืช ื ื™ื›ืจื™ื ื›ืืฉืจ ื”ื•ื ืžื™ื•ืฉื ืขืœ ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื.

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

ืคื•ืžื” ืกืจื™ืงื”

Puma Scan ื”ื•ื ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ืฉื ื•ืขื“ ืœื–ื”ื•ืช ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื” ื‘ื™ื™ืฉื•ืžื™ .NET ื•-C#, ื‘ืžื™ื•ื—ื“ ืืœื• ื”ืงืฉื•ืจื•ืช ืœืฉื™ื˜ื•ืช ืงื™ื“ื•ื“ ืžืื•ื‘ื˜ื—ื•ืช ื•ืชืื™ืžื•ืช. ื”ื•ื ื‘ื ื•ื™ ืขื ื“ื’ืฉ ื—ื–ืง ืขืœ ืงื˜ื’ื•ืจื™ื•ืช OWASP Top 10 ื•-CWE (ืกืคื™ืจืช ื—ื•ืœืฉื•ืช ื ืคื•ืฆื•ืช), ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœื‘ื—ื™ืจื” ืคื•ืคื•ืœืจื™ืช ื‘ืงืจื‘ ืฆื•ื•ืชื™ .NET ื‘ืขืœื™ ืžื•ื“ืขื•ืช ืœืื‘ื˜ื—ื”.

ื”ื›ืœื™ ื–ืžื™ืŸ ื‘ืฉืชื™ ืฆื•ืจื•ืช ืขื™ืงืจื™ื•ืช: Puma Scan Community Edition, ื”ืžืฉื•ืœื‘ืช ื‘-Visual Studio, ื•-Puma Scan Professional, ื”ืžื•ืกื™ืคื” ืชื›ื•ื ื•ืช ืืจื’ื•ื ื™ื•ืช ื›ื’ื•ืŸ ืฉื™ืœื•ื‘ CI/CD, ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื›ืœืœื™ื ื•ื“ื™ื•ื•ื— ืžืจื›ื–ื™.

ื™ืชืจื•ื ื•ืช

  • ืžื•ืชืื ืœืกืจื™ืงืช ืื‘ื˜ื—ื” ื‘ืคื•ืจืžื˜ื™ื .NET ื•-C#, ืขื ืžืขืจืš ื›ืœืœื™ื ื”ืžื•ืชืื ืœืชืงื ื™ OWASP ื•-CWE
  • ืžืฉืชืœื‘ ื™ืฉื™ืจื•ืช ื‘-Visual Studio, ื•ืžืขื ื™ืง ืœืžืคืชื—ื™ื ืžืฉื•ื‘ ืžื™ื™ื“ื™ ื‘ืžื”ืœืš ืงื™ื“ื•ื“
  • ืžืฆื™ืข ื ื™ืชื•ื— ื–ืจื™ืžืช ืงื•ื“ ืฉื™ื›ื•ืœ ืœืขืงื•ื‘ ืื—ืจ ื”ืื•ืคืŸ ืฉื‘ื• ืงืœื˜ ืœื ืืžื™ืŸ ื–ื•ืจื ื“ืจืš ื”ืงื•ื“, ืชื•ืš ื–ื™ื”ื•ื™ ื‘ืขื™ื•ืช ื›ืžื• XSS, ื”ื–ืจืงืช SQL, ื”ื–ืจืงืช ืคืงื•ื“ื•ืช ื•ื›ื•'.
  • ืžื”ื“ื•ืจื” ืžืงืฆื•ืขื™ืช ืชื•ืžื›ืช ื‘ืฉื™ืœื•ื‘ ืฆื™ื ื•ืจื•ืช CI/CD, ืžืชืื™ืžื” ืœืคืจืงื˜ื™ืงื•ืช DevSecOps
  • ื™ื•ืฆืจ ื“ื•ื—ื•ืช ืžืคื•ืจื˜ื™ื ื”ื›ื•ืœืœื™ื ืงื˜ื’ื•ืจื™ื•ืช ืคื’ื™ืขื•ืช, ืจืžื•ืช ื—ื•ืžืจื” ื•ื”ื ื—ื™ื•ืช ืœืชื™ืงื•ืŸ
  • ื ื™ืชืŸ ืœื”ื•ืกื™ืฃ ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ืขื‘ื•ืจ ืชื‘ื ื™ื•ืช ืงื•ื“ ืงื ื™ื™ื ื™ื•ืช (ืœืžืงืฆื•ืขื ื™ื ื‘ืœื‘ื“)
  • ืขื•ื–ืจ ืœืฆื•ื•ืชื™ื ืœืื›ื•ืฃ ืžื“ื™ื ื™ื•ืช ืงื™ื“ื•ื“ ืžืื•ื‘ื˜ื—ืช ื‘ืฉืœื‘ ืžื•ืงื“ื ืฉืœ SDLC
  • ื ื•ืขื“ ืœื”ืฉืœื™ื ืืช ื“ืจื™ืฉื•ืช ืžื—ื–ื•ืจ ื—ื™ื™ ื”ืคื™ืชื•ื— ื”ืžืื•ื‘ื˜ื— ืขื‘ื•ืจ ืชืขืฉื™ื•ืช ืžื•ืกื“ืจื•ืช
  • ืžืชื•ื—ื–ืง ืขืœ ื™ื“ื™ Secure Development Solutions, ืขื ืขื“ื›ื•ื ื™ื ืฉื•ื˜ืคื™ื ืฉืœ ืžืขืจืš ื”ื›ืœืœื™ื

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ื‘ืขื•ื“ ืฉ-Puma Scan ืžืกืคืงืช ื ื™ืชื•ื— ืื‘ื˜ื—ื” ื—ื–ืง ื‘-C#, ื™ืฉ ืœื” ื›ืžื” ืžื’ื‘ืœื•ืช ื‘ื•ืœื˜ื•ืช, ื‘ืžื™ื•ื—ื“ ื‘ื”ืฉื•ื•ืื” ืœืคืœื˜ืคื•ืจืžื•ืช ื ื™ืชื•ื— ืกื˜ื˜ื™ ืจื—ื‘ื•ืช ื™ื•ืชืจ:

  • ื”ื“ื’ืฉ ื”ื•ื ืืš ื•ืจืง ืขืœ ืื‘ื˜ื—ื”
    ืคื•ืžื” ืกืจื™ืงื” ืื™ื ื” ืžืฆื™ืขื” ื ื™ืชื•ื— ืฉืœ ื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื, ืชื—ื–ื•ืงื”, ืจื™ื—ื•ืช ืงื•ื“ ืื• ืคื’ืžื™ ืขื™ืฆื•ื‘. ื”ื™ื ืœื ืžื ืชื— ืกื˜ื˜ื™ ืœืฉื™ืžื•ืฉ ื›ืœืœื™.
  • ืžื”ื“ื•ืจืช ื”ืงื”ื™ืœื” ืžื•ื’ื‘ืœืช
    ื—ืกืจื” ื‘ื• ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœ CI/CD, ื“ื™ื•ื•ื— ืฆื•ื•ืชื™, ื›ืœืœื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช ื•ืชืžื™ื›ื”. ืจืง ื”ืžื”ื“ื•ืจื” ื”ืžืงืฆื•ืขื™ืช ื–ืžื™ื ื” ืœืฉื™ืžื•ืฉ ืืจื’ื•ื ื™, ืฉืขืฉื•ื™ ืœื“ืจื•ืฉ ืจื™ืฉื•ื™ ื ื•ืกืฃ.
  • ืจื•ื—ื‘ ืžืขืจื›ืช ื”ื›ืœืœื™ื ืฆืจ ื™ื•ืชืจ ืžืืฉืจ ืคืœื˜ืคื•ืจืžื•ืช ื’ื“ื•ืœื•ืช ื›ืžื• Fortify, Checkmarx ืื• Veracode.
    ื™ื™ืชื›ืŸ ืฉ-Puma Scan ืชื—ืžื™ืฅ ืคื’ื™ืขื•ื™ื•ืช ื”ื“ื•ืจืฉื•ืช ืžืขืงื‘ ืื—ืจ ื–ื™ื”ื•ืžื™ื ืžืชืงื“ื ื™ื•ืชืจ ืื• ืกืจื™ืงื” ืžื•ื“ืขืช ืœื”ืงืฉืจ.
  • ืื™ืŸ ื•ื™ื–ื•ืืœื™ื–ืฆื™ื” ืื• ืชื•ื‘ื ื•ืช ืื“ืจื™ื›ืœื™ื•ืช
    ื‘ื ื™ื’ื•ื“ ืœื›ืœื™ื ื›ืžื• NDepend, Puma Scan ืื™ื ื• ืžืกืคืง ื’ืจืคื™ ืฉื™ื—ื•ืช, ืžืคื•ืช ืชืœื•ื™ื•ืช ืื• ื ื™ืชื•ื— ืžื‘ื ื” ืงื•ื“.
  • ื—ื•ืกืจ ืชืžื™ื›ื” ื‘-SAST ื‘ืžืกืคืจ ืฉืคื•ืช
    Puma Scan ืžืชืžืงื“ืช ืืš ื•ืจืง ื‘-C#, ื›ืœื•ืžืจ ื”ื™ื ืื™ื ื” ืื™ื“ื™ืืœื™ืช ืขื‘ื•ืจ ื‘ืกื™ืกื™ ืงื•ื“ ืจื‘-ืœืฉื•ื ื™ื™ื ืื• ืฆื•ื•ืชื™ื ื‘ืขืœื™ ืžืœืื›ื” ืžืœืื” ื”ื–ืงื•ืงื™ื ืœืกืจื™ืงืช JavaScript, Java ืื• Python.
  • ืขื“ื›ื•ื ื™ื ื•ืงื”ื™ืœื” ืงื˜ื ื™ื ื™ื•ืชืจ ื‘ืงื ื” ืžื™ื“ื”
    ื‘ื”ืฉื•ื•ืื” ืœืžืขืจื›ื•ืช ืืงื•ืœื•ื’ื™ื•ืช ื”ืžืชืžืงื“ื•ืช ื‘ืื‘ื˜ื—ื” ื›ืžื• Snyk ืื• CodeQL ืฉืœ โ€‹โ€‹GitHub, ืœ-Puma Scan ื‘ืกื™ืก ืžืฉืชืžืฉื™ื ื•ืชืžื™ื›ื” ืงื”ื™ืœืชื™ืช ืžื•ื’ื‘ืœื™ื ื™ื•ืชืจ.

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

ืกืจื™ืงืช ืงื•ื“ ืื‘ื˜ื—ื”

ืกืจื™ืงืช ืงื•ื“ ืื‘ื˜ื—ื” (SCS) ื”ื™ื ื›ืœื™ ื ื™ืชื•ื— ืกื˜ื˜ื™ ื—ื™ื ืžื™ ื‘ืงื•ื“ ืคืชื•ื— ืžื‘ื•ืกืก Roslyn, ืฉื ื•ืขื“ ืœื–ื”ื•ืช ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื” ื‘ื™ื™ืฉื•ืžื™ C# ื•-.NET. ื”ื•ื ืžืฉืชืœื‘ ื™ืฉื™ืจื•ืช ื‘ืฆื™ื ื•ืจ ื”ื‘ื ื™ื™ื” ื•ื‘ื–ืจื™ืžืช ื”ืขื‘ื•ื“ื” ืฉืœ ื”ืžืคืชื—ื™ื ื“ืจืš Visual Studio ื•-MSBuild, ืชื•ืš ื”ืชืžืงื“ื•ืช ื‘ืขื™ืงืจ ื‘ื–ื™ื”ื•ื™ ื“ืคื•ืกื™ ืงื™ื“ื•ื“ ืœื ืžืื•ื‘ื˜ื—ื™ื, ื‘ืžื™ื•ื—ื“ ืืœื• ื”ืžืกื•ืžื ื™ื ืขืœ ื™ื“ื™ ืชืงื ื™ OWASP Top 10 ื•-CWE.

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

ื™ืชืจื•ื ื•ืช

  • ื ื‘ื ื” ื‘ืืžืฆืขื•ืช ืคืœื˜ืคื•ืจืžืช ื”ืžื”ื“ืจ ืฉืœ Roslyn, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืชื•ืื ืžืื•ื“ ืœืžืขืจื›ืช ื”ืืงื•ืœื•ื’ื™ืช ืฉืœ .NET
  • ืื™ื ื˜ื’ืจืฆื™ื” ื—ืœืงื” ืขื Visual Studio ื•-MSBuild, ื”ืžืืคืฉืจืช ื–ื™ื”ื•ื™ ื•ืžืฉื•ื‘ ื‘ื–ืžืŸ ืืžืช
  • ืžื›ื•ื•ืŸ ืœืคื’ื™ืขื•ื™ื•ืช ื ืคื•ืฆื•ืช ื›ื’ื•ืŸ:
    • SQL Injection
    • XSS (ืกืงืจื™ืคื˜ ื—ื•ืฆื” ืืชืจื™ื)
    • ืื™ืฉื•ืจื™ื ืžืงื•ื“ื“ื™ื
    • ื“ืกืจื™ืืœื™ื–ืฆื™ื” ืœื ื‘ื˜ื•ื—ื”
    • ื”ื–ืจืงืช ืคื™ืงื•ื“
  • ืงืœ ืžืฉืงืœ ื•ืžื”ื™ืจ; ืœื ืžืฉืคื™ืข ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ืขืœ ื‘ื™ืฆื•ืขื™ ื”ื‘ื ื™ื™ื”
  • ื ื™ืชืŸ ืœื”ื•ืกื™ืฃ ืœืฆื™ื ื•ืจื•ืช CI/CD ื“ืจืš ืคืขื•ืœื•ืช NuGet ืื• GitHub ืœืกืจื™ืงื” ืื•ื˜ื•ืžื˜ื™ืช
  • ืขื“ื›ื•ื ื™ื ืชื›ื•ืคื™ื ื•ืžืื’ืจ GitHub ืคืขื™ืœ
  • ื ืงื•ื“ืช ื”ืชื—ืœื” ื˜ื•ื‘ื” ืœืฉื™ื˜ื•ืช ืคื™ืชื•ื— ืžืื•ื‘ื˜ื—ื•ืช ื‘ืคืจื•ื™ืงื˜ื™ื ืฉืœ C#
  • ืชื•ืžืš ื‘ืคืœื˜ ื‘ืคื•ืจืžื˜ SARIF, ืžื” ืฉื”ื•ืคืš ืื•ืชื• ืœืชื•ืื ืœืœื•ื—ื•ืช ืžื—ื•ื•ื ื™ื ื•ืื’ืจื’ื˜ื•ืจื™ื ืฉืœ ืื‘ื˜ื—ื”

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ืœืžืจื•ืช ื”ืชื•ืขืœืช ื”ืจื‘ื” ืฉืœื• ืขื‘ื•ืจ ืžืคืชื—ื™ C#, ืœ-Security Code Scan ื™ืฉ ืžืกืคืจ ืžื’ื‘ืœื•ืช ื”ืžืฉืคื™ืขื•ืช ืขืœ ื”ืชืืžืชื• ื‘ืกื‘ื™ื‘ื•ืช ื’ื“ื•ืœื•ืช ืื• ืžื•ืกื“ืจื•ืช ื™ื•ืชืจ:

  • ื”ื™ืงืฃ ืžื•ื’ื‘ืœ
    ื”ื•ื ืกื•ืจืง ืจืง ืื—ืจ ืคื’ื™ืขื•ื™ื•ืช ืื‘ื˜ื—ื”. ื”ื•ื ืื™ื ื• ืžื–ื”ื” ื‘ืขื™ื•ืช ื‘ืื™ื›ื•ืช ื”ืงื•ื“, ืฆื•ื•ืืจื™ ื‘ืงื‘ื•ืง ื‘ื‘ื™ืฆื•ืขื™ื ืื• ื”ืคืจื•ืช ืืจื›ื™ื˜ืงื˜ื•ื ื™ื•ืช.
  • ื–ื™ื”ื•ื™ ื‘ืกื™ืกื™ ืฉืœ ืคื’ื™ืขื•ื™ื•ืช
    ื‘ืขื•ื“ ืฉ-SCS ืžื–ื”ื” ื˜ืขื•ื™ื•ืช ื ืคื•ืฆื•ืช, ื”ื™ื ื—ืกืจื” ืฉื™ื˜ื•ืช ืžืชืงื“ืžื•ืช ืžืขืงื‘ ืื—ืจ ื–ื™ื”ื•ืžื™ื, ืขืžื•ืง ื ื™ืชื•ื— ื‘ื™ืŸ-ืคืจื•ืฆื“ื•ืจืœื™, ื• ืžื™ื“ื•ืœ ื–ืจื™ืžืช ื ืชื•ื ื™ื ื ืžืฆื ื‘ื›ืœื™ื ื‘ืจืžื” ืืจื’ื•ื ื™ืช ื›ืžื• Fortify ืื• CodeQL.
  • ืื™ืŸ ืžืžืฉืง ืžืฉืชืžืฉ, ืœื•ื— ืžื—ื•ื•ื ื™ื ืื• ืฉื›ื‘ืช ื“ื™ื•ื•ื—
    ืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœื”ืกืชืžืš ืขืœ ืคืœื˜ ื‘ื ื™ื™ื” ืื• ืื–ื”ืจื•ืช IDE, ืœืœื ื•ื™ื–ื•ืืœื™ื–ืฆื™ื”, ืžืขืงื‘ ืื—ืจ ื”ื™ืกื˜ื•ืจื™ื” ืื• ื ื™ื”ื•ืœ ื“ื•ื—ื•ืช ืžืจื›ื–ื™.
  • ื”ืชืืžื” ืื™ืฉื™ืช ืžื•ื’ื‘ืœืช
    SCS ืื™ื ื• ืžืืคืฉืจ ื”ื’ื“ืจืช ื›ืœืœื™ื ืžื“ื•ื™ืงืช ืื• ื™ืฆื™ืจืช ืžืขืจื›ื•ืช ื›ืœืœื™ื ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ื›ื“ื™ ืœื›ืกื•ืช ืื™ื•ืžื™ื ืงื ื™ื™ื ื™ื™ื.
  • ืื™ืŸ ืชืžื™ื›ื” ื‘ืฉืคื•ืช ืฉืื™ื ืŸ .NET
    SCS ืžื™ื•ืขื“ ืืš ื•ืจืง ืœ-C#/.NET. ื”ื•ื ืื™ื ื• ื™ื›ื•ืœ ืœืขื–ื•ืจ ืœืฆื•ื•ืชื™ื ืœื ื”ืœ ืขืจื™ืžื•ืช ืจื‘-ืฉืคืชื™ื•ืช ืื• ื™ื™ืฉื•ืžื™ื ื—ื•ืฆื™ื-ืคืœื˜ืคื•ืจืžื•ืช.
  • ืœื ืื™ื“ื™ืืœื™ ืœืกื‘ื™ื‘ื•ืช ืื‘ื˜ื—ื” ื’ื‘ื•ื”ื•ืช ืื• ืกื‘ื™ื‘ื•ืช ื”ืžื—ื™ื™ื‘ื•ืช ืชืื™ืžื•ืช
    ืœืžืจื•ืช ืฉื”ื•ื ืžื•ืขื™ืœ ืœืžื ื™ืขื”, SCS ืื™ื ื• ืžืฆื™ืข ืืช ื”ืขื•ืžืง ืื• ื™ื›ื•ืœืช ื”ื‘ื™ืงื•ืจืช ื”ื ื“ืจืฉื™ื ืขืœ ื™ื“ื™ ืกื˜ื ื“ืจื˜ื™ื ื›ืžื• PCI-DSS ืื• ISO 27001 ื‘ืคื ื™ ืขืฆืžื•.

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

soundQube

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

SonarQube ืชื•ืžืš ื‘ื ื™ืชื•ื— C# ื“ืจืš ื”ืชื•ืกืฃ SonarC# ื•ืชื•ืื ืœื™ื™ืฉื•ืžื™ .NET Core, .NET 5+ ื•ื™ื™ืฉื•ืžื™ .NET Framework ื™ืฉื ื™ื ื™ื•ืชืจ. ื”ื•ื ืžืฉืชืœื‘ ื”ื™ื˜ื‘ ืขื ืžืขืจื›ื•ืช CI/CD ื•-IDE ืคื•ืคื•ืœืจื™ื™ื ื›ืžื• Visual Studio.

ื™ืชืจื•ื ื•ืช

  • ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ืžืงื™ืฃ ื”ื›ื•ืœืœ ื‘ืื’ื™ื, ืคื’ื™ืขื•ื™ื•ืช, ืจื™ื—ื•ืช ืงื•ื“, ื—ื•ื‘ ื˜ื›ื ื™ ื•ืžื“ื“ื™ ืชื—ื–ื•ืงื”
  • ืชืžื™ื›ื” ืžื•ื‘ื ื™ืช ื‘-C# ื•ื‘ืฉืคื•ืช ืจื‘ื•ืช ืื—ืจื•ืช, ืื™ื“ื™ืืœื™ืช ืœืคืจื•ื™ืงื˜ื™ื ืžืจื•ื‘ื™ ืฉืคื•ืช
  • ืžืกืคืง ืœื•ื— ืžื—ื•ื•ื ื™ื ืžืจื›ื–ื™ ืœื”ืฆื’ืช ืžื’ืžื•ืช, ื›ื™ืกื•ื™ ื•ื ืงื•ื“ื•ืช ื—ืžื•ืช ื‘ืื™ื›ื•ืช ืงื•ื“
  • ืชื•ืžืš ื‘ืฉืขืจื™ ืื™ื›ื•ืช ืžื•ืชืืžื™ื ืื™ืฉื™ืช, ืื›ื™ืคืช ืกื˜ื ื“ืจื˜ื™ื ืฉืœ ืงื™ื“ื•ื“ ื‘ืžื”ืœืš ื‘ืงืฉื•ืช ืžืฉื™ื›ื” ืื• ื‘ื ื™ื™ืช CI
  • ืžืฉืชืœื‘ ืขื GitHub, Azure DevOps, Jenkins, GitLab, Bitbucket ื•ืคืœื˜ืคื•ืจืžื•ืช CI/CD ืจื‘ื•ืช
  • ืžื“ื’ื™ืฉ ื‘ืขื™ื•ืช ื™ืฉื™ืจื•ืช ื‘-Visual Studio ื‘ืขืช ืฉื™ืžื•ืฉ ืขื SonarLint
  • ืžืฆื™ืข ื›ืœืœื™ื ืžืžื•ืงื“ื™ ืื‘ื˜ื—ื” ื”ืžืžื•ืคื™ื ืœืชืงื ื™ CWE, OWASP ื•-SANS
  • ื™ื•ืฆืจ ื“ื•ื—ื•ืช ืžืคื•ืจื˜ื™ื ื•ื ืชื•ื ื™ื ื”ื™ืกื˜ื•ืจื™ื™ื ื›ื“ื™ ืœืขืงื•ื‘ ืื—ืจ ืจื’ืจืกื™ื•ืช ื•ืฉื™ืคื•ืจื™ื
  • ืžื”ื“ื•ืจืช ืงื”ื™ืœื” ื—ื™ื ืžื™ืช ืขื ืชื›ื•ื ื•ืช ื—ื™ื•ื ื™ื•ืช, ื•ืจืžื•ืช ื‘ืชืฉืœื•ื ืขื‘ื•ืจ ืžืงืจื™ ืฉื™ืžื•ืฉ ืืจื’ื•ื ื™ื™ื ืžืชืงื“ืžื™ื
  • ืชื•ืžืš ื‘ื ื™ืชื•ื— ืกื ื™ืคื™ื ื•ื™ื—ืกื™ ืฆื™ื‘ื•ืจ, ื•ืžืกื™ื™ืข ื‘ืžื ื™ืขืช ืคื’ื™ืขื” ื‘ืื™ื›ื•ืช ืœืคื ื™ ืžื™ื–ื•ื’ื™ื

ืžื’ื‘ืœื•ืช ื•ื—ืกืจื•ื ื•ืช

ืœืžืจื•ืช ื™ืชืจื•ื ื•ืชื™ื”, ืœ- SonarQube ื™ืฉ ืžืกืคืจ ื—ืกืจื•ื ื•ืช ื›ืืฉืจ ืžืฉืชืžืฉื™ื ื‘ื” ืœื ื™ืชื•ื— ืกื˜ื˜ื™ ื‘- C# ื‘ืกื‘ื™ื‘ื•ืช ืžืชืงื“ืžื•ืช ื™ื•ืชืจ ืื• ืจื’ื™ืฉื•ืช ืœืื‘ื˜ื—ื”:

  • ืขื•ืžืง ืžื•ื’ื‘ืœ ืœื ื™ืชื•ื— ืื‘ื˜ื—ื”
    ืœืžืจื•ืช ืฉื”ื•ื ืžื›ืกื” ื ืงื•ื“ื•ืช ืชื•ืจืคื” ื‘ืกื™ืกื™ื•ืช, SonarQube ืื™ื ื• ืžืกืคืง ื ื™ืชื•ื— ื›ืชืžื™ื ืขืžื•ืง or ืžืขืงื‘ ืื—ืจ ื–ืจื™ืžื” ื‘ื™ืŸ-ืคืจื•ืฆื“ื•ืจื™ืช ื›ืžื• Fortify, CodeQL ืื• Checkmarx.
  • ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื”ื›ืœืœื™ื ืžื•ื’ื‘ืœืช ื‘ืžื”ื“ื•ืจืช ื”ืงื”ื™ืœื”
    ืขื‘ื•ืจ ืขืจื™ื›ืช ื›ืœืœื™ื ืžืชืงื“ืžืช, ืžืžืฉืœ ื•ื“ื™ื•ื•ื— ืชืื™ืžื•ืช, ื”- ื ื“ืจืฉืช ื’ืจืกืช ืžืคืชื— ืื• ื’ืจืกืช ืืจื’ื•ื ื™ืช, ืžื” ืฉืžื•ืกื™ืฃ ืขืœื•ืช.
  • ื‘ื™ืฆื•ืขื™ื ืขืœื•ืœื™ื ืœื”ื™ืคื’ืข ื‘ื‘ืกื™ืกื™ ืงื•ื“ ื’ื“ื•ืœื™ื
    ื ื™ืชื•ื— ืคืชืจื•ื ื•ืช ื’ื“ื•ืœื™ื ืžืื•ื“ ืขืœื•ืœ ืœื”ื•ื‘ื™ืœ ืœื–ืžื ื™ ืกืจื™ืงื” ืืจื•ื›ื™ื ื•ืœื“ืจื•ืฉ ื›ื•ื•ื ื•ืŸ ืชืฉืชื™ืช.
  • ื“ื•ืจืฉ ื”ืชืงื ื” ื•ืชื—ื–ื•ืงื”
    ืคืจื™ืกื•ืช ืžืงื•ืžื™ื•ืช ื“ื•ืจืฉื•ืช ืชืฆื•ืจื”, ืชืžื™ื›ื” ื‘ืžืกื“ ื ืชื•ื ื™ื, ื’ื™ื‘ื•ื™ื™ื ื•ืขื“ื›ื•ื ื™ื, ืžื” ืฉืขืฉื•ื™ ืœื”ื›ื‘ื™ื“ ืขืœ ืฆื•ื•ืชื™ื ืงื˜ื ื™ื ื™ื•ืชืจ.
  • ื—ืกืจ ื”ืงืฉืจ ื‘ื–ืžืŸ ืจื™ืฆื”
    ื ื™ืชื•ื— ืกื˜ื˜ื™ ื‘ืœื‘ื“ ืคื™ืจื•ืฉื• ืฉื”ื•ื ืขืฉื•ื™ ืœื™ื™ืฆืจ ืชื•ืฆืื•ืช ื—ื™ื•ื‘ื™ื•ืช ืฉื’ื•ื™ื•ืช ืื• ืœืคืกืคืก ื‘ืขื™ื•ืช ื–ืžืŸ ืจื™ืฆื” ืกืคืฆื™ืคื™ื•ืช ืœื”ืงืฉืจ.
  • ืื™ืŸ ืชืžื™ื›ื” ืžื•ื‘ื ื™ืช ื‘ืžื™ื“ื•ืœ ืื™ื•ืžื™ื ืื• ื•ื™ื–ื•ืืœื™ื–ืฆื™ื” ืืจื›ื™ื˜ืงื˜ื•ื ื™ืช
    ื–ื” ืœื ืžืกืคืง ืชื•ื‘ื ื•ืช ืœื’ื‘ื™ ืžื‘ื ื” ื”ืงื•ื“, ืชืœื•ื™ื•ืช ืื• ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืชื•ื›ื ื” ื›ืžื• ืฉืขื•ืฉื™ื NDepend ืื• Resharper.
  • ื™ื™ืชื›ืŸ ืฉื›ืœืœื™ ืื‘ื˜ื—ื” ืื™ื ื ืžืกืคื™ืงื™ื ืขื‘ื•ืจ ืชืขืฉื™ื•ืช ืžื•ืกื“ืจื•ืช
    ืœืžืจื•ืช ืฉื”ืคืœื˜ืคื•ืจืžื” ืžื•ืขื™ืœื” ืœืžื•ื“ืขื•ืช ื›ืœืœื™ืช, ื™ื›ื•ืœื•ืช ื”ืื‘ื˜ื—ื” ืฉืœื” ืœืจื•ื‘ ืžื•ืขื™ืœื•ืช ื‘ืชื•ืกืคืช ืขืœ ื™ื“ื™ ื›ืœื™ SAST ื™ื™ืขื•ื“ื™ื™ื ืื—ืจื™ื ื‘ืืจื’ื•ื ื™ื.

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

ื ื™ื•ื•ื˜ ื‘ื ื•ืฃ ื ื™ืชื•ื— ืงื•ื“ ืกื˜ื˜ื™ ื‘-C#

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

ื”ื—ืœ ืžืคืœื˜ืคื•ืจืžื•ืช ืžืกื—ืจื™ื•ืช ืžืชืงื“ืžื•ืช ื›ืžื• Coverity, Fortify ื•-Veracode, ื•ืขื“ ืœืชื•ื›ื ื•ืช ืขื–ืจ ื”ื ืชืžื›ื•ืช ืขืœ ื™ื“ื™ ื”ืงื”ื™ืœื” ื›ืžื• StyleCop, FxCop ืื• Security Code Scan, ืžืคืชื—ื™ื ื•ืืจื’ื•ื ื™ื ื›ืื—ื“ ืžืงื‘ืœื™ื ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืคืชืจื•ื ื•ืช. ืœื›ืœ ืื—ื“ ืžื”ื ื™ืชืจื•ื ื•ืช ื™ื™ื—ื•ื“ื™ื™ื, ื—ืœืงื ืžืฆื™ืขื™ื ืกืจื™ืงืช ืคื’ื™ืขื•ื™ื•ืช ืžืขืžื™ืงื”, ืื—ืจื™ื ื ื•ืชื ื™ื ืขื“ื™ืคื•ืช ืœืžื™ื“ื•ืœ ืื“ืจื™ื›ืœื™, ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช ืžืคืชื—ื™ื ืื• ืื™ื ื˜ื’ืจืฆื™ื” ื—ืœืงื” ืฉืœ CI/CD.

ืžื” ืฉื‘ื•ืœื˜ ื”ื•ื ื”ื—ืฉื™ื‘ื•ืช ื”ื’ื•ื‘ืจืช ืฉืœ ืืกื˜ืจื˜ื’ื™ื•ืช ืžืจื•ื‘ื•ืช ื›ืœื™ื. ืืจื’ื•ื ื™ ื”ื ื“ืกื” ืžื•ื“ืจื ื™ื™ื ื›ืžืขื˜ ื•ืœื ืžืกืชืžื›ื™ื ืขืœ ืžื ืชื— ื™ื—ื™ื“. ื‘ืžืงื•ื ื–ืืช, ื”ื ืžืฉืœื‘ื™ื ื›ืœื™ ื ื™ืชื•ื— ืžืฉื•ืœื‘ื™ื ืฉืœ IDE ื›ืžื• ReSharper, CodeRush ืื• Roslyn Analyzers ืขื ื›ืœื™ SAST ื‘ืจืžืช ื”ืืจื’ื•ืŸ ืœืงื‘ืœืช ื ืจืื•ืช ืฉื›ื‘ืชื™ืช. ื‘ื™ื ืชื™ื™ื, ืฆื•ื•ืชื™ DevSecOps ืžื˜ืžื™ืขื™ื ื™ื•ืชืจ ื•ื™ื•ืชืจ ืคืชืจื•ื ื•ืช ื›ืžื• Semgrep, Snyk ืื• CodeQL ื‘ืฆื™ื ื•ืจื•ืช ืื•ื˜ื•ืžื˜ื™ื™ื, ืžื” ืฉืžื‘ื˜ื™ื— ืฉืคื’ื™ืขื•ื™ื•ืช ื™ื˜ื•ืคืœื• ื–ืžืŸ ืจื‘ ืœืคื ื™ ื”ืคืจื™ืกื”.

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

ื‘ื—ื™ืจืช ื”ื›ืœื™ ื”ืžืชืื™ื ืœืขื‘ื•ื“ื”

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

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

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

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