Submit Search
多分モダンなWebアプリ開発
5 likes
4,462 views
T
tak-nakamura
多分モダンなWebアプリ開発
Technology
Read more
1 of 26
Download now
Downloaded 13 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
More Related Content
PDF
Skinny Controllers, Skinny Models
Kazuhiro Sera
PDF
Scala が支える医療系ウェブサービス #jissenscala
Kazuhiro Sera
PDF
DevOpsハッカソン参加レポート
Takashi Takebayashi
PDF
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
takezoe
PDF
Isomorphic web development with scala and scala.js
TanUkkii
PDF
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
Eugene Yokota
PDF
【LT】 怖くない恐怖のScala.js
Yuto Suzuki
PDF
2016/05/01 Visual Studio with Cordova
miso- soup3
Skinny Controllers, Skinny Models
Kazuhiro Sera
Scala が支える医療系ウェブサービス #jissenscala
Kazuhiro Sera
DevOpsハッカソン参加レポート
Takashi Takebayashi
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
takezoe
Isomorphic web development with scala and scala.js
TanUkkii
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
Eugene Yokota
【LT】 怖くない恐怖のScala.js
Yuto Suzuki
2016/05/01 Visual Studio with Cordova
miso- soup3
What's hot
(20)
PDF
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
TIS Inc.
PPTX
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
PDF
Swagger 入門
Yoshiaki Yoshida
PDF
One ASP.NET, OWIN & Katana
miso- soup3
PDF
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki
PDF
Scala Warrior and type-safe front-end development with Scala.js
takezoe
PPTX
Android ReactNative UITesting
Vishal Banthia
PDF
Servlet と Future の関わり方 #scala_ks
Kazuhiro Sera
PDF
進撃のSbt
Yuto Suzuki
PPTX
React.js + Reduxで作るSPA
Shohei Saeki
PDF
Single Command Deployのための gradle-aws-plugin講座
都元ダイスケ Miyamoto
PDF
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
Kazunari Hara
PDF
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
Tadashi Nemoto
PDF
Scala + Finagleの魅力
Kota Mizushima
PDF
退屈なブラウザ作業をpuppeteerにやらせたいお話
Tadashi Nemoto
PDF
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Kazuhiro Sera
PDF
JavaからScalaへ
takezoe
PDF
OWIN って何?
miso- soup3
PDF
実戦Scala
Yuto Suzuki
PDF
ASP.NET WEB API 開発体験
miso- soup3
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
TIS Inc.
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
Swagger 入門
Yoshiaki Yoshida
One ASP.NET, OWIN & Katana
miso- soup3
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki
Scala Warrior and type-safe front-end development with Scala.js
takezoe
Android ReactNative UITesting
Vishal Banthia
Servlet と Future の関わり方 #scala_ks
Kazuhiro Sera
進撃のSbt
Yuto Suzuki
React.js + Reduxで作るSPA
Shohei Saeki
Single Command Deployのための gradle-aws-plugin講座
都元ダイスケ Miyamoto
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
Kazunari Hara
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
Tadashi Nemoto
Scala + Finagleの魅力
Kota Mizushima
退屈なブラウザ作業をpuppeteerにやらせたいお話
Tadashi Nemoto
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Kazuhiro Sera
JavaからScalaへ
takezoe
OWIN って何?
miso- soup3
実戦Scala
Yuto Suzuki
ASP.NET WEB API 開発体験
miso- soup3
Ad
Similar to 多分モダンなWebアプリ開発
(20)
ODP
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
PPTX
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
Kondo Hitoshi
PPTX
TDC20111031_Groovy_Geb
Nobuhiro Sue
PDF
Backbone.js入門
AdvancedTechNight
PPTX
HTML5&API総まくり
Shumpei Shiraishi
KEY
いまさらJavaScript
Naomichi Yamakita
PDF
ユーザ・デザイナーから見たPlone CMSのアピールポイント
Masaki NIWA
PDF
Yesod(at FPM2012)
Seizan Shimazaki
PDF
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
PDF
2013 Ignite UI 最新情報 in 岡山
インフラジスティックス・ジャパン株式会社
PDF
全部入り!WGPで高速JavaScript+HML5体験
AdvancedTechNight
PDF
イマドキの現場で使えるJavaライブラリ事情
takezoe
PDF
SwaggerとAPIのデザイン
Kazuhiro Hara
PDF
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
PDF
JavaScript.Next Returns
dynamis
PDF
Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)
Kazuya Sugimoto
PDF
JSer Class #3
mizuky fujitani
PDF
Skinny Framework 進捗どうですか? #fud_scala
Kazuhiro Sera
ODP
HTML5 開発環境の紹介
tomo_masakura
PDF
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
Kondo Hitoshi
TDC20111031_Groovy_Geb
Nobuhiro Sue
Backbone.js入門
AdvancedTechNight
HTML5&API総まくり
Shumpei Shiraishi
いまさらJavaScript
Naomichi Yamakita
ユーザ・デザイナーから見たPlone CMSのアピールポイント
Masaki NIWA
Yesod(at FPM2012)
Seizan Shimazaki
Grails 2.0.0.M1の話
Tsuyoshi Yamamoto
2013 Ignite UI 最新情報 in 岡山
インフラジスティックス・ジャパン株式会社
全部入り!WGPで高速JavaScript+HML5体験
AdvancedTechNight
イマドキの現場で使えるJavaライブラリ事情
takezoe
SwaggerとAPIのデザイン
Kazuhiro Hara
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
JavaScript.Next Returns
dynamis
Java クライント実装におけるAPIスタイル頂上決戦! 野良REST vs GraphQL vs OData vs OpenAPI (Swagger)
Kazuya Sugimoto
JSer Class #3
mizuky fujitani
Skinny Framework 進捗どうですか? #fud_scala
Kazuhiro Sera
HTML5 開発環境の紹介
tomo_masakura
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
Ad
多分モダンなWebアプリ開発
1.
多分モダンなWebアプリ開発 M3 TechTalk
#32 2014/10/31 中村 貴志
2.
Webアプリの構成要素 • 開発環境
• IntelliJ IDEA ! • サーバー • SkinnyFramework • Scala • Scalatra • Scalate • ScalikeJDBC • Sentry • logback + janino, MDC • フロント • AngularJS • karma + jasmine • jshint • grunt • bower • C3.js • VD作業にGit利用 ! •
3.
IntelliJ IDEA
4.
IntelliJ IDEA •
Eclipseと比較 • EclipseのScalaはビルドが重すぎて使い物にならない • Eclipseに比べて総合的に軽い • 1プロジェクト=1ウインドウ ! • 英単語のスペルチェックが便利 • 複数形も加味、キャメルケースでの単語区切りで判定 • Vim化プラグインもある • IdeaVim http://plugins.jetbrains.com/plugin/164
5.
SkinnyFramework http://skinny-framework.org/ •
瀬良さん作のScalaによるWebフレームワーク • Scala自体がLL的な表記で書きやすい • 文字列、配列、Hash、Tuppleなどのリテラルが便利 • コレクションの操作がやりやすい • SkinnyはいくつかのOSSを寄り集めて構成されている • Scalatra / Scalate / ScalikeJDBC / ScalaTest etc…
6.
SkinnyFramework http://skinny-framework.org/ •
Scalatra : サーブレット周り • 通常のservlet機能(web.xml)を使える • 既存のサーブレットフィルタを利用 可能 • CRUD、REST-API、AngularJS向け 機能あり • JSON、XMLでのレスポンスに対応 • 独自バリデーション機能 ! • Scalate : テンプレートエンジン • テンプレートもScala ! ! ! • ScalikeJDBC: DB周り • ORM • SQL Query Builder • 素のSQL文を記載することもできる • 複数DB接続に対応 • モデルのタイムスタンプ、 楽観ロック機能がある ! • ScalaTest: テスト • 単体・コントローラ・インテグレー ションテスト • DB周りのテストで試験によりデータ が生成されてしまう •
7.
SkinnyFramework http://skinny-framework.org/ •
利点 • 通常のwebフレームワークが分かれば普通 • 瀬良さんに聞けば分かる • ScalikeJDBCも瀬良さんはコミッタ • 必要があればPullRequestすれば取り込まれる • 欠点 • コントローラの種類が色々あるので計画的に作成が必要 • 利用が少ないため未成熟な機能もある ! • Qiita記事をどうぞ • http://qiita.com/tags/skinnyframework
8.
logback + janino
http://logback.qos.ch/manual/configuration.html#conditional • janino : 軽量Javaコンパイラ • logback.xml中にif文での 分岐を記載できる • 環境ごとの差異を 1ファイルに記載できる # 本番用ログ出力モードで起動 % java -DlogEnv=prod ~~
9.
logback + MDC
(Mapped Diagnostic Contexts) http://logback.qos.ch/manual/mdc.html • スレッド中のログ出力に共通 の値を出力できる • 1リクエスト内の処理ログに ユーザIDなどを出力できる
10.
Sentry • エラーログ記録Webサービス
• メール通知を代行してくれる • logback、log4jにAppenderを設定するだけ • 指定のログレベルでログ出力をするだけなので簡単 • Serviceクラスやユーティリティ処理のエラー時に 無理矢理メールを送る必要なし • Httpリクエストを記録するためのServletListenerがある • 導入方法の詳細は、社内wikiで。
11.
AngularJS • SPA(Single
Page Application)を想定したJavaScriptフレームワーク • v1.2系がIE7は非対応、IE8は辛うじて動く(IE8向けの注意点がある) • v1.3系(最近リリース)は IE9以降のみ対応 ! • データバインドが柔軟 • JSオブジェクトの操作と画面制御を分けて考えやすい • 役割を分けてモジュール分割しやすい • Controller(メイン)、Service(ロジック)、Directive(表示制御)など • モジュールごとにUnitTestを記述しやすい • jQueryと組み合わせるので、jQueryの資源が使えるかも
12.
AngularJS • 今回はSPAにはしなかった
• IE8などの古いブラウザでの動きが心配 • アクセスのトラッキングを独自に検討したくなかった (EOP、GA) ! • おすすめ学習方法 • code-school AngularJS http://campus.codeschool.com/courses/shaping-up-with-angular-js/intro ! • 書籍「AngularJS リファレンス」 の紹介記事 http://qiita.com/namutaka/items/bc34a22e00b1032ec351
13.
karma + jasmine
• AngularJSの標準テスト機能 • karma : テストランナー • jasmine : テストフレームワーク (= junit,spec) • protractor : seleniumでのテスト(使っていない) ! • テスト結果をjunitと同じ形式で出力できるので、 Jenkinsとも組み合わせられる
14.
jshint • JavaScriptの静的解析
• Eclipseでwarningを出してくれる感じ • コードの書き方がぶれない。 • 文字列は「”」or「'」を統一など • 「;」忘れを指摘 • など • gruntにテスト結果をjunitと同じ形式で出力できるので、 Jenkinsとも組み合わせられる
15.
grunt • フロントエンド開発でのタスクランナー
• Javaでいうant・maven、Rubyでいうrake • CoffeeやSASSなどのコードを変換するタスクに使う • Markdownをhtml化するのに使ったりもできる • ファイルの更新をトリガとして処理を行うことができる 15
16.
grunt • grunt
live によるモックサーバーが便利 • node.jsベースのhttpサーバーが起動 • WebAPIのスタブを静的ファイルとして用意できる • ソースを保存すると自動でブラウザがリロード • 同時にjshintとUnitテストが実行される ! • VD作業はこのモック起動で確認 • すごくやりやすかったと好評 16
17.
bower • JavaScript、CSSのライブラリ管理ツール
• Javaでいう maven、Rubyでいうgem、PerlでいうPCL • 依存関係を自動で解釈してファイルを取得してくれる • リソースの依存関係が明確になる • grunt プラグイン (grunt-bower-task) • 取得したファイルなどを決まった規則で配置できる • 外部リソースの管理をルール化できる ! • 参考記事 • http://yosuke-furukawa.hatenablog.com/entry/2013/06/01/173308 • http://yosuke-furukawa.hatenablog.com/entry/2013/06/04/085537
18.
bower % cat
bower.json { "name": "myappp", "version": "0.0.0", ! "dependencies": { "jquery-ui": "~1.11.2" } } ! % bower install jquery-ui#1.11.2 bower_components/jquery-ui "## jquery#2.1.1 ! jquery#2.1.1 bower_components/jquery ! % grunt bower:install Running "bower:install" (bower) task >> Cleaned target dir app/vendor >> Installed bower packages >> Copied packages to app/vendor ! Done, without errors. ! ! % find app/vendor/ -type f ! app/vendor/jquery-ui/jquery-ui.js app/vendor/jquery/jquery.js ! ! ! !
19.
C3.js http://c3js.org/ •
D3.jsをベースにしたJavaScriptでのグラフライブラリ • きれいで動きのあるグラフが簡単に作れる
20.
C3.js http://c3js.org/ •
横軸をシーケンシャルに補間してくれる ['x', '2013-01-01', '2013-01-03', '2013-01-08'], [‘d1', 30, 100, 250], [‘d2', 130, 200, 150] NG
21.
C3.js http://c3js.org/ •
横軸をシーケンシャルに補間してくれる ['x', '2013-01-01', '2013-01-03', '2013-01-08'], [‘d1', 30, 100, 250], [‘d2', 130, 200, 150] OK
22.
C3.js http://c3js.org/ chart
= c3.generate({ data: { url: '/data/c3_test.json', mimeType: 'json' }, keys: { x: 'name', value: ['upload', 'download'], } }); /data/c3_test.json • JSONからグラフが作れる [ {name: 'aaa', upload: 800, download: 500}, {name: 'bbb', upload: 600, download: 600}, {name: 'ccc', upload: 400, download: 800}, {name: 'ddd', upload: 400, download: 750} ] • DBからMapの配列でデータを取得 してJSON化するだけで使える • csvの読み込みもできる • 帳票の結果をグラフ化するのに も使えるかも
23.
VD作業にGit利用 • SourceTreeを使ってもらった
• 初期の構成はこちらで準備 • コンフリクトなどが起きたらEngで対応 • gruntのモック起動用のWindows batchを作っておく
24.
VD作業にGit利用 • VDで使うブランチは1つだけ
• VD作業の区切りでEngがdevelopにマージした後に、 design用ブランチを進める • VD作業では、pull → 修正 → commit → pushを繰り返すのみ develop design
25.
まとめ • IntelliJ:Eclipseから乗り換えたい
• SkinnyFramework:いいよ • logback:機能知らなすぎた… • grunt:覚えると便利 • AngularJS:なかなかいい • c3.js:使える
26.
以上です ! コメントをどうぞ
Download