项目实战7——在线人员列表逻辑混乱反例

简介: 项目实战7——在线人员列表逻辑混乱反例

在线人员列表逻辑混乱的七个问题:

1.类中写了公共变量导致数据混乱现象

2.保存数据没有考虑业务的隔夜覆盖导致的逻辑漏洞

3.如果涉及到继承,你这个this,如果父类有同样的成员,你最终用哪个呢?

4.参数传递问题

5.参数不一致导致后续维护混乱

6.雪花算法的外键使用varchar类型,后续级联导致类型不一致而产生的索引失效问题;进而产生慢SQL

7.SQL不考虑业务导致的明确的逻辑漏洞

问题分析:

1.类中写了公共变量导致数据混乱现象

既然是公共变量,那么在业务中就是共享的,涉及到修改这个变量的地方可能有很多,同时在可能存在的高并发多线程的状态下,作为线程共享的全局变量。容易出现数据显示混乱的问题

2.保存数据没有考虑业务的隔夜覆盖导致的逻辑漏洞

考虑问题不能只被当前的时间所局限,如果查询加入了createDate,那么如果出现了一个学生从第一天到第二天一直在线的话,那么就查询不到第二天的在线数据。然后导致重复插入的连锁反应。

3.如果涉及到继承,你这个this,如果父类有同样的成员,你最终用哪个呢?

这个问题体现了一个边界是否清晰的问题,成员变量和全局变量之间的边界是要清晰的,否则容易导致数据混乱。如果涉及到继承,这个this,如果父类有同样的成员你最终用的是哪个呢?

5.参数不一致导致后续维护混乱

原本入参里面已经包括了所有需要传的参数,而实体里的参数可以赋不同的值,比如红框里表示状态的参数是“1”,但涉及到了不同的状态也可能是0或者2,那么这里参数写1就不合适了,所以要保持和方法传进来的入参一致。这也可以理解为一种对数据的抽象,支持变化和拓展。

6.雪花算法的外键使用varchar类型,后续级联导致类型不一致而产生的索引失效问题;进而产生慢SQL

7.SQL不考虑业务导致的明确的逻辑漏洞

问题1:update_time=NOW(),在这里的作用是,把所有人的最近登陆时间都修改成了当前时间,表里的最近登录时间变成了一样的,显然这样是不符合逻辑的。

问题2:create_date与接收的createDate一致的时候,条件才成立,但是问题来了,这个字段的值是具体到日期的时间,所以只有在当天两个值才相等,超过24点,则createDate日期加一,那么就不会满足这个条件了,所有在线的人就无法下线了

思想总结:

在做项目的时候,不能只顾着逻辑实现,还要从需求的角度,实际使用的角度,结合业务场景来思考。毕竟项目最终是需要现实中的用户使用的,要避免不合常理的逻辑问题。

相关文章
|
6月前
|
程序员
程序员必知!里式替换原则的实战应用与案例分析
里式替换原则(Liskov Substitution Principle, LSP)是面向对象设计的基本原则之一,由Barbara Liskov于1987年提出。这个原则的主要思想是:在软件中,如果一个类可以被另一个类所替换,并且不会影响程序的正确性,那么这两个类就遵循了里式替换原则。
程序员必知!里式替换原则的实战应用与案例分析
|
4月前
|
机器学习/深度学习 监控 算法
量化交易系统开发步骤功能/规则玩法/案例项目/逻辑功能
量化交易策略系统开发是指利用编程和数学模型来设计、开发和实施自动化交易策略的过程。它涉及了将交易策略转化为可编程的算法,以便计算机可以根据预定规则和条件进行自动交易。
|
算法 Perl
技术下午茶:产品经理是如何工作的?如何才算一份好的需求文档?如何设计一个简单的列表,它应该具备哪些基本功能?
技术下午茶:产品经理是如何工作的?如何才算一份好的需求文档?如何设计一个简单的列表,它应该具备哪些基本功能?
110 1
|
SQL 安全 关系型数据库
项目实战典型案例7——在线人员列表逻辑混乱反例
项目实战典型案例7——在线人员列表逻辑混乱反例
157 0
项目实战典型案例7——在线人员列表逻辑混乱反例
|
6月前
|
人工智能 算法 测试技术
【简历优化平台-03】轻字段信息的合理性及单独算法
【简历优化平台-03】轻字段信息的合理性及单独算法
|
6月前
|
算法 大数据
【简历优化平台-04】对复杂字段进行规范性和建议
【简历优化平台-04】对复杂字段进行规范性和建议
|
SQL 安全 Java
【项目实战典型案例】07.在线人员列表逻辑混乱反例
【项目实战典型案例】07.在线人员列表逻辑混乱反例
|
SQL 安全 关系型数据库
案例07-在线人员列表逻辑混乱
在线人员列表逻辑混乱
|
前端开发 NoSQL Redis
项目实战典型案例5——发送调查问卷流程图例子(将不必要的逻辑放入前端)
项目实战典型案例5——发送调查问卷流程图例子(将不必要的逻辑放入前端)
116 0
项目实战典型案例14——代码结构混乱 逻辑边界不清晰 页面美观设计不足
项目实战典型案例14——代码结构混乱 逻辑边界不清晰 页面美观设计不足
117 0