古い教材から学んで最新バージョンに追いつく方法:Rails開発者のための実践ガイド
(この記事は以前、メーリングリストの読者向けにお送りしたものです。気に入っていただけた方は、ぜひ登録して続きをお読みください。)
Railsエコシステムは動きがとても速く、紙媒体の出版スピードでは到底追いつきません。私と同じように、常にフレームワークやgemの最新バージョンを学びたいと思っていても、質の高い学習リソースは数バージョン前のものだったりします。
しかし、そうした少し古いリソースでも十分に役立ちます。丁寧に編集された本、スクリーンキャスト、チュートリアルほど、ライブラリのAPIや設計思想、全体構造を効率よく学べるものはありません。
たとえば、最高のRails本がRails 4.0までしか扱っていなくても、そこから学び始めるべきです。新しいgemやフレームワークを学ぶときは、「なぜそのように設計されているのか」「各パーツがどう組み合わさっているのか」を理解することが何より重要です。こうした視点はリファレンスドキュメントや断片的なブログ記事からは得にくいものですが、一冊の本なら自然に身につきます。
では、古いバージョンである程度経験を積んだ後、どうやって最新状態に追いつけばよいのでしょうか?
変更点をキャッチアップする
人気のあるgemの多くは、Gitリポジトリ内にCHANGELOGファイルを用意しています。たとえばbundlerなら https://github.com/bundler/bundler/blob/master/CHANGELOG.md です。CHANGELOGは、バージョン間の大きな変更点を把握するのに最適な手段です。内容は各変更の短い要約が中心ですが、調べものの出発点として活用すれば、気になる変更についてさらに深く掘り下げられます。
多くのチェンジログには、GitHubのIssue番号への参照が含まれています。番号付きのエントリを見つけたら、プロジェクトのIssuesで該当するバグやプルリクエストを確認すれば、何が・どのように・なぜ変わったのかを正確に理解できます。
チェンジログの見つけ方ですが、私は普段「bundler github」のようにGoogleで検索しています。大抵の場合、最初に表示されるGitHubページにたどり着けます。
もしチェンジログが用意されていない場合は、プロジェクトのREADMEやGitHub上のWikiも確認してみましょう。ただし、これらはバージョン間の差分を追うために作られたものではないため、通しで読むには時間がかかります。
最新のリファレンスドキュメントを活用する
gemを使った開発では、最新のリファレンスドキュメントを手元に置いておくことも大切です。アプリを書きながら、APIの使い方やサンプルコードをすぐに参照できます。
rdoc.info では、あらゆるgemの任意のバージョンのAPIドキュメントを閲覧できます。さらに素早くドキュメントを引きたいなら、macOSならDash、WindowsやLinuxならZealがおすすめです。
私はDashを使っています。APIドキュメントが必要になったらOption+Spaceを押して入力を始めるだけで、必要なgemのドキュメントが即座に表示されます。この小さなワークフローの改善は、導入の手間を何倍にもして回収できるほど効果的でした。
Rails特有のコツ
Railsは大規模プロジェクトですが、コントリビューターたちがチェンジログやドキュメントの整備に非常に力を入れているのが強みです。
Railsガイドは質が高く、Rails本体と同じGitリポジトリから生成されているため、常に最新の状態に保たれています。
最新版のRailsに追いつきたいときは、まずリリースノートを読むのが一番の近道です。たとえばRails 4.1のリリースノートはこちら:https://guides.rubyonrails.org/4_1_release_notes.html
私が普段行っている手順
ここまでの内容をまとめると、新しいライブラリの最新情報を完全に把握したいとき、私は次のような流れで進めています。
- gemに関する本、チュートリアル、ドキュメントを読みます。できるだけ新しいリソースを選ぶように心がけます。読みながら、そのバージョンで実際にアプリを作ったり練習したりします。
- GitHubでプロジェクトを見つけます。
- チェンジログ、README、Wikiを読んで、自分が知っているバージョンから最新バージョンまでの差分を把握します。
- 特定の変更に興味があれば、Webで検索したり、プロジェクトのIssueを読んで詳しく調べます。
- gemを最新バージョンにアップグレードします。
- Dashに新しいgemのドキュメントをインストールします。
- 実際にコードを書いてみます!
毎回すべてのステップを実行するわけではありませんが、おおむねこの順序で進めています。こうした手順を頭に入れておくと、途中で詰まったときや「次に何をすればいいのかわからない」ときの道しるべになってくれます。
チェンジログが見つからない、ドキュメントで理解できないときは?
場合によっては、gemのGitHubリポジトリやAPIドキュメントから必要な情報を得られないこともあります。そんなときは、思い切ってソースコードの中に飛び込み、直接読み始めるしかありません。
意外に思われるかもしれませんが、コードを読むことは本を読むこととはまったく違います。ファイルを最初から最後まで順番になぞるのではなく、目的に向かってコードを「探索」する必要があります。これは科学というより芸術に近い作業ですが、開発者にとって習得すべき重要なスキルのひとつです。このテーマについては、また別の記事で詳しく取り上げる予定です!
あなたはgemの変更点に追いつくために、どんな工夫をしていますか?最新情報をフォローする方法があれば、ぜひ教えてください。
-
MacでiMessageの写真を削除する方法|ストレージを空ける2つの手順
iMessage(メッセージ)という呼び方がどうであれ、このアプリが優秀であることは誰もが認めるところです。Appleユーザー同士をメッセージで瞬時につなぎ、写真や動画を友人や家族に簡単に送れる、非常に便利なアプリです。 しかし便利な一方で、iMessageはMacに大量のファイルを蓄積させ、ストレージを圧迫する原因にもなります。そこで質問です。MacでiMessageの写真を削除する方法をご存じでしょうか? もし知らないのであれば、この機会にぜひ学んで、Macのパージ可能領域(purgeable領域)を解放しましょう。やり方をマスターすれば、それだけ多くの空き容量を有効活用できるようになりま
-
2022年版完全ガイド:Safariからウイルスを削除する方法
あなたのMacは安全だと思っていませんか?残念ながら、その考えは見直す必要があるかもしれません。「Macはマルウェアに感染しない」と信じている人もいますが、それは誤りです。実際、毎年新たなMacウイルスが次々と発見されています。「Safariウイルス」という言葉を耳にしたことはありますか?万が一Macがウイルスに感染しても、慌てる必要はありません。落ち着いてSafariからウイルスを削除しましょう。実は、5台に1台のMacにはPUP(潜在的に望ましくないプログラム)が存在しているとも報告されています。Macがハッキングされた、または感染したと感じたら、いくつかの対処法があります。この記事では、