ホームページ Java &#&チュートリアル 新しい Java の動き: テスト駆動開発 3---ユーザー登録 2

新しい Java の動き: テスト駆動開発 3---ユーザー登録 2

Dec 30, 2016 pm 01:13 PM

テスト駆動開発 (TDD) は実際には新しい概念ではありませんが、この方法論の本質は誤解されていることがよくあります。私の場合、テスト駆動開発とは、コードを完全にテストする単体テストを作成することだと思います。実際、これはテスト駆動開発に関する最も一般的な誤解の 1 つです。テスト駆動開発はテストを強調するだけでなく、ドライブ開発も強調します。テストケースを書く目的はテストだけではなく、設計、機能やインターフェースの設計、機能やインターフェースの利用者の視点からの設計でもありますが、他の手法における設計は開発者の視点からの設計です。したがって、テスト駆動開発は、優れた設計を生み出すのに役立ちます。

しかし、テストを通じて設計し、テストを実行してコードの品質を確保するだけでは、高品質のソフトウェア製品を作成するのに十分ではありません。テスト駆動開発では、コードの不合理な部分をリファクタリングするリファクタリングも重視されており、このリファクタリングはテスト作成、開発、検証の各プロセスで実行する必要があるため、それを保証するためのテストケースが存在します。意図しない結果を心配することなく、自信を持って大胆にリファクタリングします。

私たちのプロジェクトに戻り、MainServlet ですべてのビジネス ロジックを実装しましたが、すべてのアプリケーション ロジックをこのクラスに書き込むと、このクラスは巨大なものになることがすぐにわかります。そうしないと、最終的には保守できなくなります。ユーザー登録のビジネスロジック実装をユーザーモジュールに組み込みます。ご覧のとおり、システムの再構築が始まりました。

まず、ユーザー パッケージを作成し、このパッケージの下に UserMngr クラスを作成します。これは、ユーザー モジュールでは、基本的なユーザー情報に加えて、ユーザー グループ、ユーザー レベル、ユーザー ポイント、その他の情報も維持する必要があると考えられるためです。 caller これらの詳細を完全に理解する必要はないため、ここでは Facade モードを使用し、ユーザーに対するすべての操作は UserMngr を通じて実行されます。コードは次のとおりです。

public class UserMngr {  
    public static long registerUser(Map<String, Object> userInfo) {  
        return 101;  
    }  
}
ログイン後にコピー

このクラスでは、リファクタリングされたアーキテクチャが機能すること、および特定の関数を後で追加できることをすぐに検証するために、値を返すだけで何も行わないことがわかります。さらに、ここでは Map オブジェクトが使用されており、パラメータは PHP と同様に配列で渡されます。 Java では、この目的のために値オブジェクト クラスを設計することが一般的ですが、その結果、多くの値オブジェクト クラスを定義することになるか、共有する必要があるため、値オブジェクトが非常に大きくなります。ここでは、パラメータを渡すために Map が使用されます。 , そのような手間が省けます。

以下の MainServlet にユーザー モジュールを呼び出すコードを追加します。

private void registerUser(HttpServletRequest request, HttpServletResponse response) 
			throws IOException, ServletException {
		String userName = null;
		if (request.getParameter("userName") != null) {
			userName = request.getParameter("userName");
		}
		Map<String, Object> userInfo = new HashMap<String, Object>();
		userInfo.put("userName", userName);
		long userId = UserMngr.registerUser(userInfo);
		Map<String, Object> model = new HashMap<String, Object>();
		model.put("userId", "" + userId);
		request.setAttribute("model", model);
		/*this.getServletContext().getRequestDispatcher("/caporder/apply_capital.jsp")
			.forward(request, response);*/
	}
ログイン後にコピー

以下のテスト ケースを実行すると、今回のアーキテクチャの再構築が成功したことが証明されます。

上記は、新しい Java 運動: テスト駆動開発 3---ユーザー登録 2 の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Deepseekの公式ウェブサイトの入り口と最新のプロモーションアクティビティ Deepseekの公式ウェブサイトの入り口と最新のプロモーションアクティビティ Feb 19, 2025 pm 05:15 PM

Deepseekの公式Webサイトは現在、ユーザーにショッピングエクスペリエンスを提供するための複数の割引アクティビティを開始しています。新規ユーザーはサインアップして10ドルのクーポンを取得し、視聴者全員に15%の限定時間割引を享受します。友人は報酬を獲得することもできます。また、買い物時に贈り物を償還するためにポイントを蓄積することができます。イベントの締め切りは違う。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

セサミオープンドア公式ウェブサイト取引プラットフォームセサミオープンドア公式ウェブサイト交換登録の入り口 セサミオープンドア公式ウェブサイト取引プラットフォームセサミオープンドア公式ウェブサイト交換登録の入り口 Feb 28, 2025 am 10:57 AM

Gate.io Sesame Openは、Fiat Currency Trading、Currency Trading、Leveraged Trading、Perpetual Contracts、ETFレバレッジドトークン、ウェルスマネジメント、スタートアップの初期公募など、ユーザーにセキュリティ、安定性、オープン性、透明度を提供するなど、世界をリードするブロックチェーンデジタル資産取引プラットフォームです。

未来を創る: まったくの初心者のための Java プログラミング 未来を創る: まったくの初心者のための Java プログラミング Oct 13, 2024 pm 01:32 PM

Java は、初心者と経験豊富な開発者の両方が学習できる人気のあるプログラミング言語です。このチュートリアルは基本的な概念から始まり、高度なトピックに進みます。 Java Development Kit をインストールしたら、簡単な「Hello, World!」プログラムを作成してプログラミングを練習できます。コードを理解したら、コマンド プロンプトを使用してプログラムをコンパイルして実行すると、コンソールに「Hello, World!」と出力されます。 Java の学習はプログラミングの旅の始まりであり、習熟が深まるにつれて、より複雑なアプリケーションを作成できるようになります。

カプセルの量を見つけるためのJavaプログラム カプセルの量を見つけるためのJavaプログラム Feb 07, 2025 am 11:37 AM

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Feb 07, 2025 pm 12:11 PM

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。

Java をシンプルに: プログラミング能力を高める初心者向けガイド Java をシンプルに: プログラミング能力を高める初心者向けガイド Oct 11, 2024 pm 06:30 PM

Java をシンプルに: プログラミング能力の初心者向けガイド はじめに Java は、モバイル アプリケーションからエンタープライズ レベルのシステムに至るまで、あらゆるもので使用される強力なプログラミング言語です。初心者にとって、Java の構文はシンプルで理解しやすいため、プログラミングの学習に最適です。基本構文 Java は、クラスベースのオブジェクト指向プログラミング パラダイムを使用します。クラスは、関連するデータと動作をまとめて編成するテンプレートです。簡単な Java クラスの例を次に示します。 publicclassperson{privateStringname;privateintage;

gate.io交換初心者登録と取引チュートリアル gate.io交換初心者登録と取引チュートリアル Feb 21, 2025 pm 09:54 PM

Gate.io Exchangeは、世界有数の暗号通貨取引プラットフォームの1つです。このガイドは、ユーザーがgate.ioと登録および取引するのを支援するための段階的なチュートリアルを提供します。登録プロセスには、登録方法(電話、電子メール、またはソーシャルアカウント)の選択、情報の記入、ログインパスワードの設定、ID認証の完了が含まれます。取引チュートリアルには、取引ページへのアクセス、取引ペアの選択、取引情報の入力、注文の掲載、注文ステータスの表示が含まれます。この記事のガイダンスにより、ユーザーはgate.ioで暗号通貨の取引を簡単に開始できます。

See all articles