Java2Js: рдЙрдкрдХрд░рдг рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ



рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдПрд╕ "рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛" рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдХреЛрдб рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛, рдкреЗрдЬ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЬреЛрдбрд╝реВрдВрдЧрд╛ред рдпрд╣ рдПрдХ рдмрд╛рд░ рд╕рдЪ рдерд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд░реНрддрдорд╛рди рдЬреЗрдПрд╕ рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ рдорд╛рдирдХ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рджрд░реНрд╢рди рдХрд╛ рдкрдХреНрд╖ рд▓реЗрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рд╕рдордп рдмрджрд▓ рдЧрдпрд╛ рд╣реИ! рдЕрдм Js рдкрд░ рд╡реЗ рдЬрдЯрд┐рд▓ рдФрд░ рднреНрд░рд╛рдордХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдмрд╕ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрдкрдиреЗ "рдмрдбрд╝реЗ рднрд╛рдЗрдпреЛрдВ" (рдЬрд╛рд╡рд╛, рд╕реА #, рдЖрджрд┐ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ, "рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛрдб" рдХреА рд╣рдЬрд╛рд░реЛрдВ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдлрдВрд╕рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдЖрдкрдХреЛ "рдмрд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдХреЗ рджрд░реНрд╢рди рдХреЛ рддреНрдпрд╛рдЧрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЬреЗрдПрд╕ рдХреЛ рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдПрдХ рдЬрдЯрд┐рд▓, рдореЙрдбреНрдпреВрд▓рд░ рдФрд░ рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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


1. рдЕрдЪреНрдЫреА IDE


рдиреЛрдЯрдкреИрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЗрдПрд╕ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рди рдХрд░реЗрдВред рдЧрдВрднреАрд░ рдХреЛрдб рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЧрдВрднреАрд░ рдЖрдИрдбреАрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк IDEA рдореЗрдВ рдмреИрдареЗ рд╣реИрдВ, рддреЛ js рд╕рдорд░реНрдерди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЧреНрд░рд╣рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрдмреАрдиреНрд╕ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рдБ, рд╣рд╛рдБ, рдЗрд╕ IDE рдореЗрдВ рд╕рднреНрдп Js рдХрд╛ рд╕рдорд░реНрдерди рд╣реИ! рдмрд╕ рдЗрд╕реЗ рдПрдХреНрд▓рд┐рдкреНрд╕ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рд╛рдПрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рди рдЬреЛрдбрд╝реЗрдВ, рдмрд▓реНрдХрд┐ рдЬреЗрдПрд╕, рд╕реАрдПрд╕рдПрд╕ рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ (рдЬреЗрдПрд╕рдкреА) рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ред



2. рд▓реЙрдЧрд┐рдВрдЧ


рдХреНрдпрд╛ рдЖрдк рд▓реЙрдЧ рдЗрди рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЛрдб рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рддреЛ рдлрд┐рд░, рдмрд┐рдирд╛ рд▓реЙрдЧ рдХреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛрдб рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, log4javascript ред



3. рдбрд┐рдмрдЧ


рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдлрд╝рд╛рдпрд░реНрдлрд╝реЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╣рдо рдлрд╛рдпрд░рдмрдЧ, рдУрдкреЗрд░рд╛ рдФрд░ рдХреНрд░реЛрдо рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдбрд┐рдмрдЧрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред



4. рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрд╕реНрд╡реАрдХреГрддрд┐


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

"рд╡рд░реНрдЧ" рдореЗрдВ рддрд░реНрдХ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
/** *  javadoc    * @param {String} str -      */ NoteDocument = function(str){ //     var self = this; //  var data; //  this.init = function(){ parse(str); }; //  function parse(str){ ... } }; 


рдЙрджрд╛рд╣рд░рдг рдХреНрдпрд╛ рд╣реИ:
 var doc = new NoteDocument("hello!"); doc.init(); 


рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреА рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реИ, рд╣реИ рдирд╛? :)

5. рд╕рдВрдХреБрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ


рднрд╛рд╖рд╛ рдореЗрдВ рдХреЛрдИ рдкреИрдХреЗрдЬ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИред рдЕрдлрд╕реЛрд╕ред рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдРрд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 function namespace(){}; /** * create new namespace if it is not exist * @param newNamespace string namespaces like "aaa.dddd.fff" */ namespace.prototype.useNamespace = function(newNamespace){ var namespaces = newNamespace.split("."); if (!this[namespaces[0]]){ this[namespaces[0]] = new namespace(); } if (namespaces.length > 1){ this[namespaces[0]].useNamespace(newNamespace.substring(namespaces[0].length+1)); } }; 


рдЕрдЧрд▓рд╛, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рд░реВрдЯ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВ ...
 var app = new namespace(); 


... рдФрд░ рдЗрд╕рдореЗрдВ рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реЗрдВ:
 app.useNamespace("model.note"); app.model.note.NoteDocument = function(str){ ... } ... var doc = new app.model.note.NoteDocument("hello!"); doc.init(); 


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


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

рдПрдХ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬреЛ "рд▓рдЧрднрдЧ рдПрдХ рдЬреЗрдпреВрдирд╛рдЗрдЯ рдЯреЗрд╕реНрдЯ рдЬреИрд╕рд╛ рд╣реИ":
 app.useNamespace("model.note"); app.model.note.NoteDocumentTest = function(){ this.test_get_sections_and_blocks = function(){ var data = new TestNoteModel(); var doc = new app.model.note.NoteDocument(data.note); //check var sections = doc.getRootElems(); assertEquals(2, sections.length); assertEquals(null, sections[0].children); assertEquals(null, sections[1].children); }; } 


7. рд╕реНрдереИрддрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг


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



рдкрд░рд┐рдгрд╛рдо


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

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


All Articles