Submit Search
Redmine4時代のプラグイン開発 redmine.tokyo #13
Download as PPTX, PDF
•
9 likes
•
9,154 views
S
Sho Douhashi
Redmine 4.0 に向けたプラグイン開発の話。 at redmine.tokyo 13
Engineering
Read more
1 of 73
Download now
Downloaded 11 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
More Related Content
PDF
RedMica 2.0 (2021-11) 新機能ハイライト
Go Maeda
PPTX
unofficial redmine 紹介 RedmineJapan2020
Yuuki Nara
PPTX
講演1 redmineの簡易crmとしての活用事例r2
Hidehisa Matsutani
PDF
Redmineコミュニティの活動報告と今後の抱負~Redmineよ、永遠に #RedmineJapan2020
akipii Oga
PDF
数千人が利用する楽天Redmineの過去と未来 - The past and future of Rakuten Redmine that is the...
Dai FUJIHARA
PDF
Redmine issue assign notice plugin の紹介
onozaty
PPTX
開発環境の認証を改善して Redmineを社内標準にした話
Ryou Soda
PDF
Redmine plugin ハンズオン
Haruyuki Iida
RedMica 2.0 (2021-11) 新機能ハイライト
Go Maeda
unofficial redmine 紹介 RedmineJapan2020
Yuuki Nara
講演1 redmineの簡易crmとしての活用事例r2
Hidehisa Matsutani
Redmineコミュニティの活動報告と今後の抱負~Redmineよ、永遠に #RedmineJapan2020
akipii Oga
数千人が利用する楽天Redmineの過去と未来 - The past and future of Rakuten Redmine that is the...
Dai FUJIHARA
Redmine issue assign notice plugin の紹介
onozaty
開発環境の認証を改善して Redmineを社内標準にした話
Ryou Soda
Redmine plugin ハンズオン
Haruyuki Iida
What's hot
(20)
PPTX
Redmine + Lychee導入のアンチパターン
agileware_jp
PDF
Redmineをプラグインで拡張しよう
Haruyuki Iida
PPTX
ある工場の Redmine 2021 ( Redmine of one plant 2021 )
Kohei Nakamura
PPTX
自チームのLychee redmine活用例
agileware_jp
PDF
Redmineの9年間の歩みを振り返ってみる
Go Maeda
PDF
数千人が利用する楽天Redmineの過去と未来
Rakuten Group, Inc.
PDF
はじめる! Redmine (2021年版)
Go Maeda
PDF
Redmine 4.2 新機能評価ガイド
Go Maeda
PDF
【15-A-4】事例2本立て!Redmineユーザ達が語る現場定着化への取組みと導入アンチパターン
Developers Summit
PDF
Redmine.tokyo21 questionnaire
Jun Naitoh
PDF
挫折しないRedmine (2022)
Go Maeda
PPTX
Redmineサーバ統合事例
Yuuki Nara
PDF
View customize plugin for Redmineの紹介 (2019年版)
onozaty
PDF
導入事例から見る!Lychee Redmineの製品デモ
agileware_jp
PDF
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Go Maeda
PDF
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
onozaty
PPTX
Unofficial Redmine Cookingの紹介
Yuuki Nara
PPTX
WPF on .NET Core 3.0
一希 大田
PDF
【Redmine 4.2 を先取り】RedMica 1.1 (2020-05) 新機能ハイライト
Go Maeda
PDF
Redmine 4.1 / RedMica 1.0ユーザーのための RedMica 1.1 (2020-05)・ 1.2 (2020-11) 新機能ガイド
Go Maeda
Redmine + Lychee導入のアンチパターン
agileware_jp
Redmineをプラグインで拡張しよう
Haruyuki Iida
ある工場の Redmine 2021 ( Redmine of one plant 2021 )
Kohei Nakamura
自チームのLychee redmine活用例
agileware_jp
Redmineの9年間の歩みを振り返ってみる
Go Maeda
数千人が利用する楽天Redmineの過去と未来
Rakuten Group, Inc.
はじめる! Redmine (2021年版)
Go Maeda
Redmine 4.2 新機能評価ガイド
Go Maeda
【15-A-4】事例2本立て!Redmineユーザ達が語る現場定着化への取組みと導入アンチパターン
Developers Summit
Redmine.tokyo21 questionnaire
Jun Naitoh
挫折しないRedmine (2022)
Go Maeda
Redmineサーバ統合事例
Yuuki Nara
View customize plugin for Redmineの紹介 (2019年版)
onozaty
導入事例から見る!Lychee Redmineの製品デモ
agileware_jp
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Go Maeda
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
onozaty
Unofficial Redmine Cookingの紹介
Yuuki Nara
WPF on .NET Core 3.0
一希 大田
【Redmine 4.2 を先取り】RedMica 1.1 (2020-05) 新機能ハイライト
Go Maeda
Redmine 4.1 / RedMica 1.0ユーザーのための RedMica 1.1 (2020-05)・ 1.2 (2020-11) 新機能ガイド
Go Maeda
Ad
Viewers also liked
(20)
PDF
灰かぶりチケットはシンデレラに成り得るか?
ishikawa_mizuki
PDF
20171117 redminetokyo13
Yukiya Hayashi
PDF
Redmine tokyo #13 LT
Asako Yanuki
PDF
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
PPTX
Unofficial Redmine Cooking 闇鍋_デモ環境への発展
Yuuki Nara
PDF
Internetトラフィックエンジニアリングの現実
J-Stream Inc.
PDF
Redmine.tokyo 13 questionnaire
Jun Naitoh
PDF
ドキュメントを直し続ける話 #kbkz_tech
Michihito Shigemura
PDF
Redmine.tokyo 第7回勉強会 ディスカッション
Tomohisa Kusukawa
PDF
Redmine 260 300_new_feature
Jun Naitoh
PDF
Redmineはキャズムを超える -日経SYSTEMS寄稿の思い-
Makoto SAKAI
PDF
Redmine.tokyo 07 open_discussion
Jun Naitoh
PDF
Redmine.tokyo 07 questionnaire
Jun Naitoh
PDF
Redmine + gitlab: merge base development
smdkk
PDF
Rbpdf gem library
Jun Naitoh
PDF
怖くない? オープンソースへの貢献
ishikawa_mizuki
PDF
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
akipii Oga
PPTX
講演1 Redmine導入のアンチパターン
Hidehisa Matsutani
PPTX
インフラエンジニアから見たRedmine redmine.tokyo #9
Sho Douhashi
PDF
失敗事例で学ぶ負荷試験
樽八 仲川
灰かぶりチケットはシンデレラに成り得るか?
ishikawa_mizuki
20171117 redminetokyo13
Yukiya Hayashi
Redmine tokyo #13 LT
Asako Yanuki
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Unofficial Redmine Cooking 闇鍋_デモ環境への発展
Yuuki Nara
Internetトラフィックエンジニアリングの現実
J-Stream Inc.
Redmine.tokyo 13 questionnaire
Jun Naitoh
ドキュメントを直し続ける話 #kbkz_tech
Michihito Shigemura
Redmine.tokyo 第7回勉強会 ディスカッション
Tomohisa Kusukawa
Redmine 260 300_new_feature
Jun Naitoh
Redmineはキャズムを超える -日経SYSTEMS寄稿の思い-
Makoto SAKAI
Redmine.tokyo 07 open_discussion
Jun Naitoh
Redmine.tokyo 07 questionnaire
Jun Naitoh
Redmine + gitlab: merge base development
smdkk
Rbpdf gem library
Jun Naitoh
怖くない? オープンソースへの貢献
ishikawa_mizuki
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
akipii Oga
講演1 Redmine導入のアンチパターン
Hidehisa Matsutani
インフラエンジニアから見たRedmine redmine.tokyo #9
Sho Douhashi
失敗事例で学ぶ負荷試験
樽八 仲川
Ad
Similar to Redmine4時代のプラグイン開発 redmine.tokyo #13
(20)
PDF
OSC福岡 20111203
Hiroshi Bunya
PDF
Rubyプログラミング教育に対する取り組みと事例紹介
Yasushi Ishikawa
PDF
Redmineプラグイン導入・開発入門
Minoru Maeda
PDF
iQONの開発手法 at iQONエンジニアセミナー
Imamura Masayuki
PDF
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
PDF
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
PDF
Hudson × Redmine
Haruyuki Iida
PDF
Rails api way in aiming
Yasutomo Uemori
PDF
チームにRedmineを適用せよ! #RxTstudy
Dai FUJIHARA
PDF
はじめてがアジャイル
Kenichi Takahashi
PPTX
2015/06/27 Remixing つらくないメディア間連携
Takumi Yoshida
PDF
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
DIVE INTO CODE Corp.
PDF
Android studio で行ってみよう!!
Kazuaki Ueda
PDF
Redmine admin
Jun Naitoh
PDF
ドリコムJenkins勉強会資料
Go Sueyoshi (a.k.a sue445)
PDF
ゲーム会社でのRuby : rails活用事例
Yasutomo Uemori
PDF
nanapiにおける継続的インテグレーション
晃 遠山
PDF
Redmineプラグインのテストを書いてくれませんか? #niigatarb
Tatsuya Saito
PDF
20141220_iOS8マルチデバイス対応(Size Classes編)
Kanako Kobayashi
PDF
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
Shinichiro Yoshida
OSC福岡 20111203
Hiroshi Bunya
Rubyプログラミング教育に対する取り組みと事例紹介
Yasushi Ishikawa
Redmineプラグイン導入・開発入門
Minoru Maeda
iQONの開発手法 at iQONエンジニアセミナー
Imamura Masayuki
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
Hudson × Redmine
Haruyuki Iida
Rails api way in aiming
Yasutomo Uemori
チームにRedmineを適用せよ! #RxTstudy
Dai FUJIHARA
はじめてがアジャイル
Kenichi Takahashi
2015/06/27 Remixing つらくないメディア間連携
Takumi Yoshida
【入門】3時間でアプリ公開!ゼロからのプログラミングRails講座
DIVE INTO CODE Corp.
Android studio で行ってみよう!!
Kazuaki Ueda
Redmine admin
Jun Naitoh
ドリコムJenkins勉強会資料
Go Sueyoshi (a.k.a sue445)
ゲーム会社でのRuby : rails活用事例
Yasutomo Uemori
nanapiにおける継続的インテグレーション
晃 遠山
Redmineプラグインのテストを書いてくれませんか? #niigatarb
Tatsuya Saito
20141220_iOS8マルチデバイス対応(Size Classes編)
Kanako Kobayashi
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
Shinichiro Yoshida
Redmine4時代のプラグイン開発 redmine.tokyo #13
1.
Redmine4時代の プラグイン開発 強いプラグインを開発しよう Agileware Inc. Sho
DOUHASHI
2.
自己紹介
3.
自己紹介 堂端 翔 (
Sho DOUHASHI ) facebook.com/douhashi twitter @douhashi Agileware Inc. CTO プログラミング歴20年弱。最近はインフラ屋さん。AWS大 好き。
4.
Agileware? http://agileware.jp Ruby/Railsを得意とするソフトウェアベンダー。 Redmineプラグイン「LycheeRedmine」シリーズを開発。 https://lychee-redmine.jp/
5.
突然ですが、アンケート
6.
Q1. Redmineバージョンいくつですか?
7.
Q2. Redmineプラグイン使ってますか?
8.
Q3. 独自のプラグインを 開発して使ってますか?
9.
ご協力ありがとうございます!
10.
今日はRedmineの プラグイン開発についてお話します
11.
本日のアジェンダ
12.
本日のアジェンダ 1. RedmineとRailsの関係 2. 強いプラグインの開発方 3.
Redmine 4.x 時代のプラグイン開発 (ダークサイド) 4. Redmine 4.x 時代のプラグイン開発 (ライトサイド) 5. まとめ
13.
本日のアジェンダ 1. RedmineとRailsの関係 2. 強いプラグインの開発方 3.
Redmine 4.x 時代のプラグイン開発 (ダークサイド) 4. Redmine 4.x 時代のプラグイン開発 (ライトサイド) 5. まとめ
14.
RedmineとRailsの関係
15.
の前に、
16.
Railsのリリース傾向の話
17.
Railsの(だいたいの)リリース傾向 ● だいたい、3年スパンでメジャーが上がる ● だいたい、.0系(2.0,
3.0, 4.0)はアップデートを促すための 過渡期リリース ● だいたい、.0系リリースは旧バージョンへのDeplication Warningを出して、その後のリリースで削除してく ● だいたい、.1 とか .2 でドラスティックな機能追加、API 削除が入る
18.
その上で、RedmineとRailsのバージョン の関係をみていきましょう。
19.
RedmineとRailsの関係 ● Redmine 2.0
~ ○ Rails 3.2系 ● Redmine 3.0 ~ ○ Rails 4.2 系
20.
おわかりいただけただろうか...
21.
RedmineとRailsの関係 ● Redmine 2.0
~ ○ Rails 3.2系 ● Redmine 3.0 ~ ○ Rails 4.2 系
22.
ド、ドラスティッ ク... ドラスティック【drastic】 ( 形動 ) 徹底的で激烈なさま。
「政治情勢は-に展開している」 「 -な変 化」
23.
なので、
24.
Redmineプラグインあるある
25.
新バージョンでいきなりデスる
26.
解決策 (びっくりしないために)
27.
次リリースブランチでも動かそう ● 次期リリースバージョンのRedmineで動かしておこう。 ● 毎度動かすのは大変なのでテスト書こう。 ●
特に、Railsのメジャーが上がるときは覚悟しておこう。
28.
その他にも「強い」プラグインを 作る工夫は色々
29.
ということで、次の話題
30.
本日のアジェンダ 1. RedmineとRailsの関係 2. 強いプラグインの開発方 3.
Redmine 4.x 時代のプラグイン開発 (ダークサイド) 4. Redmine 4.x 時代のプラグイン開発 (ライトサイド) 5. まとめ
31.
弊社で実践しているプラグイン開発の仕 方
32.
ルールその1 本体のDBにカラム追加/変更しない
33.
本体のDBにカラム追加/変更しない
34.
本体のDBにカラム追加/変更しない ● 本体DBに直接カラム追加しないことで、Redmine本体へ の侵食を減らす ○ 本体側で同等機能が追加されてもバッティングしない ○
Redmine本体のバージョンアップを妨げない ○ 他のプラグインの動作を妨げない
35.
ルールその2 開発時必要なGemはGemfile.localに書く (= Gemfileは最小限に留める)
36.
プラグインあるある ● たまーに、Gemfileにバージョン指定して書いてあるプラ グインがいる ○ 同じGemを違うバージョン指定でいれようとする =>
bundleできなくてデスる ☠ => コレ、テスト用のGemとかで非常に多い
37.
開発時のみ必要なGemはGemfile.localに書く ● Gemfile.localに書いて、Redmine本体直下へsymlink ● Gemfileには「プラグインに必ず必要なGemのみ」書く ○
これでGemがバッティングする可能性を減らせる ○ それでもたまーにバッティングするので、その時は githubでissueをあげてみましょう
38.
弊社のGemfile.local
39.
ルールその3 テストはRSpecで書く
40.
プラグインあるある ● Redmine標準はMinitestベース ○ テストデータはfixturesで作られてる =>
正直、fixturesでかすぎて覚えてられない。 => setupに必要な情報が多すぎる
41.
テストはRspecで書く ● RSpec、FactoryBotで書く ● 画面系はcapybaraでE2Eテスト ○
controllerのテストは労力に見合わないかも => Factory書くのしんどいけど、一回書けば使い回しできる
42.
他にも細かいTipsはいろいろあります
43.
細かいTips ● Rubocopいれてコードをキレイに保つ ● init.rbにはあんまり処理を実装しない ●
モンキーパッチは最小限に などなど...
44.
語り尽くせないほどあるので、 とっ捕まえて聞いてください...
45.
次の話題
46.
本日のアジェンダ 1. RedmineとRailsの関係 2. 強いプラグインの開発方 3.
Redmine 4.x 時代のプラグイン開発 (ダークサイド) 4. Redmine 4.x 時代のプラグイン開発 (ライトサイド) 5. まとめ
47.
いよいよ、Redmine4.0が見えてきまし た
48.
Redmine 4.0開発状況
49.
Redmine 4.0の目玉はやっぱり
50.
Rails 5.x 対応!
51.
Redmine4.0のRailsバージョンは...
53.
ド、ドラ(ry ドラスティック【drastic】 ( 形動 ) 徹底的で激烈なさま。
「政治情勢は-に展開している」 「 -な変 化」
54.
いろんなプラグインの悲鳴が聞こえる
55.
Rails 5で消えるAPI (影響度の大きそうなもの) 1.
before_filter / after_filter (4.x時点でDeplication) ○ 歴史の古いプラグインはそのままのことが多い 2. alias_method_chain ○ Redmineの標準動作を書き換えるときの常套手段 ○ お世話になってる人多いはず
56.
対策
57.
Rails 5対応 1. before_filter
/ after_filter (4.x時点でDeplication) ○ before_action / after_action を使う 2. alias_method_chain ○ Module#prepend (Ruby 2.0からの標準機能)を使う ○ https://docs.ruby- lang.org/ja/latest/method/Module/i/prepend.html
58.
ただし、一個問題が。
59.
問題: Redmine 3.x系
との共存
60.
課題: Redmine 3.xとの共存 1.
Redmine 3.x は ruby 1.9.3 もサポートしている ○ つまり、ruby 2.0.0 からの Module#prepand が使えな い => コード内にバージョン判別書くのはしんどい... => しばらくbranch分けるとかで様子見か...?
61.
こんな、後ろ向きな話ばかりじゃないよ
62.
本日のアジェンダ 1. RedmineとRailsの関係 2. 強いプラグインの開発方 3.
Redmine 4.x 時代のプラグイン開発 (ダークサイド) 4. Redmine 4.x 時代のプラグイン開発 (ライトサイド) 5. まとめ
63.
Rails 5.1の目玉機能
64.
ActionCable!
65.
ActionCableって? 1. Rails上でWebSocket通信を実現するためのライブラリ 2. ソケット通信のように双方向の通信がリアルタイムで行 えるので、よりインタラクティブなプラグインが作れる
66.
例えば...
67.
Redmine上にチャットシステム導入!
68.
例えば...
69.
チケット更新のリアルタイム通知!
70.
夢が広がりますね!
71.
本日のアジェンダ 1. RedmineとRailsの関係 2. 強いプラグインの開発方 3.
Redmine 4.x 時代のプラグイン開発 (ダークサイド) 4. Redmine 4.x 時代のプラグイン開発 (ライトサイド) 5. まとめ
72.
まとめ 1. Redmineはドラスティックに変わる ○ 強いプラグインの開発が大事 2.
Redmine 4.x でもドラスティックに変わる ○ 旧バージョンとの共存が課題 ○ Rails5のおかげで夢が広がる!
73.
ご清聴ありがとうございました
Download