Railsチュートリアル (Rails tutorial)
- https://railstutorial.jp/ (日本語版 / Japanese version)
- https://www.railstutorial.org (English version)
ministest と fixtures が使われているが、実プロジェクトでは rspec と factory_bot を使うことが多い。
ministest and fixtures are used in RailsTutorial, but rspec and factory_bot are more widely used in the real world. So you don't need to study minitest and fixtures. But please learn the concept for testing.
学び方の一例としては、↑の「Railsチュートリアル」をやってみてから、実務でRailsの開発を行いつつ、以下の本やサイトに目を通す。
本・サイト (Books / Web Sites)
Ruby
- 初級
- 中級
Rails
一般
スタイルガイド(Style Guide)
実務に携わったタイミングで、早めに目を通しておくこと。覚える必要はなく、開発時にはrubocopを使う。
-
Ruby/Rails
-
Rspec
オブジェクト指向設計(Object Oriented Programming)
- オブジェクト指向設計実践ガイド (日本語版 / Japanese version)
- Practical Object-Oriented Design in Ruby: An Agile Primer (English version)
テスト(Test)
メタプログラミング(Meta Programming)
リファクタリング(Refactoring)
※ fat controllerを避けることは大前提。
- Fat Modelのリファクタリング(Refactor fat model)
- サービスオブジェクト
- リファクタリング全般(Refactoring in general)
デザインパターン(Design Patterns)
リファレンス (References)
-
https://railsguides.jp/ (日本語版 / Japanese version)
- 特に Active Support コア拡張機能 は早めに抑えておく。
- https://guides.rubyonrails.org (English version)
Gems
よく使われているか?メンテナンスされているか?というのを比較する用。
You can see which gem is popular, well maintained, etc.
Gemを使おうと思ったときには、以下のことを気にかけること
- Gemを使おうと思ったときには、一度考え直してみる。Gemを使えば簡単だが、しかし、、、
- メモリフットプリントが増える。
- アップグレード時にハマるかも。
- Railsのアップグレード時
- Gem自体のアップグレード時
- Gemの動作をきちんと理解していないと、ブラックボックスになりうる。
- 動作はGem任せなので、ちょっとした変更が難しくなることも (Gemにモンキーパッチを当てることは止めたほうがいい。Gemのアップグレード時に苦労する)。
- 機能はニーズを満たしているか?逆に、Gemの機能がニーズに対して過大な場合は、自分で実装することも考える。
- ドキュメントはよく書かれているか?
- Githubの
Used by
、Star
の数と、Latest commit
(メンテナンスされているか)。
サイト (Web Sites)
-
http://railscasts.com
長年アップデートされていない点は注意が必要だが、まだ有益な情報はある。
You can know more in details by referring this site. It has not been updated for a while and some content is out of date. But some contents are still worth to take a look. -
https://techracho.bpsinc.jp/
定期情報収集用。
References For SaaS
- https://12factor.net/ja/ (日本語版 / Japanese version)
- https://12factor.net/ (English version)