рдЕрдореВрд░реНрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ "рдирд┐рдХрд╛рд▓рдиреЗ рд╡рд┐рдзрд┐" refactoring рд╡рд┐рдзрд┐

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

рдЬрдм рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛрдб рд▓рд┐рдЦрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЕрдореВрд░реНрдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

"рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред"

рдкрд┐рдЫрд▓реЗ рд╡рд╛рдХреНрдп рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдореВрд░реНрддрддрд╛ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпреЗ рдЪрд╛рд░ рд╕рд╛рд░ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реЛрдВред рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

client.send(request, server); 


рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рджреЗрдЦрдиреЗ рдкрд░ рдкрд╛рдардХ рдХреЗ рдкрд╛рд╕ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рд╣реИрдВред

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

 void sendRequest(Request request) { if (server->error() != Server::errorOk) { // handle } if (request.userName.empty()) { // handle } //  100 if- client.send(request, server); } 


рдореИрдВ рдРрд╕реЗ рдЗрдлрд╝реНрд╕ рдХреЛ рдЗрддрдиреА рдмрд╛рд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╢реЛрд░ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпреЛрджрд╛-рд╕реНрдерд┐рддрд┐) рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди ... рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рд╕реЗрдВрдбрд░рд░реЗрд╕реНрдЯ рдлрдВрдХреНрд╢рди рдореЗрдВ рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ client.send рдХрд┐рд╕реА рднреА рд╕рд░реНрд╡рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рд╣реИ: ErrorStateред рдпреЗ рдЗрдлрд╝реЗ рд▓реЛрдЕрд░-рд▓реЗрд╡рд▓ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрдЯ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ редServerReady () рдФрд░ isRequestValid ()ред рдлрд┐рд░ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:

 void sendRequest(Request request) { if (!isServerReady()) { // handle } if (!isRequestValid(request)) { // handle } //   if' client.send(request, server); } 


SendRequest рдЕрдм рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЛрдб рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рдФрд░ рдЕрдЪреНрдЫрд╛ рд╣реИред рдмреЛрдирд╕ - рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ (рдЖрдИрдкреАрдПрд╕) рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ SendRequest рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЗрди рдмрджрд╕реВрд░рдд рд╕рд░реНрд╡рд░-> рддреНрд░реБрдЯрд┐ ()! = рд╕рд░реНрд╡рд░ :: errorOk рдХреЛ рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рдЬрдм рдореБрдЭреЗ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рддрдм рдореИрдВ isServerReady () рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦреВрдВрдЧрд╛ред рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ?

рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред рдмрдбрд╝рд╛, рдмрдбрд╝рд╛ рд╡рд░реНрдЧред рд╕рднреА рддрд░реАрдХреЛрдВ рд╕реЗ, рдлреЙрд░реНрдо рдХреА рд╕реНрдерд┐рддрд┐ рдмрд┐рдЦрд░реА рд╣реБрдИ рд╣реИ

 if (niceNamedContainer.empty()) { // do some logic } 


рдЬрдм рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдХреЛрдб рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, if (niceNamedContainer.empty()) рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ "рдЕрдЧрд░ GoodNamedContainer рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред" рддреБрд░рдВрдд рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдореИрдВ рдЦреБрдж рдХреЛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реВрдВ: рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдбрд╛рд▓рд╛, рдХрд╣реАрдВ рдФрд░, рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЗрдВ рдЗрд╕реЗ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдирд╣реАрдВред рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрд▓рд╛рд╕ рдХреЛрдб рдХреЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕реМ рдкреНрд░рддрд┐рд╢рдд рдлрд╛рд╡рдбрд╝рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорддрд▓рдм рд╣реИ "рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рд╣реИред" рдЙрд░ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдХреНрд╖рд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ isDataReady () рдкрджреНрдзрддрд┐ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдпрд╣ рдкрд╛рдардХ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рдФрд░ рдЯреЗрд▓реАрдкреИрдерд┐рдХ рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдб рд░реАрдбрд░ рдХреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдореВрд░реНрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред IsDataReady () рд╡рд┐рдзрд┐ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рдЕрдореВрд░реНрдд рдХреЗ рдирд┐рдореНрди рд╕реНрддрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА рд╕реАрдврд╝реА рд╣реИред рдиреАрдЪреЗ рдЬрд╛рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рди рд╣реЛ, рддреЛ рдЖрдк рдиреАрдЪреЗ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХрд┐рд╕реА рдФрд░ рдХреЗ, рдкреБрд░рд╛рдиреЗ, рд╡рд┐рд░рд╛рд╕рдд рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрдЪ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдзрд┐ рдХреЗ рдЪрдпрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдПрдХ рд╕реНрддрд░ рдХреЗ рдЕрдореВрд░реНрдд рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ... рдареАрдХ рд╣реИ, рдПрд╕рдЖрд░рдкреА рдХреЛ рдордд рднреВрд▓рдирд╛ ... рдареАрдХ рд╣реИ, рд▓рд┐рд╕реНрдХреЛрд╡ ... рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди ... рдореИрдХрдХреЛрдиреЗрд▓ рднреА ... рдЕрдзрд┐рдХ рдмрд╛рд░ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

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

рд╕рдВрджрд░реНрдн:
en.wikipedia.org/wiki/Data рдЕрдореВрд░реНрддрддрд╛

рд╕рдВрджрд░реНрдн:
рд╕реНрдЯреАрд╡ рдореИрдХрдХреЛрдиреЗрд▓ред рдХреЛрдб рдкреВрд░рд╛: рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдирд┐рд░реНрдорд╛рдг рдХреА рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреБрд╕реНрддрд┐рдХрд╛ред
рд░реЙрдмрд░реНрдЯ рд╕реАред рдорд╛рд░реНрдЯрд┐рдиред рдХреНрд▓реАрди рдХреЛрдб: рдПрдЧрд╛рдЗрд▓ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреНрд░рд╛рдлреНрдЯреНрд╕рдореИрдирд╢рд┐рдк рдХреА рдПрдХ рдкреБрд╕реНрддрд┐рдХрд╛ред
рдорд╛рд░реНрдЯрд┐рди рдлрд╛рдЙрд▓рд░ Refactoring: рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рд╕реБрдзрд╛рд░

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


All Articles