Skip to content

開発研修 ruby

Kazuya Sato edited this page Mar 12, 2014 · 2 revisions

Rails + Ruby研修

最初にやってもらう

  • 自分のGithubのアカウントに研修用にパブリックなリポジトリをつくってもらう
  • 開発環境の構築
  • Rubyのインストール
  • エディタの設定

Ruby編の大まかな流れ

#1 事前準備

rvm, rbenvのどちらかをインストールしてください

  • rvm, rbenvについてしらべてください
  • rvm, rbenvどちらを使うかは自由です

rubyのインストールしてください

  • 1.9.3と2.0.0をインストールしてください (それぞれ最新版を入れてください)
  • インストールできたらhello worldを出力してください
  • irb、helloworld.rbでもどちらでも大丈夫です
  • hello worldの実行結果を書いてください

gemのインストールしてください

  • 今回インストールしたそれぞれのRubyのgemコマンドからpryとawesome_printをインストールしてください

#2

諸注意

  • 以下の課題はirb上で行なってください
  • Rubyのドキュメント は困ったときに参照できるようにしておきましょう

事前知識

文字列操作

  • 文字列連結
  • helloとworldを連結してhello worldにする
  • 文字列を置き換える
  • writewrittenにする
  • puts, printの違いを記述してください
  • URI
  • %E3%83%AA%E3%83%BC%E3%83%80%E3%83%96%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89 をヒューマンリーダブルな文字列にしてください
  • http://doc.ruby-lang.org/ja/1.9.3/library/uri.html

配列, 繰り返し

  • 1から10までの配列をつくる
  • 配列に追加する
  • 配列から値を順番に取り出す
  • 1から10の配列中身を全部足してください

自習

Enumelableはよく使うので覚えておくといいでしょう http://doc.ruby-lang.org/ja/1.9.3/class/Enumerable.html

ハッシュ

  • 少し複雑なハッシュになることもあるので、hash.rbファイル等のファイルを生成してそこにプログラムを書いてもOKです
  • たまたまPerfumeの方々にご登場いただいていますが、ニックネーム、本名、誕生日は自由に変えていただいて大丈夫です

課題1: 以下のPHPの連想配列をRubyのHashで表してください

<?php
array(
    "users" => array(
        "nocchi",
        "kashiyuka",
        "a~chan"
    )
)

課題2: 以下のphpの連想配列をRubyのHashで表してください

PHPではキャメルケースですが、Rubyではスネークケースなことに注意してください

<?php
array(
    "a~chan" => array(
        "realName" => "西脇綾香",
        "birthday" => "1989/2/15"
    ),
    "kashiyuka" => array(
        "realName" => "樫野有香",
        "birthday" => "1988/12/23"
    ),
    "nocchi" => array(
        "realName" => "大本彩乃",
        "birthday" => "1988/9/20"
    )
)

課題3: 課題2で作成したbirthdayDate(DateTime)クラスを使って表現してみてください

課題4 課題3で作成したHashからbirthdayを取り出し、それぞれの曜日を求めてください


Rubyを書いてみる

  • 課題を幾つか設定しますので自由に選択してください
  • 選択した課題をコメントに書いてください

gemをつかった簡単なアプリケーション例(↑難易度: 易)

  • Twitterから検索する
  • Twitterに投稿する
  • im.kayacをつかってPush通知
  • Twitterからストリームを流し見る
  • SinatraでBlogをつくる
  • 天気の情報を取得してそれをiPhoneに通知する

雑学程度なのでペアプロします(1時間ほど)

  • 範囲式
  • inject
  • for/each/map
  • Enumelable
  • ワンライナーでビンゴアプリ

Rails編

#1

RailsGirlsのマテリアルをひと通りやる

  • migrationについて説明してください
  • scaffoldについて説明してください
  • CRUDについて説明してください
  • それぞれのHTTPメソッドについて説明してください

#2

  • 研修担当に決めてもらう
  • 設計から実装までできるようになるとよい

FRS3に程よい開発タスクがあるとき

RailsGirlsの続き

  • サインインの実装
  • ユーザモデルの設計
  • 追加課題
  • TwitterとOAuth連携
  • herokuにデプロイ
  • haml化

#3

haml

  • hamlの文法を調べてください
  • app/views/ideas/index.html.erb をhamlで記述してください
  • app/views/ideas/_form.html.erb をhamlで記述してください
  • 変換ツールは使わないこと。実際に手で書いて覚えてください
  • hamlについて説明してください

CoffeeScript

  • CoffeeScriptの文法を調べてください
  • facyboxを導入して画像をクリックしたら画像が拡大される処理をCoffeeScriptを使って書いてください。
  • http://fancybox.net/
  • ライブラリ本体はCDNは使わずにファイルをプロジェクト内に設置してください
  • CoffeeScriptについて説明してください
  • app/assets/javascript/application.jsの役割を説明してください

Scss

  • Scssの文法を調べてください
  • Scssについて説明してください

オプション

自分の作業履歴をgitで管理する

  • 何か変更を加えたときにコミットする
  • あとで自分がなにをやったかを見返すため
  • 細かいコミットほど良い。
  • メッセージなども詳細に書かれていると講師が意図を汲み取って指摘をしやすい

研修担当者向け情報

Ruby編

  1. 講師が各人のリポジトリのIssuesをたてる
  2. それにコメントする形で課題をこなす

Rails編

  1. RailsGirlsのマテリアルをやってもらう
  2. rebase禁止(修正した内容を都度コミットメッセージに残す)
  3. 追加の課題をする(モデルの設計やルーティングの追加)
  4. #2, #3に該当
Clone this wiki locally