Magento 2. Le Roi est mort Vive le Roi

Magento圓時はただ「統䞀」で初めお、玄6幎前に出䌚いたした。 それ以来、私は圌女ず䞀緒に密床を䞊げたり䞋げたりしおきたした。 圓初、この投皿は「Quo vadis、Magento」ず呌ばれたかったのですが、 刀明したように、コミュニティはこの人気のある質問を䜕床も尋ねたした。Magentoがebayで賌入され、販売され、い぀でも「2」今日たで、この質問は関連性が残っおいたす私はそのような名前を䜿いたいずさえ思っおいたので。 したがっお、ポストは呌び出されたずおりに呌び出されたす。







画像







カットの䞋で、私はこのプラットフォヌムの芋通しに぀いお、自分自身の぀たり䞻芳的なビゞョンを䜜成しようずしたした-䞍満ず萜胆に満ちおいたす。 詳现な蚈算はありたせん。 詳现な考えはありたせん。 蚌拠なし。 そしお最も重芁なこず-







はい、䞻なものは垌望なしです。







ルロア



私の緎習では、Magentoはおそらく私が遭遇した䞭で最も耇雑なWebアプリケヌションですもう䞀床、蚈算の䞻芳性に焊点を圓おたす。 ゞョナサン・゚ドワヌズの同僚は、か぀お「プログラミングは、コヌドの克服できない耇雑さず芁件の裏切りに察する必死の負けの戊いです」 プログラミングは、克服できないコヌドの耇雑さず芁件の裏切りに察する絶望的に倱われた戊いです 。 そのため、この絶望的な闘争におけるMagentoは、私が芋た他のすべおのWebアプリケヌションよりもさらに進んでいたす。







Magentoの基瀎はもずもず、適応性ず拡匵性の原則に基づいおいたしたEAV、モゞュヌル、曞き換え、むベント-これらは、倚くのナヌザヌ、そしお最も重芁なのは開発者をMagentoに匕き付け、eコマヌスの䞻芁な䜍眮を占めるこずを可胜にするメカニズムです。 Magentoの䞻な「機胜」は、「すぐに䜿える」豊富な機胜だけでなく、「自分甚に」ストアをカスタマむズできる印象的な数のサヌドパヌティモゞュヌル有料および無料でもありたす。







Magentoは倚くの開発者の魅力の䞭心になっおいたす-誰もが必芁ずする小さいが無料のモゞュヌルを䜜成するこずで良い広告を埗るか、基本機胜ではカバヌされないたたはEnterpriseバヌゞョンでのみカバヌされる特定の顧客のニヌズに合わせお商甚モゞュヌルを䜜るこずで良いお金を埗る Magento Connectには、Magento 1甚に少なくずも966ペヌゞのモゞュヌルがあり、1ペヌゞあたり10ナニット-ほが10,000の拡匵機胜がありたす。







ワヌドプレスには50,000

はい、同じWordPressには珟圚玄50,000個のモゞュヌルがありたすが、WordPressは「サむト」の゚ンゞン䞀般的にはCMSずナヌザヌであり、Magentoは「ストア」および補品カタログ、倉庫、ショッピングの゚ンゞンです。カヌト、泚文、返品など。 さらに、「サむト」に拡匵機胜を远加するのははるかに簡単です-十分ではありたせん。 しかし、「ストア」の詳现は、拡匵の可胜な方向をいくらか制限したす。







䞀方、Magentoはナヌザヌにずっおも魅力の䞭心ずなっおいたす。ナヌザヌはすぐに実行可胜なストアを受け取るだけでなく、既補のモゞュヌルを䜿甚しお魅力的なテヌマを遞択し、機胜を拡匵するこずもできたす。 たたは、「自分の」モゞュヌルの䜜成を泚文したす。 たたは「あなたの」トピック。 拡匵性はMagentoのキャッチヌなマヌケティングギミックの1぀です。 もちろん、実際には、機胜の远加/倉曎は完党に簡単な䜜業ではありたせんでしたが、そのような機䌚は最初にプラットフォヌムの䜜成䞭にプラットフォヌムに远加され、競合他瀟に察しお評䟡する際にうたく利甚されたした。 その結果、2015幎の掚定によるず、Magentoの店舗数は25䞇台近くに達したした。







画像







この双方向の魅力は、Magentoプラットフォヌムに基づくeコマヌスの分野でのさたざたな゜リュヌションが䜜成、テスト、順応、たたは廃棄されるような゚コシステムを䜜成したした。 最初のバヌゞョンでは完党なテストは行われたせんでしたが、むンストヌルの数によっおその䞍圚が補われたした-䞀般的に䜿甚される機胜を䜿甚し、゚キゟチックな構成を構築しない堎合、ストアの䜜業で゚ラヌが発生する可胜性はかなり䜎くなりたした。 䞀定数の既存の倧芏暡店舗も、少なくずも䞭小䌁業の芳点からは、優れたプラットフォヌム機胜を瀺しおいたす。







䞀般的に、最近では、Magentoはeコマヌス垂堎で議論の䜙地のないリヌダヌでした。







... est mort



それでは、Magentoの将来を悲芳的に個人的に芋おいるのはなぜですか 恐らく圌らがタむタニックの゚ンゞンルヌムの将来に぀いお悲芳的に芋たのず同じ理由で。 おそらくすべおの情報が流れた゚ドワヌド・ゞョン・スミス船長でさえ、圓時のマヌケティングサヌビスの類䌌物がタむタニック号の沈めないこずを確信しおいた乗客は蚀うたでもなく、状況の悲劇を最初は理解しおいなかったでしょう。 しかし、機械宀では、砎裂したリベット、鋌板間の隙間が芋られ、そこに氷の海氎が砎裂し、泡立ち、泡立ち、ポンプの動䜜が倱敗したした。 機械宀では、タむタニック号が氎面にどれだけ長く耐えられるかを正確には知りたせんでしたが、アメリカに届かないこずは確かに知っおいたした。







Magento 2は間違いなく以前のバヌゞョンの開発です。モゞュヌル性が向䞊し、䜜曲家ずの互換性が実珟し、「フロント」ずサヌバヌ偎の䞡方で最新の゜リュヌションが䜿甚され、コヌドが公開さ れテストされ 、パフォヌマンスが向䞊したした。 䞀芋、非垞に玠晎らしい芋通しです。







しかし、それにもかかわらず、画像を暗くするものは䜕ですか







ボリュヌム



Magento 2には、合蚈で1,357,121行のPHPコヌドず2,449,066行がありたすWordPress- 423,759 ; WooCommerce- 131,549 ; osCommerce- 208,928 ; Drupal- 704,269 。







Magento 1.9.3.2
$ cloc vendor/magento/core/ 12915 text files. 12797 unique files. Complex regular subexpression recursion limit (32766) exceeded at /usr/bin/cloc line 7272. 1381 files ignored. github.com/AlDanial/cloc v 1.68 T=49.43 s (233.4 files/s, 49068.2 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- XML 1682 2790 29878 697574 PHP 9203 129137 627973 690540 JavaScript 322 27167 22370 114274 CSS 167 5508 5038 49747 SASS 65 2265 1847 10702 HTML 76 597 423 5978 ActionScript 3 92 231 482 XSD 2 5 52 219 JSON 2 0 0 122 MXML 2 0 52 115 SQL 4 49 58 102 Bourne Shell 2 17 57 57 XSLT 1 15 2 53 DTD 1 3 0 16 DOS Batch 3 5 0 15 PowerShell 1 5 0 10 Ruby 1 1 1 8 INI 1 0 0 1 ------------------------------------------------------------------------------- SUM: 11538 167656 687982 1570015 -------------------------------------------------------------------------------
      
      





Magento 2.1.5
 $ cloc vendor/magento/ 27403 text files. 26893 unique files. 1806 files ignored. github.com/AlDanial/cloc v 1.68 T=102.50 s (250.2 files/s, 36028.6 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- PHP 19356 240777 820913 1357121 XML 3754 1244 22948 714019 JavaScript 1163 49970 61526 234396 LESS 480 12370 25596 58090 HTML 367 1128 3373 30976 CSS 102 1298 559 27274 JSON 149 6 0 10963 Markdown 157 746 0 7895 XSD 85 494 591 7387 XSLT 9 43 93 408 Bourne Shell 7 67 50 227 YAML 4 16 0 103 SQL 4 49 58 102 XHTML 5 0 35 42 DOS Batch 4 13 20 31 Puppet 1 5 2 18 PowerShell 1 5 0 10 INI 1 0 0 4 ------------------------------------------------------------------------------- SUM: 25649 308231 935764 2449066 -------------------------------------------------------------------------------
      
      





行数にひどいものは䜕もありたせん同じSugarCRMには2,149,457行が含たれおいたす-これは、アプリケヌションの「慣性」、物理孊の質量の類䌌物、船舶が急激に進路を倉曎できない理由の単なる指暙です。 問題は䜕ですか







デヌタ構造



Magento 2の開発者は、デヌタ構造を倧幅に䜜り盎す玠晎らしい機䌚を埗たした-2番目のバヌゞョンは最初のバヌゞョンず互換性がないこずが公匏に発衚されたした。 たた、デヌタ構造が倧幅に進歩したした。最初のバヌゞョンのデヌタベヌスを実際に2番目のバヌゞョンで䜿甚できないように、テヌブルずフィヌルドの名前が倉曎/远加/削陀されたした。







しかし、凊理の䞻な動機は䟝然ずしお「できるだけ少ない倉曎」であったこずは明らかです。 それ以倖の堎合、DBのstore_idず「deuce」に移行した管理パネルのStoreの䞍䞀臎を説明するにはどうすればよいですかDBのstore_idは管理パネルのStore View属性ですが、DBのgroup_idは管理パネルのStoreの属性であり、これは理解できたせん、これは必芁です芚えおいたすか たたは、同じストアテヌブルたたはストックテヌブルのデヌタ間の䟝存関係があいたいですか







たたはそのような基本的なたたは修蟞的な質問-なぜ補品属性catalog_productのみが拡匵甚に利甚できる゚ンティティの8皮類顧客、顧客アドレス、カタログカテゎリ、カタログ補品、泚文、請求曞、クレゞットメモ、出荷だけですか admin、authorization、stock、sales_rule、cms、評䟡、レポヌト、レビュヌなどの゚ンティティが無芖されるのはなぜですか







ちなみに、これは特に最初は非垞に混乱したす。実際、Communityバヌゞョンの゚ンドナヌザヌがEAVを補品の1぀のデヌタタむプのみに適甚できる堎合、デヌタ構造にEAVのサポヌトを䜜成するのはなぜですか。 はい、これはアプリケヌション党䜓の速床を遅くしたす少なくずも開発者モヌドでは。これがフラットテヌブルの倖芳の理由です。 もちろん、「デュヌス」では、クラむアントの属性の䞀郚がそれでもcustomer_entityに転送されたした28のフィヌルド、12の「1」に察しお。







コヌド



Magento 2はアヌキテクチャを倧幅に再蚭蚈したした-これは明確な進歩です。 DIずリポゞトリクラスレむダヌの倖芳、APIずSwaggerの統合、およびCLIコマンドセットず独自のコマンドの拡匵のみを歓迎できたす。 しかし... ... Magento 2のベストプラクティスに基づいお、プログラムでストア管理パネルの芳点からストアビュヌを保存しおみおください-動䜜したせん 。 これは、\ Magento \ Store \ Model \ Storeのレポクラスが存圚するにもかかわらず、 saveメ゜ッドがなく、\ Magento \ Framework \ Model \ AbstractModelから継承された「one」の暙準のsaveメ゜ッドが宣蚀されおいるにもかかわらずです@非掚奚。







そしお、 \ Magento \ Sales \ Api \ OrderStatusHistoryRepositoryInterfaceむンタヌフェヌスの実装を芋぀けおください。 di.xmlによれば、「\ Magento \ Sales \ Api \ Data \ OrderStatusHistory \ Repository」である必芁がありたす。 OK、クラス「\ Magento \ Sales \ Api \ Data \ OrderStatusHistory \ Repository」を芋぀けおみおください。 たぶん、このむンタヌフェむスはどこでも䜿甚されおいたせんか いいえ、 䜿甚されたす。 自動生成できたすか いいえ、ファクトリ、プロキシ、むンタヌセプタヌが生成され 、リポゞトリがありたす。







コヌドをさたよう-非垞に再蚭蚈されたモゞュヌル顧客などがありたすが、「1」からラップされたコヌドがありたす。 私は、「デュヌス」は「統䞀」に基づいお行われ、「政治的」な決定は、重芁な日付たでにリリヌスされる既存のコヌドを可胜な限り䜿甚するこずを決定したこずを理解しおいたすebayたたはebayによる販売、投資など。 たたは「 開発コストを削枛する」。 これは問題ではありたせん。 これだけであれば、コヌドの䜓系的か぀系統的な凊理によっお状況を修正できたす。 問題は、珟圚「効果的な」/「危機」のマネヌゞャヌが技術者ではなく、Magentoを担圓しおいるこずです男、犯眪なし-私はあなたの名前を知りたせん、私は結果によっおのみ刀断したす。







リリヌス



さお、2.1.4の2週間埌、2.1.5が出おきお、その唯䞀の目的が次の堎合、他に䜕が考えられたすか







このリリヌスでは、すべおのファむルの著䜜暩日付が曎新されたす。 機胜の倉曎やセキュリティの改善は含たれおいたせん。 これらの倉曎を単䞀のリリヌスに分離するこずは、将来の曎新ず開発者のワヌクフロヌを簡玠化するこずを目的ずしおいたす。







リリヌス 技術的な面でのマむナヌな倉曎の党リリヌス!!! そしお今、店のオヌナヌに圌らのために働く2.1.4がおそらく最埌を陀いお2.1.5ずたったく同じ機胜的な芳点からであるこずを説明するために







2月䞭旬のリリヌス蚈画 







今のずころ、2.1.5が著䜜暩、2.1.6のセキュリティ、2.1.7がバグ修正されたす。

バグ修正を2぀のグルヌプに分割できたすか-フロント甚ずサヌバヌ偎甚ですか そしお、リリヌスごずに䜕をしたすか たた、リリヌス2.1.6の翌日に突然セキュリティホヌルが発芋された堎合、2.1.8たたは2.1.9で「修埩」したすか







バグ修正



悲しいこずに、私芋では、 このプルリク゚ストはバヌゞョン2.1.5に含たれおいたせんでした。 ゚ラヌコヌドは次のずおりです。







  public function getStockId() { return $this->getData(self::KEY_WEBSITE_ID); }
      
      





ここに修正されたものがありたす







  public function getStockId() { return $this->getData(self::KEY_STOCK_ID); }
      
      





圌は2016幎9月29日に同僚のフェリックスデルバルによっお投皿されたした。 バヌゞョン2.1.22016幎10月12日、バヌゞョン2.1.32016幎12月14日、バヌゞョン2.1.42017幎2月7日、悪名高いバヌゞョン2.1.52017幎2月21日のリリヌスたで。 リリヌス蚈画から刀断するず、バグは2.1.7-3〜4か月で修正されたす。







しかし、これは明らかな間違いであり、初心者のプログラマでも理解できたす。 圌女がこのバグの議論で10人!!!の参加者党員に費やした時間はただ修正されおいたせん







ああ、嘘です-開発者ブランチで修正されたした。 しかし、 リリヌスでは -ず残り続けおいたす。







私は答えを聞くのが怖いからずいっお、「リリヌスされたバグではなく、開発者のブランチにはどれだけ倚くのそのような修正されたバグがあるのか​​」ずいう質問をしたせん。







慣性



Magentoには良い歎史があり、印象的なコミュニティがあり、eコマヌスのパむにはたずもな「ピヌス」がありたすが、同時に...プロゞェクトのコントロヌルが倱われおいたす。 Magento 2は、倉曎に察するタむムリヌな応答を停止したした。 圌女は倧きくなりすぎた。 マむクロ゜フトのように䞀床。







おそらく、いく぀かの法埋が斜行されおおり、それによるず、プログラミングだけでなく、䞀般に耇雑なシステムの䜜成は「必死の敗戊」です。 構造は、未知の耇雑な境界線に近づきたす。次の各ステップは、前のすべおのステップをたずめお行う䟡倀があり、機胜を構築するために、新しいものを䜜成するのが簡単です-他の原則に埓っお、より䜎いレベルの耇雑さで同様の機胜を実装し、蚱可する別の構造それ自䜓が同じ境界に近づくたで、この機胜を構築したす。 物理孊にも同様の境界がありたす-光の速さ、なぜプログラミングにもありたせんか







そのため、Magento 2の慣性は非垞に耇雑であるため、開発の管理がたすたす困難になっおいたす。 䞊蚘のデヌタ構造、コヌド、バグ修正、リリヌスで説明されおいる問題は、「耇雑さの䞊限」に近づいた結果です。







免責事項



ねえ、これは私の䞻芳的な意芋です。 私は匁護士ではなく、効果的なマネヌゞャヌでもありたせん。私は開発者であり、技術者です。 私の芖点から写真を芋るず、このように芋えたす。







Vive le Roi



sayingにもあるように、「聖なる堎所は空っぜではありたせん。」 そしお、Magentoでない堎合、誰ですか







画像







これらのデヌタから刀断するず、 WooCommerce たたは、ただ撮圱されおいないOroCommerce- 「ナニティ」の著者から あるいは、 Syliusのようなあたり知られおいないプレむダヌでしょうか それずも、新しい「王様」はたったくPHPに含たれないのでしょうか eコマヌスプラットフォヌムの゚ンドナヌザヌはどこに流れ、誰が新しい結晶化の䞭心になるのでしょうか







これらすべおの質問に答えるこずはできたせん。








All Articles