YAPC ASIA 2015の1日目に行ってきた。 #yapcasia

本日は、去年のYAPC::Asia Tokyo 2014 前夜祭に引き続き私にとっての2回目のYAPC、YAPC::Asia Tokyo 2015に参加して来ました。

参加したセッション

謎の写真です

f:id:naoto5959:20150821230425j:plain

旅行券、当たるかな?

esa.io - 趣味から育てたWebサービスで生きていく

さて、本日のお目当てのプログラムです。

esa.ioは「情報を育てる」という視点で作られた、 自律的なチームのためのドキュメント共有サービスです。

f:id:naoto5959:20150821230429j:plain

  • 今回は、界隈の仲間の発表ということで最前列で観ました。
  • イロイロ試すのは確かに大事。URLを持ち誰からもアクセスすることによってフィードバックをもらえるという点に激しく同意しました。
  • 仕事の後にこれだけのものを開発するパッションとスキルに尊敬の念を抱かずにはいられません。
  • サービスがイケるかも?と言ったタイミングで「責任をもつという意思表示のために会社を作る」という所にesa社の2人の覚悟と責任感を感じました。
  • 自分たちが楽しく開発することがユーザーに届ける価値を最大化する という点は私も大事にしている点です。楽しくない開発はどんなにがんばっても最高のパフォーマンスは出せません。楽しむことが何よりも大事だと思います。
  • Bug Fixタイムアタックに関しては、楽しむ為の工夫として素晴らしいなと感じます。
  • We're Not Hiringという方針を掲げる理由が「ユーザーサポートを作っている人たちがやることの強さ」を維持するためというあたりがクールです。
  • 開発スケジュールを決めない!!というのも私の大事にしている点で激しい同意で鼻血が出そうでした。モチベーションの赴くままやるのが最終的に効率がいいのです。モチベーションが全てです。デザインスプリントのようなあえて期限を決めることで自身を追い込む事は大事ですが、そこは 自身で追い込むことが大事 で、スケジュールを他者に握られないというのはすごい大事だと思います。
  • ふりかえりを壇上の上で行い、5年前の想いを実現している姿は素晴らしかったです。

胸を張って、趣味から育てたサービスで生きていく。誰にでも出来る事ではありません。謙虚な姿勢とふりかえりによる結果だと想いました。そしてあの2人だからこそ、という感じがします。esaはツイートの内容などゆふわな雰囲気がありますが、その雰囲気とは裏腹に確固たる信念の元、開発運営されているのでおいそれと真似できないなーと思いますが憧れますねこのチーム。とにかく今回の発表は、とても刺激を受けました。

fukayatsu氏の発表スライドはこちらです。

面白かったツイート

最後に

久々にカンファレンスに参加することで、大変刺激を受けました。自分のやりたいことと、世の中の人の役に立つことが一致させることがエンジニアとしての幸せなのかなと考えさせられる充実した1日でした。

YAPC::Asia Tokyo 2015のスタッフの皆様、運営ありがとうございました。

React.jsを使いたいRailsおじさんがJavaScriptライブラリをそれっぽく管理しながら入門する

Sendagaya.rb #114に来たので、目標のブログ記事を書いてた。

今日は、React.jsの会なので、RailsからReact.jsをざっくり使って見る準備をしてみます。

目指すもの

  • sprocketsのままとりあえず進む
  • jsのライブラリをnpmで管理したい
  • React.jsをES6で書きたいし、JSX書きたい
  • herokuで動かすぞ!
  • react-railsは使いたくない

方針

sprocketsと共存するために、browserify-railsを利用し、ES6はBabelを利用します。ライブラリはそのまま、npmで管理します。

npmを入れます

もし入っていなければnpmを入れましょうね。

brew install npm

package.jsonの準備

browserify-railsにある例のまま記載します。

package.json

{
  "name": "sendagayarb",
  "dependencies" : {
    "browserify": "~> 10.2.4",
    "browserify-incremental": "^3.0.1"
  },
  "license": "MIT",
  "engines": {
    "node": ">= 0.10"
  }
}
npm install --save

更に今回は、babelifyreactを入れます。

npm install babelify --save
npm install react --save

するとこんな感じの、package.jsonになりますね。

package.json

{
  "name": "sendagayarb",
  "dependencies": {
    "babelify": "^6.1.3",
    "browserify": "~> 10.2.4",
    "browserify-incremental": "^3.0.1",
    "react": "^0.13.3"
  },
  "license": "MIT",
  "engines": {
    "node": ">= 0.10"
  }
}

.gitignoreの設定

node_modulesディレクトリをgit管理対象外とします。

.gitignore

node_modules

browserify-railsを入れる

Gemfile

gem 'browserify-rails'

browserify-railsの設定を入れます。今回は、babelifyを使ってます。

config/application.rb

  config.browserify_rails.commandline_options = '-t babelify --extensions .es6'

herokuの準備

Gemfile

group :production, :staging do
  gem 'rails_12factor'
en
heroku create sendagayarb

node.jsとrubyを利用するために、multi buildpackの設定をします。

.buildpacks

https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/heroku/heroku-buildpack-ruby

herokuへpush

git push heroku master

React.jsのサンプル

ホント意味ないほどのサンプルです。

app/javascripts/application.js

//= require jquery
//= require jquery_ujs

window.onload = function() {
  require('./top.es6');
};

jquery_ujsは、railsのヘルパー使いたいシーンもあるので置いてあります。

app/javascripts/top.es6

import React from 'react'
React.render(
  <div>hoge</div>,
  document.getElementById('target')
)

app/views/pages/top.html.erb

<div id="target"></div>

app/controllers/pages_controller.rb

class PagesController < ApplicationController
end

config/routes.rb

Rails.application.routes.draw do
  root to: 'pages#top'
end

ソースとか

まとめ

とりあえず出来たぞ!

人事評価

とは

人事評価制度において、「人が人を正確に評価するなんて不可能」といった立場に立った時大事なのは、当人にとって「モチベーション」を適切にコントロール出ている状態をいかに長く継続するかということではないか。

透明性が大事

360度評価が自然に行われる環境とは、どんな環境であるか。

透明性のある状態で、誰かが誰かに感謝を通じて評価の代わりとなるようなものがある環境があると良い。

感謝とは

すみませんではなく、ありがとうである。

人事において、この人が会社にいた本当に良かった。マジでよかった。ほんとありがとう。と思える人物が評価されるべきだと思う。

つまり評価とはありがとうという感謝で表すことが出来るかもしれない。

モチベーションと感謝の関係性

承認欲求を得たいという欲求によりモチベーションは保たれそう(ひとによる)