рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЛ рдЙрдирдХреЗ рдкреЗрд╢реЗрд╡рд░ рджрд┐рди рдХреА рдмрдзрд╛рдИ! рдЫреБрдЯреНрдЯреА рдХреЗ рд╕рдореНрдорд╛рди рдореЗрдВ, рдореИрдВрдиреЗ рдирд┐рдпрдореЛрдВ (рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ) рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдФрд░ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрдзреБрдирд┐рдХ рдкреНрд░рд╕реНрддреБрддрд┐рдпрд╛рдВ рдХреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЬрдм рд╡рд░реНрдЪреБрдЕрд▓ рд░рд┐рдпрд▓рд┐рдЯреА рд╣реЗрд▓рдореЗрдЯ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЯреЗрд╕реНрд▓рд╛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЙрдбрд╝рд╛рди рднрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк PPTX рдкреГрд╖реНрдареЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдпрд╛ рдЦрд░рд╛рдм рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡, рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рд╕реНрдЯрд╛рдЗрд▓рд┐рд╢ рдкреНрд░рд╕реНрддреБрддрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрдВрдЬрди рдХреА рдкреВрд░реА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рдЧрд▓рдд рдкреАрдбреАрдПрдл рдирд┐рдкрдЯрд╛рди рдФрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдиреЛрдЯ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реАред тАЭ

2015 рд╕реЗ, рдореИрдВ рдЕрдкрдиреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рдкреНрд░рд╕реНрддреБрддрд┐ рдкреНрд░рд╛рд░реВрдк рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рд╕реНрдирд╛рддрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ)ред рдФрд░ рдЕрдм, 2018 рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓рдЧрднрдЧ рд╕рдлрд▓ рд░рд╣рд╛ред рдпрд╣ рд╕рдм рдкрд╛рд╡рд░ рдкреНрд╡рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ, рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдЖрдзрд╛рд░рд┐рдд рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдЖред
рдХрдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬрди рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рдЖрдк рд╢рд╛рдВрдд рдкреНрд░рд╕реНрддреБрддрд┐рдпрд╛рдБ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдорд╛рд░реНрдк , рд░рд┐рд╡рд╛рдЗрд▓ , рд▓реИрдВрдбрд╕реНрд▓рд╛рдЗрдб , рд╣реИрдХрд░-рд╕реНрд▓рд╛рдЗрдб , рд╕реНрд▓рд╛рдЗрдб рдФрд░ рдЕрдиреНрдпред рдХреБрдЫ рдореЗрдВ рдЖрдк рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдЖрдИрдбреАрдИ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИрдВ, рдФрд░ рдХреБрдЫ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрдкрд╛рджрдХреЛрдВ рдореЗрдВ рдмрдирд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЕрдм рддрдХ рдкрд╣рд▓реЗ рджреЛ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рд╣реВрдВред
рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ, рд╕реНрд▓рд╛рдЗрдб рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИрдВ ред
рдЙрдкрд░реЛрдХреНрдд рджреЛрдиреЛрдВ рдЗрдВрдЬрди рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рд╕рд╛рджреЗ рдкрд╛рда рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛, рдорд╛рд░реНрдк , рдЖрдкрдХреЛ рдЕрдкрдиреА рдЦреБрдж рдХреА рдЖрдИрдбреАрдИ рдореЗрдВ рдкреНрд░рд╕реНрддреБрддрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЙрдЯрдкреБрдЯ рдЕрднреА рднреА рдПрдХ рд╕реНрдерд┐рд░ рдкреАрдбреАрдПрдл рд╣реИред рджреВрд╕рд░рд╛, рдкреНрд░рдХрдЯ , рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ: рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдк рд╕рдВрдкреВрд░реНрдг рдкреНрд░рд╕реНрддреБрддрд┐ рд╕рд╛рдЗрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, HTML рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХреА рд╕рднреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореЗрд░реА рдкреНрд░рд╕реНрддреБрддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ https://github.com/KvanTTT/Presentations рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдкрд╛рда рдХреА рдЫреЛрдЯреА рд░рд╛рд╢рд┐
рд╢реНрд░реЛрддрд╛ рдкреНрд░рд╕реНрддреБрддрд┐ рдХрд╛ рдкрд╛рда рдирд╣реАрдВ рдкрдврд╝реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реНрд▓рд╛рдЗрдб рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдмрддрд╛рдУред рдпрджрд┐ рдкрд╛рда рдХреЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдмрд╛рд╣рд░ рдлреЗрдВрдХрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реИ, рддреЛ рдЗрд╕реЗ рдлреЗрдВрдХ рджреЗрдВред рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕рдордЭрд╛рддреЗ рд╣реБрдП рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦреЗрдВред рдмреЗрд╣рддрд░ рджреГрд╢реНрдп рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдмреЗрд╣рддрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд░реВрдкрдХ рдЕрдЪреНрдЫреЗ рд╣реИрдВред рджрд░реНрд╢рдХреЛрдВ рдХреЛ рдЬрд╛рдЧреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рд▓рд╛рд▓рдЪ рджреЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдпрд╣ рдордЬрд╛рдХрд┐рдпрд╛ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрдиреБрдкрд╛рдд рдХреА рднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП: рдЙрдирдХреА рдмрд╣реБрддрд╛рдпрдд рдПрдХ рддреБрдЪреНрдЫ рддрд░реАрдХреЗ рд╕реЗ рдЧреБрд╕реНрд╕рд╛ рдФрд░ рдзреБрди рдХрд░ рд╕рдХрддреА рд╣реИред

рдиреНрдпреВрдирддрдорд╡рд╛рдж рдФрд░ рдлреНрд▓реИрдЯ рдбрд┐рдЬрд╛рдЗрдиред
рдЙрди рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЬреЛ рдореИрдВрдиреЗ "рдмрдВрдж рд▓рд┐рдЦрд╛ред" рдЕрдм рдпрд╣ рдПрдХ рдкреНрд░рд╡реГрддреНрддрд┐ рд╣реИ, рдареАрдХ рд╣реИ, рдФрд░ рдореИрдВ рднреА рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдкреНрд░рд╕реНрддреБрддрд┐рдпреЛрдВ рдХреЛ рдмрдирд╛рддреЗ рд╕рдордп рдЖрдзрд╛рд░ рд░рдВрдЧреЛрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕рдВрдЦреНрдпрд╛ (рддреАрди рд╕реЗ рдкрд╛рдВрдЪ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред
рдСрдирд▓рд╛рдЗрди рдкрд╣реБрдВрдЪ
рдкреНрд░рд╕реНрддреБрддрд┐ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдХрд╛рд░рдг, рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рджреМрд░рд╛рди рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡, рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдЯреВрдЯрдиреЗ рдФрд░ рдЕрдиреНрдп рдкреНрд░рддрд┐рдХреВрд▓рддрд╛рдУрдВ рдХрд╛ рдиреБрдХрд╕рд╛рди рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдСрдлрд╝рд▓рд╛рдЗрди рд╕рдВрдЪрд╛рд▓рди
рдЕрдВрдЧреНрд░реЗрдЬреА рднрд╛рд╖рд╛ рд╕реНрд▓рд╛рдЗрдб
рд▓рд┐рдВрдХ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВ
рд▓рд┐рдВрдХ рдкрдврд╝реЗрдВ
рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдВрдХ рд╕реЗ https://kvanttt.imtqy.com/Presentations/2018-05-15-Source-code-analyzers-how-generalizable-are-they/English/index.html рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ:
- рд▓реЗрдЦрдХ рдХреМрди рд╣реИ: рдХрд╛рд╡рдВрдЯреЗрдЯ
- рдкреНрд░рдХрд╛рд╢рди рдХреА рддрд╛рд░реАрдЦ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ: 2018-05-15
- рдХреНрдпрд╛ рд╕реНрд╡рд░реВрдк: рдкреНрд░рд╕реНрддреБрддрд┐рдпрд╛рдБ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦ , рдирдореВрдиреЗ ) рдЕрднреА рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
- рднрд╛рд╖рд╛: рдЕрдВрдЧреНрд░реЗрдЬреА
- рд╢реАрд░реНрд╖рдХ: Source-code-analyzers-how-generalizable-are-they
- рдЖрдк
#/5
рдЬрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рдХрд┐рд╕реА рднреА рдкреГрд╖реНрда рд╕реЗ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдбрд╛рд░реНрдХ рдФрд░ рд▓рд╛рдЗрдЯ рдереАрдо
рдкреНрд░рдХрд╛рд╢, рдореВрдб рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдПред рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╕реНрд▓рд╛рдЗрдбреНрд╕ рдХреЗ рдмреАрдЪ рдмрджрд▓рд╛рд╡ рдХреА рд╢реИрд▓реА рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг (Git)
GitHub рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЬрдм gh-pages
рдмреНрд░рд╛рдВрдЪ рдпрд╛ master
рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рдП master
рд╕рд╛рдЗрдЯ рдХреЛ рддреБрд░рдВрдд imtqy.com
рдбреЛрдореЗрди рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдпрд╣ рд╕реНрд░реЛрдд рдлрд╝реЛрд▓реНрдбрд░ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ: https://github.com/KvanTTT/Presentations/tree/master/2018-05-15-Source-code-analyzers-how-generalizable-are-they
Markdown рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ:
- рдкрд╛рда рдХреА рд╡рд┐рднрд┐рдиреНрди рд╢реИрд▓рд┐рдпреЛрдВ ( рдЗрдЯреИрд▓рд┐рдХ , рдмреЛрд▓реНрдб ,
рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛ , рд▓рд┐рдВрдХ, рдЙрджреНрдзрд░рдг,
), - рд╕реБрд░реНрдЦрд┐рдпреЛрдВ рдореЗрдВ
- рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рд╕реВрдЪреАрдмрджреНрдз рд╕реВрдЪрд┐рдпрд╛рдБ
- рддрд╛рд▓рд┐рдХрд╛
- рд╡рд┐рдлрд▓,
- рдЕрддрд┐рд░рд┐рдХреНрдд рддрддреНрд╡ рдЬреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк HTML рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрд▓рд╛рдЗрдб рд╕реНрд░реЛрдд рдЙрджрд╛рд╣рд░рдг # я╕П Text fingerprinting with zero-length characters Be cтАЛarefтАЛul whтАЛat yoтАЛu copy <span class="fragment">я╕П [https://diffchecker.com](https://www.diffchecker.com/M2PvqSXw)</span> <span class="fragment"> Be cтАвarefтАвul whтАвat yoтАвu copyтАв </span> <aside class="fragment" align="middle">Detail: [habr.com](https://habr.com/post/352950/) | [Medium](https://medium.com/@umpox/be-careful-what-you-copy-invisibly-inserting-usernames-into-text-with-zero-width-characters-18b4e6f17b66) </span> <br> <aside class="notes"> , . , 5 . ? <https://www.diffchecker.com>. "" . , , : , - :) . </aside> ---
рд╕реНрд▓рд╛рдЗрдб рдПрдиреЛрдЯреЗрд╢рди
рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рджреМрд░рд╛рди, рдЖрдк рдПрд╕ рджрдмрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рд╛рд░, рднрд╛рд╖рдг рдФрд░ рдЕрдЧрд▓реА рд╕реНрд▓рд╛рдЗрдб рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЯрд╛рдЗрдорд░ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрдк рдкреНрд░рджрд░реНрд╢рди рдХреА рдЕрд╡рдзрд┐ рдХреЛ рдорд╛рдк рд╕рдХрддреЗ рд╣реИрдВред рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рджреНрд╡рд┐рддреАрдпрдХ рд╕реНрдХреНрд░реАрди рдкрд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрдореЛрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рджреГрд╢реНрдп рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрд▓рд╛рдЗрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡реЗ рдЕрднреА рднреА Habr├й рдкрд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЗ рдКрдкрд░ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдЖрдкрдХреЛ рдЗрдореЛрдЯрд┐рдХреЙрди рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛ред

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

рдЗрд╕ рд╕реНрд▓рд╛рдЗрдб рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдПрд╕рд╡реАрдЬреА рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдЯреБрдХрдбрд╝рд╛ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="478pt" height="601pt" viewBox="0.00 0.00 478.13 601.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 597)"> <title>cfg</title> <polygon fill="white" stroke="none" points="-4,4 -4,-597 474.131,-597 474.131,4 -4,4"/> <g id="node1" class="node"> <title>27</title> <ellipse fill="none" stroke="black" cx="310.039" cy="-575" rx="75.2868" ry="18"/> <text text-anchor="middle" x="310.039" y="-571.3" font-family="Times New Roman,serif" font-size="14.00">name == "admin"</text> </g> <g id="node2" class="node"> <title>33</title> <ellipse fill="none" stroke="black" cx="229.039" cy="-488" rx="81.4863" ry="18"/> <text text-anchor="middle" x="229.039" y="-484.3" font-family="Times New Roman,serif" font-size="14.00">key1 == "validkey"</text> </g>
рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рд╕рд░рд▓ рдЖрдИрдбреАрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб ред рдмрд╛рдИрдВ рдУрд░ - рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди, рджрд╛рдИрдВ рдУрд░ рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ - рд╕рдорд╛рдкреНрдд рд╕рдВрд╕реНрдХрд░рдг, рд░реЗрдВрдбрд░ рдХрд░реЗрдВред рд╡рд░реНрддрдиреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ, рд╕рд╛рдордЧреНрд░реА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрдиреНрд╕, рддрд╛рд▓рд┐рдХрд╛рдПрдБ рдФрд░ рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдкрдгред

рдореБрджреНрд░рдг рдпреЛрдЧреНрдп рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд╛рда
рдореБрдХреНрдд
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ
- рдКрд░реНрдзреНрд╡рд╛рдзрд░ рд╕реНрд▓рд╛рдЗрдб: рдЖрдк рди рдХреЗрд╡рд▓ рдмрдЧрд╝рд▓ рдореЗрдВ рд╕реНрдХреНрд░реЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдиреАрдЪреЗ рднреАред
- рд╕реНрд▓рд╛рдЗрдб рдбреЙрдЯ рдХреЙрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдХрдИ рд╕реНрд▓рд╛рдЗрдб рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдЯрд╛рдЗрд▓рд┐рдВрдЧ рдкреГрд╖реНрдарднреВрдорд┐, рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
- рдСрдЯреЛ рд╕реНрд▓рд╛рдЗрдб рд╢реЛред
- рдФрд░ рдХреБрдЫ рдЕрдиреНрдп ред
рдЖрдк рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рднреА рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рд╕реНрддреБрддрд┐ рд╕рд░рд▓ рдФрд░ рд╢рд╛рдВрдд рд▓рдЧ рд░рд╣реА рд╣реИ
рдЕрд╕реБрд╡рд┐рдзрд╛
рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рдм рдХреБрдЫ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╢рд╛рдорд┐рд▓ рд╣реИ:
- рдкреАрдбреАрдПрдл рдХреЛ рд╡рдХреНрд░ рдирд┐рд░реНрдпрд╛рдд, рдЖрдкрдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ ред
- PPTX рдХреЛ рдХреЛрдИ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВред
- рдпрд╣ рд╕реАрдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЧреИрд░-рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдЧреИрд░-рдлреНрд░рдВрдЯ-рдПрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ HTML рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдЬрд╛рдирдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред
- рд╕рдВрдкрд╛рджрди рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдПрдореЛрдЬреА рдХреЛ рд╣рдореЗрд╢рд╛ рд╣рд░ рдЬрдЧрд╣ рд╕рдорд╛рди рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ)ред
- рдЗрдВрдЬрди рдЕрднреА рднреА рдирдо рд╣реИред
рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрди
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдпреБрдХреНрддрд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдкрд╕рдВрдж рдЖрдИрдВ:
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдРрд╕реА рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд╣рд┐рдд рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЖрдЗрдП рдЗрд╕реЗ рддреЗрдЬреА рд╕реЗ рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ!
рд╡реИрд╕реЗ, рд╕рднреА рд▓реЗрдЦ GitHub рдпрд╛ GitLab рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП Git рдФрд░ Markdown рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рд▓рд┐рдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╛ рдкрд░рд┐рд╡рд░реНрдзрди рд╣реИрдВ - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдФрд░ рд╕рдВрднрд╡рддрдГ рд▓реЗрдЦ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред

рд▓реЗрдЦ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реНрд╡рдпрдВ GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ - рдпрджрд┐ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдорд┐рд▓рддреА рд╣реИрдВ, рддреЛ рдПрдХ рдирд┐рд╡реЗрджрди рднреЗрдЬреЗрдВред Habr.com рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рд░реНрдХрдХреЛрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред