SlideShare ist ein Scribd-Unternehmen logo
1 von 13
第一回
こんなgem使ってますよ的な
話
2013/07/11 Web team MTG
morimorihoge@BPS
本資料について
• 本資料は社内で行った発表資料です
– 外部向けに書かれていない記述などがありま
す
– 空き時間で作成しているためクオリティはそ
れほど高くないです
– 一部公開のために削除・追記したスライドが
あるかもしれません
• 本資料の取り扱いについて
– 基本公開としますが,社外発表などで利用す
る際はmorimori@bpsinc.jpに連絡して下さい
はじめに
• 目的
– 数多くのRailsプロジェクトが走っている中で,
良く使うgem情報を共有して,楽に品質の良
いアプリを作ろうぜ
• 突っ込み歓迎
– これが良かった,これはメジャーだけど使っ
てみたら今一つ,などどんどん突っ込みして
下さい
• 第一回?
– たまに共有して更新していきたいですねー
基本gem: 知らないと恥ずかしいレベル
• mysql2: MySQL使うならこのconnector
• pg: PostgreSQL使うならこのconnector
• unicorn: 現状BPSでの標準Railsサーバ
流石に知ってると思いますが,一応.
案件にも寄るが,良く使う
gems
みたことあるのが多いはず
サービス・機能拡張系
• Devise(plataformatec/devise)
– 言わずと知れた会員登録・ユーザ認証gem
– でかくて癖のあるライブラリだが,会員周りの良く使う機能が一通り
あるので覚えるべき
• Paperclip(thoughtbot/paperclip)
– 添付ファイルをActiveModel透過に扱うことのできるgem
– AWS S3へのアップロード,画像のリサイズにも対応しているので,知
らなければtutorial位は見ておきましょう
– BPSではpolymorphic associationを使ってattachments的なtableにまとめ,
他テーブルからhas_many参照させるのがメジャー
– 最近はCarrierWave(carrierwaveuploader/carrierwave)が良いという話も.
興味があれば囓ってみてレポート下さい
• ActsAsParanoid(goncalossilva/acts_as_paranoid)
– ARの#destroyで論理削除を実現するgem
– add_indexでDBにUnique Keyを付与した場合,validates :uniquenessはpass
するのにDBにINSERT/UPDATEするタイミングでエラーを吐くので利用に
注意
バックグラウンド実行・サーバ
系
• Capistrano(capistrano/capistrano)
– cap deployでお世話になるgem
– 初期設定などはサーバエンジニアとの連携が必要だが,ホスト依存設定ファイルを変更した場合にはcapistranoの設定
ファイルも編集する必要があるので注意
– 合わせて入れたい
• capistrano-extでmultistage対応(cap staging deployとか)
• capistrano_colorsで色付け
• rvm-capistrano:RVM対応
• capistrano-unicorn:unicornのstart/stop対応
• Delayed::Job(collectiveidea/delayed_job)
– 非同期実行gem
– Queueとなるtableに実行に必要なパラメータが入り,workerが上から順に実行していく形式
– とにかく単純で考えることが少ないので,ただの重いCSV作成とかならこれで十分
– AWS ELBを使う場合,60秒でTCPセッションがタイムアウトするので重い処理には必須
– もっと複雑なことをしたければ,Resque(resque/resque),Sidekiq(Sidekiq)を検討しましょう
• Whenever(javan/whenever)
– Cron(定時実行)gem
– 毎日の〆処理など,バッチ実行のお供.インストールした場合,capistrano側にも設定が必要なので忘れずに
• New Relic Ruby Agent(newrelic/rpm)
– サービス監視サービスNewRelicのクライアントgem
– 最近のアプリには入れるようにしてるので,もし入ってなかったら入れたいです
• AirBrake(airbrake/airbrake)
– エラーがあるとメール通知してくれるgem
– AirBrake(元Hoptoad)はすごくお高くなってしまって手が届かないのでErrbit(errbit/errbit)サーバを使いましょう.
プロトコル互換です
– BPSではばばErrbitサーバが使われています
テスト系
• rspec-rails(rspec/rspec-rails)
– Unit/Integrationテストgem
– 最近はminitestが見直されているっぽいけど,rspecが
まあ今のところまだ主流っぽい
– もっとちゃんと使いたいけどあまり使いこなせてな
いので多くは語りません
• cucumber-rails(cucumber/cucumber-rails)
– Behaviorテストgem
– ちゃんと書くと良いです.seleniumなんかと組み合わ
せるとブラウザ使った自動テストも書けます.重い
けど
• Guardなどなど
案件によっては使う,知って
ると便利系gems
もろもろ1
• Roo(Empact/roo)
– Excel/Excelx/Openoffice/Google Spreadsheets/Libreoffice/CSV
を透過的に扱えるgem
– fork元のhmcgowan/rooは活動停止したので注意!
– データ取り込み時にExcelを使えるので,お客さんにデータ
作成してもらう時に便利
• 改行や特殊文字があってもparseできる
• OmniAuth(intridea/omniauth)
– TwitterなどのOauth,Facebook認証などの外部アプリ認証
gem
– Facebookログインとかtwitterログインしたいと言われたら
これ
– テスト環境を作るのが少し面倒になる(テストサーバ用の
アプリ登録をする必要がある)ので注意
もろもろ2
• Virtus(solnic/virtus)
– Rubyのclassを拡張できるgem
– attribute :name, String, default: “morimori”とかできます
– form classを作るときなんかに使うと便利なことがあ
るかも(XXXでmorimori実装あり)
• ThinReports(http://www.thinreports.org/)
– PDF帳票を簡単に作成できちゃうgem
– 作ってるのは日本の株式会社マツケイというところ
– かなり良くできているので,業務システムなどをや
るのであれば,触ってみると良いです.GUIのエディ
タツールなんかもあります
Using gems
• Gemはいっぱい
• バグもいっぱい
• 使う時は流行ってる度合いをチェック!
• あと,latest committedの日付もチェック.メ
ンテされていない場合,最悪自力で不具合対
応する覚悟で使うこと
まとめ
• こんなのあるよ!ってのがあればぜひ共
有してください
• このgemは最近いけてないらしいぞ?とい
う話もgood
• こんなgem作ったがあると楽しいですね
• 社内ネットワークで気軽に流してくださ
い

Weitere ähnliche Inhalte

Was ist angesagt?

巨人の力で日曜Webサービス大工
巨人の力で日曜Webサービス大工巨人の力で日曜Webサービス大工
巨人の力で日曜Webサービス大工Takahiro Yamakoshi
 
浜松Ruby会議01
浜松Ruby会議01浜松Ruby会議01
浜松Ruby会議01Yuto Ogi
 
オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!civicpg
 
Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話cocoa_dahlia
 
トークイベントいろいろ
トークイベントいろいろトークイベントいろいろ
トークイベントいろいろ高見 知英
 
20150116_techwomen
20150116_techwomen20150116_techwomen
20150116_techwomenamico8
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)nishikawa_makoto7
 
システム開発は何故揉めるのか
システム開発は何故揉めるのかシステム開発は何故揉めるのか
システム開発は何故揉めるのかechigoya-jp
 

Was ist angesagt? (9)

巨人の力で日曜Webサービス大工
巨人の力で日曜Webサービス大工巨人の力で日曜Webサービス大工
巨人の力で日曜Webサービス大工
 
浜松Ruby会議01
浜松Ruby会議01浜松Ruby会議01
浜松Ruby会議01
 
オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!オンライン英会話のモチベーション維持!
オンライン英会話のモチベーション維持!
 
Phpのはなし
PhpのはなしPhpのはなし
Phpのはなし
 
Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話Java使いがphp使いにクラスチェンジした話
Java使いがphp使いにクラスチェンジした話
 
トークイベントいろいろ
トークイベントいろいろトークイベントいろいろ
トークイベントいろいろ
 
20150116_techwomen
20150116_techwomen20150116_techwomen
20150116_techwomen
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
 
システム開発は何故揉めるのか
システム開発は何故揉めるのかシステム開発は何故揉めるのか
システム開発は何故揉めるのか
 

Andere mochten auch

Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionRails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionSatomi Tsujita
 
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作りTechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作りMasato Mori
 
バカでもわかるRails #02
バカでもわかるRails #02バカでもわかるRails #02
バカでもわかるRails #02Daisuke Ishii
 
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3irof N
 
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Yohei Yasukawa
 

Andere mochten auch (6)

こわくないScala
こわくないScalaこわくないScala
こわくないScala
 
Rails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2editionRails初心者レッスン lesson4 2edition
Rails初心者レッスン lesson4 2edition
 
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作りTechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
TechRacho: 技術情報発信から広げるエンジニア発のコミュニケーション文化作り
 
バカでもわかるRails #02
バカでもわかるRails #02バカでもわかるRails #02
バカでもわかるRails #02
 
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
 
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)
 

Ähnlich wie こんなGemつかってますよ話

⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1Nishida Kansuke
 
Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012Takayuki Fukumoto
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」nishikawa_makoto7
 
サービス開発者の読書会#4
サービス開発者の読書会#4サービス開発者の読書会#4
サービス開発者の読書会#4Sosuke Kimura
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyoShuyo Nakatani
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方Yusuke Wada
 
【参観レポート】Lean startupnight real startup dialog
【参観レポート】Lean startupnight   real startup dialog【参観レポート】Lean startupnight   real startup dialog
【参観レポート】Lean startupnight real startup dialogTsutomu Chikuba
 
ここまで使えるO365 mdm機能20151128dotnetlabo資料
ここまで使えるO365 mdm機能20151128dotnetlabo資料ここまで使えるO365 mdm機能20151128dotnetlabo資料
ここまで使えるO365 mdm機能20151128dotnetlabo資料Shuusaku Kamekawa
 
アイディア発想法とかモノ作りを初める前にやること
アイディア発想法とかモノ作りを初める前にやることアイディア発想法とかモノ作りを初める前にやること
アイディア発想法とかモノ作りを初める前にやることYumi uniq Ishizaki
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきことHiromu Shioya
 
DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2gree_tech
 
サービス改善はログデータ分析から
サービス改善はログデータ分析からサービス改善はログデータ分析から
サービス改善はログデータ分析からKenta Suzuki
 
視覚化サービス構築の際に気をつけること
視覚化サービス構築の際に気をつけること視覚化サービス構築の際に気をつけること
視覚化サービス構築の際に気をつけることKazufumi Ohkawa
 
mrubyで作るマイコンボード
mrubyで作るマイコンボードmrubyで作るマイコンボード
mrubyで作るマイコンボードkishima7
 
co-meeting_meetup_vol1_利用事例紹介(newデイシス)
co-meeting_meetup_vol1_利用事例紹介(newデイシス)co-meeting_meetup_vol1_利用事例紹介(newデイシス)
co-meeting_meetup_vol1_利用事例紹介(newデイシス)Satoshi Furuichi
 
ぼくたちのじゅたくかいはつ
ぼくたちのじゅたくかいはつぼくたちのじゅたくかいはつ
ぼくたちのじゅたくかいはつAtsushi Harada
 
a-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまでa-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまでgirigiribauer
 
リモートワークをはじめよう
リモートワークをはじめようリモートワークをはじめよう
リモートワークをはじめようMILI-LLC
 

Ähnlich wie こんなGemつかってますよ話 (20)

⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1⑮jQueryをおぼえよう!その1
⑮jQueryをおぼえよう!その1
 
Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012Perl入学式をやってみた! - YAPC::Asia 2012
Perl入学式をやってみた! - YAPC::Asia 2012
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
 
サービス開発者の読書会#4
サービス開発者の読書会#4サービス開発者の読書会#4
サービス開発者の読書会#4
 
言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo言語処理するのに Python でいいの? #PyDataTokyo
言語処理するのに Python でいいの? #PyDataTokyo
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
【参観レポート】Lean startupnight real startup dialog
【参観レポート】Lean startupnight   real startup dialog【参観レポート】Lean startupnight   real startup dialog
【参観レポート】Lean startupnight real startup dialog
 
ここまで使えるO365 mdm機能20151128dotnetlabo資料
ここまで使えるO365 mdm機能20151128dotnetlabo資料ここまで使えるO365 mdm機能20151128dotnetlabo資料
ここまで使えるO365 mdm機能20151128dotnetlabo資料
 
アイディア発想法とかモノ作りを初める前にやること
アイディア発想法とかモノ作りを初める前にやることアイディア発想法とかモノ作りを初める前にやること
アイディア発想法とかモノ作りを初める前にやること
 
研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと研修担当者に聞く、学生のうちに学ぶべきこと
研修担当者に聞く、学生のうちに学ぶべきこと
 
DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2
 
サービス改善はログデータ分析から
サービス改善はログデータ分析からサービス改善はログデータ分析から
サービス改善はログデータ分析から
 
視覚化サービス構築の際に気をつけること
視覚化サービス構築の際に気をつけること視覚化サービス構築の際に気をつけること
視覚化サービス構築の際に気をつけること
 
mrubyで作るマイコンボード
mrubyで作るマイコンボードmrubyで作るマイコンボード
mrubyで作るマイコンボード
 
ユーザー事例紹介:ソフトウェア開発でのJIRA活用実践!
ユーザー事例紹介:ソフトウェア開発でのJIRA活用実践!ユーザー事例紹介:ソフトウェア開発でのJIRA活用実践!
ユーザー事例紹介:ソフトウェア開発でのJIRA活用実践!
 
co-meeting_meetup_vol1_利用事例紹介(newデイシス)
co-meeting_meetup_vol1_利用事例紹介(newデイシス)co-meeting_meetup_vol1_利用事例紹介(newデイシス)
co-meeting_meetup_vol1_利用事例紹介(newデイシス)
 
ぼくたちのじゅたくかいはつ
ぼくたちのじゅたくかいはつぼくたちのじゅたくかいはつ
ぼくたちのじゅたくかいはつ
 
a-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまでa-blog cms初心者が テンプレート作るまで
a-blog cms初心者が テンプレート作るまで
 
リモートワークをはじめよう
リモートワークをはじめようリモートワークをはじめよう
リモートワークをはじめよう
 
Hiroshima.rb on github
Hiroshima.rb on githubHiroshima.rb on github
Hiroshima.rb on github
 

Kürzlich hochgeladen

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Kürzlich hochgeladen (8)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

こんなGemつかってますよ話

  • 2. 本資料について • 本資料は社内で行った発表資料です – 外部向けに書かれていない記述などがありま す – 空き時間で作成しているためクオリティはそ れほど高くないです – 一部公開のために削除・追記したスライドが あるかもしれません • 本資料の取り扱いについて – 基本公開としますが,社外発表などで利用す る際はmorimori@bpsinc.jpに連絡して下さい
  • 3. はじめに • 目的 – 数多くのRailsプロジェクトが走っている中で, 良く使うgem情報を共有して,楽に品質の良 いアプリを作ろうぜ • 突っ込み歓迎 – これが良かった,これはメジャーだけど使っ てみたら今一つ,などどんどん突っ込みして 下さい • 第一回? – たまに共有して更新していきたいですねー
  • 4. 基本gem: 知らないと恥ずかしいレベル • mysql2: MySQL使うならこのconnector • pg: PostgreSQL使うならこのconnector • unicorn: 現状BPSでの標準Railsサーバ 流石に知ってると思いますが,一応.
  • 6. サービス・機能拡張系 • Devise(plataformatec/devise) – 言わずと知れた会員登録・ユーザ認証gem – でかくて癖のあるライブラリだが,会員周りの良く使う機能が一通り あるので覚えるべき • Paperclip(thoughtbot/paperclip) – 添付ファイルをActiveModel透過に扱うことのできるgem – AWS S3へのアップロード,画像のリサイズにも対応しているので,知 らなければtutorial位は見ておきましょう – BPSではpolymorphic associationを使ってattachments的なtableにまとめ, 他テーブルからhas_many参照させるのがメジャー – 最近はCarrierWave(carrierwaveuploader/carrierwave)が良いという話も. 興味があれば囓ってみてレポート下さい • ActsAsParanoid(goncalossilva/acts_as_paranoid) – ARの#destroyで論理削除を実現するgem – add_indexでDBにUnique Keyを付与した場合,validates :uniquenessはpass するのにDBにINSERT/UPDATEするタイミングでエラーを吐くので利用に 注意
  • 7. バックグラウンド実行・サーバ 系 • Capistrano(capistrano/capistrano) – cap deployでお世話になるgem – 初期設定などはサーバエンジニアとの連携が必要だが,ホスト依存設定ファイルを変更した場合にはcapistranoの設定 ファイルも編集する必要があるので注意 – 合わせて入れたい • capistrano-extでmultistage対応(cap staging deployとか) • capistrano_colorsで色付け • rvm-capistrano:RVM対応 • capistrano-unicorn:unicornのstart/stop対応 • Delayed::Job(collectiveidea/delayed_job) – 非同期実行gem – Queueとなるtableに実行に必要なパラメータが入り,workerが上から順に実行していく形式 – とにかく単純で考えることが少ないので,ただの重いCSV作成とかならこれで十分 – AWS ELBを使う場合,60秒でTCPセッションがタイムアウトするので重い処理には必須 – もっと複雑なことをしたければ,Resque(resque/resque),Sidekiq(Sidekiq)を検討しましょう • Whenever(javan/whenever) – Cron(定時実行)gem – 毎日の〆処理など,バッチ実行のお供.インストールした場合,capistrano側にも設定が必要なので忘れずに • New Relic Ruby Agent(newrelic/rpm) – サービス監視サービスNewRelicのクライアントgem – 最近のアプリには入れるようにしてるので,もし入ってなかったら入れたいです • AirBrake(airbrake/airbrake) – エラーがあるとメール通知してくれるgem – AirBrake(元Hoptoad)はすごくお高くなってしまって手が届かないのでErrbit(errbit/errbit)サーバを使いましょう. プロトコル互換です – BPSではばばErrbitサーバが使われています
  • 8. テスト系 • rspec-rails(rspec/rspec-rails) – Unit/Integrationテストgem – 最近はminitestが見直されているっぽいけど,rspecが まあ今のところまだ主流っぽい – もっとちゃんと使いたいけどあまり使いこなせてな いので多くは語りません • cucumber-rails(cucumber/cucumber-rails) – Behaviorテストgem – ちゃんと書くと良いです.seleniumなんかと組み合わ せるとブラウザ使った自動テストも書けます.重い けど • Guardなどなど
  • 10. もろもろ1 • Roo(Empact/roo) – Excel/Excelx/Openoffice/Google Spreadsheets/Libreoffice/CSV を透過的に扱えるgem – fork元のhmcgowan/rooは活動停止したので注意! – データ取り込み時にExcelを使えるので,お客さんにデータ 作成してもらう時に便利 • 改行や特殊文字があってもparseできる • OmniAuth(intridea/omniauth) – TwitterなどのOauth,Facebook認証などの外部アプリ認証 gem – Facebookログインとかtwitterログインしたいと言われたら これ – テスト環境を作るのが少し面倒になる(テストサーバ用の アプリ登録をする必要がある)ので注意
  • 11. もろもろ2 • Virtus(solnic/virtus) – Rubyのclassを拡張できるgem – attribute :name, String, default: “morimori”とかできます – form classを作るときなんかに使うと便利なことがあ るかも(XXXでmorimori実装あり) • ThinReports(http://www.thinreports.org/) – PDF帳票を簡単に作成できちゃうgem – 作ってるのは日本の株式会社マツケイというところ – かなり良くできているので,業務システムなどをや るのであれば,触ってみると良いです.GUIのエディ タツールなんかもあります
  • 12. Using gems • Gemはいっぱい • バグもいっぱい • 使う時は流行ってる度合いをチェック! • あと,latest committedの日付もチェック.メ ンテされていない場合,最悪自力で不具合対 応する覚悟で使うこと
  • 13. まとめ • こんなのあるよ!ってのがあればぜひ共 有してください • このgemは最近いけてないらしいぞ?とい う話もgood • こんなgem作ったがあると楽しいですね • 社内ネットワークで気軽に流してくださ い