V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
asanelder
V2EX  ›  问与答

Java vo, qo, dao, mapper, service, controller 好烦啊

  •  
  •   asanelder · 2020-11-24 15:43:31 +08:00 · 2656 次点击
    这是一个创建于 1465 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当前项目中涉及到数据库相关
    各种 vo, go, 内容都差不多,转来转去
    各种 dao, mapper, service, controller,各种接口也差不多,调来调去。

    各位铁子们,现在好的实践是什么呀,以上这些好烦啊~~~~
    18 条回复    2020-11-25 08:19:25 +08:00
    silentt
        1
    silentt  
       2020-11-24 17:01:03 +08:00   ❤️ 7
    当你觉得这样做烦且无意义的时候,只是因为你们的项目太小了。
    sagaxu
        2
    sagaxu  
       2020-11-24 17:06:55 +08:00 via Android
    你可以不理会这些,controller 里直接拼 sql 查 db
    taaaang
        3
    taaaang  
       2020-11-24 17:08:31 +08:00
    java 只是一门语言。。。
    optional
        4
    optional  
       2020-11-24 17:10:47 +08:00 via iPhone
    对 java 这些破事特多,没办法忍。lombok 和各种 utils 可以省点事。
    wysnylc
        5
    wysnylc  
       2020-11-24 17:13:06 +08:00
    Spring boot,tkMapper
    你只是没找到正确的路以及没有想到带来的好处
    asanelder
        6
    asanelder  
    OP
       2020-11-24 17:39:22 +08:00
    @silentt #1 项目大了,这样做岂不是更烦?
    @wysnylc #5 俺调研一下
    sheeta
        7
    sheeta  
       2020-11-24 17:56:01 +08:00 via Android
    mapstruct
    zzzmh
        8
    zzzmh  
       2020-11-24 17:57:28 +08:00
    假如你接手一个别人遗留的项目,啥都写一起,重复的代码一大堆,就有的苦了。
    itskingname
        9
    itskingname  
       2020-11-24 18:11:32 +08:00
    因为 Java 是一个非常繁琐的语言,Java 程序员秃头多,就是因为这个原因。
    asanelder
        10
    asanelder  
    OP
       2020-11-24 19:03:47 +08:00
    @itskingname #9 使用别的语言呢?俺感觉也避免不了类型问题啊,不知铁子可否指教一二?其它的语言是怎么解决类似问题的?
    @zzzmh #8 你猜对了
    tinyuu
        11
    tinyuu  
       2020-11-24 19:45:13 +08:00
    怎么舒服怎么写
    lllpla
        12
    lllpla  
       2020-11-24 22:38:36 +08:00
    看你怎么理解分层设计了,分层是比较繁琐,但是也有他的优势。
    每层只处理自己的逻辑。 分清哪些工作是业务 ,哪些是工作数据序列化,哪些工作是跟外部系统调用。
    以后要修改的话 也会很清晰。
    uselessVisitor
        13
    uselessVisitor  
       2020-11-24 22:48:35 +08:00 via Android
    业务流简单可能觉得接口差不多。。
    helloworldgo
        14
    helloworldgo  
       2020-11-24 23:21:38 +08:00
    你可以都写到 controller 里,但是可能会被接手的人 f**k
    asanelder
        15
    asanelder  
    OP
       2020-11-24 23:34:26 +08:00
    @helloworldgo #14
    @beichenhpy #13
    @lllpla #12
    想试试 DDD
    EminemW
        16
    EminemW  
       2020-11-25 02:36:00 +08:00 via iPhone
    试试接手一个只有 Controller 层的代码
    lanyuanxiaoyao
        17
    lanyuanxiaoyao  
       2020-11-25 03:39:25 +08:00 via Android   ❤️ 1
    mvc 和 Java 没啥必然关系,你去其他语言里面也有这一套,无非就是名字改改加一些别的理念,这个本来就是软件工程里面的东西,解决的是一些工程里问题,主要就是区分代码职责,眼下是你自己一个人或者几个人写项目,涉及的合作代码不多,可以轻松地掌握整个项目的逻辑,但是一旦开发人员多了,代码量大了,代码职责分工肯定是重中之重,不然最起码一个 bug 你都不知道在几十个包几百个类里面要看哪部分的代码
    这种类型的设计模式基本上都是几十年下来全世界代码实践里优胜劣汰下来的,如果你感受不到其中的好处的话,很有可能它解决的是一些你目前代码规模还没遇到的问题,你可以去看看这些设计模式的历史,看看当年提出这些模式是为了解决什么问题,毕竟总是要解决一些问题的,不然干嘛吃力不讨好写这么多模板代码
    rodrick
        18
    rodrick  
       2020-11-25 08:19:25 +08:00
    可以先搜一下这种设计的模式为什么会被这样设计,先理解一下,我觉得用多一些代码换业务逻辑的清晰是一件很划算的事
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5539 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:55 · PVG 16:55 · LAX 00:55 · JFK 03:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.