Speee
16卒エンジニア研修
研修の流れ
TECH::MASTERを進める (1週間)前半
課題アプリの作成 (6週間 ※GW込み)
【課題】:Slackのクローン作成
【アプリ名】:Spelack
※Speee + Slack = Spelack
後半
プロジェクト体制
メンターさん
 認証周りの実装 (Google認証を含む)
 デザインの実装
omi
 Channel機能実装
 インフラ整備
wataru リアルタイムチャットの実装
MKenta
プロジェクトの進め方
Trelloでタスク管理
Pull Request 駆動開発
• 朝会・夜会の実施
• 週1でメンターとMTG
omi レポート
Rubyを1行も書いたことがなかった新卒エンジニアが
開発言語Ruby中心の会社で働くまでの話
※はじめに※
Rubyを用いた開発における
本当に基礎的なことを学んだため
私の発表では
最先端な話はあまり出てきませんが
何卒よろしくお願いいたします
🙇
研修で学んだことの概要
• Ruby
• 基本的な文法
• Ruby on Rails
• 基本的な仕組み
• Deviseを使った認証機能の実装
• omniauth-google-oauth2使った認証機能の実装
• テンプレートエンジンslimを使ったviewの実装
• テスト
• Rspec
• Capybara
• CircleCI
研修で学んだことの概要
• その他
• GitHub
• Pull Request 駆動開発
 認証周りの実装 (Google認証を含む)
 デザインの実装
Spelackの開発で担当した部分
研修でつまずいたところ
• メール認証機能の有効化 (Devise Confirmable)
• メール認証機能開発後の動作確認
• Letter Opener を使う
• フィーチャテストの際にログインがコケる
• userモデル用のFactoryGirlにconfirmed_atが入っていない
研修でつまずいたところ
• サーバにあげた際に画像などが表示されな
• Rails4からは assets:precompile した際にdigest無しのjs,
css, image は作成しない仕様になった
研修でつまずいたところ
• Google認証でログインできない
• 新userをcreateする際にconfirmed_atが入っていない
研修全体の良かった点
• Railsを用いた基本的な開発手法を学べた
• Pull Request 駆動開発及びチーム開発に慣れた
• テスト駆動開発の感覚をつかめた
研修全体の反省点
• しょうもないところでつまずき、時間をロスした
• 基礎力の欠如
• つまずいた時の対応とデバックスキル
• 連携スキル
• 他のメンバーが扱っている技術の習得
• 体調管理
wataru 研修レポート
Server編
私の話すこと
• サーバー周りのこと
• インフラ構成
• 環境設定自動化
• デプロイ
• 研修中に得た教訓
インフラ構成
インフラ構成
• Nginx
• Puma
• Rails main
• Action Cable
• RDS-mysql
• ElastiCache(redis)
環境設定自動化
•Itamae
• 必要なpackageのインストール
• Nginx設定
• node環境構築
• Redis設定
• ruby環境構築
• yum update
デプロイ
•Capistrano3を使用
• gulpコマンドを叩くタスク
• DBをresetするタスク
• Pumaをデーモンで起動するタスク
教訓
出典:http://qiita.com/jabba/items/b0a0f8c310e164b4db2b
MKenta研修レポート
Frontend編
研修について
• 今回話すこと
• RailsでのReact使用方法
• 環境開発選定で気をつけたこと
• 研修全体の技術的反省点
• 今回話さないこと
• Reactの実装について(GitHub参照)
• Flux,Reduxのこと
開発環境選定
• 前提
• Rails4系である
• リアルタイムチャットができる
• 候補
• Websokect-rails,ActionCable…
• Javascript(react,vue…)
• モジュール管理?パッケージ管理?
選定開発環境
• ActionCable(Rails5系で正式採用のため)
• React.js(Flux及びReduxは使用しない)
• パッケージマネージャとしてnpmを使用
• 故にreact-railsは使用しない
• Webpackでモジュール管理
• Gulpと併用して効率化
開発環境選定
• なるべくモダンな開発手法を取り入れる
• Ex)coffee -> ES2015
• React-rails?
• Webpack or Browserify?
• npm or bower?
Webpack or Browserify
• 本プロジェクトではWebpackを採用
• 理由は
• Plugin拡張性
• ビルドが早い
• Configが書きやすい
• 新しいドキュメント多い
RailsでのReact使用方法
• リアルタイムチャットの実装に使用
• チャットの送信(Post)のみActionCableを使用
• 表示,編集,削除はReact側でRailsのActionを叩く
研修全体の良かった点
• フロントエンドのモダンな開発手法について学べた
(Babel,react,webpack,npm…)
• Reactを大分さわれる用になった
• Javascriptライブラリさわれるようになった
• チーム開発にかなり慣れた
• Railsにも慣れた
研修全体の反省点
• 技術選定が雑だった。調査不足。
• 主にActionCableとreactの実装にすごい時間取られた
• 最初はreact-rails使ってたりボロボロ
• 正しい使い方を出来ていない
• Smart and Dumb Componentsの徹底
• Gulp有効活用
• 現状だとAPIを叩いたりActionを叩いたりバラバラ
• 一つのタスクの必要機能を洗い出せていなかった
• Reactとデザインの連携が全くダメ
• テスト書ききれてない
研修成果プレゼン資料

研修成果プレゼン資料

Editor's Notes

  • #4 山浦航 宮地健太
  • #5 山浦航 宮地健太
  • #10 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #11 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #12 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #13 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #14 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #16 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #17 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #18 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #19 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #20 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #21 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #23 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #24 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #25 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #26 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #27 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #28 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #29 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #30 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511
  • #31 http://k-shogo.github.io/article/2013/09/23/rails-devise/ http://qiita.com/wadako111/items/03bc00d914e62243a511