狠狠撸

狠狠撸Share a Scribd company logo
EC-CUBE名古屋UG勉強会 Vol.47
EC-CUBE3系より新しい
EC-CUBE2系の開発事例紹
介
@_aromaforest 2017/10/7
大河内健太郎
自己紹介
? 名前: 大河内健太郎(@nanasess) 年齢: 40才
? 出身: 愛知県西尾市一色町
? 在住: 宝塚市
? 前職: 寿司屋の板前(安城市の「ひで寿司」)
? 資格: 調理師?ふぐ処理師
? Mac OS X / Microsoft Azure / FreeBSD 使ってます
? EC-CUBE コミッター?公式エバンジェリスト
? 最近のマイブーム: 太田胃散のヨーグルト
はじめに
? 今日のお話は、大半の技術を、EC-CUBE2系、3系問わ
ず応用可能です。
? 信頼の実績とライトウェイトな2系、最新のフレームワ
ークを活用したければ3系という感じで、ニーズに合わ
せてお使いいただけたらと思います。
今日お話しすること
※技術は日々進歩するので、いろいろ取り組んでます
※多くは https://kodawarin.shop で活用している技術です
インフラ?ミドルウェアなど
? Microsoft Azure App Service WebApps/API Apps
? Microsoft Azure SQL Database
? PHP7.1.3, Node.js 6.9, .NET Core 2.0
? SendGrid
? EC-CUBE2.13.5 + SQL Database Plugin
? WordPress + SQL Database = ProjectNami
Azure x EC-CUBE + WordPress + SQL Database で最強の EC CMS を構築しよう に詳しく書いてま
よくある質問と答え
? なんで AWS や Linux, MySQL じゃないの?
? マイクロソフトさんと一緒に EC-CUBE の Azure 対応を
進めてきた経緯と、コストパフォーマンスの良さ
(BizSpark を活用させていただいてます)
? なんで Node.js や .NET Core があるの?
? API 書いたりするのに、 PHP より開発効率が良いので。
よくある質問と答え
? なんで EC-CUBE2系なの?
? SQL Database は 3系で未サポート
? 魔改造の多くの実績。 WordPress との親和性の良さ
? ライトウェイト。 PHP の良さを存分に発揮できる
Poem
? 最近の PHP フレームワークは、基本的なことをしっかりおさえて、真面目にしっ
かり書こう という風潮
? 10年くらい前の Java みたい。 Java のように 型付けが強ければいいけど、型付け
の弱い PHP ではしんどい
? PHPStorm を使えば?ということだろうけど、そんなに頑張るんだったら Java で
書いても学習コスト変わらなくない?
? Symfony のサポート期間、 EC 店舗の立場からすると短かすぎ。
4年ごとにフルリニューアルなんてやってられないし。
? 2系はどうかというと、 PEAR のサポートくらいなら、規模が小さいので自力で
何とかなるし、他に置き換えも容易
こちらも参考に RHEL/CentOS 7のPHP5.4.16 は安全か?
バックエンド
? PHP(主にバックエンドのフレームワークとして使用)
? EC-CUBE, ProjectNami(WordPress)
? Composer
? Node.js, .NET Core
? API 開発に使用
よくある質問と答え
? API も PHP で書いたらいいじゃん
? .NET Core や Node.js の方が圧倒的にパフォーマンス良
く、開発効率も良い
? 認証とかどうしてるの?
? EC-CUBEの認証/セッション管理を JSON Web
Token(JWT) を使用したものに変更し、 API 側でも EC-
CUBE と同じように認証できるようにした。
JWT認証の参考: https://jwt.io/introduction/
フロントエンド
? TypeScript
? WebPack3, Babel, Karma, mocha, sinon, chai
? React
? 簡易的な Server Side Rendering を実装
? .NET Core の API 経由で EC-CUBE の DB と直接通信
? EC-CUBE のSmarty/ WordPress の生PHP
よくある質問と答え
? なんで ES6 じゃないの?
? 数千行に肥大した JavaScript を保守するのに型無しは辛
い
? なんで React なの? Angular や Vue.js じゃだめなの?
? WordPress の事例がたくさんあった。部分的に導入した
かった。導入した時期は Vue.js と TypeScript の組み合
わせが難しかった。
開発環境
? Docker, Docker Compose
? “one process per container” (1つの関心事を1つのコンテナで)
? SQL Server も .NET Core も Linux のコンテナで普通に動きます
? Emacs, OmniSharp-Roslyn
? Visual Studio for Win/Mac ←デバッグ時のみ
? Circle CI
? Bitbucket
開発環境
? Docker コンテナは、 db, nginx, webpack, php, node,
.NET Core, mail に分割している
? コマンド一発で、いつでも作ることができる
? 結合度が低いので、テストしやすく不具合も発生しにく
い
テスティング環境
? Karma, mocha, sinon, chai
? React コンポーネントのテスト
? dotnet test
? SQL Server が絡むので、 専用の Docker コンテナで
? PHP のテストは、これから….
テスティング環境
? .NET Core のテストも Docker コンテナでテストしやす
くなった
? 以前は Visual Studio でテストを動かしていた
? Windows ベースな開発環境なら、 Application Insights
も活用できる
本番にデプロイ
? Bitbucket に git push し、 master にマージされると、自
動的にステージング環境へデプロイされる
? 「スワップ」という機能で、ステージング環境と本番環
境を入れ替える
? 問題があれば、すぐ戻せる
今後の課題
? 本番環境も Docker コンテナにしたい
? SQL Server on Linux の RC1 から sqlpackage が削除された問題
の解消
? チャットツールと連携
? PHP もちゃんとテストしたい
? CircleCI の活用
? SendGrid API や Facebook API, Cognitive Serviceの活用
まとめ
? EC-CUBE2系でも、 Docker やマイクロサービスなど、
最新のテクノロジーを活用できる。高い開発効率も実現
できる。
? うまく設計しないと、かえってカオスになる。。。
? それは3系でも一緒
? フレームワークのサポート期間に縛られないことは、長
期的にメンテしていく上で重要
质疑応答
ご静聴ありがとうございまし
た!

More Related Content

EC-CUBE3系より新しい EC-CUBE2系の開発事例紹介