Submit Search
Upload
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
•
Download as PPTX, PDF
•
23 likes
•
9,878 views
Yuji Otani
Follow
2015年8月15日のGo言語勉強会で発表した資料です。Go言語のフレームワークRevelの紹介とサービスにおける活用事例についての内容になります。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 50
Download now
Recommended
SpringBootにおけるテンプレートエンジンの活用
SpringBootにおけるテンプレートエンジンの活用
iPride Co., Ltd.
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
yoshiaki iwanaga
Data-centricなML開発
Data-centricなML開発
Takeshi Suzuki
新しい推薦方式 知識ベース型推薦についての解説
新しい推薦方式 知識ベース型推薦についての解説
Takahiro Kubo
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
Hideo Terada
Active Learning 入門
Active Learning 入門
Shuyo Nakatani
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
Ayako_Hasegawa
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出
Shuyo Nakatani
Recommended
SpringBootにおけるテンプレートエンジンの活用
SpringBootにおけるテンプレートエンジンの活用
iPride Co., Ltd.
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
yoshiaki iwanaga
Data-centricなML開発
Data-centricなML開発
Takeshi Suzuki
新しい推薦方式 知識ベース型推薦についての解説
新しい推薦方式 知識ベース型推薦についての解説
Takahiro Kubo
画像処理AIを用いた異常検知
画像処理AIを用いた異常検知
Hideo Terada
Active Learning 入門
Active Learning 入門
Shuyo Nakatani
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
実践 Amazon Mechanical Turk ※下記の注意点をご覧ください(回答の質の悪化・報酬額の相場の変化・仕様変更)
Ayako_Hasegawa
CRF を使った Web 本文抽出
CRF を使った Web 本文抽出
Shuyo Nakatani
AWSではじめるMLOps
AWSではじめるMLOps
MariOhbuchi
例外設計における大罪
例外設計における大罪
Takuto Wada
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
Hironori Washizaki
Data-Centric AIの紹介
Data-Centric AIの紹介
Kazuyuki Miyazawa
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
Deep Learning JP
AI勉強会用スライド
AI勉強会用スライド
harmonylab
DevOps with Database on AWS
DevOps with Database on AWS
Amazon Web Services Japan
One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知
Yuto Mori
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
firewood
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
ktaro_w
Kaggleのテクニック
Kaggleのテクニック
Yasunori Ozaki
ECCV2020 オーラル論文完全読破 (2/2)
ECCV2020 オーラル論文完全読破 (2/2)
cvpaper. challenge
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
Recruit Technologies
幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう
scarletplover
Lightweight Keycloak
Lightweight Keycloak
Hiroyuki Wada
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
x1 ichi
ソフトウェアテストの歴史と近年の動向
ソフトウェアテストの歴史と近年の動向
Keizo Tatsumi
Introduction to Go programming
Introduction to Go programming
Exotel
FPGAを用いたシリアル入力型VGA映像出力装置の設計と実装
FPGAを用いたシリアル入力型VGA映像出力装置の設計と実装
Yusei Yamanaka
More Related Content
What's hot
AWSではじめるMLOps
AWSではじめるMLOps
MariOhbuchi
例外設計における大罪
例外設計における大罪
Takuto Wada
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
Hironori Washizaki
Data-Centric AIの紹介
Data-Centric AIの紹介
Kazuyuki Miyazawa
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
Deep Learning JP
AI勉強会用スライド
AI勉強会用スライド
harmonylab
DevOps with Database on AWS
DevOps with Database on AWS
Amazon Web Services Japan
One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知
Yuto Mori
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
firewood
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
ktaro_w
Kaggleのテクニック
Kaggleのテクニック
Yasunori Ozaki
ECCV2020 オーラル論文完全読破 (2/2)
ECCV2020 オーラル論文完全読破 (2/2)
cvpaper. challenge
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
STAIR Lab, Chiba Institute of Technology
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
Yahoo!デベロッパーネットワーク
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
Recruit Technologies
幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう
scarletplover
Lightweight Keycloak
Lightweight Keycloak
Hiroyuki Wada
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
x1 ichi
ソフトウェアテストの歴史と近年の動向
ソフトウェアテストの歴史と近年の動向
Keizo Tatsumi
What's hot
(20)
AWSではじめるMLOps
AWSではじめるMLOps
例外設計における大罪
例外設計における大罪
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
メトリクスによるソフトウェア品質把握と改善- 演習を交えた品質測定評価の落とし穴とコツの習得 -
Data-Centric AIの紹介
Data-Centric AIの紹介
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
AI勉強会用スライド
AI勉強会用スライド
DevOps with Database on AWS
DevOps with Database on AWS
One Class SVMを用いた異常値検知
One Class SVMを用いた異常値検知
WkWebViewのキャッシュについて調べた
WkWebViewのキャッシュについて調べた
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Elasticsearchのサジェスト機能を使った話
Elasticsearchのサジェスト機能を使った話
Kaggleのテクニック
Kaggleのテクニック
ECCV2020 オーラル論文完全読破 (2/2)
ECCV2020 オーラル論文完全読破 (2/2)
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
時系列ビッグデータの特徴自動抽出とリアルタイム将来予測(第9回ステアラボ人工知能セミナー)
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
リクルートのWebサービスを支える「RAFTEL」
リクルートのWebサービスを支える「RAFTEL」
幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう
Lightweight Keycloak
Lightweight Keycloak
あなたのScalaを爆速にする7つの方法(日本語版)
あなたのScalaを爆速にする7つの方法(日本語版)
ソフトウェアテストの歴史と近年の動向
ソフトウェアテストの歴史と近年の動向
Viewers also liked
Introduction to Go programming
Introduction to Go programming
Exotel
FPGAを用いたシリアル入力型VGA映像出力装置の設計と実装
FPGAを用いたシリアル入力型VGA映像出力装置の設計と実装
Yusei Yamanaka
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
Yoshiki Shibukawa
Database sql
Database sql
明 高橋
猫にはわからないGit講座
猫にはわからないGit講座
Yusei Yamanaka
【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
Yuji Otani
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
LINE Ads PlatformのCTRを2倍にした開発手法
LINE Ads PlatformのCTRを2倍にした開発手法
LINE Corporation
Viewers also liked
(8)
Introduction to Go programming
Introduction to Go programming
FPGAを用いたシリアル入力型VGA映像出力装置の設計と実装
FPGAを用いたシリアル入力型VGA映像出力装置の設計と実装
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
Database sql
Database sql
猫にはわからないGit講座
猫にはわからないGit講座
【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
LINE Ads PlatformのCTRを2倍にした開発手法
LINE Ads PlatformのCTRを2倍にした開発手法
Similar to Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発
Yuji Otani
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
Yuji Otani
就職説明会 181215 株式会社mofmof
就職説明会 181215 株式会社mofmof
DIVE INTO CODE Corp.
スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方
Yuji Otani
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
Yuji Otani
Webエンジニアのサバイバル英会話
Webエンジニアのサバイバル英会話
Jumpei iwamura
Global engineerlab kawani
Global engineerlab kawani
Shin Kawani
Hack言語に賭けたチームの話
Hack言語に賭けたチームの話
Yuji Otani
プロが教える Rails 教え方ワンポイントとキャリア情報
プロが教える Rails 教え方ワンポイントとキャリア情報
DIVE INTO CODE Corp.
MVPの在り方
MVPの在り方
Noritaka Shinohara
【学生向け】就活ポートフォリオビフォー・アフター 〜書類審査を突破するポートフォリオを作ろう〜
【学生向け】就活ポートフォリオビフォー・アフター 〜書類審査を突破するポートフォリオを作ろう〜
Aimi Shinohara
Product ManagerとProduct Ownerの役割の違いについて
Product ManagerとProduct Ownerの役割の違いについて
Noritaka Shinohara
専門学校様向けeラーニングのご提案
専門学校様向けeラーニングのご提案
elephancube
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
Masahiro Nishimi
Windowsアプリ開発の実務で使うUnitTest
Windowsアプリ開発の実務で使うUnitTest
keitasudo1
Google Apps Script 活用ミートアップ#4 発表資料
Google Apps Script 活用ミートアップ#4 発表資料
Takayoshi Sakaino
「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮)
Taku Yajima
「手探りで始めた企業内スタートアップで嵌まったことEX」
「手探りで始めた企業内スタートアップで嵌まったことEX」
Noritaka Shinohara
経験ゼロのWeb企業が機械学習に取り組んだ話
経験ゼロのWeb企業が機械学習に取り組んだ話
Yoshihiko Shiraki
受託開発会社による「受託開発と自社サービス開発の両立」と新サービス「Board」ができるまで
受託開発会社による「受託開発と自社サービス開発の両立」と新サービス「Board」ができるまで
Yusuke Tamukai
Similar to Go言語のフレームワークRevelの紹介とサービスにおける活用事例
(20)
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
就職説明会 181215 株式会社mofmof
就職説明会 181215 株式会社mofmof
スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
Webエンジニアのサバイバル英会話
Webエンジニアのサバイバル英会話
Global engineerlab kawani
Global engineerlab kawani
Hack言語に賭けたチームの話
Hack言語に賭けたチームの話
プロが教える Rails 教え方ワンポイントとキャリア情報
プロが教える Rails 教え方ワンポイントとキャリア情報
MVPの在り方
MVPの在り方
【学生向け】就活ポートフォリオビフォー・アフター 〜書類審査を突破するポートフォリオを作ろう〜
【学生向け】就活ポートフォリオビフォー・アフター 〜書類審査を突破するポートフォリオを作ろう〜
Product ManagerとProduct Ownerの役割の違いについて
Product ManagerとProduct Ownerの役割の違いについて
専門学校様向けeラーニングのご提案
専門学校様向けeラーニングのご提案
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
Windowsアプリ開発の実務で使うUnitTest
Windowsアプリ開発の実務で使うUnitTest
Google Apps Script 活用ミートアップ#4 発表資料
Google Apps Script 活用ミートアップ#4 発表資料
「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮)
「手探りで始めた企業内スタートアップで嵌まったことEX」
「手探りで始めた企業内スタートアップで嵌まったことEX」
経験ゼロのWeb企業が機械学習に取り組んだ話
経験ゼロのWeb企業が機械学習に取り組んだ話
受託開発会社による「受託開発と自社サービス開発の両立」と新サービス「Board」ができるまで
受託開発会社による「受託開発と自社サービス開発の両立」と新サービス「Board」ができるまで
More from Yuji Otani
SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジー
Yuji Otani
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由
Yuji Otani
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか
Yuji Otani
Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7
Yuji Otani
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
Yuji Otani
PHP7がリリースされたいま、 改めてHackについて考える。
PHP7がリリースされたいま、 改めてHackについて考える。
Yuji Otani
FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例
Yuji Otani
Phalcon勉強会資料
Phalcon勉強会資料
Yuji Otani
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
Yuji Otani
Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)
Yuji Otani
【基礎編】社内向けMySQL勉強会
【基礎編】社内向けMySQL勉強会
Yuji Otani
Nginx勉強会
Nginx勉強会
Yuji Otani
PHP基礎勉強会
PHP基礎勉強会
Yuji Otani
負荷分散勉強会
負荷分散勉強会
Yuji Otani
NoSQL勉強会
NoSQL勉強会
Yuji Otani
Php5 4勉強会
Php5 4勉強会
Yuji Otani
More from Yuji Otani
(17)
SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジー
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由
Redisの特徴と活用方法について
Redisの特徴と活用方法について
「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか
Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
PHP7がリリースされたいま、 改めてHackについて考える。
PHP7がリリースされたいま、 改めてHackについて考える。
FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例
Phalcon勉強会資料
Phalcon勉強会資料
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)
【基礎編】社内向けMySQL勉強会
【基礎編】社内向けMySQL勉強会
Nginx勉強会
Nginx勉強会
PHP基礎勉強会
PHP基礎勉強会
負荷分散勉強会
負荷分散勉強会
NoSQL勉強会
NoSQL勉強会
Php5 4勉強会
Php5 4勉強会
Recently uploaded
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(11)
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
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 now