1

私の背後には多くの.Net開発があり、ほとんどのアプリケーションはUI、サービス、BL、DAL、およびデータベース層に階層化されていました。多くの場合、各レイヤーは独自のプロジェクトであり、すべてが相互に参照して、ソリューション全体でデータのフローを実行しています。

私はJavaとAndroidを初めて使用します。1つの出力ファイル、つまり1つのプロジェクトを開発しているように見えます。レイヤーごとに異なるフォルダーを使用するだけでしょうか?たぶん、その中にクラスがあるServiceLayerフォルダーと、そこにビジネスクラスがあるBusinessLayerフォルダーですか?

コードをクリーンで保守しやすい状態に保つための通常の構造は何ですか?私は(まだ)専門的な理由でこれを行っていません。純粋に学ぶことです。

編集:アプリケーションは、ユーザーが何かに関するデータを毎日入力できるようにするシンプルなアプリケーションになります(シンプルなUI、データベースから「参照データ」を取得するいくつかのドロップダウンルックアップがあります)、ユーザーが何かを選択できるようにします、詳細を入力し、組み込みのSQLiteデータベースに保存します。

それが機能したら、データをオンラインデータベースに同期させたいと思います(.Netホストシステム(今のところGoDaddy)でホストされるWebサービスを作成します)。これにより、最新のデータが保存され、Webフロントエンドが提供されて簡単になります。ユーザーがラップトップまたはPCにアクセスできる場合のデータ入力)。つまり、アプリを更新し、サーバーに更新を送信する、ある種のWebサービスです。

4

1 に答える 1

2

まず、それはあなたがしているアプリケーションに依存します。

ユーザーがアプリケーションをどのように操作するかについて、テキストまたは概略的な説明を行う必要があります。考えられるすべてのシナリオを修正します。後でテストに使用する例を書き留めます。

機能に属するものと、変更可能な構成に属するものを決定します。シナリオから機能とデータエンティティを抽出します。

シナリオから、アプリがどうなるかを決定します。それは、サービス、アクティビティ、ウィジェット、さらにはコンテンツプロバイダー、またはいくつかの異なるコンポーネントを含む複雑なシステムです。シナリオに対する決定をテストします。

複雑なシステムの場合は、機能とデータエンティティをアプリケーションコンポーネント間で分散します。コンポーネントとそれらが何であるか(アクティビティまたはその他)のリストを作成します。

UIコンポーネントのリストを作成し、その機能を説明します(まだ方法はありません)。これらは、後でウィジェットとアクティビティ、またはフラグメントまたはレイアウトになります。

UIコンポーネントのドラフトレイアウトを作成します。あるパスから別のパスに簡単にパスします。UIを見てください。シナリオに戻り、ドラフトUIでそれらすべてを再生します。すべてのUIコンポーネントとクラスは、パッケージまたはパッケージの1つの階層に配置されます。

データエンティティのリストを作成します。何が何になるかを決めます。それらをDBまたは別のDBのコレクションまたはテーブルとして計画します。それらをクラスとして作成し、パッケージの別の階層または別のパッケージに配置します。ここには、DBヘルパー(SQLによってDBと通信するクラス)も配置します。

UIとデータエンティティにテストデータを入力して起動するためのテストクラスを作成します。

アダプターは、親のGroupViewでのみ使用されるため、パブリックである必要はありません。したがって、通常、アダプタ用のファイルはありません。

すべてのグローバルを特別な静的クラスに入れないでください。これは悪い習慣です。コードと構成を混合しているので。

構成データはリソースに入れられます。それらのいくつかが複雑な場合は、XMLソースとパーサーを使用してください。リソースデータのリーダーをグローバル変数にします。それらのすべてが静的になるわけではありません!たとえば、メインのActivityインスタンスに属することができます。

コードで構成不可能な定数を使用しないでください!たぶん、あなたの名前だけです:-)。他のすべての定数は時々非定数になります。

常にそうしてください:何かを書く-何かをバルクに接続する-この新しいもののテストを追加する-この新しいものをテストする-バルクをテストする-繰り返す。小さなステップのみ!

于 2012-08-11T23:12:34.147 に答える