「OSSからRailsをゆったり学ぶ」というコンセプトの本の試作品を公開しました!

2 min read読了の目安(約2500字

「OSSからRailsをゆったり学ぶ」というコンセプトの本を書いていまして、試作品のコンテンツを1つ公開しました。

https://zenn.dev/kitabatake/books/learn-from-devto-data-update-script

これにあわせて、コンセプトについての説明と公開した試作品についての説明を書いてみようと思います。

「OSSからRailsをゆったり学ぶ」というコンセプトについて

「良質なコードに多く触れる」ということはプログラミングのスキルを向上させるための王道の1つだと思います。
また、現在はgithub上などに様々なプロジェクトがOSSとして公開されているので、学ぶ環境としてはとても恵まれていると思います。

一方で、実際にOSSのコードから学ぼうとすると次のような問題があるように思います。

このような問題を解決するために、初学者の方や、忙しいプログラマーの方に向けて、良質なOSSから無理なくゆったりと学ぶためのガイドのような本を書いてみようと考えました。
OSSから学ベることは色々あると思いますが、「良質なOSSから無理なくゆったりと学ぶためのガイド」というコンセプトと共に、次の点を意識して書いています。

プロジェクトのストックを増やすということ

自分が開発に関わったプロジェクトのコードは知識のストックとして、頭の中に格納されているというイメージはありませんか?
「こういった機能はこのプロジェクトのこの部分で作ったから、そこのコードを見れば大体わかる」のような。

自分で書いたコードでなくても、プロジェクトにどんな機能が実装されているかを把握していれば、その機能を実装しているコードの場所は大体わかるので参考にすることができると思います。

そして、実際に運用されているコードを参考にすることはとても価値があると思います。
機能を実装するために必要な技術要素や、運用していく上で必要な細かい調整やTipsなどをそのまままるっと参考にできるからです。

一方で、自分の関わることのできるプロジェクトは限られているので、参考にできるプロジェクトのストックを増やしていくことはなかなか難しいように思います。

そこで、OSSのプロジェクトを自分のストックに加えることができたらとても価値があるのではと考えました。
これが実現することを意識して書いています。

公開した試作品について

「良質なコードに触れるためのガイド」と「OSSのプロジェクト自分の知識ストックに入れる」というコンセプトには自信があったのですが、
「本当に実現できるのか?」というのは正直よくわかりませんでした。

そこで、小さい試作品を作ってみることで実際にどういったコンテンツを作ることができるかを試すことにしてみました。

OSSの題材としては爆速な技術記事投稿サービスとして有名な devto を選んでみました。
Railsのプロジェクトとして規模も大きそうですし、パフォーマンスにこだわっているということは基本的な部分をしっかり作っているんだろうなと推測して選んだ形です。

devtoの ドキュメント を眺めていたときに「Data Update Scripts」という機能が少し気になったので、少し調べてみました。
すると、色々学べることがありそうでしたので試作品のトピックとして選んでみました。

ですので、devtoの全容を把握した上で、適切なトピックを選んだということではなく、
「実際にどういったコンテンツを作れるか」を試すためにほどよいサイズ感のものをなんとなく選んだという形です。

試作品を作ってみたところ、「良質なOSSの教材としての価値」を再認識できましたし、
「Data Update Scriptから学ぶ」というトピックもある程度形にすることができましたので、公開することにしました。

内容は次のようになっています。

  1. 「Data Update Scripts」とは何かを実際に使用している例を交えて説明します。
  2. 「Data Update Scripts」の機能がどのように実装されているかを解説します。
  3. どのように実装されているかを理解した上で、どのようなことが学べるかを技術要素ごとに掘り下げます。

また、最後に付録として、本書で扱ったコードの中から役に立ちそうなRailsのTipsをピックアップしたものを紹介しています。
Rails開発において、細かいTipsを知ることも大事なことだと思いますので、取り上げてみた形です。

試作品を書いてみて

試作品は、「本を書いた」というほどのボリュームではないのですが、「何かを伝えるための、ある程度まとまった文章」を書く難しさを痛感しました。

「コンセプトは良いんじゃないか」と思っていたものの、いざ書いてみるとコンセプトの掘り下げが全然できておらず、「読者に何を得てほしいのか」という肝の部分も曖昧なままだったと気づかされました。
また、単純に解りやすい文章を書くこと自体が難しく、かなり時間がかかってしまいました。
さらに、時間をかけたところで解りやすい文章書けるわけでもなく、スキル不足を痛感しました。
(まあ経験が少ないので当然なんですけどね。。)

一方で、「何かしらのものを作り上げる」という点に関しては、ソフトウェア開発で培ったスキルが活かせる部分もあり、この部分は少し手応えを感じました。
いわゆるアジャイル的なアプローチや、タスクを整理して、淡々とこなしていくようなスキルあたりです。

試作品を作ってみたことで色々な知見を得ることができたので、これを活かして、より良い切り口で「OSSからRailsをゆったり学ぶ」というコンテンツを作っていきたいと思っています!