Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
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
Good-Bye Swagger
katada-yuki
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki
Scala Warrior and type-safe front-end development with Scala.js
takezoe
Android ReactNative UITesting
Vishal Banthia
1
of
26
Top clipped slide
多分モダンなWebアプリ開発
Oct. 30, 2014
•
0 likes
5 likes
×
Be the first to like this
Show More
•
4,443 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Technology
多分モダンなWebアプリ開発
tak-nakamura
Follow
Advertisement
Advertisement
Advertisement
Recommended
Skinny Controllers, Skinny Models
Kazuhiro Sera
5.5K views
•
30 slides
Scala が支える医療系ウェブサービス #jissenscala
Kazuhiro Sera
30.2K views
•
41 slides
DevOpsハッカソン参加レポート
Takashi Takebayashi
2.9K views
•
33 slides
ビズリーチの新サービスをScalaで作ってみた 〜マイクロサービスの裏側 #jissenscala
takezoe
26.6K views
•
39 slides
Isomorphic web development with scala and scala.js
TanUkkii
23.4K views
•
23 slides
The state of sbt 0.13, sbt server, and sbt 1.0 (ScalaMatsuri ver)
Eugene Yokota
1.4K views
•
43 slides
More Related Content
Slideshows for you
(20)
Scalable Generator: Using Scala in SIer Business (ScalaMatsuri)
TIS Inc.
•
4.8K views
2016/12/17 ASP.NET フロントエンドタスク入門
miso- soup3
•
755 views
Swagger 入門
Yoshiaki Yoshida
•
7K views
One ASP.NET, OWIN & Katana
miso- soup3
•
11.2K views
Good-Bye Swagger
katada-yuki
•
979 views
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki
•
3.7K views
Scala Warrior and type-safe front-end development with Scala.js
takezoe
•
9.3K views
Android ReactNative UITesting
Vishal Banthia
•
845 views
Servlet と Future の関わり方 #scala_ks
Kazuhiro Sera
•
7.2K views
進撃のSbt
Yuto Suzuki
•
826 views
React.js + Reduxで作るSPA
Shohei Saeki
•
2.1K views
Single Command Deployのための gradle-aws-plugin講座
都元ダイスケ Miyamoto
•
5.6K views
アメブロ2016 アメブロフロント刷新にみる ひかりとつらみ
Kazunari Hara
•
6.6K views
メルカリの開発スピードと品質を支える Selenium on Azure Kubernetes Service
Tadashi Nemoto
•
583 views
Scala + Finagleの魅力
Kota Mizushima
•
11.1K views
退屈なブラウザ作業をpuppeteerにやらせたいお話
Tadashi Nemoto
•
883 views
Seasar ユーザだったプログラマが目指す OSS の世界展開 #seasarcon
Kazuhiro Sera
•
15.1K views
JavaからScalaへ
takezoe
•
8.7K views
OWIN って何?
miso- soup3
•
24.8K views
実戦Scala
Yuto Suzuki
•
3.2K views
Similar to 多分モダンなWebアプリ開発
(20)
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
•
2K views
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
日本マイクロソフト株式会社
•
286 views
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
Daizen Ikehara
•
2.2K views
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
•
928 views
Java/Androidセキュアコーディング
Masaki Kubo
•
4.4K views
試して学べるクラウド技術! OpenShift
Etsuji Nakai
•
6.4K views
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian
•
1.5K views
Webに今求められているレベル: HTML5 コントロールを利用した開発
インフラジスティックス・ジャパン株式会社
•
2.3K views
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
•
624 views
Azure Functionsでサーバーレスアプリケーション構築
ryosuke matsumura
•
2.4K views
Mvc conf session_5_isami
Hiroshi Okunushi
•
706 views
コンテナ環境でJavaイメージを小さくする方法!
オラクルエンジニア通信
•
21.5K views
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara
•
8.6K views
2013 Ignite UI 最新情報 in 岡山
インフラジスティックス・ジャパン株式会社
•
1.3K views
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
•
3.6K views
Using Windows Azure
Shinji Tanaka
•
2.2K views
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
david9142
•
4.1K views
改めて C# でできることを振り返る
Yuta Matsumura
•
2.1K views
Web制作勉強会 #2
Moto Yan
•
613 views
サーバーレスのアーキテクチャパターンとそれぞれの実装・テストの勘所
真吾 吉田
•
16.5K views
Advertisement
Recently uploaded
(20)
ペンタエリスリトール市場.pdf
HinaMiyazu
•
3 views
統計学の攻略_推測統計学の考え方.pdf
akipii Oga
•
209 views
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
•
422 views
【DL輪読会】Poisoning Language Models During Instruction Tuning Instruction Tuning...
Deep Learning JP
•
73 views
JSTQB_テストマネジメントとレビュープロセス.pdf
akipii Oga
•
175 views
☀️【卡尔顿大学毕业证成绩单留学生首选】
15sad
•
2 views
統計学の攻略_正規分布ファミリーの全体像.pdf
akipii Oga
•
201 views
モバイル・クラウド・コンピューティング-データを如何に格納し、組み合わせ、情報として引き出すか
Masahiko Funaki
•
2 views
留信网认证可查【皇家霍洛威学院文凭证书毕业证购买】
32lkhng
•
2 views
JSTQB_テストプロセスの概念モデル.pdf
akipii Oga
•
204 views
20230601_Visual_IoTLT_vol14_kitazaki_v1.pdf
Ayachika Kitazaki
•
57 views
Kubernetes超入門
Takashi Suzuki
•
5 views
ネットワークパケットブローカー市場.pdf
HinaMiyazu
•
7 views
点群SegmentationのためのTransformerサーベイ
Takuya Minagawa
•
13 views
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
オラクルエンジニア通信
•
31 views
【2023年5月】平成生まれのためのUNIX&IT歴史講座
法林浩之
•
16 views
AIEXPO_CDLE名古屋紹介
KotaMiyano
•
3 views
3Dプリンタって いいね
infinite_loop
•
56 views
【DL輪読会】大量API・ツールの扱いに特化したLLM
Deep Learning JP
•
53 views
Forguncy8 製品概要 202305.pptx
フォーガンシー
•
54 views
多分モダンなWebアプリ開発
多分モダンなWebアプリ開発 M3 TechTalk
#32 2014/10/31 中村 貴志
Webアプリの構成要素 • 開発環境
• IntelliJ IDEA ! • サーバー • SkinnyFramework • Scala • Scalatra • Scalate • ScalikeJDBC • Sentry • logback + janino, MDC • フロント • AngularJS • karma + jasmine • jshint • grunt • bower • C3.js • VD作業にGit利用 ! •
IntelliJ IDEA
IntelliJ IDEA •
Eclipseと比較 • EclipseのScalaはビルドが重すぎて使い物にならない • Eclipseに比べて総合的に軽い • 1プロジェクト=1ウインドウ ! • 英単語のスペルチェックが便利 • 複数形も加味、キャメルケースでの単語区切りで判定 • Vim化プラグインもある • IdeaVim http://plugins.jetbrains.com/plugin/164
SkinnyFramework http://skinny-framework.org/ •
瀬良さん作のScalaによるWebフレームワーク • Scala自体がLL的な表記で書きやすい • 文字列、配列、Hash、Tuppleなどのリテラルが便利 • コレクションの操作がやりやすい • SkinnyはいくつかのOSSを寄り集めて構成されている • Scalatra / Scalate / ScalikeJDBC / ScalaTest etc…
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周りのテストで試験によりデータ が生成されてしまう •
SkinnyFramework http://skinny-framework.org/ •
利点 • 通常のwebフレームワークが分かれば普通 • 瀬良さんに聞けば分かる • ScalikeJDBCも瀬良さんはコミッタ • 必要があればPullRequestすれば取り込まれる • 欠点 • コントローラの種類が色々あるので計画的に作成が必要 • 利用が少ないため未成熟な機能もある ! • Qiita記事をどうぞ • http://qiita.com/tags/skinnyframework
logback + janino
http://logback.qos.ch/manual/configuration.html#conditional • janino : 軽量Javaコンパイラ • logback.xml中にif文での 分岐を記載できる • 環境ごとの差異を 1ファイルに記載できる # 本番用ログ出力モードで起動 % java -DlogEnv=prod ~~
logback + MDC
(Mapped Diagnostic Contexts) http://logback.qos.ch/manual/mdc.html • スレッド中のログ出力に共通 の値を出力できる • 1リクエスト内の処理ログに ユーザIDなどを出力できる
Sentry • エラーログ記録Webサービス
• メール通知を代行してくれる • logback、log4jにAppenderを設定するだけ • 指定のログレベルでログ出力をするだけなので簡単 • Serviceクラスやユーティリティ処理のエラー時に 無理矢理メールを送る必要なし • Httpリクエストを記録するためのServletListenerがある • 導入方法の詳細は、社内wikiで。
AngularJS • SPA(Single
Page Application)を想定したJavaScriptフレームワーク • v1.2系がIE7は非対応、IE8は辛うじて動く(IE8向けの注意点がある) • v1.3系(最近リリース)は IE9以降のみ対応 ! • データバインドが柔軟 • JSオブジェクトの操作と画面制御を分けて考えやすい • 役割を分けてモジュール分割しやすい • Controller(メイン)、Service(ロジック)、Directive(表示制御)など • モジュールごとにUnitTestを記述しやすい • jQueryと組み合わせるので、jQueryの資源が使えるかも
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
karma + jasmine
• AngularJSの標準テスト機能 • karma : テストランナー • jasmine : テストフレームワーク (= junit,spec) • protractor : seleniumでのテスト(使っていない) ! • テスト結果をjunitと同じ形式で出力できるので、 Jenkinsとも組み合わせられる
jshint • JavaScriptの静的解析
• Eclipseでwarningを出してくれる感じ • コードの書き方がぶれない。 • 文字列は「”」or「'」を統一など • 「;」忘れを指摘 • など • gruntにテスト結果をjunitと同じ形式で出力できるので、 Jenkinsとも組み合わせられる
grunt • フロントエンド開発でのタスクランナー
• Javaでいうant・maven、Rubyでいうrake • CoffeeやSASSなどのコードを変換するタスクに使う • Markdownをhtml化するのに使ったりもできる • ファイルの更新をトリガとして処理を行うことができる 15
grunt • grunt
live によるモックサーバーが便利 • node.jsベースのhttpサーバーが起動 • WebAPIのスタブを静的ファイルとして用意できる • ソースを保存すると自動でブラウザがリロード • 同時にjshintとUnitテストが実行される ! • VD作業はこのモック起動で確認 • すごくやりやすかったと好評 16
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
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 ! ! ! !
C3.js http://c3js.org/ •
D3.jsをベースにしたJavaScriptでのグラフライブラリ • きれいで動きのあるグラフが簡単に作れる
C3.js http://c3js.org/ •
横軸をシーケンシャルに補間してくれる ['x', '2013-01-01', '2013-01-03', '2013-01-08'], [‘d1', 30, 100, 250], [‘d2', 130, 200, 150] NG
C3.js http://c3js.org/ •
横軸をシーケンシャルに補間してくれる ['x', '2013-01-01', '2013-01-03', '2013-01-08'], [‘d1', 30, 100, 250], [‘d2', 130, 200, 150] OK
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の読み込みもできる • 帳票の結果をグラフ化するのに も使えるかも
VD作業にGit利用 • SourceTreeを使ってもらった
• 初期の構成はこちらで準備 • コンフリクトなどが起きたらEngで対応 • gruntのモック起動用のWindows batchを作っておく
VD作業にGit利用 • VDで使うブランチは1つだけ
• VD作業の区切りでEngがdevelopにマージした後に、 design用ブランチを進める • VD作業では、pull → 修正 → commit → pushを繰り返すのみ develop design
まとめ • IntelliJ:Eclipseから乗り換えたい
• SkinnyFramework:いいよ • logback:機能知らなすぎた… • grunt:覚えると便利 • AngularJS:なかなかいい • c3.js:使える
以上です ! コメントをどうぞ
Advertisement