大佬们, 三层架构先写哪个层比较好呢 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vyuai
V2EX    Java

大佬们, 三层架构先写哪个层比较好呢

  •  
  •   vyuai 350 天前 3712 次点击
    这是一个创建于 350 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1.先写 DAO -> 再写 Service -> 然后写 Controller

    2.先写 Controller -> 再写 Service -> 然后写 DAO

    个人已经习惯第二种写法了, 是不是第一种更好
    22 条回复    2024-11-05 12:03:48 +08:00
    swim2sun
        1
    swim2sun  
       350 天前
    让 AI 帮你一次性都写好 (
    vyuai
        2
    vyuai  
    OP
       350 天前
    @swim2sun 还在学习中, 还是要手敲比较好, 熟练了就用工具了
    beginor
        3
    beginor  
       350 天前 via Android
    用代码生成器,一次全搞定,别纠结
    maix27
        4
    maix27  
       350 天前
    第二层舒服点吧。
    sagaxu
        5
    sagaxu  
       350 天前
    先写哪个都行。

    我一般按照数据流向来写,Controller -> Service -> DAO ,Controller 写完可以先发布到测试环境给前端调调看了
    lyusantu
        6
    lyusantu  
       350 天前
    走一步看一步就是 2
    提前规划就是 1
    fanchenio
        7
    fanchenio  
       350 天前
    按照你自己的思路写就行,哪步开始都可以,我是 Service -> DAO -> Controller 。
    wchcastle
        8
    wchcastle  
       350 天前 via iPhone
    先定义 api spec ,然后生成脚手架。业务逻辑可以自己写。
    prosgtsr
        9
    prosgtsr  
       350 天前 via iPhone
    我是 service-dao-controller
    proxychains
        10
    proxychains  
       350 天前
    dao -> service -> controller
    markgor
        11
    markgor  
       350 天前
    dao -> service -> controller -> service -> dao -> controller -> ... loop
    lsry
        12
    lsry  
       350 天前
    controller 可以快和前端接,短
    vyuai
        13
    vyuai  
    OP
       349 天前
    感谢各位大佬
    DIO
        14
    DIO  
       348 天前
    如果设计完备,就从底层写起,其他情况就是界面需要啥现场手搓
    qloog
        15
    qloog  
       348 天前
    dao -> service -> controller

    先有数据模型,再写业务逻辑,最后写参数检查和调用
    模型会让你把底层思考透彻,业务逻辑就是写具体的业务逻辑,写完前面俩,最后一个自然而然就有了
    carytseng
    &nbs;   16
    carytseng  
       348 天前
    设计表,构建实体,填充实体,写 dao 层,写 service 并组合 dao ,写 controller 加验证判空之类,最后的最后优化下,要不要加锁,要不要写一些事务处理
    Kaiv2
        17
    Kaiv2  
       348 天前
    unit test -> controller || service -> dao
    MYlyc
        18
    MYlyc  
       348 天前
    现在是工作中是 2 ,现写 controller
    写完 controller 发测试,前端可以照着 swagger 写
    devilweime
        19
    devilweime  
       348 天前
    dao 层,顺便确认下表设计有没有问题
    itechify
        20
    itechify  
    PRO
       347 天前 via Android
    先表设计,再 controller 定义接口,写好 service 看看需要 repository 哪些接口再写 dao
    spritecn
        21
    spritecn  
       346 天前
    表设计 ->mapper(一般是空的) -> serviceImpl -> serviceInterface ->controllerInterface - controllerImpl ->拉起来测

    我目前这么写,一般不会在 xml 或 mapper 里写 sql,所以我没有 DAO 层
    Aresxue
        22
    Aresxue  
       340 天前
    Controller -> Mapper -> Service ,外部定义越早越好,对接的前端和其它三方可以直接查看 Controller 申成的接口文档,Mapper 其实主要指的是底层模型,这块是需要和老板/产品达成一致的,Service 指的是内部服务一般来说调整更自由,不管是改名字还是职责还是拆分都好说一些。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2653 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 13:44 PVG 21:44 LAX 06:44 JFK 09:44
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86