Soumettre la recherche
Mettre en ligne
株式会社インタースペース 沖本様 登壇資料
•
2 j'aime
•
1,697 vues
L
leverages_event
Suivre
10月6日実施イベントのスライド
Lire moins
Lire la suite
Ingénierie
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 32
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
フロントエンドの技術を刷新した話し。
フロントエンドの技術を刷新した話し。
Yutaka Horikawa
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
慎一 古賀
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
Sato Shun
EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策
Kazunori Inaba
IaaSクラウド比較
IaaSクラウド比較
Kazunori Inaba
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
Takahiro Moteki
Windows Server + VPNのAWS移行事例
Windows Server + VPNのAWS移行事例
Kazunori Inaba
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
Mitsuhito Ishino
Recommandé
フロントエンドの技術を刷新した話し。
フロントエンドの技術を刷新した話し。
Yutaka Horikawa
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
ASP.NET SPA開発をはじめよう~今と未来とステップアップ
慎一 古賀
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
アプリエンジニアからクラウド専用のインフラエンジニアになってみて
Sato Shun
EC-CUBEによるECサイトの負荷対策
EC-CUBEによるECサイトの負荷対策
Kazunori Inaba
IaaSクラウド比較
IaaSクラウド比較
Kazunori Inaba
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
[社内勉強会]Webエンジニアへ送るインフラのおすすめ本:記事7本
Takahiro Moteki
Windows Server + VPNのAWS移行事例
Windows Server + VPNのAWS移行事例
Kazunori Inaba
オレたちとVisual Studioとの関係を話そう
オレたちとVisual Studioとの関係を話そう
Mitsuhito Ishino
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
IaaSクラウド比較'14
IaaSクラウド比較'14
Kazunori Inaba
JavaからScalaへ
JavaからScalaへ
takezoe
WebAssembly text format で画像処理を書くぞ
WebAssembly text format で画像処理を書くぞ
Kohei Kawasaki
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
Akira Nagata
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5
Tomo Mizoe
Application Bootstrap
Application Bootstrap
Takafumi ONAKA
JAWS-UG京王線 レッツラーニング LT AWS+WAFなお話
JAWS-UG京王線 レッツラーニング LT AWS+WAFなお話
Tetsuya Mase
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
KLab株式会社
Build Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.js
mganeko
BaaSでゲームサーバを作る話
BaaSでゲームサーバを作る話
Tomokazu Tochi
AWS+WordPressでつくるFirefoxアプリ
AWS+WordPressでつくるFirefoxアプリ
Takayuki Miyauchi
SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!
Kazumi IWANAGA
ASP.NET習得の最短経路を考察する
ASP.NET習得の最短経路を考察する
Masaki Takeda
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
賢次 海老原
baserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアル
Ryuji Egashira
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
miso- soup3
どうなる?Visual Studioの クライアントサイド web開発の今後
どうなる?Visual Studioの クライアントサイド web開発の今後
Narami Kiyokura
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
Kazue Igarashi
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
Satoshi Kisanuki
PlayFramework1.x基礎編
PlayFramework1.x基礎編
Asami Abe
Contenu connexe
Tendances
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
IaaSクラウド比較'14
IaaSクラウド比較'14
Kazunori Inaba
JavaからScalaへ
JavaからScalaへ
takezoe
WebAssembly text format で画像処理を書くぞ
WebAssembly text format で画像処理を書くぞ
Kohei Kawasaki
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
Akira Nagata
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5
Tomo Mizoe
Application Bootstrap
Application Bootstrap
Takafumi ONAKA
JAWS-UG京王線 レッツラーニング LT AWS+WAFなお話
JAWS-UG京王線 レッツラーニング LT AWS+WAFなお話
Tetsuya Mase
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
KLab株式会社
Build Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.js
mganeko
BaaSでゲームサーバを作る話
BaaSでゲームサーバを作る話
Tomokazu Tochi
AWS+WordPressでつくるFirefoxアプリ
AWS+WordPressでつくるFirefoxアプリ
Takayuki Miyauchi
SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!
Kazumi IWANAGA
ASP.NET習得の最短経路を考察する
ASP.NET習得の最短経路を考察する
Masaki Takeda
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
賢次 海老原
baserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアル
Ryuji Egashira
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
miso- soup3
どうなる?Visual Studioの クライアントサイド web開発の今後
どうなる?Visual Studioの クライアントサイド web開発の今後
Narami Kiyokura
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
Kazue Igarashi
Tendances
(20)
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
IaaSクラウド比較'14
IaaSクラウド比較'14
JavaからScalaへ
JavaからScalaへ
WebAssembly text format で画像処理を書くぞ
WebAssembly text format で画像処理を書くぞ
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5
Application Bootstrap
Application Bootstrap
JAWS-UG京王線 レッツラーニング LT AWS+WAFなお話
JAWS-UG京王線 レッツラーニング LT AWS+WAFなお話
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Lampで作るソーシャルアプリの負荷対策~アプリとインフラの調和のテクニック~
Build Node.js-WASM/WASI Tiny compiler with Node.js
Build Node.js-WASM/WASI Tiny compiler with Node.js
BaaSでゲームサーバを作る話
BaaSでゲームサーバを作る話
AWS+WordPressでつくるFirefoxアプリ
AWS+WordPressでつくるFirefoxアプリ
SoftLayer API で資産管理をお手伝い!
SoftLayer API で資産管理をお手伝い!
ASP.NET習得の最短経路を考察する
ASP.NET習得の最短経路を考察する
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
XPages Day 2013 [B-3] XPages開発を始める Notes技術者のためのWeb技術概論
baserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアル
ASP.NET WEB API 開発体験
ASP.NET WEB API 開発体験
どうなる?Visual Studioの クライアントサイド web開発の今後
どうなる?Visual Studioの クライアントサイド web開発の今後
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
WordPress JSON REST API 〜さらばPHP、さらばWordPressテーマ
Similaire à 株式会社インタースペース 沖本様 登壇資料
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
Satoshi Kisanuki
PlayFramework1.x基礎編
PlayFramework1.x基礎編
Asami Abe
Scalaでのプログラム開発
Scalaでのプログラム開発
Kota Mizushima
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
都元ダイスケ Miyamoto
Apex Test Plusの紹介
Apex Test Plusの紹介
Yuichiro Ebihara
Play frameworkの概要
Play frameworkの概要
Shuhei Kaneko
Talk: serverless-express
Talk: serverless-express
HiroyukiTakakura
Introduction to web development 1
Introduction to web development 1
hideaki honda
play framework 勉強会 in 関西
play framework 勉強会 in 関西
Shinichi Kozake
One ASP.NET, OWIN & Katana
One ASP.NET, OWIN & Katana
miso- soup3
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -
将 高野
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
20130520 実例で見るAWSの特徴と活用方法@JAWS-UG青森 第1回勉強会
20130520 実例で見るAWSの特徴と活用方法@JAWS-UG青森 第1回勉強会
Serverworks Co.,Ltd.
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
SAKURUG co.
Web matrix2とvisual studio
Web matrix2とvisual studio
Tadahiro Ishisaka
Ansible provisioning
Ansible provisioning
Naoki Watanabe
20110406aws accenture
20110406aws accenture
awsadovantageseminar
福岡Ruby会議01 20121201 LT
福岡Ruby会議01 20121201 LT
学 松崎
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
株式会社スカイアーチネットワークス
クラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloud
Kazuki Aranami
Similaire à 株式会社インタースペース 沖本様 登壇資料
(20)
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
PlayFramework1.x基礎編
PlayFramework1.x基礎編
Scalaでのプログラム開発
Scalaでのプログラム開発
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
Apex Test Plusの紹介
Apex Test Plusの紹介
Play frameworkの概要
Play frameworkの概要
Talk: serverless-express
Talk: serverless-express
Introduction to web development 1
Introduction to web development 1
play framework 勉強会 in 関西
play framework 勉強会 in 関西
One ASP.NET, OWIN & Katana
One ASP.NET, OWIN & Katana
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -
Play jjug2012spring
Play jjug2012spring
20130520 実例で見るAWSの特徴と活用方法@JAWS-UG青森 第1回勉強会
20130520 実例で見るAWSの特徴と活用方法@JAWS-UG青森 第1回勉強会
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
【資料】【Web開発者向け】クラウドセミナー@渋谷 #2【Azure入門】
Web matrix2とvisual studio
Web matrix2とvisual studio
Ansible provisioning
Ansible provisioning
20110406aws accenture
20110406aws accenture
福岡Ruby会議01 20121201 LT
福岡Ruby会議01 20121201 LT
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
AWSでシステム構築工数を1/10にしつつ、高品質化も実現した枠組みのご紹介
クラウドカンファレンスIn静岡 r cloud
クラウドカンファレンスIn静岡 r cloud
Plus de leverages_event
Ac tsumugu 20170712
Ac tsumugu 20170712
leverages_event
20171206 tsumugu4 人工知能特集_v1.00_抜粋
20171206 tsumugu4 人工知能特集_v1.00_抜粋
leverages_event
【ヒカ☆ラボ】アーキテクト養成講座「入門編」 折田 武己 氏 登壇資料 20171205
【ヒカ☆ラボ】アーキテクト養成講座「入門編」 折田 武己 氏 登壇資料 20171205
leverages_event
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
leverages_event
【ヒカ☆ラボ】 dely株式会社 大竹 雅登氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 大竹 雅登氏 登壇資料 20171121
leverages_event
【ヒカ☆ラボ】 dely株式会社 深尾 もとのぶ氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 深尾 もとのぶ氏 登壇資料 20171121
leverages_event
【ヒカ☆ラボ】 dely株式会社 三笠 斉輝氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 三笠 斉輝氏 登壇資料 20171121
leverages_event
【ヒカ☆ラボ】 株式会社AMG Solution 山口 博史氏登壇資料 20170817
【ヒカ☆ラボ】 株式会社AMG Solution 山口 博史氏登壇資料 20170817
leverages_event
【ヒカ☆ラボ】株式会社ライナフ 登壇資料
【ヒカ☆ラボ】株式会社ライナフ 登壇資料
leverages_event
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
leverages_event
インスタグラムを活用した、マーケティングについて
インスタグラムを活用した、マーケティングについて
leverages_event
ヒカ☆ラボ ユニティ・テクノロジーズ・ジャパン合同会社 安原 祐二氏登壇資料_20170119
ヒカ☆ラボ ユニティ・テクノロジーズ・ジャパン合同会社 安原 祐二氏登壇資料_20170119
leverages_event
ヒカ☆ラボ 株式会社PR TIMES 山田 和広氏登壇資料 20161129
ヒカ☆ラボ 株式会社PR TIMES 山田 和広氏登壇資料 20161129
leverages_event
ヒカ☆ラボ 株式会社PR TIMES 新井 隆士氏登壇資料 20161129
ヒカ☆ラボ 株式会社PR TIMES 新井 隆士氏登壇資料 20161129
leverages_event
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
leverages_event
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」UIデザイナー
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」UIデザイナー
leverages_event
初心者向けGo言語勉強会
初心者向けGo言語勉強会
leverages_event
DMM.comラボはなぜSparkを採用したのか?レコメンドエンジン開発の裏側をお話します!
DMM.comラボはなぜSparkを採用したのか?レコメンドエンジン開発の裏側をお話します!
leverages_event
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
leverages_event
株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料
leverages_event
Plus de leverages_event
(20)
Ac tsumugu 20170712
Ac tsumugu 20170712
20171206 tsumugu4 人工知能特集_v1.00_抜粋
20171206 tsumugu4 人工知能特集_v1.00_抜粋
【ヒカ☆ラボ】アーキテクト養成講座「入門編」 折田 武己 氏 登壇資料 20171205
【ヒカ☆ラボ】アーキテクト養成講座「入門編」 折田 武己 氏 登壇資料 20171205
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 大竹 雅登氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 大竹 雅登氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 深尾 もとのぶ氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 深尾 もとのぶ氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 三笠 斉輝氏 登壇資料 20171121
【ヒカ☆ラボ】 dely株式会社 三笠 斉輝氏 登壇資料 20171121
【ヒカ☆ラボ】 株式会社AMG Solution 山口 博史氏登壇資料 20170817
【ヒカ☆ラボ】 株式会社AMG Solution 山口 博史氏登壇資料 20170817
【ヒカ☆ラボ】株式会社ライナフ 登壇資料
【ヒカ☆ラボ】株式会社ライナフ 登壇資料
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
【ヒカ☆ラボ】株式会社エアー様~ETLツール活用法について~
インスタグラムを活用した、マーケティングについて
インスタグラムを活用した、マーケティングについて
ヒカ☆ラボ ユニティ・テクノロジーズ・ジャパン合同会社 安原 祐二氏登壇資料_20170119
ヒカ☆ラボ ユニティ・テクノロジーズ・ジャパン合同会社 安原 祐二氏登壇資料_20170119
ヒカ☆ラボ 株式会社PR TIMES 山田 和広氏登壇資料 20161129
ヒカ☆ラボ 株式会社PR TIMES 山田 和広氏登壇資料 20161129
ヒカ☆ラボ 株式会社PR TIMES 新井 隆士氏登壇資料 20161129
ヒカ☆ラボ 株式会社PR TIMES 新井 隆士氏登壇資料 20161129
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」開発エンジニア
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」UIデザイナー
ヒカラボ「自社サービス開発会社で活躍し続けるために必要な○○とは?」UIデザイナー
初心者向けGo言語勉強会
初心者向けGo言語勉強会
DMM.comラボはなぜSparkを採用したのか?レコメンドエンジン開発の裏側をお話します!
DMM.comラボはなぜSparkを採用したのか?レコメンドエンジン開発の裏側をお話します!
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
株式会社waja 安藤様 登壇資料
株式会社waja 安藤様 登壇資料
株式会社インタースペース 沖本様 登壇資料
1.
2015/10/06 株式会社インタースペース 沖本 勇矢
2.
元々はSIerにてJava、C#を中心に開発 Scala歴はまだ数カ月の駆け出し
酒が大好き酒飲みエンジニア 沖本 勇矢(Yuya Okimoto)
3.
Playframeworkとは なぜPlayを選んだのか
環境構築方法 初歩的な使い方 弊社導入事例 バージョン2.4へアップデート まとめ
4.
5.
ScalaとJava言語で書かれたオープンソースのWebア プリケーションフレームワーク Ruby
on Railsをご存じの方は、まさにそれと似た感 じのMVCデザインパターン Typesafe社がサポート(scala言語の開発を主導して いる企業) ※参照 https://www.playframework.com/
6.
とにかく構築がかんたん(内蔵webサーバ、インメモリ DB利用可) シンプルで軽量(リソース消費が最小限)
scalaのwebフレームワークとしては一番メジャー 弊社の現行システムで使用しているJava以外にも、 scalaという技術的資産を残したかった
7.
準備するもの jdk8(事前にPATHは通しておく) Typesafe
activatorのダウンロード https://www.playframework.com/download (任意のフォルダに解凍しておく)
8.
事前にダウンロードして解凍したフォルダから、 activator new
<プロジェクト名> play-scala C:¥Users¥public¥workspace>C:¥activator-1.3.5¥activator new sample-project play-scala ※Windowsの場合のパス表記ですが、コマンドはOSに差異はありません
9.
ステップ1で作成されたプロジェクトフォルダに移動し、 activator run C:¥Users¥public¥workspace¥sample-project¥activator
run ※Windowsの場合のパス表記ですが、コマンドはOSに差異はありません
10.
ブラウザでhttp://localhost:9000でアクセス出来 れば、環境構築完了です ※ただし初回は関連モジュールのDLで時間かかります
11.
app → アプリケーションのソースコード(ここにすべてのソースコード配置) └
controllers → アプリケーションのコントローラ └ models → アプリケーションのビジネスロジック層 └ views → テンプレート build.sbt → アプリケーションビルドスクリプト conf → 設定ファイル └ application.conf → メイン設定ファイル └ routes → ルート定義 public → 公開アセット(静的なコンテンツはここに配置) └ stylesheets → CSS ファイル └ javascripts → JavaScript ファイル └ images → 画像ファイル project → sbt 設定ファイル └ build.properties → sbt プロジェクトの基本ファイル └ plugins.sbt → Play 自身の定義を含む sbt プラグイン lib → 管理されないライブラリ依存性 logs → デフォルトのログ保存場所 └ application.log → デフォルトのログファイル target → Play により生成されたファイル test → 単体テストや機能テストのソースフォルダ
12.
controllerを作成 ビジネスロジックを作成(model)
テンプレートを作成(view) 作成したcontrollerと、紐づけるURLを設定ファイル (routes)に記述 今回はメッセージを表示するだけのごく簡単な一例
13.
Playへのリクエストの玄関口 i18n対応の為、MessageApiをDIし、I18nSupportをmixin ※messagesを外部化しない場合は不要 package controllers import play.api._ import
play.api.mvc._ import play.api.i18n._ import javax.inject._ import models.SampleModel class Application @Inject() (val messagesApi: MessagesApi) extends Controller with I18nSupport { def now = Action { Ok(views.html.now(SampleModel.getDateTime)) } }
14.
ビジネスロジックを記述 ServiceやDAOを配置して処理を行う ルール的に必ずしも分ける必要はないが、modelとして 切り離すのが一般的 package models import org.joda.time.DateTime object
SampleModel { def getDateTime(): DateTime = { DateTime.now } }
15.
プレゼンテーションレイヤー 暗黙パラメータとしてMessagesを受け取る ※Messagesを使用しない場合は不要 @import org.joda.time.DateTime @(datetime: DateTime)(implicit
messages: Messages) <div>@Messages("message.now")</div> <div>@datetime</div>
16.
ルーティング処理の設定 この設定ファイルでURLとcontrollerを紐づけることで リクエストの受け付けを行う ※リバースルーティングも可能 # Home page GET
/ controllers.Application.now # Map static resources from the /public folder to the /assets URL path GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
17.
開発体制 人員:2名(内、協力会社1名) 期間:約5カ月 規模:10k弱(画面数で約30画面) 開発内容 広告関連データをセグメント化して管理するに当たり、 マスタ登録、レポート表示といった機能を提供 ※それほど大規模ではないアプリケーション(akka等 の並行処理は行っていない)
18.
今回弊社としては初めてscalaとplayへの挑戦だった為、 いくつか問題点が浮かび上がる scala関数型プログラミングに難航 Playの効果的な使い方がわからない(どういう構築& 開発方法がマッチベターなのか)
19.
元々がJava使いだったので、どうしても関数型には 大きな戸惑いがあったが、その中で特に以下を 意識して実装した 型を有効利用する →Typeやclassなどで定義しておく(コンパイルエラーで拾える) 副作用を避ける →式を意識して、メソッドを実装するとreturnなども不要で簡潔に
グッバイvar →immutableな実装に努める為、極力val変数を使用
20.
ある程度の使い方はわかるのだが、 どういう構築&開発方法がマッチベターなのか? とにかく公式ドキュメントを読み込む →まずは基本はドキュメントが推奨している手法をベー スにする 勉強会やセミナーに参加 →他社事例を参考にし、別のアプローチがないか検討
21.
今回弊社では、外部の経験豊富なエンジニアに 参画して頂き、先ほどからお話した問題も含め、 技術支援を頂きながら、すべての課題を解決し、 無事に開発&構築を行うこともできた →独学でやることも大事だが、やはり有識者は必要 特にライブラリ周りなどの助言は非常に助かった
22.
構築が簡単で、モジュールのデプロイも楽 シンプルを謳っているだけあって、動作的には軽さを 感じた
ただしその一方でコンパイルの時間は少し長く感じた またはIDEにEclipseを使用していたが、プラグインが 事前コンパイルエラーを正しく検知しないなど、ちょっ と使いづらさはあった(IntelliJも試したい所)
23.
scalikejdbc(データベースアクセス) play-flyway(データベースマイグレーション)
play2-auth(認証ライブラリ) scalatest(テスト支援ツール) scoverage(カバレッジ取得ツール) scalaliform(ソースコードフォーマッタ)
24.
当初は2.3.7で構築 今セミナーで何かしらの情報共有が出来るようにと、 早めにバージョンアップ作業をしてみた
しかし、いきなりコンパイルエラーが500件以上出る など、少し難航・・・ 対応した内容を簡単にご紹介します
25.
build.sbtの変更 あとはひたすら置換 routesGenerator
:= InjectedRoutesGenerator object Login extends Controller { ↓ class Login extends Controller {
26.
Messagesのインタフェースが変更になり、コンパイル エラーの原因はこれが9割だった こちらはMessageApiのDIと、I18nSupportをmixin し、テンプレートの引数をLangからMessagesに変更 import
play.api.i18n._ import javax.inject._ class Login @Inject() (val messagesApi: MessagesApi) extends Controller with I18nSupport {
27.
2.4から非推奨になったGlobalSettingsで使用して いたCSRFFilterを、 HttpFiltersに移行 package
global import play.api.http.HttpFilters import play.filters.csrf.CSRFFilter import javax.inject.Inject class Filters @Inject() (csrfFilter: CSRFFilter) extends HttpFilters { def filters = Seq(csrfFilter) } play.http.filters = "global.Filters" application.confには以下を追記
28.
plugInが非推奨になり、使用していた外部ライブラリ のmodule化に伴い、application.conf変更 2.4対応のために更新しているライブラリも多い為、使 用しているライブラリは漏れなくチェック play.modules.enabled
+= "scalikejdbc.PlayModule" play.modules.disabled += "play.api.db.DBModule"
29.
logger.xml→ logback.xmlの置き換え
application.confの設定値名変更(play.crypto.secret、 play.i18n.langsなど) controllers.Assets.at→controllers.Assets.versione d play.PlayImport.PlayKeys.routesImport→ play.sbt.routes.RoutesKeys.routesImport 弊社システムで行った変更以外にも、数多くの 変更点があります。詳しくはマイグレーションガイドを 参照してください
30.
とにかく、まずはマイグレーションガイドを穴があくまで 読みましょう それでもわからないor私のように英語の読解が不得 意の方は、playのソースを見ましょう ※経験上、その方が解決が早い場合もありました GithubのURL https://github.com/playframework/playframework
31.
Play構築かんたん、シンプルで使いやすい 知識ゼロベースで作る場合、ごくごくシンプルなシステ ムなら問題ないが、凝ったことをする際は、無理せず 有識者に知見を求めましょう(gitter等のコミュニティも あります)
これから導入する方でplay2.4を使う場合、ネットの 情報が古い場合があるので、必ずバージョンを確認
Télécharger maintenant