第3回ペパボテックカンファレンスに行ってきたの巻


## エンドツーエンドテスト書いた話

遅刻したので途中から…。

シナリオは日本語でかいてる
ステージング・本番環境に向けてやるからDBを都合よく操作できない

### Tips

- デバッグ用のステップを入れる
  - スクリーンショットやHTMLをすぐに確認できるようにしとく
- 特定の領域を操作
  - ヘッダーの中にある○○とか
  - ステップを再利用してる
- リセットできない副作用のあるテスト
  - 毎回実行しないようにする
  - 画面上の操作でデータを初期化
- WYSIWYGエディタをどうしてるか
  - Javascriptで入力したらラグがあるのでちょっと止めるようにしてる

### 所感

- よかった点
  - うまく作れると気持ちいい
  - 最初は1日1ケースとかだった
- つらかった点
  - 似たようなセレクタで1コ取れると思ったら10コ取れたりとか

### 質問

- すでにできないことがある
  - Flash使ってるところはムリ
- 抽象度の高いフレームワーク使ってるとリファクタリングとか追いついてこないけどこれの対策は？
  - 特にないけど、日本語で書けるというメリットで防止できるんじゃないか
  - 中がグチャグチャになるのはしょうがない
  - 語彙を揃えるというのが重要

## MogileFSバックエンドにPrivate S3作った話

[slide](http://www.slideshare.net/lamanotrama/mogilefsprivate-s3)

各サービスがそれぞれ違った仕組みで独自に構築してた
IaaS上で再構築するのは非効率

OpenStack SwiftがS3互換はメリットだけど開発コストの相殺は十分だった

MogileFSは十分安定してた

S3でよくね？
オンプレの方が明らかにコスト的に優位

Baytと呼びます。

アーキテクチャとしてはわりとシンプル

全社的に使うには心許ない部分

使われてくると負荷とか増えてくるので、メトリクス充実化・可視化していった

- Munin (特別製の使ってて黒いｗ)
- Kibana
- BigQuery

mogilefsdがスケールしない…

プロセスが増えていかない
700プロセス辺りから親プロセスが応答しなくなる

頭打ちと言うよりも不全状態

→ 親に気合いを入れた
プロセスの優先度を最強にした

過剰なやる気状態でサーバーが落ちるようになったｗ

MHAがフェイルオーバーしてくれるけどデッドロック自体よくない…

使ってなかったインデックスが5.5になって使われるようになったことが原因だった。
いらないのでドロップ。

実URLへのreproxy処理

実体を返す所だけどここでは違う
X-Reproxy-URI

Gatewayが実体にアクセスしてる

1. 普通にプロキシ
2. レスポンス返ってきたらゴニョゴニョしてまたプロキシ

複数URIにリトライとかしてくれたりネットワーク負荷かけずにできるから便利。

マルチバイトエンコードしてパス保存するからけっこうカラムサイズが必要になる。255→512

- nginx-luaじゃなくてmrubyにしたのは？
  - 開発者がいるから
  - 直してくれる

### 後半

S3互換APIを作った話
[Slide](http://www.slideshare.net/hiboma/mogilefs-private-s3-api)

Railsで。

S3と同じインターフェースを作る＝設計しない

OSSクライアントを利用可能

さくらのオブジェクトストレージAPIもS3互換だから参考にした。

#### APIチューニング

rails/all → rails-apiにしてダイエットした
XMLの生成が遅い → ox早い

## LT H2OとPHP

H2O
kazuhoさん作

apache,nginxよりも簡単にPHP使える

問題は秘伝のたれが少ない
サービススクリプトとかもいい感じのがない

Nginxのfastcgiの設定闇が深い。
WAFとかの動作にも影響が発生する可能性もある。

Apacheはハンドラの設定をミスるとセキュリティ的な問題が発生するかもしれない。
そこら辺からコピペしたらやばかったりする。

Mozillaがいけてる設定を公開してくれてる。
いい感じのを出すサービスがある。

## 歴史あるWebサービスに2年半携わって起きたこと

[slide](http://www.slideshare.net/masatakakono1/web-4-52194701)

### 入社時

- Trac使ってた
- レビューしてない
- SVN、クライアントはgit-svn
- PHP 5.3
- Webistrano
- 素のSQL。ORマッパーなし。
- テストなし
- パッケージ管理もなし
- 開発環境はMaglica。簡単にサーバーができるやつ。

### GHE使うようになった

- 全社的に導入された
- 今はこれが当たり前！
- レビューするようになった
- プルリクプルリク
- PHP → PSRを意識するようになった

### PHP-CS-Fixerの自己

- Javascript含むPHP
- Javascriptの`else if`が`elseif`に…
- 差分表示にスペースとか含めないようにしてたから気付かない
- エラー

### レビューするようになった

- 共通認識生まれた
- レビューしてる中でもっと大きい視点で話をするようになった。

### テストの導入

- E2Eテスト RSpec+Capybara
  - 正常系だけでもあると非常に便利
- ユニットテストPHPUnit

### Composer

- ライブラリ探してバージョン管理に追加してた
- composer.json書いてバージョン管理
- 導入簡単
- PHP5.3.2以上はやった方が良い
- デプロイ時にcomposer installする
- venderディレクトリはバージョン管理に入れない
- 社内用Composerライブラリ作った

### ローカル開発環境ができた

- Vagrant + Puppet
- デザイナにこれ動かないんですけどって言われても puppet apply してくださいで済む

### Wheneverでcronの変更を自動化した

### MySQLバージョンアップ

第1回ペパボテックカンファレンス参照。

### ORM導入

- Eloquent ORM
- LaravelについてくるORM
- 既存を修正するとき、新しく作るときに置き換える方針でやった
- SQLには戻れない

### 画像サーバをFTPからBaytにした

- PHPのFlysystemっていうファイルやりとりを抽象化してるライブラリがあったけど
- PHP5.4から対応だったので5.3に対応させた

### まとめ

- 粛々とコツコツがんばろう

## 尋常じゃない速度でドックフードを食べる方法

ドッグフーディングな話

Sqale

自社製品を使ってよくしていくこと

メンテナンス＝爆発

## 今夜、インターネットの片隅で。 〜ウェブサービス開発ちょっといい話〜

鹿くんさんがいいキャラクターだった

「最高のカートにしてくれ」

購入完了までに6画面ある

買う人っていっぱいいるんだから、その人に応じて最適な画面を出せばいい。

一枚の画像で表現するのは難しいので動画を作ってみた。
→ コンセプトを理解してもらえて、見積もりとか色々できた。

ProtとかInvisionでプロトタイピングツールがあるからチームのみんなでやればよかった。

詩を書いた

哲学駆動開発

エモすぎて具体性がなくてイマイチだった

属人性をなくすために開発しよう！

カート画面のためのCSSフレームワークを作った。
そしてスタイルガイド作った。

エンジニアが勝手にできるようになったから仕事がなくなったｗ

ユーザーテストやった
動画を会議室でみんなで見た。
それをふせんにしてホワイトボードにはりつけた
これらを直したい部分を洗い出して検討した

動画は自分で編集した

ポエムもプロトタイプの一環。
デザイナに限らずこういう話していくのが大事。

## LTふたつめ

銅鑼パーソン総選挙

エンジニアの考えた企画はエンジニアが面白いものなので悪ふざけが過ぎると倫理の話になってしまう…

## OSXアプリ開発の話

デスクトップアプリの開発

Cocoaプログラミング

関西弁で書かれてるCocoaプログラミングの本がある

Electron未来ある

## 仮想通貨自動トレード記Part1

Bitcoinの売買をするYAPCとは関係のない話ｗ
前回も話してた人ｗ
山師…

将来の夢はサンドイッチ屋さんらしいです

### LT 3回目

スピリチュアル枠

YAPC::Asia Tokyoでベストトークをとる方法

トークしなきゃダメって事はない。
トークしなくてもすごい人はいっぱいいる。

プロポーザルを通す。
プロポーザル・イズ・ラブレター

周りの人にこういう話しようと思うんだけど、みたいなことを言いましょう
普段から何か活動してないと何か活動しましょう

タイトルが9割
タイトル必死

SEO対策的なもの
シェアやブクマで見切れないタイトル

内容には予習のためのリンクとかが必要

過去事例で特殊な自社にしかないような事例はイマイチ

色々話してたけど、ベストトーク取ろうとしなくても非常に為になる話だった。

自分がしゃべりたいものを自信を持って話すことが前提！！
流行り物をしゃべってはいけないってことじゃない。