phpでもモダンでスケーラブルな開発を...

Post on 10-May-2015

12.013 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

LIVESENSE IN

C.

PHPでも モダンで スケーラブルな 開発を

2013.11.09 DevLOVE甲子園

LIVESENSE IN

C.

PHPでも モダンで スケーラブルな 開発を

PHP全然下火だねぶっちゃけRailsでしょ~だってレガシーコードだよね?

なんか人生無駄にしてね?

圧倒的

/** * self_introduction.js * * それはソフトウェアを顧客に届ける猛々しきプロフェッショナルだ。 * たとえプロジェクトがきわめて過酷な状況であろうと、 * かつてなく手ごわい期日であろうと、成果をあげる力量を備え、 * しかも品格と平静さを失うことがないのだ。 * * Jonathan Rasumusson『アジャイルサムライ』より */ var profile = { "name": "島川悠太", ! "birthday": "1982年5月7日", ! "hometown": "千葉県市川市", ! "location": "千葉県市川市", ! "twitter": "@banana_umai", ! "motto": "Keep It Simple, Stupid!", ! "message": “hello world", ! "works": [ { "duration": "2005年から2008年", "company": "独立行政法人食品総合研究所", "role": "助手" }, { "duration": "2008年から2013年", "company": "株式会社ぐるなび", "role": "システム開発" } ], "favorite_musicians": [ "渋さ知らズオーケストラ", "七尾旅人", "Zazen Boys", "Giovanni Mirabassi" ], ! "favorite_beer_brewery": [ "ベアードブルーイング", "ヤッホーブルーイング", "木内酒造" ], ! "hobby": null }; !

var me = { “name”: “島川悠太”,

“twitter”: “@banana_umai”,

“belogns_to”: “株式会社リブセンス”

!

}

現場の話

Livesense Inc.

Livesense Inc.

企業が人々を選ぶ時代を 人々が企業を選ぶ時代に

業界最大、クチコミ約225万件

A社

業界最大のクチコミ数で業界独走へ

ユーザーが多いサイトにクチコミが集まり、 クチコミが多いサイトにユーザーが集まる。

業界最大のクチコミ数で業界最大のユーザー数を目指す。

Environment

Linux, Apache MySQL, PHP

mroonga, memcached

Symfony1.3 (MVC Framework) Lime (Testing Framework)

Process

Planner * 3 Programmer * 3 Frontend Engineer * 1 Designer * 1

Iteration Meeting Daily Standup Weekly Retrospective

Pivotal Tracker でバックログ管理

Confluence でナレッジ/ドキュメント共有

Stashで コードレビュー

Jenkinsで 常時ビルド

デプロイツール ジョニー・デップロイ

Issues

メンバー数の増加と スケーラビリティ

LIVESENSE IN

C.

PHPでも モダンで スケーラブルな 開発を

スケーラブルって?

スケーラビリティ

リソースの量に比例して全体のスループットが向上するシステムはスケーラブルな(scalable)システムまたはスケーラビリティのあるシステムと呼ばれる。

メンバーを投入することで生じるコミュニケーションコストを上回って、どれだけ開発ベロシティを向上させることが出来るだろうか?

KAIZEN

技術的負債の棚卸と イテレーションサイクルへの組込み

1. スローテスト 2. ナレッジ共有 3. チーム

スローテストへの対応

CIサーバのハードウェアを高性能なものに変更する CIサーバを複数台で構成する CIサーバのディスクをSSDに変更する

テストで利用するデータベースをインメモリDBにする テストスイートを分割する

データベースを利用する箇所をモックに変える 外部システムとの連携テストの箇所をモックに変える テストで利用するデータベースを最小データに保つ SeleniumやWatir等のブラウザを通したテストだらけにしない テストの独立性を高める。他のテストに依存させない テストを同一マシン上でも並列で動作するようにする テストケースのsetUpメソッドを効率化する

http://www.ryuzee.com/contents/blog/4520

DI可能な設計 Mockフレームワーク利用

Symfony1.xの壁

ナレッジ共有

ドキュメントの改善

仕様書としてのテスト

Limeの壁

ちょっとした 工夫

Behatによる BDDの導入

チーム

小さいバッチ 小さいチーム

プランナーと プログラマがタッグになって 同じビジネス目標にコミット

氏曰く

スクラムからリーンへ

最後に

Facebook

http://news.mynavi.jp/news/2013/07/09/206/

RubyからPHPへ -エンジニアのための思考移行ガイド- by kuromatu

• PHP5.3.x ◦ 無名関数 ◦ クロージャ ◦ 名前空間をサポート • PHP5.4.x ◦ traitをサポート ◦ 無名関数で$thisが使えるように ◦ arrayリテラル ▪ ['a', 'b', 'c'] === array('a', 'b', 'c') ◦ インスタンス生成文から直接プロパティアクセス ▪ (new Some())->hoge(); ◦ newキーワードでメソッド書けるようになったを • PHP5.5.x ◦ generator ◦ finally句のサポート

LIVESENSE IN

C.

PHPでも モダンで スケーラブルな 開発を

LIVESENSE IN

C.

PHPエンジニア 絶賛募集中

LIVESENSE IN

C.

Rubyエンジニアも 絶賛募集中

ご静聴 ありがとうございました

top related