总体设计

Web项目开发中,我们可以根据不同的功能,将整个系统的功能进行划分。系统功能总体来说可以划分为两个模块:系统的必备功能和逻辑业务功能。

下面主要是分析一下系统的必备功能,所谓系统的必备功能是指任何一个web系统具备的一些必要的功能。逻辑业务功能这个需要根据自己项目的实际情况来设计,在这里就不分析逻辑业务功能。

web系统的一般会分为前台和后台,在前后台的系统功能上有很多相同的,也有差异。

前台的系统必备功能

(1) 登陆功能

描述:Web系统基本都会有用户的登陆功能,在移动互联网时代,只有绑定注册的用户的黏性,才会获得更大的流量,从而将流量变现。所以登陆功能很重要,特别对于大流量的网站来说,如何实现web的登陆功能也是一个很重要的模块,因为这是用户在这个网站的入口。

设计:根据我自己的开发经验,登陆功能可以利用cookie或者session的技术来实现,对于大流量的网站可以结合Redis的缓存实现,将用户登录之后的信息或者状态存贮在redis中,设置一定的缓存时间。Redis基于分布式的部署,可以更好实现系统不断升级的分布式部署。

拓展:登陆的模式或者方式可以多种,比如用注册的账号登陆,手机号登陆,邮箱登录等。

(2) 注册功能

描述:注册功能是实现系统绑定用户最重要的模块功能。需要引导用户注册,而且注册的过程不能过于繁琐,这样子用户会很烦,体验很不好。

设计:可以用户输入用户名,密码注册。手机号直接注册。邮箱注册。第三方认证登陆并注册,比如微信,qq,支付宝,微博登认证登陆。

(3) 找回密码

描述:一个网站登陆时,一般的设计会有注册或者忘记密码(找回密码)的链接功能。用户可以通过之前设置的邮箱重置密码。

(4) 个人设置功能

描述:个人信息设置功能是用户登录后,对自己的信息进行相关的操作。其实功能也细分很多。

1)上传头像

描述:在目前的移动互联网时代,web或者是app都是要越来越有个性化,用户体验越来越好的,甚至引入社交功能。所以设置个人的头像是很有必要的一个功能。

设计:一般设计上传图片的大小,并且带有上传前的预览。图片的保存,我个人觉得将img转为base64的格式存在MySQL数据库或者其他的数据库中会比较好,因为头像的不会很大,在登陆时也方便从数据库中查找出来,容易显示,同时也减少http的请求。

拓展:上传的插件也有很多,可以将图片上传后再转为base64的格式保存,也可以通过HTML5直接在前端将图片转为base64,再post数据给服务器。]

2)修改用户名

用户应该可以修改自己的用户名,凸显个性。

3)修改密码

描述:修改密码的功能,对用户来说可以起到安全的作用。

4)绑定邮箱

描述:用户可以通过绑定的邮箱来找回密码或者接受收邮件。

设计:填写邮箱-〉发送至邮箱-〉用户登录邮箱点击链接激活-〉绑定邮箱成功。

5)登陆访问记录

描述:访问记录可以记录用户在某一段的时间内的登陆情况,这个可以用户判定网站的活跃度,对于在大数据统计阶段很有帮助。

设计:访问记录的信息简单点可以只包括登陆时间,复杂的话可以包括时间,地点,ip,登陆方式(手机号,邮箱,注册账号),甚至是设备(pc,手机等)。

(5) 退出功能

描述:用户退出网站时,会将缓存的个人登陆信息全部清除。

(6) 内部代码审核功能

描述:在执行某一段代码时,对于发生错误时应该要输出错误信息保存在数据库中,可以方便开发人员进行错误的排查,提高效率。

(7) 分享功能

描述:在很多的互联网产品中,分享功能可以帮助更好地传播产品,增强产品的认知度或者品牌度。

后台的系统必备功能

(1) 登陆功能

(2) RBAC角色认证

描述:根据登录用户的角色不同获取不同的权限,用户只能操作自己有权限的模块。

设计:基于RBAC原理设计

(3) 用户管理功能

描述:查看用户基本信息,管理用户等

(4) 个人设置功能(同上)

(5) 统计功能

描述:根据各种的逻辑业务对各种数据做出分析管理

(6) 系统代码的审核功能

(7) 其他的逻辑业务功能

(8) 监控功能

描述:数据库监控,服务器的硬盘,内存的监控,redis缓存的监控,流量的监控等。

其实在这里说是系统的功能和逻辑功能的区分,但从更本上说,基本很多的功能都是要与逻辑业务相挂钩的,单纯地区分说,也很难说的明白。

web开发的功能备忘录的更多相关文章

  1. java web 开发 购物车功能的实现

    为了方便自己以后复习,所以写的比较仔细,记录下自己的成长..... 既然是做购物车,那么前提条件是首先需要一系列商品,也就是要建一个实体,这里建了一个商品表. 通过查询在浏览器上显示 基本显示已经做好 ...

  2. java web开发_购物车功能实现

    java web开发_购物车功能实现 之前没有接触过购物车的东东,也不知道购物车应该怎么做,所以在查询了很多资料,总结一下购物车的功能实现. 查询的资料,找到三种方法: 1.用cookie实现购物车: ...

  3. Python Web框架本质——Python Web开发系列一

    前言:了解一件事情本质的那一瞬间总能让我获得巨大的愉悦感,希望这篇文章也能帮助到您. 目的:本文主要简单介绍Web开发中三大基本功能:Socket实现.路由系统.模板引擎渲染. 进入正题. 一. 基础 ...

  4. Visual Studio 2013 Web开发、新增功能:“Browser Link”

    微软正式发布Visual Studio 2013 RTM版,微软还发布了Visual Studio 2013的最终版本..NET 4.5.1以及Team Foundation Server 2013. ...

  5. Web开发从零单排之二:在自制电子请帖中添加留言板功能,SAE+PHP+MySql

    在上一篇博客中介绍怎样在SAE平台搭建一个html5的电子请帖网站,收到很多反馈,也有很多人送上婚礼的祝福,十分感谢! web开发从零学起,记录自己学习过程,各种前端大神们可以绕道不要围观啦 大婚将至 ...

  6. Visual Studio 2013 Web开发、新增功能:“Browser Link”

    微软正式发布Visual Studio 2013 RTM版,微软还发布了Visual Studio 2013的最终版本..NET 4.5.1以及Team Foundation Server 2013. ...

  7. Django web开发【5】 实现标签功能

    标签tag在很多web2.0应用中都很常见,标签其实就是关联某些信息的一个关键字.打标签实际上就是给内容分配标签的过程,它通常由作者或者用户实现.标签之所有这么流行是因为它允许用户对自己创建的博客.图 ...

  8. 为什么Web开发人员在2020年不用最新的CSS功能

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://dzone.com/articles/why-masses-are-not-usi ...

  9. Web 开发人员系统重装备忘录

    准备工作: 一.配置IIS 软件安装: 一.大块头: 1.VS2005 1.VS2005SP1 2.VSS 2005 2.VS2008 1.VS2008TeamExplorer 2.VS2008SP1 ...

随机推荐

  1. Mininet实验 自定义拓扑结构

    参考:MiniNet实验2 通过Mininet学习可视化操作,可以在界面上方便的构建拓扑结构. 最新的Mininet 2.2.0内置了一个mininet可视化工具miniedit.miniedit在/ ...

  2. python 字符串压缩

    import zlib s = b'witch which has which witches wrist watch' print(len(s)) t = zlib.compress(s) prin ...

  3. Android中的自定义注解(反射实现-运行时注解)

    预备知识: Java注解基础 Java反射原理 Java动态代理 一.布局文件的注解 我们在Android开发的时候,总是会写到setContentView方法,为了避免每次都写重复的代码,我们需要使 ...

  4. php特级课---5、网络数据转发原理

    php特级课---5.网络数据转发原理 一.总结 一句话总结: OSI七层模型 路由器 交换机 ARP 代理ARP 1.OSI7层模型? 电缆 MAC地址 ip 端口 应用 1层 通信电缆 2层 原M ...

  5. 前端框架MVVM是什么(整理)

    前端框架MVVM是什么(整理) 一.总结 一句话总结:vm层(视图模型层)通过接口从后台m层(model层)请求数据,vm层继而和v(view层)实现数据的双向绑定. 1.我大前端应该不应该做复杂的数 ...

  6. oracle10g连接自动断开,报ORA-03135错误

    问题描述: oracle使用过一段时间,连接断开,报ORA-03135错误. 问题挖掘: 用pl/sql和sqlplus连接oracle,也存在该问题,确定该问题与连接方式无关. 查看服务器,发现没有 ...

  7. 豆知识( DNS; HTTP入门;网络协议)

    DNS入门知识 DNS服务器 通过DNS服务器,才能知道某个域名的IP地址到底是什么. Linux系统里面,DNS服务器的IP地址保存在/etc/resolv.conf文件 使用工具软件dig可以查询 ...

  8. h5桌面通知Notification

    H5中的桌面通知Notification 前言: 对于一个前端开发者,逛网页总会留意一些新奇的功能,对于上班总会用到Teambition的我,总是能收到Notification...所以今天就来研究下 ...

  9. gradle基础配置

    gradle构建脚本基础 gradle常用命令 //列出项目的所有属性. 这样你就可以看到插件加入的属性以及它们的默认值. gradle properties ​ //列出项目的所有任务 gradle ...

  10. 用Ant手动打包android程序,android分包机制解决65536方法过多异常

    Android利用ant手动打包 首先我们要给自己的IDE eclispe配置ant,默认的eclipse是集成了ant构建工具的,但是google提供的Android集成开发工具ADT,里面封装了E ...