zoukankan      html  css  js  c++  java
  • Maven实战05_背景案例学Maven模块化

    1:简单的账户注册服务

    注册互联网账户是日常生活中再熟悉不过的一件事,作为一个用户,注册账户的时候需要进行以下操作,提供以下信息。

    • 提供一个未被使用的帐号ID
    • 提供一个未被使用的email地址、
    • 提供一个任意的显示名称
    • 设置安全密码,并重复输入以确认
    • 输入验证码
    • 前往邮箱查收激活链接并单击激活帐号
    • 登录确认激活状态

    帐号的ID和密码唯一的标识某个账户,显示名称用来在页面上显示,方便浏览。注册时需要用户输入两次密码,以确保没有输错。系统则负责检查ID和email的唯一性,验证两次输入的密码是否一致。验证码由系统随机生成,只能由肉眼识别,可以有效防止机器的恶意批量注册,若输入正确的验证码信息,系统会进行检查,如果验证码错误,会提示错误并返回新的验证码。一旦所有检查通过,系统会生成一个激活链接,并发送到用户的邮箱中,单击激活链接后,账户就被激活了,这时注册完成,用户可以直接登录。

    除此之外,还应该考虑一些安全因素。例如:需要在服务器端密文地保存密码,检查密码的强弱程度,更进一步则需要考虑验证码的失效时间,激活链接的失效时间。

    本文不会涉及太多Maven的知识,但是后续的文章都会在这篇文章的基础上对Maven做进一步的阐述和实践。

    2:账户注册服务需求用例

    注册账户

    主要场景

    1. 用户访问注册页面
    2. 系统生成验证码
    3. 用户输入注册信息:ID,Email地址,名称,密码,确认密码
    4. 用户输入验证码
    5. 系统检查验证码
    6. 用户提交注册请求
    7. 系统检查ID,Email的唯一性,密码,确认密码是否一致
    8. 系统保存未激活的账户信息
    9. 系统生成注册激活链接,发送至用户邮箱
    10. 用户打开邮箱,点击激活链接
    11. 系统解析激活链接,激活账户
    12. 用户使用ID和密码登录

    扩展场景

    • 验证码模糊,用户无法看清,请求重新生成
    1. 跳转到步骤2
    • 系统检测到验证码输入错误
    1. 系统提示验证码错误
    2. 跳转到步骤2
    • 系统检测到注册信息有误:ID已被占用,Email已被注册,密码和确认密码不一致
    1. 系统提示相关信息
    2. 跳转到步骤2

    用例场景分析

    该注册账户用例包含了一个主要场景和几个扩展场景。用例角色只有两个:用户 、系统。主要场景描述了用户如何与系统一步一步地交互,并且成功完成注册,是一个正常的注册流程。而扩展场景则描述了正常流程中的异常。

    该用例没有涉及非功能性需求(如安全性),也没有详细定义的用户界面,用例也不会告诉我们使用什么技术,关于安全性,你将会看法哦一些实际措施,不过于深入,关于用户界面,将会给出原型图,技术上就使用Spring。

    3:界面原型(图片来自于Maven实战)

    image

    4:简要设计

    系统对外的接口包括生成验证码图片,处理注册请求,激活账户以及处理登录等。

    image

    解释说明:

    generateCaptchaKey():生成验证码所需的Key

    generateCaptchaImage(captchaKet: String):依据生成的Key生成验证码图片,验证码以及验证码的图片被传送到客户端,用户通过肉眼识别再输入验证码的值,随着Key在传送到服务端验证。服务端做对比。

    signUpRequst包含了注册用户所需要的信息,包括ID、email、显示名称、密码、确认密码等伴随captchaKey的captchaValue构成一个注册请求。

    signUp():方法接收SignUpRequest对象,进行验证。

    activate():方法接收一个激活码,查找对应的账户进行激活。

    login():方法用来进行登录

    5:模块结构

    定义了系统核心的接口之后,基于功能分割和方便复用的原则,再对系统进一步进行划分。这里基于包名来划分模块。

    很多有经验的程序员不需要多少设计就能快速完成这样的一个功能,不过我们是为了学习Maven,微小的项目中见证大道理。大道至简嘛。所以我们需要一个像模像样的。有很多模块的系统来演示Maven很多非常酷的特性。

    账户注册服务模块划分图:

    image

    6:小结

    至目前为止,我们已经了解了用户注册服务的需求,大概的界面,简单的接口设计以及模块的职责划分。这将会直接应用到后面Maven的实战中,这个简单的账户注册服务也会一步步地实现和完善,从而体现Maven的实际功效。

     

  • 相关阅读:
    {Notes}{Latex}{multirow}
    [Reship] Mean Shift 算法介绍
    {Notes}{LaTeX}{enumerate}
    This is a test.
    js中的执行环境和作用域链
    js的预解析
    js笔试题一套(未完待续)
    使用setTimeout 来实现setInterval的效果
    ie6 ie7下报脚本错误"Expected identifier, string or number" 的原因和解决方法
    【雕爷学编程】Arduino动手做(63)---TCS3200D颜色识别传感器
  • 原文地址:https://www.cnblogs.com/homeword/p/7134271.html
Copyright © 2011-2022 走看看