SlideShare a Scribd company logo
1 of 21
Download to read offline
Oisixの
フレームワークの変遷

          2011年6月17日
       オイシックス株式会社
自己紹介
•山下 寛人
•システム本部 本部長
•2000年の創業時から一貫してシステムを担当
2000年
2000年のできごと
•オイシックス創業
•10月にOisix.comグランドオープン
•はじめてJavaで本格的な開発を行った
最初のフレームワーク
•MVC、O/Rマッピングとも独自フレームワーク
•当時はStrutsもHibernateも存在しなかった
•簡単なフレームワークながら簡略版のStrutsや
 Hibernateのようになっている
•HTMLからビジネスロジックを分離したり、DBのデータを
 オブジェクトとして扱える、など
•今も使い続けている
問題点
•いろいろ細かい欠点がある
•URLに必ずクエリ文字列を必要としたのでSEOに不向き
 (対策済み)
•DBのフィールドを追加したときに直す箇所が多い
•など
  しかし、直接的に売上を上げる開発をしないと生き残れな
  いのでフレームワークを改善している暇がない
  むしろMS AccessみたいにWebアプリケーションを簡単に
  作れないか
2002年
2002年のできごと
•2001年から自社で倉庫を持ったので在庫管理システム
 が必要になった
•いろいろあって自社開発した
•システム名はOisystem-ZS(在庫・仕入管理)
ZSのフレームワーク
•MVCは新たに独自作成
•DBまわりはEJB(バージョン2)
•独自フレームワークから業界標準を採用
•いろいろ大変なEJBをできるだけ楽に使う工夫
問題点
•MVCまわりはだいぶ改善したものの使っているとよりよい
 機能がほしくなる
•EJBもだいぶ効率的に使えるようにしたもののやはりいろ
 いろな制限もあるし重い
•EJB2は実質的に絶滅した
2005年
2005年のできごと
•急成長を目指してメルマガ会員を一気に100万人にする
 という目標を立てた
•大規模な配信、きめ細かいセグメント分割などができるよ
 うメルマガのシステムを構築
•システム名はOisystem-MM(メルマガ)
MMのフレームワーク
•JSF + EJB2
•独自フレームワーク部分がほとんどなくなった
•Eclipseでビジュアル開発?
•EJBにしたのは非同期処理ができるMessage Driven
 BeanやEJB Timer Serviceを使いたかったから
問題点
•eclipseも使い始めこれでビジュアル開発ができるように
 なると思われたが夢に終わった
•JSFはHTMLの世界と若干違っていてサーバーでコン
 ポーネントモデルを持っている
•HTMLだと簡単にできることが結構難しい
•1リクエストごとにサーバー内でコンポーネントモデルを
 作るので公開サイトで使うには負荷が怖い
2008年
2008年のできごと
•オイシックスはこだわりの商品を販売するビジネスなので、
 商品情報は非常に重要
•商品管理システムを構築
•システム名はOisystem-SK(商品管理)
•PHP3の販売管理システムをJavaに移行し始める
•システム名はOisystem-TS2(通販Sales management)
SK,TS2のフレームワーク
•SKはStruts2 + JPA
•Struts2はほぼ理想
•JPAは若干問題あり
•TS2はStruts2 + Hibernate
•oisix.comの独自フレームワークと併用できるようラッパ
 を作成
JPAの問題点
•本当に基本的な機能しかなく実際はHibernateなどの
 JPA実装を使う必要がある
•例えばevictがない(JPA2.0では仕様が定義されたもよう)
Struts2の概要
•Struts1.xとは別物だが基本形は似ていて覚えやすい
•XMLがほとんどいらない
•ActionクラスやJSPはURLの規約により決定される(XML
 やアノテーションで指定もできる)
•ActionクラスはPOJOになっていてテストしやすい
•OGNL式が強力で細かいところでこんなふうにできないか
 なと思ったことはだいたいできる
Struts2の概要
          public class KaritourokuInputAction extends ActionSupport {

              private String kokyakuIdList;
画面            private int binId;
              private List<KokyakuTeikiKanri> kokyakuList = new
                 LinkedList<KokyakuTeikiKanri>();

              @SkipValidation
              public String execute() {
                 return INPUT;
              }

              public String input() throws Exception {
                   :
                 return result;
              }
          }


      画面の入力値がActionクラスの変数に入り
      ボタンクリックでメソッドが実行される
今後
•Oisix.com既存フレームワークを修正してStruts2と共
 存できるようにする
•Seasar系のフレームワークも検証

More Related Content

Viewers also liked

Hivemall meetup vol2 oisix
Hivemall meetup vol2 oisixHivemall meetup vol2 oisix
Hivemall meetup vol2 oisixTaisuke Fukawa
 
【Watson】Tradeoff Analyticsの概要
【Watson】Tradeoff Analyticsの概要【Watson】Tradeoff Analyticsの概要
【Watson】Tradeoff Analyticsの概要勇太 小沢
 
レビューのネガポジ RandomForest vs LSTM
レビューのネガポジ RandomForest vs LSTMレビューのネガポジ RandomForest vs LSTM
レビューのネガポジ RandomForest vs LSTMKeisho Suzuki
 
葉物野菜を見極めたい!by Keras
葉物野菜を見極めたい!by Keras葉物野菜を見極めたい!by Keras
葉物野菜を見極めたい!by KerasYuji Kawakami
 
20170130 Oisix勉強会LT発表資料
20170130 Oisix勉強会LT発表資料20170130 Oisix勉強会LT発表資料
20170130 Oisix勉強会LT発表資料Taisuke Fukawa
 
【企画書】チャットワーク:社内検討用資料
【企画書】チャットワーク:社内検討用資料【企画書】チャットワーク:社内検討用資料
【企画書】チャットワーク:社内検討用資料Find Job Startup
 
オイシックスxAWS導入事例
オイシックスxAWS導入事例オイシックスxAWS導入事例
オイシックスxAWS導入事例Saori Tanaka
 
P2 P 奨学金プロジェクト Ver3 5
P2 P 奨学金プロジェクト Ver3 5P2 P 奨学金プロジェクト Ver3 5
P2 P 奨学金プロジェクト Ver3 5Daisuke Miyoshi
 
T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)
T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)
T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)Keita Takizawa
 
【企画書】ReceReco:新規事業討議用社内資料
【企画書】ReceReco:新規事業討議用社内資料【企画書】ReceReco:新規事業討議用社内資料
【企画書】ReceReco:新規事業討議用社内資料Find Job Startup
 
【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料
【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料
【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料Find Job Startup
 
【企画書】omiai:IVS_LAUNCH PAD用資料
【企画書】omiai:IVS_LAUNCH PAD用資料【企画書】omiai:IVS_LAUNCH PAD用資料
【企画書】omiai:IVS_LAUNCH PAD用資料Find Job Startup
 
【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料
【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料
【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料Find Job Startup
 
PIXTA_シードラウンド用事業プラン説明資料
PIXTA_シードラウンド用事業プラン説明資料PIXTA_シードラウンド用事業プラン説明資料
PIXTA_シードラウンド用事業プラン説明資料Find Job Startup
 
Cyta.jp_サービスEC説明資料
Cyta.jp_サービスEC説明資料Cyta.jp_サービスEC説明資料
Cyta.jp_サービスEC説明資料Find Job Startup
 
創業時の「nanapiのナマ企画書」
創業時の「nanapiのナマ企画書」創業時の「nanapiのナマ企画書」
創業時の「nanapiのナマ企画書」Find Job Startup
 
ストリートアカデミー_ローンチ前企画書
ストリートアカデミー_ローンチ前企画書ストリートアカデミー_ローンチ前企画書
ストリートアカデミー_ローンチ前企画書Find Job Startup
 
メルカリ_サービス説明資料
メルカリ_サービス説明資料メルカリ_サービス説明資料
メルカリ_サービス説明資料Find Job Startup
 
BASE_プレゼン用サービス説明資料
BASE_プレゼン用サービス説明資料BASE_プレゼン用サービス説明資料
BASE_プレゼン用サービス説明資料Find Job Startup
 

Viewers also liked (19)

Hivemall meetup vol2 oisix
Hivemall meetup vol2 oisixHivemall meetup vol2 oisix
Hivemall meetup vol2 oisix
 
【Watson】Tradeoff Analyticsの概要
【Watson】Tradeoff Analyticsの概要【Watson】Tradeoff Analyticsの概要
【Watson】Tradeoff Analyticsの概要
 
レビューのネガポジ RandomForest vs LSTM
レビューのネガポジ RandomForest vs LSTMレビューのネガポジ RandomForest vs LSTM
レビューのネガポジ RandomForest vs LSTM
 
葉物野菜を見極めたい!by Keras
葉物野菜を見極めたい!by Keras葉物野菜を見極めたい!by Keras
葉物野菜を見極めたい!by Keras
 
20170130 Oisix勉強会LT発表資料
20170130 Oisix勉強会LT発表資料20170130 Oisix勉強会LT発表資料
20170130 Oisix勉強会LT発表資料
 
【企画書】チャットワーク:社内検討用資料
【企画書】チャットワーク:社内検討用資料【企画書】チャットワーク:社内検討用資料
【企画書】チャットワーク:社内検討用資料
 
オイシックスxAWS導入事例
オイシックスxAWS導入事例オイシックスxAWS導入事例
オイシックスxAWS導入事例
 
P2 P 奨学金プロジェクト Ver3 5
P2 P 奨学金プロジェクト Ver3 5P2 P 奨学金プロジェクト Ver3 5
P2 P 奨学金プロジェクト Ver3 5
 
T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)
T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)
T TIME 滞在時間割キャンペーン(第4回販促会議企画コンペティション)
 
【企画書】ReceReco:新規事業討議用社内資料
【企画書】ReceReco:新規事業討議用社内資料【企画書】ReceReco:新規事業討議用社内資料
【企画書】ReceReco:新規事業討議用社内資料
 
【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料
【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料
【企画書】UIscope:MOVIDA JAPAN_Demo Day用資料
 
【企画書】omiai:IVS_LAUNCH PAD用資料
【企画書】omiai:IVS_LAUNCH PAD用資料【企画書】omiai:IVS_LAUNCH PAD用資料
【企画書】omiai:IVS_LAUNCH PAD用資料
 
【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料
【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料
【企画書】gamba!(ガンバ):サムライインキュベート様向け_企画プレゼン資料
 
PIXTA_シードラウンド用事業プラン説明資料
PIXTA_シードラウンド用事業プラン説明資料PIXTA_シードラウンド用事業プラン説明資料
PIXTA_シードラウンド用事業プラン説明資料
 
Cyta.jp_サービスEC説明資料
Cyta.jp_サービスEC説明資料Cyta.jp_サービスEC説明資料
Cyta.jp_サービスEC説明資料
 
創業時の「nanapiのナマ企画書」
創業時の「nanapiのナマ企画書」創業時の「nanapiのナマ企画書」
創業時の「nanapiのナマ企画書」
 
ストリートアカデミー_ローンチ前企画書
ストリートアカデミー_ローンチ前企画書ストリートアカデミー_ローンチ前企画書
ストリートアカデミー_ローンチ前企画書
 
メルカリ_サービス説明資料
メルカリ_サービス説明資料メルカリ_サービス説明資料
メルカリ_サービス説明資料
 
BASE_プレゼン用サービス説明資料
BASE_プレゼン用サービス説明資料BASE_プレゼン用サービス説明資料
BASE_プレゼン用サービス説明資料
 

Similar to オイシックスのフレームワーク

10年前から始まったマイクロソフトのDevOps~今とこれから~
10年前から始まったマイクロソフトのDevOps~今とこれから~10年前から始まったマイクロソフトのDevOps~今とこれから~
10年前から始まったマイクロソフトのDevOps~今とこれから~智治 長沢
 
Webアプリケーション脆弱性体験ハンズオン
Webアプリケーション脆弱性体験ハンズオンWebアプリケーション脆弱性体験ハンズオン
Webアプリケーション脆弱性体験ハンズオンYuichi Hattori
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説Daisuke Nishino
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...Akira Inoue
 
クラウド & STAR-CCM+ を活用するための勘ドコロ
クラウド & STAR-CCM+ を活用するための勘ドコロクラウド & STAR-CCM+ を活用するための勘ドコロ
クラウド & STAR-CCM+ を活用するための勘ドコロRescale Japan株式会社
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうTomomitsuKusaba
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチTomoharu ASAMI
 
ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報yoyamasaki
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングKazuki Takai
 
アセットビルドパイプラインについて考えてみる
アセットビルドパイプラインについて考えてみるアセットビルドパイプラインについて考えてみる
アセットビルドパイプラインについて考えてみるRYUTARO OSAFUNE
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発Akira Inoue
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料OCHI Shuji
 
SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発Tusyoshi Matsuzaki
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider貴志 上坂
 
マークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScriptマークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScripteiji sekiya
 
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!Yuki Ishikawa
 
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会オラクルエンジニア通信
 

Similar to オイシックスのフレームワーク (20)

10年前から始まったマイクロソフトのDevOps~今とこれから~
10年前から始まったマイクロソフトのDevOps~今とこれから~10年前から始まったマイクロソフトのDevOps~今とこれから~
10年前から始まったマイクロソフトのDevOps~今とこれから~
 
Webアプリケーション脆弱性体験ハンズオン
Webアプリケーション脆弱性体験ハンズオンWebアプリケーション脆弱性体験ハンズオン
Webアプリケーション脆弱性体験ハンズオン
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
クラウド & STAR-CCM+ を活用するための勘ドコロ
クラウド & STAR-CCM+ を活用するための勘ドコロクラウド & STAR-CCM+ を活用するための勘ドコロ
クラウド & STAR-CCM+ を活用するための勘ドコロ
 
Entity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼうEntity Framework(Core)についての概要を学ぼう
Entity Framework(Core)についての概要を学ぼう
 
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive ProgrammingへのアプローチMonadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
 
ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報ついにリリース!! MySQL 8.0 最新情報
ついにリリース!! MySQL 8.0 最新情報
 
IT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティングIT Pro のための PowerShell スクリプティング
IT Pro のための PowerShell スクリプティング
 
アセットビルドパイプラインについて考えてみる
アセットビルドパイプラインについて考えてみるアセットビルドパイプラインについて考えてみる
アセットビルドパイプラインについて考えてみる
 
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発ASP.NET MVC と jQuery で実践する標準志向 Web 開発
ASP.NET MVC と jQuery で実践する標準志向 Web 開発
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
 
SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発SharePoint 2010 を使ったクラウドアプリ開発
SharePoint 2010 を使ったクラウドアプリ開発
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
 
マークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScriptマークアップ講座 04 jQuery - JavaScript
マークアップ講座 04 jQuery - JavaScript
 
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part2
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part2お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part2
お客様が望んでいるモダンデスクトップアプリとは?/傾向と対策 Part2
 
( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!( ゚∀゚)o彡° Flux! Flux!
( ゚∀゚)o彡° Flux! Flux!
 
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
 

オイシックスのフレームワーク