rails templateで開発の初速を上げよう

31
Rails templateで開発の 初速を上げよう 15岡山Ruby,Ruby on Rails勉強会 @patorash

Upload: -

Post on 28-May-2015

4.539 views

Category:

Technology


0 download

DESCRIPTION

Rails templateを使ってプロジェクトを作るときの話。

TRANSCRIPT

Page 1: Rails templateで開発の初速を上げよう

Rails templateで開発の初速を上げよう

第15回 岡山Ruby,Ruby on Rails勉強会 @patorash

Page 2: Rails templateで開発の初速を上げよう

名前:尾古 豊明twitter: @patorash所属:株式会社リゾーム業務内容:

新商品開発チームで新商品を開発しています。

また週一度、チーム勉強会を、月一度、チームLT会をしています。

自己紹介

Page 3: Rails templateで開発の初速を上げよう

みなさんrails newしてますか?

Page 4: Rails templateで開発の初速を上げよう

久々にrails newしたら…

Page 5: Rails templateで開発の初速を上げよう

環境構築が辛過ぎワロエナイ…

Page 6: Rails templateで開発の初速を上げよう

● rspecがない● capybaraがない● テンプレートエンジンがslimじゃない● bootstrapを入れないといけない● その他使いたいgemが云々…

rails newが辛すぎる…その①Gemfileがスッカスカ

「開発中のプロジェクトからGemfileパクってくればよくね?」

Page 7: Rails templateで開発の初速を上げよう

● rails g rspec:install● rails g bootstrap:install less● rails g simple_form:install --bootstrap● rails g devise:install● rails g devise User● あとなんだっけ…?

rails newが辛すぎる…その②gemのインストールが面倒

Page 8: Rails templateで開発の初速を上げよう

● localeを:jaにして● timezoneをtokyoにして…● sessionをdatabaseにして…● unicornを起動できるようにして…● capybara_webkitが動くようにして…● database_cleanerが動くようにして…● あとなんだっけ…?

rails newが辛すぎる…その③設定ファイルがの変更が面倒

Page 9: Rails templateで開発の初速を上げよう

気付くともう寝ないとヤバい時間になっている!

Page 10: Rails templateで開発の初速を上げよう

コーディングが…したいです…!

Page 11: Rails templateで開発の初速を上げよう

じゃあテンプレートプロジェクトを作っておけばいいんじゃないか?(rails new 直後のものを保存しとく等)

だいたい使う機能は決まってる

Railsのバージョンアップ時に困る

Page 12: Rails templateで開発の初速を上げよう

そこでrails templateを使う

Page 13: Rails templateで開発の初速を上げよう

● rails new でプロジェクトが作られた後に実行されるruby scriptです。

● -m オプションでテンプレートになるスクリプトファイルを指定します。rails new BigProject -m rails_template/template.rb -d=postgresql

rails templateとは?

Page 14: Rails templateで開発の初速を上げよう

● Gemfileの書き換え● rbファイル内のコメント化と解除● bundle install実行● rakeコマンド実行● rails gコマンド実行● runメソッド経由でシェル操作● gitコマンド実行● environment毎の編集

rails templateでできること

つまり多機能!

Page 15: Rails templateで開発の初速を上げよう

多機能is

わからない、面倒くさい

Page 16: Rails templateで開発の初速を上げよう

出来上がった奴、ないの?

Page 17: Rails templateで開発の初速を上げよう

大量にある

Page 18: Rails templateで開発の初速を上げよう

メジャーなやつを引っこ抜いて編集すればなんとかなるんじゃないか?と思ったが…

Page 19: Rails templateで開発の初速を上げよう

● 何の為のgemかわからない。● 意図を読まなければならない。● 人のソースを読むのには体力が要る。

他人のrails templateがダメな理由

結局自分で作ったほうが速かったりするし、後々templateのメンテナンスできるようになるので、

自分で最初から作りました。【僕の考えた最強のrails template】

https://github.com/patorash/rails_template

Page 20: Rails templateで開発の初速を上げよう

● rspecが使える● factory_girlが使える● database_cleanerが設定されている● parallel_testsが使える● テンプレートエンジンslimが使える● simple_formが使える● bootstrapが使える● wheneverが使える● active_decoratorが使える● letter_openerが使える● 要らないテストが自動生成されない● -d=postgresqlを指定されたら、プロジェクト名のpostgresqlユーザーを作る。

データベース作成権限を与える。● unicornで動く● foreman startでunicorn起動する● deviseが使える● devise-i18nが使える● cancanが使える● .gitignoreを再作成する● gitで初回コミットする● Bitbucketにプライベートリポジトリを作成する● herokuにデプロイできる

俺俺rails templateでできること

多すぎてわからないだろうから

割愛

Page 21: Rails templateで開発の初速を上げよう

自分で作ったり、拾ってきたtemplateを改造できるように、私がrails templateを作る過程でわかったTipsを披露します。

Page 22: Rails templateで開発の初速を上げよう

1. 1つずつのgemに対して設定していくこと2. 使った事のあるgemのみ対応すること3. 1つ対応したらgit commitすること4. 根気よく取り組むこと(重要)5. rails template用のメソッドがわからない場合

は、methods.sort.each do |m| puts mend

Rails templateを作るときに気をつけるポイント

Page 23: Rails templateで開発の初速を上げよう

# Gemfileに追記するgem_group :development, :test do gem ‘rspec-rails’end

run_bundle # bundle install

generate ‘rspec:install’ #rails g rspec:installremove_dir ‘test’

# .rspecファイルに追記するappend_to_file '.rspec' do "--format documentation\n--format ParallelTests::RSpec::FailuresLogger --out tmp/failing_specs.log"end

例①:rspecを入れる

Page 24: Rails templateで開発の初速を上げよう

gem ‘simple_form’

run_bundle # bundle install

generate ‘simple_form:install’

例②:simple_formを入れる

Page 25: Rails templateで開発の初速を上げよう

gem ‘simple_form’use_bootstrap = if yes?(‘Use Bootstrap?’) # ユーザーに質問する uncomment_lines ‘Gemfile’, “gem ‘therubyracer’” gem ‘less-rails’ gem ‘twitter-bootstrap-rails’ true else false endrun_bundle # bundle installif use_bootstrap generate ‘bootstrap:install’, ‘less’ generate ‘simple_form:install’, ‘--bootstrap’ # bootstrap用simple_formを入れる if yes?(‘Use responsive layout?’) generate ‘bootstrap:layout’, ‘application fluid’ # レスポンシブレイアウト else generate ‘bootstrap:layout’, ‘application fixed’ # ヘッダー固定レイアウト endelse generate ‘simple_form:install’ # 素のsimple_formを入れるend

例③:simple_formとtwitter-bootstrap_railsを連携する

Page 26: Rails templateで開発の初速を上げよう

# rails newの時の-dオプションで決まる。# デフォルトだとsqlite3。case gem_for_database when ‘pg’ run “createuser -h localhost -d #{app_name}” elseend

例④:データベースタイプ毎に処理を分ける

Page 27: Rails templateで開発の初速を上げよう

rake ‘db:drop’rake ‘db:create’rake ‘db:migrate’

例⑤:rakeを使う

Page 28: Rails templateで開発の初速を上げよう

git :initgit add: ‘.’git commit: %Q{ -m ‘Initial commit’ }

※応用すると、githubやBitbucketに新しいリポジトリを作ってpushする事も可能。

例⑥:gitを使う

Page 29: Rails templateで開発の初速を上げよう

application do %Q{ config.generators do |g| g.test_framework :rspec, fixture: true g.assets false #他にも色々 end }end

# config/environments/****.rbに記述するenvironment ‘config.serve_static_assets = true’, env: ‘production’

例⑥:アプリケーション設定

Page 30: Rails templateで開発の初速を上げよう

時間があればデモします。

Page 31: Rails templateで開発の初速を上げよう

ご清聴ありがとうございました