際際滷

際際滷Share a Scribd company logo
仝やっててよかったこの碧並々	

と冱えるようにやってきたこと
幄塀氏芙セカイネット	

采勸慎臓
徭失B初
? 兆念査嘔或蟻。┐海Δ里笋垢燭	

? 幄塀氏芙セカイネット	

? 麼にGoogle App Engine / Javaでの?
_kをしています。	

? Facebook: kouno.yasutaka
待s
? 18rまで牽uh燭表偏で^ごしてました。	

? 27rまで|奨でSI狼の氏芙に侭奉	

? ゛F壓 鷲岬で軟I
AGENDA
1. 兜晩にkした裡な孥昨	

2. チ`ムをひっくり卦す	

3. 玉{豚で_kするために	

4. まとめ
廣吭並
? 麿の圭はマジメなおのですので、?
すこしZけた湖じにしました。	

? フィクションです。	

? あえて叨が鞠します。	

? 亟寔の繁麗はイメ`ジです。	

? 丶っていていただければ侑いです。
1. 兜晩にkした裡な孥昨
2013定 10埖	

プログラマの勅鹿が栖る
プロジェクトについて
? 仇寳吉の頂Πk伏rに、Tの?
芦倦彜rを鷂?_Jするためのサ`ビスの恬撹	

? マルチテナント?Webサ`ビスとして戻工する	

? 頂rの識爾なアクセス紗に鬉垢襪燭瓠?
スケ`ルアウトして蛍柊I尖を佩う駅勣がある
中霧に佩ってみよう
プロジェクト歌秘rの念秤
? Java EEによるWebシステムの_k	

? _kリ`ダ`はJava EEのUYがN源	

? クラスタ撹のO?u夛ができる	

? 屡贋メンバ`もJavaのスキルがある	

? 児云OはほぼK阻している	

? 垢方は25繁埖殻業のzみ
よくあるプロジェクトみたいだし?
}oいだろう
いざ、歌秘
☆ 亟寔の繁麗はイメ`ジです。
しかし、壼くも兜晩に?
kする寔並g
☆ 亟寔の繁麗はイメ`ジです。
歌秘瘁にkした並g今
児云OはほぼK阻している ○ はずだったが
g|は勣周協x(5p)のみ
歌秘瘁にkした並g今
_kリ`ダ`はJava EEのUYがN源 ○ はずだったが
參念にJavaでどんなシステム恬ってたんですか
´´まぁ、いろいろと
フレ`ムワ`クとか採聞ってました
´´蒙には
Javaけます
いたりはしないかな
☆ 亟寔の繁麗はイメ`ジです。
チ`ム?リ`ダ`
なんか講しい
歌秘瘁にkした並g今
屡贋メンバ`もJavaスキルがある ○ はずだったが
COBOL匯庶20定
MみzみのCを方定
COBOLとVBを富し、Javaは1巓g冩俐しました
スキルがぜんぜん	

マッチしてない
歌秘瘁にkした並g今
畠THTMLやJavaのスキルがない
歌秘瘁にkした並g今
垢方は25繁埖殻業のzみ ○ はずだったが
麼にやること	

? ビジネス?ロジックのO?u夛	

? UIのデザイン?g廾	

? }方岬のサ`バ`による蛍柊システムO?B	

? サ`バ`の棒試O?\喘圭隈の_羨?猟嫗晒	

? メ`ルの匯電簧?鞭佚	

? マルチテナント
この垢方で怎りてるの
歌秘瘁にkした並g今
g|は嚠麻から剃麻した繁埖
垢方は25繁埖殻業のzみ ○ はずだったが
麿にも、慕けないことが謹方´
なにより、}なのは	

lも裡C湖を宇いていないこと
この彜趨を需て、湖じました
デスマの株いがする´
☆ 亟寔の繁麗はイメ`ジです。
デスマ`チとは
肝のいずれかに輝するもの	

1. 嚥えられた豚gが、械R議な豚gの磯蛍參和である	

2. エンジニアが宥械駅勣な繁方の磯蛍參和である	

3. 嚠麻やその麿のリソ`スが駅勣蛍にして磯蛍である	

4. C嬬や來嬬などの勣箔が蔚參貧である
☆ Wikipediaからの哈喘
デスマ`チとは
峠たく冱えば苧らかに払,靴修Δ覆里法	

@Aしている┐擦兇襪魑辰覆ぃプロジェクトのこと
兜晩にして、~李
しかし
パンドラの笋竜廚砲	

ひとつの錬李が´
プ??ロ??ジ??ェ??ク??ト
それは
まだ、採も恬っていない
劣、払,靴織妊好洌玄は、	

プロジェクト挑豚でIできなかった。
書指のプロジェクトは	

兵まったばかり。
これからのOや砿尖肝及で	

どうにかできないか
中易い
やってやろうじゃないか
☆ 亟寔の繁麗はイメ`ジです。
2. チ`ムをひっくり卦す
とはいえ、書の徭蛍に?
k冱悗呂△泙蠅覆ぁ
プロジェクト悶崙
○イマココ
プロジェクト?マネ`ジャ`
プロダクト?オ`ナ`
_kチ`ム?リ`ダ`
_kチ`ム?メンバ`
A芙
B芙
C芙
どうても翌です。	

云輝にありがとうございました。
と、Bめたら編栽嶮阻なので
プロジェクト悶崙
プロジェクト?マネ`ジャ`
プロダクト?オ`ナ`
_kチ`ム?リ`ダ`
_kチ`ム?メンバ`
A芙
B芙
C芙
○イマココ
イと砲緑梼mを戮組,	

恬蕕鱸_兵
恬蕋隠債慎弔鯣携呂垢
ステ`クホルダ`が	

採を櫃砲靴討い襪_Jする
A芙のプロジェクト?マネ`ジャ`と獗
書指の宛周で櫃砲靴討襪海箸辰萄里任垢
リリ`ス瘁の\喘とか隠便だね。	

あまり寄きな悶崙はとれないから
あと、砿尖もアジャイルとか	

やってみたいんだけど、	

UYがないから深え嶄だね
なるほど
A芙	

プロジェクト?マネ`ジャ`
☆ 亟寔の繁麗はイメ`ジです。
B芙のプロダクト?オ`ナ`に獗
書指の宛周で櫃砲靴討襪海箸辰萄里任垢
3埖にプレゼンやるから、	

それまでにデモが竃栖るようにしてほしい
3埖參翌はなにかあります
B芙	

プロダクト?オ`ナ`
蒙にoいよ。剃にリリ`ス晩は	

Qまってないから富しくらいなら
{屁できるかな
☆ 亟寔の繁麗はイメ`ジです。
この秤鵑鰓に、	

戻宛Y創の恬撹を_兵
恬蕋横採字湖を慌嗤する
嶷勣な}泣を	

JRしてもらう
B芙のプロダクト?オ`ナ`に獗
メンバ`って畠TJava_k勣Tなんですよね
C芙のIさんからはそうh苧うけてるけど
みんなJavaできないらしいですよ
B芙	

プロダクト?オ`ナ`
えっ
ちょっと_Jしてみますか
☆ 亟寔の繁麗はイメ`ジです。
畠TでJavaコ`ディングシs	

iみ栽わせ氏をg仏
輝隼、ボロが竃る
ちょっとC芙Iと
してくる´
☆ 亟寔の繁麗はイメ`ジです。
A芙のプロジェクト?マネ`ジャ`と獗
スケジュ`ルについて、_Jしたいことが´
どうしたの
^肇のUYからみて、スケジュ`ルに	

かなりo尖がありそうです
´わかった、_Jしてみる
功だけでも_Jしてもらえませんか
A芙	

プロジェクト?マネ`ジャ`
☆ 亟寔の繁麗はイメ`ジです。
2扮寂朔
なんの功もなかった
☆ 亟寔の繁麗はイメ`ジです。
そして
プロジェクトは會Pで壼くも
o彜Bに
これで肝の恬蕕	

輿瓦屁った
☆ 亟寔の繁麗はイメ`ジです。
恬蕋械砂眈貨を戻宛する
ひとしきり}慌嗤した	

ところで
書瘁の圭について	

篇しよう
A芙	

プロジェクト?マネ`ジャ`
☆ 亟寔の繁麗はイメ`ジです。
棋ってました
書指の勣箔に栽わせて	

戻宛を喘吭しました
☆ は肝嫗でh苧します
☆ 亟寔の繁麗はイメ`ジです。
その潤惚
それをベ`スにMめよう
☆ 亟寔の繁麗はイメ`ジです。
そして、悶崙も篁
プロジェクト悶崙
プロジェクト?マネ`ジャ`
プロダクト?オ`ナ`
_kチ`ム?リ`ダ`
_kチ`ム?メンバ`
A芙
B芙
C芙
プロジェクト悶崙
プロジェクト?マネ`ジャ`
プロダクト?オ`ナ`
_kチ`ム?リ`ダ`
_kチ`ム?メンバ`
A芙
B芙
C芙
●イマココ
ア`キテクト
その扮、並周が
メンバ`を火して	

まさかの	

竃芙詳倦
C芙	

チ`ム?リ`ダ`
☆ 亟寔の繁麗はイメ`ジです。
しかし
これはチャンス
よろしければ	

いいリ`ダ`	

B初しますよ
☆ 亟寔の繁麗はイメ`ジです。
徭芙メンバ`の歌秘に撹孔
☆ 亟寔の繁麗はイメ`ジです。
プロジェクト悶崙
●イマココ
プロジェクト?マネ`ジャ`
プロダクト?オ`ナ`
_kチ`ム?リ`ダ`
_kチ`ム?メンバ`
A芙
B芙
C芙
ア`キテクト
New! ★
しかし、また並周が
_kメンバ`も	

畠T碍曜させます
☆ 亟寔の繁麗はイメ`ジです。
その潤惚
プロジェクト悶崙
●イマココ
プロジェクト?マネ`ジャ`
プロダクト?オ`ナ`
_kチ`ム?リ`ダ`
A芙
B芙
_kチ`ム?メンバ`C芙
ア`キテクト
New! ★
プロジェクト悶崙
●イマココ
プロジェクト?マネ`ジャ`
プロダクト?オ`ナ`
_kチ`ム?リ`ダ`
A芙
B芙
ア`キテクト
New! ★
´´
ひっくり卦しすぎた
☆ 亟寔の繁麗はイメ`ジです。
3. 玉{豚で_kするために
海い念尅り払撰しました
ここからは	

わりとマジメなです
コントロ`ル悗狼辰泙靴燭、
まだ、音芦勣殆が表eみです
F彜の麼なn}
1. _k?\喘コストをpらすための篇	

2. _kメンバ`の{_?縮圄	

3. 3埖までにデモができるようにする	

4. 玉{豚だが瞳|は鯛としたくない
音芦を盾するために	

リスクを函る
仁籾1鎖k?塰喘コストを受らす
圭貨1PaaS / IaaSを旋喘する
兜豚粁Aの襪箸勣箔とか
? サ`バ`のホスティングサ`ビスを旋喘する	

? 塚嬾墾來吉を深]してクラスタ撹にする	

? サ`バ`の棒試O吉が佩える
☆ ただし、インフラエンジニアはいません。
サ`バ`撹のイメ`ジ
DBサ`バ`APサ`バ`ロ`ドバランサ`
棒試O
扮寂も嚠麻も涙いんだよ
ぜったい涙尖
なので
Google App Engineを聞喘する
Google App Engineの蒙
? 拱屬縫好羽`ルアウトする	

? 徭咾廃}方デ`タベ`ス?サ`バ`に隠贋	

? 揖じh廠がすぐに、いくつでも恬れる	

? 聞いやすい砿尖コンソ`ルがある
なにより、徭蛍たちが誼吭
インフラのことは	

採も深えなくていい
が、g廾できない字嬬も
それらは粥安皆を聞喘
AWSを聞喘してg廾したC嬬
? 殤リから仇寳秤鵑鯤榻鼎垢襪燭瓩?
FTPサ`バ`C嬬	

? 亊。キャリアメ`ルへの匯電簧
PaaS / IaaS を聞喘したY惚
? インフラのO?Bコストがほぼ0に	

? 児云議に\喘O鵑?
EC2インスタンス1つだけに
仁籾2鎖kメンバ`の距器
いろいろあってえた3兆蛍	

メンバ`を鹿める駅勣があります
圭?に勅鹿をしたY惚	

Java室g宀2兆駻辰任ました
メンバ`縮圄のn}
? フレ`ムワ`クと?
Google App Engine デ`タベ`スの誼	

? HTML / JavaScript吉のスキル音怎
圭貨1今疫楴筌撻▲廛蹈哀薀潺鵐
なぜ、1L寂なのか
プロジェクト?マネ`ジャ`との氏
ペアプロでやってみようと房うのですが´
恬I紳覆磯蛍になりそうで伽いな。
豚gも玉いし、リスクとれないよ
では、縮圄のために匯Lgだけ
やらせてください
A芙	

プロジェクト?マネ`ジャ`
☆ 亟寔の繁麗はイメ`ジです。
縮圄やレビュ`のコストとトントン
なのかもしれないけど´
1巓gペアプログラミング
? 歌秘瘁1巓gだけペアプロする	

? 縮える箸蓮▲挑`ル、フレ`ムワ`クの聞い圭や?
なぜこのように恬るのかなどの嘘尚も?
h苧しながらコ`ディングする	

? その繁のクセや蒙罿鰆る	

? 1巓gで頼阻できるスト`リ`C嬬☆をxkする
やってみた湖
チ`ムに壼くZ半むことができた
ドキュメントをiまされるより尖盾が壼くて侮い
コ`ディングの圭とかル`ルが慌嗤できた
仟メンバ`のスキルレベルが蛍かった
1C嬬を宥して恬撹の^殻がえたので、音芦がpった
仟メンバ` 屡贋メンバ`
なかなか挫得
ペアプログラミングが	

Jめられない栽に森議
圭貨2祭匍袈譴力浙
仟メンバ`は	

HTML / JavaScript スキルが涙い
茶してもらうrgもない	

ペアプロもできない
ぶっちゃけ
JavaScriptを謹繁方で	

いじりたくない
なので
Javaでビジネスロジックだけ	

恬ってもらうことに
UIとビジネスロジックの蛍x
UI : HTML / JavaScript Logic: Java
JSON-RPC
ビジネスロジックの柵竃	

●	

メソッドを柵ぶだけ
ビジネスロジックの戻工	

●	

メソッドを恬るだけ
EY栽にすることで	

恬Iをシンプルに
ログイン秤麭塒發	

ステ`トレスな彜Bを隔たない	

C嬬として戻工する。
POINT
n}3今郭造泙任	

デモができるようにする
プロダクト?オ`ナ`の勣箔
3埖にユ`ザ`が	

gHに荷恬するデモを佩う
プロダクト?オ`ナ`
リスケは音辛
デモで聞喘するC嬬に	

バグがないこと
☆ 亟寔の繁麗はイメ`ジです。
gHのリリ`ス嚠協は5埖なので	

3埖は_kの嶄Pとなる
ウォ`タ`フォ`ル侏だと	

ほぼ_gにできない
プロジェクト?マネ`ジャ`が	

念に冱ってたこと
砿尖もアジャイルとか	

やってみたいんだけど、	

UYがないから深え嶄だね
プロジェクト?マネ`ジャ`
☆ 亟寔の繁麗はイメ`ジです。
アジャイル蝕kで佩こう
Scrum XP
´´
UY宀が匯繁もいない
´´払移しそう。
なので、
プラクティスを匯何だけ癖喘
_kイテレ`ション	

┌円Lg゛2Lgの豚g
??
??
??
??
??
??PG/
??
?? ??
??
??
m喘プラクティス
No
1 "
2
3
4 JUnit
5 DONE
6 "
7
これだけ
寄俳なのは詞岱しないこと
? 書、採をすべきか苧_にする	

? 書、竃栖る恬I楚を苧_にする	

? 書、どこまで竃栖ているか苧_にする	

? 書、Iすべき}があるか苧_にする
n}4唆娘{豚だが	

瞳|は鯛としたくない
瞳|を隠つために
? テストの徭啝する	

? メンテナンスできるコ`ドをく
圭貨1: Spockの秘
JUnit くのスゴくダルい
ここがイヤだよJUnit
? gコ`ド參貧に、iみやすいコ`ドを?
くのが寄筺メンテしづらい。	

? パタ`ンテストやデ`タ箋箸?
蹄ったテストをくのが寄筺	

? 歓に芝峰楚が謹すぎる。
嶄PダレてくるとJUnitを	

かない?返iきする繁がA竃
そこで
皆沿看界一を擬秘
Spockとは
? Java?Groovyアプリケ`ション鬚韻?
テスト?碧フレ`ムワ`ク	

? 胆しく燕F薦の互い碧峰冱Z	

? JUnitとして嘛する。?
屡贋のJUnitのC嬬は畠て聞える。
Spockによるテストコ`ド
class Math extends Specification {
def ^2つの、ら、寄きい、鯣ゝ辰任ること" {
expect:
Math.max(a, b) == c
!
where:
a | b | c
1 | 3 | 3
0 | 0 | 0
7 | 4 | 4
}
}
訳周ミス	

cは7が屎盾
Spockによるエラ`宥岑
2つの、ら、寄きい、鯣ゝ辰任ること FAILED
!
Condition not satisfied:
!
Math.max(a, b) == c
| | | |
7 4 | 4
false
Groovyの誼にvして
? Javaのコ`ドがほぼそのまま咾ため、?
とりあえず、すぐ聞うことができた	

? なれてくると、Groovyらしいコ`ドが?
けるようになり、コ`ド楚が富なく?
やすいテストがけるようになった
云輝にすばらしいので	

ぜひg樹してみてください
圭貨2: リ`ダブルコ`ドi氏
しばらく_kしていて	

kした}泣
コ`ドレビュ`の	

撹惚が竃ない
屎しく咾けど、iみづらい、	

笋編Oのコ`ドがえていく
このままだと	

メンテできなくなってしまう
なので
エフスタ in Aizu 仝やっててよかったこの碧並々と冱えるようにやってきたこと
i氏の圭
? 鞍奸協r瘁に1嫗ずつ匯rg殻業	

? 隔ち指りで毅輝宀をQめて、盾hしてもらう	

? iんだ嫗について、ディスカッションする
i氏の森
? 光メンバ`が徭蛍でiみやすいコ`ドを?
深えるようになった	

? レビュ`の峺姜の吭蹐筝が?
擦錣蠅笋垢なった	

? 僥楼吭圀の鯢
4. まとめ
その瘁もいろいろな}が	

k伏しましたが
火Iやトラブルもなく	

o並、5埖挑にリリ`ス	

できそうです。
いろいろご府初しましたが
やっててよかった	

と冱うためには
持自議に強くこと
叨護に舷られる駅勣は涙い
eO議に咾と	

販ばかりえるのでは
ダメだとわかってて	

慧崔するほうがo販
でも、がんばったって	

o創は笋錣蕕覆い
碧並の鶻蠅	

お署だけじゃない
それは
佚m
肝の碧並
い碧並は、佚mを|にして
お署を処りているようなもの
でも、払移したらどうするの
払,靴燭辰	

100%ダメになるUじゃない
gHのところ	

100%の撹孔も払,發覆
寄並なのは銭移しないこと
プロジェクトの個鋲に	

寄Bを尅るう駅勣はない
恷兜から頼莎を朕峺すと	

寄丘、払,垢
まずは、弌さな佚mを	

誼るところから兵めよう
ご賠、ありがとうございました
亟寔殆可について
このY創は、ぱくたそ(http://pakutaso.comの亟寔殆可を匯何旋
喘しています。この亟寔を@Aして旋喘する栽は、ぱくたそ
巷塀サイトからご徭附でダウンロ`ドしていただくか、ぱくた
そのご旋喘シs(http://pakutaso.comに揖吭していただく駅勣が
あります。揖吭しない栽は亟寔のご旋喘はできませんのでご
廣吭ください。

More Related Content

エフスタ in Aizu 仝やっててよかったこの碧並々と冱えるようにやってきたこと