рдореБрдХреНрдд рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ

рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдореБрдлреНрдд

рдирдП рд╕рд╛рд▓ 2019 рдХреЗ рдЬрд╢реНрди рдХреА рдкреВрд░реНрд╡ рд╕рдВрдзреНрдпрд╛ рдкрд░, PVS-Studio рдЯреАрдо рдиреЗ GitHub, GitLab рдпрд╛ Bitbucket рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рднреА рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрд╣рд╛рд░ рджреЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЙрдиреНрд╣реЗрдВ рдореБрдХреНрдд рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдо рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдмреЗрд╣рддрд░ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ 10,000 рд╕реЗ рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рддрдп рдХреА рдЧрдИ рд╣реИрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реА рдЯреАрдо рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╣рдЬрд╛рд░реЛрдВ рдЦреБрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИред рдЗрд╕рд▓рд┐рдП, 2016 рдореЗрдВ, рд╣рдордиреЗ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдПрдХрдорд╛рддреНрд░ рд╢рд░реНрдд рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдХреЛрдб рдореЗрдВ рдЙрдкрд╕реНрдерд┐рддрд┐ рд╣реИред рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВ " рдореБрдлреНрдд рдореЗрдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ ред"

рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ GitHub, GitLab рдпрд╛ Bitbucket рдкрд░ рд╣реЛрд╕реНрдЯ рдХреА рдЧрдИ рдЦреБрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЛ PVS-Studio рдХреЗ рдореБрдлреНрдд рдЙрдкрдпреЛрдЧ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рд╕рднреА рдХреЗ рд▓рд┐рдП, рд╣рдо 1 рд╡рд░реНрд╖ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВред рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

  1. рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВ : https://www.viva64.com/en/open-source-license/
  2. рдирд╛рдо рдФрд░ рдИ-рдореЗрд▓ рджрд░реНрдЬ рдХрд░реЗрдВ рдЬрд┐рд╕рд╕реЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреБрдВрдЬреА рднреЗрдЬреА рдЬрд╛рдПрдЧреА;
  3. рдЕрдкрдиреЗ GitHub / GitLab / Bitbucket рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХрд╛ рд▓рд┐рдВрдХ рджрд░реНрдЬ рдХрд░реЗрдВ;
  4. рдирд┐рдГрд╢реБрд▓реНрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВред

рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдмрд╛рдж, рдЖрдк рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдирдИ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреБрдВрдЬреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ GitHub / GitLab / Bitbucket рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЦреБрд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рджрд░реНрдкрдг рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдореБрдлреНрдд рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╡реИрдз рд░рд╣рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд╛ рдХреЗ рдЕрдкрдиреЗ рдлрд╛рдпрджреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЫрд╛рддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдЙрдиреНрд╣реЗрдВ GitHub / GitLab / Bitbucket рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдмрдВрдж рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╕реНрдерд┐рддрд┐

StackOverflow рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╡рд╛рдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореБрдлреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╕реНрдерд┐рддрд┐ " рдореБрдлреНрдд рдореЗрдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ " рд▓реЗрдЦ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ (рдЕрдзреНрдпрд╛рдп "рдЬреЛрдбрд╝: рд╕рдорд░реНрдерди" рджреЗрдЦреЗрдВ)ред рд╣рдо рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ StackOverflow рдмрдЧ рдЯреНрд░реИрдХрд░ рдирд╣реАрдВ рд╣реИред рдЖрдЗрдП рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ, рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рддрд░реАрдХреЛрдВ, рдЖрджрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВред рд╣рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдмрдЧ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рд╕рдорд░реНрдерди рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВред

рдирд┐: рд╢реБрд▓реНрдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕рджрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╣рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдпрд╛ рдЗрд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддреЗ рд╣реИрдВред рд╣рдо рдмрд┐рдирд╛ рдХрд╛рд░рдг рдмрддрд╛рдП рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдХреЛ рдирд┐рд░рд╕реНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рднреА рд░рдЦрддреЗ рд╣реИрдВред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рджрд░реНрдкрдг рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓реИрдВрдЧ , рдХреНрд░реЛрдорд┐рдпрдо , рдХреЗрдбреАрдИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдЯреАрдо рд╕реЗ рдХрд╛рдлреА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдпрд╣ рдЙрдЪрд┐рдд рд╣реЛрдЧрд╛ рдпрджрд┐ рдХрдВрдкрдирд┐рдпрд╛рдВ рдЬрд╣рд╛рдВ рдЗрди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдирд┐рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡реЗ рдПрдХ рднреБрдЧрддрд╛рди рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ :)ред

рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд┐рдВрдХ:

  1. рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдЙрддреНрдкрд╛рдж рдкреГрд╖реНрда
  2. рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
  3. рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
  4. рдмрдВрдж рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдореБрдлреНрдд рдЙрдкрдпреЛрдЧ
  5. рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк



рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдЕрдВрдЧреНрд░реЗрдЬреА рдмреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдПрдВрдбреНрд░реЗ рдХрд╛рд░рдкреЛрд╡ред рдореБрдХреНрдд рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ ред

Source: https://habr.com/ru/post/hi434012/


All Articles