Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yuji Otani
PPTX, PDF
9,912 views
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
2015年8月15日のGo言語勉強会で発表した資料です。Go言語のフレームワークRevelの紹介とサービスにおける活用事例についての内容になります。
Technology
◦
Read more
23
Save
Share
Embed
Embed presentation
Download
Downloaded 18 times
1
/ 50
2
/ 50
3
/ 50
4
/ 50
5
/ 50
6
/ 50
7
/ 50
8
/ 50
9
/ 50
10
/ 50
11
/ 50
12
/ 50
13
/ 50
14
/ 50
15
/ 50
16
/ 50
17
/ 50
18
/ 50
19
/ 50
20
/ 50
21
/ 50
22
/ 50
23
/ 50
24
/ 50
25
/ 50
26
/ 50
27
/ 50
28
/ 50
29
/ 50
30
/ 50
31
/ 50
32
/ 50
33
/ 50
34
/ 50
35
/ 50
36
/ 50
37
/ 50
38
/ 50
39
/ 50
40
/ 50
41
/ 50
42
/ 50
43
/ 50
44
/ 50
45
/ 50
46
/ 50
47
/ 50
48
/ 50
49
/ 50
50
/ 50
More Related Content
PPTX
Bakone ba maserumule, Tikologo lehlakore la lefelo
by
u23576864
PPTX
PEGO YA SEHLOPHA SA DIKOLOBE TSA BJATLADI : LEGORO LE LEGOLO LA DITIRAGALO KA...
by
venetiaphaho
PPTX
グラフデータベース入門
by
Masaya Dake
PDF
暗号技術の実装と数学
by
MITSUNARI Shigeo
PDF
Vivado hls勉強会4(axi4 master)
by
marsee101
PDF
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
by
京大 マイコンクラブ
PPTX
がっつりMongoDB事例紹介
by
Tetsutaro Watanabe
PDF
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
by
marsee101
Bakone ba maserumule, Tikologo lehlakore la lefelo
by
u23576864
PEGO YA SEHLOPHA SA DIKOLOBE TSA BJATLADI : LEGORO LE LEGOLO LA DITIRAGALO KA...
by
venetiaphaho
グラフデータベース入門
by
Masaya Dake
暗号技術の実装と数学
by
MITSUNARI Shigeo
Vivado hls勉強会4(axi4 master)
by
marsee101
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
by
京大 マイコンクラブ
がっつりMongoDB事例紹介
by
Tetsutaro Watanabe
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
by
marsee101
What's hot
PPTX
Izinkondlo zika bw vilakazi
by
lebogang shakwane
PPTX
(Dipego)Presentation bahananwa final 2.pptx
by
u24708047
PPTX
Bakgaga ba Mphahlele AFT 121 Dipego.pptx
by
u24854052
PDF
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
by
Recruit Lifestyle Co., Ltd.
PPTX
全体セミナーWfst
by
Jiro Nishitoba
PDF
ゼロから始めるサブスク生活
by
KLab Inc. / Tech
PDF
型安全性入門
by
Akinori Abe
PPTX
[社内勉強会]ELBとALBと数万スパイク負荷テスト
by
Takahiro Moteki
PPTX
Autonomous Database で Oracle Database19c 新機能 を味わう。
by
歩 柴田
PPTX
DevOps勉強会
by
Shuntaro Saiba
PDF
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
by
marsee101
PDF
UE4 LODs for Optimization -Beginner-
by
com044
PDF
XAML入門
by
一希 大田
PDF
用十分鐘搞懂《離散數學》
by
鍾誠 陳鍾誠
PDF
Kotlinアンチパターン
by
Recruit Lifestyle Co., Ltd.
PDF
TensorFlow Liteを使った組み込みディープラーニング開発
by
Makoto Koike
PDF
WASM(WebAssembly)入門 ペアリング演算やってみた
by
MITSUNARI Shigeo
PPTX
Java8勉強会
by
賢太郎 前多
PPTX
Zynq + Vivado HLS入門
by
narusugimoto
PDF
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
by
Yoshifumi Kawai
Izinkondlo zika bw vilakazi
by
lebogang shakwane
(Dipego)Presentation bahananwa final 2.pptx
by
u24708047
Bakgaga ba Mphahlele AFT 121 Dipego.pptx
by
u24854052
大規模サービスにおける価値開発の“これまで”と“将来”~新たな“じゃらんnet”のチャレンジに関して~
by
Recruit Lifestyle Co., Ltd.
全体セミナーWfst
by
Jiro Nishitoba
ゼロから始めるサブスク生活
by
KLab Inc. / Tech
型安全性入門
by
Akinori Abe
[社内勉強会]ELBとALBと数万スパイク負荷テスト
by
Takahiro Moteki
Autonomous Database で Oracle Database19c 新機能 を味わう。
by
歩 柴田
DevOps勉強会
by
Shuntaro Saiba
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ)
by
marsee101
UE4 LODs for Optimization -Beginner-
by
com044
XAML入門
by
一希 大田
用十分鐘搞懂《離散數學》
by
鍾誠 陳鍾誠
Kotlinアンチパターン
by
Recruit Lifestyle Co., Ltd.
TensorFlow Liteを使った組み込みディープラーニング開発
by
Makoto Koike
WASM(WebAssembly)入門 ペアリング演算やってみた
by
MITSUNARI Shigeo
Java8勉強会
by
賢太郎 前多
Zynq + Vivado HLS入門
by
narusugimoto
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
by
Yoshifumi Kawai
Viewers also liked
PPTX
【初心者向け】Go言語勉強会資料
by
Yuji Otani
PDF
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
PDF
猫にはわからないGit講座
by
Yusei Yamanaka
PPT
Introduction to Go programming
by
Exotel
PPTX
FINAL FANTASY Record Keeperを支えたGolang
by
Yoshiki Shibukawa
PDF
LINE Ads PlatformのCTRを2倍にした開発手法
by
LINE Corporation
PDF
FPGAを用いたシリアル入力型VGA映像出力装置の設計と実装
by
Yusei Yamanaka
PDF
Database sql
by
明 高橋
【初心者向け】Go言語勉強会資料
by
Yuji Otani
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
猫にはわからないGit講座
by
Yusei Yamanaka
Introduction to Go programming
by
Exotel
FINAL FANTASY Record Keeperを支えたGolang
by
Yoshiki Shibukawa
LINE Ads PlatformのCTRを2倍にした開発手法
by
LINE Corporation
FPGAを用いたシリアル入力型VGA映像出力装置の設計と実装
by
Yusei Yamanaka
Database sql
by
明 高橋
Similar to Go言語のフレームワークRevelの紹介とサービスにおける活用事例
PDF
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
by
Yoshitaka Kawashima
PDF
Scalaでのプログラム開発
by
Kota Mizushima
PDF
「フレームワークを使っていれば 脆弱性は出ない」って本当?
by
thatblue
PDF
Scala conf2013
by
Takafumi Ikeda
PDF
第21回Creators MeetUp
by
Kenichi Mukai
PPTX
Go+revel
by
Amuro Nishizawa
PDF
Scalaの現状と課題
by
Kota Mizushima
Javaの進化にともなう運用性の向上はシステム設計にどういう変化をもたらすのか
by
Yoshitaka Kawashima
Scalaでのプログラム開発
by
Kota Mizushima
「フレームワークを使っていれば 脆弱性は出ない」って本当?
by
thatblue
Scala conf2013
by
Takafumi Ikeda
第21回Creators MeetUp
by
Kenichi Mukai
Go+revel
by
Amuro Nishizawa
Scalaの現状と課題
by
Kota Mizushima
More from Yuji Otani
PPTX
Hack言語に賭けたチームの話
by
Yuji Otani
PPTX
スタートアップにおける技術チームの作り方
by
Yuji Otani
PPTX
Redis勉強会資料(2015/06 update)
by
Yuji Otani
PPTX
Hack+FuelPHPによるWebサービス開発
by
Yuji Otani
PPTX
PHP7ではなくHack/HHVMを選ぶ理由
by
Yuji Otani
PPTX
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
by
Yuji Otani
PPTX
PHP7がリリースされたいま、 改めてHackについて考える。
by
Yuji Otani
PPTX
FuelPHP × HHVM サービス開発事例
by
Yuji Otani
PPTX
「技術のインテリジェンスを創る」をどうやって実現するか
by
Yuji Otani
PPTX
Redisの特徴と活用方法について
by
Yuji Otani
PPTX
Phalcon勉強会資料
by
Yuji Otani
PPTX
Hack/HHVMの最新事情とメイン言語に採用した理由
by
Yuji Otani
PPTX
負荷分散勉強会
by
Yuji Otani
PPTX
Nginx勉強会
by
Yuji Otani
PPTX
PHP基礎勉強会
by
Yuji Otani
PPTX
【基礎編】社内向けMySQL勉強会
by
Yuji Otani
PPTX
Why choose Hack/HHVM over PHP7
by
Yuji Otani
PPTX
NoSQL勉強会資料(2015/03/12@ヒカラボ )
by
Yuji Otani
PPTX
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
by
Yuji Otani
PPTX
SKYDISCのIoTを支えるテクノロジー
by
Yuji Otani
Hack言語に賭けたチームの話
by
Yuji Otani
スタートアップにおける技術チームの作り方
by
Yuji Otani
Redis勉強会資料(2015/06 update)
by
Yuji Otani
Hack+FuelPHPによるWebサービス開発
by
Yuji Otani
PHP7ではなくHack/HHVMを選ぶ理由
by
Yuji Otani
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
by
Yuji Otani
PHP7がリリースされたいま、 改めてHackについて考える。
by
Yuji Otani
FuelPHP × HHVM サービス開発事例
by
Yuji Otani
「技術のインテリジェンスを創る」をどうやって実現するか
by
Yuji Otani
Redisの特徴と活用方法について
by
Yuji Otani
Phalcon勉強会資料
by
Yuji Otani
Hack/HHVMの最新事情とメイン言語に採用した理由
by
Yuji Otani
負荷分散勉強会
by
Yuji Otani
Nginx勉強会
by
Yuji Otani
PHP基礎勉強会
by
Yuji Otani
【基礎編】社内向けMySQL勉強会
by
Yuji Otani
Why choose Hack/HHVM over PHP7
by
Yuji Otani
NoSQL勉強会資料(2015/03/12@ヒカラボ )
by
Yuji Otani
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
by
Yuji Otani
SKYDISCのIoTを支えるテクノロジー
by
Yuji Otani
Recently uploaded
PDF
TomokaEdakawa_職種と講義の関係推定に基づく履修支援システムの基礎検討_HCI2026
by
Matsushita Laboratory
PDF
maisugimoto_曖昧さを含む仕様書の改善を目的としたアノテーション支援ツールの検討_HCI2025.pdf
by
Matsushita Laboratory
PDF
20260119_VIoTLT_vol22_kitazaki_v1___.pdf
by
Ayachika Kitazaki
PDF
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
PDF
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
PDF
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
TomokaEdakawa_職種と講義の関係推定に基づく履修支援システムの基礎検討_HCI2026
by
Matsushita Laboratory
maisugimoto_曖昧さを含む仕様書の改善を目的としたアノテーション支援ツールの検討_HCI2025.pdf
by
Matsushita Laboratory
20260119_VIoTLT_vol22_kitazaki_v1___.pdf
by
Ayachika Kitazaki
自転車ユーザ参加型路面画像センシングによる点字ブロック検出における性能向上方法の模索 (20260123 SeMI研)
by
Yuto Matsuda
ST2024_PM1_2_Case_study_of_local_newspaper_company.pdf
by
akipii ogaoga
Team Topology Adaptive Organizational Design for Rapid Delivery of Valuable S...
by
akipii ogaoga
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
1.
フレームワークRevelの紹介と サービスにおける活用事例 株式会社インテリジェンス 大谷 祐司 1 2015/08/11
2.
2 ・山口県下関出身の34歳 ・インテリジェンスの新規事業(MIIDAS)の技術責任者。 ・企画からアプリ、インフラまで幅広くやっています。 ・車とプログラミングを愛しています。 ・土日は育児しながら勉強しています。 ・Facebookの友達申請は気軽にぜひ! https://www.facebook.com/yuji.otani.16 自己紹介
3.
3 AmazonでのTシャツ購入は 早くも3枚目になりました。
4.
4 5年 7年 8ヶ月 → → メイン開発言語の経歴
5.
5 最近注目されているGo言語。 採用実績も増えています。 インテリジェンス社内でフレームワーク Revelを利用していますので、特徴と合わ せてご紹介します。 勉強会の内容
6.
6 会場の皆さんに質問です。
7.
7 質問① Revelを実際に触ったことがあるかた
8.
8 質問② Revelを業務で使っているかた
9.
9 Revelの紹介
10.
10 ・Java/Scalaで人気のplay frameworkを参考に 作られたGo言語のMVCフレームワーク。 ・機能が豊富で「フルスタック」である。
11.
11 ・Webアプリケーションに必要な機能が揃っている。 ・コマンドでスケルトンの作成やアプリケーションの 起動を行う事ができる。 ・コードを編集すると自動的にコンパイルを実行できる。 ・devモードの実行が可能で、デバッグを簡単に行える。 Revelの特徴
12.
12 Revelとはどういう意味? ・酒盛り ・お祭り騒ぎ ・飲んで浮かれる
13.
13 go getコマンドで簡単にインストール →revelコマンドが利用できるようになる。 go get
github.com/revel/revel go get github.com/revel/cmd/revel インストール方法
14.
14 ・revel new :
アプリケーションのスケルトン生成 ・revel run :テスト用にアプリケーション起動 ・revel build:同一サーバへのビルド Revel6つのコマンド
15.
15 ・revel package:デプロイ用のパッケージ作成 ・revel clean
:一時ファイルの削除 ・revel test :テストを実行する Revel6つのコマンド
16.
16 Revelで提供されている機能
17.
17 ルーティング リクエストパラメータのパース バリデーション セッション管理 Viewのテンプレート キャッシュ(Redis/memcached) 主な機能
18.
18 ジョブ実行 テストフレームワーク 言語の国際化対応 Config(dev/prd)→stgとか追加可能 ロギング Profiler Csrf(要プラグイン) 主な機能
19.
19 サイバーエージェント社がAmeba Owndで採用。 『Ameba Ownd』では、RevelとGorilla
web toolkit の2つを 比較検討し、結果的にRevelを採用しました。Revelの方が “お作法”が決まっていて、スムーズに書くことができると感 じたためです。 http://engineer.typemag.jp/article/amebaownd 採用事例
20.
20 Talknote社が自社のSNSで採用。 選定理由 ・開発が活発で多くの人に使われていること ・他言語と同様のパラダイムで設計されたWAFであること ・応答速度が速い 採用事例
21.
21 インテリジェンスにおける Revelの活用事例
22.
22 先月リリースされた転職サイトで、 初めてGo言語を採用しました。
23.
Web開発言語 :Hack(hhvm3.7) フレームワーク :FuelPHP1.7 バッチ開発言語
:Go言語1.4 OS :CentOS7 Webサーバ :nginx1.9 DB :MariaDB10.0 インフラ管理 :Ansible 採用している技術 23
24.
24 ・データ連携/集計、KPIアラートなどのバッチ ・GoをコンパイルしてHackから呼び出す ・サービス管理用のツール(Revel) Go言語を利用している部分
25.
25 バッチが多く、かつ処理が複雑になりそうだった。 並列処理を活用する場面が多そうだった。 高いパフォーマンスと並列処理の仕組みがある。 Go言語を選択した理由
26.
26 最低限の機能で開発してから機能追加していく 初期リリース時には最低限のテストコードのみを書く メンテナンスやリファクタリングしやすい特徴から、 コンパイル言語が合っていると判断。 Go言語を選択した理由
27.
27 これからメジャーになっていく言語だという確信。 PHPerが習得しやすい言語だという話を聞く。 周りのGopherがみんな楽しそう。 Goを採用して、チームのチャレンジ意識を高めたい。 Go言語を選択した理由
28.
28 ①「フルスタック」のフレームワークなので、Go 言語で開発するお作法を学ぶのに役立てたい。 ② 初めてということで、とりあえずメジャーなフ レームワークを押さえておきたかった。 Revelを選択した理由
29.
29 本番Webサーバの構成 ・nginxをフロントにしてproxy_passで動作 ・リクエストによってHack/Revelを切り替え Internet 9001 9000
30.
30 工夫ポイント ORMにはGormを採用。 パフォーマンス < スマートなコード RevelのサンプルにはGorpが使われていますが、 スマートにコーディングできて多機能なGormを 使っています。
31.
31 工夫ポイント 標準のViewテンプレートが多機能とは言えない ので、独自にfuncを定義して使っています。 revel.TemplateFuncsにinit()で渡す事により、 アプリケーション独自の関数が作成可能です。
32.
32 View周りの情報がとても少ないです。 癖のあるテンプレートエンジン・・・ selectboxに初期選択値を設定できずに ハマりました。 ハマりポイント
33.
33 teratailで初めて質問するが、回答がつかずに 凹みます・・・
34.
34 なんとかチーム内で解決しましたが、ハマる と本当に厄介です。。
35.
35 まとめ Revelはとても「楽しみながら」開発できるフレーム ワークです。機能が豊富でGo言語の理解を深めるこ とができると思います。 今後はRevelを利用したWebサービスも開発予定。 どんどん活用していきたいと思っています。
36.
36 おまけ Go言語開発における パフォーマンス改善事例
37.
37 事例①:データ集計バッチ もともとORマッパ(Gorm)を利用していた バッチにおいて、パフォーマンス改善し た事例をご紹介します。
38.
38 実際のベンチマーク例 ・3万レコードをテーブルAから取得 ・特定の加工処理を行う。 ・テーブルBに加工後のレコードをinsert Goバッチ システムDB システムDB
39.
39 実際のベンチマーク例 ORM(Gorm)の利用 14.7秒 Goバッチ システムDB システムDB 1.4秒 13.3秒
40.
40 実際のベンチマーク例 直接SQL実行(1件毎のinsert) 9.3秒 Goバッチ システムDB システムDB 1.0秒 8.3秒
41.
41 実際のベンチマーク例 直接SQL実行(1000件毎のinsert) 5.8秒 Goバッチ システムDB システムDB 1.0秒 4.8秒
42.
42 ORM→直接SQLを実行に切り替えることで、 約3倍のパフォーマンスを改善しました。
43.
43 事例②:文字列の連結 あまり考えず文字列連結をしていましたが、 工夫することで大幅なパフォーマンスUPを 実現することができました。
44.
44 1から1000万までを文字列として連結し ファイルに出力 計測してみました
45.
45 1から1000万までを文字列として連結しファイルに出力 実際のベンチマーク例 data := "" for
i := 1; i <= 10000000; i++ { data += strconv.Itoa(i) } content := []byte(data) ioutil.WriteFile("exportgo.txt", content, os.ModePerm) 文字列連結:10分以上・・・
46.
46 1から1000万までを文字列として連結しファイルに出力 実際のベンチマーク例 var buffer bytes.Buffer for
i := 1; i <= 10000000; i++ { buffer.WriteString(strconv.Itoa(i)) } content := []byte(buffer.String()) ioutil.WriteFile("exportgo.txt", content, os.ModePerm) bytes.Bufferを利用:0.95秒
47.
47 大量の文字列の連結にはbytes.Buffer を活用すべし!! 「+」での連結は非常に遅いです・・
48.
48 本日の内容は以上になります。
49.
49 インテリジェンスでは、Go言語を採用したプロ ジェクトが複数立ち上がっています。 エンジニアを募集していますので、興味ある方は お声がけください!
50.
50 ご静聴ありがとうございました。
Download