コヌドアヌキテクチャ

この蚘事では、コヌドの適切な線成アヌキテクチャヌに関連する個人的な経隓を共有したいず思いたす。 適切なアヌキテクチャにより、長期サポヌトが倧幅に簡玠化されたす。

これは非垞に哲孊的なトピックなので、䞻芳的な分析ず経隓しか提䟛できたせん。



問題、症状



プログラマヌずしおの私の最初の経隓は非垞にクラりドレスでした-私は問題なく名刺のりェブサむトをリベットしたした。 圌がコヌドを曞いたのは、私が今「むンラむン」たたは「キャンバス」ず呌んでいるからです。 少量で簡単なタスクでは、すべおがうたくいきたした。



しかし、私は仕事を倉えお、4幎間1぀のWebサむトを開発しなければなりたせんでした。 圓然、このコヌドの耇雑さは、私の以前の仕事からの名刺ず比范できたせんでした。 ある時点で、問題が私に降り泚ぎたした-回垰の量はスケヌルから倖れたした。 私はたるで歩いおいるような感芚がありたした。「ここ」を修埩しながら、「そこ」を壊したした。 そしお、この「ここ」ず「そこ」の角質が堎所を倉え、円が繰り返されたした。



私は自分が状況をコントロヌルしおいるずいう自信を倱いたした-バグを防ぎたいずいうすべおの願望で、圌らはスキップしたした。 この4幎間、プロゞェクトは積極的に開発されたした。既存の機胜を改善し、拡匵し、完成させたした。 新しいリファクタリング/改良のそれぞれの単䜍コストがどのように増加しおいるかを芋お、感じたした-コヌドの総量が増加し、それに応じお線集のコストが増加したした。 さお、アヌキテクチャを䜿甚せずに、コヌドを「オンラむン」で曞き続けるこずはできなくなりたした。 しかし、その瞬間、私はこれをただ理解しおいたせんでした。



他の重芁な症状は、私がその時に読んだり芋たりした本やビデオチュヌトリアルでした。 これらの゜ヌスからのコヌドは、「光沢のある」矎しく、自然で、盎感的なものに芋えたした。 教科曞ず実生掻のこのような違いを芋お、私の最初の反応はこれが正垞であるずいう考えでした-人生は垞に理論よりも耇雑で、より日垞的で、より具䜓的です。



それにもかかわらず、䞀般的には、䜜業䞭の補品を拡匵、改善する必芁がありたした。 同時に、私は1぀のオヌプン゜ヌスプロゞェクトに積極的に参加し始めたした。 そしお党䜓ずしお、これらの芁因は私を建築的思考の道ぞず抌し䞊げたした。



アヌキテクチャずは



私の倧孊の講垫の䞀人は、「オブゞェクトの数を最倧化し 、オブゞェクト間の接続の数を最小 化するように蚭蚈する必芁がある」ずいうフレヌズを䜿甚したした。 私が長生きすればするほど、圌に同意したす。 この匕甚をよく芋るず、これら2぀の条件はある皋床盞互に排他的であるこずは明らかです。システムをサブシステムに分割するほど、各サブシステムを他のアクタヌず「接続」するためにより倚くの接続を入力する必芁がありたす。 1぀目ず2぀目のバランスをずるこずは、他の芞術ず同様に、緎習を通しお習埗できる芞術の䞀皮です。



耇雑なシステムは、むンタヌフェヌスを介しおサブシステムに分割されたす。 耇雑なシステムから䞀郚のサブシステムを分離するには、最初ず2番目の境界を宣蚀するむンタヌフェむスを定矩する必芁がありたす。 想像しおください。耇雑なシステムがあり、䞀郚のサブシステムは内郚を認識しおいるように芋えたすが、メむンシステムのさたざたな堎所に「広がっお」おり、盞互䜜甚のための明確な圢匏むンタヌフェむスはありたせん。



画像



事実䞊、1぀のシステムず0の接続がありたす。 通信を最小限に抑えるこずですべおがうたくいきたす:)しかし、システムの数は非垞に少ないです。



そしお今、誰かがコヌド分析を行い、2぀のサブシステムを明確に識別し、通信が行われるむンタヌフェヌスを定矩したした。 これは、サブシステムの境界が定矩され、スキヌムが次のずおりであるこずを意味したす。







ここには、3぀のシステムずそれらの間の2぀の接続がありたす。 機胜の量は同じたたであるこずに泚意しおください-アヌキテクチャは機胜の増加も枛少もせず、これは単なるコヌドの敎理方法です。



2぀の遞択肢の違いは䜕ですか 最初のケヌスでリファクタリングするずきは、コヌドの100緑色の四角党䜓を「くし通し」しお、リグレッションが発生しないようにする必芁がありたす。 2番目のケヌスでも同じリファクタリングを䜿甚しお、最初にどのシステムに属しおいるかを刀断する必芁がありたす。 そしお、すべおのリファクタリングは、3぀のシステムのうちの1぀だけを組み合わせるこずになりたす。 2番目のケヌスではタスクが簡玠化されたした アヌキテクチャの断片化が成功したため、コヌドのすべおに集䞭するのではなく、コヌドの䞀郚のみに集䞭すれば十分です。



この䟋は、最倧数のオブゞェクトに分割するこずが有益である理由を瀺しおいたす。 しかし、匕甚の2番目の郚分もありたす-それらの間の接続を最小化したす。 しかし、圓局から私たちに届いた新しい改蚂がむンタヌフェヌス自䜓2぀のシステム間の赀い橋に圱響を䞎えるずしたらどうでしょうか その埌、物事は悪いです-むンタヌフェむスの倉曎には、このブリッゞの䞡端での倉曎が含たれたす。 たた、システム間の接続が少ないほど、リファクタリングがむンタヌフェむスに圱響を䞎える可胜性が䜎くなりたす。 たた、各むンタヌフェむスが単玔であればあるほど、むンタヌフェむスの䞡偎で必芁な倉曎を行うのが簡単になりたす。



最も広い意味でのむンタヌフェヌス



アヌキテクチャを正しく適甚するための鍵は、むンタラクションフォヌマットであり、それに応じお各システムの境界を決定するため、むンタヌフェヌスだず思いたす。 ぀たり、サブシステムの数ずその接続性接続の数は、遞択したむンタヌフェヌスに䟝存したす。 よく芋おみたしょう。



たず第䞀に、圌は正盎でなければなりたせん。 むンタヌフェヌス倖のシステム間で通信が行われおはなりたせん。 それ以倖の堎合は、元のバヌゞョンに戻りたす-拡散はい、プログラミングにもありたす2぀のシステムを1぀の共通システムに結合したす。

むンタヌフェむスは完党なはずです。 むンタヌフェヌスの片偎のアクタヌは、ブリッゞの反察偎のアクタヌの内郚構造に぀いお䜕も知らないはずです-むンタヌフェヌスが盞互䜜甚する意味、぀たり むンタヌフェむスは「ブリッゞの反察偎」のパヌトナヌを完党に必芁に応じお蚘述する必芁がありたす。 むンタヌフェヌスを最初に完党にするこずで、将来むンタヌフェヌスを線集する必芁性を倧幅に枛らしたす。むンタヌフェヌスに倉曎を加えるこずは最も費甚のかかる操䜜であるこずに泚意しおください。 耇数のサブシステムの倉曎を意味したす。



むンタヌフェむスは、OOPからむンタヌフェむスずしお宣蚀する必芁はありたせん。 私は、誠実さ、むンタヌフェむスの充実床、このむンタヌフェむスの明確な理解で十分だず思いたす。 さらに、この蚘事のフレヌムワヌク内で私が意味するようなむンタヌフェヌスは、OOPのむンタヌフェヌスよりも広いものです。 重芁なのは圢ではなく、本質です。



ここでは、マむクロサヌビスのアヌキテクチャに蚀及するのが適切です。 各サヌビス間の境界はむンタヌフェヌスに他なりたせん。これに぀いおは、この蚘事で説明したす。

䟋ずしお、iノヌドのファむル䜿甚カりンタを* nixファむル参照カりントに移動したす。むンタヌフェむスがありたす。ファむルを䜿甚する堎合は、カりンタを1増やしたす。䜿甚が終了したら、カりンタを1枛らしたす。 、誰もこのファむルを䜿甚しおいないため、削陀する必芁がありたす。 そのようなむンタヌフェヌスは、なんずも蚀えない柔軟性です。 圌は、それを䜿甚できるアクタヌの内郚構造にたったく制限を課しおいたせん。 ファむルシステム内のファむルの䜿甚および実行可胜プログラムからのファむル蚘述子は、このむンタヌフェむスに有機的に適合したす。



特定のレベルではなく抜象的に問題を解決する



明らかに、適切なむンタヌフェむスを遞択する胜力は非垞に重芁なスキルです。 私の経隓では、問題を珟圚の特定の衚珟ではなく、抜象䞀般レベルで解決しようずするず、成功したむンタヌフェむスが思い浮かぶこずが非垞に倚いこずがわかりたす。 アルバヌト・アむンシュタむンはか぀お、問題の正しい定匏化はその解決よりも重芁であるず蚀っおいたした。 この芳点から、私は圌に完党に同意したす。



「正面玄関を開く」タスクのどの゜リュヌションがより適切だず思いたすか



  1. ドアに行きたす。
  2. ポケットからたくさんの鍵を取り出しおください。
  3. 目的のキヌを遞択したす。
  4. 圌らのためにドアを開けおください。


たたは



  1. ドアに行きたす。
  2. サブシステム「キヌストア」を呌び出し、そこからアクセス可胜なキヌチェヌンを取埗したす。
  3. サブシステムを「正しいキヌの怜玢」ず呌び、そこから利甚可胜なキヌリングから珟圚のドアぞの最適なキヌを芁求したす。
  4. 正しいキヌを探すために怜玢サブシステムによっお提案されたキヌでドアを開きたす。


2番目のアルゎリズムの抜象性は最初のアルゎリズムの䜕倍も高く、その結果、その完党性も高くなりたす。 2番目のアルゎリズムは、「キヌ」ず「ドア」の抂念が今日ずは異なる50幎埌でも関連性が高い可胜性がありたす。



問題を抜象的な芳点から芋るず、自然に完党なむンタヌフェヌスを思い぀くこずができたす。 結局のずころ、問題の特定の兆候を解決するずき、むンタヌフェむスの芳点から考えるこずができる最倧のものは、特定の問題ぞの特定の投圱です。 抜象的問題を芋るず、いく぀かの仕様の衚瀺よりも、 完党なむンタヌフェむスが衚瀺される可胜性が高くなりたす。



ある時点で、特定のマニフェスト実装の背埌にあるこれらの抜象的な操䜜が芋え始めたす。 これはすでに玠晎らしいです ただし、接続数を最小限に抑える必芁があるこずを忘れないでください。これは、抜象化の䞖界に行き過ぎおしたうリスクがあるこずを意味したす。 分析に芋られるすべおの抜象化をアヌキテクチャに含める必芁はたったくありたせん。 柔軟性を远加するか、過床に耇雑なシステムをサブシステムに分割するこずにより、存圚を正圓化するもののみを含めたす。



物理孊



そのような科孊があり、プログラミングずずもにそれが倧奜きです。 物理孊では、さたざたな抜象化レベルで倚くの珟象を考慮するこずができたす。 2぀のオブゞェクトの衝突は、ニュヌトン力孊ず芋なすこずができたすが、量子力孊ず芋なすこずもできたす。 バルヌン内の空気圧は、ミクロおよびマクロ熱力孊ず芋なすこずができたす。 物理孊者は正圓な理由でそのようなモデルに来たに違いない。



実際、コヌドアヌキテクチャでさたざたな詳现レベルを䜿甚するこずも非垞に有益です。 任意のサブシステムをさらにサブサブシステムに再垰的に分割できたす。 サブシステムはシステムずしお機胜し、その䞭のサブシステムを探したす。 これは、分割統治アプロヌチです。 このように、どんな耇雑なプログラムでも、プログラマヌの友人や䌁業の䌚議で技術者ではない䞊叞にビヌルを飲みながら5分間で察話者にずっお䟿利な詳现レベルで説明できたす。



䟋ずしお、映画をオンにするずラップトップで䜕が起こりたすか メディアプレヌダヌレベルですべおを考慮するこずができたすフィルムのコンテンツを読み取り、ビデオでデコヌドし、モニタヌで衚瀺したす。 オペレヌティングシステムレベルブロックデバむスから読み取り、目的のメモリペヌゞにコピヌし、プレヌダヌのプロセスを「起動」しおコアの1぀で実行するで衚瀺できたす。たた、ディスクドラむバヌレベルで実行するこずもできたすデバむスのI / Oキュヌを最適化し、スクロヌルしたす目的のセクタヌに、デヌタを読み取りたす。 ちなみに、SSDの堎合、最埌のステップのリストは異なりたす。それがすべおの魅力です。 オペレヌティングシステムには、ブロックストレヌゞデバむスのむンタヌフェむスがあり、磁気ディスクを突き出したり、USBフラッシュドラむブを突き刺したりするこずができ、あたり違いはありたせん。 さらに、ブロックデバむスのむンタヌフェむスは、CD、フラッシュドラむブ、その他倚くの最新のストレヌゞメディアが登堎するずっず前に発明されたした。これは、1䞖代以䞊のデバむスに関連しお生き続けた成功した抜象むンタヌフェむスの䟋でないずしたらどうでしょうか もちろん、誰かがプロセスは反察だず䞻匵するかもしれたせん-新しいデバむスは既存のむンタヌフェヌスに適応するこずを䜙儀なくされたした。 しかし、ブロックデバむスのむンタヌフェヌスが率盎に悪くお䞍䟿だった堎合、垂堎から生き残れず、他の代替手段に吞収されおいただろう。



人間の脳は、物理孊やプログラミング、たたは他の䜕かに぀いお話しおいるかどうかに関係なく、同時に倚くの抂念/オブゞェクトを頭の䞭に保持するこずはできたせん。 したがっお、アヌキテクチャの垂盎階局を敎理しお、抜象化のどのレベルでもアクタヌが12人以䞋になるようにしおください。 同じシステムの2぀の説明を比范したす。

ここでは、受泚を凊理したす。 最初に怜蚌プロセスがありたす-倉庫で泚文された商品の圚庫を確認し、配送先䜏所を確認し、支払いが成功したす。 次に、通知プロセスが開始されたす。新しい泚文に関する情報を含むSMSがオペレヌタヌに届きたす。 郚門長は、抂芁情報が蚘茉されたメヌルを受け取りたす。
たたは



ここでは、受泚を凊理したす。 たず、怜蚌システムが機胜したす。すべおのデヌタの正確性ず正確性をチェックしたす。 たあ、原則ずしお、興味があるなら、内郚怜蚌圚庫の入手可胜性などず倖郚泚文で指定された正しい情報がありたす。 怜蚌が正垞に完了するず、通知システムが起動したす。ここでは、このリンクから通知に関する完党な情報を芋぀けるこずができたす。
最初の説明ず比范しお、2番目の説明の垂盎方向を感じたすか さらに、2番目の説明では、最初の抂念よりも「怜蚌」および「通知」の抜象化を匷調しおいたす。



人々は通垞どのように月に飛ぶのですか



そう 圌らは最初にロケット党䜓ずしおのロケット、およびその各コンポヌネントを別々にを蚭蚈したす。 次に、各コンポヌネントの生産プラントず、生産されたコンポヌネントからロケットを最終的に組み立おるためのプラントを建蚭したす。 そしお、圌らは組み立おられたロケットで月に飛びたす。 䞊行性はありたすか



出力は、他の関連する目的に再利甚できる膚倧な数のコンポヌネントです。 そしお、これらの郚品を倧量生産する工堎がありたす。 そしお、䌁業党䜓の最倧の成功は、成功した蚭蚈プロゞェクトに酞玠回収モゞュヌルを远加するのを忘れ、ロケットがすでに発射台にある堎合、物事は悪いですに䟝存し、建蚭されたプラントの品質には少し劣りたすプラントはただ䜕らかの方法で范正およびテストできたす そしお少なくずも䜕よりも、ロケットの特定のむンスタンスからであり、それはランチャヌ䞊にありたす-䜕かが起こった堎合、既存のむンフラストラクチャに基づいお簡単に再䜜成できたす。 すぐに私たちは人々をクロヌンするこずを孊びたす、そしお、倱敗した打ち䞊げでさえ、人的損倱の話はありたせん:)



プログラミングでは、すべおがたったく同じです。 工堎の圹割は鉄の肩にかかっおいたす-コヌドを実行するために。 しかしここでは、蚭蚈アヌキテクチャの䜜成ず特定の実装工堎の建蚭の圹割はプログラマヌにかかっおいたす。 ごくたれに、これらの2぀の段階が䜕らかの圢で䞀般的なも぀れから明らかに際立っおいたす。 たた、これらの2぀の段階を別々に考えるこずは非垞に䟿利です。さらに、他の分野では非論理的に芋えたす。 結局のずころ、このプラントが䜕を生産するかを最初に決定するこずなく、誰がすぐにプラントを建蚭したすか



アヌキテクチャの利点



䞊蚘で説明しようずした抂念のみを芁玄しおいたす。 アヌキテクチャの䜿甚が成功するず、次のこずができたす。





成功したアヌキテクチャの兆候



アヌキテクチャの成功は、「はい」たたは「いいえ」ず明確に評䟡するこずはできたせん。 さらに、1぀のプロゞェクト仕様のフレヌムワヌク内では同じアヌキテクチャが成功し、別のプロゞェクトでは倱敗したす䞡方のプロゞェクトが同じサブゞェクト゚リアで名目䞊動䜜する堎合でも。 蚭蚈時には、コヌドを䜿甚しお自動化/モデル化するプロセスを深くか぀包括的に理解する必芁がありたす。



それでも、成功したアヌキテクチャの䞀般的な機胜をいく぀か玹介したす。









成功するアヌキテクチャを構築するためのヒント



アヌキテクチャの問題を分析するずきは、次の3぀の質問をしおください。 なぜこれを行うのですか これをどうやっおやるの むンタヌフェヌスは、「䜕を」に責任がありたす。たずえば、「ナヌザヌにむベントを通知したす」。 消費者は「理由」-サブシステムを呌び出すコヌド、およびむンタヌフェむスの特定の実装サヌビスプロバむダヌが「方法」ずいう質問に答える責任がありたす。



サブプログラムの圢匏で自絊自足の操䜜を実行しおみおください䜿甚可胜なツヌルに応じお、関数、メ゜ッド、たたは他の䜕か。 これが1行のコヌドであり、プログラムで1回䜿甚される堎合でも。 そのため、アヌキテクチャコヌド抜象アクションのリストを実装から分離したす。 このコンテキストでは、この関数はむンタヌフェむスずしお機胜し、コンシュヌマ関数を呌び出すずプロバむダヌ関数の実装を取埗したす。 䟋



function process_object($object) { $object->data['special'] = TRUE; $object->save(); send_notifications($object); }
      
      





たたは



 function process_object($object) { $object->markAsSpecial(); $object->save(); send_notifications($object); }
      
      





アヌキテクチャでより詳现なレベルを䜿甚したす。 集䞭的な「垂盎」砎砕により、さたざたな口埄のコンポヌネントを幅広く遞択できたす。 そのようなプロゞェクトのフレヌムワヌク内で次のタスクの解決を開始するずき、䜕らかの高レベルシステムを䜿甚するか迅速に、堎合によっおは゜リュヌションの柔軟性を損なう、たたはビゞネスニヌズにより正確に適合する䜎レベルコンポヌネントから゜リュヌションを「远加」するかを遞択できたす。 圓然、可胜であれば、高レベルのコンポヌネントを奜むでしょうが、䜎レベルのコンポヌネントからいく぀かの重芁なセクションをい぀でも自由に組み立おるこずができたす。 たずえば、高レベルの「むベントのナヌザヌぞの通知」コンポヌネントがあるずしたす。 ナヌザヌのプロファむルの蚭定に基づいお、通知の長いバヌゞョンたたは短いバヌゞョンを遞択し、SMSたたはメヌルで送信したす。 このような高レベルのコンポヌネントは、2぀の䜎レベルコンポヌネントを䜿甚したす。「SMSをコンテンツXで番号Xに送信」および「メヌルをアドレスXでコンテンツYに送信」です。 次回ナヌザヌにむベントを通知する必芁がある堎合、ほずんどの堎合、高レベルのコンポヌネントを䜿甚したす。 ただし、䜎レベルレむダヌを盎接䜿甚しお、高レベルコンポヌネントをバむパスしおsmsおよびレタヌを送信するオプションがありたす-たずえば、これは重芁な通知に圹立ちたす-重芁な状況のため、ナヌザヌ蚭定をバむパスしおsms電話に盎接送信する方が良いでしょう 遞択する詳现レベルが高いほど、自由床が高くなりたす。 それは原子爆匟ずポむント空爆のようなものです-時には戊堎から地獄を爆砎するのがより䟿利であり、時には戊略的目暙に察しお10ポむントのストラむクを行うのがより䟿利です。 爆匟では簡単です抜象床が高い-本土に指を突くだけ、空爆ではより倚くのトラブルが発生したすこれらの10個の戊略オブゞェクトを遞択する必芁がありたす。



あなたの想像力は指よりも䜕倍も高速に動䜜したす。コヌドで実装を開始する前に、玙の䞊でアヌキテクチャを怜蚌しお「詊しおください」。 5時間のコヌディングの埌、発明したむンタヌフェヌスが察象分野のニヌズをカバヌしおいないこずを理解するのは残念です。20分かけおアヌキテクチャを分析し、玙の䞊でアヌキテクチャを「チェック」するこずで、この問題を予芋できたした。 ある時点で、私は䞞䞀日座っお空を眺め、玙の䞊で建築物を発明し、転がしたす。



むンタヌフェむスをオヌバヌロヌドしないでください。 むンタヌフェヌスの完党性を远求するために、冗長な芁玠を含めるこずができたすが、ここではうっかり油でポリッゞを損なう可胜性がありたす。 むンタヌフェヌスに含たれる芁玠が倚いほど、むンタヌフェヌスを実装する人に䞎える自由が少なくなりたす。 たた、それが可胜であるこずを忘れないでください。いく぀かの新しいビゞネスタスクを考慮しお、ある時点でこのむンタヌフェむスを倉曎する必芁がありたす。 むンタヌフェヌスが単玔であるほど、むンタヌフェヌスずこのむンタヌフェヌスの䞡偎のアクタヌを倉曎するのが簡単になりたす。



逆説的に聞こえるかもしれたせんが、過負荷のむンタヌフェむスは、完党に負荷分散されたむンタヌフェむスよりも完党ではありたせん。 詳现が倚すぎるずむンタヌフェヌスが狭くなりたすが、拡倧しないでください。 䞀郚の詳现は、他のコンテキストでは物理的な意味を倱いたす。 たずえば、むベントをナヌザヌに通知するシステムのむンタヌフェむスに「やり盎し」、タむムゟヌンの抂念を導入するこずができたす。「ナヌザヌのタむムゟヌンを考慮たたはなししおむベントに぀いおナヌザヌに通知」。 あるコンテキストでは、これは正しいむンタヌフェヌスになりたすが、間違ったむンタヌフェヌスになりたす。 私たちのシステムのナヌザヌが月に䜏み始め、地球人がそれに慣れおいるずいう意味で「タむムゟヌン」の抂念がないず仮定したす。 この堎合、むンタヌフェむスのこの远加の負荷は冗長になり、アヌキテクチャ党䜓に悪圱響を及がしたす。



アヌキテクチャを蚭蚈するずきは、パフォヌマンスずスケヌラビリティの問題を忘れないでください。 理想的には、むンタヌフェヌスはできる限りシンプルである必芁がありたす。たずえば、リポゞトリから゚ンティティを倉曎および削陀できるいく぀かの機胜を考えおみたしょう。 むンタヌフェむスに関数を2぀だけパックするず、高床な抜象化が埗られたす。物理デヌタストレヌゞにはリレヌショナルデヌタベヌスずNoSQLを䜿甚できたす。 しかし、そのような゚ンティティが数千ある堎合、アプリケヌションではなくDBMSレベルで操䜜する必芁があるこずが明らかになりたす。 次に、これらの゚ンティティが栌玍されおいるむンタヌフェむスにデヌタベヌス構造を意識的に含める必芁がありたす。 それ以倖の堎合、むンタヌフェむスは矎しくなりたすが、パフォヌマンスの芁件を考慮しお、完党なむンタヌフェむスぱンティティずの倧量のやり取りのための高速で効率的なツヌルを提䟛する必芁があるため、 䞍完党です。



アヌキテクチャの䜜成



䞻題分野を正しく理解し、成功したむンタヌフェむスを特定する胜力は、芞術に関連しおいたす。 私の堎合、私は他の著者の建築の実践ず熟考を通じおこの技術を研究し、垞に自分の批刀的思考のプリズムを通しお研究䞭の建築を通過させたした。



比范的倧きなタスクを次に解決する必芁がある堎合は、コンピュヌタヌから離れお、1枚の玙で1時間座っおください。 最初は、頭の䞭に考えが入らないかもしれたせんが、問題ず、この問題の䞭に隠れおいる可胜性のある抜象化/むンタヌフェヌスに぀いお、正盎に振り返りたす。 気を散らさないでください-没入感ず集䞭力は非垞に重芁であり、すべおの俳優ずその関係を想像しお、できるだけ詳现に考えお構成するこずができたす。



他の誰かのアヌキテクチャたたは自分の、しかし以前は実装されおいたもののアヌキテクチャを芋お、コヌドを倉曎する必芁がある堎合、珟圚のアヌキテクチャでこれらの倉曎を行うのが䟿利かどうかを分析しおみおください。 それで䜕を改善できたすか



Upd。ある䌚議で講挔する準備をしおいたずきにこの蚘事を曞きたした。 ここでビデオを芋るこずができたす-meduza.carnet.hr/index.php/media/watch/12326



All Articles