8. 教 AI 上班:带出我的数字同事 —— 亲测第一轮:7 个问题逐条改,打包运行再回看

8. 教 AI 上班:带出我的数字同事 ------ 亲测第一轮:7 个问题逐条改,打包运行再回看

「教 AI 上班:带出我的数字同事」系列 · 第 8 篇:轮到我亲自动手点,一次 7 个问题。

前言

上一篇本地部署跑通了,这篇开始我自己上手点。一点就是一堆:nginx 配得麻烦、菜单树又回退成平铺、单位管理员的用户类型分不清。

改一轮就有一轮的规矩,我都一条条写进 spec:想自作主张之前先读 spec,service 必须先有接口,包名用 utils 不是 util,字面量走常量类。

目录和落盘纠得最久。zip、deploy 都只是往同一个数据根里放东西,按租户 id、一级目录、二级目录往下铺。

一、一次交代 7 个问题

1.1 前端配置、菜单树、用户类型,一次列 7 条

这 7 条是上一轮大回归里攒下的:

bash 复制代码
1、
前端多配置问题:
location ^~ /sys {
            proxy_pass http://127.0.0.1:8100;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
        location ^~ /docsolo {
            proxy_pass http://127.0.0.1:8100;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_s
            
    
2、
 直接配置到网关,如/api/sys /api/docsolo这种方式,不要配置多个麻烦。 前端相应修改。
 
 
3、
 	详情编辑分配套餐停用 -> 不能中间加个空格吗?
 	所有的地方 这样,加点效果,每个操作上加个小圆角的框,这样就可以分开了。
 	
 	
4、 	
 super-admin进去菜单按树结构显示,记得以前改过一次。怎么又还回来了。
 按钮挂在菜单下面的。
 
 5、
 分配菜单权限
   这和前面菜单管理一样,必须是按树的方式显示,特别是按钮,不然我怎么知道是哪个按钮。
 6、
 jd-admin 单位管理员,用户类型是0?难道不应该是1?或者类型增加一个,999-super-admin  10 单位管理员。这种,0普通
 除了单位管理员,其他人员也是0的人员登录直接进入搜索页面。可切换到管理页面
 
 7、
 测试脚本 
 4.1.12 胡勇检索真实 SpringBoot 文档
 搜索到了后,要进入详情,并查看图片和文本是否正确。

1.2 补两刀:菜单没按原型走,先改原型再还原

根因是菜单管理没按原型开发。补一句:先改原型,再还原。

复制代码
补充:
菜单管理没有按原型走导致的,要按原型开发就可以了。原型里面是树结构,按钮在菜单上的
复制代码
补充
是修改原型的,先修改原型,再还原

1.3 用户类型定成 9、1、0,不用改库

用户类型定死,不用改库:

java 复制代码
jd-admin 单位管理员,用户类型是0?难道不应该是1?或者类型增加一个,9-super-admin  1 单位管理员。这种,0普通,不用改库

1.4 记进 spec:要自作主张之前先读 spec

再加一条规矩进 spec,顺便 01、02 的 sql 一起改:

sql 复制代码
记一条,当你要自作主张的全文查找时,先读spec是不是有配置,如果没有再全文查找。写进spec第一条
前面改成9,1,0 三种用户类型,也要修改01的sql,增加进去。
02 初始化sql也要修改。然后再进行测试

1.5 库能全清,usertype 为空也是问题

再补两条:

复制代码
再补充:
数据库的东西可以全部清除,全新建库,不用管以前数据
数据库中
libaiming usertype为空这也是一个问题,要看一下 

不断添加了不少东西,不知道会不会丢掉以前的东西。

二、第二次点了 8 条,规矩一样样进 spec

第二次点的 8 条,还是规矩:

scala 复制代码
测试第几次和总几次每次都要变化的,如当天第1次总7次->下一次就是, 当天第2次总8次。这样,不是一直是7次搞了四回了。 spec
1、
@Service
public class DocSearchService {
禁止这种直接编写的service,一定要先写接口

2、
knife4j:
  gateway:
    enabled: true
    strategy: manual
    tags-sorter: order
    operations-sorter: order
    routes:
      - name: 系统管理微服务
        service-name: jet-service-sys
        url: /sys/v3/api-docs
        order: 1
      - name: 简搜微服务
        service-name: jet-service-docsolo
        url: /docsolo/v3/api-docs
        order: 2
网关显示的还是修改前的英文,要查一下。

3、 
util.MarkdownUtils ->utils.MarkdownUtils
这是我的习惯,utils

4、
 registry.addResourceHandler("/upload/**").addResourceLocations(locations);
 前面 不是配置的吗?这里写死?还有这种字面量一定要用常量, 常量放constant\xxxConstants.java  xxx是对应项目名 spec
 private String extractRel(String uri) {
        if (uri == null) {
            return "";
        }
        int idx = uri.indexOf("/upload/");
        return idx >= 0 ? uri.substring(idx + "/upload/".length()) : uri;
    }
    
    
5、 
@Service
public class DocServiceImpl extends
        IdCrudServiceImpl<Doc, DocMapper>
        implements DocService {

    private static final Logger log = LoggerFactory.getLogger(DocServiceImpl.class);
    private static final int REINDEX_BATCH = 500;

    private final DocMapper docMapper;
    private final CategoryMapper categoryMapper;
    private final DocDeptMapper docDeptMapper;
    
 这里我有一个规定,只有如( Doc),只有自己的service(DocService)只能访问自己的mapper (DocMapper),其他的都通过service调用。
 即 DocServiceImple->CategoryService->CategoryMapper 其他都一样。
 
6、jg-admin怎么nickname是黄卫华,这个问题说过多少次了,单位管理员nickname就是单位管理员,怎么可以用真实人名,查一下哪里搞错了,还一直错
我给的组织架构图是这样的
极光智能的组织架构以及人员
董事会  -> 总经理办公室  王龙
产品中心           张四
研发中心-> 前端       林木
       -> 后端       胡勇
       -> 架构组     黄卫华 
       -> AI 团队    黄山
质量中心         蔡熊
运维交付中心     方勇


7、spec第一条我不是说禁止一切鸟语的呢?怎么变成了禁止搜索(这个当然也要的)

8、_sys-restart.log  这些log用完就删除掉吧,看着累


这两次修改的问题都应该spec,要跟着优化
修改代码的时候,只用跑相关的测试脚本,反正我会全量跑一次的。

三、核心功能盯的是搜索,不是 rbac

3.1 给我一个帐号一个关键词就行

我要看效果,它一直在自己试自己的:

复制代码
我现在想看搜索效果,哪个帐号登录,可以查看,顺便看一下详情
复制代码
你妈的是猪啊,我要的普通用户发布的资料,我不是写了吗在example中markdown
你没测试吗?这样,先自己发布,然后搜索,我要看一下效果。搜索,查看详情效果。
makefile 复制代码
操*,哪里说了使用127.0.0.1:9200不会查看配置文件吗,就他妈知道瞎搞,操操
复制代码
操,我要的是我用哪个帐号,用哪个关键词搜索,然后查看。不是你要测试。当然你测试好也可以
复制代码
*,给我一个帐号,一个关键词不就行了
markdown 复制代码
*,单位管理员可以搜索吗?*

3.2 详情页图片像什么,高亮一返回就清空

css 复制代码
这个核心功能,你的测试脚本里面没有?
还是这一切都没有测试过?
你根本搞不清哪个是核心功能?

查看详情,什么狗P,图片显示的像什么样,操
和doc-detail.html 原型有一点一样吗?

他妈的和你说过多少次,核心功能?
管理员是单位的,不可搜索,这是需求规定的。普通人员才可以搜索。
高亮也没有,一返回就清空了,
核心功能不深挖,你到底在干嘛。认真研究一下,修改原型,以及前端代码。
说过多少次这个系统的核心功能是搜索这一块,只是顺便将rbac的功能测试完成。但你的重点好像全是rbac,一点都没放在docsolo上。
(希望不要每次都说,不要弹出框)

从原型开始改:

sql 复制代码
补充
search页面,黄圆图后面要加上完整名称,不然我怎么知道是黄什么。这个从原型开始改 

四、目录按我给的样例来,一级二级不能乱

4.1 样例里写着一级二级目录,别乱加

这事补了两次,第一次它没理我:

复制代码
补充
还有个大bug。我的markdown样例明确给出了一级目录,二级目录,你到好,完全乱加,我之所以这样给你就是告诉我以后目录结构。

补充
还有个大bug。我的markdown样例明确给出了一级目录,二级目录,你到好,完全乱加,我之所以这样给你就是告诉我以后目录结构。 操我添加东西都不理我了?

4.2 缺目录自动建,乱写的删掉

复制代码
补充,
这里还有一个隐藏需求,就是一级目录和二级目录如果没有要自动创建,还有将以前的那些乱写的目录删除
如果你手动添加测试也要按我给的这个目录结构来的。

4.3 example 里的 markdown 就是拿来测试的

复制代码
前面专门写了
测试时: example中 markdown下有两级目录以及多个markdown的文件和图片(images)。
可以用于测试。
看来将我的话当耳旁风了。总是丢需求是什么回事,说过的东西,以为你做了,结果没做,现在我提出来至少两三次了。

再次强调中文,一定要中文,中国人不讲鸟语

五、deploy 和 zip:数据只落一个根目录

5.1 deploy 目录是可选的,不是写死

按惯例 deploy 目录应该是可选的,不是直接指定到某个目录,是不是原型层就得改:

复制代码
按照惯例
deploy目录应该是可以选的,不是直接指定到哪个目录的。不要用瞎搞错了。
是不是原型层就要修改,这个 

5.2 「列出可部署目录」这个接口是理解偏了

bash 复制代码
后端加一个「列出可部署目录」接口

又理解偏了。
可选目录,指的是用户层的电脑中的目录,上传后,deploy还是zip,都是要放在统一指定的目录中。
对了这里要添加一层,如指定是  /export/data/docsolo/data 
保存数据应该是:
    租户id(应该是id吧)
       |-  一级目录
             |-  二级目录
                 |-  xxxxx
                        |---  xxx.md
                        | images/x
                        
上传还是deploy等三种方式之一,都是这样的,数据保存目录肯定只有一个,怎么要接口列出部署目录??

租户 id 这一层以前没有,是要新加的需求:

bash 复制代码
租户id(应该是id吧)
这个需求以前是没有的,要增加上。

5.3 zip 和 deploy 怎么定一二级目录

python 复制代码
现在是开发阶段,你不是经常数据全删了吗?以前数据不重要。
要说明:
zip时,最好是指定一级,二级目录( 这个应该是combobox可选),如果zip中有一级二级目录,如我压缩markdown数据一样,则按zip中的来,没有才按填写的来。
deploy时,可以先进行一次一二级目录检测,如果没发现就强制用户选择,有就不用。

方案A(贴合你说的"本机目录"):deploy = 浏览器用 webkitdirectory 让你选本机一个文件夹整体上传,后端按上传文件携带的相对层级(一级/二级/资料)落盘到统一数据根。→ 后端 deploy 接口从「传 dir 字符串」改成「接收整个目录上传」。
方案B(沿用现有语义):deploy 仍指服务端某目录,只是把它归到统一数据根下、按层级落盘;「选择」指在管理端预置/挂载好的目录里选一个。
你是不是傻,后端目录是指定的,登录用户肯定是有租户信息,一二级目录不是在租户下创建的吗?这个怎么会乱呢?
用户的目录,指的是上传时的目录,前面我也说了,有检查规则的。

六、无扰模式:改完、改脚本、再打包

6.1 今天最后任务,安静改安静测

复制代码
今天最后任务,
请打开无扰模式,你安静的修改,安静的测试,别打扰我。
先按要求修改完成,然后修改测试脚本,最后打包

然后按新的测试脚本进行一次回归测试。完成后就可以了。

网络竟然断了,没按时完成任务。

6.2 中断不是不做,先查历史

复制代码
前面打断的都要修改。深挖搜索的这些也要修改。如果前面测试完成了,
要先搜索一下历史,查看一下我所有中断的需求,中断不是不作,当时为了补充,
所以一定要全部完成,并且完成后做一次回归测试。
我是无人值守模式,不要打扰我,但一定要 

话说到这个份上还在弹框:

复制代码
*,无人值守,还弹出对话框,你是想死吗

七、打包运行回看

复制代码
打包运行,我先自己查看效果。

并给出我测试帐号,我要自己看测试情况。

回看撞上两个问题:

测试问题:

1、搜索页没有退出登录,无法切换帐号,这个功能为什么先没想到。从原型开始改,不然根本无法测试。

2、不是叫你将没用的类别,一级二级目录删除呢

小结

  1. 问题大多不在功能做没做,在没按原型、没按 spec、没按我给的样例做。

  2. 用户类型就定死:9 是 super-admin、1 是单位管理员、0 是普通用户,01、02 的 sql 跟着改。

  3. 这系统的核心是搜索,rbac 只是顺带。重点不在 docsolo 上,测多少轮都白测。

  4. 规矩要写死:service 先写接口、包名用 utils、字面量走常量类、跨模块只能经 service 取数据、提交信息不许写鸟语。

  5. 数据只认一个根目录,按租户 id、一级、二级往下铺;为它加"列出部署目录"的接口是理解偏了。

  6. 无人值守就是不弹框、别停在半路。中断掉的需求要查历史补全。

下一篇部署到本机再回测,接 1.15 又一次大回归。

相关推荐
Eric72591 小时前
AI 落地工程师要会什么?从 0 到能接活的技能清单
ai编程
用户360055579001 小时前
【FHE 同态加密】我们如何实现同态加密推理(九):逐层尺度自适应——同态加密里为什么每层都要单独定标(scale 管理)
人工智能
知几蜗牛1 小时前
Java标准HTTP调用多模态模型的票据抽取前置校验
人工智能
智驭未来掌门人1 小时前
AI 的“手和眼”:一场关于感知与行动的静默革命
人工智能
柯南46681 小时前
【AI工程师精讲】05:FlashAttention:它不是算得更快,是搬得更少
人工智能·ai编程
C++ 老炮儿的技术栈1 小时前
char (*csConnectName)[256]; 和 char csConnectName [256] 有什么区别
java·c语言·开发语言·c++·人工智能·算法·c
Rocky Ding*1 小时前
VideoChat3 深度解析:视频理解的效率,来自时空压缩与主动感知的共同设计
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·视频理解
禹凕1 小时前
深度学习之激活函数(Deep Learning about Activation function)
人工智能·深度学习
loulanyue_1 小时前
脑机接口:意动·芯动·行动——读同济医院副院长廖家智2026云栖演讲
人工智能·深度学习·云栖大会