正直めんどくせー!すみません、ただの愚痴です。
具体的な方法はかにぽてとさんのブログを参考にしてください。
では!
LiveCommerceをインストールしてみた
タガヤっす。
当社には、EC-CUBEをカスタマイズする仕事がちょこちょこあります。ソースを良く触るのですが、キレイに書かれてると思います。とても理解しやすいです。
しかしですね、運用してみてわかったんですけど、
技術者思考がかなり強くて、その思考に対する好き嫌いがはっきりするオープンソースだと感じるようになりました。
・配送方法が複数パターンある場合にバグがある
・SEOを一切、考慮されていない
・カード決済は制作した企業を通さないといけない
・O/Rマッパーのせいでかなり負荷の高いSQL
・毎回、RESIZEされる画像
・ETC
ロックオンに恨みは一切ないですけど、そろそろEC-CUBEをカスタマイズする仕事は辞めようと思います。後々のメンテがすげーめんどくさいんですよ。
お前ら、ECサイトやって勉強しなおせ。と言いたい。
ECやったことない会社の作るパッケージなので、仕方がないっちゃあ仕方のないことかも知れませんが、そろそろ限界のようです。
◆
改めて探したら、純和製のオープンソースを発見しました。
LiveCommerce というものです。
少しソースを読みましたが、ZendFramework を知らない人には敷居がかなり高いものです。
が、これも、とてもよく書けてると思いました。
さすが日本人ですね、木目が細やかというかなんというか。
EC-CUBEよりも敷居は高めですが、かなりの好印象です。
O/Rマッパーがない ZendFramework を採用しているところも好印象です。Cake とか Symfony とか、あまり好きじゃないんです、個人的に。
ECを運用すると多用するSQLとか負荷が集まるSQLが生まれます。それはサイトの性格によりまちまちです。ボクらはそれらを回避するために、データベースの設計において、敢えて「非正規化」をする場合があります。負荷は劇的に軽減されます。
O/Rマッパーを利用してる場合、上記の対応をする場合、工数が増大します。リソースも食います。SQLチューニングもできない。
O/Rマッパーはそこが目的で採用されているのではないので当たり前です。
つまり、
運用時の問題を素早く簡単にシューティングしたい場合、O/Rマッパーを採用しちゃダメです。
部分的にO/Rマッパー、カスタマイズしたい部分は生SQLを書くというカオスな状態にしても平気なら止めはしませんw
◆
まあ個人的な感想を書きましたが、LiveCommerceを使って自社のECサイトを作ってみようかなあと思ってます。うまくカスタマイズできたら、みなさんにも使ってもらえるようにしたいなー。。。
タガヤっす。
表題のとおり、移行が完了しました。
めっちゃ早くなりました。
いろいろたいへんな部分もあったけど、実質1日で移行できたのは良かった。データも少なかったし。
今回この作業をメインで行ったのは当社のインターンでして、元々は制御系Cプログラマだったのです。
入社時の彼はWEB系未経験でして、EC-CUBEのカスタマイズからPHPを教えたんです。最初の1週間は、ダイジョブか?とみんな(本人もw)が思う状態でしたが、1回の助け舟だけでここまで成長しました。
素質もあったかとは思います。元々プログラマだったので。
しかし本人のやる気と根気が、その成長における「肥料」だったと確信してます。人が何かを覚えるとき、やはりその「本人」に掛かっていると再認識したわけです。
本人のやる気と指導方法がピッタリと一致すると、人は1ヶ月で変われるという好例なのかも知れません。
ボクの部下に必要な「素直な心」も良い方向で作用してるように思います。
しかしビックリです。
当初は3ヶ月のインターン期間を明確に設定して、そこでダメならダメだろうと思ってました。約2ヶ月足らずで、当社に必要な技術者になってくれました。
懸念事項もないわけではないですけど、彼に対する期待値が飛躍的にアップしました。
今晩の酒はうめーぞ、きっとw
タガヤっす。
DBの違いによるEC-CUBEの動作速度を比べるために、ローカルのテスト環境でいじり倒した結果の発表です。
PostgreSQLの圧倒的勝利
びっくりするぐらい違う。
MySQLのJOINの弱さは、以前テストしたことがあったんですけど、MAXで3つのデーブルしかテストしませんでした。
これほどまでに性能の低下が発生するとは予想してませんでした。
まだまだ修行が足りませんネ。反省しました。
何も考えずにMySQLで導入した結果、不必要なオーバーヘッド発生させてしまいました。
事前にどちらを採用するか、調査することを怠っていました。
これにより、社内で膨大な工数を発生させてしまいました。
精力的に移行作業を行ってくれたインターンや、テストを繰り返し行ってくれたスタッフみんなに感謝です。
うん、自覚してる。
その犯人はオレ(涙)
よく使ってるMySQLでいいんじゃネ?的な対応が一番嫌いなのに、それをオレ自身がやってしまっているという矛盾に気付くことができました。
システムを開発するなら、クライアントのニーズにぴったりなソリューションを提案しなければならない。自社都合で、「Javaが得意なんでJavaでやらしてください」的な発想はダメだと頭では思ってるのに、実践できてない自分の至らなさを痛感しました。
自社ので良かった。本当に良かった。
クライアント仕事でこんなことをしてはダメですから。
いやー、学ぶことが多かった。
性能テストはやはり欠かしてはいけないですネ。
◆
副産物として得るものも多かったです。
以前は、トランザクション処理を重視する案件が多かったので、Postgresを採用することが多かったんですが、最近では、単純なSQLの処理速度を求めてMySQLを採用することが多かったんです。3年前に速度テストをした結果です。
しかし、今のPostgresは非常に高速になってました。
正当に進化している感じがわかるんですけど、以前の知識がそのまま応用できるレベルを逸脱してます(涙)
まず、ロールってなに?って感じですw
Postgresのスキーマって?とか、そんな初歩的なことさえ理解できてません。
#ドキュメントと恋人状態です。
あー、勉強せなアカン「ネタ」だけが増えていく・・・
・Objective-C
・COCOA
・PostgreSQL
・iptables4&6
・IPv6
うん、どれか削ろうっとw
タガヤっす。
CentOS5 + PHP5.1.6 + MySQL でEC-CUBEを動かしてます。
先日、トラック用品の販売、パーマンに、商品を2000点ほど追加したんですが、劇遅になってしまいました。
MySQLのチューニングを行って3倍早くはなりましたが、それでもひとつのクエリで20秒以上も処理時間がかかってしまいました。
キャッシュサイズを大きくしたので、1回処理されれば早くはなるんですけど、1回目のクエリ処理時間が3秒以内にならんと運用に耐えません。なんだこりゃ?
ってことで急遽追加したデータを削除して、本格的に調査しました。
・EC-CUBEはPostgreSQLがいいらしいよ?
・商品点数2000を超えると厳しいよ?
・SQLをチューニングしちゃいなよ?
・Pear:DBじゃなく、Pear:MDB2に変更すればいいよ
出てくる出てくる(汗)
で、当社での対応は以下のとおりを予定することにしました。
・追加した商品は工具なので別サーバで運用してみる。
・PostgreSQLで運用してみる。
・単純にインストールした状態でレスポンスを計測して、
どちらのDBMSにするか決定する
・PDOを採用する → データアクセスクラスの書き換え
・SQLチューニング
を予定しております(汗)
上記の経緯は技術エントリとしてアップしていくことにします。
ウゼEEEEEeeeーーー!!
タガヤっす。
ウチの社内でPHPのお勉強として、EC-CUBEの読解とカスタマイズを課題として提供しています。 書き方がオープンソースの中でも群を抜いてキレイで、オブジェクト指向がしっかりしています。
実はそこで発見した脆弱性があったのです。
セミナーでは少しお話しましたが、SQLインジェクションが可能になる記述があったのです。
それが先日、フィックスされたようです。
http://www.ec-cube.net/info/080829/
いやーよかった。
この手の脆弱性をBlogで具体的に指摘したりすると、EC-CUBEを運用しているショップさんが標的になります。 逆に未だに対応していないショップさんは、このパブリックになったアナウンスをしっかりみて適切な対処をしてください。
ちなみにこの脆弱性を発見したツールは、Googleから無償で提供されている「RatProxy」です。
最近は便利なツールが無償で公開されています。
ロックオンさん、しっかりセキュリティマネジメントしておかないと大変なことになりまっせ。
例のティザーは単なるASPチックなサービスということでテンションは上がりませんでしたが、今そのEC-CUBEをいじってます。
管理画面がわかりやすいのはよろしいのですが、ちょっとした事ができない場合があって制作者としては困りものです。
もっと外部に情報があったらいいんですけどね。今は、オンラインマニュアルとフォーラムだけが頼りです。
僕がEC-CUBEをいじり始めて最初の1時間で困ったことは以下の通り。
・規格ごとの価格が設定できない
・カテゴリーを常に展開しておきたい
・商品コメントにタグを入力するときに改行できない(<br>になってしまう)
・商品ステータスが追加できない(オススメ、とか限定品とか)
この中のいくつかは解決しました。
またブログで備忘録的に書いていこうと思います。
最近のコメント