最新のRails7.1を24記事書いてキャッチアップした感想

# はじめに
この記事は、最新のRuby on RailsをキャッチアップしたいRailsエンジニアのアドベントカレンダー25日目です。

アドベントカレンダー最終記事となる本記事では、今回のアドベントカレンダーの振り返りを行います。

ただの振り返りだけだと読んでも意味がないので、最後に「今後学習したい面白そうな情報源」を載せておきます。

# アドベントカレンダー振り返り

本項ではアドベントカレンダーを振り返りつつ、ダイジェストで書いた記事の紹介をします。

2023のアドベントカレンダーは、「1人で25記事書くことでアウトプットの良さを伝えられる人間になりたい」みたいなあやふやな動機で始まりました。

割とノリで初めてしまったため、1日目は以下のようなノリで書いた記事となっております。

https://qiita.com/eichann/items/148bcd57d0afb726dde4

この時点で`Turbo`についての知識が皆無であったため、一通りTurboを触って理解することを目的と決めました。

しかし、どうせならDockerで最新のRailsの環境を作りたいということでしばらくは環境構築の記事ばかり。。

https://qiita.com/eichann/items/1b7683584b6f88593513

https://qiita.com/eichann/items/38968db7c7aa13c1f978

ようやく、Rails7もといTurboの学習に入ります。Turboの学習については、猫Rails様の「猫でもわかるHotwire入門 Turbo編」というはちゃめちゃにわかりやすい本のおかげでスムーズに進めることができました。

https://qiita.com/eichann/items/6b8b7d79dd6c11bb9898

https://qiita.com/eichann/items/5da214068d0c47776279

途中、流行りのAIエディタ`Cursor`を使うようになり調子に乗ってコードリーディングしてみたり。

https://qiita.com/eichann/items/691663a51fb1963ea96b

諸事情あってZennに浮気し記事を書くこともしていました。

https://zenn.dev/eic/articles/494004410cb45b

アドベントカレンダーがあったことでアウトプットドリブンな日々が続き、毎日書くことを捻出するために学習をする、という習慣になっていきました。

結果、苦手意識のあったJavaScriptとRailsとの連携やその仕組みなどについても記事を書けるほどの理解を得ることができました。

https://qiita.com/eichann/items/f39e3391948a4b29befd

https://qiita.com/eichann/items/6b4378d43cc71c0b0d98

https://qiita.com/eichann/items/9ed9573c4dcdbb521a52

# 25記事書いた反省

### 社会人が1日1記事を書くのはどう考えても無理がある

生活はかなり破綻しました。仕事も師走で忙しい上に、記事を毎日書くというのは想像以上のカロリーです。

「あれ？これやばいんじゃね？」と思っても時すでに遅し、今更引き返せないほどの記事数を書いていました。とはいえ、続きを書くネタもありません。10記事書いたあたりから完全にガス欠、進めもしないし戻れもしないという状態になってしまいました。

まさに「ご利用は計画的に」といった感じで、もし来年以降チャレンジする方がいれば、事前に十分なネタを用意してから始めることをお勧めします。

### 書く時間を固定できなかった

今回は毎日記事を書いていたわけではありません。どうしても書けない日もありました。そういう場合、土日は記事にかかりっきりとなり、結果あまり休まらず翌週に響き。。という悪循環に陥ります。どうせやるのであれば、学習 ~ 記事作成までの時間を決め、規律正しい生活を送ればよかったです。

### 読書やプライベートの時間を削った

趣味や読書、運動といった健康に過ごすために必要な時間もだいぶ削りました。記事を書いて、ほうほうのていでベッドに直行する、ということも少なくありませんでした。

### 反省のまとめ
総じて、以下も達成できていればより良かったなと思います。

- 睡眠時間を削らない
- 適度にリフレッシュもする
- 仕事に支障をきたさない

そのためには、以下のような対策が必要です。

:::note info
- アドベントカレンダーが始まる前にあらかじめ書くことを決めておく
- 集中して記事を書く時間を定めておく
- 景品に釣られない強い心を持つ
:::



# この後学習したい情報源

これで最新のRails7.1までについての大体のキャッチアップはできました。

本項では、学習する中で見つけた、「今は時間がないけど面白そうだな〜」と思わせてくれた資料を紹介します。

### The Rails and Hotwire Codex
https://railsandhotwirecodex.com/

>In 2023, building an app solely for web doesn't cut it any more. iOS and Android apps are essential for a successful SaaS product.

>Using Rails and Hotwire, it's possible to build a web app with accompanying hybrid mobile apps that don't suck.

なんと刺激的なキャプション。こちらは、99$で購入できる本です。なんといっても、iOSとAndroidのアプリをRails「だけで」作るという先進的な内容が魅力的です。`Strada`というHotwireを構成する最後のライブラリによって成されるようですね。

### Hotwired ATS: Modern, full-stack Rails 7 development

https://davidcolby.gumroad.com/l/hotwired-ats

[猫でもわかるHotwire入門](https://zenn.dev/shita1112/books/cat-hotwire-turbo/viewer/links)でも紹介されていた本です。

この本では、以下のような内容を学ぶことができます。

>Some of the things we will build together include:

>Searching and filtering lists with Turbo Frames

>Dragging and dropping items with Stimulus and again with StimulusReflex

>Slideover forms with CableReady and again with Turbo Frames and Turbo Streams

>Interactive charts with StimulusReflex

>Real-time broadcasting with Turbo Streams and with CableReady

>Inbound and outbound email processing with ActionMailbox

`StimulusReflex`や`CableReady`というものが出てくるそうですが、一体どのような技術なんでしょうか。興味が尽きません。

その他、以下のnewsletterにはさまざまなチュートリアル(たまにコードの紹介だけの時もある)が紹介されています。

https://masilotti.com/hotwire/

**例: Turboや他の技術を組み合わせてドラッグアンドドロップ機能を作る**

https://code.avi.nyc/turbo-forms-drag-and-drop-in-ruby-on-rails-part-1

こちらも、さまざまな記事を紹介してくれるメールマガジンです。

https://hotwireweekly.com/archive/week-50-turbo-8-deep-dive-hotwire-history-turbo-native-apps/

**例: An Introduction to LiteStack for Ruby on Rails**

https://blog.appsignal.com/2023/09/27/an-introduction-to-litestack-for-ruby-on-rails.html

最新のRailsについて追っていたら、さまざまな英語の記事を追うことに抵抗が無くなりました(だってそっちをみないともう情報がない。。)

# 終わりに
なんだかんだ25日までに25記事書けてよかったです。年末年始もこの習慣を絶やさず、1日1記事とは言わない間でも1週間に1記事くらいは書いていきたいです。

また、最新のRailsは適材適所で活躍できそうで、特に小規模の受託開発チーム(0 → 1)なんかにはもってこいなパターンがありそうです。それが実感できたのは大きな収穫でした。