เชŸเซ€เชฎเชจเซ‡ เชกเชฟเชฎเซ‹เชŸเชฟเชตเซ‡เชŸ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชฒเซ‡เช—เชธเซ€ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชธเซเชŸเซ‡เชŸเชฟเช• เช•เซ‹เชก เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเซเช‚

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

เชชเชฐเชฟเชšเชฏ

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

เช…เชฎเชพเชฐเซ€ PVS-Studio เชŸเซ€เชฎ เช† เชตเชฟเชทเชฏ เชชเชฐ เชชเซ‹เชคเชพเชจเซ‹ เช…เชญเชฟเชชเซเชฐเชพเชฏ เช†เชชเซ‡ เช›เซ‡. เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡ เชธเซเชŸเซ‡เชŸเชฟเช• เช•เซ‹เชก เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ€ เชธเชฎเชธเซเชฏเชพ เชชเซเชฐเชฅเชฎ เชธเซเชฅเชพเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชŠเชญเซ€ เชฅเชพเชฏ เช›เซ‡, เช† เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเซ€ เช…เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซ€เชกเชพเชฐเชนเชฟเชค เชฐเซ€เชคเซ‡ เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡ เชคเช•เชจเซ€เช•เซ€ เชฆเซ‡เชตเซเช‚ เชฆเซ‚เชฐ เช•เชฐเชตเซเช‚.

เชฎเซเชฆเซเชฆเชพเช“

เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช• เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชฒเซ‹เช‚เชš เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชœเซ‹เชตเชพเชจเซเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชฎเซเชถเซเช•เซ‡เชฒ เชจเชฅเซ€ [1]. เชคเชฎเซ‡ เช•เซ‹เชกเชฎเชพเช‚ เชฐเชธเชชเซเชฐเชฆ เชญเซ‚เชฒเซ‹ เช…เชฅเชตเชพ เชกเชฐเชพเชฎเชฃเซ€ เชธเช‚เชญเชตเชฟเชค เชจเชฌเชณเชพเชˆเช“ เชชเชฃ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹. เชคเชฎเซ‡ เช•เช‚เชˆเช• เช เซ€เช• เชชเชฃ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชชเช›เซ€ เช˜เชฃเชพ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เช›เซ‹เชกเซ€ เชฆเซ‡ เช›เซ‡.

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

เชœเซ‹ เชธเซเชŸเซ‡เชŸเชฟเช• เชตเชฟเชถเซเชฒเซ‡เชทเช• เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เช—เซ‹เช เชตเซ‡เชฒเซเช‚ เชนเซ‹เชฏ เชคเซ‹ เช–เซ‹เชŸเชพ เชนเช•เชพเชฐเชพเชคเซเชฎเช• เช•เซ‹เชˆ เชธเชฎเชธเซเชฏเชพ เชจเชฅเซ€:

  • เช…เช•เซเชทเชฎ เช…เชชเซเชฐเชธเซเชคเซเชค เชจเชฟเชฏเชฎ เชธเซ‡เชŸ;
  • เช•เซ‡เชŸเชฒเชพเช• เช…เชชเซเชฐเชธเซเชคเซเชค เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช•เซเชธ เช…เช•เซเชทเชฎ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡;
  • เชœเซ‹ เช†เชชเชฃเซ‡ C เช…เชฅเชตเชพ C++ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช, เชคเซ‹ เชฎเซ‡เช•เซเชฐเซ‹ เชฎเชพเชฐเซเช• เช…เชช เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชšเซ‹เช•เซเช•เชธ เชฐเชšเชจเชพเช“ เชนเซ‹เชฏ เช›เซ‡ เชœเซ‡ เชฆเชฐเซ‡เช• เชœเช—เซเชฏเชพเช เชœเซเชฏเชพเช‚ เช†เชตเชพ เชฎเซ‡เช•เซเชฐเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซเชฏเชพเช‚ เชจเช•เชพเชฎเซ€ เชšเซ‡เชคเชตเชฃเซ€เช“ เชฆเซ‡เช–เชพเชฏ เช›เซ‡;
  • เชชเซ‹เชคเชพเชจเชพ เช•เชพเชฐเซเชฏเซ‹เชจเซ‡ เชšเชฟเชนเซเชจเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเซ‡ เชธเชฟเชธเซเชŸเชฎ เช•เชพเชฐเซเชฏเซ‹ (เชคเซ‡เชจเชพ เชชเซ‹เชคเชพเชจเชพ เชเชจเชพเชฒเซ‹เช—) เชœเซ‡เชตเซ€ เชœ เช•เซเชฐเชฟเชฏเชพเช“ เช•เชฐเซ‡ เช›เซ‡ เชฎเซ‡เชฎเซเชชเซ€ เช…เชฅเชตเชพ printf) [4];
  • เช–เซ‹เชŸเชพ เชนเช•เชพเชฐเชพเชคเซเชฎเช• เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เช•เซเชทเชฎ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡;
  • เช…เชจเซ‡ เชคเซ‡เชฅเซ€.

เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเซ‡ เชฒเช—เชญเช— 10-15% เชจเชพ เชจเซ€เชšเชพ เช–เซ‹เชŸเชพ เชนเช•เชพเชฐเชพเชคเซเชฎเช• เชฆเชฐเชจเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซ€ เชถเช•เซ€เช เช›เซ€เช [5]. เชฌเซ€เชœเชพ เชถเชฌเซเชฆเซ‹เชฎเชพเช‚ เช•เชนเซ€เช เชคเซ‹, 9 เชฎเชพเช‚เชฅเซ€ 10 เชตเชฟเชถเซเชฒเซ‡เชทเช• เชšเซ‡เชคเชตเชฃเซ€ เช•เซ‹เชกเชฎเชพเช‚ เชตเชพเชธเซเชคเชตเชฟเช• เชธเชฎเชธเซเชฏเชพ เช…เชฅเชตเชพ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ "เช—เช‚เชงเชตเชพเชณเซ‹ เช•เซ‹เชก" เชธเซ‚เชšเชตเซ‡ เช›เซ‡. เชธเช‚เชฎเชค เชฅเชพเช“, เช† เชฆเซƒเชถเซเชฏ เช…เชคเซเชฏเช‚เชค เชธเซเช–เชฆ เช›เซ‡, เช…เชจเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเช• เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเชจเซ‹ เชตเชพเชธเซเชคเชตเชฟเช• เชฎเชฟเชคเซเชฐ เช›เซ‡.

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

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

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

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

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

เช† เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชšเซ‡เชคเชตเชฃเซ€เช“ เชœเซ‡เชตเซ€ เชœ เชธเชฎเชพเชจเชคเชพ เช›เซ‡. เชคเซ‡ เช•เชพเชฐเชฃ เชตเชฟเชจเชพ เชจเชฅเซ€ เช•เซ‡ เชคเซ‡เช“ เช•เชฎเซเชชเชพเชˆเชฒเชฐ เชšเซ‡เชคเชตเชฃเซ€เช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ 0 เชชเชฐ เชฐเชพเช–เชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เชคเซเชฏเชพเช‚ 1000 เชšเซ‡เชคเชตเชฃเซ€เช“ เชนเซ‹เชฏ, เชคเซ‹ เชœเซเชฏเชพเชฐเซ‡ 1001 เชนเชถเซ‡, เชคเซเชฏเชพเชฐเซ‡ เช•เซ‹เชˆ เชคเซ‡เชจเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช†เชชเชถเซ‡ เชจเชนเซ€เช‚, เช…เชจเซ‡ เช† เชจเชตเซ€ เชšเซ‡เชคเชตเชฃเซ€ เช•เซเชฏเชพเช‚ เชถเซ‹เชงเชตเซ€ เชคเซ‡ เชธเซเชชเชทเซเชŸ เชจเชฅเซ€.

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

เช…เชฎเชฒเซ€เช•เชฐเชฃ เช…เชจเซ‡ เชคเช•เชจเซ€เช•เซ€ เชฆเซ‡เชตเซเช‚ เชฆเซ‚เชฐ เช•เชฐเชตเซเช‚

เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เชฎเซ‹เชŸเชพ เชœเซ‚เชจเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชชเชฃ เชธเซเชŸเซ‡เชŸเชฟเช• เชเชจเชพเชฒเชฟเชธเชฟเชธเชจเซ€ เชฐเชœเซ‚เช†เชค เช•เชฐเชตเชพเชฎเชพเช‚ เช•เช‚เชˆ เชฎเซเชถเซเช•เซ‡เชฒ เช•เซ‡ เชกเชฐเชพเชฎเชฃเซ€ เชจเชฅเซ€.

เชธเซ€เช†เชˆ / เชธเซ€เชกเซ€

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

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

เชนเชพเชฒเชจเชพ เชŸเซ‡เช•เชจเชฟเช•เชฒ เชฆเซ‡เชตเซเช‚เชจเซ‡ เช เซ€เช• เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชจเชตเซ€ เชšเซ‡เชคเชตเชฃเซ€เช“ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเซเช‚

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

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

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

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

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

เชฌเช— เชซเชฟเช•เซเชธ เช…เชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช—

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

if (a = b)

เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ C++ เช•เชฎเซเชชเชพเช‡เชฒเชฐเซเชธ เช…เชจเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเช•เซ‹ เช†เชตเชพ เช•เซ‹เชก เชตเชฟเชถเซ‡ เชซเชฐเชฟเชฏเชพเชฆ เช•เชฐเซ‡ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซเชฏเชพเช‚ เช‰เชšเซเชš เชธเช‚เชญเชพเชตเชจเชพ เช›เซ‡ เช•เซ‡ เชคเซ‡เช“ เช–เชฐเซ‡เช–เชฐ เชฒเช–เชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเชคเชพ (a == b). เชชเชฐเช‚เชคเซ เชคเซเชฏเชพเช‚ เชเช• เช…เชธเซเชชเชทเซเชŸ เช•เชฐเชพเชฐ เช›เซ‡, เช…เชจเซ‡ เช† เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ เชจเซ‹เช‚เชงเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‹ เชคเซเชฏเชพเช‚ เชตเชงเชพเชฐเชพเชจเชพ เช•เซŒเช‚เชธ เชนเซ‹เชฏ, เชคเซ‹ เชชเช›เซ€ เชเชตเซเช‚ เชฎเชพเชจเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‡ เช‡เชฐเชพเชฆเชพเชชเซ‚เชฐเซเชตเช• เช†เชตเซ‹ เช•เซ‹เชก เชฒเช–เซเชฏเซ‹ เช›เซ‡, เช…เชจเซ‡ เชถเชชเชฅ เชฒเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช•เซเชธ เชฎเชพเชŸเซ‡ PVS-Studio เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃเชฎเชพเช‚ V559 (CWE-481) เชคเซ‡ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡ เชฒเช–เชพเชฏเซ‡เชฒ เช›เซ‡ เช•เซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชฒเซ€เชŸเซ€ เชธเชพเชšเซ€ เช…เชจเซ‡ เชธเชฒเชพเชฎเชค เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡:

if ((a = b))

เชฌเซ€เชœเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ. เชถเซเช‚ เชคเซ‡ เช† C++ เช•เซ‹เชกเชฎเชพเช‚ เชญเซ‚เชฒเซ€ เช—เชฏเซเช‚ เช›เซ‡? เชตเชฟเชฐเชพเชฎ เช•เซ‡ เชจเชนเซ€เช‚?

case A:
  foo();
case B:
  bar();
  break;

PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชตเชฟเชถเซเชฒเซ‡เชทเช• เช…เชนเซ€เช‚ เชšเซ‡เชคเชตเชฃเซ€ เชœเชพเชฐเซ€ เช•เชฐเชถเซ‡ V796 (CWE-484). เช† เช•เซ‹เชˆ เชญเซ‚เชฒ เชจ เชนเซ‹เชˆ เชถเช•เซ‡, เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชคเชฎเชพเชฐเซ‡ เชตเชฟเชถเซ‡เชทเชคเชพ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡ เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เชธเช‚เช•เซ‡เชค เช†เชชเชตเซ‹ เชœเซ‹เชˆเช [[เชชเชคเชจ]] เช…เชฅเชตเชพ, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, __เชฒเช•เซเชทเชฃ__((เชชเชคเชจ)):

case A:
  foo();
  [[fallthrough]];
case B:
  bar();
  break;

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

เชฌเช— เชซเชฟเช•เซเชธ เช…เชจเซ‡ เชฐเชฟเชซเซ‡เช•เซเชŸเชฐเชฟเช‚เช— เช‰เชชเชฐเชพเช‚เชค, เชคเชฎเซ‡ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เช–เซ‹เชŸเซ€ เชตเชฟเชถเซเชฒเซ‡เชทเช• เชšเซ‡เชคเชตเชฃเซ€เช“เชจเซ‡ เชฆเชฌเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹. เช•เซ‡เชŸเชฒเชพเช• เช…เชชเซเชฐเชธเซเชคเซเชค เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช•เซเชธ เช…เช•เซเชทเชฎ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เซ‹เชˆเชจเซ‡ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชšเซ‡เชคเชตเชฃเซ€เช“ เช…เชฐเซเชฅเชนเซ€เชจ เช›เซ‡ V550 เชซเซเชฒเซ‹เชŸ/เชกเชฌเชฒ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเชตเชพ เชตเชฟเชถเซ‡. เช…เชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชคเซ‡เชฎเชจเซ‡ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช…เชจเซ‡ เช…เชญเซเชฏเชพเชธ เชฒเชพเชฏเช• เชคเชฐเซ€เช•เซ‡ เชตเชฐเซเช—เซ€เช•เซƒเชค เช•เชฐเซ‡ เช›เซ‡ [7]. เช•เชˆ เชšเซ‡เชคเชตเชฃเซ€เช“ เชธเช‚เชฌเช‚เชงเชฟเชค เชฎเชพเชจเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เช•เชˆ เชจเชฅเซ€ เชคเซ‡ เชตเชฟเช•เชพเชธ เชŸเซ€เชฎเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡.

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

เช‰เชชเชฐเชพเช‚เชค, เชœเซ‹ เช•เซ‹เชˆ เชฎเซเชถเซเช•เซ‡เชฒเซ€ เชŠเชญเซ€ เชฅเชพเชฏ เชคเซ‹ เช…เชฎเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เช…เชฎเชพเชฐเชพ เช—เซเชฐเชพเชนเช•เซ‹เชจเซ‡ PVS-Studio เชธเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ€เช เช›เซ€เช. เชคเชฆเซเชชเชฐเชพเช‚เชค, เชเชตเชพ เช•เชฟเชธเซเชธเชพเช“ เชนเชคเชพ เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เชœเชพเชคเซ‡ เช–เซ‹เชŸเซ€ เชšเซ‡เชคเชตเชฃเซ€เช“ เชฆเซ‚เชฐ เช•เชฐเซ€ เช…เชจเซ‡ เชญเซ‚เชฒเซ‹ เชธเซเชงเชพเชฐเซ€.8]. เชฎเชพเชคเซเชฐ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชฎเซ‡เช‚ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ เช•เซ‡ เชตเชฟเชธเซเชคเซƒเชค เชธเชนเช•เชพเชฐ เชฎเชพเชŸเซ‡เชจเซ‹ เช† เชตเชฟเช•เชฒเซเชช เชชเชฃ เชถเช•เซเชฏ เช›เซ‡ :).

เชฐเซ‡เชšเซ‡เชŸ เชชเชฆเซเชงเชคเชฟ

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

เชŸเซ€เชฎเชจเซ‡ เชกเชฟเชฎเซ‹เชŸเชฟเชตเซ‡เชŸ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชฒเซ‡เช—เชธเซ€ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชธเซเชŸเซ‡เชŸเชฟเช• เช•เซ‹เชก เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเซเช‚

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

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

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

เชฒเซ‡เช–เชจเชพ เชฒเซ‡เช–เช• เชชเชพเชธเซ‡ เช† เชตเชฟเชทเชฏ เชชเชฐ เชเช• เช…เชนเซ‡เชตเชพเชฒ เชชเชฃ เช›เซ‡: "เชธเชคเชค เชธเซเชฅเชฟเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ".

เชจเชฟเชทเซเช•เชฐเซเชท

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

เชธเซเชฅเชฟเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช–เชฐเซ‡เช–เชฐ เช…เชจเซเช•เซ‚เชณ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เช…เช‚เช—เซ‡ เช…เชจเซเชฏ เชฒเชพเช•เซเชทเชฃเชฟเช• เชถเช‚เช•เชพเช“ เช›เซ‡. เชฎเซ‡เช‚ เช†เชฎเชพเช‚เชจเซ€ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเซ€ เชถเช‚เช•เชพเช“เชจเซ‡ "เชตเชฟเช•เชพเชธ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ PVS-Studio เชธเซเชŸเซ‡เชŸเชฟเช• เช•เซ‹เชก เชตเชฟเชถเซเชฒเซ‡เชทเช• เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเชพ เช•เชพเชฐเชฃเซ‹" เชชเซเชฐเช•เชพเชถเชจเชฎเชพเช‚ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ [9].

เชคเชฎเชพเชฐเชพ เชงเซเชฏเชพเชจ เชฌเชฆเชฒ เช†เชญเชพเชฐ เช…เชจเซ‡ เช†เชตเซ‹ ัะบะฐั‡ะฐั‚ัŒ เช…เชจเซ‡ PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ‹.

เชตเชงเชพเชฐเชพเชจเซ€ เชฒเชฟเช‚เช•เซเชธ

  1. เช†เชจเซเชฆเซเชฐเซ‡ เช•เชพเชฐเซเชชเซ‹เชต. PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชตเชฟเชถเซเชฒเซ‡เชทเช• C เช…เชจเซ‡ C++ เช•เซ‹เชก เชฎเชพเชŸเซ‡ เชฌเชจเชพเชตเซ‡เชฒเซ€ เชฐเชธเชชเซเชฐเชฆ เชšเซ‡เชคเชตเชฃเซ€เช“ เชนเซเช‚ เชเชกเชชเชฅเซ€ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเซ‹เชˆ เชถเช•เซเช‚?
  2. เชตเชฟเช•เชฟเชชเซ€เชกเชฟเชฏเชพ เชšเซ‹เช–เชพเชจเซเช‚ เชชเซเชฐเชฎเซ‡เชฏ.
  3. เช†เชจเซเชฆเซเชฐเซ‡ เช•เชพเชฐเซเชชเซ‹เชต, เชตเชฟเช•เซเชŸเซ‹เชฐเชฟเชฏเชพ เช–เชพเชจเซ€เชเชตเชพ. เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชธเซ‹เชฐเซเชธ เช•เซ‹เชกเชจเชพ เชธเซเชฅเชฟเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชฎเชพเช‚ เชฎเชถเซ€เชจ เชฒเชฐเซเชจเชฟเช‚เช—เชจเซ‹ เช‰เชชเชฏเซ‹เช—.
  4. เชชเซ€เชตเซ€เชเชธ-เชธเซเชŸเซเชกเชฟเชฏเซ‹. เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ. เชตเชงเชพเชฐเชพเชจเชพ เชกเชพเชฏเช—เซเชจเซ‹เชธเซเชŸเชฟเช• เชธเซ‡เชŸเชฟเช‚เช—เซเชธ.
  5. เช†เชจเซเชฆเซเชฐเซ‡ เช•เชพเชฐเซเชชเซ‹เชต. EFL เช•เซ‹เชฐ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ€ เชฒเชพเช•เซเชทเชฃเชฟเช•เชคเชพเช“, 10-15% เช–เซ‹เชŸเชพ เชนเช•เชพเชฐเชพเชคเซเชฎเช•.
  6. เชชเซ€เชตเซ€เชเชธ-เชธเซเชŸเซเชกเชฟเชฏเซ‹. เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ. เชตเชฟเชถเซเชฒเซ‡เชทเช• เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซเช‚ เชธเชพเชฎเซ‚เชนเชฟเช• เชฆเชฎเชจ.
  7. เช‡เชตเชพเชจ เชเชจเซเชกเซเชฐเซเชฏเชพเชถเชฟเชจ. เชเช•เซเชธ-เชฐเซ‡ เชเชจเซเชกเซ‹เชตเชพเชธเซเช•เซเชฏเซเชฒเชฐ เชธเชฐเซเชœเชฐเซ€เชจเชพ เชถเซˆเช•เซเชทเชฃเชฟเช• เชธเชฟเชฎเซเชฏเซเชฒเซ‡เชŸเชฐเชจเชพ เช…เชฎเชพเชฐเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชชเชฐ เช…เชฎเซ‡ เชธเซเชŸเซ‡เชŸเชฟเช• เชเชจเชพเชฒเชฟเชธเชฟเชธเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเซเชฏเซเช‚ เชคเซ‡ เชตเชฟเชถเซ‡.
  8. เชชเชพเชตเซ‡เชฒ Eremeev, Svyatoslav Razmyslov. PVS-Studio เชŸเซ€เชฎเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชตเชพเชธเซเชคเชตเชฟเช• เชเชจเซเชœเชฟเชจ เช•เซ‹เชกเชฎเชพเช‚ เชธเซเชงเชพเชฐเซ‹ เช•เชฐเซเชฏเซ‹.
  9. เช†เชจเซเชฆเซเชฐเซ‡ เช•เชพเชฐเซเชชเซ‹เชต. เชตเชฟเช•เชพเชธ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เชธเซเชŸเซ‡เชŸเชฟเช• เช•เซ‹เชก เชตเชฟเชถเซเชฒเซ‡เชทเช• PVS-เชธเซเชŸเซเชกเชฟเชฏเซ‹ เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเชพ เช•เชพเชฐเชฃเซ‹.

เชŸเซ€เชฎเชจเซ‡ เชกเชฟเชฎเซ‹เชŸเชฟเชตเซ‡เชŸ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชฒเซ‡เช—เชธเซ€ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชธเซเชŸเซ‡เชŸเชฟเช• เช•เซ‹เชก เชตเชฟเชถเซเชฒเซ‡เชทเช•เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเซเช‚

เชœเซ‹ เชคเชฎเซ‡ เช† เชฒเซ‡เช– เช…เช‚เช—เซเชฐเซ‡เชœเซ€ เชฌเซ‹เชฒเชคเชพ เชชเซเชฐเซ‡เช•เซเชทเช•เซ‹ เชธเชพเชฅเซ‡ เชถเซ‡เชฐ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชคเซ‹ เช•เซƒเชชเชพ เช•เชฐเซ€เชจเซ‡ เช…เชจเซเชตเชพเชฆ เชฒเชฟเช‚เช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹: เชเชจเซเชกเซเชฐเซ€ เช•เชพเชฐเซเชชเซ‹เชต. เชฒเซ‡เช—เชธเซ€ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เชธเซเชŸเซ‡เชŸเชฟเช• เช•เซ‹เชก เชตเชฟเชถเซเชฒเซ‡เชทเช• เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฐเชœเซ‚ เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชŸเซ€เชฎเชจเซ‡ เชจเชฟเชฐเชพเชถ เชจ เช•เชฐเชตเชพ.

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

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