Swift-style-guide: рдХреЛрд╖реНрдардХ рдХрд╛ рд╡рд┐рд╡реЗрдХрдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрд╖реНрдардХреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдЬреВрди 2017  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: raywenderlich/swift-style-guide

рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рд╕реНрдЯрд╛рдЗрд▓ рдЧрд╛рдЗрдб рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдерди рдиреЗ рд╣рдореЗрдВ рдХреБрдЫ рд╕рд┐рд░рджрд░реНрдж рджрд┐рдпрд╛:

рдмрдбрд╝реЗ рднрд╛рд╡реЛрдВ рдореЗрдВ, рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЛрд╖реНрдардХ рдХрднреА-рдХрднреА рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, _рдмрдбрд╝рд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐_ рдмрд╣реБрдд рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╣реИ рдФрд░ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдЬреЛ рд╕рд╢рд░реНрдд рдмрдпрд╛рдиреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрд╖реНрдардХ рд░рдЦрдиреЗ рдХреЗ рдЖрджреА рд╣реИ, рд╡рд╣ рдЬреЛрд░ рджреЗрдЧрд╛ рдХрд┐ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрдардиреАрдпрддрд╛ рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛ред рдПрдХ рдиреНрдпреВрдирддрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдХреЛрд╖реНрдардХ рдХреЗ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рддрд░реНрдХ рджреВрдВрдЧрд╛ рдпрджрд┐ рдпрд╣ рд╕рд╢рд░реНрдд рдХрдерди рдХреЗ рдЕрд░реНрде рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ @designatednerd рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рднреА рдПрдХ рдиреНрдпреВрдирддрд╛рд╡рд╛рджреА рд╣реВрдВ рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХреЛрдб рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрдардиреАрдп рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рдЕрдиреНрдпрдерд╛, рд╕рдВрдХрд▓рдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ = рдмрд╛рдж рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП let thing = foo ред рдЙрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдХреЛрд╖реНрдардХ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рджреГрд╢реНрдп рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╣реАрдВ рдмрд╛рдж рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ:

let thing = ( /* some short or long logic here, skip it */ ) ? foo : bar

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬрд┐рди рдЬрдЧрд╣реЛрдВ рдкрд░ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрд╛ рд╣реИ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕рдорд╛рдирддрд╛ рдЬрд╛рдВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХрд▓ рдмреВрд▓рд┐рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:

let thing = thingA == thingB
// vs. 
let thing = (thingA == thingB)

рд╡рд╣рд╛рдВ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдХреНрд░рдо рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ thing рдПрдХ рдмреВрд▓рд┐рдпрди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдп " thingA рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛ thingB , рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рджреГрд╖реНрдЯрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рджреВрд╕рд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдкред

рдпрд╣ рдпреМрдЧрд┐рдХ рдХрдердиреЛрдВ рдХреЗ рд╕рд╛рде рднреА рд╕рд╣рд╛рдпрдХ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрднреА-рдХрднреА рд╡реЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХреНрд░рдо рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ рд╣реИрдВ:

if thingC && (thingD || thingE) { ...

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

рдореИрдВ @designatednerd рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рднреА рдПрдХ рдиреНрдпреВрдирддрд╛рд╡рд╛рджреА рд╣реВрдВ рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХреЛрдб рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрдардиреАрдп рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рдЕрдиреНрдпрдерд╛, рд╕рдВрдХрд▓рдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ = рдмрд╛рдж рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП let thing = foo ред рдЙрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдХреЛрд╖реНрдардХ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рджреГрд╢реНрдп рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрд╣реАрдВ рдмрд╛рдж рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ:

let thing = ( /* some short or long logic here, skip it */ ) ? foo : bar

@ samkim102 рдЕрдЧрд░ рдореИрдВ рдЖрдкрдХреЗ рдкреНрд░рд╢реНрди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдврд╝рддрд╛ рд╣реВрдВ, рддреЛ рдЖрдк рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдиреЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, if рдХрдерди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВред

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

рдЕрд╡рд▓реЛрдХрди: рдирд┐рдпрдо рдХреЛ рдХреЗрд╡рд▓ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдореВрд▓ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдВ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛:

// go for a Sunday drive
if (day.isSunday) {
   vehicle.drive()
}

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

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

рдпрджрд┐ рдореБрдЭреЗ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдореВрд▓ рд▓реЗрдЦрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдореИрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

fabienwarniez picture fabienwarniez  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gokselkoksal picture gokselkoksal  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

grosch picture grosch  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  26рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hollance picture hollance  ┬╖  28рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ