เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบกเปเบฅเบฐเบ”เบปเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ demotivating เบ—เบตเบกเบ‡เบฒเบ™

เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบกเปเบฅเบฐเบ”เบปเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ demotivating เบ—เบตเบกเบ‡เบฒเบ™
เบกเบฑเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบฅเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบดเบ”. เปเบ•เปˆเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบ™, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ„เบ‡เบเบฒเบ™เป€เบเบปเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบ—เบฑเบเบชเบฐ. เบ–เป‰เบฒเป€เบฎเบฑเบ”เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เบŠเป‰เบฒเบฅเบปเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เปเบฅเบฐ demotivate เบ—เบตเบกเบ‡เบฒเบ™. เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบชเบฑเป‰เบ™เป†เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเป€เบฅเบตเปˆเบกเปƒเบŠเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ CI / CD.

เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต

เบซเบงเปˆเบฒเบ‡โ€‹เบกเปเปˆเป†โ€‹เบกเบฒโ€‹เบ™เบตเป‰โ€‹เป„เบ”เป‰โ€‹เบ”เบถเบ‡โ€‹เบ”เบนเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบชเบปเบ™โ€‹เปƒเบˆโ€‹เบ‚เบญเบ‡โ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ›โ€‹เบชเบนเปˆโ€‹เบเบฒเบ™โ€‹เบžเบดเบกโ€‹เบˆเบณเปœเปˆเบฒเบ โ€œเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบปเบ‡เบ—เบตเปˆเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ overwhelming เบ—เบตเบกเบ‡เบฒเบ™". เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡, เบ™เบตเป‰เปเบกเปˆเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบ„เบงเบ™เบˆเบฐเบฎเบนเป‰เบˆเบฑเบเบเบฑเบš, เปƒเบ™เบญเบตเบเบ”เป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡, เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบงเปˆเบฒเบกเบฑเบ™เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เปƒเบซเป‰เบ„เปเบฒเบ•เบญเบšเบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ static เบ—เบตเปˆเบšเปเปˆเป€เบˆเบฑเบšเบ›เบงเบ”เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบตเบซเบผเบฒเบ. เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบšเบญเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบญเบกเบฎเบฑเบšเบซเบ™เบตเป‰เบชเบดเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆ, เปเบ•เปˆเบšเปเปˆเบกเบตเบ„เปเบฒเบ•เบญเบšเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบเบฑเบšเบซเบ™เบตเป‰เบชเบดเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบ•เปเปˆเบกเบฒ.

เบ—เบตเบกเบ‡เบฒเบ™ PVS-Studio เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเป€เบซเบ™เบตเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ‚เบญเบ‡เบ•เบปเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰. เบ‚เปเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบดเบ”เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”, เบงเบดเบ—เบตเบเบฒเบ™เป€เบญเบปเบฒเบŠเบฐเบ™เบฐเบšเบฑเบ™เบซเบฒเบ™เบตเป‰, เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบซเบ™เบตเป‰เบชเบดเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบขเปˆเบฒเบ‡เบšเปเปˆเบชเบฐเบšเบฒเบเป€เบ—เบทเปˆเบญเบฅเบฐเบเป‰เบฒเบง.

เบšเบฑเบ™เบซเบฒ

เบกเบฑเบ™เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบšเปเปˆเบเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบงเปเบฅเบฐเป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เป€เบฎเบฑเบ”เบงเบฝเบ [1]. เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป€เบซเบฑเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญเบ—เบตเปˆเบญเบฒเบ”เป€เบ›เบฑเบ™เบ•เบฒเบขเป‰เบฒเบ™เปƒเบ™เบฅเบฐเบซเบฑเบ”. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบซเบผเบฒเบเบ„เบปเบ™เบเปเปˆเบเบญเบกเปเบžเป‰.

เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เบ—เบฑเบ‡เปเบปเบ”เบœเบฐเบฅเบดเบ”เบœเบปเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบ„เบปเบ‡เบ—เบตเปˆ, เปเบฅเบฐเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบปเปˆเบงเป„เบ›, เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰, เบ•เบฒเบกเบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เป‚เบ”เบเบ—เบดเบ”เบชเบฐเบ”เบตเบ‚เบญเบ‡ Rice [2]. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบˆเบฐเบšเปเปˆเบŠเปˆเบงเบเป„เบ”เป‰ [3]. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเบธเบเบ„เบปเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบšเบญเบเป„เบ”เป‰เบชเบฐเป€เบซเบกเบตเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เบซเบผเบทเบฅเบฐเบซเบฑเบ”เบ™เบฑเป‰เบ™เบœเบดเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบšเปเปˆเบ„เบงเบ™เบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบ™เบตเป‰เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™ :).

เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบšเปเปˆเปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเบ–เป‰เบฒเบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเป‰เบง:

  • เบ„เบปเบ™เบžเบดเบเบฒเบ™เบŠเบธเบ”เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡;
  • เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™;
  • เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš C เบซเบผเบท C ++, macros เปเบกเปˆเบ™เบซเบกเบฒเบเป€เบ–เบดเบ‡เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ—เบตเปˆเบšเปเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบˆเบฐเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบ—เบธเบเบšเปˆเบญเบ™เบ—เบตเปˆ macros เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰;
  • เบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ–เบทเบเบซเบกเบฒเบเบงเปˆเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบŸเบฑเบ‡เบŠเบฑเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš (เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡ memcpy เบซเบผเบท printf) [4];
  • เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเป€เบซเบฑเบ™;
  • เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ„เบฒเบ”โ€‹เบซเบงเบฑเบ‡โ€‹เบงเปˆเบฒโ€‹เบญเบฑเบ”โ€‹เบ•เบฒโ€‹เบเบฒเบ™โ€‹เบ—เบฒเบ‡โ€‹เบšเบงเบโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹เบ•โ€‹เปˆโ€‹เปเบฒโ€‹เบ›เบฐโ€‹เบกเบฒเบ™ 10-15โ€‹% [.5]. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, 9 เปƒเบ™ 10 เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบˆเบฐเบŠเบตเป‰เบšเบญเบเป€เบ–เบดเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”, เบซเบผเบทเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ "เบฅเบฐเบซเบฑเบ”เบกเบตเบเบดเปˆเบ™เบซเบญเบก." เบ•เบปเบเบฅเบปเบ‡, เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบžเปเปƒเบˆเบ—เบตเปˆเบชเบธเบ”, เปเบฅเบฐเบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ‚เบญเบ‡เป‚เบ›เบฅเปเบเบฅเบก.

เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบกเปเบฅเบฐเบ”เบปเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ demotivating เบ—เบตเบกเบ‡เบฒเบ™
เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เบฎเบนเบšเบžเบฒเบšเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบกเบปเบ”. เบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบซเบผเบฒเบเบฎเป‰เบญเบเบซเบผเบทเบซเบผเบฒเบเบžเบฑเบ™เบ„เปเบฒเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เบกเปเบฅเบฐเบ”เบปเบ. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบขเปˆเบฒเบ‡เป„เบงเบงเบฒเบงเปˆเบฒเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปเบฅเบฐเบญเบฑเบ™เปƒเบ”เบšเปเปˆเปเบกเปˆเบ™. เบกเบฑเบ™เบšเปเปˆเบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™เบ—เบตเปˆเบˆเบฐเบ™เบฑเปˆเบ‡เบฅเบปเบ‡เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ„เปเบฒเป€เบ•เบทเบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰, เป€เบžเบฒเบฐเบงเปˆเบฒเบงเบฝเบเบ‡เบฒเบ™เบ•เบปเป‰เบ™เบ•เปเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰เบˆเบฐเบขเบธเบ”เบชเปเบฒเบฅเบฑเบšเบกเบทเป‰เบซเบผเบทเบซเบผเบฒเบเบญเบฒเบ—เบดเบ”. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, เบ—เบตเบกเบ‡เบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบŠเบทเป‰เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰เบเบฑเบ‡เบˆเบฐเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆเบ—เปเบฒเบฅเบฒเบเบ›เบฐเบซเบงเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เปเบฅเบฐเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เบกเบฐเบซเบฒเบŠเบปเบ™เบขเปˆเบฒเบ‡เป„เบงเบงเบฒเบ‚เบญเบ‡เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเปƒเบ™เบฅเบฐเบซเบฑเบ”เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบžเบดเบกเบœเบดเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบซเบกเปˆ.

เปเบฅเบฐเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”, เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™เบเบฒเบ™เบ•เปเปˆเบชเบนเป‰เบเบฑเบšเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบžเบฝเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบ. เบ•เบปเบเบฅเบปเบ‡เป€เบซเบฑเบ™เบ”เบตเบงเปˆเบฒเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเป‚เบ„เบ‡เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เป„เบ›เบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบฅเบฒเบเบ›เบต, เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปเบฅเป‰เบง. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบเบฒเบ™เปเบเป‰เป„เบ‚เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบฅเบฒเบ„เบฒเปเบžเบ‡เบซเบผเบฒเบ, เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚, เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบดเบŠเบปเบกเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เปƒเบ™เบ—เบฒเบ‡เบฅเบปเบšเบเปˆเบฝเบงเบเบฑเบšเปเบกเบ‡เป„เบกเป‰, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เบˆเบฐเบŠเปˆเบงเบเปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”, เบขเปˆเบฒเบ‡เบงเปˆเบญเบ‡เป„เบง เปเบฅเบฐเบฅเบฒเบ„เบฒเบ–เบทเบ. เปเบ•เปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบงเบดเบ—เบตเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบญเบทเปˆเบ™, เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚, เปเบฅเบฐเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเปˆเบงเบ™เปƒเบซเบเปˆเบˆเบฐเบเบงเบ”เบžเบปเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบฅเบฐเบซเบฑเบ”เป€เบเบปเปˆเบฒ. เบฅเบฐเบซเบฑเบ”เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบซเบ™เป‰เบญเบเบซเบผเบฒเบ, เปเบฅเบฐเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆเบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™. เบšเบฒเบ‡เบ—เบตเบšเบฒเบ‡เบšเปˆเบญเบ™เบ—เบตเปˆเป€เบ‡เบปเบฒเบˆเบฒเบเบ›เบธเปˆเบกเปเบกเปˆเบ™เบชเบตเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบฅเบปเบšเบเบงเบ™เบเบฒเบ™เปƒเบŠเป‰เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ‚เบญเบ‡เปƒเบœ.

เปเบ™เปˆเบ™เบญเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบเบเปเปˆเบเบฑเบ‡เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”. เปเบฅเบฐเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เป„เบ”เป‰. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบเบฒเบ™เบ›เบฐเบ–เบดเป‰เบกเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบฅเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบกเบทเป‰ / เบญเบฒเบ—เบดเบ”เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ—เบตเปˆเป€เบเบทเบญเบšเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบ•เบปเบงเป€เบญเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ‡เป„เบช.

เบœเบนเป‰เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเป€เบšเบดเปˆเบ‡, เป€เบšเบดเปˆเบ‡, เป€เบšเบดเปˆเบ‡เบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป€เบเบปเปˆเบฒ ... เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเบ„เบดเบ”เบงเปˆเบฒ: เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ static. เป„เบ›เบ‚เบฝเบ™เบšเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบซเบกเปˆ.

เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบกเปˆเบ™เบ–เบทเบเบ•เป‰เบญเบ‡. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ„เบดเบ”เบงเปˆเบฒเบ—เปเบฒเบญเบดเบ”เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡ somehow เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเบฐเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”. เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเปƒเบซเบกเปˆเบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเบˆเบปเบกเบฅเบปเบ‡เปƒเบ™เบชเบดเปˆเบ‡เป€เบเบปเปˆเบฒ, เปเบฅเบฐเบšเปเปˆเบกเบตเปƒเบœเบˆเบฐเป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบžเบงเบเป€เบ‚เบปเบฒ.

เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ„เปเบฒเป€เบ•เบทเบญเบ™ compiler. เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบšเปเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบฎเบฑเบเบชเบฒเบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ‚เบญเบ‡ compiler เบขเบนเปˆเบ—เบตเปˆ 0. เบ–เป‰เบฒเบกเบต 1000 เบ„เปเบฒเป€เบ•เบทเบญเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบกเบทเปˆเบญเบกเบต 1001, เบšเปเปˆเบกเบตเปƒเบœเบˆเบฐเป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบเบฑเบšเบกเบฑเบ™, เปเบฅเบฐเบกเบฑเบ™เบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ—เบตเปˆเบˆเบฐเบŠเบญเบเบซเบฒเบ„เปเบฒเป€เบ•เบทเบญเบ™เปƒเบซเบกเปˆเบซเบผเป‰เบฒเบชเบธเบ”เบ™เบตเป‰.

เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบกเปเบฅเบฐเบ”เบปเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ demotivating เบ—เบตเบกเบ‡เบฒเบ™
เบชเบดเปˆเบ‡เบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”เปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰เปเบกเปˆเบ™เบ–เป‰เบฒเบœเบนเป‰เปƒเบ”เบœเบนเป‰เบ™เบถเปˆเบ‡เบˆเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบดเบ”. เบ™เบตเป‰เบžเบฝเบ‡เปเบ•เปˆเบˆเบฐ demotivate เบ—เบตเบกเบ‡เบฒเบ™, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบˆเบฒเบเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™ bureaucratic เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบžเบฝเบ‡เปเบ•เปˆเป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™. เบšเปเปˆเบกเบตเปƒเบœเบˆเบฐเป€เบšเบดเปˆเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบœเบนเป‰เบงเบดเป€เบ„เบฒเบฐ, เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆ "เบขเบนเปˆเปƒเบ™เป€เบˆเป‰เบ". เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™, เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ DevOps, เปเบ•เปˆเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบœ. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบเบดเบ™โ€‹เป€เบฅเบทเปˆเบญเบ‡โ€‹เบฅเบฐโ€‹เบญเบฝเบ”โ€‹เบขเบนเปˆโ€‹เบ—เบตเปˆโ€‹เบšเบนเบ”โ€‹เบˆเบฒเบโ€‹เบœเบนเป‰โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เบฎเปˆเบงเบกโ€‹เบเบญเบ‡โ€‹เบ›เบฐโ€‹เบŠเบธเบก. เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบฒเบกเบฒเบ”เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบˆเบฒเบเบเบฒเบ™เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™, เบ–เป‰เบฒเบšเปเปˆเปเบกเปˆเบ™เบ•เบฐเบซเบผเบญเบ”เป„เบ›.

เบ›เบฐเบ•เบดเบšเบฑเบ” โ€‹เปเบฅเบฐ เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡โ€‹เปœเบตเป‰โ€‹เบชเบดเบ™โ€‹เบ—เบฒเบ‡โ€‹เบงเบดเบŠเบฒโ€‹เบเบฒเบ™

เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบเบฒเบเบซเบผเบทเบซเบ™เป‰เบฒเบขเป‰เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ static เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เป€เบเบปเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ.

CI / CD

เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ—เบฑเบ™เบ—เบตเบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เปเบˆเบเบขเบฒเบ PVS-Studio เบ›เบฐเบเบญเบšเบกเบตเบชเบดเปˆเบ‡เบญเปเบฒเบ™เบงเบเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบšเบดเปˆเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™, เปเบฅเบฐเบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เบ•เปเปˆเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบ‚เบฝเบ™เบชเปˆเบงเบ™เบ—เบตเปˆเบกเบตเบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”. เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบœเบนเป‰โ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบชเบปเบ™โ€‹เปƒเบˆโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ›เบตเบ” PVSโ€‹-Studio เบˆเบฒเบโ€‹เบฅเบฐโ€‹เบšเบปเบš CI / CDโ€‹, เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒโ€‹เปƒเบซเป‰โ€‹เบ—เปˆเบฒเบ™โ€‹เบ„เบธเป‰เบ™โ€‹เป€เบ„เบตเบโ€‹เบเบฑเบšโ€‹เบ•เบปเบงโ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบญเบ‡โ€‹เบ—เบตเปˆโ€‹เบชเบญเบ”โ€‹เบ„เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹. เบžเบฒเบ เป€เบญเบเบฐเบชเบฒเบ™ เปเบฅเบฐเบŠเบธเบ”เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบก:

เปเบ•เปˆเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”.

เบเบฒเบ™เปเบเป‰เป„เบ‚เบซเบ™เบตเป‰เบชเบดเบ™เบ—เบฒเบ‡เบงเบดเบŠเบฒเบเบฒเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ„เปเบฒเป€เบ•เบทเบญเบ™เปƒเบซเบกเปˆ

เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เบ—เบฒเบ‡เบเบฒเบ™เบ„เป‰เบฒเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบถเบเบชเบฒเบžเบฝเบ‡เปเบ•เปˆเบ„เปเบฒเป€เบ•เบทเบญเบ™เปƒเบซเบกเปˆเบ—เบตเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆเบซเบผเบทเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบปเบ™เป„เบเบ™เบตเป‰เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เปเบ•เปˆเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™. เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ” PVS-Studio, เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰.

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เบขเปˆเบฒเบ‡เป„เบงเบงเบฒ, เบžเบงเบเป€เบฎเบปเบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰ PVS-Studio เปƒเบŠเป‰เบเบปเบ™เป„เบเบเบฒเบ™เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบกเบฐเบซเบฒเบŠเบปเบ™ [6]. เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰. เบœเบนเป‰เปƒเบŠเป‰เป€เบ›เบตเบ”เบ•เบปเบงเป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ•เบทเบญเบ™เบซเบผเบฒเบ. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบฒเป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเบผเบฒเบเบ›เบตเปเบกเปˆเบ™เบกเบตเบŠเบตเบงเบดเบ”เบขเบนเปˆ, เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบชเป‰เบฒเบ‡เบฅเบฒเบเป„เบ”เป‰, เบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐเบšเปเปˆเบกเบตเบ„เปเบฒเป€เบ•เบทเบญเบ™เบซเบผเบฒเบเปƒเบ™เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ—เบตเปˆเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เปเบกเบ‡เป„เบกเป‰เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚เปเบฅเป‰เบงเป‚เบ”เบเบงเบดเบ—เบตเบซเบ™เบถเปˆเบ‡เบซเบผเบทเบงเบดเบ—เบตเบญเบทเปˆเบ™เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบตเบฅเบฒเบ„เบฒเปเบžเบ‡เบเบงเปˆเบฒเบซเบผเบทเบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบ„เปเบฒเบ„เบถเบ”เบ„เปเบฒเป€เบซเบฑเบ™เบˆเบฒเบเบฅเบนเบเบ„เป‰เบฒ. เบ•เบฒเบกเบ™เบฑเป‰เบ™เปเบฅเป‰เบง, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐเบ„เบปเป‰เบ™เบžเบปเบšเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบชเบฒเบกเบฒเบ”เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเป€เบ›เบฑเบ™เบซเบ™เบตเป‰เบชเบดเบ™เบ—เบฒเบ‡เบงเบดเบŠเบฒเบเบฒเบ™, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ—เบฑเบ™เบ—เบต.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบšเบญเบ PVS-Studio เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ„เปเบฒเป€เบ•เบทเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปƒเบ™เบ•เบญเบ™เบ™เบตเป‰ (เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบซเบ™เบตเป‰เบชเบดเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เปƒเบ™เบžเบฒเบเบซเบฅเบฑเบ‡), เปเบฅเบฐเบกเบฑเบ™เบˆเบฐเบšเปเปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐเบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบžเบดเป€เบชเบ”เบ—เบตเปˆเบกเบฑเบ™เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ. เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™ PVS-Studio เบˆเบฐเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆเบซเบผเบทเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบชเบฐเบซเบฅเบฒเบ”. เบ–เป‰เบฒเบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบชเบฑเป‰เบ™เบซเบงเปˆเบฒเบ‡เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบœเบนเป‰เบงเบดเป€เบ„เบฒเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒ, เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ›เปˆเบฝเบ™เปเบ›เบ‡, เปเบฅเบฐเบˆเบฐเบชเบทเบšเบ•เปเปˆเบ‡เบฝเบš. เป„เบŸเบฅเปŒ markup เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบชเบฐเบšเบฑเบš. เป„เบŸเบฅเปŒเบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เปเบ•เปˆเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒ, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเบˆเบธเบ”เปƒเบ”เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบกเบฑเบ™เป€เบฅเบทเป‰เบญเบเป†.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเป€เบซเบฑเบ™เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆเบซเบผเบทเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐ, เบเป‰เบญเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเป€เบงเบปเป‰เบฒเบงเปˆเบฒ, เบˆเบฒเบเบกเบทเป‰เบ•เปเปˆเบกเบฒ. เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบซเบ™เบตเป‰เบชเบดเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบ•เปเปˆเบกเบฒ, เปเบฅเบฐเบ„เปˆเบญเบเป†เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปเบฅเบฐเบเปเบฒเบซเบ™เบปเบ”เบ„เปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐ.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบšเบฑเบ™เบซเบฒเบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เป€เบเบปเปˆเบฒเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป„เบ”เป‰เบ–เบทเบเปเบเป‰เป„เบ‚. เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เบ„เบดเบ”เบญเบญเบเบงเปˆเบฒเบˆเบฐเป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบเบฑเบšเบซเบ™เบตเป‰เบชเบดเบ™เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™.

เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹

เบชเบดเปˆเบ‡เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเบ—เปเบฒเบกเบฐเบŠเบฒเบ”เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเปƒเบ”เบซเบ™เบถเปˆเบ‡เป€เบžเบทเปˆเบญเบงเบดเป€เบ„เบฒเบฐเบ„เปเบฒเป€เบ•เบทเบญเบ™เบ‚เบญเบ‡เบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐเบ—เบตเปˆเบ–เบทเบเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปเบฅเบฐเบ„เปˆเบญเบเป†เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบžเบงเบเบกเบฑเบ™. เบšเบฒเบ‡เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ„เบงเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบฅเบฐเบซเบฑเบ”, เบšเบฒเบ‡เบšเปˆเบญเบ™เบ—เปˆเบฒเบ™เบ„เบงเบ™ refactor เป€เบžเบทเปˆเบญเบšเบญเบเบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐเบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเป†:

if (a = b)

เบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐ C ++ เบชเปˆเบงเบ™เปƒเบซเบเปˆเบˆเบปเปˆเบกเบเปˆเบฝเบงเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบตเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเบนเบ‡เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบฝเบ™. (a == b). เปเบ•เปˆเบกเบตเบ‚เปเป‰เบ•เบปเบเบฅเบปเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เป€เบงเบปเป‰เบฒ, เปเบฅเบฐเบ™เบตเป‰เบกเบฑเบเบˆเบฐเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™, เบงเปˆเบฒเบ–เป‰เบฒเบกเบตเบงเบปเบ‡เป€เบฅเบฑเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบกเบฑเบ™เบ–เบทเบงเปˆเบฒเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเป€เบˆเบ”เบ•เบฐเบ™เบฒเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เปเบฅเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเบฒเบšเบฒเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™ PVS-Studio เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบช V559 (CWE-481) เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ‚เบฝเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเป€เบชเบฑเป‰เบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบˆเบฐเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบ›เบญเบ”เป„เบž:

if ((a = b))

เบ•เบปเบงเบขเปˆเบฒเบ‡เบญเบทเปˆเบ™. เบกเบฑเบ™เบฅเบทเบกเบขเบนเปˆเปƒเบ™เบฅเบฐเบซเบฑเบ” C ++ เบ™เบตเป‰เบšเป? เบžเบฑเบเบœเปˆเบญเบ™ เบซเบผเบทเบšเปเปˆ?

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

เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐ PVS-Studio เบˆเบฐเบญเบญเบเบ„เปเบฒเป€เบ•เบทเบญเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰ V796 (CWE-484). เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบ›เบฑเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ„เบงเบ™เบˆเบฐเปƒเบซเป‰เบ„เบณเบŠเบตเป‰เบšเบญเบเบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”. [[เบซเบผเบธเบ”โ€‹เบฅเบปเบ‡]] เบซเบผเบท, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, __เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ__((เบซเบผเบธเบ”)):

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

เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเป„เบ”เป‰เบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบฑเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบšเปเปˆเป„เบ”เป‰เปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡, เปเบ•เปˆเบกเบฑเบ™เป€เบฎเบฑเบ”เบชเบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”. เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ เบเบณ เบˆเบฑเบ”เบœเบปเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบญเบฑเบ™เบ—เบตเบชเบญเบ‡, เบฅเบฐเบซเบฑเบ”เบเบฒเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบ›เบฐเบŠเบฒเบŠเบปเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒเบ‚เบญเบ‡เบกเบฑเบ™. เปเบฅเบฐเบ™เบตเป‰เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบ! เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เบขเปˆเบฒเบ‡เบ”เบฝเบง, เบกเบฑเบ™เบ„เบธเป‰เบกเบ„เปˆเบฒเบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ refactoring เป€เบฅเบฑเบเบ™เป‰เบญเบเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบˆเบฐเปเบˆเป‰เบ‡เปเบฅเบฐเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบฎเบฑเบเบชเบฒ. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒ "เบžเบฑเบเบœเปˆเบญเบ™" เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบซเบผเบทเบšเปเปˆ, เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบŠเบฑเบ”เป€เบˆเบ™เบเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบญเบทเปˆเบ™เป†.

เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เปเบฅเบฐ refactorings, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ. เบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เป„เบ”เป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบšเบฒเบ‡เบ„เบปเบ™เบ„เบดเบ”เบงเปˆเบฒเบ„เปเบฒเป€เบ•เบทเบญเบ™เบšเปเปˆเบกเบตเบˆเบธเบ”เบซเบกเบฒเบ V550 เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ„เปˆเบฒ float/double. เปเบฅเบฐโ€‹เบšเบฒเบ‡โ€‹เบ„เบปเบ™โ€‹เบˆเบฑเบ”โ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบชเบดเปˆเบ‡โ€‹เบชเปเบฒโ€‹เบ„เบฑเบ™โ€‹เปเบฅเบฐโ€‹เบกเบตโ€‹เบ„เปˆเบฒโ€‹เบ„เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบชเบถเบโ€‹เบชเบฒ [7]. เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบญเบฑเบ™เปƒเบ”เบ—เบตเปˆเบ–เบทเบงเปˆเบฒเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡ เปเบฅเบฐเบญเบฑเบ™เปƒเบ”เบšเปเปˆเปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบˆเบฐเบ•เบฑเบ”เบชเบดเบ™.

เบกเบตเบงเบดเบ—เบตเบญเบทเปˆเบ™เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, macro markup เป„เบ”เป‰เบ–เบทเบเบเปˆเบฒเบงเป€เบ–เบดเบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบกเปˆเบ™เป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เป€เบญเบเบฐเบชเบฒเบ™. เบชเบดเปˆเบ‡เบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ„เปˆเบญเบเป†เปเบฅเบฐเบฅเบฐเบšเบปเบšเบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบœเบปเบ™เบšเบงเบเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ—เบตเปˆเบœเบดเบ”เบžเบฒเบ”เบเบฑเบšเบžเบงเบเบกเบฑเบ™. เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบฒเบเป„เบ›เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบชเบถเบเบชเบฒเบขเปˆเบฒเบ‡เบฅเบฐเบกเบฑเบ”เบฅเบฐเบงเบฑเบ‡เปเบฅเบฐเบšเบฒเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆ.

เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเป€เบซเบกเบตเบŠเปˆเบงเบเบฅเบนเบเบ„เป‰เบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡ PVS-Studio เบ–เป‰เบฒเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเปƒเบ”เป†เป€เบเบตเบ”เบ‚เบทเป‰เบ™. เบเบดเปˆเบ‡โ€‹เป„เบ›โ€‹เบเบงเปˆเบฒโ€‹เบ™เบฑเป‰เบ™, เบกเบตโ€‹เบšเบฒเบ‡โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ—เบตเปˆโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป€เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฅเบปเบšโ€‹เบฅเป‰เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ” [8]. เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบต, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบเปˆเบฒเบงเป€เบ–เบดเบ‡เบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเปˆเบงเบกเบกเบทเปเบšเบšเบ‚เบฐเบซเบเบฒเบเบเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ :).

เบงเบดเบ—เบตเบเบฒเบ™ Ratchet

เบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบˆเบฐเบ„เปˆเบญเบเป†เบ›เบฑเบšเบ›เบธเบ‡เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”. เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบธเปˆเบกเปเบกเปˆเบ™เบงเปˆเบฒเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบฅเบปเบ‡.

เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบกเปเบฅเบฐเบ”เบปเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ demotivating เบ—เบตเบกเบ‡เบฒเบ™

เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบ•เบทเบญเบ™โ€‹เป„เบžโ€‹เบญเบญเบโ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบดโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เป„เบงเป‰โ€‹. เบ›เบฐเบ•เบนเบฎเบปเป‰เบงเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบ•เบญเบ™เบ™เบตเป‰เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เปƒเบชเปˆเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบšเปเปˆเป€เบžเบตเปˆเบกเบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เป€เบ—เบทเปˆเบญเบฅเบฐเบเป‰เบฒเบงเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเปเบฅเบฐเปเบเป‰เป„เบ‚เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”.

เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเบธเบเบ„เบปเบ™เปƒเบ”เบซเบ™เบถเปˆเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป‚เบเบ‡เป€เบฅเบฑเบเบ™เป‰เบญเบเปเบฅเบฐเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบœเปˆเบฒเบ™เบ›เบฐเบ•เบนเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบšเปเปˆเปเบกเปˆเบ™เป‚เบ”เบเบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบ„เปเบฒเป€เบ•เบทเบญเบ™เปƒเบ™เบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆเบ‚เบญเบ‡เบฅเบฒเบง, เปเบ•เปˆเป‚เบ”เบเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเป€เบเบปเปˆเบฒ, เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเบขเป‰เบฒเบ™เบเบปเบง. เบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เบฝเบงเบเบฑเบ™, ratchet rotates เปƒเบ™เบ—เบดเบ”เบ—เบฒเบ‡เบ”เบฝเบง, เปเบฅเบฐเบ„เปˆเบญเบเป†เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบˆเบฐเบซเบผเบธเบ”เบฅเบปเบ‡. เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเบธเบเบ„เบปเบ™เปƒเบ”เบซเบ™เบถเปˆเบ‡เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เปƒเบซเบกเปˆเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบฅเบฒเบงเบเบฑเบ‡เบˆเบฐเบ•เป‰เบญเบ‡เบ›เบฑเบšเบ›เบธเบ‡เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”เปƒเบเป‰เบ„เบฝเบ‡. เปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”, เบงเบดเบ—เบตเบ—เบตเปˆเบ‡เปˆเบฒเบเปƒเบ™เบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เป€เบ•เบทเบญเบ™เป„เบžเบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡, เปเบฅเบฐเบกเบตเบˆเบธเบ”เบ—เบตเปˆเปเบกเบ‡เป„เบกเป‰เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบˆเบฐเบ–เบทเบเปเบเป‰เป„เบ‚.

เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบเป‚เบ”เบ Ivan Ponomarev "เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบกเบฑเบ™เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเปเบกเบ‡เป„เบกเป‰", เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบญเปˆเบฒเบ™เบเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบชเบปเบ™เปƒเบˆเปƒเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบฅเบฐเบซเบฑเบ”.

เบœเบนเป‰เบ‚เบฝเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบเบฑเบ‡เบกเบตเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰: "เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡".

เบชเบฐเบซเบฅเบธเบš

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบซเบงเบฑเบ‡เบงเปˆเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบœเบนเป‰เบญเปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเบซเบผเบฒเบเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ static เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบ„เปเบฒเบ–เบฒเบกเปƒเบ”เป†, เบžเบงเบเป€เบฎเบปเบฒเบžเป‰เบญเบกเบชเบฐเป€เบซเบกเบต เปเบ™เบฐเบ™เบณ เบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ PVS-Studio เปเบฅเบฐเบŠเปˆเบงเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบกเบฑเบ™.

เบกเบตเบ„เบงเบฒเบกเบชเบปเบ‡เปƒเบชเบ—เบปเปˆเบงเป„เบ›เบญเบทเปˆเบ™เป†เบเปˆเบฝเบงเบเบฑเบšเบงเปˆเบฒเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เบชเบฒเบกเบฒเบ”เบชเบฐเบ”เบงเบเปเบฅเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปเบ—เป‰เป†. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ„เบงเบฒเบกเบชเบปเบ‡เปƒเบชเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเปˆเบงเบ™เปƒเบซเบเปˆเปƒเบ™เบชเบดเปˆเบ‡เบžเบดเบก "เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบดเบ”เบ‚เบญเบ‡ PVS-Studio เป€เบ‚เบปเป‰เบฒเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ" [9].

เบ‚เบญเบšเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเบกเบฒ ัะบะฐั‡ะฐั‚ัŒ เปเบฅเบฐเบฅเบญเบ‡เปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐ PVS-Studio.

เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบžเบตเปˆเบกเป€เบ•เบตเบก

  1. Andrey Karpov. เบ‚เป‰เบญเบเบˆเบฐเป€เบซเบฑเบ™เบ„เปเบฒเป€เบ•เบทเบญเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบขเปˆเบฒเบ‡เป„เบงเบงเบฒเบ—เบตเปˆเป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐ PVS-Studio เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ” C เปเบฅเบฐ C ++ เป„เบ”เป‰เปเบ™เบงเปƒเบ”?
  2. Wikipedia เบ—เบดเบ”เบชเบฐเบ”เบตเบšเบปเบ”เบ‚เบญเบ‡เป€เบ‚เบปเป‰เบฒ.
  3. Andrey Karpov, Victoria Khanieva. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเปƒเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบชเบฐเบ–เบดเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เป‚เบ„เบ‡เบเบฒเบ™.
  4. PVS-Studio. เป€เบญเบเบฐเบชเบฒเบ™. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบงเบดเบ™เบดเบ”เป„เบชเป€เบžเบตเปˆเบกเป€เบ•เบตเบก.
  5. Andrey Karpov. เบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบงเบดเป€เบ„เบฒเบฐ PVS-Studio เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ EFL Core Libraries, 10-15% false positives.
  6. PVS-Studio. เป€เบญเบเบฐเบชเบฒเบ™. เบเบฒเบ™เบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบกเบฐเบซเบฒเบŠเบปเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ.
  7. Ivan Andryashin. เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ static เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ‚เบญเบ‡ simulator เบเบฒเบ™เบชเบถเบเบชเบฒเบ‚เบญเบ‡เบเบฒเบ™เบœเปˆเบฒเบ•เบฑเบ” endovascular X-ray.
  8. Pavel Eremeev, Svyatoslav Razmyslov. เบ—เบตเบกเบ‡เบฒเบ™ PVS-Studio เบ›เบฑเบšเบ›เบธเบ‡เบฅเบฐเบซเบฑเบ” Unreal Engine เปเบ™เบงเปƒเบ”.
  9. Andrey Karpov. เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบˆเบฐเปเบ™เบฐเบ™เปเบฒเบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบชเบฐเบ–เบดเบ” PVS-Studio เป€เบ‚เบปเป‰เบฒเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ.

เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบกเปเบฅเบฐเบ”เบปเบเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™ demotivating เบ—เบตเบกเบ‡เบฒเบ™

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบเบฑเบšเบœเบนเป‰เบŠเบปเบกเบ—เบตเปˆเป€เบงเบปเป‰เบฒเบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”, เบเบฐเบฅเบธเบ™เบฒเปƒเบŠเป‰เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒ: Andrey Karpov. เบงเบดเบ—เบตเบเบฒเบ™เปเบ™เบฐเบ™เปเบฒเบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐเบฅเบฐเบซเบฑเบ”เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบกเปเบฅเบฐเบ”เบปเบเปเบฅเบฐเบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบตเบกเบ‡เบฒเบ™เบ—เปเป‰เบ–เบญเบเปƒเบˆ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™