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)
PDF
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
PDF
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
日本マイクロソフト株式会社
PDF
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
Daizen Ikehara
PDF
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
PDF
Java/Androidセキュアコーディング
Masaki Kubo
PDF
試して学べるクラウド技術! OpenShift
Etsuji Nakai
PDF
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian
PDF
Webに今求められているレベル: HTML5 コントロールを利用した開発
インフラジスティックス・ジャパン株式会社
PDF
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
PDF
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
PDF
Mvc conf session_5_isami
Hiroshi Okunushi
PDF
コンテナ環境でJavaイメージを小さくする方法!
オラクルエンジニア通信
PDF
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
PDF
2013 Ignite UI 最新情報 in 岡山
インフラジスティックス・ジャパン株式会社
PDF
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
PPT
Using Windows Azure
Shinji Tanaka
PDF
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
PDF
改めて C# でできることを振り返る
Yuta Matsumura
PDF
Web制作勉強会 #2
Moto Yan
PDF
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
真吾 吉田
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
日本マイクロソフト株式会社
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
Daizen Ikehara
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
Java/Androidセキュアコーディング
Masaki Kubo
試して学べるクラウド技術! OpenShift
Etsuji Nakai
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian
Webに今求められているレベル: HTML5 コントロールを利用した開発
インフラジスティックス・ジャパン株式会社
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
Mvc conf session_5_isami
Hiroshi Okunushi
コンテナ環境でJavaイメージを小さくする方法!
オラクルエンジニア通信
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
2013 Ignite UI 最新情報 in 岡山
インフラジスティックス・ジャパン株式会社
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
Using Windows Azure
Shinji Tanaka
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
改めて C# でできることを振り返る
Yuta Matsumura
Web制作勉強会 #2
Moto Yan
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
真吾 吉田
Ad
Recently uploaded
(10)
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
20250729_Devin-for-Enterprise
Masaki Yamakawa
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
多分モダンな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