何でも屋エンジニアのブログ

Rails中級者向け勉強会Step-to-Rails-Expert.rbや出席した勉強会に関するメモが多い

ExpertTodo(Todoアプリレビュー企画)について

以前から少しずつ触れてきたTodoアプリを作成してきてレビューしあう企画について、fixしたものをまとめておきます。
TODOの箇所について、「こうすれば良いのでは?」など案があれば、ぜひコメントください!
また、どなたでも入れるのでslackへの参加もぜひお願いします。

Join Step-to-Rails-Expert.rb on Slack!

ExpertTodoとは

Todoアプリを作成し参加者でレビューしあうという企画の名称、または本企画で使用されるアプリの名称を指します。 どういう経緯で本企画が企画されてきたのかは、以下のリンクをご覧ください。
http://biibiebisuke.hatenablog.com/entry/2017/05/26/115016 http://biibiebisuke.hatenablog.com/entry/2017/07/19/232203 http://biibiebisuke.hatenablog.com/entry/2017/06/29/121713

目的

同じ仕様のアプリを参加者で実装しレビューしあうことによって、RailsWayがどのような設計・実装によって実現できるかを参加者で議論しながら探求していきます。

背景

Gemやちょっとした機能を実装した知見はweb上にたくさんありますが、それらをRailsWayに乗って書くにはどのように書くべきか、という知見が少ないと感じています。Rubyに関してはOSSのコードを見ることで学べますが、RailsOSSは少なく参考にできるプロジェクトがあまりないのが現状です。 そこで、ExpertTodoではRailsを使ってどのように設計・実装すべきかを、実際のアプリを作成し互いにレビューしあうことによって学んでいきます。その際、追加する仕様をランダムに設定し「仕様が天から降ってくる」実際の業務に近い状態を作り出すことで、変更に強い設計・実装を学ぶことができます。この意味で業務に直結する設計力・実装力の向上を期待できます。

参加することで学べる可能性のある事柄

  • RailsWayを学べる
  • 変更に強い設計・実装を学べる
  • 実装だけでなく開発フローなどの指摘も得られる
  • CI環境の設定方法・Paas/Iaasを使ったアプリプラットフォーム構築の知見を得られる
  • 既存のアプリをメンテする勘所を学べる(他の参加者のアプリをforkして進めることもできる)

開発方法に関して

開発の流れ・開発のルールに関しては、ExpertTodoのREADMEをご覧ください。

仕様について

  • 仕様は、仕様候補と呼ばれる仕様の集まりの中からランダムで選ばれます。
  • 仕様は、レベル別に3つ用意する予定です(以下例)。
    • Lv.1 通常ユーザーの作成時に確認メールを送信する
    • Lv.2 タスクへのファイルのアタッチ(複数)
    • Lv.3 期限がすぎたタスクのweb上での通知
  • 各回の仕様は、READMEに追記されます。
  • レビュー対象は、初回は最小機能(READMEに記載)を実装したもの、2回目以降は仕様の中から任意のレベルの仕様を実装したものになります。

ExpertTodoの進め方・お願い

  • 初回までは、レビューは当日の開催中に行う予定です。 ただし、初回は最小実装のみなので問題ないが、2回目以降は実装幅が広がり時間がなくなることも想定されるので、事前に参加者が一人分をレビューし、そこで気になった点を本番で話しあうということも計画しています(時間的・実力的にレビューが難しかった場合は、本番でみんなでレビューを行うことでカバーし、その際レビューの仕方等のフィードバックができる)。

  • 実施方法として、参加申し込み時に宣言した人優先で時間配分を行い、当日に完成したのでレビューして欲しいと申告のあった人は時間が余ったら、もしくは懇親会等でレビューするという方法を取ります。事前申告者が5人いたら、75分/5人で1人あたり15分を割り当てます。当日申告者が2人いたとしても、75分/7人という計算は基本的にはしない予定ですが、事前申告者の人数によって変わります。なので、必ずレビューして欲しい方は参加申し込み時に宣言することをオススメします。

  • 前述したランダムな仕様案を増やすため、アプリを作った作らないに関わらず、当日1人1つ仕様案を考えてきてください。

  • 事前にslackへの参加をお願いします

(運営)必要なもの

  • TODO: ランダムで仕様を選ぶやつ
  • TODO: 質問・サポートの場(実装というよりは仕組みや運営の不備による不明瞭な事柄についての窓口)
  • TODO: 無料でできる構成のサンプルを提供する(heroku&circleCIなど)

その他

本企画ExpertTodoは、非常に学びがある企画だと考えていますが企画の性質上あまり多くの参加者を受け入れるキャパシティがありません。実際にアプリを作っていなくても参加できる枠組み(オンラインの参加で議論の様子を聞けるなど)を考えてはいますが、運営リソース等の制限で実現できるかは定かではありません。そのため、他のコミュニティや集まりで本企画を実施して頂くのは大歓迎です。その際は、フィードバックを受けたい・場合によっては参加させて頂きたい等の理由から、Step-to-Rails-Expert.rb主催者のebiまで一声かけて頂ければ幸いです。

質問の回答

いくつか質問をもらったので、質問・回答を記載します。今後増えていく予定です。

  • どこまで実装したらレビューしてもらえるの?
    レビュー対象は、初回は最小仕様の実装、2回目以降はレベル別仕様のうち一つでも仕様を実装したものとなります。

  • 実装方法がわからずギブアップする場合はどうする?
    ギブアップは、fork先の実装を見ましょう。もしくはチャットor懇親会等で質問しましょう。特別な理由がない限り、他の人の実装を見て実装した仕様に関しては、レビュー不要の旨をPRに記載してください。

2017年8月21日追記

質問・回答を追記しました。
仕様についての説明を追記しました。
slackへの参加について追記しました。

2017年9月10日追記 ExpertTodoの進め方を編集しました(進め方の説明を追記。