iOSアーキテクチャの設計:モチベーション

この一連の記事で、独自のアーキテクチャを作成するトピックにアプローチしましょう。

アーキテクチャとは?

アーキテクチャは、システム設計の最高レベルです。

システム設計は、アプリケーションのコードの生成を容易にする方法です。

アプリケーションは、(ビジネス)目標を達成するために必要な媒体です。

スキップできますか?

アプリを作成する前にシステム設計を準備していない場合でも、コードを記述する前に考える必要があります。これは偶発的なシステム設計と呼ばれ、偶発的なアーキテクチャ(AA)につながります。

偶発的なアーキテクチャを簡単に検出できます。
Q:コードが非常にいのはなぜですか?
A:歴史的な理由…

私は何を得ますか?

コーディングに飛び込むのではなく、正式なアーキテクチャを設定する目的は、コードが成長するガイドライン、制約、およびパターンを確立することです。

アーキテクチャのセットアップは、コードが電車のようにそれに沿って移動するための鉄道を敷設することと考えてください。

なぜ私は自制するのでしょうか?

ガイドライン、制約、およびパターンは次のことに役立ちます。

  • 最小限の驚きの原則に従うコード。
  • 既存のシステムの仕組みを理解する。
  • 車輪の再発明を避けます。
  • コミュニティに実用的なアイデアを広める。

インターネットからそれらのいずれかを使用できますか?

あなたはそれらから学ぶべきですが、彼らはすべて多くの問題に苦しんでいる:

  • 成長戦略を提供しないでください。
  • 1つのサイズのアプリとチームにのみ適しています。
  • ランダムなレベルのコンポーネントの抽象化とコミュニケーション。
  • 役割のあいまいな分布(「労働者」を見ています);
  • 容赦のない、狂信的な;)

設計するのに十分なスキルはありますか?

誰も十分ではありませんが、あなたが持っているほど、トンネルの終わりに光を見るのは簡単です。
これがあなたを助けるものです:

  • システム設計とパターンに関する古い本やホワイトペーパーを読む。
  • あなたに特効薬を売ろうとする新しい記事を避けてください。
  • 本番環境で他の人に役立つものを学びます。
  • インスピレーションの源として他のプラットフォームを使用します。
  • 自宅でアイデアを試してみて、もしうまくいくなら、それを仕事に持っていく
  • 疑わしい場合は決定を延期します(その間ばかげたことをします)。
  • 他の人とアイデアや実装について話し合う。

どこから始めれば?

目標から生じる要件を分析することから始める必要があります(成熟した取り組みのように)。

機能要件。

最悪の場合、次のような高レベルの機能仕様を取得できます。

  • ショッピングリストアプリケーション;
  • リストでの共同作業;
  • インターネットに接続せずに使用する機能。

この段階では、企業は要件が十分であると考えるかもしれません。たとえば、次のような発生する一連の質問に対する答えを見つけるのはあなたの責任です。

  • UIはどのように表示されますか?
  • アプリがサポートする必要があるデバイスは?
  • サーバー側も作成する必要がありますか?

他に尋ねるべき質問が思いつかないときは、次の段階に移りましょう。

組織の要件。

グリーンフィールドプロジェクトでない場合は、アーキテクチャの選択に多くの制限がある可能性があります。少なくとも次の質問に答えてください。

  • 私のチームは誰ですか?
  • 彼らは私たちのアーキテクチャに何を期待していますか?
  • ツールと言語を確立しましたか?
  • 既存のアーキテクチャを再利用できますか?

最終的にアーキテクチャの作成を開始できますか?

はい、できます!機能要件と組織要件をまとめることで、アイデアの概要を説明し、最終的に正式なアーキテクチャを構成できます!しかし、それはまったく別の話です…

今すぐ家に帰れますか?

あなたのアイデアを現実のものにする前に、あなたの便宜のためにまとめた包括的なチェックリストに対してそれらをストレステストすることをお勧めします。

チェックリストの使用方法は?

候補アーキテクチャを取り上げて、トライアルなどの質問に答えることで、その支持者のふりをしてください(iOSコミュニティの審査員を想像するのが役立ちます)。

読んでくれてありがとう!

Twitterでフィードバックを送信してください。

ここからどこへ行きますか?

既存のiOSアーキテクチャの概要。
MVCパターンのレビュー。