рд╕реНрдорд╛рд░реНрдЯ рд╕рдВрдЧреАрдд рд░реЗрдбрд┐рдпреЛ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдпреА рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ

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


  • рдЬрдВрдЧрд▓ рдореЗрдВ рд▓рдЧрднрдЧ рджреИрдирд┐рдХ рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди (рдпрд╛рдиреА рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд┐рдирд╛)ред
  • рд╕рдВрдЧреАрдд рдХреА рд╢реИрд▓реА рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЪреИрдирд▓реЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЬрд╛рдВрдЧреЛ рдХреЗ рд╢реНрд░реЛрддрд╛ рдХреЗ рдкрд╛рд╕ рдирдИ рд╕рдВрдЧреАрдд рд╢реИрд▓рд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

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



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


рдкрдЯрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрдЯрд╛рдбреЗрдЯрд╛, рд╕рд╛рде рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд░реАрдпрддрд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ SQLite рдХреЛ рдЪреБрдирд╛ред рдПрд▓реНрдмрдо рдФрд░ рд╕рдВрдЧреАрдд рдХрд╡рд░ рдлрд╛рдЗрд▓реЗрдВ рддреАрди-рд╕реНрддрд░реАрдп рд╣реИрд╢-рдЖрдзрд╛рд░рд┐рдд рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЯреНрд░реА (Git рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ) рдХреЗ рд╕рдорд╛рди рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╣реИрдВред


512 MiB рдиреЗ рдХреИрд╢ рдЖрдХрд╛рд░ рдХреЛ рдЪреБрдирд╛ (рдпреЗ рдФрд░ рдХреЛрдИ рднреА рдЕрдВрдХ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдкрдЯрд░рд┐рдпреЛрдВ рдХреЗ рд░реЛрдЯреЗрд╢рди рдХрд╛ рддрд░реНрдХ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ: 20 рдЯреНрд░реИрдХ рдкреНрд░рддрд┐ рдЕрдкрдбреЗрдЯ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреНрдпреЗрдХ рдЯреНрд░реИрдХ рдХреЛ рдХрдо рд╕реЗ рдХрдо рджреЛ рдмрд╛рд░ рд╕реБрдирдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдирдпрд╛ рдЕрдкрдбреЗрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреНрд░реИрдХ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдФрд╕рдд рд╕реБрдирдиреЗ рдХрд╛ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛ рд╕реЗ рдХрдо рд╣реИ, рдФрд░ рдирдП рдЯреНрд░реИрдХреНрд╕ рдХрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдбрд╛рдЙрдирд▓реЛрдбрд┐рдВрдЧ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред


рдкрд╛рд░реНрд╢реНрд╡ рддрд░реНрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рдПрдХ рдЯреНрд░реИрдХ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рд╕реБрдирдиреЗ рдХрд╛ рд╕рдордп рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИ, рдЙрддрдиреА рдмрд╛рд░ рдЦреЗрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред


рдПрдХ рдЕрдиреБрднрд╡реА C ++ рдбреЗрд╡рд▓рдкрд░ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдореИрдВрдиреЗ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдореБрдЭреЗ рдЙрдкрдпреБрдХреНрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд▓реЗрдпрд░ (рд╡рд┐рд╢реЗрд╖рдХрд░ UI) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрдИ рдЪреАрдЬреЗрдВ рдЕрдм рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред


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


рдореИрдВрдиреЗ JSON рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдИрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Fetch (рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рдерд╛ рдХрд┐ рдИрдВрдзрди рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ)ред рд╡реИрд╕реЗ, рджреВрд╕рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдореБрдЭреЗ рдХрд╛рдо рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрддреЗрдВ рд╣реИрдВред


рд╕рд░реНрд╡рд░ рдХреЛрдб рдХреЛ рдЧреЛрд▓рдВрдЧ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ PostgreSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдлреНрд░реА рдореНрдпреВрдЬрд┐рдХ рдЖрд░реНрдХрд╛рдЗрд╡ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдЕрдиреНрдп рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЛ рднреА рдЗрдВрдбреЗрдХреНрд╕ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рд╕рд░реНрд╡рд░ рдкрд░ рдЯреНрд░реИрдХ рдЕрднреА рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ (рдореИрдВ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВ), рд▓реЗрдХрд┐рди рд╕реАрдзреЗ рд╕реНрд░реЛрдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рджреЗрдЦреЗрдВред


рд╕рд░реНрд╡рд░ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкрдЯрд░рд┐рдпреЛрдВ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЧреАрдд рд╢реИрд▓реА рдХреЛ рдПрдХ рд╡рд░реАрдпрддрд╛ рд╕реНрдХреЛрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд░реЛрдЯреЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреБрдХреНрдд рд░рдЪрдирд╛рдУрдВ рдХреЛ рдЪреБрдирдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред


рдпрджрд┐ рдЖрдк рдореЗрд░реЗ рдЖрд╡реЗрджрди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ рддреЛ рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЕрдЪрд╛рдирдХ рдЖрдк рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди, рдЖрдк рдмрдЧреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ (рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрднреА рднреА рдХрдЪреНрдЪрд╛ рд╣реИ)ред рдЙрдирдХреЗ рд╕реБрдзрд╛рд░ рдХреА рдЧрддрд┐ рд╕реАрдзреЗ рдореЗрд░реЗ рдХрд╛рдо рдХреА рдорд╛рдВрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреАред

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


All Articles