Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Bot開発でRubyを学ぶ / Learn Ruby with Bot Development
Search
bake0937
July 17, 2019
Programming
0
440
Bot開発でRubyを学ぶ / Learn Ruby with Bot Development
2019.07.17 📅 Otemachi.rb #19
bake0937
July 17, 2019
Tweet
Share
More Decks by bake0937
See All by bake0937
GASを使って非エンジニアが AWS Step Functions を 操作できる仕組みの紹介 / Introducing how non-engineers can operate AWS Step Functions using GAS
bake0937
1
400
CircleCI の有料プランを導入するためにやったこと/What I did to introduce CircleCI's paid plan
bake0937
0
1.5k
FlutterアプリのiOSビルドとアーカイブを CircleCI で自動化してみた / Tried automating the iOS build and archive of the Flutter app with CircleCI
bake0937
0
1.2k
Probot で学ぶ TypeScript / Learn with Probot TypeScript
bake0937
0
170
Amazon ECR を利用していたと思ったら、Docker Hub を利用し続けていた / If I thought I was using Amazon ECR, I continued to use Docker Hub
bake0937
0
940
Jest + Puppeteer によるE2Eテストで確認作業を短縮してみた / End-to-end testing by Jest + Puppeteer shortened the confirmation work
bake0937
0
660
所属企業の Advent Calendar を初めて作った時に学んだこと / What I learned when I first created my company's Advent Calendar
bake0937
1
810
Notion 📚 へ移行して 3ヶ月経った振り返り / Looking back at Notion after 3 months
bake0937
0
5.9k
小さく始めるOSS活動
bake0937
0
120
Other Decks in Programming
See All in Programming
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
440
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
1
7.3k
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
1.1k
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
620
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
99
37k
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
800
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
320
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
0
320
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
200
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
300
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
10
1.1k
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
170
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Building Applications with DynamoDB
mza
95
6.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.3k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Statistics for Hackers
jakevdp
799
220k
Typedesign – Prime Four
hannesfritz
42
2.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
990
Into the Great Unknown - MozCon
thekraken
40
1.9k
Balancing Empowerment & Direction
lara
1
450
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Transcript
Bot開発でRubyを学ぶ 岡部 恭平 / Mynavi Corporation 2019.07.17 Otemachi.rb #19
IT戦略事業部 IT開発統括部 ITマネジメント2部 開発1課(マイナビニュース) 岡部恭平 @okabeeeat Webアプリケーションエンジニア
マイナビニュース
マイナビニュースを支える技術
本題
最近の悩み 個人的な悩み • 普段、業務で Rails を書いている • Ruby は確かに書いてはいるが、あくまでレールに乗った上で書いているためRuby 自体を使いこなせてるか不安になる時がある
• 急に独自のクラスやモジュールを書くぞ!ってなった時に焦る 業務でのちょっとした悩み • GitHub の Issue 作成など画面でポチポチする系の作業が面倒だと感じる時があ る
そうだ! Botを作ろう
選定したBotフレームワーク • Ruboty ◦ https://github.com/r7kamura/ruboty ◦ カスタマイズ性が高い ◦ 国産で導入事例やナレッジ、様々なプラグインがある •
タイミングを見て Lita でも Bot を作って検証してみたい ◦ Lita: https://github.com/litaio/lita
導入はこんなに簡単 ① Bot の追加と API トークンを取得 ② Ruboty のインストールと起動 ③確認
作ったBot なぜなぜベア • マイナビベアが Slack 上で GitHub の Issue 名を「なぜなぜ分析※1」し、
Issue を磨いてくれ る Bot • マイナビベアはユーザに対して「なぜなぜ」を 5回繰り返す • マイナビベアは 5回目の「なぜなぜ」で GitHub の Issue を作成する ◦ Octokit.rb で GitHub API を実行し Issue を作成する ◦ https://github.com/octokit/octokit.rb • まずは最低限の機能のみを実装する ※1 イシューからはじめよ ― 知的生産の「シンプルな本質」 第一章より
実装してみた(一部)
動かしてみた
Issueができた
Botを作ってみて • 久しぶりに「 Rails から離れた Ruby 」が書けた ◦ Rails が偉大なフレームワークであることを再認識した
◦ あれ? 結局フレームワークに縛られてる !? ▪ Bot フレームワーク無しで作ってみたら更に勉強になりそう ▪ ディレクトリ構成の検討、クラス・モジュールの設計・実装 ...色々勉強になりそう! • 以下のようなモチベーションを得た →オリジナルサービス開発していた時のように Bot に愛着が湧く → Bot に色んな機能を実装したい → Ruby をもっと勉強したい → Ruby 書くのが楽しい!! • Octokit.rb が驚くほど便利だった • 今回のような要領で Gem 作りもやれば良いのでは ? という気づきを得た
今後 • 業務で使えるレベルの品質にする ◦ 例外処理の追加 ◦ リファクタリング • 普段の業務が楽になる機能をドンドン追加する •
AWS や Heroku にデプロイしてみる
参考 • チャットボットフレームワーク Ruboty を振り返る ◦ https://medium.com/@r7kamura/%E3%83%81%E3%83%A3%E3%83%83%E3%83%88%E3%83%9C%E3%83%83%E 3%83%88%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF-ruboty-% E3%82%92%E6%8C%AF%E3%82%8A%E8%BF%94%E3%82%8B-be95e56d2400 •
5分でできるRubotyのインストールとプラグインチュートリアル ◦ https://48n.jp/blog/2016/07/29/first-step-ruboty/ • Botsインテグレーションを使って手軽にRubotyをSlackで動かす ◦ https://48n.jp/blog/2016/08/02/ruboty-and-slack/ • Ruboty | Brain ボットの脳にデータを記憶 #ruboty #chatops ◦ https://qiita.com/tbpgr/items/74027b2aa3d6a6a575a7 • Octokit で GitHub の Issue を作成する ◦ http://tbpgr.hatenablog.com/entry/2016/12/09/234718
!?
We're Hiring!!! https://www.wantedly.com/projects/301633 https://www.wantedly.com/projects/325946 エンジニア 開発ディレクター