JavascriptフãƒŦãƒŧムワãƒŧクīŧš1つだけãĢするåŋ…čĻãŒã‚ã‚Šãžã™

ã‚ģãƒĢã‚˛ã‚¤ãƒģã‚ĸヴェãƒĒãƒŗīŧˆ XEK īŧ‰


ã‚ģãƒĢãƒģã‚˛ãƒģイãƒģã‚ĸãƒģヴãƒģãƒĒãƒŗ

最初は、フãƒŦãƒŧムワãƒŧクぎ比čŧƒãĢé–ĸするãƒŦポãƒŧトをäŊœæˆã—ãŸã‹ãŖãŸãŽã§ã™ãŒã€ããŽåžŒã€ãã‚Œã‚‰ãŒãƒˆãƒžãƒˆã‚’æŠ•ã’ã‚‹ã¨æ€ãŖãŸãŽã§ã€ãƒŦポãƒŧトはいつもぎようãĢåœ°į„ãŽã‚ˆã†ãĒトロãƒŧãƒĒãƒŗã‚°ã§ã™ã€‚ そしãĻ、åŊŧはむしろ、HighLoadãĢついãĻではãĒãã€ãƒ•ãƒ­ãƒŗãƒˆã‚¨ãƒŗãƒ‰ã‚’åĢめãĻ、こぎビジネ゚よりも重čρãĒįŽĄį†ã‚ŋ゚クãĢついãĻです。

それãĢもかかわらず、äŊ•ã‚’å ąå‘Šã—ãžã—ãŸã‹īŧŸ 新しいフãƒŦãƒŧムワãƒŧã‚¯ãŽé¸æŠžæ–šæŗ•ã€é¸æŠžã™ã‚‹į†į”ąã€ãŠã‚ˆãŗãã‚Œã‚‰ãŒč§Ŗæąēしたã‚ŋ゚クãĢé–ĸするãƒŦポãƒŧト。



最初ãĢ、äŧšį¤žãĢついãĻ少しčĒŦ明し、æŦĄãĢå•éĄŒãŽé ˜åŸŸã€ã‚ŋ゚ク、čĻ‹ãŸã¨ãŠã‚Šã€äŧšį¤žãŒįžåœ¨æŒãŖãĻいるもぎãĢついãĻčĒŦ明しぞす。 一čˆŦįš„ãĢã€é¸æŠžã™ã‚‹æ–šæŗ•ã‚’é¸æŠžã™ã‚‹æ–šæŗ•ã€‚ ã‚Ēãƒ—ã‚ˇãƒ§ãƒŗãŽčŠ•äžĄæ–šæŗ•ã€‚ åŊŧらが最įĩ‚įš„ãĢč‡Ē分č‡ĒčēĢãĢ遊したã‚Ēãƒ—ã‚ˇãƒ§ãƒŗãŽ1ã¤ã‚’ã‚„ã‚Šį›´ã™ã“ã¨ã‚’æąē厚し、2つぎįĢļåˆã™ã‚‹æŠ€čĄ“ãŽãƒ‘ã‚¤ãƒ­ãƒƒãƒˆãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã‚’æ¯”čŧƒã—ãŸæ–šæŗ•ã€‚ įĩæžœã¯ãŠã†ã ãŖãŸãŽã‹ã€ãã—ãĻ最įĩ‚įš„ãĢおぎようãĢé€˛ã‚“ã ãŽã‹ã€‚

そしãĻäģŠã€į‰ŠčĒžã‚’æ˜Žã‚‰ã‹ãĢする時がæĨぞした。

äŧšį¤žãĢついãĻ少しīŧš



ã‚ĸクロニ゚は、500万äēēぎãƒĻãƒŧã‚ļãƒŧãĢã‚ĩãƒŧãƒ“ã‚šã‚’æäž›ã™ã‚‹ãƒ­ã‚ˇã‚ĸぎ非常ãĢ大čĻæ¨ĄãĒäŧæĨ­ã§ã‚ã‚Šã€ããŽã†ãĄį´„10īŧ…がäŧæĨ­ã‚¯ãƒŠã‚¤ã‚ĸãƒŗãƒˆã§ã‚ã‚Šã€ãƒŠã‚¤ã‚ģãƒŗã‚šã§äŊœå“ã‚’čŗŧå…ĨしãĻいぞす。 ã—ãŸãŒãŖãĻ、äŧšį¤žč‡ĒäŊ“も非常ãĢ大きく、17ãŽį•°ãĒるã‚Ēãƒ•ã‚Ŗã‚šãŒã‚ã‚Šã€į ”įŠļ開į™ēは3ã¤ãŽį•°ãĒるå›ŊãĢã‚ã‚Šã€æœ€å¤§ãŽį ”įŠļ開į™ēはãƒĸ゚クワãĢありぞす。 しかし同時ãĢã€į§ãŸãĄãŽé–‹į™ēã¯åˆ†æ•Ŗã•ã‚ŒãĻおり、ここでは数え切れãĒã‹ãŖãŸãƒĒãƒĸãƒŧトワãƒŧã‚Ģãƒŧがいぞす。

開į™ē中ぎã‚Ŋフトã‚Ļェã‚ĸぎčĻæ¨Ąã¯å¤§ããį•°ãĒりぞすīŧšWindowsį”¨ãŽãƒœãƒƒã‚¯ã‚šį‰ˆã‚Ŋフトã‚Ļェã‚ĸ、äŧæĨ­ãĢč˛ŠåŖ˛ã™ã‚‹Webã‚¤ãƒŗã‚ŋãƒŧãƒ•ã‚§ã‚¤ã‚šã‚’å‚™ãˆãŸãƒœãƒƒã‚¯ã‚šį‰ˆã‚Ŋフトã‚Ļェã‚ĸ、č‡Ēį¤žã§č˛ŠåŖ˛ãŠã‚ˆãŗåŽŸčŖ…ã™ã‚‹ã‚Ŋフトã‚Ļェã‚ĸãŒã‚ã‚Šãžã™ã€‚ã“ã‚Œã¯ã€ãƒœãƒƒã‚¯ã‚šį‰ˆã¨ã‚¯ãƒŠã‚Ļドベãƒŧã‚šãŽä¸Ąæ–šãŽã‚Ŋフトã‚Ļェã‚ĸãŒæˇˇåœ¨ã—ãĻいぞす。 クナã‚Ļドã‚Ŋフトã‚Ļェã‚ĸもありぞす。これは、ホãƒŧムãƒĻãƒŧã‚ļãƒŧとäŧæĨ­ãƒĻãƒŧã‚ļãƒŧãŽä¸Ąæ–šãĢã‚ĩブ゚クãƒĒãƒ—ã‚ˇãƒ§ãƒŗã§č˛ŠåŖ˛ã—ãĻいぞす。 į§ãŸãĄãŒæœ€åˆãĢå¤§æ‰‹ãƒ›ã‚šãƒ†ã‚Ŗãƒŗã‚°äŧšį¤žãĢč˛ŠåŖ˛ã™ã‚‹ã‚Ŋフトã‚Ļェã‚ĸもありぞすが、それはåŊŧらč‡ĒčēĢぎためãĢ最įĩ‚įš„ãĒãƒĻãƒŧã‚ļãƒŧãĢåŊŧらč‡ĒčēĢãŽãƒ–ãƒŠãƒŗãƒ‰ã§ãã‚Œã‚’č˛ŠåŖ˛ã—ãžã™ã€‚ そしãĻ、こぎすずãĻぎビジネ゚ãĢã¯č†¨å¤§ãĒ数ぎWebã‚¤ãƒŗã‚ŋãƒŧフェãƒŧ゚がありぞす。 これはWebčŖŊå“ãŽå•éĄŒã§ã‚ã‚Šã€Webã‚ĩイトč‡ĒäŊ“ãŽå•éĄŒã§ã¯ã‚ã‚Šãžã›ã‚“ã€‚



į§ãŒäŧšį¤žãĢæĨãŸã¨ãã€į§ãŸãĄãŒäŊ•ã‚’æŒãŖãĻいるか、すずãĻがおぎようãĢčĩˇã“ã‚‹ãŽã‹ã‚’į†č§Ŗã—å§‹ã‚ãžã—ãŸ.Ext JSãĒãŠãŽįœŸãŽãƒ•ãƒ­ãƒŗãƒˆã‚¨ãƒŗãƒ‰ã‹ã‚‰å§‹ã‚ãĻ、さぞざぞãĒæŠ€čĄ“ã§ã™ããĢさぞざぞãĒį¨ŽéĄžãŽWebįŽĄį†č€…ãŒį¤žå†…ãĢいることがわかりぞしたAngularJS。Rubyon Railsã§č¨˜čŋ°ã•れたã‚ĩイトでįĩ‚わり、jQueryは単ãĢペãƒŧã‚¸ãžãŸã¯ã‚°ãƒŠãƒ•ã‚Ŗãƒƒã‚¯ã‚’åˆ‡ã‚Šæ›ŋえぞす。

チãƒŧムはそぎようãĒå•éĄŒãĢį›´éĸしぞした。



ぞず、多くぎテクノロジãƒŧがあり、それらはすずãĻį•°ãĒãŖãĻおり、開į™ēč€…ã‚’ã‚ã‚‹éƒ¨é–€ã‹ã‚‰åˆĨぎ部門ãĢドナッグすることはできぞせん。プロジェクトを支援することもできぞせん。jQueryã§č¨˜čŋ°ã™ã‚‹Ruby on Rails開į™ēč€…ã¯AngularJSãĢついãĻäŊ•ã‚‚įŸĨらãĒいからです。 įŦŦäēŒãĢã€ãƒãƒƒã‚¯ã‚¨ãƒŗãƒ‰é–‹į™ēč€…ãžãŸã¯ãƒ•ãƒ­ãƒŗãƒˆã‚¨ãƒŗãƒ‰é–‹į™ēč€…ã¨ã—ãĻ、かãĒりぎ数ぎäēē々がパãƒŧトã‚ŋイムで働いãĻいることがわかりぞした。 たとえば、PHPで書くäēēがいãĻ、AngularJSã§ãƒãƒƒã‚¯ã‚¨ãƒŗãƒ‰ã¨ã—ãĻ動äŊœã™ã‚‹ã‚ĩイトをäŊœæˆã—ãĻいぞす。 それらぎ多くはありぞせん、åŊŧらは小さãĒãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã‚’æŒãŖãĻおり、åˆĨãŽãƒ•ãƒ­ãƒŗãƒˆã‚¨ãƒŗãƒ‰é–‹į™ēč€…ã‚’é–‹å§‹ã™ã‚‹į†į”ąã¯ã‚ã‚Šãžã›ã‚“ã€‚

そぎįĩæžœã€ãƒ•ãƒ­ãƒŗãƒˆã‚¨ãƒŗãƒ‰ã‚’čĄŒã†Javaぎäēē々、Rubyぎäēē々、Pythonぎäēē々、PHPぎäēēã€…ãŒã„ã‚‹ã¨č¨ˆįŽ—ã—ãžã—ãŸã€‚ 同時ãĢ、äŧšį¤žãĢはãƒŦイã‚ĸã‚Ļトデã‚ļイナãƒŧがãĒく、単一ぎデã‚ļイナãƒŧもありぞせん。 つぞり ã“ãŽåˆ†é‡Žã‚’į†ŸįŸĨしãĻいるäēēは数äēēいぞすが、通常はAngularJSãŽã‚¨ãƒŗã‚ŗãƒŧダãƒŧとしãĻ働いãĻいぞす。 そぎįĩæžœã€ã“れらぎプロジェクトは厌全ãĢį•°ãĒã‚‹ã‚ŗãƒŧド゚ã‚ŋイãƒĢ、厌全ãĢį•°ãĒã‚‹ã‚ŗãƒĄãƒŗãƒˆã‚šã‚ŋイãƒĢã‚’æŒãĄã€ã•ãžã–ãžãĒæ–šæŗ•ã§ãƒ‡ãƒ—ãƒ­ã‚¤ã•ã‚Œãžã™ã€‚Rubyon RailsをäŊŋį”¨ã—ãĻ、RubyãŽã‚ŗãƒŦクã‚ŋãƒŧをäŊŋį”¨ã—ãĻAngularJSã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚’æ§‹į¯‰ã—ãžã™ã€‚ そしãĻ最垌ãĢ-ãŠã“ã§ã‚‚į•°ãĒã‚‹å‹•į‰Šåœ’ã€‚ 各部門ãĢはį‹Ŧč‡ĒãŽå‹•į‰Šåœ’ãŒã‚ã‚Šãžã™ã€‚ čĻã™ã‚‹ãĢ、Ext JSが書かれãĻã„ã‚‹ãƒ•ãƒŠãƒƒã‚°ã‚ˇãƒƒãƒ—čŖŊå“ã¯åˇ¨å¤§ãĒįŽĄį†ãƒ‘ãƒãƒĢであり、äŊ•į™žã‚‚ãŽį”ģéĸがあり、バãƒŧã‚¸ãƒ§ãƒŗ4ãĢåŸēãĨいãĻæ§‹į¯‰ã•ã‚ŒãĻおり、最čŋ‘では2015åš´ãĢバãƒŧã‚¸ãƒ§ãƒŗ6がすでãĢãƒĒãƒĒãƒŧ゚されãĻいぞすこぎフãƒŦãƒŧムワãƒŧクは、äŊŋį”¨ã—ãĻいるフãƒŦãƒŧムワãƒŧクぎバãƒŧã‚¸ãƒ§ãƒŗã‚ˆã‚Š5嚴遅れãĻいぞす。 おそらくあãĒたもそれãĢついãĻäŊ•かをするåŋ…čĻãŒã‚ã‚Šãžã™ã€‚

ã‚‚ãĄã‚ã‚“ã€ãƒœã‚šãŒæĨãĻã‚ŋã‚šã‚¯ã‚’č¨­åŽšã—ãžã—ãŸã€‚ ã‚ŋ゚クは上から与えられぞしたīŧš



可čƒŊãĒ限り゚テãƒŧトãƒŦã‚šãƒãƒƒã‚¯ã‚¨ãƒŗãƒ‰APIと通äŋĄã™ã‚‹ãƒ•ãƒ­ãƒŗãƒˆã‚¨ãƒŗãƒ‰ãƒ†ã‚¯ãƒŽãƒ­ã‚¸ãƒŧをäŊŋį”¨ã™ã‚‹ãƒ•ã‚Ąãƒƒãƒˆã‚¯ãƒŠã‚¤ã‚ĸãƒŗãƒˆãŒåŋ…čĻã§ã™ã€‚ UIã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽå˜ä¸€ãŽãƒŠã‚¤ãƒ–ãƒŠãƒĒ、äŧšį¤žå…¨äŊ“ぎ単一ぎãƒĢックã‚ĸãƒŗãƒ‰ãƒ•ã‚ŖãƒŧãƒĢがåŋ…čĻã§ã™ã€‚ã“ã‚Œã¯ã€ãƒ•ã‚ŠãƒŗãƒˆãŒãŠã“ã‹ã§į•°ãĒり、ピクã‚ģãƒĢがおこかでãƒŦイã‚ĸã‚ĻトがæĩŽã„ãĻおり、最įĩ‚įš„ãĢは2ã¤ãŽéšŖæŽĨする部門は、すずãĻãŽįŽĄį†é ˜åŸŸãĢå…ąé€šãŽčĻį´ ã‚’ã„ãã¤ã‹æį”ģしぞす。デã‚ļイナãƒŧã¯åŒã˜æ–šæŗ•ã§ã€å°‘ã—į•°ãĒã‚‹æ–šæŗ•ã§æį”ģしぞす。HTMLãƒŦイã‚ĸã‚Ļト、ãƒŦイã‚ĸã‚ĻトはäŊ•ã‚‰ã‹ãŽãƒã‚¤ãƒ†ã‚Ŗãƒ–ãƒ†ãƒŗãƒ—ãƒŦãƒŧãƒˆã‚¨ãƒŗã‚¸ãƒŗãŽJSã‚ŗãƒŧドãĢčŠ°ã‚čžŧぞれぞす。 ぞた、CSSãƒŦイヤãƒŧã‚‚æ šæœŦįš„ãĢį•°ãĒり、3つぞたは4ã¤ãŽãƒ•ã‚Ąã‚¤ãƒĢを重ねãĻ配įŊŽã—、æ—ĸ存ぎフãƒŦãƒŧムワãƒŧã‚¯ã‚’į ´æŖ„ã—ãžã™ã€‚

最įĩ‚įš„ãĢ通常ぎãƒŦイã‚ĸã‚Ļトデã‚ļイナãƒŧをつãĒぎ、įĩĻæ–™ãŽäŊŽã„デベロッパãƒŧを雇うことができぞす。デベロッパãƒŧは、一斚でデã‚ļイナãƒŧã¨ã‚ŗãƒŸãƒĨãƒ‹ã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚’å–ã‚Šã€ãƒ‡ã‚ļã‚¤ãƒŗã‚’æē–備し、一斚でJava゚クãƒĒãƒ—ãƒˆã‚’æŒãŖãĻくることができぞす。 、åŊŧã‚‰ã¯ãã‚Œã‚’æœ›ã‚“ã§ã„ãžã™ã€ã“ã“ã§ã¯ã“ãŽã‚¤ãƒŗã‚ŋãƒŧフェイ゚をã‚ĸãƒ‹ãƒĄãƒŧã‚ˇãƒ§ãƒŗåŒ–ã™ã‚‹åŋ…čĻãŒã‚ã‚Šãžã™... "。 同時ãĢ、トップãƒŦベãƒĢではãĒいプロジェクトでJSã‚¨ãƒŗã‚ŗãƒŧダãƒŧを雇うことができぞした。 äģŠã€į§ãŸãĄãĢはįĢと水をįĩŒé¨“した多くぎäēēがいぞす。åŊŧらはJavaをįŸĨãŖãĻいぞす。åŊŧらは.NetをįŸĨãŖãĻã„ãžã™ã€‚ã“ãŽį‚šã§ã€åŊŧらは原則としãĻ非常ãĢįĩŒé¨“čąŠå¯ŒãĒぎで、おんãĒJavascriptフãƒŦãƒŧムワãƒŧã‚¯ã‚‚å•éĄŒã§ã¯ã‚ã‚Šãžã›ã‚“ã€‚ ã—ãŸãŒãŖãĻ、おうãĢかしãĻ、100äēēãĢ1äēēではãĒく、50äēēãĢ2äēēã‚’æŽĄį”¨ã§ãã‚‹ã‚ˆã†ãĢã—ãŸã„ã¨č€ƒãˆãĻいぞす。

そしãĻ、そぎようãĒåˆĨぎpqrityがありぞす。 ãƒ•ãƒ­ãƒŗãƒˆã‚¨ãƒŗãƒ‰ã‚’äŊœæˆã™ã‚‹äēēã€…ãŽå¤§éƒ¨åˆ†ã¯ã€å‰č€…ãžãŸã¯įžåœ¨ãŽãƒãƒƒã‚¯ã‚¨ãƒŗãƒ‰ãŽã„ãšã‚Œã‹ã§ã‚ã‚‹ãŸã‚ã€ã“ã‚Œã‚‰ã™ãšãĻã‚’ãƒãƒƒã‚¯ã‚¨ãƒŗãƒ‰é–‹į™ē者ãĢį†č§Ŗã—ãĻã‚‚ã‚‰ã„ãŸã„ã¨æ€ãŖãĻいぞす。 įŽĄį†č€…ãŒJSã§ã‚ŗãƒŧドをčĻ‹ã‚‹ã¨ã€ã€Œããã€äŊ•ã‚‚į†č§Ŗã—ãĻいãĒい、すずãĻがæ‚Ēã„ã€æ›¸ãį›´ãã†ã€ã¨č¨€ã„å§‹ã‚ãžã™ãŒã€ãã†ã§ã¯ãĒいことがよくありぞす。



äŧšį¤žãĢ原際ãĢあるもぎをčĻ‹ãžã—ãŸã€‚ DojoでäŊœæˆã•れたã‚ĸãƒ•ã‚ŖãƒĒエイトčŖŊ品があることがわかりぞした。 åŊŧぎためãĢ、DojoãŽãƒ—ãƒŠã‚°ã‚¤ãƒŗã‚’äŊœæˆã—ぞす。これは非常ãĢ古いフãƒŦãƒŧムワãƒŧクであり、非常ãĢį‰šåˆĨã§ã€ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãƒĸデãƒĢとしãĻ抟čƒŊしぞす。 これは厌全ãĢMVCではありぞせんが、äģ–ぎフãƒŦãƒŧムワãƒŧクをäŊŋį”¨ã§ããĒいため、こぎã‚ĸãƒ•ã‚ŖãƒĒエイトプログナムでäŊœæĨ­ã™ã‚‹ã“とができãĒいため、äŊ•もしãĒいことãĢしぞした。

原際、こぎã‚ĩイトでは、ダイナミク゚はãģとんおありぞせん。 検į´ĸã‚¨ãƒŗã‚¸ãƒŗãŒã‚¤ãƒŗãƒ‡ãƒƒã‚¯ã‚šã‚’äŊœæˆã™ã‚‹ã“とが重čĻã§ã‚ã‚Šã€čŋ…速ãĢ抟čƒŊすることが重čĻã§ã™ã€‚ そこãĢJavascriptはæœŦåŊ“ãĢåŋ…čĻã‚ã‚Šãžã›ã‚“ã€‚ ã—ãŸãŒãŖãĻ、åŊŧãŽãŸã‚ãŽã‚ã‚‹į¨ŽãŽã‚šãƒŧパãƒŧフãƒŦãƒŧムワãƒŧクは、一čˆŦãĢäŧ‘ãŋぞせんでした。 ã“ã‚Œã¯č§ŖæąēすずきではãĒいã‚ŋ゚クです。

įŽĄį†č€…ãŒåŽŸéš›ãĢäŊœæˆã•れた掋りから、これは最初ぎバãƒŧã‚¸ãƒ§ãƒŗãŽAngular JS、これはRuby on Rails、さらãĢãƒãƒƒã‚¯ã‚¨ãƒŗãƒ‰ã§ãƒšãƒŧã‚¸ã‚’į”Ÿæˆã—ã€ã•ã‚‰ãĢäŊ•らかぎダイナミク゚をäŊœæˆã™ã‚‹jQueryãŽčŖœčļŗã§ã™ã€‚ ぞた、ãģとんおぎčŖŊ品はExtJS 4ã§č¨˜čŋ°ã•れãĻいぞす。これらは、.NetぞたはQTãĢ最もよくäŧŧた非常ãĢé̘ãƒŦベãƒĢぎフãƒŦãƒŧムワãƒŧã‚¯ã§ã‚ã‚Šã€åŒį¤žãŽčŖŊ品ぎãģとんおīŧˆįœŸéĸį›ŽãŠã‚ˆãŗæˆäēēīŧ‰ãŒč¨˜čŋ°ã•れãĻいぞす。



こぎExtJSがäŊ•ã§ã‚ã‚‹ã‹ã‚’į†č§Ŗã—ãžã—ãŸã€‚ ãã‚Œã¯åˇ¨å¤§ãĒåˇ¨åƒã§ã‚ã‚Šã€ã‚ŗãƒŧドぎ抟é–ĸčģŠã§ã‚ることが判明しぞした。 ãƒĄã‚¤ãƒŗãƒšãƒŧジでは、こぎフãƒŦãƒŧムワãƒŧクぎ395クナ゚がčĒŦ明されãĻいぞす。



各クナ゚ãĢは非常ãĢæˇąã„į‰ŋツãƒĒãƒŧがありぞす。 ã“ãŽį‚šã§ã€QT、.Netã€ãŠã‚ˆãŗããŽäģ–ぎMVCフãƒŦãƒŧムワãƒŧクがおぎようãĢæ§‹į¯‰ã•ã‚Œã€WindowsãžãŸã¯ãƒ‡ã‚šã‚¯ãƒˆãƒƒãƒ—į”¨ãŽLinuxぎおこかで抟čƒŊすることから非常ãĢãĒめられãĻいぞす。 そぎįĩæžœã€å¤šããŽå ´åˆã€ãƒ‡ã‚Ŗãƒ™ãƒŧã‚šã™ã‚‹ã‚ŗãƒŧãƒ‰ã¯ã€įžåœ¨åŋ…čρãĒã‚ŗãƒŧドよりも3ãƒŦベãƒĢéĢ˜ã„ã“ã¨ãŒã‚ã‹ã‚Šãžã™ã€‚ ã“ã‚Œã‚’į†č§Ŗã™ã‚‹ãŽã¯æœŦåŊ“ãĢé›Ŗã—ã„ã§ã™ã€‚

Ext.panelクナ゚īŧš



ã“ã‚Œã‚‰ã¯ã€ãã“ã‹ã‚‰ãŽãƒĄã‚ŊッドãĢすぎぞせん。 さぞざぞãĒãƒ—ãƒ­ãƒ‘ãƒ†ã‚Ŗã¨åŒã˜æ•°ãŽã‚¤ãƒ™ãƒŗãƒˆãŒãžã ã‚ã‚Šãžã™ã€‚ 開į™ēč€…ãŒã“ã‚Œã‚‰ãŽãƒĄã‚ŊッドをすずãĻčĻšãˆãĻいãĒいことは明らかです。 ã—ãŸãŒãŖãĻã€į§ãŸãĄã¯å¸¸ãĢドキãƒĨãƒĄãƒŗãƒˆã‚’æ“äŊœã—ãĻã€ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽã‚ĩイã‚ēぎためãĢã€æœ€ã‚‚å˜į´”ãĒもぎをäŊœæˆã™ã‚‹æ–šæŗ•ã‚’į†č§Ŗã™ã‚‹åŋ…čĻãŒã‚ã‚Šãžã™...すでãĢ3ã¤ãŽį•°ãĒã‚‹ãƒĄã‚Ŋッドがあり、それぞれį‹Ŧč‡ĒãŽæ–šæŗ•ã§3ã¤ãŽį•°ãĒるã‚ĩイã‚ēをčŋ”しぞす。



įĩåą€ã€į§ã¯ã¨ãĻã‚‚æ‚˛ã—ã‹ãŖãŸã§ã™ã€‚ 最初はäŊ•ã‚‚į†č§Ŗã—ãĻいãĒã‹ãŖãŸãŽã§ã€å…¨äŊ“ã‚’čĻ‹ãĻ、æŦĄãŽčŗĒ問をč‡Ē問しぞした。「ä¸ģよ、ãĒぜこれをすずãĻ書いたぎですかīŧŸã€

ãƒ•ãƒŠãƒƒã‚°ã‚ˇãƒƒãƒ—ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽã‚¤ãƒŗãƒ‡ãƒƒã‚¯ã‚šãƒšãƒŧã‚¸ã¯ã€ã‚ˇãƒŧトA0ãĢå°åˆˇã•ã‚Œã€ãƒ•ã‚Šãƒŗãƒˆ6で51ã‚ˇãƒŧトを占めãĻいぞした。



æ‹Ąå¤§ã—ãŸäž‹ã‚’æŦĄãĢį¤ēしぞす。



これはDOMツãƒĒãƒŧであり、32,000ぎノãƒŧドがありぞした。 これは、フãƒŦãƒŧムワãƒŧクãĢã‚ˆãŖãĻį”Ÿæˆã•ã‚ŒãŸå˜ãĒã‚‹ã‚¤ãƒŗãƒ‡ãƒƒã‚¯ã‚šãƒšãƒŧジです。 ぞだボã‚ŋãƒŗã‚’1つもæŠŧしãĻいぞせん。 ペãƒŧジをロãƒŧドし、すずãĻをãƒŦãƒŗãƒ€ãƒĒãƒŗã‚°ã—ãžã—ãŸã€‚ ここでåĨ‡åĻ™ãĒことがčĩˇã“ãŖãĻいることは明らかです、明らかãĢこれãĢはゴミがありぞす。



åŊŧらは、こぎフãƒŦãƒŧムワãƒŧクでUIがおぎようãĢčĄŒã‚ã‚Œã‚‹ã‹ã‚’čĻ‹ã‚‹ãŸã‚ãĢį™ģりぞした。 ãƒĻãƒŧã‚ļãƒŧがUIã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽãƒŠã‚¤ãƒ–ãƒŠãƒĒをすぐãĢ受け取り、CSSãĢã‚ˆãŖãĻį ´æŖ„ã•ã‚Œã‚‹ã“ã¨ãŒåˆ¤æ˜Žã—ãžã—ãŸã€‚ CSSを上ãĢčŋŊ加しãĻから、ã‚Ģ゚ã‚ŋãƒ ã‚šã‚­ãƒŗã‚’å–åž—ã™ã‚‹åŋ…čĻãŒã‚ã‚Šãžã™ã€‚ そこãĢãĒã‹ãŖãŸå¤šããŽã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã¯ã€ã‚ŧãƒ­ã‹ã‚‰åŽŸčŖ…ã™ã‚‹åŋ…čĻãŒã‚ã‚Šãžã—ãŸã€‚ そぎįĩæžœã€å¤šããŽå ´åˆã€ãŠã“でもではãĒく、非常ãĢé ģįšãĢã€į§ã¯ããŽã‚ˆã†ãĒäŊ•かãĢå‡ēくわしぞした。 これはjavascriptクナ゚であり、一斚でUIã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã§ã™ãŒã€ä¸€æ–šã§ã€3ã¤ãŽį•°ãĒã‚‹ã‚¨ãƒŗãƒ†ã‚Ŗãƒ†ã‚ŖãŒæˇˇåœ¨ã—ãĻいることがよくčĻ‹ã‚‰ã‚Œãžã™-javascriptã‚ŗãƒŧド、htmlã‚ŗãƒŧãƒ‰ã€ãŠã‚ˆãŗã“ã‚Œã‚‰ã¯ãƒ­ãƒŧã‚ĢãƒĢãƒ†ãƒŗãƒ—ãƒŦãƒŧãƒˆã‚¨ãƒŗã‚¸ãƒŗã€xindex、xcountぎ非常ãĢåĨ‡åĻ™ãĒãƒ‡ã‚ŖãƒŦã‚¯ãƒ†ã‚Ŗãƒ–ã§ã™ãžãŸã¯ã€ã“ãŽä¸­æ‹Ŧåŧ§ã§å›˛ãžã‚ŒãŸæ–‡å­—列ぎ値ぎ文字列...

ã‚‚ãĄã‚ã‚“ã€ã“ã‚Œã‚’ã™ãšãĻį†č§Ŗã™ã‚‹ã“ã¨ã¯éžå¸¸ãĢé›Ŗã—ãã€įļ­æŒã™ã‚‹ã“とは非常ãĢå›°é›Ŗã§ã™ã€‚ãžãŸã€ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŒį›¸äē’ãĢį‰ŋã•ã‚Œã‚‹ã¨ã€å¤šããŽå ´åˆã€ã“ãŽãƒ†ãƒŗãƒ—ãƒŦãƒŧãƒˆãŽæ–­į‰‡ã‚’åˆ‡ã‚Šå–ãŖãĻæ–­į‰‡ãĢåˆ†å‰˛ã§ãã‚‹ã“ã¨ãŒã‚ã‹ã‚Šãžã—ãŸã€‚ つぞり テãƒŧブãƒĢがあり、ã‚ģãƒĢãƒ†ãƒŗãƒ—ãƒŦãƒŧトがあり、ヘッダãƒŧãƒ†ãƒŗãƒ—ãƒŦãƒŧãƒˆãŒã‚ã‚Šã€ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã¯äē’いãĢ2〜3回į‰ŋされぞす。 1つでは、äŊ•かが変化し、すずãĻãŒåŖŠã‚Œãžã™ã€‚ ぞたは、フãƒŦãƒŧムワãƒŧクぎ新しいバãƒŧã‚¸ãƒ§ãƒŗãŒå…Ŧ開され、そぎ上ãĢäŊœæˆã•ã‚ŒãŸã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŒæŠŸčƒŊしãĒくãĒりぞす。



そしãĻ、これがãƒŦイã‚ĸã‚ĻトぎようãĒジョãƒŧã‚¯ã‚’æŒãŖãĻいる唯一ぎフãƒŦãƒŧムワãƒŧクであることがわかりぞした。 åŊŧらは、これらぎã‚ŋグがäŊ•から、おぎようãĢ、ãĒぜ、おこからæĨたぎかをįĸēčĒã™ã‚‹ãŸã‚ãĢį™ģりぞした。 ã‚Ļã‚Ŗãƒŗãƒ‰ã‚Ļぎã‚ĩイã‚ēã‚’å¤‰æ›´ã™ã‚‹ã¨ã€ä¸€éƒ¨ãŽã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽã‚ĩイã‚ēを変更すると、フãƒŦãƒŧムワãƒŧクはデ゚クトップと同様ãĢ、ブロックč‡ĒäŊ“ぎã‚ĩイã‚ēã‚’č¨ˆįŽ—ã—ã€CSSãĢã‚¤ãƒŗãƒŠã‚¤ãƒŗã§æŒŋå…Ĩすることが判明しぞした。 åˇĻã€åŗã€åš…ã€éĢ˜ã•ã‚’å…Ĩ力しぞす。 それだけでãĒく、テキ゚トを取垗しãĻそぎã‚ĩイã‚ēã‚’æŽ¨åŽšã—ã€į›ŽãĢčĻ‹ãˆãĒいdivãĢčŠ°ã‚čžŧãŋ、こぎdivãŒį‰šåŽšãŽåš…ã§ãŠãŽã‚ĩイã‚ēãĢãĒãŖãŸã‹ã‚’čĒŋずる非常ãĢトãƒĒッキãƒŧãĒã‚ĸãƒĢゴãƒĒã‚ēムがありぞす。 そしãĻåŊŧは、テキ゚トぎã‚ĩイã‚ē、こぎテキ゚トがこぎブロックãĢおれだけかかるかを推厚する抟čƒŊã‚’æ¨Ąå€Ŗã—ã€ã“ã‚Œã‚‰ãŽãƒ–ãƒ­ãƒƒã‚¯ã‚’č¨ˆįŽ—ã—ãžã™ã€‚ そしãĻ、こぎã‚ĸãƒĢゴãƒĒã‚ēムもツãƒĒãƒŧぎようãĒもぎ、つぞり åŊŧは、ブナã‚Ļã‚ļぎようãĢã€åš˛æ¸‰ã—ãĒã„ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãĢつぞずき、それをåĸ—やし始め、čĻĒã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã‚‚å†ã‚Ģã‚Ļãƒŗãƒˆã™ã‚‹ãŸã‚ã€6〜7ãƒ‘ã‚šã‚’čĄŒã„ãžã™ã€‚ そぎįĩæžœã€ãƒ–ナã‚Ļã‚ļぎ遊切ãĒペãƒŧジをį§ģ動し始め、こぎフãƒŦãƒŧムワãƒŧクぎã‚ĩイã‚ē変更ãĢé–ĸã™ã‚‹éˆå‘ŗãŒã¯ãŖãã‚Šã¨ã‚ã‹ã‚Šãžã™ã€‚ しかし、一斚で、すずãĻぎブナã‚Ļã‚ļã§ãžãŖãŸãåŒã˜ã‚ˆã†ãĢ抟čƒŊã™ã‚‹ã¨ã„ã†åˆŠį‚šãŒã‚ã‚Šã€ã“ãŽčŗĒ問を最大限ãĢ閉じãĻいるため、ブナã‚Ļã‚ļ間ぎäē’æ›æ€§ãŽå•éĄŒã‚’åŋƒé…ã™ã‚‹åŋ…čĻã¯ã‚ã‚Šãžã›ã‚“ã€‚



ããŽéŽį¨‹ã§ã€ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã¯éžå¸¸ãĢ固ãĢčŋ‘いことが判明しぞした。 そしãĻ、これらすずãĻãŽã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã¯ã€ãã‚Œãžã‚Œ3〜5ãƒŦベãƒĢ、ぞたは7〜8ãƒŦベãƒĢぎį‰ŋを持つjavascriptã‚¯ãƒŠã‚šãŽã‚¤ãƒŗã‚šã‚ŋãƒŗã‚šã§ã™ã€‚ これらぎそれぞれãĢついãĻ、こぎマジックãƒŦイã‚ĸã‚ĻトãĢã‚ˆãŖãĻã‚ĩイã‚ēãŒæŽ¨åŽšã•ã‚Œã€č¨ˆįŽ—ãŠã‚ˆãŗč¨­åŽšã•ã‚Œãžã™ã€‚ æŦĄãĢ、čĻĒがã‚ĩイã‚ēã‚’č¨ˆįŽ—ã—ã€ããŽįĩæžœã€å…¨äŊ“が非常ãĢéĸį™Ŋい小さãĒã‚‚ãŽã‚’į”Ÿæˆã—ãžã™-ã“ã‚Œã‚‰ãŽã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽdivãĢį›´æŽĨæŒŋå…Ĩされ、ã‚ŋグãĢį›´æŽĨæŒŋå…Ĩã•ã‚Œã‚‹ã‚¤ãƒŗãƒŠã‚¤ãƒŗcsss。 ã—ãŸãŒãŖãĻ、非常ãĢ大きãĒDOMツãƒĒãƒŧであることがわかりぞす。



こぎãƒŦイã‚ĸã‚ĻトがおぎようãĢ抟čƒŊã™ã‚‹ã‹ã‚’į†č§Ŗã—ã‚ˆã†ã¨ã—ãĻã€į§ã¯ããŽã‚ˆã†ãĒ非常ãĢåĨ‡åĻ™ãĒ場所ãĢå‡ēäŧšã„ぞした。



そぎįžŦé–“ã€į§ã¯éžå¸¸ãĢ気分がæ‚ĒくãĒり、これがおぎようãĢčĩˇã“るぎかæąēしãĻį†č§Ŗã§ããĒいことãĢ気äģ˜ããžã—た。



パフりãƒŧãƒžãƒŗã‚šãĢé–ĸするもぎであることをäģŠã§ã‚‚čĻšãˆãĻいぞすかīŧŸ



全äŊ“がæ—ĸãĢåœ§į¸Žã•ã‚ŒãŸįŠļæ…‹ã§į´„2 MBを占有しãĻいるため、「ãƒĸバイãƒĢでぎ動äŊœã¯ãŠã†ã§ã™ã‹īŧŸã€ãĒおぎテ゚トが銚くãģãŠãŽč˛ čˇãĢãĒることはありぞせん。 しかし、それãĢã‚‚ã‹ã‹ã‚ã‚‰ãšã€ã“ã‚Œã¯į§ãŸãĄãĢã¨ãŖãĻそれãģお大きãĒå•éĄŒã§ã¯ã‚ã‚Šãžã›ã‚“ã€‚ãĒぜãĒら、ãģとんおぎクナイã‚ĸãƒŗãƒˆã¯äŧæĨ­ã§ã‚り、äŊ•ã‹ã‚’č¨­åŽšã™ã‚‹åŋ…čĻãŒã‚ã‚‹ã¨ãã€įŽĄį†ãƒ‘ãƒãƒĢãĢčĄŒãã‹ã‚‰ã§ã™ã€‚ čŖŊ品ぎčŗŧå…ĨåžŒæœ€åˆãŽé€ąã€ãžãŸã¯åœ°į„ãŽãƒ”ãƒšãƒƒãƒˆã€ã™ãĒã‚ãĄ バックã‚ĸップを取垗するåŋ…čĻãŒã‚ã‚Šãžã™ã€‚ そしãĻ、クã‚Ŋį”ˇãŽåœ°į„ã‚’æŒãŖãĻいるäēēã¯ã€įŽĄį†ãƒ‘ãƒãƒĢが最įĩ‚įš„ãĢロãƒŧドされるぞで16į§’åž…ã¤æē–備ができãĻいぞす。 さらãĢ、ここではかãĒã‚Šį´°ã„ãƒãƒŖãƒãƒĢãĢついãĻčĒŦ明しãĻいぞす。



フãƒŦãƒŧムワãƒŧクをäŊŋį”¨ã™ã‚‹ã¨ã€æ˜Žįĸēで非常ãĢč¤‡é›‘ã§ã‚ã‹ã‚ŠãĢくくãĒりぞす。 ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗč‡ĒäŊ“はおうですかīŧŸ į§ãŸãĄã¯ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚ŗãƒŧドãĢ䚗りčžŧãŋぞした。



ã‚ŗãƒŧドãĢã¯ã‚ŗãƒĄãƒŗãƒˆãŒãģとんおãĒいことがわかりぞす。 ã„ãã¤ã‹ãŽé›Ŗã—ã„å ´æ‰€ã¯čĒŦ明されãĻいぞせん。 すずãĻぎã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã¯å¯†įĩåˆã•れãĻいぞす。 1つぎクナ゚ではãĒく、2.5åƒčĄŒãŽé•ˇã„ã‚¯ãƒŠã‚šãŽäģŖã‚ã‚ŠãĢ、通常1000čĄŒãŽ3つぞたは4つぎクナ゚をå‡Ļį†ã—ãžã™ã€‚ã“ã‚Œã‚‰ã¯äē’いãĢ非常ãĢåŽŗå¯†ãĢčĒč­˜ã—ãĻいるため、通äŋĄã—ã€ã‚¤ãƒ™ãƒŗãƒˆã‚’č‡ĒčēĢãĢčģĸ送し、内部ぎįŠļ態を変更しぞす。 ぞた、ãƒĸデãƒĢã¨ãƒ“ã‚¸ãƒã‚šãƒ­ã‚¸ãƒƒã‚¯ãŽé–“ã€ãŠã‚ˆãŗãƒ“ã‚¸ãƒã‚šãƒ­ã‚¸ãƒƒã‚¯ã¨ãƒ“ãƒĨãƒŧぎ間ぎåĸƒį•ŒãĢは非常ãĢ大きãĒå•éĄŒãŒã‚ã‚Šãžã™ã€‚ ã€Œį‰šåŽšãŽæŠŸčƒŊパネãƒĢã‚’åŽŸčŖ…ã™ã‚‹é­”æŗ•ãŽãƒ‘ãƒãƒĢ」ぎようãĒもぎとå‘ŧばれるビãƒĨãƒŧクナ゚があり、同時ãĢč‡Ē分č‡ĒčēĢを描į”ģã—ã€å­ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã‚’æį”ģしぞす。さらãĢ、æŦĄãĢ、内部ぎパネãƒĢã€ãŠã‚ˆãŗé€šįŸĨを送äŋĄã™ã‚‹ã“とができぞすが、ビãƒĨãƒŧクナ゚からã‚ĩãƒŧバãƒŧãĢį™ģることもよくありぞす。



ã—ãŸãŒãŖãĻ、īŧˆéžå¸¸ãĢæĄäģļäģ˜ãã§īŧ‰ããŽã‚ˆã†ãĒmvcがありぞしたが、M + CVであることが判明しぞした。 つぞり ã‚ŗãƒŗãƒˆãƒ­ãƒŧãƒĢとビãƒĨãƒŧぎåĸƒį•Œã¯éžå¸¸ãĢ不明įĸēです。 ãƒĸデãƒĢãĢã¯ãƒ“ã‚¸ãƒã‚šãƒ­ã‚¸ãƒƒã‚¯ãŒã‚ã‚Šã€ã‚ŗãƒŗãƒˆãƒ­ãƒŧナãƒŧãĢはビジネ゚ロジックがあり、ビãƒĨãƒŧãĢはビジネ゚ロジック、UIロジックがあり、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽįŠļ態も3į¨ŽéĄžã™ãšãĻぎクナ゚ãĢåēƒãŒãŖãĻいることがわかりぞした。 ã—ãŸãŒãŖãĻ、たとえば、こぎデãƒŧã‚ŋがおこからæĨたぎか、čĒ°ãŒäŋĄé ŧã§ãã‚‹ãƒã‚¤ãƒŗãƒˆã§ã‚ã‚Šã€ã“ãŽãƒ‡ãƒŧã‚ŋがおこからæĨたぎか、そしãĻįžæ™‚į‚šã§ã“ãŽãƒ‡ãƒŧã‚ŋぎ最もäŋĄé ŧã§ãã‚‹ã‚ŗãƒ”ãƒŧをčĒ°ãŒäŋįŽĄã—ãĻã„ã‚‹ãŽã‹ã‚’į†č§Ŗã™ã‚‹ã“ã¨ã¯å›°é›Ŗã§ã™ã€‚ãĒぜãĒら、それはã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽã„ãã¤ã‹ãŽéƒ¨åˆ†ãĢあるからです。



ぞた、Ext JSフãƒŦãƒŧムワãƒŧクč‡ĒäŊ“がすずãĻぎãƒĻãƒŧã‚ļãƒŧをパブãƒĒãƒƒã‚ˇãƒĨ/ã‚ĩãƒ–ã‚šã‚¯ãƒŠã‚¤ãƒ–ã§æ§‹į¯‰ã•ã‚ŒãŸã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖãĢ向かわせることも判明しぞした。これは、原則としãĻ、すずãĻぎUIã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŒã“ãŽãƒĄã‚Ģニã‚ēムãĢé–ĸ逪äģ˜ã‘られãĻおり、プログナマãƒŧがフãƒŦãƒŧムワãƒŧクが提䞛するもぎをįŸĨらずãĢ選択するためです。 ぞた、パブãƒĒãƒƒã‚ˇãƒĨ/ã‚ĩãƒ–ã‚šã‚¯ãƒŠã‚¤ãƒ–ãŒæ­Ŗã—ã„ãƒ‘ã‚ŋãƒŧãƒŗã§ã™ãŒã€100ペãƒŧジぎã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚’čĻ‹ã‚‹ã¨ã€ãã‚Œã‚’į†č§Ŗã—ã‚ˆã†ã¨ã—ãĻいることがわかりぞす。「くそ、こぎパネãƒĢでこぎボã‚ŋãƒŗã‚’ã‚¯ãƒĒックするとおぎようãĒåŊąéŸŋがありぞすか」そしãĻåŊŧåĨŗã¯äŊ•ã‚’åŧ•きぞすかīŧŸã€



そしãĻ、最初ãĢã€ã‚¤ãƒ™ãƒŗãƒˆã¯æš—éģ™įš„ãĢčĻĒクナ゚ãĢåˆ†éĄžã•ã‚Œã€ããŽįĩæžœã€ãƒ“ジネ゚ロジックを持ついくつかぎクナ゚ãĢåˆ†éĄžã•ã‚Œã‚‹ã‚ģã‚Ģãƒŗãƒ€ãƒĒã‚¤ãƒ™ãƒŗãƒˆãŒį”Ÿæˆã•ã‚Œã€ã•ã‚‰ãĢå¤šããŽã‚¤ãƒ™ãƒŗãƒˆãŒį”Ÿæˆã•ã‚Œã‚‹ã“ã¨ãŒã‚ã‹ã‚Šãžã—ãŸã€‚ そぎ垌、フãƒŦãƒŧムワãƒŧクãĢã‚ˆãŖãĻã‚¤ãƒ™ãƒŗãƒˆãŽä¸€éƒ¨ãŒį„ĄčĻ–ã•ã‚Œã€ãƒĸデãƒĢが変更されると、こぎãƒĸデãƒĢは「č‡Ē分ぎデãƒŧã‚ŋãŒå¤‰æ›´ã•ã‚ŒãŸã€ã¨ã„ã†ã‚¤ãƒ™ãƒŗãƒˆã‚’į”Ÿæˆã—ãžã™ã€‚ さらãĢ5ã¤ãŽã‚¯ãƒŠã‚šãŒčĄ¨į¤ēされ、そぎ変更ãĢã‚ĩブ゚クナイブされぞす。これらぎクナ゚は、こぎãƒĸデãƒĢぎįŠļ態ãĢåŋœã˜ãĻįŠļ態を変更しぞす。

そぎįĩæžœã€3時間垌ãĢようやくčĒŋ和ぎとれたį”ģåƒã‚’æ§‹į¯‰ã—ã€ã™ãšãĻãŽã‚¤ãƒ™ãƒŗãƒˆãŒéžå¸¸ãĢ類äŧŧã—ãŸåå‰ã‚’æŒãĄã€ãŠã“ã§ã‚‚onclickãŒã‚ã‚‹ã“ã¨ã‚’į†č§Ŗã—ãžã™ã€‚ į†č§Ŗã™ã‚‹åŋ…čĻãŒã‚ã‚Šãžã™ã€‚ã“ã‚Œã¯ã€æŠŧしたこぎボã‚ŋãƒŗã‹ã‚‰ãŽonclick、ぞたはæŠŧã—ãŸéšŖãŽãƒœã‚ŋãƒŗã‹ã‚‰ãŽonclickです。 フãƒŦãƒŧムワãƒŧクは、äģģæ„ãŽã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽã‚ĩブ゚クãƒĒãƒ—ã‚ˇãƒ§ãƒŗã‚’įρæ­ĸしãĒいためです。 つぞり čĒ°ã‹ãŽã‚šãƒŧパãƒŧã‚ŗãƒŗãƒˆãƒ­ãƒŧナãƒŧã‹ã‚‰į‰šåŽšãŽãƒ‘ãƒãƒĢぎボã‚ŋãƒŗãĢã‚ĸクã‚ģ゚しãĻ、onclickでã‚ĩブ゚クナイブできぞす。 そしãĻ、それはåŧ•ᔍįŦĻでã‚Ēãƒŗã‚¯ãƒĒックされぞす。 ã“ã‚Œã‚‰ãŽã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãĢはį‹Ŧč‡Ēぎ選択性がãĒいため、そぎようãĒã“ã¨ã‚’č­°čĢ–ã™ã‚‹ãŽã¯éžå¸¸ãĢå›°é›Ŗã§ã™ã€‚ つぞり XPathãĢäŧŧたComponentQueryとå‘ŧばれるį‹Ŧč‡ĒãŽãƒĄã‚Ģニã‚ēãƒ ãŒã‚ã‚Šã€ã€Œį‰šåŽšãŽåå‰ã§į‰šåŽšãŽãƒ‘ãƒãƒĢãĢネ゚トされãĻいるすずãĻぎボã‚ŋãƒŗã‚’čĻ‹ã¤ã‘ã‚‹ã€ã¨ã„ã†RegExクエãƒĒをäŊœæˆã§ããžã™ã€‚ ã—ãŸãŒãŖãĻ、äŊ•かをãƒĒãƒ•ã‚Ąã‚¯ã‚ŋãƒĒãƒŗã‚°ã—ã‚ˆã†ã¨ã™ã‚‹ã¨ã€ä¸€čˆŦįš„ãĢã€į‰šåŽšãŽã‚¤ãƒ™ãƒŗãƒˆãĢ反åŋœã™ã‚‹å ´æ‰€ã‚’すずãĻčĻ‹ã¤ã‘ã‚‹ã“ã¨ã¯éžå¸¸ãĢå›°é›Ŗã§ã™ã€‚ 多くぎ場合、これãĢより、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŒãƒ•ãƒĒãƒŧã‚ēするときãĢã‚¤ãƒ™ãƒŗãƒˆã‚ĩイクãƒĢがį™ēį”Ÿã—ãžã—ãŸã€‚ã“ã‚Œã¯ã€å­ã‚¤ãƒ™ãƒŗãƒˆãŒå¸¸ãĢ襨į¤ēされ、å‡Ļį†ã‚’é–‹å§‹ã™ã‚‹ãŸã‚ã§ã™ã€‚ã“ãŽã‚ĩイクãƒĢã¯į„Ąé™ã§ã™ã€‚ ã€Œã“ãŽã‚¤ãƒ™ãƒŗãƒˆãŒã™ã§ãĢᧁãĢåąŠã„ãĻã„ã‚‹å ´åˆã€į§ã¯ãã‚Œã‚’å‡Ļį†ã—ãžã›ã‚“ã€ãŽã‚ˆã†ãĢトãƒĒッキãƒŧを書くぞで、それäģĨ上å‡Ļį†ã—ãžã›ã‚“ã€‚ つぞり 複雑ãĒã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖãĢついãĻです。

すずãĻ順čĒŋです。



そしãĻäģŠã€å¤§ããĒčŗĒ問がありぞす。 ビãƒĨãƒŧãƒ­ã‚¸ãƒƒã‚¯é–“ã€į•°ãĒるクナ゚間でぎ抟čƒŊぎåēƒãŒã‚Šã¨ã€č¨€čĒžã€æŠ€čĄ“ã€ããŽäģ–ぎ間ぎč˛Ŧäģģį¯„å›˛ãŽéžå¸¸ãĢ貧åŧąãĒåĸƒį•ŒãŽé–“ぎ密æŽĨãĒé–ĸäŋ‚がある大čĻæ¨ĄãĒã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽã‚ŗãƒŧドでは、通常そうではありぞせんかīŧŸ



そしãĻそれがčĩˇã“ãŖãŸã€‚ そしãĻ、原際ãĢは、ãĒぜそれがčĩˇã“ãŖãŸãŽã‹ã¯æ˜Žã‚‰ã‹ã§ã¯ã‚ã‚Šãžã›ã‚“ã€‚ į§ãŽæ„čĻ‹ã§ã¯ã€ã‚ˆã‚Šč‰¯ã„ã‹ã‚‚ã—ã‚ŒãĒいからです。 しかし、čĻã™ã‚‹ãĢ、Arrayã‚Ēブジェクトをチェックし、掋りはそれがおぎようãĢčĄŒã‚ã‚Œã‚‹ã‹ã§ã™ã€‚ そしãĻã€ã“ãŽæ°¸é ãŽį‰ŠčĒžã¯ã€ãƒ†ã‚šãƒˆãŽäŊœæˆã‚’開始すると、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãĢついãĻ多くぎことをå­Ļãļということです。原際、1つぎé–ĸ数をå‘ŧãŗå‡ēすためãĢ15個ぎã‚Ēブジェクトをロックするぎは非常ãĢhemoãĒぎで、それãģお多くぎæŽĨįļšã‚’čĄŒã†åŋ…čĻã¯ã‚ã‚Šãžã›ã‚“ã€‚ そしãĻã€ã“ãŽį‚šã§ã€åŊŧらはテ゚トを「さようãĒら」ãĢ受けぞした。

čĒŋæŸģįĩæžœã¯äŊ•ですかīŧŸ ã‚‚ãĄã‚ã‚“ã€ããŽã‚ˆã†ãĒįĩčĢ–ã¯...



しかし、æœŦåŊ“ãĢ、æœŦåŊ“ぎįĩčĢ–ã¯äŊ•ですかīŧŸ



開į™ēč€…ã€į‰šãĢJavaで博åŖĢčĢ–æ–‡ã‚’æ“č­ˇã—ãŸã“ã¨ãŒãĒい開į™ē者ãĢã¨ãŖãĻ、フãƒŦãƒŧムワãƒŧã‚¯ã‚’į†č§Ŗã™ã‚‹ãŽã¯éžå¸¸ãĢé›Ŗã—ã„ã“ã¨ã€‚ įŦŦäēŒãĢ、å‡ēãĻããŸã‚ŗãƒŧドは非常ãĢį´›ã‚‰ã‚ã—ã„ã§ã™ã€‚ 多くぎæŽĨįļšãŒã‚り、すずãĻぎクナ゚がおäē’いをįŸĨãŖãĻãŠã‚Šã€čĄ¨į¤ēã•ã‚Œã‚‹ã‚¤ãƒ™ãƒŗãƒˆã¯čǰãĢもåˆļåžĄã•ã‚Œãžã›ã‚“ã€‚ã“ã‚ŒãĢより、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽįŠļæ…‹å¤‰æ›´ãŒčŠąįĢぎようãĒįˆ†į™ēãĢつãĒがりぞす。 , - â€Ļ , . , , , JS-, html, CSS . ? â€Ļ ? 40-60 . ÂĢ Âģ, UI JS- JS-. つぞり , , , , .

, — ? , , . . publish/subscribe, mv, , mvc. dependency injection , , â€Ļ



, , , , , — , , , , , . , , , , , - , .

: , -, API, – . , -, - , JS- - , , , .. .

, , , . - . , . UI .



( ) — , ÂĢ , Âģ. , , , , , . つぞり .

, , - - , - , , - .

, . , ? .



, , PHP, JS , .



そしãĻ、これらぎ数千ぎフãƒŦãƒŧムワãƒŧクは、それぞれが2æģ´ãŽæ°´ã¨åŒæ§˜ãĢã€į‰šãĢフナック゚フãƒŦãƒŧムワãƒŧクでäē’いãĢ類äŧŧしãĻいることがよくありぞす-ãã‚Œã¯į›´æŽĨ「あãĒたぎ名前をJSãƒã‚¤ãƒŗãƒˆã¨č€ƒãˆãĻください」。 そしãĻ、Google Web ToolkitãŒé•ˇã„é–“æ­ģã‚“ã ã“ãŽåœ°į„ã‹ã‚‰ã€į§ãŸãĄã¯ãŠã†ã„ã†ã‚ã‘ã‹é¸æŠžã—ãĒければãĒりぞせん。 おうするīŧŸ ã‚‚ãĄã‚ã‚“ã€äŊ•ã‹ã‚’č€ƒãˆã€äģ–ぎäēēãŒã‚¤ãƒŗã‚ŋãƒŧネット上でäŊ•ã‹ã‚’é¸æŠžã™ã‚‹æ–šæŗ•ã‚’įĸēčĒã—ã€įĩæžœã‚’į›—ã‚€ãŸã‚ãĢおこかãĢį™ģるåŋ…čĻãŒã‚ã‚Šãžã—ãŸã€‚

そぎįĩæžœã€įĩæžœã‚’æļˆåŽģすることはできぞせんでした。įĩæžœã¯ã™ãšãĻ非常ãĢį•°ãĒã‚‹ãŸã‚ã€æ­Ŗį›´ãĒčŠ•äžĄã‚’čĄŒã†åŋ…čĻãŒã‚ã‚Šãžã™ã€‚ ã—ãŸãŒãŖãĻ、åŊ“åą€ãĢ寞しãĻは、äŧæĨ­ã‚„ã‚ã‚‰ã‚†ã‚‹į¨ŽéĄžãŽã‚ĩイトがおぎようãĒフãƒŦãƒŧムワãƒŧクをäŊŋį”¨ã—ãĻã„ã‚‹ã‹ã‚’įžåŽŸįš„ã‹ã¤å…ŦåšŗãĢčŠ•äžĄã™ã‚‹čŠĻãŋãŒčĄŒã‚ã‚Œãžã—ãŸã€‚



ãã“ã‹ã‚‰ã‚šãƒŠã‚¤ãƒ‰ã‚’åˆ‡ã‚Šå–ãŖãŸãŽã¯äŧæĨ­ã‚„ã‚ĩイトãĢついãĻã§ã—ãŸã€‚ãã‚Œã¯æ­Ŗį›´ãĒ数字ぎぞぞです。 これは、GithubがさぞざぞãĒテクノロジãƒŧãĢį™ģ場しãĻから一čˆŦįš„ãĢ記čŋ°ã•ã‚ŒãŸã‚ŗãƒŧãƒ‰ãŽčĄŒæ•°ã§ã™ã€‚ プナ゚ぞたはマイナ゚。



こぎ゚ナイドは、2015åš´ãĢæĩˇå¤–ã§čĄŒã‚ã‚ŒãŸä¸ģčρãĒã‚Ģãƒŗãƒ•ã‚ĄãƒŦãƒŗã‚šã§ã€ãŠãŽãƒ†ã‚¯ãƒŽãƒ­ã‚¸ãƒŧがおぎようãĢå ąå‘Šã•ã‚ŒãŸã‹ã‚’į¤ēしãĻいぞす。

そしãĻ、おこでもįĩĩã¯į•°ãĒりぞす。



ã“ãŽå†™įœŸã§ã¯ã€Googleぎ傞向がäēēæ°—を検į´ĸしãĻいぞす。 それらぎいくつかがありぞす...ここで、よくčĻ‹ã‚‹ã¨ã€React jsとAngular jsを除くすずãĻぎテクノロジãƒŧが原際ãĢ減少しãĻいることがわかりぞす。



Dojo、Yahoo ui dip、そしãĻ愛するExt jsぎ古いフãƒŦãƒŧムワãƒŧã‚¯ã‚’æŽĄį”¨ã™ã‚‹ã¨ã€ã™ãšãĻãŒčĄ°é€€ã—ãžã™ã€‚ ã“ãŽį‚šã§ã€React jsとAngular jsとæˆĻうäēēã¯ã„ãžã›ã‚“ã€‚ã“ã‚Œã¯ã€ã“ã‚ŒãŒå”¯ä¸€ãŽå•éĄŒã ã‹ã‚‰ã§ã™ã€‚

こぎようãĒčĒŋæŸģでは、2.5千äēēぎ開į™ēč€…ãŒčĒŋæŸģされ、それぞれが1つぎテクノロジãƒŧを選択しぞした。



これは、クナã‚ĻドIDEをäŊœæˆãŠã‚ˆãŗč˛ŠåŖ˛ã™ã‚‹ã‚ĸãƒĄãƒĒã‚Ģぎäŧšį¤žã§ã™ã€‚ įĩæžœã¯ã€ãžãŖãŸãį•°ãĒã‚‹å†™įœŸã§ã—ãŸã€‚ つぞり čŖŊ品をã‚ĩポãƒŧトする開į™ēč€…ã¯ãžã åŧˇåŠ›ã§ã™ã€‚ãŸã¨ãˆã°ã€ä¸€čˆŦįš„ãĢは時äģŖé…れぎBackboneですが、それãĢもかかわらず、ぞだ厌成中ぎプロジェクトが数多くありぞす。



そしãĻã“ã‚ŒãŒãƒ­ã‚ˇã‚ĸ市場です。 į§ãŸãĄã¯åŽ‡åŽ™ã§åƒã„ãĻいãĒいことは明らかであり、äŧšį¤žã§čŖŊ品をäŊœã‚‹åŋ…čĻãŒã‚ã‚Šã€å¤šããŽčŖŊå“ã¨č¨ˆį”ģがあり、čĒ°ã‹ã‚’é›‡ã†åŋ…čĻãŒã‚ã‚‹ãŸã‚ã€čĒ°ã‚’é›‡ã†ã“ã¨ãŒã§ãã‚‹ã‹ã‚’čŠ•äžĄã—ã‚ˆã†ã¨ã—ãžã—ãŸã€‚ ここで、一čˆŦįš„ãĢã€å†™įœŸã¯į•°ãĒりぞす。 ExtJSぎバãƒŧã‚¸ãƒ§ãƒŗãŽ1つīŧˆã‹ãĒã‚Šé•ˇã„ãŸã‚īŧ‰ã¨Backboneぎバãƒŧã‚¸ãƒ§ãƒŗãŽã„ãã¤ã‹īŧˆ2008åš´ãĢį”Ÿãžã‚ŒãŸãŸã‚īŧ‰ã§ã€äŊ•らかぎåŊĸでčĒ°ã‹ãŒå¯žå‡ĻしãĻいることが判明しぞした。 つぞり これは、こぎフãƒŦãƒŧムワãƒŧクでこぎäēēがãƒĒã‚ĸãƒĢã‚ŋイムでäŊ•ã‹ã‚’čĄŒã†æē–備ができãĻいることをäŋč¨ŧするもぎではありぞせんが、それãĢもかかわらず、React jsとAngular jsãŽæˆé•ˇã—ãĻã„ã‚‹æŠ€čĄ“ãŽä¸­ã§ã€BackboneとExtJSがįǁį„ļįžã‚Œã€ãã‚Œã‚‰ãŒã‚ã‚Šã€ãã‚Œã‚‰ãŽå¤šããŒã‚ã‚Šãžã™ã€‚ ReactぎįŸĨč­˜ã‚’čļ…えるバックボãƒŧãƒŗã‚¸ãƒ§ãƒ– ã“ã‚Œã¯ãƒ­ã‚ˇã‚ĸå¸‚å ´ãŽã™ã°ã‚‰ã—ã„å†™įœŸã§ã™ã€‚



そぎįĩæžœã€ã“れらすずãĻãŽį ”įŠļを可čƒŊãĒ限りæ¨Ēæ–­ã—ã€čˆˆå‘ŗãŽã‚ã‚‹ã‚‚ãŽã‚’æŽ‹ã—ãžã—ãŸã€‚ åŊŧらはそこãĢDojoをčŋŊ加し、最初ãĢ切りæ›ŋえたいExtJS 6をčŋŊ加しぞした。 Dojoは、ParallelsでäŊŋį”¨ã•ã‚ŒãĻおり、Parallelsと密æŽĨãĢįĩąåˆã•れãĻおり、そぎ上ãĢäŊ•かが書かれãĻいるためです。



ここでは、5ã¤ãŽã‚šãƒŠã‚¤ãƒ‰ãŒå¤§čƒ†ãĢåŊĢられãĻいぞす。 そこãĢã‚ã‚‹čŠąã¯éžå¸¸ãĢé€€åąˆãĒãŽã§ã€į§ãŸãĄå…¨å“ĄãĢ合わãĒã‹ãŖãŸį†į”ąãĢついãĻはčĒžã‚Šãžã›ã‚“ã€‚ į§ã¯ãã“ã§æ­ĸぞりぞせん。 č‡Ē分ぎためãĢ勉åŧˇã™ã‚‹ãŸã‚ãĢį™ģãŖãŸã‚‰ã€č‡Ē分ぎためãĢäŊ•らかぎįĩĩを描くでしょう。 į›Žæ¨™ãĢåŸēãĨいãĻčŠ•äžĄã—ãžã—ãŸã€‚ ã‚ŋ゚クぎ1つは、æ—ĸå­˜ãŽã‚ŗãƒŧドぎ一部ãĢテクノロジãƒŧを多かれ少ãĒかれ埋めčžŧむことでした。 ãƒĸノãƒĒã‚ˇãƒƒã‚¯ãĒフãƒŦãƒŧムワãƒŧクではãĒく、垐々ãĢ導å…ĨできるいくつかぎテクニックとナイブナãƒĒぎã‚ģットがåŋ…čĻã§ã™ã€‚ ã“ãŽį‚šã§ã€KnockoutはフãƒŦãƒŧムワãƒŧクではãĒく、UIナイブナãƒĒであるDojoは単ãĒã‚‹ãƒžãƒŗãƒĸ゚であり、ExtJS 6は新しいã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖã‚’å°Žå…ĨしãĻいぞすが、原際ãĢはExtJS 4ã¨å¤§åˇŽãĒいことがわかりぞした。 äŊ•ã‚‰ã‹ãŽį¨ŽéĄžãŽã‚ĩポãƒŧトがį™ģ場し、ãƒĸバイãƒĢデバイ゚でぎ動äŊœãŒæ”šå–„ã•ã‚Œãžã—ãŸãŒã€ã‚ŗãƒŗã‚ģプトは変更されãĻいぞせん。 そこぎã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖã¯å°‘ã—č‰¯ããĒã‚Šãžã—ãŸãŒã€į§ãŸãĄãŒæŽ¨åŽšã—ãŸã‚ˆã†ãĢ、ExtJS 6ã§æ­Ŗį›´ãĢã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖã‚’æ›¸ãæ›ãˆã‚‹ãŽã¨ãģãŧ同じです。äģ–ぎフãƒŦãƒŧムワãƒŧã‚¯ã§ãã‚Œã‚’æ”šé€ ã™ã‚‹ã“ã¨ã‚’ææĄˆã™ã‚‹ãŽã¨åŒã˜ã§ã™-ã‚ŗã‚šãƒˆã¯ãģãŧ同じです。 そぎįĩæžœã€ã™ãšãĻ同じUIãƒŦイヤãƒŧ、すずãĻ同じパブãƒĒãƒƒã‚ˇãƒĨ/ã‚ĩブ゚クナイブぎためãĢ拒åĻされぞした。

åŽŸéš›ã€įœŸãŽå€™čŖœč€…ã¯2äēēしかいぞせんでした。



最初ぎ-AngularJS-明らかãĒį†į”ąã§ã€äŧšį¤žãŽã„くつかぎ部門と一部ぎ外部ã‚ĸドバイã‚ļãƒŧãĢã‚ˆãŖãĻぞだ非常ãĢįŠæĨĩįš„ãĢ支持されãĻいぞした。 しかし、åŊŧãĢは非常ãĢčˆˆå‘ŗæˇąã„ã‚¸ãƒŦãƒŗãƒžãŒį”Ÿã˜ãžã—ãŸã€‚ 一斚で、それはæœŦåŊ“ãĢ非常ãĢč‰¯ã„č§Ŗæąēį­–ãĢčĻ‹ãˆãžã—ãŸãŒã€ä¸€æ–šã§ã€Habrと、一čˆŦįš„ãĢã¯č‹ąčĒžãŽã‚¤ãƒŗã‚ŋãƒŧãƒãƒƒãƒˆã§å¤šããŽč¨˜äē‹ã‚’čĻ‹ãžã—ãŸã€‚ã¨ãĻもクãƒŧãƒĢã§ã™ãŒã€į§ãŸãĄã¯æˇˇäšąã—ãĻいぞす。

ã“ãŽå•éĄŒãĢé–ĸã™ã‚‹į§ãŸãĄãŽčĻ‹č§Ŗã¯ã€į§ãŸãĄãŒ2ã¤ãŽãƒ—ãƒ­ã‚¸ã‚§ã‚¯ãƒˆã‚’æŒãŖãĻいるバãƒŧã‚¸ãƒ§ãƒŗ1ã‚’æŽĄį”¨ã—ã€ã‚Ŋãƒŧã‚šã‚ŗãƒŧドをåē§ãŖãĻ吸うと、こぎフãƒŦãƒŧムワãƒŧクは個åˆĨぎ部分ãĢåˆ†å‰˛ã™ã‚‹éžå¸¸ãĢå„ĒれたãƒĸジãƒĨãƒŧãƒĢæ€§ã‚’æŒãĄã€ãã‚Œãžã‚ŒãŒį‹Ŧč‡Ēぎ小さãĒ抟čƒŊをäŊœã‚Šãžã™-これは非常ãĢäžŋ刊でå„ĒれãĻいぞす。 しかし、単一ぎ゚ã‚ŋイãƒĢãŽãƒ•ã‚Ąã‚¤ãƒĢãƒŦイã‚ĸã‚ĻトはãĒく、単一ぎ゚ã‚ŋイãƒĢぎ変数ぎå‘Ŋ名や単一ぎ゚ã‚ŋイãƒĢãŽã‚ŗãƒŧドフりãƒŧマット、つぞり これはおういうわけかフãƒŦãƒŧムワãƒŧクでヒãƒŧプãĢ到達したいもぎですが、ネバãƒŧãƒžã‚¤ãƒŗãƒ‰ã¯å¤ąæ•—ã—ãžã™ã€‚ そしãĻ、時間ぎįĩŒéŽã¨ã¨ã‚‚ãĢ、こぎãƒŦイã‚ĸã‚Ļト゚ã‚ŋイãƒĢは変わりぞす。 ãžãŸã€ã‚ŗãƒŧドãĢã¯ã€č‰¯ã„æ„å‘ŗã§åˆĨぎクナ゚ãĢするåŋ…čĻãŒã‚ã‚‹å ´æ‰€ãŒã—ã°ã—ã°ã‚ã‚‹ã“ã¨ã‚’č‡Ē分からäģ˜ã‘加えぞすが、äŊ•ã‚‰ã‹ãŽį†į”ąã§ã€ãã‚Œã‚‰ã¯é–ĸ数を持つã‚ĒブジェクトぎåŊĸでそこãĢæŠŧしčžŧぞれぞす。 ãƒ‡ãƒãƒƒã‚°ãŒé›Ŗã—ãã€ã•ãžã–ãžãĒトãƒĒッキãƒŧãĒ「マジック」、いくつかぎ新しいテクノロジãƒŧとぎįĩąåˆã¯éžå¸¸ãĢå›°é›Ŗã§ã™ã€‚ã“ã‚Œã¯ã€æ¨™æē–が厌全ãĢį‹Ŧč‡Ēぎもぎであるためです。こぎビジネ゚をįĩ„ãŋįĢ‹ãĻã‚‹æ–šæŗ•ã‚‚æ˜Žįĸēã§ã¯ã‚ã‚Šãžã›ã‚“ãŒã€ã“ãŽå•éĄŒã¯č§Ŗæąēできぞす。 しかし、最æ‚ĒãĒぎは、åŊ“åą€ãĢč˛ŠåŖ˛ã§ããĒã‹ãŖãŸã“ã¨ã§ã™ã€‚ãŋんãĒ、「ãŋんãĒ、新しいバãƒŧã‚¸ãƒ§ãƒŗã‚’äŊœãŖãĻいるぎãĢã€ã‚ŗãƒŧドãĢäē’æ›æ€§ãŒãĒã„ã€ã¨č¨€ãŖãŸã‹ã‚‰ã§ã™ã€‚ æŦĄãĢäŊ•をすずきかは不明です。



わかりぞした。åŊŧらはバãƒŧã‚¸ãƒ§ãƒŗ2をčĻ–č´ã—ãžã—ãŸã€‚ãƒãƒŧã‚¸ãƒ§ãƒŗ2は、一čˆŦįš„ãĢčĻ‹ãŸį›Žã¯į´ æ™´ã‚‰ã—ãã€åŋ…čρãĒもぎ、こぎようãĒãƒãƒƒã‚¯ã‚¨ãƒŗãƒ‰æŒ‡å‘ãŽã‚ĸプロãƒŧチ、すずãĻãŒæŖšãĢ配įŊŽã•れãĻいる、非常ãĢå„ĒれたTypeScript構文がåŋ…čĻã§ã™ã€‚ しかし、それはいぞいぞしい、一čˆŦãĢ、ãƒĒãƒĒãƒŧ゚ぎ可čƒŊ性はありぞせん。 į§ã¯ã€æœ€ã‚‚é‡čρãĒこととしãĻ、こぎ゚ãƒŧパãƒŧãƒĄã‚ŦグãƒŧグãƒĢį¤žã‚’į†č§Ŗã—ãĻいãĒã„ã€ãã‚Œã¯é•ˇã„é–“Pythonで働いãĻきぞした... pythonがバãƒŧã‚¸ãƒ§ãƒŗ2から3ãĢ切りæ›ŋãˆã‚‹æ–šæŗ•ãŽäž‹ã¯ã€ã“ã‚Œã‚’čĄŒã†æ–šæŗ•ãŽå˜ãĒã‚‹æ•™į§‘æ›¸ãŽäž‹ã§ã™ã€‚ 古いバãƒŧã‚¸ãƒ§ãƒŗãŽæ§‹æ–‡ã‚’įļ­æŒã™ã‚‹åŋ…čĻãŒã‚ã‚Šã€ãƒãƒƒã‚¯ãƒ¯ãƒŧドäē’æ›ã§ãĒければãĒりぞせん。 そしãĻã€ã“ã“ã§ã„ãã¤ã‹ãŽåœ°į„ãŽã‚ˆã†ãĒåœ°į„ã¯į°Ąå˜ã§ã™ã€‚ äē’æ›æ€§ãŒãĒくãĒりぞす。 ã€Œį§ãŸãĄã¯äģŠã€äŊ•か新しいことをしãĻいぞす。 ã“ãĄã‚‰ãŒã‚ĸãƒĢãƒ•ã‚Ąį‰ˆã§ã™ã€‚ãƒ‰ã‚­ãƒĨãƒĄãƒŗãƒˆã¯ã‚ã‚Šãžã›ã‚“ã€‚ 開始時は不明įĸēであり、最も重čρãĒことは、3ã¤ãŽč¨€čĒžã™ãšãĻã§į•°ãĒる構文をäŊŋį”¨ã—ãĻいることです。 ãžã‚ã€į—…æ°—ãĢãĒる、気ãĢしãĒいでくださいīŧ

ã“ã‚Œã¯č§Ŗæąēį­–ã§ã™ã‹īŧŸ į”ŗã—č¨ŗã‚ã‚Šãžã›ã‚“ãŒã€ã“ã‚Œã¯ãƒ•ãƒ­ãƒŗãƒˆã‚¨ãƒŗãƒ‰é–‹į™ēã‚¨ãƒŗã‚¸ãƒŗã§ã™ã‹ã€čĒ°ã‚‚ãŒå¤§åĨŊきãĒ最もクãƒŧãƒĢãĒフãƒŦãƒŧムワãƒŧクですかīŧŸ そしãĻ、4äēēãŒįžåœ¨AngularJSで書いãĻã„ã‚‹įŽĄį†č€…ã¯ãŠã†ã™ã‚Œã°ã‚ˆã„ã§ã™ã‹īŧŸ æĨãĻã€č¨€ãŖãĻくださいīŧšã€ŒãŋんãĒ、あãĒたはįŸĨãŖãĻã„ã‚‹ã€į§ãŸãĄã¯ãŸã åē§ãŖãĻすずãĻã‚’æ›¸ãį›´ã™ã€‚ į§ãŸãĄãĢはäŊ•ã‚‚č‰¯ããĒることはありぞせん。新しいバãƒŧã‚¸ãƒ§ãƒŗãĢį§ģčĄŒã™ã‚‹ã ã‘ã§ã™ã€‚ã€ -「ãĒぜ動くぎīŧŸã€-「ぞあ、åŊŧらは古いもぎを捨ãĻたから」 そしãĻã€ã‚‚ãĄã‚ã‚“ã€åŊŧã‚‰ã¯į§ãĢ尋ねぞすīŧšã€Œčžã„ãĻください、しかし、PythonぎようãĒもぎがありぞす、䞋えば、2から3で」。 つぞり äŊ•ã‚‰ã‹ãŽį¨ŽéĄžãŽãƒ‘ãƒŧã‚ĩãƒŧã‚’č¨­åŽšã—ãĻãŋãžã—ã‚‡ã†ã€‚ã‚ŗãƒŧドを再フりãƒŧマットし、äŊ•らかぎåŊĸでã‚ĸã‚ģãƒŗãƒ–ãƒĢを開始しぞす。 「ごめん、いや。 さらãĢ、それだけでãĒく、いや、それでもすずãĻを変えぞす。 明æ—ĨはåˆĨぎ構文ãĢãĒりぞす。」 そしãĻ、これはčǰãĢã‚‚åŖ˛ã‚‹ã“ã¨ã‚‚ä¸å¯čƒŊです。 å–įˇ åŊšäŧšã¯į§ã‚’čĻ‹ãĻ、明æ—ĨぎためãĢį§ã‚’č§Ŗé›‡ã—ãžã™ã€ãã‚ŒãŒã™ãšãĻです。 つぞり AngularJSをおうするかは不明です。



さらãĢčĒŋæŸģを開始し、2į•Ēį›ŽãŽč§Ŗæąēį­–ãŒã‚ã‚Šãžã—ãŸ-これはFacebookがäŊœæˆã—たReact JSです。 銚いたことãĢ、これはフãƒŦãƒŧムワãƒŧクではãĒく、単ãĒるUIナイブナãƒĒであることが判明しぞした。 非常ãĢ明įĸēãĒį†č§Ŗå¯čƒŊãĒæ§‹é€ ã‚’æŒãĄã€ã“ã‚Œã¯å˜ä¸€ãŽãƒ‡ãƒŧã‚ŋフロãƒŧであり、デãƒŧã‚ŋぎãŋを受け取り、それらを描į”ģするだけであることは明らかです。 å„ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã¯åˆ†é›ĸされãĻãŠã‚Šã€å„ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã¯ã€å…Ĩ力としãĻ受け取るもぎ、最įĩ‚įš„ãĢ描į”ģするもぎ、内部įŠļ態としãĻäŋå­˜ã™ã‚‹ã‚‚ãŽãŽåŽŖč¨€ã‚’æŒãŖãĻいぞす。 いいえ、一čˆŦįš„ãĢ、おこかからæŽĨįļšã—、それがおぎようãĢ抟čƒŊするかをå­Ļãŗã€įŸĨるåŋ…čĻãŒã‚ã‚‹ã‚ã‚‹į¨ŽãŽé­”æŗ•ãŽãƒ•ã‚ŖãƒĢã‚ŋãƒŧやそぎäģ–ぎゴミ...ã“ãŽį‚šã§ã€ã™ãšãĻがä爿¸Ŧ可čƒŊで非常ãĢクãƒŧãƒĢです。 パフりãƒŧãƒžãƒŗã‚šã‚’čĒŋ整するためぎ非常ãĢį°Ąå˜ãĒ抟äŧšãŒã‚ることを気ãĢå…ĨãŖãĻいぞす。それがおぎようãĢ抟čƒŊするか、それをおぎようãĢäŊŋį”¨ã™ã‚‹ã‹ãŒæ˜Žįĸēであり、それãĢついãĻ非常ãĢ複雑ãĒもぎはありぞせん。 åŋ…čĻãŽãĒいã‚ĩãƒŧバãƒŧãƒŦãƒŗãƒ€ãƒĒãƒŗã‚°ã‚‚ã‚ã‚Šãžã™ãŒã€ãã‚Œã¯į´ æ™´ã‚‰ã—ã„ã“ã¨ã§ã™ã€‚



FacebookãŒįŠæĨĩįš„ãĢæŽ¨é€˛ã—ãĻいるFluxã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖã¯ã€ã“ã‚Œãžã§ãšãŖã¨é€˛ã‚“ã§ã„ãžã™ã€‚ į§ãŸãĄã¯ã™ãšãĻをčĻ‹ãĻã„ãŸãŒã€į§ãŸãĄã¯ãã†ã§ã‚ãŖãŸã‚ˆã†ãĢã€ãžã‚ãžã‚ã ãŖãŸã€‚ 一斚で、そぎ一斚向ぎデãƒŧã‚ŋフロãƒŧã€ãŠã‚ˆãŗåŒæœŸå‡Ļį†ã¯ã€ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽį‰šåŽšãŽįŠļ態が明įĸēãĢį†č§Ŗã•ã‚Œã‚‹ã‚šãƒ†ãƒŧãƒˆãƒžã‚ˇãƒŗãŽã‚ˆã†ãĒもぎです。 しかし、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã‚’į‹ŦįĢ‹ã—ãŸãƒ–ãƒ­ãƒƒã‚¯ãĢåˆ†å‰˛ã™ã‚‹æ–šæŗ•ã¨ã€Angular JSぎようãĢそれをいくつかぎ個åˆĨãŽã‚¨ãƒŗãƒ†ã‚Ŗãƒ†ã‚ŖãĢåˆ†å‰˛ã™ã‚‹æ–šæŗ•ã¯ã‚ãžã‚Šæ˜Žįĸēではありぞせん。 おうやら、゚トã‚ĸデãƒŧã‚ŋをæ ŧį´ã™ã‚‹ãƒ•ã‚ŠãƒŧムãĢは明らかãĢã‚ĸãƒŗãƒãƒ‘ã‚ŋãƒŧãƒŗãŒã‚ã‚Šã€åŒæ™‚ãĢãƒ“ã‚¸ãƒã‚šãƒ­ã‚¸ãƒƒã‚¯ã‚’åŽŸčŖ…ã—ã€ã“ãŽãƒ‡ãƒŧã‚ŋã‚’å¤‰æ›´ã™ã‚‹ãŸã‚ãŽãƒ­ã‚¸ãƒƒã‚¯ã‚‚åŽŸčŖ…ã—ãĻいるようです。 つぞり ãƒĸデãƒĢであると同時ãĢã‚ŗãƒŗãƒˆãƒ­ãƒŧナãƒŧでもありぞす。 ãƒĻニãƒŧクãĒåå‰ãŽã‚¤ãƒ™ãƒŗãƒˆã‚’æŒã¤å˜ä¸€ãŽã‚¤ãƒ™ãƒŗãƒˆãƒã‚šã¨ã—ãĻãŽå˜ä¸€ãŽãƒ‡ã‚Ŗã‚šãƒ‘ãƒƒãƒãƒŖã¨ã„ã†ã‚ĸイデã‚ĸã¯ã€ã‚ŗãƒŧド内でäŊ•ã‹ãŒå¤‰æ›´ã•ã‚ŒãŸįŽ‡æ‰€ã‚’ã™ã°ã‚„ãčĻ‹ã¤ã‘ã€čŋ…速ãĒãƒĒãƒ•ã‚Ąã‚¯ã‚ŋãƒĒãƒŗã‚°ã‚’åŽŸčĄŒã—ã€ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŒį›¸äē’ãĢ分é›ĸしãĻ動äŊœã™ã‚‹ã¨ã„ã†į‚šã§éžå¸¸ãĢå„ĒれãĻいぞす。 しかし、ダイナミク゚がおぎようãĢ提䞛されるか、たとえば、äē’いãĢį‹ŦįĢ‹ã—ãĻ動äŊœã™ã‚‹ã¨åŒæ™‚ãĢåŒã˜ã‚¤ãƒ™ãƒŗãƒˆã‚’į”Ÿæˆã™ã‚‹1つぎį”ģéĸで2つぎã‚Ļã‚Ŗãƒŗãƒ‰ã‚Ļã‚’é–‹ãæ–šæŗ•ãĒおは厌全ãĢį†č§Ŗä¸čƒŊです...

æĻ‚しãĻ、Facebookã¯ã‚ŗãƒŧドãĢåŧĩりå‡ēしãĻいぞせんでした。そこãĢはありぞせん。これはフãƒŦãƒŧムワãƒŧクではãĒãã€ä¸€į¨ŽãŽã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖãŽã‚ĸイデã‚ĸです。 ãžãŸã€ã‚¤ãƒ™ãƒŗãƒˆãƒã‚šã¨å‘ŧばれる80åš´äģŖãĢį™ē明されぞした。



ã‚ã‹ãŖãŸ ã“ãŽã‚´ãƒŸã‚’åŽŸčŖ…ã™ã‚‹ã‚ĩãƒŧドパãƒŧãƒ†ã‚ŖãŽãƒ•ãƒŦãƒŧムワãƒŧクをčĻ‹ãĻãŋぞしょう。 į§ã¯5つぎäŊœå“ã‚’ãƒŦビãƒĨãƒŧしぞしたが、それらはすずãĻ2æģ´ãŽã‚ˆã†ã§ã‚り、AngularJSã‚ˆã‚Šã‚‚ã“ãŽį‚šã§ã¯ã‚‹ã‹ãĢæ‚Ēく、Ext JSよりもはるかãĢæ‚Ēいです。 はい、ã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖãŒãŠãŽã‚ˆã†ãĢ抟čƒŊするかをįĸēčĒã™ã‚‹æ–šãŒč‰¯ã„ã§ã™ãŒã€ã‚šãƒˆã‚ĸãŽå‹•įš„ãĒäŊœæˆã€ã‚ĸãƒŗãƒ­ãƒŧãƒ‰ã€ãŠã‚ˆãŗã‚šãƒˆã‚ĸ間ぎUIã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽäŊ•らかぎãƒĒãƒŗã‚¯ãĢより、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽä¸€éƒ¨ãŒį›¸äē’ãĢ分é›ĸしãĻ動äŊœã—、 2ã¤ãŽã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã¯ã€åŒã˜ãƒ“ãƒĨãƒŧと2ã¤ãŽã‚ŗãƒŗãƒˆãƒ­ãƒŧナãƒŧをäŊŋį”¨ã—ãĻ同じようãĢäŊœæˆã•ã‚Œã€ã“ã‚Œã‚‰ãŽã‚¤ãƒ™ãƒŗãƒˆã§äē’いãĢæˆĻうことはありぞせんでした。 ã—ãŸãŒãŖãĻã€ã“ãŽį‚šã§ã€Webã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽé–‹į™ēでは、すずãĻが非常ãĢåĨ‡åĻ™ã§ã™ã€‚ å¤šããŽå ´åˆã€ã“ã‚Œã‚’čĄŒã†æ–šæŗ•ã¯æ˜Žįĸēではありぞせん。 しかし、これらぎフãƒŦãƒŧムワãƒŧクでは、過åŽģ5嚴間ぎjavascriptぎ開į™ēを、同型、npm-modules、ナイブナãƒĒ抟čƒŊぎãƒŦãƒŗãƒ€ãƒĒãƒŗã‚°ãŽåŊĸåŧã€ES6ã‚ĩポãƒŧトぎåŊĸåŧã§čĻ‹ã‚‹ã“ã¨ãŒã§ããžã™-ã“ã‚Œã¯č‰¯ã„ã“ã¨ã§ã™ã€‚ ただ、それは気ãĢせず、イチジクはありぞせん、一čˆŦįš„ãĢ、åŊŧã‚‰ã¯ãƒ†ã‚šãƒˆã‚¤ãƒŗãƒ•ãƒŠã‚šãƒˆãƒŠã‚¯ãƒãƒŖã‚’æŒãŸãšã€ãƒ†ã‚šãƒˆã‚’æ›¸ãæ–šæŗ•ã¯æ˜Žįĸēではありぞせん。 į‰šãĢこぎ新しい゚ãƒŧパãƒŧéšŽåą¤ã§ã¯ã€ãƒ†ã‚šãƒˆãŽæ›¸ãæ–šãŒä¸æ˜Žįĸēです。 そしãĻ、å›Ŋ際化はありぞせん。

途中で、ã‚ŋイプ゚クãƒĒプトãĢ遭遇しぞした。 ã“ãŽį‚šã§ã€ãã‚Œã¯ä¸€čˆŦãĢįˆ†åŧžã§ã™ã€‚



æœ€ã‚‚į´ æ™´ã‚‰ã—ã„ã“ã¨-č‡Ē分で「バイク」をäŊœã‚ŠãŸã„と思うさぞざぞãĒ開į™ēč€…ã‹ã‚‰ä¸åŋ…čρãĒå‰ĩ造性を取り除くこと-ã“ã‚Œã§åŽŒį’§ãĢできると思いぞした。 Typescriptã¯ãƒˆãƒŠãƒŗã‚šã‚ŗãƒŗãƒ‘ã‚¤ãƒŠã§ã™ã€‚ åž‹ã‚’č¨­åŽšã™ã‚‹ã ã‘ã§ã€åŒã˜æ§‹æ–‡ã§javascriptぎようãĒã‚ŗãƒŧãƒ‰ã‚’č¨˜čŋ°ã—ぞす。 つぞり 各変数ãĢã¯åž‹ãŒã‚ã‚Šã€č¤‡é›‘ãĢãĒる場合があり、同時ãĢč¤‡æ•°ãŽåž‹ã‚’æŒã¤ã“ã¨ãŒã§ãã€ããŽįĩæžœã€ã“ã‚Œã‚‰ãŽåž‹ãŒå‰Šé™¤ã•ã‚Œã€ã“ã‚Œã‚‰ãŽåž‹ãŒå˜į´”ãĢå‰Šé™¤ã•ã‚Œã‚‹ãžãŖãŸãåŒã˜æ§‹æ–‡ã‚’æŒã¤javascriptãƒ•ã‚Ąã‚¤ãƒĢがäŊœæˆã•れぞす。 ECMAScript 2006čĻæ ŧãĢæē–拠したäžŋ刊ãĒæ§‹æ–‡ã‚ˇãƒĨã‚Ŧãƒŧがいくつかありぞす。 ECMAScript 6から5ぎ単ãĒã‚‹ã‚ŗãƒŗãƒ‘ã‚¤ãƒŠã€‚



たとえば、åĨ‘į´„å…¨äŊ“ã‚’äŊœæˆã§ãã‚‹ã¨ãã€ã¤ãžã‚ŠããŽã‚ˆã†ãĒ複雑ãĒデãƒŧã‚ŋ型がありぞす。 ネ゚トされた構造を持つã‚Ēブジェクトがあり、そぎようãĒunningãĒネ゚トされたã‚ĒブジェクトがAPIからæĨãĻã„ã‚‹ã“ã¨ã€ãžãŸã¯ãŸã¨ãˆã°ãƒ•ã‚ŖãƒŧãƒĢãƒ‰ãŒįš°ã‚Ščŋ”されãĻいることをäē‹å‰ãĢįŸĨãŖãĻいるã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽã•ãžã–ãžãĒ部分がありぞす。 これをã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽåˆĨ々ぎ部分間ぎæŽĨį€å‰¤ãŽä¸€į¨Žã¨ã—ãĻäŊŋį”¨ã—ãžã™ã€‚ čĒ°ã‚‚ãŒäŊ•ã‚‰ã‹ãŽãƒ“ã‚¸ãƒã‚šã‚¤ãƒŗã‚ŋãƒŧフェイ゚ãĢį„Ļį‚šã‚’åŊ“ãĻãĻこぎビジネ゚ロジックをäŊœæˆã—ぞす。 ãžãŸã€ã‚ŗãƒŗãƒ‘ã‚¤ãƒŠã¯ã€ã“ã‚Œã‚‰ãŽãƒ•ã‚ŖãƒŧãƒĢドへぎã‚ĸクã‚ģã‚šã‚’æ­Ŗã—ãæ•´į†ã—ãĻã„ã‚‹å ´åˆã€ãƒ•ã‚ŖãƒŧãƒĢãƒ‰ãŽæ­Ŗã—ã„åž‹ã‚’æ„å‘ŗã—ãĻã„ã‚‹å ´åˆã€ã‚ŗãƒŗãƒ‘ã‚¤ãƒĢできるかおうかをビãƒĢドするときãĢすぐãĢチェックしぞす。



æŦĄãĢã€ã‚¤ãƒŗã‚ŋãƒŧフェãƒŧ゚がありぞす。 将æĨをčĻ‹æŽãˆãĻ-į§ãŸãĄãŒæ›¸ã„ãŸãƒ•ãƒŦãƒŧムワãƒŧã‚¯ã¯ã‚¤ãƒŗã‚ŋãƒŧフェãƒŧ゚ãĢ大きくåŸēãĨいãĻいぞす。 į§ãŸãĄã¯ã€å›ēäŊ“ぎ原則ãĢ導かれ、より小さãĒč˛Ŧäģģ領域ãĢåˆ†å‰˛ã—ã€ã•ãžã–ãžãĒクナ゚を小さãĒã‚¤ãƒŗã‚ŋãƒŧフェãƒŧ゚ãĢ䞝存させぞす。 ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽãƒ‡ã‚ĢップãƒĒãƒŗã‚°ãŒå¤§ãããĒãŖãĻいることがわかりぞす。



Pythonぎ場合と同様ãĢ、一čˆŦįš„ãĒã‚ĩポãƒŧトがありぞす。 PythonぎようãĢãƒ‡ã‚ŗãƒŦãƒŧã‚ŋがあり、C ++ãŽä¸–į•Œã§ã¯æ…Ŗäž‹ã¨ãĒãŖãĻいるジェネãƒĒãƒƒã‚¯ãŒã‚ã‚Šã€įŠæĨĩįš„ãĢäŊŋį”¨ã—ãĻいぞす。 ãžãŸã€č¤‡åˆåž‹ãŒã‚ã‚Šãžã™ã€‚ ぞれãĢ、回éŋできãĒい場合は、こぎ変数ãĢ文字列ぞたは数値ぎいずれかがåĢãžã‚Œã‚‹ã¨č¨€ã†ã“ã¨ãŒã§ããžã™ã€‚ åŊŧもこれでうぞく動äŊœã—ぞす。



そぎįĩæžœã€ã“ãŽį ”įŠļぎ垌、čŗĒ問はさらãĢ多くãĒりぞした。 おぎã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖã‚’é¸æŠžã—ãžã™ã‹īŧŸ おぎã‚ŊãƒĒãƒĨãƒŧã‚ˇãƒ§ãƒŗãŒæ­Ŗã—ã„ã§ã™ã‹īŧŸ ECMAScript 6ぎåŊĸåŧãŽjavascriptぎ開į™ēãĢ遅れずãĢついãĻã„ãæ–šæŗ•ã¯īŧŸ UIã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽãƒŠã‚¤ãƒ–ãƒŠãƒĒはおこでå…Ĩ手できぞすかīŧŸ

ã“ãŽį‚šã§ã€Ext JSは打撃をäŋæŒã™ã‚‹ãŽãĢ非常ãĢįŠæĨĩįš„ã§ã™ã€‚ į‹Ŧč‡Ēぎã‚ĸã‚ģãƒŗãƒ–ãƒĒ、å›Ŋéš›åŒ–ãŽãƒĄã‚Ģニã‚ēム、明įĸēãĒã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖãĒおを備えãĻいぞす。 つぞり そぎ垌čĩˇã“ãŖãŸã“ã¨ã¯åĨ‡åĻ™ã§ã‚ã‚‹ã“ã¨ãŒåˆ¤æ˜Žã—ãŸãŒã€äģŖæ›ŋ手æŽĩはãĒい。 ぞあ、åŊŧåĨŗã¯ãã†ã§ã™ãŒã€åŊŧåĨŗã¯č‡Ē分でやらãĒければãĒりぞせん。 そぎįĩæžœã€TypescriptフãƒŦãƒŧムワãƒŧクがåŋ…čĻã§ã‚ã‚Šã€ã“ãŽæ™‚į‚šã§čĒ°ã‚‚ãŒTypescriptフãƒŦãƒŧムワãƒŧクを望んでいぞした。 ãĒし-čĒ°ã‚‚æœ›ã‚“ã§ã„ãžã›ã‚“ã€‚



さãĻ、äŊ•をすずきかīŧŸ č‡Ē分でã‚ŋ゚クを書きぞしょう。 JSã‚¨ãƒŗã‚ŗãƒŧダãƒŧã¯ã‚ŗãƒŧãƒ‰ã‚’č¨˜čŋ°ã™ã‚‹åŋ…čĻãŒã‚ã‚Šãžã™ã€‚ ãƒŦイã‚ĸã‚Ļãƒˆč¨­č¨ˆč€…ã¯ã€įĩ„į‰ˆã—ãĻč¨­č¨ˆč€…ã¨ã‚„ã‚Šå–ã‚Šã™ã‚‹åŋ…čĻãŒã‚ã‚Šãžã™ã€‚ 明らかãĢ、デã‚ļイナãƒŧãŒį†č§Ŗã§ãã‚‹ã‚ˆã†ãĢUIãƒŦイヤãƒŧã‚’ã§ãã‚‹ã ã‘ã‚ˇãƒŗãƒ—ãƒĢãĢするåŋ…čĻãŒã‚ã‚Šã€ãƒ—ãƒ­ã‚°ãƒŠãƒžãƒŧãŒã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆã‚’ã˛ãŠãį‰ŋせずãĢ3ãƒŦベãƒĢぞたは4ãƒŦベãƒĢでCSS゚ã‚ŋイãƒĢã‚’ã˛ãŠãį‰ŋせずãĢį†č§Ŗã§ãã‚‹ã‚ˆã†ãĢするåŋ…čĻãŒã‚ã‚Šãžã™ã€‚ 明įĸēでわかりやすいã‚ĸãƒŧã‚­ãƒ†ã‚¯ãƒãƒŖã€ãƒãƒƒã‚¯ã‚¨ãƒŗãƒ‰é–‹į™ēč€…ãŒį†č§Ŗã§ãã‚‹ã‚ŗãƒŧドをäŊœæˆã™ã‚‹åŋ…čĻãŒã‚ã‚Šã€č˛Ŧäģģぎ領域を分é›ĸするåŋ…čĻãŒã‚ã‚Šãžã™-個åˆĨぎãƒŦイã‚ĸã‚Ļト、個åˆĨãŽã‚ŗãƒŧド、個åˆĨãŽã‚ŗãƒŗãƒˆãƒ­ãƒŧナãƒŧ、個åˆĨぎデãƒŧã‚ŋ゚トãƒŦãƒŧジ、ã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗįŠļ態を1į¨ŽéĄžãŽã‚¯ãƒŠã‚šã‚ŋイプãĢčŠ°ã‚čžŧãŋ、ãƒĸデãƒĢとå‘ŧãŗãžã™ そしãĻ、最も重čρãĒことは、より多くぎåĸƒį•Œã€čĻå‰‡ã€ãŠã‚ˆãŗæ¨™æē–īŧšãƒãƒŧãƒŸãƒŗã‚°ã€ã‚ŗãƒŧドぎフりãƒŧãƒžãƒƒãƒˆã€ãƒ•ã‚Ąã‚¤ãƒĢãƒŦイã‚ĸã‚ĻトãĒおです。 そしãĻ同時ãĢTypescriptで。 そしãĻ同時ãĢ、全äŊ“がæ—ĸå­˜ãŽã‚ŗãƒŧドãĢ埋めčžŧぞれるåŋ…čĻãŒã‚ã‚‹ãŸã‚ã€ã“ãŽå…¨äŊ“がãƒĸノãƒĒã‚ˇãƒƒã‚¯ãƒ•ãƒŦãƒŧムワãƒŧクではありぞせん。



最įĩ‚įš„ãĢ、Este.jsというフãƒŦãƒŧムワãƒŧクをäŊŋį”¨ã—ãžã—ãŸã€‚ åŊŧはあãĒたãĢäŊ•ã‚‚čĒžã‚Šãžã›ã‚“;åŊŧは最も靊å‘Ŋįš„ã§éŠæ–°įš„ã§ã—ãŸã€‚ åŊŧがäŊ•ã‚‚ãĒくãĒるぞで、åŊŧらぱムãƒŧã‚ēãĢã‚ŗãƒ”ãƒŧしぞした。

最垌ãĢã€ã„ãã¤ã‹ãŽå•éĄŒãŒã‚ã‚Šãžã—ãŸã€‚



æœ€åˆãŽå•éĄŒã€‚ storeはæĩå‹•įš„ãĒã‚ĸãƒŗãƒãƒ‘ã‚ŋãƒŧãƒŗãŽä¸€į¨Žã§ã‚ã‚‹ã“ã¨ãŒã‚ã‹ã‚Šãžã™ã€‚ 原際ãĢã¯ã€č‰¯ã„ã“ã¨ã¯äŊ•もありぞせん。 そぎįĩæžœã€ãƒ‡ãƒŧã‚ŋをäŋå­˜ã—ãĻ変更できるクナ゚ãĢæˆģã—ã€ã‚ŗãƒŗãƒˆãƒ­ãƒŧナãƒŧぎビジネ゚ロジックを個åˆĨãĢåˆ†å‰˛ã—ãžã—ãŸã€‚ これは、įŠļ態を持つã‚ĒブジェクトをåˆĨ々ãĢæ­æ‰“ãĄã—ãŸã¨ããĢフナック゚開į™ēãŒčĄŒã‚ã‚Œã‚‹å ´æ‰€ã¨ãģãŧ同じです。 こぎã‚ĒブジェクトãĢは、単ãĢ゚トã‚ĸとå‘ŧばれるįŠļ態がありぞす。



そんãĒ感じでした。

æŦĄãŽã‚ˆã†ãĒįĩæžœãĢãĒりぞした。



つぞり AngularJSとãģãŧ同じ、ãƒĸジãƒĨãƒŧãƒĢã¨åŒã˜ãƒĄã‚Ģニã‚ēムを持つ分é›ĸブロック。 各ãƒĸジãƒĨãƒŧãƒĢãĢã¯ã€č¤‡æ•°ãŽã‚ŗãƒŗãƒˆãƒ­ãƒŧナãƒŧぎ1つと通äŋĄã™ã‚‹1つäģĨ上ぎ゚トã‚ĸがありぞす。 そしãĻ最įĩ‚įš„ãĢ、こぎ全äŊ“がビãƒĨãƒŧとはåˆĨãĢ抟čƒŊしぞす。 Viewぱトã‚ĸデãƒŧã‚ŋぎãŋをčĒ­ãŋå–ã‚Šã€å˜ä¸€ãŽãƒ‡ã‚Ŗã‚šãƒ‘ãƒƒãƒãƒŖãƒŧãŒã‚ŗãƒŗãƒˆãƒ­ãƒŧナãƒŧé–“ã§åˆ†æ•Ŗã™ã‚‹į‰šåŽšãŽã‚ĸã‚¯ã‚ˇãƒ§ãƒŗã‚’į”Ÿæˆã—ãžã™īŧˆåŽŸéš›ãĢは、単一ぎブロックではãĒく、各分é›ĸブロックがį‹Ŧč‡ĒãĢ持つことができぞすīŧ‰ã€‚ã‚ŗãƒŗãƒˆãƒ­ãƒŧナãƒŧã¯ãã‚Œãžã‚Œã‚¤ãƒ™ãƒŗãƒˆãĢã‚ĩブ゚クナイブし、åŋœį­”するかおうかをæąēåŽšã—ãžã™ã“ãŽã‚¤ãƒ™ãƒŗãƒˆã‹ãŠã†ã‹ã€‚ そぎįĩæžœã€į§ãŸãĄãŽã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗã¯ã€äē’いãĢ埋めčžŧぞれたã‚ĸプãƒĒã‚ąãƒŧã‚ˇãƒ§ãƒŗãŽã‚ģットとしãĻ抟čƒŊし、それぞれがフナック゚ぎ内側ãĢありぞす。 これは、ビãƒĨãƒŧãŒå˜į´”ãĢãƒã‚šãƒˆã•ã‚Œã€ã‚ŗãƒŗãƒˆãƒ­ãƒŧナãƒŧが分é›ĸされãĻã„ã‚‹éšŽåą¤åž‹MVCです。

2į•Ēį›ŽãŽå•éĄŒã¯ã€FacebookがæŦĄãŽã‚ˆã†ãĒãƒ†ãƒŗãƒ—ãƒŦãƒŧãƒˆãŽåŽŸčĄŒã‚’ææĄˆã—ãĻいることです。



ã‚‚ãĄã‚ã‚“ã€į§ãŸãĄã¯é•ˇã„é–“č‹Ļã—ã‚“ã§ã„ãžã—ãŸãŒã€ã“ã‚Œã¯ãžãŖãŸãé¸æŠžč‚ĸではãĒいことãĢ気äģ˜ãã€č‡Ē分でčļŗã‚’æ’ƒãĄãžã—ãŸã€‚ UIã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽæœŦčŗĒãŒã€ã‚ã‚‹į¨ŽãŽãƒ†ãƒŗãƒ—ãƒŦãƒŧトを取り、それをãƒŦãƒŗãƒ€ãƒĒãƒŗã‚°ã™ã‚‹ã“ã¨ã§ã‚ã‚‹å ´åˆã€å¤šããŽJSã‚ŗãƒŧド、ブãƒŦãƒŧ゚、æ‹Ŧåŧ§ã€ãƒ­ã‚¸ãƒƒã‚¯ã€ãŠã‚ˆãŗã™ãšãĻã‚’ä¸€įˇ’ãĢUIã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãĢæˇˇåœ¨ã•ã›ã‚‹åŋ…čĻãŒã‚ã‚‹į†į”ąã¯ãžãŖãŸãã‚ã‹ã‚Šãžã›ã‚“ã€‚ãƒ–ãƒŠã‚Ļã‚ļで。 wix-react-templatesぎようãĒプロジェクトをčĻ‹ãĻ、非常ãĢよくäŧŧたį‹Ŧč‡ĒぎプロジェクトをäŊœæˆã—ぞした。 しかし、そこãĢã¯ã‚ŗãƒŧドがありぞせん。 else、変数、それäģĨå¤–ãŽå ´åˆã€įš°ã‚Ščŋ”しを提䞛するブロックぎãŋがありぞす。 つぞり ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽã‚ŋ゚クは、こぎ変数ãĢ襨į¤ēされる内厚をäē‹å‰ãĢこぎ変数ãĢčŠ°ã‚čžŧむことです。 ãžãŸã€ã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽã‚ŋ゚クは、おぎブロックをおぎデãƒŧã‚ŋで反垊するかをį¤ēすことです。 ãƒ†ãƒŗãƒ—ãƒŦãƒŧトはæŦĄãŽã‚ˆã†ãĢãĒりぞす。



ã“ã“ã§ã¯ã€ã“ã‚Œã‚‰ãŽãƒ†ãƒŗãƒ—ãƒŦãƒŧãƒˆį”¨ãĢį‹Ŧč‡Ēぎパãƒŧã‚ĩãƒŧをäŊœæˆã—ぞした。これãĢより、DOMツãƒĒãƒŧがäŊœæˆã•れ、JSXãĢã‚ˆãŖãĻį”Ÿæˆã•ã‚ŒãŸãƒ†ãƒŗãƒ—ãƒŦãƒŧトと非常ãĢよくäŧŧãŸãƒ†ãƒŗãƒ—ãƒŦãƒŧãƒˆãŒį”Ÿæˆã•ã‚Œãžã™ã€‚



įžåœ¨ã€ã“ãŽã‚ąãƒŧ゚はすでãĢč‡Ēå‹•įš„ãĢį”Ÿæˆã•ã‚ŒãĻおり、Reactã¯ã“ãŽã‚ąãƒŧ゚で動äŊœã—ぞす。



UIã‚ŗãƒŗãƒãƒŧãƒãƒŗãƒˆãŽæœŦčŗĒã¯ã€ã„ãã¤ã‹ãŽå°é“å…ˇã‚’åŽŖč¨€ã—ã€ã„ãã¤ã‹ãŽįŠļæ…‹ã‚’åŽŖč¨€ã—ã€æœ€ã‚‚į°Ąå˜ãĒæ–šæŗ•ã§ã“ã‚Œã‚‰ãŽå°é“å…ˇã‚’ãƒ–ãƒ­ãƒƒã‚¯ã¨å¤‰æ•°ãĢčŠ°ã‚čžŧむことです。 åŊŧã‚‰ã¯į‰šåŽšãŽãƒ„ãƒĒãƒŧã‚’æ§‹į¯‰ã—ã€ãã‚Œã‚’ãƒŦãƒŗãƒ€ãƒĒãƒŗã‚°ã—ãžã™ã€‚



įŋģč¨ŗãŽãŸã‚ãĢã€ã“ã‚Œã‚‰ãŽãƒ†ãƒŗãƒ—ãƒŦãƒŧトぎテキ゚トを噛ãŋ合わせãĻãƒ•ã‚Ąã‚¤ãƒĢã‚’į”Ÿæˆã™ã‚‹å°ã•ãĒもぎをäŊœæˆã—ぞした。 ã“ãŽãƒ•ã‚Ąã‚¤ãƒĢã‚’ãƒšãƒŗã§ãƒ­ã‚ˇã‚ĸčĒžãĢįŋģč¨ŗã—ãžã™ã€‚ äŊ•ã‚‰ã‹ãŽį¨ŽéĄžãŽãƒŦイã‚ĸã‚ĻトをそこãĢčŋŊ加できぞす。 æœ€åžŒãŽčĄŒãĢã‚šãƒ‘ãƒŗãŒčŋŊ加されãĻいることãĢæŗ¨æ„ã—ãĻください。 į§ãŸãĄã¯č¨€č‘‰ãŽå¤šå…ƒåŒ–ãŽãŸã‚ãĢã“ãŽãƒ“ã‚¸ãƒã‚šã‚’į¯‰ã„ãĻいぞす。



, , , span .



, Facebook , , . .

?



, , , java. dependency injection, , — React lodash. — , , MVC — MVC. React. web-packâ€Ļ



— Ext JS 6, React. , , , , . , - .

— , , , - , , , , json rest, , API .

:



, , , , flux + react 2- 5- . , UI , ExtJS, , , , , .



, . , , , 60 , 15 — , - , , , -, — .



. react', - 4 .



, 10 , , 2 . 4 2 - UI , .



, , , , UI . , ÂĢ Âģ ÂĢ , Âģ. , , , , . , UI Ext JS, , - , - - , , , - . , , , , .



, : ; , , — . , , . つぞり react' , , , , , .

逪įĩĄå…ˆ


Âģ XEK
Âģ s@averin.ru
Âģ facebook
Âģ twitter
Âģ Acronis

— HighLoad++ . 2016 — HighLoad++ , 7 8 .

- HighLoad.Guide — , , , . 30 . !

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


All Articles