Giter Club home page Giter Club logo

code-your-ruby's Introduction

Code Your Ruby

Code Your Ruby is a workspace to practice Ruby with code reviewing each other.

これは何?

Code Your Rubyは、Ruby初級者がコードレビューを通してRubyの書き方や考え方を学ぶためのリポジトリです。

出題の内容を実装してこのリポジトリへプルリクを送り、それを他のRubyエンジニアがレビューすることで、自分ひとりでの勉強では得られない視点や技術を身に着けることができます。

「Rubyを仕事にしたくて本やネットで勉強してみたけど、本当にこの書き方で良いのか不安!」という方はぜひ「参加手順」を一読して参加してみてください!

参加手順

大まかには、このリポジトリをForkしてお題に沿ったプログラムを実装してmasterブランチにプルリクを投げる、という流れで進みます。

細かなステップは以下の通りです。

  1. このリポジトリをForkします。
  2. ForkしたリポジトリをローカルにCloneします。
  3. specificationディレクトリの問題を確認します。どの問題からトライしても大丈夫です。
  4. userディレクトリに自分のGitHubアカウント名でディレクトリを作成します。これが作業ディレクトリになります。
  5. 作業ディレクトリに、課題の実装コードを配置するlibディレクトリとテストコードを配置するtestディレクトリを作成します。
  6. 課題の仕様を満たす実装コードとそのテストコードが書を書きます。
  7. 「これで書けた!」と思ったらuserディレクトリ以下をコミット&Pushし、このリポジトリのmasterブランチにPull Requestしてください。

レビュー手順

「誰が」「いつまでに」「どのような形式で」のようなルールは特にありません。

提出されているプルリクに対して何かコメントのある方はどんどんコメントを追加してください!

ただし、あくまで目的は 参加者の学習 であることを忘れずに、建設的な議論を意識してください。「微妙、、、」みたいなのはナシです。

マージについて

プルリクが提出され、コメントのやりとりが落ち着いたと @chooyan-eng が判断した時点でそのプルリクをマージします。

最終的なコードの質は特に見ません(見れません)。また、マージすることが目的でもありませんので、マージに関するルールは特にありません。

マージ後の修正や別の問題へのチャレンジは再度プルリクを提出してください。

ディレクトリ構成

例えば@chooyan-engがfizz_buzz問題にチャレンジする場合、ディレクトリ構成は以下のようになります。

$ tree
.
├── README.md
├── specification
│   └── fizz_buzz.txt
└── user
    └── chooyan-eng
        ├── lib
        │   └── fizz_buzz.rb
        └── test
            └── fizz_buzz_test.rb

ただし、libtest以下のディレクトリ構成は自由です。
言い換えると、ディレクトリの切り方もレビュー対象になり得ます。いろいろ考えてみましょう。

その他

  • 問題は随時追加 / 更新予定です。
  • このリポジトリのForkや再利用は自由です。同じような取り組みをもっと狭いチーム内でやってみたい、他の言語でやってみたいなどありましたらご自由にアレンジしてください。

Code Your Rubyを作ったきっかけなどをQiitaで記事にしました。併せてご覧ください。
これからRubyで仕事したい人のためのリポジトリ「Code Your Ruby」を作りました | Qiita

ご意見などがありましたら、Issues@chooyan_i18n(twitter)までご連絡ください。

code-your-ruby's People

Contributors

chooyan-eng avatar kawamataryo avatar rixwwd avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.