Enviar pesquisa
Carregar
endeworksでのWebAppの作り方
•
Transferir como PPTX, PDF
•
2 gostaram
•
1,113 visualizações
3
33rpm
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 55
Baixar agora
Recomendados
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
div Inc
アウトプットのすすめ
アウトプットのすすめ
Satoshi Oikawa
Web制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテスト
祐磨 堀
非エンジニアカンファレンス資料の抜粋
非エンジニアカンファレンス資料の抜粋
div Inc
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
Toshiyuki Hirata
2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)
エンジニア勉強会 エスキュービズム
何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか
エンジニア勉強会 エスキュービズム
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
Toshiyuki Hirata
Recomendados
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
div Inc
アウトプットのすすめ
アウトプットのすすめ
Satoshi Oikawa
Web制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテスト
祐磨 堀
非エンジニアカンファレンス資料の抜粋
非エンジニアカンファレンス資料の抜粋
div Inc
iOSアプリの自動テストをはじめよう
iOSアプリの自動テストをはじめよう
Toshiyuki Hirata
2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)
エンジニア勉強会 エスキュービズム
何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか
エンジニア勉強会 エスキュービズム
コードレビューをより良くする Danger x Android
コードレビューをより良くする Danger x Android
Toshiyuki Hirata
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Masanori Satoh
Hatena::Letの式年遷宮
Hatena::Letの式年遷宮
Takafumi ONAKA
実装を引き受ける前に詰めておくべきWebフロントエンドの想定漏れ
実装を引き受ける前に詰めておくべきWebフロントエンドの想定漏れ
祐磨 堀
テストって何をするもの? - テストの5W1H -
テストって何をするもの? - テストの5W1H -
Hiroshi Maekawa
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
Kazuaki KURIU
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
Bracketsについて
Bracketsについて
Shuichi Takaya
ドメイン『駆動』『開発』
ドメイン『駆動』『開発』
Hiroshi Maekawa
20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public
Yoshiharu Hashimoto
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
Masahiro Nishimi
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化
Toshiyuki Hirata
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
de:code 2017
バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築
Toshiyuki Hirata
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術
Daisuke Tamada
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
Toshiyuki Hirata
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
Toshiyuki Hirata
DroidKaigi - Welcome talk
DroidKaigi - Welcome talk
Masahiro Hidaka
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法
Toshiyuki Hirata
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
schoowebcampus
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
Mais conteúdo relacionado
Mais procurados
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Masanori Satoh
Hatena::Letの式年遷宮
Hatena::Letの式年遷宮
Takafumi ONAKA
実装を引き受ける前に詰めておくべきWebフロントエンドの想定漏れ
実装を引き受ける前に詰めておくべきWebフロントエンドの想定漏れ
祐磨 堀
テストって何をするもの? - テストの5W1H -
テストって何をするもの? - テストの5W1H -
Hiroshi Maekawa
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
Kazuaki KURIU
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
Toshiyuki Hirata
Bracketsについて
Bracketsについて
Shuichi Takaya
ドメイン『駆動』『開発』
ドメイン『駆動』『開発』
Hiroshi Maekawa
20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public
Yoshiharu Hashimoto
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
Masahiro Nishimi
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Toshiyuki Hirata
Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化
Toshiyuki Hirata
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
de:code 2017
バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築
Toshiyuki Hirata
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術
Daisuke Tamada
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
Toshiyuki Hirata
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
Toshiyuki Hirata
DroidKaigi - Welcome talk
DroidKaigi - Welcome talk
Masahiro Hidaka
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法
Toshiyuki Hirata
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
schoowebcampus
Mais procurados
(20)
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Jenkins Bootcamp Premiumのご紹介 in デブサミ2016冬
Hatena::Letの式年遷宮
Hatena::Letの式年遷宮
実装を引き受ける前に詰めておくべきWebフロントエンドの想定漏れ
実装を引き受ける前に詰めておくべきWebフロントエンドの想定漏れ
テストって何をするもの? - テストの5W1H -
テストって何をするもの? - テストの5W1H -
スマホアプリディレクターが考えていること
スマホアプリディレクターが考えていること
iOSアプリ開発のCI環境 - Jenkins編 -
iOSアプリ開発のCI環境 - Jenkins編 -
Bracketsについて
Bracketsについて
ドメイン『駆動』『開発』
ドメイン『駆動』『開発』
20141116 jjug ccc_2014_keynote1_public
20141116 jjug ccc_2014_keynote1_public
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
Xcode10での テスト周りの進化をふりかえる
Xcode10での テスト周りの進化をふりかえる
Bluepillを使ったiOS自動テストの並列化
Bluepillを使ったiOS自動テストの並列化
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
[MW10] Xamarin / OSS プロジェクトを活用したエンタープライズモバイルアプリケーションの実装 - Project Blue Monkey -
バージョンアップの対応を軽減するためのサービスの構築
バージョンアップの対応を軽減するためのサービスの構築
大規模Perl初心者研修を支える技術
大規模Perl初心者研修を支える技術
iOSアプリにおけるリリースフローとCI環境
iOSアプリにおけるリリースフローとCI環境
Xcodeの管理を楽に - Jenkins編 -
Xcodeの管理を楽に - Jenkins編 -
DroidKaigi - Welcome talk
DroidKaigi - Welcome talk
UIテストの実行時間の短縮の方法
UIテストの実行時間の短縮の方法
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
Semelhante a endeworksでのWebAppの作り方
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
楽天エンジニアライフ
楽天エンジニアライフ
Rakuten Group, Inc.
.NET Lab2022年2月
.NET Lab2022年2月
TomomitsuKusaba
事業企画
事業企画
teradonburi Terai
ブラウザだけで学ぶWebアプリ開発【デザイン編】
ブラウザだけで学ぶWebアプリ開発【デザイン編】
schoowebcampus
ON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったこと
Masakazu Muraoka
いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介
Kouji Hosoda
rails-developers-meetup-day4
rails-developers-meetup-day4
Drecom Co., Ltd.
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
増田 亨
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
Ryohei Kamiya
ゼロからのディレクション講座 制作・開発編20150221
ゼロからのディレクション講座 制作・開発編20150221
Yusuke Kojima
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
Yuki Ando
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
WooCommerce 勉強会 - 20161022
WooCommerce 勉強会 - 20161022
Kei Tamura
うちの開発におけるXD利用法
うちの開発におけるXD利用法
Kazuma Sekiguchi
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
MinGeun Park
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
Study Group by SciencePark Corp.
devsami kansai 2012 #c2
devsami kansai 2012 #c2
Yushi_Takagi
Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方
Masakazu Muraoka
Semelhante a endeworksでのWebAppの作り方
(20)
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
楽天エンジニアライフ
楽天エンジニアライフ
.NET Lab2022年2月
.NET Lab2022年2月
事業企画
事業企画
ブラウザだけで学ぶWebアプリ開発【デザイン編】
ブラウザだけで学ぶWebアプリ開発【デザイン編】
ON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったこと
いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介
rails-developers-meetup-day4
rails-developers-meetup-day4
私がドメイン駆動設計をやる理由
私がドメイン駆動設計をやる理由
人工知能のコードをハックする会 #2
人工知能のコードをハックする会 #2
ゼロからのディレクション講座 制作・開発編20150221
ゼロからのディレクション講座 制作・開発編20150221
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
WooCommerce 勉強会 - 20161022
WooCommerce 勉強会 - 20161022
うちの開発におけるXD利用法
うちの開発におけるXD利用法
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
.NET CoreでのWindowsサービスの作り方と、Coreならではの便利な機能
devsami kansai 2012 #c2
devsami kansai 2012 #c2
Html5時代のクリエイターのあり方
Html5時代のクリエイターのあり方
Último
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
Último
(8)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
endeworksでのWebAppの作り方
1.
endeworksでのWebAppの 作り方 株式会社endeworks 船木大郎
2.
ENgineer DEsign WORKS システム開発・コンサルティング Webサイト作成・グラフィックデザイン
3.
弊社代表
4.
エンジニア募集 • ブラウザゲームの制作 • 各種システム開発 お手伝いいただけるPerlエンジニア募集! モダンPerl先生に直接指導してもらえます 興味ある方いましたら、 taro@endeworks.jpまで
5.
自己紹介 名前: 船木大郎 ハンドル: 33rpm PAUSE
ID: TAWAN twitter: http://twitter.com/33rpm
6.
アジェンダ • WebAppを作る工程 • 開発のポリシー/コード規約 •
pixisを紹介 • pixisの使い方
7.
あらかじめ言っておきたいこと
8.
特別なことは なにもやっていません
9.
コードの話の前に
10.
WebAppを作る工程 • 開発 • テスト •
デプロイ • 設置
11.
開発環境 開発サーバと いったものは用意していない
12.
テスト t/*以下のテストコードを書いてテスト Test::FITesque が最近の流行り
13.
デプロイ gitのマスターリポジトリから git pull するだけ デプロイツールといったものは 使用していない
14.
設置 Apache+FCGI
15.
FCGI • daemontoolsでプロセス管理 – プロセス監視機能があるのでプロセスがおち たまま気付かずにサービス停止ということが ない –
管理コマンドによる起動/停止/再起動が簡単
16.
たとえば • WebAppが依存するサービスが複数あって それを同時に再起動したい場合 – FCGIプロセス
& memcached といった場合 svc –t /etc/services/*
17.
コードの話
18.
WebAppの作り方 • Catalystを使用 • Mooseを使用 •
APIモジュール • キャッシングの仕方 • Registryモジュール
19.
Model CatalystのModelは使用しない
20.
なぜModelを使用しないのか • CatalystのModelは当たり前だけどCatalyst 依存 • ModelはWebという枠組みの外、たとえば コマンドラインやワーカーからも呼び出 したいことが多い •
Catalyst::Model::DBIC::Schemaのような ORMをControllerからそのまま呼び出すこ とがない
21.
ではどうするか? Modelに相当するものは MyApp::API::* というネームスペースで作成
22.
APIモジュールでは何を行うか • 中身はORMにアプリケーションロジック を加えて抽象化したモジュール • キャッシングは全てここで管理する
23.
キャッシングのポリシー • ORMレベルでは行わない • 人間が明示的に保存/削除を行う。
24.
キャッシングの詳細 • テーブルのpkをkey、そのpkの行の全デー タをvalueとしてkey value
storageに キャッシングをおこなう • 検索結果などの複数行のデータをキャッ シュしたい場合は全データを保存するの ではなくpkの配列を保存する
25.
DIコンテナは? アプリケーション全体で共有される インスタンスはRegistryというモジュールに 格納
26.
Registryモジュール メモリ上に key value storeするだけの singletonモジュール
27.
その他 • Result定義を基にテーブルを作成する • Formの作成はHTML::FormFuを使用
28.
Result定義を基にDB作成 SQLからではなく Resultモジュールの定義から テーブルの作成や初期データ作成を行う
29.
HTML::FormFu • 今は使用しているけどいろいろ不満もあ る • all-in-one過ぎて生成されるhtmlに融通が 効かない •
Validatorはとてもよく出来ているのでレン ダリングはさせないでValidatorだけ使うと いうのが最近の流行り
30.
具体的な実装であるpixis http://github.com/lestrrat/pixis/tree/master GitHubにて公開中 JPAサイトで利用されるほか endeworksのプロダクトでも使用している
31.
pixisとは Webサービスや SNSでありがちなアカウント管理や メッセージング機能を Catalystに加えたフレームワーク
32.
Pixisの動作環境 • Catalyst 5.8依存 •
あとはMakefile.PLを見て
33.
Pixis::API::* Member, Messageといった Modelを抽象化して アプリケーションロジックを くわえたモジュール群が用意されています
34.
APIモジュールの中身 • 共通で呼び出されているRoleが見つかる with 'Pixis::API::Base::DBIC';
35.
Pixis::API::Base::DBIC • DBとキャッシュの橋渡しをするユーティ リティメソッドを集めたRoleクラス • MooseX::WithCacheを利用
36.
MooseX::WithCache • キャッシングのbackendを指定することで cache_get, cache_setといったメソッドが 利用可能となるRoleクラス use
MooseX::WithCache; with_cache 'cache' => ( backend => 'Cache::Memcached', );
37.
P::A::B::DBICのメソッド • find() • update() •
delete() • search()
38.
search() my @rows =
$rs->search($where, $attrs); my @keys = $multi ? map { my $row = $_; [ map { $row->$_ } @$pk ] } @rows : map { $_->$pk } @rows ; return $self->load_multi(@keys); }
39.
Pixis::Registry • getとsetを持っているだけのコンテナーク ラス • Singletonクラスなので、どんなコンテキ ストからPixis::Registry->getと呼び出して も同じインスタンスが得られる •
$c->model('foo')のようなもの
40.
Pixis::Registryの使い方 • 配列の最後の値をvalue、それまでの値を keyとして格納する Pixis::Registry->set( schema
=> master => $schema ); my $schema = Pixis::Registry ->get( schema => 'master' );
41.
インスタンスの初期化 • 各プラグインの中でRegistryにインスタン スをset していく •
デフォルトでCoreプラグインは呼ばれる のでそれが参考になる • Pixis::Plugin::Coreモジュール内のbefore registerに渡された関数の中で初期化され ている
42.
pixisのプラグイン • ある機能が必要とするAPI, Controller, templateをまとめてloadする仕組み •
今はほとんどCoreプラグインとして書か れている
43.
その他機能 • Widget機能 • I18N機能
44.
Widget機能 • Widget TemplateとWidget
Libararyを追加 することでTemplate内から下記のような 呼び出しが可能 <head> [% run_widget('Head') %] </head>
45.
I18N機能 • I18N/[lang].po内で変換マップを記述して おくことでTemplate内でこのような記述 が可能となる <h2>[% loc("Basic
Settings") %]</h2>
46.
Pixisの使い方 現在公開されているPixisを使って 簡単にサービスを起動することができる
47.
pixisをcheckout $ git clone
git@github.com:lestrrat/pixis.git $ cd pixis $ git branch roller $ git checkout roller $ git pull origin roller
48.
アプリケーション作成 • Catalystのヘルパースクリプトがとりあえ ずそのまま使える $ catalyst.pl
MyApp
49.
pixisを読みこむ • MyApp.pmを書き変える package MyApp; use
Pixis::Web; use namespace::clean -except => qw(meta); __PACKAGE__->config( name => 'MyApp' ); __PACKAGE__->setup();
50.
MyAppを起動 • MyApp →
pixisの順でライブラリを読みこ むようにして起動する $ perl –Ilib –I[pixis_core_path]/lib script/myapp_server.pl -d
51.
MyApp特有の実装を行う • API, Controller,
templateはMyAppに存在し なければpixisで対応するファイルをloadす る • MyAppにファイルが存在していればそっ ちが優先的にloadする
52.
DBのSetup script/pixis_setupdb.pl というスクリプトを用意 中身は Pixis::CLI::SetupDB を呼び出しているだけ
53.
pixis_setupdb.plの使い方 script/pixis_setupdb.pl [--drop] --dsn dsn --username username --password
password
54.
Pixisの今後 • 携帯対応 • 機能がCore
Pluginに集まってるので分離 する? • ヘルパースクリプト追加?
55.
ご静聴ありがとう ございました!
Notas do Editor
YAPC開催の主幹であるJPAの理事や、モダンPerl入門の著者である牧が代表をやっています。毎日僕のむかいでこの格好で鎮座しています。
endeworksのWebApp開発ノウハウの最新版の反映といえるpixisのコードを紹介していきます。
endeworksならではの裏技、必殺技みたいのは全く繰り出しません。普段あまり他の人がつくったCatalystアプリを見る機会もなさそうなので、あたりまえにやっていることを改めて話すことにも意味があるかなと 思ってます。比較できないことで不安に感じたりしていた人が、このスライドをみてああ、俺は標準サイズなんだなと安心してくれれば幸いです。
コードの話をきくことはおおいけどそのまわりをとりまく環境については、あたりまえすぎてあらためて紹介されないので知りたい、という話をいただいたのでちょっと時間をつかって紹介したいと思います。
各エンジニア、まあ二人ですがの端末でそれぞれ開発してます
まあこれぐらい当たり前のことを話していきます
バージョン管理も最近gitに移行して、二人でもうsubversionには戻りたくない、という話をしている。カピなんたらみたいのは使ってないです
mod_perl, lightyという変遷があって今はこれでおちついています
qmailで有名なdjbのソフトウェアでqmailと同様にdaemontoolsも癖があってとっつきにくいが、慣れるとなかなかわるくないです。
ある決まったディレクトリ、この場合は、/etc/servicesに存在するディクトリがひとつのサービス/デーモン
弊社での作り方のポリシーというかコード規約というかの中で特徴的な部分と思われるところを挙げます。MooseもCatalystもということで弊社ではCatalyst 5.8はプロダクトユースでがんがん使っています。
APIモジュールというのはアプリケーションロジックをふくModelといったあつかい
弊社で使うkey value storageはmemcachedです。pkの配列をとってきたら各pkについてまたデータをとってきます。
Baixar agora