Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LastaFlute First Impact

jflute
September 26, 2015

LastaFlute First Impact

LastaFlute in Seasar Conference

jflute

September 26, 2015
Tweet

More Decks by jflute

Other Decks in Technology

Transcript

  1. SSeeaassaarrで育ったDDBBFFlluuttee,,

    スタートアップ現場でのJJaavvaa88とSSeeaassaarrを思う
    ~~LastaFluteの誕生~~
    久保雅彦(jjfflluuttee)

    View Slide

  2. もくじ
    LL.. SSeeaassaarrとDDBBFFlluutteeの関係


    AA.. リーンスタートアップ・

    インクリメンタル開発の特徴


    SS.. 事業会社でのSSeeaassaarrの価値


    TT.. JJaavvaa88でSSeeaassaarrを動かすには?


    AA.. LLaassttaaFFlluutteeの誕生
    2

    View Slide

  3. SSeeaassaarrと


    DDBBFFlluutteeの


    関係
    LLAASSTTAA SSeeaassaarrとDDBBFFlluutteeの関係

    View Slide

  4. DDBBFFlluutteeって、


    SSeeaassaarrプロジェクトだっけ?
    4
    LLAASSTTAA SSeeaassaarrとDDBBFFlluutteeの関係

    View Slide

  5. 独立しました
    11..00..xx:: JJaavvaa66,,77

    SSeeaassaarrプロジェクト

     ⾣ oorrgg..sseeaassaarr..ddbbfflluuttee

    11..11..xx:: JJaavvaa88

    DDBBFFlluutteeプロジェクト

     ⾣ oorrgg..ddbbfflluuttee
    5
    LLAASSTTAA SSeeaassaarrとDDBBFFlluutteeの関係

    View Slide

  6. DDBBFFlluutteeって、


    SSeeaassaarrでしか


    動かないんだっけ?
    6
    LLAASSTTAA SSeeaassaarrとDDBBFFlluutteeの関係

    View Slide

  7. 色々動く
    SSeeaassaarrでも動くけど、

    SSpprriinngg FFrraammeewwoorrkkや

    GGooooggllee GGuuiicceeなどでも動く


    特にSSpprriinngg++DDBBFFlluutteeの現場が増えている

    そもそも..NNEETT版もあるし、

    最近SSccaallaa((パイロット版))でも動く
    7
    LLAASSTTAA SSeeaassaarrとDDBBFFlluutteeの関係

    View Slide

  8. 最近は…
    最近は、スタートアップ現場での活躍が

    増えている。

    要求の変化や、仮説検証の過程で

    発生するDDBB変更、これに耐えられる

    フレームワークとして、さらなる調整を

    続けている。
    8
    LLAASSTTAA SSeeaassaarrとDDBBFFlluutteeの関係

    View Slide

  9. リーンスタートアップ・

    インクリメンタル開発の特徴
    9
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  10. !!注意!!


     ※あくまでjjfflluutteeの経験や現場への


    ヒアリングを、


     限りある時間で分析したものです。


    10
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  11. 事前条件たらたらと......
    所詮はケースバイケースで、

    SSIIといってもスタートアップっぽい開発
    もあるし、事業会社でお堅い感じにやる
    こともありえるので…


    「どちらかといえば」というニュアンス。
    厳密には......の話をしたら二時間くらいかか
    るので、((すっごい))シンプルに表現してい
    ます。
    11
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  12. スタートアップの


    ライフサイクル
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  13. スタートアップの


    ライフサイクル
    ※ファーストリリースは、導入�期の早い段階


    ※メンテ期まで数年((22--55年,,nn年))とかかる


    ※生き残りなので途中ストップの可能性


    ※衰退期前に次のビジネスをスタートアップ
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  14. 11..ビジネス
    14
    SSII ((受注))
    頼まれたものを作ることで

    お金が入�る


    バグは損失に直結 ((瑕疵担保、信頼))


    バグの致命度に関わらず損失になりやすい
    スタート
    アップ
    自分たちのビジネスが成功するこ
    とでお金が入�る


    バグよりもスピードが大切

    ((生き残り:: マーケットフィット))


    致命的でなければ直さない選択肢もあり


    ((バグのビジネスインパクトの見極めが大切))
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  15. 22..リリースタイミング
    15
    SSII ((受注))
    ファーストリリースでわりとた
    くさん作る


    それでおしまいのこともよくある


    二次三次開発もそれなりのスパンがある
    スタート
    アップ
    ファーストリリースはわりとシ
    ンプルで期間短い


    その後、毎週リリース ((最初は毎日!!??))
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  16. 33..バグの直しやすさ
    16
    SSII ((受注))
    リリース後は直しづらい

    ((面倒な手続き、客先作業など)


    ちょっとしたバグでも手間がかかる


    バグ修正がお金にならないことも ((瑕疵担保))

    ==>> なので、最初からよい品質が求められる
    スタート
    アップ
    リリース後でも直しやすい

    ☆これ大きい


    自分たちのシステム、自分たちの都合で再起動


    そもそも、最初は使ってる人がまだ少なかったり

    ==>> バグ0よりも、速くビジネスを回したい

    ((超致命でなきゃ、今は直さないという選択肢も))
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  17. 44..作る画面の必要性
    17
    SSII ((受注))
    作る画面は業務的に必要なもの
    である ((ことが前提))


    時々そうでもなくて泣くときあるけど…


    なので、コード品質に時間をかけてもOOKK 

    ((時間ないけど......))
    スタート
    アップ
    その画面が必要がかどうか、ま
    だわからない


    運用してみてダメだったら捨てることも


    あとでガラリと変えるのは日常茶飯事


    なので、コード品質に時間をかけづらい
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  18. 55..画面作りの進み方
    18
    SSII ((受注))
    その画面を作り切ってから、次の
    画面へ


    必要だとわかっている機能は一気に作る


    細切れに作業するとテストし直しコストや
    抜けのリスクができる
    スタート
    アップ
    その画面の一部機能だけ作って、
    すぐ次の画面へ


    ある意味、一部機能だらけの画面たちで

    リリース((ジャブ、ローキックのようなもの))


    次の ((oorr もっと先の)) リリースでその続き
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  19. 66..DDBB変更しまくる
    19
    SSII ((受注))
    運用後のDDBB変更はおおごと


    できるだけ「やらない」って方向�に…
    スタート
    アップ
    運用してからのDDBB変更は   
    息を吸うかのごとく


    毎週のようにDDBB変更 ((DDBB変更したい))


    データもプログラムもどんどん修正
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  20. 77..ドキュメント
    20
    SSII ((受注))
    ドキュメント作るの基本


    メンテナンスする会社が別かもしれない
    ((お客さんとか))


    ドキュメント自体がお金になることもあ
    る ((納品物に含まれてる))
    スタート
    アップ
    まずドキュメントは作らない


    ドキュメント作ってもお金にならない


    ドキュメントが変化についていけないの
    で作れない((いつかは作らないといけな
    いけど......のジレンマ))
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  21. 88..人員・規模
    21
    SSII ((受注))
    最初から人員の確保

    ((しようとする))


    ある程度の規模感はあらかじめわかって
    いる ((はずだが…))


    人員確保できなかったら、その仕事断る
    ことも ((れないことも......))
    スタート
    アップ
    最初めちゃ少なく、五月雨増加


    サービスの成長速度にプログラマーの数が追
    いついかない


    入�ってきても「いい感じで頼む!」


    ゆえに、コードの統一性を保つのは難しい

    少人数のときと大人数のときの激ギャップ
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  22. 99..コーディングルール
    22
    SSII ((受注))
    ルールを守ることが大切


    メンテナンス別会社になるかもしれないし


    あとでリファクタリングとかしづらいし


    規模がある程度わかっているので、ルール
    も作りやすい
    スタート
    アップ
    ルールは流行らない


    最初は人が少ないのでそもそもルールがない


    そもそも作るものや体制が変動的なのでルー
    ル決めが難しい★これでかい


    ルールを守るという精神状態でもない

    ((動くことが最優先))
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  23. 1100..役割分担
    23
    SSII ((受注))
    要件定義、DDBB設計、仕様策定、プ
    ログラミングと人が分かれやすい


    はずだが…いろいろあるけど


    実装時点で仕様も決まっていることが多い
    ((はずだが......))
    スタート
    アップ
    ひとりの人が一通りやる、少なく
    とも一つに専念はほぼない


    そもそも人が少ない ((エンジニアばかりじゃない))


    ある意味「仕様が決まってない中での実装」に


    実装しながら決める((仕様という言葉がない))
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  24. その他、スタートアップあるある
    24
    作業時間


    作る量のわりには期限が短い((生き残れる
    かどうかが見積もり基準))


    状況によっては、作業時間は深夜//土日
    ((別の仕事しながらスタートアップも))
    プログラ
    ミング
    スキル
    役割分担できない分、ひとりに求められ
    るスキルが多岐にわたる


    技術だけに専念できない

    ((プログラマーもビジネスに参加))


    不安定な仕事なので、((優秀で成長著しい
    とはいえ…))発展途上の若者が多い


    精神状態
    とにかく速く作らなきゃ


    めちゃくちゃ眠い


    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  25. アーキテクチャは変わる
    くどいようですが「所詮はケースバイケース」です
    が、大切なポイントは…

    作るものが違えば

    「大切にすることも変わってくる」


    それってつまり、

    「アーキテクチャも変わってくる」
    25
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  26. ずばり!スタートアップは…
    TTrriiaall && EErrrroorr の繰り返し


    既存コードを読む時間が長い!

    要求の変化が激しい!


    画面は変わるし、DDBB変更しまくり

    みんなであれこれ、

    サバイバルコードだらけ


    人は次々と変わるし、ルール作りは難しいし
    26
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  27. だから欲しいもの
    身軽な開発環境 ((ホットデプロイ,, 起動の速さ))


    デバッグのための TTrriiaall && EErrrroorr


    既存コード解析のための TTrriiaall && EErrrroorr ☆意外に重要


    再起動が必要にしても、起動が速ければいい


    再起動で何十秒も待つとかそういう精神状態じゃない


    ((深夜土日にやっているときは特に))

    安全な仕組み


    タイプセーフ、DDBB変更への耐性


    現象を追跡できるしっかりとしたログ

    規約ベース


    途中参加の人を入�れてルール無しでもわりと統一感が欲しい


    実装する人がガラリと入�れ替わってもわりと統一感が欲しい


    その後の大規模化を見越して、そういった仕組み最初から欲しい
    27
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  28. あるよ!
    SSeeaassaarrが結構持ってる
    28
    LLAASSTTAA リーンスタートアップ・インクリメンタル開発の特徴

    View Slide

  29. 事業会社での


    SSeeaassaarrの価値
    29
    LLAASSTTAA 事業会社でのSSeeaassaarrの価値


    View Slide

  30. マッチするじゃん!
    スタートアップをやる事業会社で欲しいものが、
    SSeeaassaarrの特徴とマッチする。


    ホットデプロイ


    DDIIレベルでリロードしてくれる


    「使い方さえ間違えなければ」かなり効く

    起動の速さ


    起動が速いというより、開発時はホットだからLLaazzyyLLooaadd


    スマートデプロイのコンポーネント増えても、そこまで遅
    くならない ((220000テーブル超えのアプリでも1100秒切り))

    SSAASSttrruuttssが規約ベース


    NNoo RRuullee でも、AAccttiioonnクラスは綺麗にそろう
    30
    LLAASSTTAA 事業会社でのSSeeaassaarrの価値


    View Slide

  31. そしてヒアリング!
    SSeeaassaarrを使ったスタートアップの開発者のみなさ
    んに聞いてみると… ((厳密には、SSAAFFlluuttee ++ DDBBFFlluuttee))


    何気に、SSeeaassaarrに対しての不満の声はそんなに聞
    こえない。もちろん細かいところはあるけれど、

    他のフレームワークにしたい、とまではならない

    ((ただ、古いからという機能以外の面で不安あり))

    ※SSIIだと真逆になる印象。

    ((さっきのSSeeaassaarrの特徴が刺さらない))

    また事業会社でも超大規模フェーズなら話は別
    31
    LLAASSTTAA 事業会社でのSSeeaassaarrの価値


    View Slide

  32. だかしかしおかし
    32
    LLAASSTTAA 事業会社でのSSeeaassaarrの価値


    View Slide

  33. JJaavvaa88と


    SSeeaassaarr
    33
    LLAASSTTAA JJaavvaa88とSSeeaassaarr

    View Slide

  34. 時代はJJaavvaa88
    JJaavvaa88で使えなかったら

    意味がない


    というか、JJaavvaa99も来年!!??
    34
    LLAASSTTAA JJaavvaa88とSSeeaassaarr

    View Slide

  35. JJaavvaa88とSSeeaassaarr
    JJaavvaa88でもSSeeaassaarr使えます

    JJaavvaassssiissttを最新版にすればOOKK

    実際に、

     SSeeaassaarr ++ DDBBFFlluuttee の JJaavvaa88 版

    のサービスを幾つか知ってます。

    ((厳密には、SSAAFFlluuttee++DDBBFFlluuttee ですが......))

    安定して動いています。
    35
    LLAASSTTAA JJaavvaa88とSSeeaassaarr

    View Slide

  36. だかしかしおかし
    36
    LLAASSTTAA JJaavvaa88とSSeeaassaarr

    View Slide

  37. LLaassttaaFFlluutteeの誕生
    37
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  38. 古いというイメージ
    やっぱり「古い」が払拭できない

    いくら機能的にフィットする面がある
    と言っても、スタートアップの経験者
    は、JJaavvaaの世界にはあまり多くない。

    ((なので、先ほどのマッチ感もあまり理
    解されない。経験者だけがわかる))

    スタートアップで重要な「人集め」に
    支障が出てくる。
    38
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  39. 確かに辛いところも
    確かに「改�善されていかない」というの
    は、ハマりポイントも改�善されていかな
    いということなので、つらいことも。


    ((ああ、ここ直ってくれないかなぁ......))

    ((若者たちが、毎年同じことでハマる......))
    39
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  40. もやもや
    40
    SSAAFFlluuttee ++ DDBBFFlluuttee を前面に売り出した
    いが、なんかそういうこともあって、も
    やもやしてた。
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  41. そこでFFeessss登場!
    41
    Fess
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  42. FFeessssとは?
    オープンソース全文検索サーバー

    FFeessss ((フェス))

    hhttttpp::////ffeessss..ccooddeelliibbss..oorrgg//jjaa//


    ※FFeessss99までは、

    「SSeeaassaarr ++ SSAASSttrruuttss ++ DDBBFFlluuttee」

    で作られている
    42
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  43. ssuuggaayyaaさんと立ち話
    FFeessssの作者、ssuuggaayyaaさん

    「SSttrruuttss11依存つらいし、今後の海外展開のた
    めにも、FFeessss を SSeeaassaarr から SSpprriinngg に移行し
    ようとしてるけど、なかなか道のりが険しい......


    jjfflluuttee「うーむー、まあ仕方ないですよねぇ......

    そういえば、SSAAFFlluutteeなんてのありますよぅ笑

    SSeeaassaarrもJJaavvaa88でフォークしちゃったりしてー」
    ((完全にジョーク!))
    43
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  44. ぼくはDDBB屋さんです、はい
    jjfflluutteeは、いつも通り、

    リレーショナルデータベースのお風呂に
    つかりながら......

    「いやー、やっぱり画面はなくていいよー
    会員登録とか、会員にiinnsseerrtt文書かせりゃ
    いいじゃん!DDBBだけあればしあわせだ
    よー、あーいいデータ((湯))だなー」



    ※ほんの少しだけ、デフォルメしております
    44
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  45. メールチェック
    ((ほかほか......))

    「ふー、RRDDBBのハーブティーでも

    飲みながら、メール見るかー」

    ※ほんのわずかだけ、デフォルメしております
    45
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  46. いつ頃って何語?
    ssuuggaayyaaさん



    「SSeeaassaarr//SSAASSttrruuttssを

    JJaavvaa88フォークしたSSAAFFlluuttee、

    いつ頃 作ります?



    FFeessss そっちにしようかと」
    46
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  47. そのあのことば
    あっ、いや…



    あの、そのあの。。。
    47
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  48. 言っちゃった
    jjfflluuttee



    「い、いまから作りますよー」
    48
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  49. 井戸端会議
    jjfflluuttee「こんなことやることになってさー、ハッハッハ」

    友人AA ((@@pp11uuss22eerr00:: aawwaaaawwaa))

    「ああ、じゃあ来月から始まるサービス開発で

    使いますよー。いつ頃初版でます?」


    友人BB ((@@CCrreeaattiivvee__GGeeaarr:: mmiiyyaassaammaa))

    「いま運用してるサービス、

    それに移行しますね。いつ頃使えます?」


    jjfflluuttee「ふげー(><」
    49
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  50. 深夜に盛り上がるSSllaacckk…


    土日が来たぞ、がっつり実装だ!
    50
    リーン・スタートアップだ!
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  51. じゃーん
    LLaassttaaFFlluuttee || GGiitthhuubb

    hhttttppss::////ggiitthhuubb..ccoomm//llaassttaafflluuttee//llaassttaafflluuttee

    LLaassttaaFFlluuttee日本語ページ

    ((英語のページも少しずつ))

    hhttttpp::////ddbbfflluuttee..sseeaassaarr..oorrgg//jjaa//llaassttaafflluuttee//
    51
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  52. 三つの特徴、その一
    リズム&スピードプログラミング

    スタートアップは、T
    rial & Error の繰り返しのため、

    身軽な開発環境が求められる。

    ホットデプロイ:再起動せずに、AAccttiioonnクラスを


      修正してすぐに確認できる


    起動が速い:再起動が必要になっても、


    ハイスピードの再起動



    思考のリズムを止めない!は、スピード になる
    52
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  53. 三つの特徴、その二
    53
    変化できるプログラミング


    スタートアップは、要求の変化 の繰り返しのため、


    安全な仕組みが求められる。

    徹底したタイプセーフ:タイプセーフなAAccttiioonn実装、


    そして、CCoonnddiittiioonnBBeeaann


    攻めのDDBB変更:DDBBFFlluutteeフルパワー、


    そして、 FFrreeeeGGeenn


    化け物のようなログ:困ったときに


    見たくなるようなログ


    † 


    安全!は、スピード になる
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  54. 三つの特徴、その三
    54
    自然とそうなるプログラミング


    スタートアップは、人的リソースも変化 の繰り返しの
    ため、自然の力が求められる。


    規約ベースAAccttiioonn:UURRLL == クラス名 ++ メソッド名


    UURRLLからクラスが探しやすい


    少ない選択肢:不要な選択肢を省き、


    できる限り実装のブレを少なく


    デフォルトセット:一通り揃っている開発環境、


    コンフィグの仕組みからメールまで


    † 


    迷わない!は、スピード になる
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  55. LLaassttaaFFlluutteeのキャスト
    55
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  56. JJaavvaaならではの
    コンパイルセーフを最大限活かした、


    リーン・スタートアップに

    チャレンジしてみたい
    56
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  57. SSeeaassaarr を JJaavvaa88 でフォーク
    57
    徹底した


    スリム化
    使わない機能削減、依存ライブラリ削減

    ((依存jjaarrを少なくシンプルに))
    デバック


    しやすいように
    コンテナ内で発生したエラーメッセージを
    DDBBFFlluuttee風に ((いわゆるド派手エラー))
    OOGGNNLL改�めJJSS OOGGNNLLの代わりにJJaavvaa同梱のNNaasshhoorrnnの
    JJaavvaaSSccrriippttエンジンを利用
    ホットデプロイ
    はそのまま
    欠かせないホットデプロイは変わらず


    利用できるように
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  58. SSAASSttrruuttss を JJaavvaa88 でフォーク
    58
    SSttrruuttss11外し 一番のネックだった SSttrruuttss11 への


    依存のない SSAASSttrruuttss を
    ccoommmmoonnssへの


    依存最小限
    古いccoommmmoonnssへの依存を外し、


    アプリで最新版使えるように
    内部フォワード


    しない フォワードせずとも綺麗なUURRLLを実現
    設定ファイル


    削減
    定型化された設定を組み込んで、


    アプリで管理する設定をシンプルに
    シンプルな


    コード
    RReeqquueessttからAAccttiioonnが呼ばれるまでの


    道のりできるだけシンプルに
    HHiibbeerrnnaattee VVaalliiddaattoorr バリデーションに


    HHiibbeerrnnaattee VVaalliiddaattoorr を使う
    規約ベースは


    そのまま


    欠かせない規約ベースUURRLLマッピングは


    変わらず利用できるように


    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  59. LLaassttaaFFlluutteeのコード
    SSeeaaLLiissttAAccttiioonn :: //sseeaa//lliisstt//33??iikkss==bboonnvvoo












    59
    @@EExxeeccuuttee

    ppuubblliicc HHttmmllRReessppoonnssee iinnddeexx((iinntt ppaaggeeNNuummbbeerr,,


            SSeeaaSSeeaarrcchhFFoorrmm ffoorrmm)) {{


    vvaalliiddaattee((ffoorrmm,, mmeessssaaggeess -->> {{}},, (()) -->> {{

    rreettuurrnn aassHHttmmll((ppaatthh__SSeeaa__SSeeaaLLiissttJJsspp));;

    }}));;

    PPaaggiinnggRReessuullttBBeeaann<> sseeaaLLiisstt == sseeaaBBhhvv..sseelleeccttPPaaggee((ccbb -->> ......));;

    LLiisstt<> bbeeaannss == sseeaaLLiisstt..mmaappppiinnggLLiisstt((sseeaa -->> ......));;

    rreettuurrnn aassHHttmmll((ppaatthh__SSeeaa__SSeeaaLLiissttJJsspp))..rreennddeerrWWiitthh((ddaattaa -->> {{

    ddaattaa..rreeggiisstteerr((""bbeeaannss"",, bbeeaannss));;

    }}));;

    }}
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  60. LLaassttaaFFlluutteeのUURRLLマッピング
    AAccttiioonnクラス名 ++ EExxeeccuutteeメソッド名
    60
    SSeeaaLLaannddAAccttiioonn##iinnddeexx(()) ==>> //sseeaa//llaanndd//

    IIkkssAAccttiioonn##bboonnvvoo(()) ==>> //iikkss//bboonnvvoo//
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  61. UURRLLパラメータ、


    FFoorrmmパラメータの定義
    61
    //// //sseeaa//llaanndd// ((GGEETT oorr PPOOSSTT))


    SSeeaaLLaannddAAccttiioonn##iinnddeexx((BBoonnvvooFFoorrmm ffoorrmm))


    //// //sseeaa//llaanndd//33 ((GGEETT oorr PPOOSSTT))


    SSeeaaLLaannddAAccttiioonn##iinnddeexx((iinntt iikkss,, BBoonnvvooFFoorrmm ffoorrmm))
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  62. 戻りレスポンス
    HHTTMMLLテンプレートのパスは自動生成



    ランドに移動 ((リダイレクト先は ..ccllaassssで指定))


    JJSSOONNで戻す ((JJSSOONN AAPPII方式:: bbeeaannを渡せばJJSSOONNに))



    62
    rreettuurrnn aassHHttmmll((ppaatthh__SSeeaa__SSeeaaLLiissttJJsspp))..rreennddeerrWWiitthh((ddaattaa -->> {{

    ddaattaa..rreeggiisstteerr((""bbeeaannss"",, bbeeaannss));;

    }}));;
    rreettuurrnn rreeddiirreeccttBByyIIdd((LLaannddAAccttiioonn..ccllaassss,, 33));; //// //llaanndd//33
    rreettuurrnn aassJJssoonn((bbeeaann));;
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  63. AAccttiioonnのポイント
    徹底してタイプセーフに


    要は DDBBFFlluuttee っぽく


    SSAASSttrruuttssでよくハマってたとこ修正


    IInnddeexxだらけ問題を回避 ((クラス名検索をしやすいように))


    リダイレクト//フォワード先コードにすぐにJJuummpp!


    最小公倍数FFoorrmm//ppuubblliiccフィールドなし…などなど

    「こう書いても動く」を極力やらない


    不要な自由度は削除 ee..gg.. 引数の順序とか、戻り値の表現とか


    必要な自由度は担保 ee..gg.. vvaalliiddaattoorr ccaallllタイミング、エラー処理
    63
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  64. SSAAFFlluutteeの機能はある
    そもそも、SSAAFFlluutteeでがっつりリーン・スタート
    アップにフィットさせていた機能たち、それら
    はすべて、LLaassttaaFFlluutteeで継承、かつ、さら
    なる改�善


    気軽な前後処理の仕組み ((AAccttiioonnHHooookk))


    タイプセーフで継承できるPPrrooppeerrttiieess


    国際化対応 ((LLooccaalleeやTTiimmeezzoonnee))


    組み込みログイン処理

    …などなど


    そもそも SSAAFFlluuttee とは?

    hhttttpp::////ddbbfflluuttee..sseeaassaarr..oorrgg//jjaa//mmaannuuaall//ffuunnccttiioonn//hheellppeerr//ssaafflluuttee//
    64
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  65. そして、いちどフォークしてしまっ
    たら......いろいろと
    bbeeffoorree:: ((フラットなddiiccoonn起動ログ))
    65
    -- SS22CCoonnttaaiinneerrを作成します。ppaatthh==aapppp..ddiiccoonn


    -- SS22CCoonnttaaiinneerrを作成します。ppaatthh==ccoonnvveennttiioonn..ddiiccoonn


    -- SS22CCoonnttaaiinneerrを作成しました。ppaatthh==ccoonnvveennttiioonn..ddiiccoonn


    -- SS22CCoonnttaaiinneerrを作成します。ppaatthh==ssaafflluuttee..ddiiccoonn


    -- SS22CCoonnttaaiinneerrを作成します。ppaatthh==ssaafflluuttee__ccoorree..ddiiccoonn


    -- SS22CCoonnttaaiinneerrを作成します。ppaatthh==ssaafflluuttee__aassssiisstt..ddiiccoonn


    -- SS22CCoonnttaaiinneerrを作成しました。ppaatthh==ssaafflluuttee__aassssiisstt..ddiiccoonn


    -- SS22CCoonnttaaiinneerrを作成しました。ppaatthh==ssaafflluuttee__ccoorree..ddiiccoonn


    -- SS22CCoonnttaaiinneerrを作成します。ppaatthh==ssaafflluuttee__ddbb..ddiiccoonn


    -- SS22CCoonnttaaiinneerrを作成します。ppaatthh==ddbbfflluuttee..ddiiccoonn


    -- SS22CCoonnttaaiinneerrを作成します。ppaatthh==jj22eeee..ddiiccoonn


    -- ......
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  66. 止ーまらっなーい♪
    aafftteerr:: ((iinncclluuddeeの階層構造がわかるように))
    66
    -- ......RReeaaddiinngg aapppp..xxmmll


    -- ......RReeaaddiinngg ccoonnvveennttiioonn..xxmmll


    -- ......RReeaaddiinngg eemmbbeeddddeedd__ccoonnvveennttiioonn..xxmmll


    -- ......RReeaaddiinngg ddbbfflluuttee..xxmmll


    -- ......RReeaaddiinngg rrddbb..xxmmll


    -- ......RReeaaddiinngg jjttaa..xxmmll


    -- ......RReeaaddiinngg jjttaa++uusseerrTTrraannssaaccttiioonn..xxmmll


    -- ......RReeaaddiinngg jjttaa++ttrraannssaaccttiioonnMMaannaaggeerr..xxmmll


    -- ......RReeaaddiinngg jjddbbcc..xxmmll


    -- ......RReeaaddiinngg jjttaa..xxmmll ((rreeccyyccllee))


    -- ......RReeaaddiinngg llaassttaafflluuttee__aassssiisstt..xxmmll


    -- ......
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  67. まだやりたいことあり
    もっとタイプセーフに


    FFoorrmmやメソッド定義の自動生成など

    AAccttiioonnクラスから、

    ドキュメントを自動生成


    AAccttiioonnのUURRLL一覧


    JJSSOONN AAPPIIのインターフェース定義書

    ★フロント側とのやり取りで実は非常に重要

    サーバーサイドテンプレートに

    TThhyymmeelleeaaff


    ((とまあ発想だけはいくらでもある......))
    67
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  68. すでに今日でも実績あり その一
    アットパーティー

    || 宴会・パーティー予約サイト

             ((株式会社リブゲート))


    hhttttppss::////aattppaarrttyy..jjpp//

    LLaassttaaFFlluuttee ++ DDBBFFlluuttee ++ aanngguullaarrJJSS


    ※公開の許可を頂いています。
    68
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  69. すでに今日でも実績あり その二
    UU--NNEEXXTT<ユーネクスト>

    || 日本最大級のビデオ・オンデマンド

              ((株式会社UU--NNEEXXTT))

    hhttttpp::////pp..uunneexxtt..jjpp//


    基幹サービス ((220000テーブル超え)) にて
    SSAAFFlluuttee++DDBBFFlluuttee を採用


    新規プロジェクトで LLaassttaaFFlluuttee を採用

    ==>> すでに一つはローンチ済み、

    ==>> もう一つ ((330000テーブル近く)) は開発中


    ※公開の許可を頂いています。
    69
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  70. すでに今日でも実績あり その三
    CClloocckk IItt

    || タスク管理&タイムマネジメントサービス


    hhttttppss::////cclloocckk--iitt..ccoomm//


    SSAAFFlluutteeでスタートアップ、

    すでにLLaassttaaFFlluutteeに移行

    個人でのWWeebbサービスの作り方

    -- SSAAFFlluutteeでスタートダッシュを決める

    hhttttpp::////wwwwww..sslliiddeesshhaarree..nneett//TTaakkeesshhiiKKaattoo//wweebb--ssaafflluuttee

    ※公開の許可を頂いています。
    70
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  71. すでに今日でも実績あり その四
    FFeessss バージョン1100

    ((リリースまであともうちょい))


    hhttttppss::////ggiitthhuubb..ccoomm//ccooddeelliibbss//ffeessss

    FFeessss99 :: SSeeaassaarr ++ SSAASSttrruuttss ++ DDBBFFlluuttee


    FFeessss1100 :: LLaassttaa DDii ++ LLaassttaaFFlluuttee

        ++ EESSFFlluuttee ++ EEllaassttiiccsseeaarrcchh


    ※公開の許可を頂いています。
    71
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  72. 前身のSSAAFFlluutteeも実績いろいろ
    SSAAFFlluuttee は、LLaassttaaFFlluuttee の前身となった
    フレームワーク。コンセプトは同じ。


          ↓↓↓


    SSAAFFlluutteeの実績は、

    LLaassttaaのコンセプト実績

    とも言える。


    なので、すでに紹介した

    「SSAAFFlluuttee から LLaassttaa」の実績に加え......
    72
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  73. 前身のSSAAFFlluutteeも実績いろいろ
    ニクリーチ

    || お腹を空かせた学生のための、

    肉食就活サイト


             ((株式会社ビズリーチ))


    hhttttppss::////2299rreeaacchh..ccoomm//

    ※厳密には、SSAAFFlluutteeをベースにさらに

    カスタマイズ


    ※公開の許可を頂いています。
    73
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  74. 前身のSSAAFFlluutteeも実績いろいろ
    zzuukknnooww((ズノウ))

    || 友達とクイズで競える学習アプリ


             ((株式会社ビズリーチ))


    hhttttppss::////wwwwww..zzuukknnooww..nneett//


    RReeggiioonnUUpp 

    || SSeeaarrcchh SSiinnggaappoorree JJoobbss--HHoonngg KKoonngg jjoobbss


           ((株式会社ビズリーチ))


    hhttttppss::////wwwwww..rreeggiioonnuupp..ccoomm//


    ※どの現場からも非常に高い評判を頂いています


    ※公開の許可を頂いています。
    74
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  75. 前身のSSAAFFlluutteeも実績いろいろ
    LLUUXXAA RREESSEERRVVEE

    || 会員制レストラン予約サイト


             ((株式会社ルクサ))


    hhttttpp::////rreesseerrvvee..lluuxxaa..jjpp//

    ※公開の許可を頂いています。
    75
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  76. LLaassttaa DDii だけでも、すでに実績
    EEllaassttiiccsseeaarrcchh RRiivveerr WWeebb

    hhttttppss::////ggiitthhuubb..ccoomm//ccooddeelliibbss//eellaassttiiccsseeaarrcchh--rriivveerr--wweebb

    SS22RRoobboott

    hhttttppss::////ggiitthhuubb..ccoomm//ccooddeelliibbss//ss22rroobboott


    ※LLaassttaa DDii は、DDBBFFlluutteeにも依存していないので、

    単独で使うことができます。
    76
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  77. 余談ですが......
    EESSFFlluuttee ((ssuuggaayyaaさん作))


    EEllaassttiiccsseeaarrcchhのJJSSOONNのスキーマ構造から、

    DDBBFFlluuttee の CCoonnddiittiioonnBBeeaann に「うりふたつ」のクラスを
    自動生成する機能、新しい FFeessss1100 で利用されています

    パッと見、どう見ても CCoonnddiittiioonnBBeeaann なのに、

    検索してるのは EEllaassttiiccsseeaarrcchh。なんとも不思議
    77
    LLiisstt<> uurrllLLiisstt == ffaaiilluurreeUUrrllBBhhvv..sseelleeccttLLiisstt((ccbb -->> {{

    ccbb..qquueerryy(())..sseettCCoonnffiiggIIdd__EEqquuaall((ccoonnffiiggIIdd));;

    ccbb..qquueerryy(())..sseettEErrrroorrCCoouunntt__GGrreeaatteerrEEqquuaall((ccoouunntt));;

    }}));;
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  78. 余談ですが…22
    MMaaiillFFlluuttee

    hhttttppss::////ggiitthhuubb..ccoomm//ddbbfflluuttee--sseessssiioonn//mmaaiillfflluuttee

    メールテンプレートから対応クラスを自動生成して、
    タイプセーフにメール送信!


    スタートアップで作るシステムは、

    大抵メール機能が必須。

    なので、LLaassttaaFFlluutteeにデフォルト装備。


    すでに実運用でバンバンメール飛んでます。
    78
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  79. 余談ですが…33
    組み込みJJeettttyy,, 組み込みTToommccaattで運用。

    ee..gg.. jjaavvaa --jjaarr hhaannggaarr..wwaarr


    JJeettttyyBBoooott

    hhttttppss::////ggiitthhuubb..ccoomm//ddbbfflluuttee--sseessssiioonn//jjeettttyy--bboooott


    TToommccaattBBoooott

    hhttttppss::////ggiitthhuubb..ccoomm//ddbbfflluuttee--sseessssiioonn//ttoommccaatt--bboooott

    あまり使わない機能 ((jjaarrの中のアノテーションとか)) は、

    オプションにして、起動スピードを速めています。


    依存はしていませんが、LLaassttaaFFlluutteeの基本構成です。
    79
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  80. 続々と若者たちが…
    「((プライベートで))

    BBttooCCのサービスを作りたい!

    よし、LLaassttaa使おう」



    なーんてムードに。


    ((すでに、実装中の若者もいます))
    80
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  81. ならば、jjfflluutteeも
    DDBBだけじゃなく、

    WWeebb側でも、

      スタートアップを支援したい


    …RRDDBBのお風呂はどこいった!!??
    81
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  82. 82
    (#3
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  83. FFAAQQ11:: QQ
    SSpprriinngg FFrraammeewwoorrkk は


    ライバルですか?
    83
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  84. FFAAQQ11:: AA
    いいえ


    そもそも全然敵いませんし、

    SSpprriinnggが積極的に選択されないような場
    面での選択肢の一つになればいいなと思っ
    ています。


    それゆえに、リーン・スタートアップ

    などの、少人数から始める変化の激しい
    システム開発に特化しています。
    84
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  85. FFAAQQ11:: AA
    それどころか、LLaassttaaFFlluutteeは、

    SSpprriinngg FFrraammeewwoorrkk,, SSpprriinngg MMVVCC にも、

    大きな影響を受けていて、

    尊敬するフレームワークの一つです。


    また、最近のDDBBFFlluutteeは、SSpprriinnggとの組
    み合わせが多く、jjfflluutteeとしても非常に
    身近なフレームワークです。
    85
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  86. FFAAQQ22:: QQ
    RRuubbyy oonn RRaaiillss は

    ライバルですか?
    86
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  87. FFAAQQ22:: AA
    いいえ


    そもそもまったく敵いませんし、

    RRuubbyyが得意な人がLLaassttaaを使う必要性は
    あまりないです。


    JJaavvaaが得意で、JJaavvaaの特徴を活かしてやっ
    ていきたいんだけど、フレームワークど
    うしようかなぁと迷っている人の選択肢
    の一つになればいいなと。
    87
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  88. FFAAQQ22:: AA
    でも、こういろいろと考えると、

    スタートアップの現場で、なかなかJJaavvaa
    が使われない理由がよくわかるなぁと

    しみじみ。。。((SSccrriipptt言語強い))

    なおさら、「JJaavvaaならでは」の

    リーン・スタートアップというのに、

    チャレンジしたいと。
    88
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  89. FFAAQQ22:: AA
    コンパイルが凶ではなく、

    吉と出るような

    アーキテクチャを!
    89
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  90. FFAAQQ33:: QQ
    DDBBFFlluuttee以外のOO//RRマッパーは
    使えますか?
    90
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  91. FFAAQQ33:: AA
    ほぼ、いいえ。厳密には、はい。


    例えば、

    FFeessss1100は、EEllaassttiiccsseeaarrcchhなので、

    DDBBFFlluutteeのRRDDBB機能は使っていません。

    ((代わりに、EESSFFlluutteeを使っています))

    ddbbfflluuttee--rruunnttiimmeeのjjaarrは入�りますが、別のOO//
    RRマッパーを使うことはできます。
    91
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  92. FFAAQQ33:: AA
    ですが、そもそも LLaassttaa は、

    DDBBFFlluutteeに強く依存をすることで、スムーズ
    にDDBB側と連携することに重きを置いています

    そして、LLaassttaa で作るようなサービスであれ
    ば、DDBB変更への耐性がキーポイントになると
    想定されるので、やはり CCoonnddiittiioonnBBeeaann は外
    せない......とまでいかなくても、
    RReeppllaacceeSScchheemmaa や AAlltteerrCChheecckk などのDDBB管理
    支援機能は使うことを強くおススメします。

    ((どのみち、FFrreeeeGGeennは必ず使います))
    92
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  93. FFAAQQ44:: QQ
    SSIIでも使えますか?
    93
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  94. FFAAQQ44:: AA
    はい


    別にSSIIでも、


    「特徴がスタートアップに近い開発」


    であれば、フィットすると考えます。
    94
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  95. FFAAQQ55:: QQ
    逆に向�かない現場は?
    95
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  96. FFAAQQ55:: AA
    RR&&DD,, oorr RR&&DD要素を含んだ開発


    jjfflluuttee自身そういった現場を経験していないので、
    そこの都合はあまり気にせず作っています


    ウォーターフォール


    変化がなければ、変化への耐性もスピードもあま
    り役に立たないでしょう


    お金も人((スキル))も潤沢にある


    別の方法で問題を解決できるかもしれません
    96
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  97. FFAAQQ55:: AA
    LLaassttaaでもいいかもしれないけど、

    LLaassttaaじゃなくてもいいんじゃない?


    ってニュアンス
    97
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  98. FFAAQQ66:: QQ
    流行りますか?
    98
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  99. FFAAQQ66:: AA
    いいえ


    そもそもJJaavvaaでスタートアップを行うケー
    ス、要はJJaavvaaを使う事業会社が少ないと感
    じるので、そんな大流行りは期待できませ
    ん。

    ただ、LLaassttaaFFlluutteeがそこを支える選択肢と
    なって、「コンパイルセーフを活かした

    スピードプログラミング」という手法が、
    少しでも一目置かれて、そういう事業会社
    が増えたら嬉しいなと。
    99
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  100. FFAAQQ66:: AA
    流行らせるというよりかは、LLaassttaaが
    フィットする現場、LLaassttaaなら問題解決
    しやすい現場で、適切に採用されて適切
    に使われて、役に立ったら嬉しいです。
    100
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  101. FFAAQQ77:: QQ
    LLaassttaa って何の略ですか?
    101
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  102. FFAAQQ77:: AA
    ククク
    102
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  103. FFAAQQ77:: AA
    それはさておき…


    LLaassttaaFFlluuttee自身が

    「リーン・スタートアップした」

    と言えるでしょう。


    すでに利用者の方々がいらっしゃったの
    で、実際に使って貰いながら開発してき
    ました。さらにこのあと、インクリメン
    タルに成長させていかないとですね。
    103
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  104. FFAAQQ77:: AA
    ちなみに、


    LLaassttaaFFlluutteeは、こないだ7月26日に

    誕生しました。((初の正式版リリース日))

    DDBBFFlluutteeは…

    ちょうど9年前の9月26日です。

    実は今日は、DDBBFFlluutteeの9周�年の誕生日
    です。((00..11..0011 から9年、11..11..00--sspp99 に))
    104
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  105. FFAAQQ88:: QQ
    さっそく使いたいんですけど......
    105
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  106. FFAAQQ88:: AA
    まずは、LLaassttaaFFlluutteeを知る上で、
    EExxaammpplleeがオススメです。そこから新し
    いプロジェクトを作成できます。


    11.. EExxaammpplleeをggiitt cclloonnee ((LLaassttaaのページにUURRLLあり))


    22.. SSttaarrttuuppTTeessttで、

    ドメインとサービス名を修正・実行


    33.. できた。

    あとは自分用にカスタマイズ
    106
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  107. FFAAQQ88:: AA
    シングルプロジェクトか、

    マルチプロジェクトか?


    HHTTMMLLスタイルか、JJSSOONN AAPPIIスタイルか?


    hhaarrbboorr:: シングルプロジェクト


    HHTTMMLL,, JJSSOONN AAPPII 混じり


    mmaaiihhaammaa:: マルチプロジェクト


    ddoocckkssiiddee -- HHTTMMLLスタイル ((AAjjaaxxは使えるよ))


    hhaannggaarr -- JJSSOONN AAPPIIスタイル
    107
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  108. FFAAQQ88:: AA
    例えば、マルチプロジェクトで

    HHTTMMLLスタイルなら ddoocckkssiiddee

    mmaaiihhaammaa--bbaassee:: ベースのppoomm..xxmmllなど


    mmaaiihhaammaa--ccoommmmoonn:: 共通クラス用、DDBBFFlluutteeここ


    mmaaiihhaammaa--ddoocckkssiiddee:: WWEEBBアプリ


    DDoocckkssiiddeeBBoooottのmmaaiinn(())で起動 ((ブラウザからアクセス))


    SSttaarrttuuppTTeessttをJJUUnniittで実行すれば、

    これをベース新規プロジェクトが作成される
    108
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  109. EExxaammpplleeマップ
    109
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  110. FFAAQQ88:: AA
    まだドキュメントも少ないので、

    jjfflluutteeに聞いてください。

    hhttttppss::////ttwwiitttteerr..ccoomm//jjfflluuttee


    作者にサクッと聞いて問題を解決、

    これもスタートアップの極意です。
    110
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  111. さいごに
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  112. フォークして、

    あらためて思ったこと
    「SSeeaassaarrってすごいなぁ」

    としみじみ。

    これは自分では0から絶対に作れない


    ※コミッタの方々に、22001155年にして、

    尊敬と感謝の念をたくさん感じてます。


    素晴らしいコードを、ありがとうございます。
    112
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  113. オープンソースのいいところ
    プロダクトは静かになっても、


    ソースは旅立ち、

          進化できる。
    113
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  114. LLaassttaa DDii tthhaannkkss…
    TThhaannkkss,, FFrraammeewwookkss


    LLaassttaa DDii ffoorrkkss SSeeaassaarr,,

    AAOOPP aalllliiaannccee aanndd eexxtteennddss iitt,,

    tthhaannkkffuull wwoonnddeerrffuull ffuunnccttiioonnss..

    AAnndd aallssoo ffoorrkkss SS22CCllaassssBBuuiillddeerr

    ((ccaalllleedd RReeddeeffiinneerr iinn LLaassttaa DDii)),, pprroovviiddeess fflleexxiibbllee DDii xxmmll..


    IIff tthhee ffrraammeewwoorrkkss wweerree nnoott tthheerree,,

    nnoo LLaassttaa DDii hheerree..


    II aapppprreecciiaattee eevveerryy ffrraammeewwoorrkk..


     **ffrroomm GGiitthhuubb ppaaggee ooff LLaassttaa DDii
    114
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  115. LLaassttaaFFlluuttee tthhaannkkss…
    TThhaannkkss,, FFrraammeewwookkss


    LLaassttaaFFlluuttee ffoorrkkss SSAASSttrruuttss,, 

    SSttrruuttss aanndd CCoommmmoonnss uuttiilliittiieess

    aanndd ((hheeaavviillyy)) eexxtteennddss iitt..


    AAnndd iiss iinnfflluueenncceedd bbyy SSpprriinnggBBoooott,, PPllaayy22..


    IIff tthhee ffrraammeewwoorrkkss wweerree nnoott tthheerree,,

    nnoo LLaassttaaFFlluuttee hheerree..


    II aapppprreecciiaattee eevveerryy ffrraammeewwoorrkk..


     **ffrroomm GGiitthhuubb ppaaggee ooff LLaassttaaFFlluuttee
    115
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  116. BBiigg TThhaannkk yyoouu
    わらちゃん、ぺろった、らいと、きっとさん、
    ddoocckkssiiddeeのEExxaammppllee作りありがとう。


    ssaawwくん、mmoorriizzoonnee、でこちゃん、

    hhaannggaarrのEExxaammppllee作りありがとう。


    じゅんぺー、モデル作成ありがとう。

    yyaappppyy、特徴のレビューありがとう。
    116
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  117. CCrraazzyy TThhaannkk yyoouu
    ssuuggaayyaaさん、aawwaaaawwaaさん、mmiiyyaassaammaa、

    まだ一行もコードがない状態から「使
    う!」と言ってくれて、そして、実際に
    使ってくれて、ありがとうございます。


    UU--NNEEXXTTの友人エンジニアのみなさん、

    LLaassttaaFFlluuttee採用ありがとうございます。
    117
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  118. GGrreeaatt TThhaannkk yyoouu
    レイハウオリ、ビズリーチ、ルクサに

    大きな感謝を。ここでの支援経験が、

    すべて LLaassttaaFFlluuttee につながります。


    ビズリーチのスタートアップで DDBBFFlluuttee を
    選んでくれた ssttaakkeeuucchhii さんに大感謝。

    それがなければ LLaassttaa はありませんでした。
    118
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  119. SSuuppeerr TThhaannkk yyoouu
    DDIIOO様、スライド作成ありがとう。

    あとでお菓子あげるね。
    119
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide

  120. おしまい
    ごせいちょう

    ありがとうございました。
    LLAASSTTAA LLaassttaaFFlluutteeの誕生

    View Slide