クラウドワークスが、 社外のエンジニアに寿司をおごる企画をやっている というのを見かけて、寿司がタダで食べられるなら良いなと思い、なにも考えずに申し込んでみました。 1
この企画は、寿司を食べながら対話するエンジニアを指名できるシステムになっています。筆者は、最近案件で使ったReact+Reduxや、RailsとReactを組み合わせて使うことに興味があったため、また、最近子供が生まれてリモートワーク制度を活用していたということで、そのあたりにも興味があり、 suzan2go さんを指名しました。suzna2goさんは、クラウドワークスの中でも、 Reactの普及にとくに熱心 なエンジニアだそうです。
寿司
こちらがクラウドワークスで提供していただいた寿司になります。
ごちそうさまでした。なお、お茶は出なかったので、ハックルベリーさんは申し込まないほうが無難かもしれません。 2
以下、聞いてきた内容です。
webpackはどんなプロダクトで使ってる?
- 新規の小さめのプロダクトで使ってみた。内部ツールを別アプリとして切り出し。
- jsのみwebpackで、それ以外sprocketsのパターンと、全アセットwebpackでビルドするパターン両方試してみた。
- CSSをsprokectsでビルドするパターンは、ReactではCSS埋め込むようなのもよくあるので、相性が悪い。
なんでReact?
- メインプロダクトはjQueryゴリゴリだが、メンテナンスが辛い。ある箇所をいじったときになにが起きるのかわからない。
- 小さく試して、徐々に導入していきたい。
Rails + webpackで、なにか詰まったことは?
- formの一部分など、Reactをpartialみたいにしてる挿入してる。
- ページの一部をReactにする形だと、エコシステムに乗り切れないところがある。Reactのエコシステムは、フルSPAが前提だと思う。
- RailsでViewをレンダリングして、その中にReactコンポーネントを埋め込むのではなく、ページ毎に完全に分離したほうが良い。
- よくある画面右下に出るチャットウィンドウのような、完全に分離されたコンポーネントなら、埋め込むのもありかも。
gemはなに使ってる?
- react-rails は、sprocketsが前提になってる。componentをグローバル(window)にくっつけなきゃいけないので辛い。
- react_on_rails は、webpackと統合目指してるので、こっちを使ってる。こっちはグローバルに置かなくても良いが、ライブラリとしてデカいのがちょっと気になる。
- CSRFトークンの扱いについて。react-railsは、propsで渡さなきゃならなかったりしてめんどう。react_on_railsは、関数呼べば良いだけ。
redux使ってみてぶっちゃけどうだった?
- 手放しには誉められない。
- API覚えるのがけっこう大変。
- ReduxのDevToolsがプロダクション環境でもONになってるサービスとかけっこうあるよね。
子育て+リモートワークやってみてどうだった?
- 子供が生まれてからしばらくは、リモートワークがメインだった。
- 日中は奥さんがメインでめんどう見てくれて、それをカバーする感じでやってた。
- 生まれたばかりの子供と時間を共有できたのがありがたかった。
- 奥さんといっしょに育児レベルを上げげられたのでよかった。
CrowdWorksのリモートワーク体制について教えて
- 基本、前日までに申請しておけばOK。
- 週4までリモートワーク入れられる。
- いまはほぼ毎日会社来てる。案件が佳境で細かい調整が多く、会社に来たほうが進捗が良いので。
その他
- Railsはメタプログラミングやりすぎるとヤバい。書いてるときは気持ちいいけど用量用法を守って。社内にすご腕の人が残した黒魔術の遺産がある。