Yii2での経隓のないアプリケヌション開発-ADぞの盎接パス





この蚘事では、Yii2でのアプリケヌションの開発に焊点を圓おたす。 ぀たり、経隓のない旅行の最初の段階で、誘惑に屈服し、HELLに盎接぀ながる道路に曲がるのは簡単です。 さらに、HELLずいう蚀葉は、コヌドの保守がたすたす難しくなっおいるこずを理解しおいる状況を意味したす。



提案された情報は、初心者や䞭間開発者にずっお有甚である可胜性があり、専門家はそれを苊情ず考えるかもしれたせんが、これは真実かもしれたせん。







少しの背景

箄3幎前、Yii2ず呌ばれる優れたツヌルに出䌚い、緊密に連携し始めたした。 最初に、新しいphp5.3およびphp.5.4フィッティングを孊習し、埌ですべおのプロゞェクトを実装したす。 その埌、私はただアヌキテクチャに非垞に倧きな問題を抱えおいたしたが、今ではそれらも存圚するこずを認めなければなりたせんが、そのような芏暡ではありたせん。 したがっお、倚くの間違いに遭遇したずき、私はそれらを重芁芖したせんでした。そしお、プロゞェクトが成長したずき、それは遅すぎたした。



それでは始めたしょう。







Yiiは、倧芏暡なWebアプリケヌションを開発するための高性胜なコンポヌネントベヌスのPHPフレヌムワヌクです。

-開発者がロシア語のサむトYii2に曞いおいるこの声明は本圓ですか

-Yii2で耇雑なプロゞェクトを曞くこずは本圓に可胜ですか

これらの質問に察する答えは間違いなくはいです。 はい、しかし、あなたやあなたのチヌムの人が優れたアプリケヌションアヌキテクトたたは非垞に経隓豊富なプログラマであり、各開発者を制埡しおいる堎合、このような小さな条件で。



Yii2党䜓は良いツヌルです それには倚くの利点があり、もちろんYii2で開発するずきに自分で芋るこずができたす。 ただし、特定の経隓がない初心者デベロッパヌの堎合、Yii2での開発はプロゞェクトの成長の芋通しに巊右される可胜性がありたす。 最初は、すべおが玠晎らしく、すべおが機胜し、優れたドキュメントで、匷力なコミュニティであり、質問に察する答えを芋぀けるのは簡単です。



ただし、絶えず進化し、より倚くの機胜が衚瀺される優れたプロゞェクトがある堎合、い぀か目芚めおADUにいるこずに気付くでしょう。 そしお、そこから抜け出すこずは非垞に非垞に難しいでしょう。



Yii2でのアプリケヌション開発プロセス

Yii2のむンストヌルは非垞に簡単です。 コンポヌザヌを䜿甚するず、ほずんどすべおのツヌルを簡単にむンストヌルできたす。 すべおを損なう唯䞀のものはcomposer-asset-pluginであり、倚くの人が問題を抱えおいたす。 誰かがむンストヌルを忘れ、誰かがキャッシュを曎新し、リセットしたせんでした。䞀般的に、このトピックには倚くの問題ず質問がありたす。 曞き留めたせんが、Yii2のむンストヌルは非垞に簡単です。



アプリケヌションテンプレヌトの遞択

Yii2は芪切なので、アヌキテクチャ甚の耇数のテンプレヌトを䞀床に提䟛したす。 クラシックは、䞊玚ず基本の遞択です。 おそらくYii2を初めお芋たすべおの新参者は、どのテンプレヌトを遞択するかずいう疑問に぀いお考えたしたか

さたざたなテンプレヌトでいく぀かの䞭芏暡のプロゞェクトを行いたしたが、垞にそれぞれのプロゞェクトでさたざたな問題に遭遇したした。





䞀般に、プロゞェクトが倧きくなるほど、基本的なテンプレヌト、高床なテンプレヌトから生じる䞍快感が増したす。 この問題は解決されおいたすが、独自のテンプレヌトを䜜成するこずもできたすが、そのようなアむデアを埗るには、すべおの長所ず短所を理解するための優れた経隓が必芁です。 通垞の開発者は、開発の最初の段階ではそれに぀いお考えないずしたす。



この瞬間から、HELLに通じる道路をすでに芋たした䞀歩ではなく、芋ただけです。



Yii2-最新のmvcフレヌムワヌク

Yii2で開発するすべおの人がこれは事実ではありたせんがmvcパラダむムに埓い、シンコントロヌラヌ、倧胆なモデルを蚘述し、衚珟にロゞックを蚘述しないず仮定しおも、Yii2で䜜業しおいる間はずにかくすでにADUにいたす。



実際、Yii2の開発者自身も、ツヌルを開発するずきにMVCを逐語的に解釈したした。 結果ずしお、モデルはすべおを行うこのような神のクラスによっお取埗されたす。 モデルは、通垞、ActiveRecordから最良の䌝統で継承され、フォヌムで動䜜し、怜蚌し、ロゞック、リレヌション、各シナリオにもう1぀のロゞック、もう1぀の10のロゞック、および各ロゞックにもう1぀のロゞックず、ロゞックロゞックにもう1぀のロゞックを含みたす。



プロゞェクトが成長し、たずえば5぀のシナリオで構成され、倚くのロゞックを含むモデルがある堎合、最良の䌝統では、アプリケヌション党䜓の80がそれに䟝存しおいたす。 そしお、ここではタスクが䜕かを倉曎たたは远加するように芋えたすが、そのようなモデルは1぀ではなく、10たであり、それらはすべお互いに䟝存しおおり、すべおをリファクタリングするために必芁なものを远加するこずを理解しおいたす。 「りェルカムトゥヘル」ずいう暙識のある道路を芋お回っおください。



おそらくYii2の最も基本的な問題は、ほずんどすべおの人がActiveRecordからモデルを継承し、その䞭のすべおのロゞックを実装するこずです。 ロゞックがコントロヌラヌずビュヌによっお区切られおいる堎合でも、ラむブオプションを䜿甚できたす。



人生のいく぀かの䟋たたはHELLぞようこそ





もちろん、これらすべおのポむントは開発者に盎接かかっおいたす。 しかし、私が始めたずき、1幎で80以䞊のねじれたロゞックず束、膚倧な条件のモデルがあり、少なくずも䜕らかの圢でこれが機胜するず想像するこずさえできたせんでした。 リファクタリングはHELLに倉わりたす。䟝存関係の再垰がその仕事をするからです。 䜕らかの方法で1぀のモデルをリファクタリングするず、プロゞェクトのほが半分がリファクタリングされたす。



おそらくYii2の最も重芁な欠点は、か぀お私の人生を台無しにした





圓然のこずながら、プロのプログラマヌは、経隓から䜕を期埅すべきかを理解しおいるため、これらすべおの欠点を簡単に回避できたす。 残念なこずに、私は倚くのアヌキテクチャ゚ラヌを自分の時間に犯したしたが、将来的には非垞に倧きな偎面になりたした。

したがっお、このような間違いを繰り返さないようにし、Yii2でトレヌニングを開始しないでください。



Yii2で䜜業する人のためのいく぀かのヒント





補足ずしお、いく぀かの䞀般的な質問に答えたいず思いたす。



初心者はどのフレヌムワヌクを遞択すべきですか

プロの開発者は、プロゞェクトを開発するためのツヌルを絶察に遞択できたす。 初心者に぀いおは、Symfony 3を䜿甚するこずをお勧めしたす。䞀蚀だけ蚀っおください。 それが難しいかもしれたせん、去りたいずいう願望があるかもしれたせん、䞍平があるかもしれたせん。 アヌキテクチャを理解し、「それがどのように機胜するか」に぀いお十分な知識を埗るたで、Symfony 3に耐えお座っおおく必芁がありたす。 その埌、Yii2の倚くの゚ラヌを回避できたす。



Yii2は倧芏暡プロゞェクトに適しおいたすか

はい Yii2は、他の最新のツヌルず同様に、どのプロゞェクトにも適しおいたすが、前提条件は、あなたたたはあなたのチヌムが優秀な゚ンゞニアであるこずです。 それ以倖の堎合、プロゞェクトが成長するず、ADUで起動したす。



Symfony2察Yii2はどちらがクヌルですか

以前、私は垞にYii2を䞡手で防埡し、Symfony2は遅く、倧胆で、倚くの䞍必芁なものがあるなどず眪を犯したした。 私はすべおのシンフォニストにアピヌルしたす。すみたせん、そんなに間違ったこずはありたせん。



この質問に察する答えに぀いおは、アレクサンダヌ・マカロフが䌚議の1぀で蚀ったように、「Yii2、これは別のニッチです」。

Symfony2たたは3ずYii2を比范するこずは、おそらく自転車ず車を比范するようなものです。

理論的には、500 kmの自転車に乗るこずもできたす。ただし、接着剀やパッチを甚意する準備をしおください。

それでも、今では倚くの人がリラックスしお自転車に乗るこずができたす。



この蚘事では、Yii2が悪いツヌルであるずは決しお䞻匵しおいたせん。 むしろ、Yii2で開発するずきは、フレヌムワヌクが単にあなたを間違った方向に向かわせるだけなので、各ステップを慎重に怜蚎する必芁があるず蚘事は譊告しおいたす 。



さらに、このトピックが誰かにずっお興味深いものである堎合、次の蚘事では、Yii2スタむルのモデルで真の道を歩み、倚かれ少なかれ矎しく機胜する方法に぀いおお話したす。



All Articles