Recommended
PDF
大規模なギョームシステムにHaxeを採用してみた話
PDF
JavaScriptユーティリティライブラリの紹介
PPTX
PDF
PDF
FIRST STEP to Haxe/JavaScript
PDF
PDF
PDF
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
PPTX
PPTX
PDF
PDF
PDF
PDF
PDF
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
PDF
PDF
ECMAScript6による関数型プログラミング
PDF
PDF
PDF
PDF
PPTX
PDF
Javascriptのあれやこれやをまとめて説明してみる
PPT
PDF
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
PDF
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
PDF
PDF
PDF
PPTX
More Related Content
PDF
大規模なギョームシステムにHaxeを採用してみた話
PDF
JavaScriptユーティリティライブラリの紹介
PPTX
PDF
PDF
FIRST STEP to Haxe/JavaScript
PDF
PDF
PDF
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
What's hot
PPTX
PPTX
PDF
PDF
PDF
PDF
PDF
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
PDF
PDF
ECMAScript6による関数型プログラミング
PDF
PDF
PDF
PDF
PPTX
PDF
Javascriptのあれやこれやをまとめて説明してみる
PPT
PDF
これからのコンピューティングの変化とJava-JJUG CCC 2015 Fall
PDF
むずかしくないJavaScriptのやさしい話 jQueryからの次のステップ #ndsmeetup8
PDF
Viewers also liked
PDF
PDF
PPTX
PDF
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
PDF
PDF
iOS 通信のパフォーマンス改善 ・ iOSオールスターズ登壇資料
PDF
JAWS-UG CLI #32 - AWS Directory Service 入門
PDF
PDF
Asset bundleなどの、Unity3d基礎知識
PPTX
PDF
PDF
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
PDF
PDF
PDF
PDF
PDF
PDF
Swift勉強会。はてなとかclosuresについて
DOCX
Guion general de programa
PDF
Similar to 現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
PPTX
~初心者がこれから Web アプリの開発をするために~
PDF
Modern frontend overview_r3
PDF
DOCX
AITC 女子部 第一回 Web HTML5 補足資料v0.1
PDF
PDF
Concentrated HTML5 & Attractive HTML5
ODP
PDF
PDF
PDF
PDF
PDF
KEY
Webサイトのようには作れない!Webアプリ設計の考え方
PDF
HTML5 ~よくわからないけど言葉だけはよく聞きます~
PDF
HTML5 ~よくわからないけど言葉だけはよく聞きます~
PPTX
PDF
Mvc conf session_3_takehara
KEY
Web App Framework at SwapSkills vol28
PDF
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
ODP
Recently uploaded
PPTX
JavaScript/TypeScript実力強化書 2章のアップデート Forkwell Library
PDF
Gluesync:RDBMS、NoSQL,データレイク間のリアルタイム・データレプリケーション
PDF
20251122_OWASPNagoya_takei_ITU-T,X.1060,security
PDF
最高峰のストレージとバックアップ:ARTESCA+Veeam:統合型ソフトウェア
PDF
N2WS Backup & Recovery と Veeam Backup for AWS
PDF
Veeam&WasabiでトリプルV: クラウドへのランサムウエア対策の決定コンビ
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて 1. 2. 3. 自己紹介
• はなだ のぶかず
• @nobkz
• Technical Rockstars CTO
• milkcocoaを作った人です
• Kyushu.hx主催、Erlang読書会の人、Lisp福岡やりたいぽよ
• スタートアップな人でつ。
• LispとHaxe/Haskell/OCaml
• 言語設計やら、抽象化に興味がありまつ。
• Elmめっちょ気になる。
4. アジェンダ
• フロントエンドの現状
• フロントエンド技術の問題点
• JSフロントエンドMV*フレームワークと, AltJS
• Haxeの簡単な紹介と強力なマクロについて
• Mageについて、設計、実装、
• 今後について
5. 6. 7. フロントエンドエンジニアとは?
• psdファイルとかから、HTMLやCSSをつくる
• JSとかで、動的にアニメーションさせる。サイトに動きをつける
• Flashでゲームつくる、最近はUnityになってる?
• ブラウザだけじゃなくて、スマフォのネイティブもやる。
• サーバーは構築やら保守も時にする。
• JSでがんばってGUIする
• 適切なIA/UI/UXデザイン
• IE対応で死ぬ
• 上記全部がフロントエンドの領域とか言われたりするので死ぬ。
• 今回は、HTML,CSS,JS + Haxe周りの話しでつ。
8. 9. 10. フロントエンドの地獄化
• Webのフロントの肥大化(マークアップ,JS,CSS)の設計の必要性
• SPA化、GUI化
• 技術の更新の速さ、1年もしたら古い。
• いろいろ、フレームワークやらツールで新しいのがドンドン出てくる。
Grunt,Gulp,Brunch,Yeoman,Less,Sass,Compass,Anguler.js,
• ブラウザの違い、OSの違い、端末の違い…
• 画面サイズ
• IE….IE….
11. 12. 13. 14. 15. HTML構造の依存
<div id="header">
<h1 class="name">nobkz</h1>
<div class="comment">
</div>
</div>
<header>
<div class=“comment">
div#header > h1.name
<h2 class=“name first">nobkz</h2>
</div>
</header>
header > div.comment > h2.name.first
16. すべてがグローバル
<div id="header">
<div class=“warnning">注意!</div>
</div>
!
.....
!
<div id="contents">
<div class=“warnning">注意!</div>
</div>
.warnning {}
17. 18. 19. 20. 21. thisスコープ
• 初心者が良くやる罠
function Person(_name){
this.name = _name;
};
!
Person.prototype.sayName = function(){
console.log("hi : " + this.name );
};
!
Person.prototype.wait2TimeAndSayName = function(){
console.log("Wait!! I forget my name!!!");
setTimeout(function(){
console.log("ok! I remember it : " + this.name ); // エラー
},2000);
};
22. 23. 24. 25. 26. MV*とは?
• MVCと言えばいろいろなMVCがある。
• プラガブルMVC,MVP,MVVM,……
• また、MVC自体について明確なコンセンサスは存在し
ない -> MVC自体の批判ができず、MVCの意味について
論争になりやすい
• 今回は、その概念ひっくるめて、MV*とする。
27. MV* フレームワーク
• JSでも設計が必要になってきた
• jQueryとかで、設計を考え無いで、進めたりすると死ぬ
• もちろん、JSのみでも、良い設計しさえすれば良いと
は思っている(必ずしもフレームワークを使うべきでは
無い)
• 設計に沿う選択ができれば生産性の向上、チームで設計
でコンセンサスがある程度取れたりする
28. 29. MV*フレームワーク + AltJSで選択が良いのか?
• 最近、TypeScript + AltJSなどのMV*フレームワーク +
AltJSの選択するプロジェクトが増えてきた。
• しかし、MV*フレームワークは、JSで書かれ、JSの抽象
に引っ張られやすい
• そのため、JSのレイヤーを考えつつ、JSを書かないと
いけない
• AltJS言語独自で良い抽象化したライブラリが必要?
30. 31. 32. 33. 34. 35. 36. 37. Haxeでフレームワーク
• 弊社はHaxeの会社
• フロントエンドファーストな思想
• 最近、BaaSをリリースした( Milkcocoa )
• サンプルアプリがたくさん必要になった。
• JSには慣れてるけど、やっぱりHaxeで書きたい
• マクロ良いよ! マクロ!
38. 39. 40. 41. 方針
• まずは、HTMLを、コンパイルして、そのHTMLを動的に構築するHaxeにoutputす
る。
• CSSのプリプロセッサを構築し、CSSに機能をおぎなう。一応SASSなどの連携も
視野に入れている。
• CSSとHTMLの名前空間を共有する仕組みをつく
• コンポーネント化し、構造的にUIを作れるようにする
• データバインディング、FRP(勉強中)など?
• Haxeのライブラリ化をすすめる。
• 直感的で扱いやすくするため、適切な抽象化設計をし、場合に寄っては再構築する
42. 43. 44. 45. 自動生成されたViewクラス
class SampleView{
public var nodes(default, null) : js.html.Node;
!
public var message : js.html.TextNode;
!
public var input : js.html.InputElement;
!
!
public var new(….){
}
}
46. つかってみる。
• 簡単にデモしてみましょう
var sampleView = new SampleView("first!");
base.component.appendChild(sampleView.nodes[0]);
!
sampleView.input.addEventListener("change",function(e){
sampleView.message.nodeValue = sampleView.input.value;
});
47. CSSライクな言語
• 名前空間を持つ
package sample.view;
!
p { color : red; }
package sample.view;
!
<div>
<p>{{message}}</p>
<input type="text" mage-var="input">
</div>
48. 49. 50. 51. 今後について、その他
• 継続して開発していく。
• 現状の機能のみで、Webフロントエンドを置き変え、
問題点を洗い改善していく。
• Haxe -> JSのみならず、iphoneのObj-C、AndroidのJava
のような言語にもコンパイルできるようにもなんとな
くしたい(なんとなく)。
52.