рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реА рд╣реИред рдпрд╛рдиреА, рдмрд╛рд╣рд░реА рдлрдВрдбрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ :) рдЗрд╕рдореЗрдВ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖ рджреЛрдиреЛрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЬреЛ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдкрд╕рдВрдж рдЖрдпрд╛ рдФрд░ рд╡рд╣ рд╣реИ рдХреБрдЫ рдирдИ рддрдХрдиреАрдХреЛрдВ, рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдФрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ред рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдореИрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд╕рд╛рдЗрдЯ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рдорд┐рд▓реЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдЪреВрдВрдХрд┐ рдореИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реВрдВ рдЬреЛ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд╣ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореЗрд░реА рдХрд╣рд╛рдиреА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧреА)ред
рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрд╛рдХрд┐ рдкрд╛рдардХ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рджрд╛рдВрд╡ рдкрд░ рд╣реИ, рдореИрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдЕрдВрдзреЗрд░реЗ" рдкрд░ рдХреНрдпрд╛ рд╣реИред рдФрд░ рд╡рд╣рд╛рдБ рдЬрд╛рд╡рд╛, MySQL, Neo4J, Jetty, RabbitMQ рдФрд░ рдЗрд╕ рд▓рдВрдмреЗ рдЕрдЬрдЧрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ nginx рд╣реИрдВред
GCL
2010 рдХреЗ рдЕрдВрдд рдореЗрдВ, рд╣рдо, рд╣рдорд╛рд░реЗ "рдмрд╣рд╛рджреБрд░" рд╡реЗрдм-рдЬреЗрдПрд╕ рд╡рд┐рднрд╛рдЧ рдиреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХрдИ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдФрд░ рдХреБрдЫ рдирдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реА рдкрд╛рдЧрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдЙрд╕ рд╕рдордп рд╡рд┐рдЧреЗрдЯреНрд╕ рдФрд░ рд╕реНрдерд╛рдиреЛрдВ (рд╕реНрдерд╛рди) рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рдереАред рд╡рд┐рдЬреЗрдЯ, рд╣рдорд╛рд░реА рд╕рдордЭ рдореЗрдВ, рдХреБрдЫ рд╕реНрд╡рддрдВрддреНрд░ рджреГрд╢реНрдп рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ рдЬреЛ рдЪреИрдирд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдЪреИрдирд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рдЬреЗрдЯ, рдмрджрд▓реЗ рдореЗрдВ, рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдпрд╣ HOUSE рдореЗрдВ рдХрд╣рд╛рдВ рд╣реИ - рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдереА рдХрд┐ рд╡рд┐рдЬреЗрдЯ рдХреБрдЫ рдкреИрдЯрд░реНрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рдерд╛ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рдерд╛ред рд╣рдо рдПрдХ рд╣реА рд╡рд┐рдЬреЗрдЯ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкреНрд░рд╛рдЪреАрди рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдЙрд╕ рд╕рдордп, рд╡реЗрдм-рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕рднреА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд▓реЛрдб рдФрд░ рдХреИрд╢ рдХрд┐рдП рдЧрдП рдереЗ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг js рдХреЛрдб рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдерд╛ - рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рд╕рдордп рдмреАрдд рдЧрдпрд╛ред рд╣рдо рдПрдХ рдирдпрд╛ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЬреЛ рд╣рдорд╛рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреА рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
- рдХреЛрдИ рд╕рд╛рдЗрдХрд┐рд▓ рдирд╣реАрдВ рдереА
- рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдЬрдЯрд┐рд▓рддрд╛ (рдЧреНрд░рдВрдереЛрдВ рдореЗрдВ рдЪрд░ рдбрд╛рд▓рдирд╛ рдЕрд╕рдВрднрд╡ рдерд╛)
- рдХреЛрдИ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдереА рдФрд░ рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рдмрдВрдЯреА рдереАред
рд╣рдордиреЗ рдЙрд╕ рд╕рдордп рдХреЗ рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдФрд░ Google рдХреНрд▓реЛрдЬрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА (GCL) рдХреЛ рдЪреБрдирд╛ ... рд╣рд╛рдВ, рдореБрдЭреЗ рддрдм рднреА рдкрддрд╛ рдирд╣реАрдВ рдерд╛ рдХрд┐ Google рддрдХрдиреАрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ :)
рдЙрд╕ рд╕рдордп рддрдХ, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рдереЗ:
- ~ 500 js рдлрд╛рдЗрд▓реЗрдВ
- ~ 30 рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓реЗрдВ
- ~ 300 рдкреИрдЯрд░реНрдиред
рдЙрддреНрддрд░ рдХреНрд▓реЛрдЬрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдПрдХреАрдХреГрдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рд╣рдо рдЪрд╛рд╣рддреЗ рдереЗ:
рдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рд╕рдВрдХреБрдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕реЗ рдЙрдиреНрдирдд рдореЛрдб рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
- рдореГрдд рдЬреЗрдПрд╕ рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдиреЗ
- рд╕реАрдПрд╕рдПрд╕ рд╕рдВрдХреБрдЪрд┐рдд рдФрд░ рдорд╛рдиреНрдп рдереЗ
- рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдЧреНрд░рд╛рд╣рдХ рдХреА рдУрд░ рд╕реЗ рдЬрд╛рдВрдЪрд╛, рд╕рдВрдкреАрдбрд╝рд┐рдд рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
- рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЖрд╕рд╛рди рдЕрдиреБрд╡рд╛рдж
рдЙрд╕ рд╕рдордп рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдореМрдЬреВрдж рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдиреЗ рдПрдХ рдЪреАрдЬ рджреА, Google рдиреЗ рддреАрди рд╕рдВрдмрдВрдзрд┐рдд рд╕рдорд╛рдзрд╛рди рджрд┐рдП: рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░, рдХреНрд▓реЛрдЬрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рдХреНрд▓реЛрдЬрд░ рд╕реНрдЯрд╛рдЗрд▓реНрд╕рд╢реАрдЯреНрд╕, рдЬреЛ рджреЛрдиреЛрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдФрд░ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдФрд░, рдЬрдм рд╡реЗ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдмрд╕ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛрддрд╛ рд╣реИ!
рдЬреЗрдПрд╕ рдХреЛрдб рдмрджрд▓реЗрдВ
рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдордиреЗ рд╢реБрд░реВ рдХреА рдереА рд╡рд╣ рд╣рд░ рдЬрдЧрд╣ js рдирд┐рд░реНрднрд░рддрд╛ рдереА ... goog.require ... рдпрд╣ рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рдерд╛, рдЗрд╕рдореЗрдВ рд▓рдЧрднрдЧ 1 рдорд╣реАрдиреЗ рдХрд╛ рд╕рдордп рд▓рдЧрд╛ред рдирддреАрдЬрддрди, рд╣рдордиреЗ рдирдИ рдЬреЗрдПрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рддрд░реНрдХ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕рд░рд▓ рдХрд┐рдпрд╛ рд╣реИ - рдмрд╕ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рд▓реЛрдб рдХрд░реЗрдЧрд╛ред
Google рдЕрдкрдиреА рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ Google рдореЗрдВ рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реАрдзреЗ (рдЬреА + рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдПрдХреНрд▓рд┐рдкреНрд╕ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдЙрдирдХрд╛ рдкреВрд░реНрдг рдмрдВрдж рд╕рдорд░реНрдерди рд╣реИред
рд╣рдордиреЗ рдПрдХреНрд▓рд┐рдкреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдмрд┐рд▓реНрдб рдЗрд╡реЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреА рдереА, рдЬреЛ рд╣рд░ рдмрд╛рд░ рдЬрдм рд╣рдо рдЬреЗрдПрд╕ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреНрд▓реЛрдЬ рдХреЗ рд▓рд┐рдП рдбрд┐рдкреНрдЯреАрдЬ рдирд┐рд░реНрднрд░рддрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред рдЙрд╕ рд╕рдордп, рдпрд╣ рдкреНрд░рдерд╛ рдРрд╕реА рдереА рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╡рд▓рдкрд░ рдХреА рдорд╢реАрди рджреНрд╡рд╛рд░рд╛ рд╕рдВрдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдЯреЙрдордХреИрдЯ, рдорд╛рдИрд╕реНрдХреНрд▓, рдорд╛рдХ рдмреНрд░реЛрдХрд░, рдЖрджрд┐) рдХреЛ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдиреЗ 6 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рдХреА рдФрд░ рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рдбреЗрдврд╝ рд╕реЗ рджреЛ рдорд┐рдирдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЪреБрдкрдЪрд╛рдк nsx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ js, css, img рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реНрдерд╛рдиреАрдп рд╕рдореАрдкрддрд╛ рдореЗрдВ рдЪрд▓реЗ рдЧрдП, рдЬрд┐рд╕рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬреА рдЖрдИред рдФрд░ рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдердХрд╛рдК рдерд╛ рдЬрдм рддрдХ рдХрд┐ рдЧреНрд░рд╣рдг рдЯреЙрдордХреИрдЯ рдХреЛ рдирд╣реАрдВ рдорд╛рд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡рд╣ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗред
рд╕реАрдПрд╕рдПрд╕ рд╕реЗ рдЬреАрдПрд╕рдПрд╕ рдХреЗ рд▓рд┐рдП рдкрд▓рд╛рдпрди
GSS рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде LESS рдХреЗ рд╕рдорд╛рди рд╣реИред
рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ, рд╣рдордиреЗ css рд╕реЗ gss рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЧреИрд░-рдорд╛рдирдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдиреЗ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд▓рд╛ рджреАрдВ, рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдмрд╕ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдЬреАрдПрд╕рдПрд╕ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдореИрдВ рд╕реБрдЭрд╛рддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рдЕрдкрдиреЗ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рддреБрд░рдВрдд рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдФрд░ рдорд┐рдХреНрд╕рд┐рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА рдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдЬрд░реВрд░реА рдерд╛ рдХрд┐ рдХреМрди рд╕реА рдЬреАрдПрд╕рдПрд╕ рдлрд╛рдЗрд▓реЗрдВ рдмрджрд▓ рдЧрдИрдВ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдЬреАрдПрд╕рдЯреА-> рд╕реАрдПрд╕рдПрд╕ рдмрд╛рдпрд▓рд░ рдХреЙрд▓ рдХрд░реЗрдВ
SOY рдкреНрд░рд╡рд╛рд╕рди
SOYs рдХреНрдпрд╛ рд╣реИрдВ? рдпреЗ html рд╕рдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ js рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реИрдВред рдпрд╣ рд╕рднреА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХреИрд╢рд┐рдВрдЧ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
рдЗрди рд╕рднреА рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдкреБрд░рд╛рдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ SOY (рдХреНрд▓реЛрдЬрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯреНрд╕) рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ред SOY рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдкрд░реАрдХрдерд╛ рдмрди рдХрд░ рд░рд╣ рдЧрдИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рджреГрд╢реНрдп рднрд╛рдЧ рдХреЛ рддрд░реНрдХ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕реЗ js рдХреЛрдб рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрднрд░рддрд╛ (goog.require) рдбрд╛рд▓рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ SOY рдХрд╛ рдПрдХ рдирд╛рдо рд╕реНрдерд╛рди рд╣реИ, рд╣рдордиреЗ рддреБрд░рдВрдд рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдирд╛рдорд╕реНрдерд╛рди рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдВрдЧреЗ - рдЬреИрд╕реЗ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВред
рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди рд╕рдордп рд╣реИ - рдХреЛрд░ i7 3770K рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рд╕рднреА рдЬреАрдПрд╕рдПрд╕ рдФрд░ рд╕реЛрдпрд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ 20 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдИ рдЬреЛ рдмрджрд▓реЗ рд╣реБрдП рдЬреАрдПрд╕ рдФрд░ рд╕реЛрдпрд╛ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреА рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреА рд╣реИ - Google рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рдРрд╕реЗ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЕрджреНрдпрддрди: рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЕрдиреБрдХреВрд▓рди рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рдВрдХрд▓рди рд╕рдордп (рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ) рдЕрдм 8-9 рд╕реЗрдХрдВрдб рд╣реИред
рд╕рдВрдШ
рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ - рдЗрди рддреАрдиреЛрдВ рддрдХрдиреАрдХреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛, рдФрд░ рдпрд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХрд┐ рдпрд╣ рд╕рдм рдХреНрдпрд╛ рдерд╛ред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдХреБрдЫ рдмрд╛рд░реАрдХрд┐рдпрд╛рдБ рд╕рд╛рдордиреЗ рдЖрдИрдВ: css рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реАрдзреЗ 'display1' рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп js рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ goog.getCssName ('display1') рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, $ element.addClasss ('display1') рдХреЛ рд╣рдореЗрдВ $ element.addClasss (goog.getCssName ('display1')) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪрд░реЛрдВ рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ goog.getCssName (...) рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, goog.getCssName ('рдбрд┐рд╕реНрдкреНрд▓реЗ' + рд╡реИрд▓реНрдпреВ) рд░реЛрд▓ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ :), рдЬреИрд╕рд╛ рдХрд┐ goog.getCssName ('рдбрд┐рд╕реНрдкреНрд▓реЗ 1 рдХреНрд▓реАрдпрд░рдлрд┐рдХреНрд╕') рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реБрдИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рд╕рдВрдХрд▓рди рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ - рддрд╛рдХрд┐ рд╡реЗ рдЧреИрд░-рд╕рдВрдХреБрдЪрд┐рдд рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдХреЛ рддреБрд░рдВрдд "рдкреНрд░рджрд░реНрд╢рди -" + рдорд╛рди рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред SOYs рдореЗрдВ, рдЖрдкрдХреЛ рдЙрди рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдХреБрдЪрд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, {css display1}, рдЖрджрд┐ред рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рдХреЛрдбрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд░рдХ рдореЗрдВ рдерд╛ ... рд╣рдо рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рдереЗ, рдЕрдВрдд рдореЗрдВ рд╣рдореЗрдВ рдПрдХреНрд▓рд┐рдкреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдорд┐рд▓рд╛ рдЬрд┐рд╕рдиреЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣рд▓ рдХрд┐рдпрд╛ред (Http://www.normalesup.org/~simonet/soft/ow/eclipse-closure-templates.en.html)ред
рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
- рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдФрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЬрд╛рдБрдЪ SOY
- рдиреЗрд╕реНрдЯреЗрдб рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╣реА рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪред рдЧреБрдо рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░
- Ctrl рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреНрд╡рд░рд┐рдд рдиреЗрд╡рд┐рдЧреЗрд╢рди
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдкреНрд▓рдЧрдЗрди рдХреЛрдбрд░ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд░реНрдЧ рд╕реЗ рдПрдХ рдордиреНрдирд╛ рдмрди рдЧрдпрд╛ рд╣реИред SOY - рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдХреЛ рдЦреЛрд▓ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд┐рдореНрдореЗрджрд╛рд░реА рднреА рдмрдврд╝рд╛рддрд╛ рд╣реИред рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж, рд╣рдордиреЗ рд╕реЛрдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд┐рдирдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЬреИрд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рдирдВрдмрд░ рдореЗрдВ рдмрджрд▓рдирд╛ рдФрд░ рдЧреЛрд▓рд╛рдИред SOY рдХреЗ рд╕рд╛рде рдЧрд▓рддрдлрд╣рдореА рдЕрднреА рд╢реБрд░реВ рд╣реБрдИ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдордиреЗ рд╕рд░реНрд╡рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдПрдХ рдирдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╡рд┐рд╖рдпреЛрдВ рдФрд░ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рд╛ред рдкреБрд░рд╛рдиреЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдирдП рд░реВрдк рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рдХрдирд╡рд░реНрдЯрд░ рд▓рд┐рдЦрд╛ ...
рдЕрд▓рдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ SOY рдХреЗ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде, рдПрдХ рдЕрд▓рдЧ рдЧреАрдд, Google рдХрд╣рддрд╛ рд╣реИ: "рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред" рд╡рд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдареАрдХ рд╣реИ, рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдЙрдкрдХрд░рдг :), рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдк xlf рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рд╕реЛрдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдБ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреБрд░рд╛рдиреЗ рдЕрдиреБрд╡рд╛рджрд┐рдд xlfs рдХреЛ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╣рд╛рдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдирд╣реАрдВ рд╣реИрдВ ... рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдмреБрд░рд╛ рд╕рдкрдирд╛ рд╣реИ! рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдХреБрдЫ рднрдпрд╛рдирдХ рд╕реЗрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреА рдЕрдкрдиреА рдЖрдИрдбреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдкрд░рд┐рд╖реНрдХреГрдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдХрд┐ Google рдХреНрд▓реЛрдЬрд░ рдореЗрдВ рднреА рдЬрдирд░реЗрдЯрд░ рд╡рд░реНрдЧ рдХреЛ рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ... рдлрд┐рд░ рд╕реЗ рд╣рдордиреЗ рдЙрдкрдХрд░рдг рд▓рд┐рдЦреЗ, рдЬрд┐рд╕рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
рд╣рдореЗрдВ рд╕рднреА рдЬреЗрдПрд╕ рдЬреЗрдПрд╕ рдкреЗрдЬреЛрдВ рд╕реЗ рдХреЛрдб рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рднреА рдирд┐рдХрд╛рд▓рдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдерд╛ ...
рдЕрдВрддрд┐рдо рдЧрдврд╝
рд╣рдорд╛рд░реА рдпрд╛рддреНрд░рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдХ рдФрд░ 7 рдорд╣реАрдиреЗ рдмреАрдд рдЪреБрдХреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рдереЗ, рддреАрди рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрдиреЗрдХреНрд╢рди, рд▓реЗрдХрд┐рди рдЙрдиреНрдирдд рдореЛрдб рдореЗрдВ рд╕рдВрдкреАрдбрд╝рди рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ :) рдлрд┐рд░, рдЗрд╕ рддрдереНрдп рд╕реЗ рдЬреБрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ рдХрд┐ jQuery рдФрд░ рдХрдИ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЙрдиреНрдирдд рд░реВрдк рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдореЛрдб, рдмрд╛рд╣рд░реА рд▓рд┐рдЦрдиреЗ рдФрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рд╣рдордиреЗ jQuery рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛, рдЕрдм рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ SOY рдореЗрдВ js рдХреЙрд▓реНрд╕ рдХреЛ рднреА рдХреБрдЫ рдЕрдпреЛрдЧреНрдп рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЬреАрд╕реА рдСрдирдХреНрд▓рд┐рдХ рдореЗрдВ рд╕реАрдзреЗ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ 0 рд╕реЗ рдЬреАрд╕реА рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЯрди рдкреБрд░рд╛рдирд╛ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ Export.jpg рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИред рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрд╛рд╣рд░реА рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛:
global_export["showLoginDialog"] = function(event, elem) {
рд╣рдо рдлреЙрд░реНрдо рдлрд╝рдВрдХреНрд╢рди (рдШрдЯрдирд╛, рдпрд╣ ...) рдХреЗ рд╕рднреА рдРрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдкрд╣рд▓реЗ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЬреЛ рднреА рд╣реЛред
рдирд┐рд░реНрдпрд╛рдд рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ 20-30 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдереА), рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЬреАрд╕реАрд╕реА (Google рдХреНрд▓реЛрдЬрд░ рдХрдВрдкрд╛рдЗрд▓рд░) рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рджреБрдЦрдж рддрдереНрдп рд╕рд╛рдордиреЗ рдЖрдпрд╛ рд╣реИред GCC рдПрдХ рдЙрдиреНрдирдд рдореЛрдб рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ "рдЙрджреНрдзрд░рдг" рдпрд╛ 'рдХреЗ рд╕рд╛рде "рдкрд┐рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдмрд╛рд╣рд░реА рдкреНрд▓рдЧ-рдЗрди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдмрдбрд╝реА рдирд┐рд░рд╛рд╢рд╛ рдпрд╣ рдереА рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдПрдкреАрдЖрдИ рдкрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдпрд╣ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрд╛рдж рдврд╣ рдЧрдпрд╛, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдлреЗрдВрдХ рджрд┐рдпрд╛ ...
рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, Google рд╕реНрд╡рдпрдВ JSON рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░рдгрд┐рдпрд╛рдБред рдкрд╣рд▓реЗ рддреЛ рд╣рдореЗрдВ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдкреНрд░реЛрдЯреЛрдмреНрдпреВрдл рд╣реИ - рд╣рдордиреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдпрд╛ рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдирд╣реАрдВ рдерд╛, рд╡реЗ рд╕рд┐рд░реНрдл рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЬрдм рдбреЗрдЯрд╛ рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЗрд╕реЗ рдХреБрдЫ MessageFactory рдХреЛ рдЦрд┐рд▓рд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдореЗрдЯрд╛ рдбреЗрдЯрд╛ (ProtoBuf рдореЗрдЯрд╛ рдбреЗрдЯрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рддрддреНрд╡реЛрдВ рдХреЛ рд╡рд╕реНрддреБ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк Google рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рдВрдкреАрдбрд╝рди рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рдж рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЧрддрд┐ рднреА рдмрдврд╝ рдЬрд╛рдПрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рддреЗрдЬ рд╣реИ)ред
рд╣рдордиреЗ Google рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛? рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд░рд╛рдиреЗ рдХреЛрдб рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╣рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рд▓реЗрдХрд┐рди рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред
рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЦреЛрдЬ рдЗрд╕ рддрдереНрдп рдХреА рдУрд░ рд▓реЗ рдЧрдИ рдХрд┐ рдЬреАрд╕реАрд╕реА рдирд╛рдо рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдПрдХ рдирдХреНрд╢рд╛ "рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдкреБрд░рд╛рдирд╛ рдХреНрд╖реЗрддреНрд░": "рдирдпрд╛ рдлрд╝реАрд▓реНрдб рдирд╛рдо" рджреЗ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рд╕рд░реНрд╡рд░ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рддрд╛рдХрд┐ рдпрд╣ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХреЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдХреНрд╖рд╛ рдХреЛ 5 рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣рд╛рдБ рдПрдХ рдирдЬрд╝рд░ рд╣реИ:
public interface Constants { public static final String typeId = "typeId"; public static final String user_id = "user_id"; public static final String items = "items"; .... }
рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдиреЗ рдЙрд╕ рдирдХреНрд╢реЗ рдХреЛ рд▓рд┐рдпрд╛ рдЬреЛ рдЬреАрд╕реАрд╕реА рдиреЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛, рдФрд░ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдоред рд▓реЗрдХрд┐рди, рдЬрдм рд╣рдордиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХреБрдЫ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ json рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдорд╛рдирд╡реАрдп рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ ... рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦреЗрддреЛрдВ рдХреЗ рдирд╛рдо рдХреЛ рдмрджрд▓рдирд╛, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИред рдкрд░рд┐рд╡рд░реНрддрди, рдФрд░ рдЪреВрдВрдХрд┐ js рдХреЛрдб рдХреЗ рд╣рд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдирдХреНрд╢рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдиреНрд╡рд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдерд▓-рдкреБрдерд▓ рдерд╛ ... рдФрд░ рдлрд┐рд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ - рдЖрдЦрд┐рд░рдХрд╛рд░, рдЬреАрд╕реАрд╕реА рди рдХреЗрд╡рд▓ рдПрдХ рдирдХреНрд╢рд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯреНрд╕ рдХреНрд▓рд╛рд╕ рд▓реА, рдЗрд╕реЗ рдореИрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛, рдЗрд╕реЗ рдЬреАрд╕реАрд╕реА рдХреЛ рдЦрд┐рд▓рд╛рдпрд╛, рдЗрд╕рдиреЗ рд╕рднреА рдХреЛрдб рдХреЛ рдХрдВрдкреНрд░реЗрд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рд╕реЗ рдЬреБрдбрд╝реЗ рдлреАрд▓реНрдб рдирд╛рдореЛрдВ рдХреЛ рдирд╣реАрдВ рдЫреБрдЖред рдЬрдм рддрдХ рд╣рдордиреЗ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рдЕрдЬреАрдм рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рддрдм рддрдХ рд╕рдм рдХреБрдЫ рдареАрдХ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдЖрдЗрдЯрдо" рдлрд╝реАрд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "рдЖрдЗрдЯрдо" рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдФрд░ рдЗрд╕реЗ "рдЖрдЗрдЯрдо 1" рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрдард┐рдирд╛рдИ рдпрд╣ рдереА рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдПрдХ рдШрдбрд╝реА рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ред рдореБрдЭреЗ GCC рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд▓реЗрдирд╛ рдерд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рддрд╣рдд рдЪрд▓рд╛рдирд╛ рдерд╛, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрджрд┐ рдЖрдк рдХрд╣реАрдВ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ ("рдпрд╛ ')" <property_name> "рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдХрд▓рдХ рдЖрдкрдХреЗ рдЪрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рднрд▓реЗ рд╣реА" рдЖрдЗрдЯрдо: рдЖрдЗрдЯрдоред "рдЬреАрд╕реАрд╕реА рдЯреНрд░реИрдХрд░ рдореЗрдВ рдмрдЧ рдмрдирд╛рдиреЗ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХрд▓-рдкрдВрдХреНрддрд┐ рдкреИрдЪ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдЕрдкрдиреЗ рдЬреАрд╕реАрд╕реА рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдФрд░ рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХреБрдЪрд┐рдд рдХрд░ рджрд┐рдпрд╛ред
рд╕реНрд░реЛрдд рдХрд╛ рдирдХреНрд╢рд╛
рддрдм рд╣рдордиреЗ рд╕рдВрдХреБрдЪрд┐рдд рдФрд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдЕрд╕рдВрдЧрдд рдПрдмреНрд╕ рдХреЗ рдЗрд╕ рдвреЗрд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЗ рдирдХреНрд╢реЗ рдХреЛ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ (рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЕрдкрдиреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рднреА рд▓рд┐рдЦрдиреА рдкрдбрд╝реА, рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЬреАрд╕реАрд╕реА рдЕрдВрдд рдореЗрдВ рдПрдХ рд╕рдВрдХреБрдЪрд┐рдд рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИред
, рдареАрдХ рд╣реИ, рдпрд╛ рддреЛ рд╣рдо рд▓рдХреНрд╖реНрдп рдХреЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЗрддрдиреЗ рдердХ рдЧрдП рдереЗ рдХрд┐ рд╣рдордиреЗ рдЗрд╕ рдЖрдЗрдЯрдо рдХреЛ рдкреНрд░рд▓реЗрдЦрди (рдЕрд▓реНрдк) рдореЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред
рдкрд░рд┐рдгрд╛рдо
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛:
рдЕрд╕рдВрдкреАрдбрд╝рд┐рдд 1.6 рдПрдордмреА рдЬреЗрдПрд╕ рдХреЛрдб + 1.4 рдПрдордмреА рдЯреЗрдореНрдкрд▓реЗрдЯ ~ 3.0 рдПрдордмреА
рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдкреАрдбрд╝рди рдореЛрдб рдореЗрдВ 38 рдореЙрдбреНрдпреВрд▓ рдЬрд╝рд┐рдк 445Kb рдореЗрдВ 2830 KB рд╡рдЬрди рдХрд░рддреЗ рд╣реИрдВ
266KB рдЬрд╝рд┐рдк рдореЗрдВ рдЙрдиреНрдирдд рд╕рдВрдкреАрдбрд╝рди рдореЛрдб рдореЗрдВ 1175 KB 38 рдореЙрдбреНрдпреВрд▓
рд╕рд╛рдЗрдЯ рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рднрд▓реЗ рд╣реА рд╣рдордиреЗ рдЙрд╕ рдкрд░ 12 рдорд╣реАрдиреЗ рдмрд┐рддрд╛рдП рд╣реЛрдВред рдЙрд╕реА рд╕рдордп, рд╣рдо рдХрд╛рдо рдкрд░ рдХрд╛рдо рд╣рд▓ рдХрд░ рд░рд╣реЗ рдереЗ рдФрд░ рдзреАрд░реЗ-рдзреАрд░реЗ рд▓рдХреНрд╖реНрдп рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реЗ рдереЗ ...
рдпрд╣ рдкреВрд░реА рдХрд╣рд╛рдиреА рдЗрд╕рд▓рд┐рдП рд▓рд┐рдЦреА рдЧрдИ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХреЗрдВ рдХрд┐ рдпреЗ рд╕рднреА рд╢рд╛рд░реАрд░рд┐рдХ рд╣рд▓рдЪрд▓реЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд╛рдпрдХ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рд╣рдордиреЗ GC рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рдЕрднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХреА рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХрдо рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреА, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЯрди рдкреБрд░рд╛рдирд╛ рдХреЛрдб рд╣реИ, рддреЛ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджреЗрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИред
рдФрд░ рдХреЛрдбрд░ рдХреЛ SOY рдкрд░ рдкреНрд░рд▓реЗрдЦрди рд▓рд┐рдЦреЗрдВ рддрд╛рдХрд┐ рд╡рд╣ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди рд▓рд┐рдЦ рд╕рдХреЗ, рдЗрд╕рд╕реЗ рдЙрд╕реЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА рдФрд░ рдЗрд╕реЗ рддреЗрдЬреА рд╕реЗ рд╕рдордЭ рд╕рдХреЗрдЧрд╛ред (рд╣рдорд╛рд░реЗ рдХреЛрдбрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ :)
рдкреБрдирд╢реНрдЪ: рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рддреЛ рд╣рдо Google рдбреЙрдХреНрд╕ рдореЗрдВ рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬ, рдФрд░ JIRA рдореЗрдВ рдмрдЧ рд░рдЦрддреЗ рд╣реИрдВред
рдЙрдкрдХрд░рдг
рд╣рдо рдЬреАрд╕реАрдПрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдвреЗрд░ рдХреНрдпреЛрдВ рдЦреЛрд▓рддреЗ рд╣реИрдВ?
рдареАрдХ рд╣реИ, рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рд╕реНрд╡рдпрдВ, рд▓реЗрдХрд┐рди рдмрд┐рдирд╛ рдмреИрд╕рд╛рдЦреА рдЙрдкрдХрд░рдг рдХреЗ, рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ рдХрд┐рд╕реА рдХреЛ рднреА рдирд╣реАрдВ рджреЗрддреЗ рдереЗред рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдорд╣рд╛рди рд╕рд╛рдЗрдЯреЗрдВ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпреЗ рд╕рдорд╛рдзрд╛рди рдорджрдж рдХрд░реЗрдВрдЧреЗред рдЦреИрд░, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рд╕рд┐рд░реНрдл рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ :)
рддреЛ, рдЖрдкрдХреЛ рдХреНрд▓реЛрдЬрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдЬреАрд╕реАрдПрд▓ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд╛рд░ рдмрд┐рдВрджреБ рд╣реИред
OS: Linux OS, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм OS X (BSD) рдкрд░ред рд╕рдВрдкреВрд░реНрдг рд╡рд┐рдВрдбреЛрдЬ рдкрд░рд┐рд╡рд╛рд░ (рдореБрдЭреЗ рдЖрдкрдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЗрд╡рд▓ рдЦреЗрдж рд╣реИ :)) рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╢реЗрд▓ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдмрдЧрд╝рд▓ рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрд╛рд╡рд╛ 1.6 рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг, рдЪреАрдВрдЯреА, рдмрд╛рд╢ / рд╢ рдФрд░ рдЕрдЬрдЧрд░ред
рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреИрд╢ рдореЗрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ, рдХреБрдЫ рдЬрд╛рд╡рд╛ рдореЗрдВред
рдЕрдЬрдЧрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ? рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд╡рд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ :)
рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдЬрд▓реНрджреА рд╢реБрд░реВ рдХрд░реЛ
git рдХреНрд▓реЛрди рдХреНрд▓реЛрди github.com/DisDis/ClosurePlatform.git
рд╕реАрдбреА рдХреНрд▓реЛрдЬрд░рдкреНрд░реЛрдлрд╝рд░
рдЪреАрдВрдЯреА
рд╣рдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ WebUI / index.html рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛
рдЕрдм рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗред
рд╕реАрдкреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛:
- src - рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреЗрд╡рд▓ Constants.java
- рд╡рд┐рд╖рдпреЛрдВ - рд╡рд┐рд╖рдпреЛрдВ, рдЬрд╣рд╛рдВ gss, рд╕реЛрдпрд╛ рдФрд░ рд╕реНрдерд╛рди рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВред
- рдЬреАрдПрд╕рдПрд╕ - рд╢реИрд▓рд┐рдпреЛрдВ
- реж-рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ .gs - рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ
- * .gss - рд╢реИрд▓рд┐рдпрд╛рдБ
- allow.cfg - рдЕрдиреБрдордд рдкреИрд░рд╛рдореАрдЯрд░
- allow_prop.cfg - рдЕрдиреБрдордд рдЧреБрдг
- рдлрд┐рдХреНрд╕реНрдбред рдПрдлрдПрдлрдЬреА - рдРрд╕реЗ рдирд╛рдо рдЬреЛ рд╕рдВрдХреБрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ
- .timestamp рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдЕрдВрддрд┐рдо рд╕рдлрд▓ gss рд╕рдВрдХрд▓рди рдХрд╛ рд╕рдордп рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИ
- рд╕реНрдерд╛рди - xlf рдЕрдиреБрд╡рд╛рдж
- * .xlf - рдЕрдиреБрд╡рд╛рдж
- рдЦрд╛рд▓реА .xlf.template - рдЦрд╛рд▓реА рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ
- рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ - рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕
- (рдирд╛рдо рд╕реНрдерд╛рди) - рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкрде
- Global.properties - рд╡реИрд╢реНрд╡рд┐рдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдерд┐рд░рд╛рдВрдХ
- .timestamp рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╕реЛрдпрд╛ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреА рд╣реИ
- рдЙрдкрдХрд░рдг - рдЙрдкрдХрд░рдг
- WebUI - рдореВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдкрд░ рдХреНрдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрджрд┐ рдЖрдк рдПрдХ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ)
- рдЬреЗрдПрд╕ - рдХреЛрдб
- рдереАрдореНрд╕ - рд╕рдВрдХрд▓рд┐рдд рдереАрдо рдбреЗрдЯрд╛
- рд╕реАрдПрд╕рдПрд╕
- js - рд╕рдВрдХрд▓рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ
- img, рдбреЗрдЯрд╛ - рд╡рд┐рд╖рдп, рдЪрд┐рддреНрд░ рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ред
- * .рдПрдЪрдЯреАрдПрдордПрд▓ - stanichki
- build.soy.xml - рдпреЗ рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдВрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╣реИрдВред
рд╕рдорд╛рдпреЛрдЬрди
рдЙрдкрдХрд░рдг рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ config.properties рдлрд╝рд╛рдЗрд▓ рд╣реИ
рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ:
TIMESTAMP_FNAME=".timestamp" DEFINITION_GSS="0-definitions.gss" THEMES_PATH=$DIR/../themes THEME_LOCALES="en,ru" LOCALE_SOURCE="en" WEB_ROOT_PATH=$DIR/../WebUI WEB_THEMES_PATH=$WEB_ROOT_PATH/themes TOOL_LOCALE_PATH=$DIR/cl-templates/extractor TOOL_MERGE_PATH=$DIR/merge-xlf
$ DIR рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ рдЬреЛ рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
DEFINITION_GSS рдкреИрд░рд╛рдореАрдЯрд░ рдЙрд╕ gss рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд░рдЦреА рдЬрд╛рдПрдВрдЧреАред
THEMES_PATH - рдереАрдо рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдкрде (рд╕рдВрдХрд▓рд┐рдд gss рдФрд░ рд╕реЛрдпрд╛ рдирд╣реАрдВ)
THEME_LOCALES - рд╕рдорд░реНрдерд┐рдд рд╕реНрдерд╛рдиреАрдпрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА
LOCALE_SOURCE - рд╕реЛрдпрд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдЧреНрд░рдВрде рдХрд┐рд╕ рд▓реЛрдХреЗрд▓ рдореЗрдВ рд╣реИрдВ
WEB_THEMES_PATH - рдлрд╝реЛрд▓реНрдбрд░ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд gss рдФрд░ рд╕реЛрдпрд╛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛
SOURCE_MAP_ROOT - рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдкрде, рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдЬрд╣рд╛рдБ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ nginx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рдкреЗрдЯрдирд╛ рдЖрд╕рд╛рди рд╣реИред
SOURCE_MAP_FULLPATH - рдареАрдХ рд╣реИ, рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрд╕рдореНрдкреАрдбрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкреВрд░реНрдг рдкрде рд╣реИ
MODULE_PATH - рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдкрде
рдЕрдиреНрдп рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдЗрддрдиреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВред
рдЧреНрд░рд╣рдг рдпрд╛ рдЕрдиреНрдп рдЖрдИрдбреАрдИ
SOY рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рд╣рдо рдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
SOY рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ, рдЬрд╝реЗрдирдХрд┐рдВрдЧ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИред
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрд╕ рдкрд░ рдЪреАрдВрдЯреА рд╕реЛрдпрд╛_рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдирд╛ рдЬреЛрдбрд╝реЗрдВ
рд╕реНрдерд╛рдиреАрдпрдХрд░рдг
рдкрд╣рд▓реЗ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХрд░реЗрдВред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ, рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ, рдЖрдк рдмрд╕ рдЦрд╛рд▓реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред xlf.template, рдЙрдиреНрд╣реЗрдВ рдХреЙрдкреА рдХрд░рдХреЗ рдЙрдирдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ рдЙрдкрдпреБрдХреНрдд рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: en.xlf, рдХреЗрд╡рд▓ рдЖрдкрдХреЛ рд▓рдХреНрд╖реНрдп-рднрд╛рд╖рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рдЕрдВрджрд░ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред
рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдЧреНрд░рдВрдереЛрдВ рдХреЛ рд╕реЛрдпрд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВ, рддреЛ create.translate.sh рдЪрд▓рд╛рдПрдВ
рдпрд╣ рдЙрдкрдХрд░рдг рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдпрд╣ рд╕рднреА рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╕реЗ рд╕реЛрдпрд╛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрдирд╕реЗ рдПрдХ xlf рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдпрд╣ рдкреБрд░рд╛рдиреА xlf рдлрд╝рд╛рдЗрд▓ рдФрд░ рдЕрдиреБрд╡рд╛рдж рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП desc рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдирдИ рдлрд╝рд╛рдЗрд▓ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдореИрдЪ рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред desc рджреНрд╡рд╛рд░рд╛, рд╡реЗ рдЦреЛрдП рд╣реБрдП рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреА рдлрд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯ рд╣реЛрддреЗ рд╣реИрдВ .lost.xlfред рдпрджрд┐ рдЕрдиреБрд╡рд╛рдж рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдпрд╛ рддреЛ рд╣рд╛рде рд╕реЗ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рд╛рдВ, рдРрд╕реА рдмреИрд╕рд╛рдЦреАред рдпрджрд┐ рдЖрдк рдПрдХ рд╕рд░рд▓ рд╡рд┐рдзрд┐ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЦреБрд╢реА рд╕реЗ рдЗрд╕ рдХрджрдо рдХреЛ рд╕рд░рд▓ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдХрд╛рдлреА рджреБрд░реНрд▓рдн рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИред
рдореИрдХ рдУрдПрд╕ рдХреЗ рддрд╣рдд, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЖрдЗрдЯрдо рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ :)
рдЬреАрдПрд╕рдПрд╕ рдФрд░ рдПрд╕рдУрд╡рд╛рдИ рдХрд╛ рд╕рдВрдХрд▓рди
Compile.templates.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрджрд▓реА рдЧрдИ gss рдФрд░ рд╕реЛрдпрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдЗрди рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдЖрдк рдЗрд╕реЗ рдЕрдХреНрд╕рд░, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдИрдбреАрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВрдЧреЗред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЛ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдбрд┐рдмрдЧрд┐рдВрдЧ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ред
рдбрд┐рдмрдЧ
рд╡рд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ? .Timestamp рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдордп рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХрд▓рди рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ gss рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди css рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдирд╛рдо рд╕рдВрдкреАрдбрд╝рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рд╕реЛрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред
рд░рд┐рд╣рд╛рдИ
рд░рд┐рд▓реАрдЬрд╝ рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдХреЗрд╡рд▓ RELEASE рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛: compile.templates.sh RASEASE
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА (рдЪрд╛рд╣реЗ рд╡реЗ рдмрджрд▓ рдЧрдП рд╣реЛрдВ рдпрд╛ рдирд╣реАрдВ) рдЬреАрдПрд╕рдПрд╕ рдХреЛ рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдореЗрдВ рдЬрдорд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдирд╛рдо рд╕рдВрдкреАрдбрд╝рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд╕рднреА SOY рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдЪрдпрдирдХрд░реНрддрд╛ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдерд┐рд░рд╛рдВрдХ
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдХреБрдЫ рдЧреБрдгреЛрдВ рдХрд╛ рд╕рдВрдХреБрдЪрд┐рдд рд╣реЛрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рдиред рдЖрдк Google рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдРрд╕реЗ рдирд┐рд░реНрдгрдп рдирд╣реАрдВ рджреЗрдЦреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдФрд░ рд╡реНрдпрдХреНрддрд┐ Google рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рдкрд╛рд╕ GCL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рд╕реНрдЯреИрдХ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдореИрдВ рдЬрд╛рд╡рд╛ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЕрд╕рдВрдЧрдд рдЧреБрдгреЛрдВ рдХрд╛ рдПрдХ рдорд╛рдирдЪрд┐рддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ src / com / example / utils / Constants.java рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рд╕реНрдХреНрд░рд┐рдкреНрдЯ constantsToMap.sh рдХреА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬреЛ рдлрд╝рд╛рдЗрд▓ Constants.java рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ property.in.map рдмрдирд╛рддрд╛ рд╣реИред
рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдирд╛рдо рд╕рд╛рдордЧреНрд░реА (рдЖрдЗрдЯрдо = "рдЖрдЗрдЯрдо") рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
property.in.map рдПрдХ рдлрд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ
< >:< >
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреБрд░рд╛рдиреЗ рдФрд░ рдирдП рдореВрд▓реНрдп рд╕рдорд╛рди рд╣реИрдВред рдорд╛рдирдХ рд╡рд┐рддрд░рдг рдореЗрдВ, рдЬреАрд╕реАрд╕реА рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рд╕реНрдерд┐рд░реАрдХрд░рдг рдХрд░рддрд╛ рд╣реИ; рдЯреНрд░реИрдХрд░ рдореЗрдВ рдПрдХ рдмрдЧ рдФрд░ рдПрдХ рдкреИрдЪ рд╣реЛрддрд╛ рд╣реИред
рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ GCC рдХрд╛ рдПрдХ рдкреИрдЪ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рдкреИрдЪ рдХрдм рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рдореБрджрд╛рдп рдЗрд╕реЗ рдЧрддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИ;)
рдЖрдк рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХрд╣реАрдВ рд╕реЗ рднреА рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рд╕рд░рд▓ рд╣реИред
extern
рдмрд╛рд╣рд░реА рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, jQuery рдпрд╛ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЬреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдЖрдкрдХреЛ рдмрд╛рд╣рд░реА рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ "рдореЙрдбреНрдпреВрд▓ рдЕрд╕реЗрдВрдмрд▓реА" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛ред
рд╕рднреА рдмрд╛рд╣рд░реА рдлрд╝рд╛рдЗрд▓ рдЙрдкрдХрд░рдг / cl-externs рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг / cl-externs / example.js рд╣реИрдВ, рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ ред рдЬреАрд╕реАрд╕реА рдкреНрд░рд▓реЗрдЦрди ред
рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдзрд╛рдирд╕рднрд╛
рдЙрдкрдХрд░рдг / gcmodule рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ gcmodule.jar рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рдпрд╣ рдЪреАрдВрдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдореЛрдб рдореЗрдВ рд╕рднреА gss рдФрд░ рд╕реЛрдпрд╛ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЪреАрдВрдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрди рджреЛрдиреЛрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХ рд╣реА рдХрдорд╛рдВрдб рдХрд░реЗрдВ
ant check.modules
рдЖрдк рдХрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдЖрджрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдФрд░ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛ред рдЖрдкрдХреЛ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдореЙрдбреНрдпреВрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ config.cfg рдлрд╝рд╛рдЗрд▓ рд╣реИ
рддреЛ рдпрд╣ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рдЗрд╕реЗ рдмреИрд╢ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЧрдпрд╛, рдПрд░реЗ рдХреЗ рдЫрдВрдЯрд╛рдИ рдХреЗ рдХрд╛рд░рдг, рдЗрд╕рд▓рд┐рдП рдЬрд╛рд╡рд╛ред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╕рд╛рд░ - рдпрд╣ config.cfg рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд▓реЗрддрд╛ рд╣реИ, рдПрдХ Google рдЯреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЯреНрд░реА рдмрдирд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдЗрд╕реЗ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рд╕реЙрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдкреАрдбрд╝рди рдореЛрдб рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрдиреНрдирдд рдореЛрдб рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рддреБрд░рдВрдд рдЬреАрд╕реАрдПрд▓ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╣ рдЕрд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рдВрдХреНрд░рдордг рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рд╡рд╣рд╛рдВ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдлреАрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдкреАрдбрд╝рди рдореЛрдб рдореЗрдВ рдХреИрд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣рд╛рдВ рдПрдХ рдмрд╛рдд рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ - рдПрдХ рд░рди рдореЗрдВ рдЖрдк рдПрдХ рд╡рд┐рд╖рдп рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд▓реЛрдХрд▓ рдЬрдирд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕реЗ рдкрд╛рд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, WebUI / js / рдореЙрдбреНрдпреВрд▓ / ru / * рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд (рдпрджрд┐ рдЪреАрдВрдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рд╕реНрд░реЛрдд рдорд╛рдирдЪрд┐рддреНрд░ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реЛрдВрдЧреЗред
рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдПрдХ property.out.map рдлрд╝рд╛рдЗрд▓ рднреА рд╣реЛрдЧреА - рдпрд╣ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлрд╝реАрд▓реНрдб рдирд╛рдо рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХ рдирдХреНрд╢рд╛ рд╣реИ:
< >:< >
config.cfg
рддреЛ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдПрдХ рдирд┐рдпрдорд┐рдд JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред
{ options:<>, modules:[<>] }
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреНрдпрд╛ рд╣реИрдВ:
{ defines:{ "LANG":"ru", "THEME":"default", "OPTIMIZATIONS": "ADVANCED_OPTIMIZATIONS" }, deps:{ params:" -o list", workPath:"../../tools/closure/bin", exec:"python ./calcdeps.py" }, compiler:{ params:" <anchor>habracut</anchor> ", workPath:"../../tools/closure/", exec:"java -jar compiler.jar" }, moduleManager:{ path:"../../WebUI/js/module/%THEME%/%LANG%/", tree:"moduleinfo.js" }, exclude:[ "/.svn/", "/closure/base.js" ], workPath:"../../WebUI/js" }
рдореЙрдбреНрдпреВрд▓
{ name:< >, required:[< >], files:[< >], path:[< , %THEME%, %LANG%"], exclude:[< >] }
рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
java -jar gcmodule -D<key>=<value> -D<key2>=<value2> -C"<Config file>"
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
java -jar gcmodule -DLANG=en -DTHEME=other
Sourcemap
рдпрджрд┐ рдЖрдкрдиреЗ рдПрдВрдЯреА рд╕реЛрдпрд╛.рдХреНрд░рд┐рдЯ.рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рд╢реБрд░реВ рдХреА, рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирдХреНрд╢реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рдЗрд╕рдХреЗ рд▓рд┐рдП parseMap.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ
рд╡рд╣ рдЙрди рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдЬреЛ рдЙрд╕рдиреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрд╛рдпрд╛ рдерд╛, рдФрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдкрде рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ URL рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред рдХреНрдпреЛрдВ url? рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирдЧрдиреЗрдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдзрд┐рднрд╛рд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдлрд┐рд░ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Nginx рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реНрд░реЛрдд рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдерд┐рдд рд╣реИрдВ рдпрд╛ рд╕реНрд░реЛрдд рдХрд┐рд╕реА рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ (192.168.1.88) рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВ, рдЖрдкрдХреА рдЬрд╝рд░реВрд░рдд рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
/ etc / nginx / sites-available / sourcemap.cp.com
#------------------------------- server { listen 80; server_name sourcemap.cp.com; proxy_buffering off; expires 0m; # Local map root /home/dis/workspace/CP/; # Remote map to source.cp.com #location / { # proxy_set_header Host "source.cp.com"; # proxy_pass "http://192.168.1.88:80"; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #} } #-------------------------------
sudo ln -s /etc/nginx/sites-available/sourcemap.cp.com /etc/nginx/sites-enabled/sourcemap.cp.com
рдореЗрдЬрдмрд╛рдиреЛрдВ / рдЖрджрд┐ / рдореЗрдЬрдмрд╛рдиреЛрдВ рдореЗрдВ
127.0.0.1 sourcemap.cp.com
рдкреБрдирдГ рдЖрд░рдВрдн
sudo service nginx restart
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреЗрдЬ
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдХрд▓реНрдк - рдирд┐рдпрдорд┐рдд рдФрд░ рдЬрд╛рд░реАред
рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдкреГрд╖реНрдареЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрднрд╛рдЧ рд╕реАрдПрд╕рдПрд╕ рдФрд░ рд▓рд┐рдкрд┐рдпреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред
<link rel="stylesheet" href="themes/default/css/0-reset.css" type="text/css" media="screen" title="no title"> <link rel="stylesheet" href="themes/default/css/1-main.css" type="text/css" media="screen" title="no title"> <script type="text/javascript" charset="utf-8"> Handlers={}; Handlers.rootPath="/"; </script> <script type="text/javascript" src="themes/default/js/renaming_map.js"></script> <script type="text/javascript" src="js/jquery/core/1.8.1/dev/jquery.js"></script> <script type="text/javascript" src="js/third_party/moment/moment.js"></script> <script type="text/javascript" src="js/closure/goog/base.js"></script> <script type="text/javascript" charset="utf-8"> goog.require('example.page.index'); </script>
рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╕рднреА рд╕реАрдПрд╕рдПрд╕ рдХреЛ рд╣рд╛рде рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд░рд┐рд▓реАрдЬ рд╕рдВрд╕реНрдХрд░рдг рдЖрд╕рд╛рди рд╣реИред
<link rel="stylesheet" href="themes/default/css/compact.css" type="text/css" media="screen" title="compact"> <script type="text/javascript" charset="utf-8"> Handlers={}; Handlers.rootPath="/"; </script> <script type="text/javascript" src="js/jquery/core/1.8.1/jquery.js"></script> <script type="text/javascript" src="js/third_party/moment/moment.js"></script> <script type="text/javascript" src="js/module/default/ru/closure.js"></script> <script type="text/javascript" src="js/module/default/ru/template_theme.js"></script> <script type="text/javascript" src="js/module/default/ru/game.js"></script> <script type="text/javascript" src="js/module/default/ru/p_index.js"></script>
рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрд╕реА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдЬрд╝рд░реВрд░рдд рд╣реИред
рдкрд░рд┐рдгрд╛рдо
рдЖрдкрдХреЗ рдкрд╛рд╕ рддреЗрдЬрд╝ рдФрд░ рдХреЙрдореНрдкреИрдХреНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╡рд┐рд╖рдпреЛрдВ рдФрд░ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмрдВрдзрди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд▓рд┐рдЦрдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рдЬреАрд╕реАрдПрд▓ рдкреНрд░рд▓реЗрдЦрдиред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпреЗ рдЙрдкрдХрд░рдг рдХрд┐рд╕реА рдХреЛ рдЬреАрд╕реАрдПрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рддрдХрдиреАрдХ рд╣реИред Google рдореЗрд░реЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдореЗрдВ рдЙрдкрдХрд░рдг рдХреНрдпреЛрдВ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд░рд╣рд╕реНрдп рдмрдирд╛ рд╣реБрдЖ рд╣реИред GPLv3 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╕реЗрдВрд╕ред
PS рдореБрдЭреЗ github.com рдкрд░ рдмрдЧреНрд╕ рдФрд░ рдкреИрдЪ рдХреЗ рд▓рд┐рдП рдЦреБрд╢реА рд╣реЛрдЧреА
GCC рдФрд░ gmodule рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдереЛрдбрд╝рд╛ рдмрд╛рдж рдореЗрдВ рдЦреЛрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреЗред рдЬреАрд╕реАрд╕реА рдкреНрд░рд▓реЗрдЦрди