1.在线人数
在项目中有时候需要统计实时在线人数,主要实施过以下几种方案:
1)表统计:用数据表统计在线人数,缺点是当并发量大的时候可能造成性能瓶颈,如无特别大的并发的时候完全可以胜任
2)Redis有序集合:因为在内存中,所以效率很高,可以统计某个时间段内的在线人数,还可以做各种聚合操作。但是如果在线人数比较多的情况下,会比较占用内存。
3)Redis HyperLogLog:占用空间小,但是这个是个概率算法,只能给出估算值,并且无法统计一段时间内的人数,也无法知道是哪些用户在线,非常适合数据量特别大的情况。
4)Redis bitmap:推荐方式,占用空间小,能够详细记录哪些用户在线。
2.项目的分析各字段的含义与规则
业务需求。业务需求的字段是在跟业务部门调研时获得的。
业务需求的字段获取是一个逐渐完善的过程。因为产品经理跟业务部门接触时,首先应该获取的应该是整个业务流程(业务流程梳理会另写文章来讨论),是比较宏观的,在这个过程中,获取到的字段应该是粗略的;等将业务流程梳理完成后,进行详细的业务流程设计时,会再细化涉及到的每个字段, 对每个字段的信息进行详细记录;
1)要尽量确保汇总的字段是全部的,没有遗漏。以防上线使用后,发现问题,造成返工。可以在字段设计前和产出原型后,多跟业务部门的人确认,这样可以避免这种情况发生。
2)汇总的字段要包括以下几种信息:
3) 字段名称
4)必填性质
5)输入方式;记录字段的数据如何输入:手动输入/选择/自动生成/其他
6)手动输入;如果是手动输入方式,则要记录对输入值的格式要求以及输入值范围
7)选择输入;如果是选择输入方式,则要记录是单选还是多选以及选项列表
8)是否需要单独配置权限;有些字段比较特殊,如果只能某些人看到,则需要给这些字段单独配置权限
9)字段提醒(说明);字段的一些特殊说明,用来提醒操作者
10)其他;因为后台产品跟业务密切相关,不同的业务可能包含的字段信息也不尽相同,因此可能也会有字段的其他信息需要记录,这个需要具体问题具体分析。
3.录入页面的数据概论
“录入”是B端产品常见的任务场景,常用于向用户收集或验证信息。在设计录入表单时,应尽量减少用户的思考和理解负担,提高表单的操作效率,降低用户出错的概率,才能提高录入任务的完成度和满意度。
1)基础表单
基础表单是目前最常用的录入模式,在系统内用一个独立页面承载表单内容。页面内通常会包含:页面标题、表单区和操作区三部分。
适用范围:适用于录入项较少的表单,所有录入项在一个页面内呈现。
2)分步录入表单
该类表单录入模式通常用于拆分复杂录入流程。步骤条的展示可以较好地帮助用户理解完成任务所需步骤,以及当前所处阶段。
适用范围:适用于录入项较多,且填写任务有先后之分的表单;在完成上一步任务的填写时,才可进入下一步。
4.网站安全性
网站必须确保操作的安全性,包括网站服务器安全性和网站程序安全性,服务器或选择大品牌服务器, 安全性会更高,有条件的客户可以选择专有托管或云ECS服务器,安全性会更高,其次是网站程序的安全性。 选择网站建设公司时,请勿光顾网站的设计和渲染。 主页还应基于公司的网站程序是否具有优势,是否仍在使用开源网站系统或ASP网站程序,这些网站的程序会存在一定的漏洞和风险。 这种程序将大大增加网站被攻击的可能性。 无需考虑模板网站。 它们成为模板网站的原因是价格低廉,因为它们的质量较低。 商界人士必须明白,您得到的是您所支付的。其次,网站内容安全性,近年来,每个人的权利保护意识都在提高 知识产权越强,国家互联网信息中心和主要的互联网行业巨头也加入了清理工作,因此网站设计中使用的图片,视频,文本和字体受到某些版本的影响正确的保护
5.分页
分页(英语:Paging),是一种操作系统里存储器管理的一种技术,可以使电脑的主存可以使用存储在辅助存储器中的数据。操作系统会将辅助存储器(通常是磁盘)中的数据分区成固定大小的区块,称为“页”。当不需要时,将分页由主存(通常是内存)移到辅助存储器;当需要时,再将数据取回,加载主存中。相对于分段,分页允许存储器存储于不连续的区块以维持文件系统的整齐。分页是磁盘和内存间传输数据块的最小单位,在Java中是一种特别常见的现象。
1)totalCount :总的数据的条数,显然易见,由于数据库的数据可以变化,显然该数据需要从后台获取。
2.totalPage:总的页数,由于总的数据是从数据库中查询出来的,每页多少条数据都可以是事先知道的,所以,从后台获取
3)list :每页的数据,显然是从后台获取的
4)currentPage:当前页,显然是从前台获取的,因为每次大家需要点击不同的页数,传递过来的数据都是不一样的
5)rows:每页多少条数据,可以从前台获取也可以从后台获取,我建议从后台获取,可以将其存到配置文件中,可以通过获取到不同的标准,符合Java的编程理念

6.Tomcat的并发量,JVM的性能调优
Tomcat性能调优:
找到Tomcat根目录下的conf目录,修改server.xml文件的内容。对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创建的线程数的设置,当然还有其他一些性能调优的设置,下图是根据我机子的性能设置的一些参数值

Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:
主要功能为JVM性能参数调优:

7.信息安全,加密 ,解密
密码技术 :未加密的消息是 明文,用 M 表示,加密的消息是 密文,用 C 表示。
C=E(M)表示加密,M=D(C)表示解密
密钥: C=E{k}(M),M=D{k}(C)
对称密钥算法:
优点:加/解密速度快、密钥管理简单、适宜一对一的信息加密传输
缺点:加密算法简单,密钥长度有限(56 比特/128 比特),加密强度不高、密钥分发困难,不适宜一对多的加密信息传输。
非对称密钥算法:
优点:加密算法复杂,密钥长度任意,加密强度高,适宜一对多的信息加密交换
缺点:加/解密速度慢,密钥管理复杂,明文攻击很脆弱,不适用于数据的加密传输。
8.忘记密码
要实现一个忘记密码的功能:点击忘记密码连接->进入新的页面->输入邮箱->点击确定后发邮件->点击邮件中的连接,进入新的页面->输入新的密码和确认密码->点击确定,重置密码成功后重新登录
9.不同角色进入系统对应不同的菜单
通常我们后台有很多不同的角色登录,每个角色不同的权限,这个在 SpringBoot整合Shiro实现权限控制,根据不同的角色登录显示不同的菜单。
比如我目前只有两个角色,系统管理员和普通用户。
关于菜单绑定角色,其实也可以菜单绑定权限的。这里为了方便,我们使用使用角色来区分。
SpringBoot不同角色显示不同的菜单
1、menu 菜单表
2、role 表
3、role_menu 表
Dao

10.项目管理工具SVN、CVS
SVN:
SVN全名Subversion,即版本控制系统。SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。SVN是一种集中式文件版本管理系统。集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上是不可以工作。
CVS:
是开发源码的并发版本系统 。它可用于各种平台,包括 Linux 、Unix和 Windows NT/2000/XP等。
CVS免费开源,对项目进行版本管理。
功能:1)代码统一管理,保存所有代码文件更改的历史记录。
2)完善的冲突解决方案,可以方便的解决文件冲突问题,而不需要借助其它的文件比较工具和手工的粘贴复制。
3)代码权限的管理。
11.业务
业务更白话一些来说,就是各行业中需要处理的事务,但通常偏向指销售的事务,因为任何公司单位最终仍然是以销售产品、销售服务、销售技术等等为主。
业务最终的目的是“售出产品,换取利润”。所以通常会把业务员等于销售员,也就是这个原因,业务就是进行或处理商业上相关的活动。
业务=行业+事务=各行各业+要做的或所做的事情
结合计算机行业,软件本身的业务通常表示软件要做的事情,而人们要看软件所做的事,是需要从几个角度考察的
①输出的结果
②软件中各个实体的关系,比如人-角色-部门
③软件运行的状况
④软件整体给人的感觉,视觉也好,听觉也罢,可能还包括触觉(鼠标反馈,触碰反馈等)
本文探讨了在线人数统计的不同方案,包括表统计、Redis有序集合、HyperLogLog及Bitmap等,并介绍了业务需求分析、录入页面设计、网站安全性、分页处理等内容。
746

被折叠的 条评论
为什么被折叠?



