几乎所有系统都必有的模块——登陆与注册与登出,那么我就从此开始我的博客系统搭建(主要考虑常用技术都可以使用到)
先熟理下业务流程与可能的技术选型(技术预研),再到数据库设计, 最后开始代码开发。
0.熟悉业务背景
这一部分不属于开发,属于产品设计这块的内容,由产品经理负责,但是开发简单了解一下对业务流程会更清晰些
从注册登录登出开始,详解产品流程
登录和注册大概是所有线上平台都拥有的功能模块,也是用户最早能够接触到的平台功能,不仅业务流程简约,而且模块功能单一,甚至设计的页面也很少。但是要设计出行云流水般、给予用户良好体验的产品功能也并非易事。
1、产品功能
首先,我们要明确注册、登录的核心需求:
1)提高登录注册转化率,用户留存率
2)登录注册提示明确,把每个使用场景和触发事件想清楚,形成闭环
3)用户ID真实有效,方便后续产品运营推进
4)防止机器人频繁请求从而给服务器造成过大压力
业务要闭环具体是什么意思呢?
登录成功去哪里?
登录失败又去哪里?
注册成功去哪里?
注册失败又去哪里?
为了完成这个业务流程的闭环,我们就需要增加几个页面:
登录成功页:通常是跳转到首页,或者个人主页。
登录失败页:通常是跳转到登录失败页,提示用户登录失败的原因,并且用户能够重新输入。
注册成功页:通常自动登录并跳转至首页。
注册失败页:通常是跳转到注册失败页,或者提示用户注册失败的原因,在同页面重新输入。
注册登陆的方式分类需考虑以下几点:
1)普遍性:此种注册方式是否能被绝大多数用户所接受?是否有门槛限制?
2)便捷性:注册ID方便、登陆快捷、易记忆
3)注册方式是否存在安全性问题
注册登录方式:邮箱、手机、第三方登录
邮箱 :针对不喜欢暴露手机号的人群 信息可以长期留存
手机号:便于记忆,安全性高
第三方登录:注册快捷,但受限于第三方
3、产品细节-校验
1、邮箱/手机号合法性判断:
i) 手机号:暂时只支持国内,即86开头
长度是否为13位
每一位都是数字
以13、15、18开头
ii)邮箱:
邮箱名称部分包含大小写数字、大小写字母、下划线
邮箱域名部分正则 @[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+
2、登录密码机制:
长度大于8位小于20位
必须包含大小写和数字
特殊字符只包括下划线
密码可选明文可见或不可见
输入一次密码后,需二次输入密码进行确认
3、验证码问题
短信验证:6位数字;60s后可选择再次发送验证码
语音验证:6位数字,重复语音播报
4、登陆错误问题:
用户名或密码错误,经后台验证后在当前页面给予用户有效的反馈提示
连续输入3次密码错误后,页面下显示“忘记密码”按钮,进入到找回密码界面
5、是否允许多端同时登陆
6、注册完/登录完成
用户登录注册完成后,一定要直接切回到之前请求登录前的节点中去。
4、用户体验
如果用户名使用电子信箱,是否需要增加自动补充以帮助用户能够快速完成电子信箱的录入?
如何设计良好的登录页错误提示?
登陆成功后自动跳转页面?一般是主页
是否需要记住密码?还是需要2周内不用登录?
能否不用鼠标来切换用户名和密码框?
能否用回车键来替代鼠标完成登录或提交的操作?
如何限定注册页的必填字段?
如何设计密码强度的提示?
如果注册页有用户头像,是否需要锁定头像比例?是否提供预览功能?是否提供在线裁剪?
是否需要给用户设置默认头像?
第一个页面开发最终效果图:——注册功能页面
1.业务流程分析-我先做登录与登出
用户请求 /login ——>响应登录页面——>录入登录用户名与密码——>点击登录按钮后做些数据格式校验再请求后台处理——>
后台做用户信息校验(包含权限与数据格式)——>后台业务处理流程访问数据库获取信息——>返回响应结果提示用户登录状态。
——>登录成功后可点击登出按钮 退出系统
2.技术选型设计:
根据业务需求合理采用相关技术,对应团队不熟悉的技术要做预研工作,选型原则:最适合业务的技术才是最好的技术方案。
技术预研:
研究一些新的技术,可能是项目以后要用到的东西,或者对现有问题攻关,写预研文档,还有示例代码,给研发的码农培 训。 研发部,说是研发,其实很多公司差不多就是研究部的做项目,写代码,感觉没啥研究的成份。不过国内也有许多公司研发部除了日常项目开发外,还负责新技术的研究。
3.数据库表设计
表结构与表索引等的设计,这部分是重点
4.项目代码开发
大概的思路与设计流程如下:初稿
关于技术选型与预研:给出一个很吊的技术全景图,感受下技术的繁多与更新之快