рдХреГрдкрдпрд╛ рдПрд▓реЛрдХреЗрдВрдЯ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВ

рдореИрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ "рдПрд▓реЛрдХреЗрдВрдЯ рдХреЗ рд╕рд╛рде рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ" рдХреА рд╢реИрд▓реА рдореЗрдВ рд▓реЗрдЦ рджреЗрдЦрддрд╛ рд╣реВрдВ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рд╣рд╛рд▓ рд╣реА рдореЗрдВ PHP рдбрд╛рдЗрдЬреЗрд╕реНрдЯ рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ )ред рдЙрдирдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕рд╛рдордЧреНрд░реА: рдЪрд▓реЛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ PostRepositoryInterface , EloquentPostRepository рд╡рд░реНрдЧ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдмрд╛рдБрдзрддреЗ рд╣реИрдВ рдФрд░ рдорд╛рдирдХ Ekovent рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдвреВрдБрдвреЗрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


рдЗрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ рдХрднреА-рдХрднреА рд╡реЗ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ ("рдпрд╣ рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╣реИ ! рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ!"), рдХрднреА-рдХрднреА рд╡реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди (рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛), рд╕рд╛рде рд╣реА рдкрд░реАрдХреНрд╖рдг рдФрд░ рдореЛрдЪрд╛-рд╕реНрдЯрдмреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рд▓рд╛рд░рд╡реЗрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред


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


рдПрд▓реЛрдХреЗрдВрдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


  1. рджреЛрд╣рд░реА рд╕реБрд╡рдХреНрддрд╛-рд╕рд░рдгреА рднрд┐рдиреНрдирддрд╛
  2. рд╢реБрджреНрдз рд╡рд╛рдХреНрдкрдЯреБ рднрдВрдбрд╛рд░

рджреЛрд╣рд░реА рд╕реБрд╡рдХреНрддрд╛-рд╕рд░рдгреА рднрд┐рдиреНрдирддрд╛


рдкрд╣рд▓реЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд▓реЗрдЦ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛):


<?php interface FaqRepository { public function all($columns = array('*')); public function newInstance(array $attributes = array()); public function paginate($perPage = 15, $columns = array('*')); public function create(array $attributes); public function find($id, $columns = array('*')); public function updateWithIdAndInput($id, array $input); public function destroy($id); } class FaqRepositoryEloquent implements FaqRepository { protected $faqModel; public function __construct(Faq $faqModel) { $this->faqModel = $faqModel; } public function newInstance(array $attributes = array()) { if (!isset($attributes['rank'])) { $attributes['rank'] = 0; } return $this->faqModel->newInstance($attributes); } public function paginate($perPage = 0, $columns = array('*')) { $perPage = $perPage ?: Config::get('pagination.length'); return $this->faqModel ->rankedWhere('answered', 1) ->paginate($perPage, $columns); } public function all($columns = array('*')) { return $this->faqModel->rankedAll($columns); } public function create(array $attributes) { return $this->faqModel->create($attributes); } public function find($id, $columns = array('*')) { return $this->faqModel->findOrFail($id, $columns); } public function updateWithIdAndInput($id, array $input) { $faq = $this->faqModel->find($id); return $faq->update($input); } public function destroy($id) { return $this->faqModel->destroy($id); } } 

рд╕рднреА , рдкрд╛рддреЗ рд╣реИрдВ , рдкреГрд╖реНрдардмрджреНрдз рддрд░реАрдХреЗ рд▓реМрдХрд┐рдХ рд╡рд╕реНрддреБрдПрдВ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрдирд╛рддреЗ рд╣реИрдВ , рдЕрджреНрдпрддрди рдХрд░реЗрдВред IndAndInput рдПрдХ рд╕рд░рдгреА рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред


рдирд╛рдо updateWithIdAndInput рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ "рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА" рдХреЗрд╡рд▓ CRUD рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдЕрдкреЗрдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ:


 <?php class FaqController extends Controller { public function publish($id, FaqRepository $repository) { $faq = $repository->find($id); //...-   $faq->... $faq->published = true; $repository->updateWithIdAndInput($id, $faq->toArray()); } } 

рдФрд░ рдЕрдЧрд░ рдПрдХ рднрдВрдбрд╛рд░ рдХреЗ рдмрд┐рдирд╛:


 <?php class FaqController extends Controller { public function publish($id) { $faq = Faq::findOrFail($id); //...-   $faq->... $faq->published = true; $faq->save(); } } 

рджреЛ рдмрд╛рд░ рдЖрд╕рд╛рдиред


рдХреНрдпреЛрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдВ рдЬреЛ рдХреЗрд╡рд▓ рдЗрд╕реЗ рдЬрдЯрд┐рд▓ рдХрд░реЗрдЧрд╛?


  • рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг?
    рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд▓рд╛рд░рд╡реЗрд▓ рдкрд░ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реАрдЖрд░рдпреВрдбреА рдкрд░рд┐рдпреЛрдЬрдирд╛ 100% рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХреА рдЧрдИ рд╣реИред
    рд▓реЗрдХрд┐рди рд╣рдо рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП?
    рд▓реЗрдХрд┐рди рдПрд▓реЛрдХреЗрдВрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
    рдХрд┐рд╕реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрд╕рдорд░реНрдерд┐рдд рдЖрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдпреЛрдЧреНрдп рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ CRUD рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рджрд░реНрдж рдФрд░ рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреА рд╣реЛрдЧреАред
    рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА, рдЬреЛ рдПрдХ рд╢реБрджреНрдз PHP рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рджрд┐рдЦрддрд╛ рд╣реИред
    рдПрд▓реЛрдХреЗрдВрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ, рд╣рдореЗрдВ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдореВрд░реНрддрддрд╛ рдорд┐рд▓рддреА рд╣реИред

рд╢реБрджреНрдз рд╡рд╛рдХреНрдкрдЯреБ рднрдВрдбрд╛рд░


рдХреЗрд╡рд▓ рдПрд▓реЛрдХреЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рднрдВрдбрд╛рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рдПрдХ рд▓реЗрдЦ рдореЗрдВ рднреА рдкрд╛рдпрд╛ рдЧрдпрд╛):


 <?php interface PostRepositoryInterface { public function get($id); public function all(); public function delete($id); public function save(Post $post); } class PostRepository implements PostRepositoryInterface { public function get($id) { return Post::find($id); } public function all() { return Post::all(); } public function delete($id) { Post::destroy($id); } public function save(Post $post) { $post->save(); } } 

рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рддреНрдпрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдирд╣реАрдВ рдбрд╛рдВрдЯреВрдВрдЧрд╛ред


рдпрд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╡рд┐рд╡рд░рдг рдХрд╣рддрд╛ рд╣реИред


рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реНрдХ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд▓рдЧрддрд╛ рд╣реИ:


 <?php class FaqController extends Controller { public function publish($id, PostRepositoryInterface $repository) { $post = $repository->find($id); //...-   $post->... $post->published = true; $repository->save($post); } } 

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рд░рд▓рддрдо рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рднрдВрдбрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд┐рд▓реМрдирд╛ рд╣реИред


рдЪрд▓реЛ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред


рдЙрдк-рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЗрдХрд╛рдИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрднрд╛рд╡рд┐рдд рдЙрддреНрддрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрд╡реЗрдХреНрд╖рдг (рд╕рд╛рдЗрдЯ рдкрд░ рдпрд╛ рдЪреИрдЯ рдореЗрдВ рдирд┐рдпрдорд┐рдд рдорддрджрд╛рди)ред


рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдмрдирд╛рдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ред рджреЛ рд╡рд┐рдХрд▓реНрдк:


  • PollRepository рдФрд░ PollOptionRepository рдмрдирд╛рдПрдВ рдФрд░ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
    рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдореВрд░реНрдд рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
    рд╕рдВрднрд╛рд╡рд┐рдд рдЙрддреНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдПрдХ рдЗрдХрд╛рдИ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЗрд╕рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЛ рдПрдХ рдкреЛрд▓рд░рдкреЛрд╕рд┐рдЯрд░реА рдХреНрд▓рд╛рд╕ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
    PollOptionRepository :: рд╣рдЯрд╛рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕реЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЙрддреНрддрд░ рд╡рд┐рдХрд▓реНрдк рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдкреЛрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд┐рдХрд▓реНрдк рд╣реИ рддреЛ рд╡рд╣ рдкреЛрд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред
    рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЯреЗрдореНрдкрд▓реЗрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдЕрдВрджрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред
  • рдкреЛрд▓рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдЕрдВрджрд░ рд╕реЗрд╡рдСрдкреНрд╢рди рдФрд░ рдбрд┐рд▓реАрдЯрдУрд╢рди рдореЗрдердб рдЬреЛрдбрд╝реЗрдВред
    рд╕рдорд╕реНрдпрд╛рдПрдВ рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВред рднрдВрдбрд╛рд░рдг рд╕реЗ рдЕрдореВрд░реНрддрддрд╛ рдХрд┐рд╕реА рддрд░рд╣ рдХрд╛ рдирд┐рдХрдореНрдорд╛рдкрди рдмрди рдЬрд╛рддреА рд╣реИ ... рдЙрддреНрддрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
    рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╕рд╛рд░ рдФрд░ рднреА рдЬрдЯрд┐рд▓ рд╣реИ? рдЕрдиреНрдп рдЙрдкрдЬрд╛рддрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде?

рдПрдХ рд╣реА рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рд╣реИ?
рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЕрдзрд┐рдХ рдЕрдореВрд░реНрддрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬреЛ рдПрд▓реЛрдХреЗрдВрдЯ рджреЗрддрд╛ рд╣реИ - рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред


рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг?


рдпрд╣рд╛рдБ рдореЗрд░реА рдкреБрд╕реНрддрдХ рд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - https://gist.github.com/adelf/a53ce49b22b32914879801113cf79043
рд╕рд░рд▓ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрддрдиреА рдмрдбрд╝реА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЖрдирдВрдж рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред


рдореБрдЭреЗ рд▓рдЧрднрдЧ рдпрдХреАрди рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдРрд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред


рдХреЛрдИ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдерд╛, рдореБрдЭреЗ рдкрддрд╛ рд╣реИред


рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдФрд░ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реИред
рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдпрд╣ рдПрдХ рдПрдкреАрдЖрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИред


рдпрджрд┐ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдбреЙрдХреНрдЯреНрд░рд┐рди рдХреА рддрд░рд╣ рдПрдХ рдбреЗрдЯрд╛ рдореИрдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдФрд░ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рддрд░реНрдХ рдХреЛ рдмрд╛рдХреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИред рдпреВрдирд┐рдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг 10 рдЧреБрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред


рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рдПрд▓реЛрдХреЗрдВрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдореЗрдВ рд▓рд┐рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдк рдХреИрд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд╕реЗ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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


All Articles