Newyorkcity
V2EX  ›  问与答

一个应用,需要对一条消息是否发布进行一些权限的校验(需访问数据库)和内容的检查(需正则匹配),则哪个应该先进行?

  •  
  •   Newyorkcity · May 1, 2021 · 1242 views
    This topic created in 1932 days ago, the information mentioned may be changed or developed.
    因为不论是权限的校验通不过还是内容的检查通不过,消息就肯定发不出来了,所以我想请教『连接数据库进行查询的消耗(当然,是有合适的索引候着的)』和『向文本进行正则匹配以检查(文本最多两百字)的消耗』,哪个更少点?

    对数据库的连接用的是 springboot + HikariCP,正则检查用的是 JDK 自带的。

    多谢
    7 replies    2021-05-02 00:17:14 +08:00
    imn1
        1
    imn1  
       May 1, 2021   ❤️ 1
    权限就是 BOOL 吧?消耗总比正则少,难不成贵司的权限设置异常复杂?
    billlee
        2
    billlee  
       May 1, 2021   ❤️ 1
    看正则有多复杂了,jdk 的正则是 backtrace 的,性能不怎么好。但不管怎么说这个也是容易水平扩展的
    renmu123
        3
    renmu123  
       May 1, 2021 via Android   ❤️ 1
    那肯定是权限啊,分几种情况讨论
    1. 有权限,内容正确
    2. 有权限,内容错误
    3. 无权限,内容正确
    4. 无权限,内容错误。

    在有权限的情况,要对两种都进行检查,顺序没什么差。
    但如果检查到无权限,那么其实已经不用进行内容检查了。

    如果先检查内容,那么这四种情况都要进行两次检查
    superrichman
        4
    superrichman  
       May 1, 2021 via iPhone
    没权限你检查这内容有什么意义?
    akira
        5
    akira  
       May 1, 2021
    @renmu123 按照楼主的要求,内容错误也是不发的。 所以都一样
    lidlesseye11
        6
    lidlesseye11  
       May 1, 2021
    从性能角度来说,先查内容比较好,毕竟省得连 db 了。
    但从易用性来说还是先查权限吧。。你检查不通过的时候不用给调用者返回原因吗?
    先检查内容的话,人家改了半天好不容易改好了,你再回个没有权限?不给人气炸了。。。
    当然,最好还是两个都检查一下。。
    raaaaaar
        7
    raaaaaar  
       May 2, 2021 via Android
    一条龙服务

    我就是那条龙
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2858 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 14:41 · PVG 22:41 · LAX 07:41 · JFK 10:41
    ♥ Do have faith in what you're doing.