首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

恕我直言,在座的各位根本写不好Java!

DTO 数据传输我们应该使用 DTO 对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端 API 设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的 Java 程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert(...).convert(userInputDTO); 你会发现,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和...拥抱 lombok 上边的 DTO 代码,已经让我看的很累了,我相信读者也是一样,看到那么多的 Getter 和 Setter 方法,太烦躁了,那时候有什么方法可以简化这些呢。...= Lists.newArrayList(); Lists 命名是一种约定(俗话说:约定优于配置),它是指 Lists 是 List 这个类的一个工具类,那么使用 List 的工具类去产生 List,

60240

细思极恐-你真的会写java吗?

DTO 数据传输我们应该使用DTO对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端api设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output)...抽象接口定义 当实际工作中,完成了几个api的DTO转化时,我们会发现,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的java程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert()....convert(userInputDTO); 你会发现,new这样一个DTO转化对象是没有必要的,而且每一个转化对象都是由在遇到DTO转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和DTO进行聚合呢...(); Lists命名是一种约定(俗话说:约定优于配置),它是指Lists是List这个类的一个工具类,那么使用List的工具类去产生List,这样的语义是不是要比直接new一个子类来的更直接一些呢,

62150
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    细思极恐 - 你真的会写 Java 吗?

    DTO 数据传输我们应该使用 DTO 对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端 API 设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的 Java 程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert(...).convert(userInputDTO); 你会发现,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和...拥抱 lombok 上边的 DTO 代码,已经让我看的很累了,我相信读者也是一样,看到那么多的 Getter 和 Setter 方法,太烦躁了,那时候有什么方法可以简化这些呢。...= Lists.newArrayList(); Lists 命名是一种约定(俗话说:约定优于配置),它是指 Lists 是 List 这个类的一个工具类,那么使用 List 的工具类去产生 List,

    49830

    细思极恐 :你真的会写 Java 吗?

    DTO 数据传输我们应该使用DTO对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端api设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output)...抽象接口定义 当实际工作中,完成了几个api的DTO转化时,我们会发现,这样的操作有很多很多,那么应该定义好一个接口,让所有这样的操作都有规则的进行。...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的java程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert()....convert(userInputDTO); 你会发现,new这样一个DTO转化对象是没有必要的,而且每一个转化对象都是由在遇到DTO转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和DTO进行聚合呢...(); Lists命名是一种约定(俗话说:约定优于配置),它是指Lists是List这个类的一个工具类,那么使用List的工具类去产生List,这样的语义是不是要比直接new一个子类来的更直接一些呢,答案是肯定的

    1.5K90

    包括我~

    DTO 数据传输我们应该使用 DTO 对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端 API 设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的 Java 程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert(...).convert(userInputDTO); 你会发现,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和...拥抱 lombok 上边的 DTO 代码,已经让我看的很累了,我相信读者也是一样,看到那么多的 Getter 和 Setter 方法,太烦躁了,那时候有什么方法可以简化这些呢。...= Lists.newArrayList(); Lists 命名是一种约定(俗话说:约定优于配置),它是指 Lists 是 List 这个类的一个工具类,那么使用 List 的工具类去产生 List,

    67240

    包括我~

    DTO 数据传输我们应该使用 DTO 对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端 API 设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的 Java 程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert(...).convert(userInputDTO); 你会发现,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和...拥抱 lombok 上边的 DTO 代码,已经让我看的很累了,我相信读者也是一样,看到那么多的 Getter 和 Setter 方法,太烦躁了,那时候有什么方法可以简化这些呢。...= Lists.newArrayList(); Lists 命名是一种约定(俗话说:约定优于配置),它是指 Lists 是 List 这个类的一个工具类,那么使用 List 的工具类去产生 List,

    70120

    你见过哪些目瞪口呆的 Java 代码技巧?

    DTO 数据传输我们应该使用 DTO 对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端 API 设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的 Java 程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert(...).convert(userInputDTO); 你会发现,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和...拥抱 lombok 上边的 DTO 代码,已经让我看的很累了,我相信读者也是一样,看到那么多的 Getter 和 Setter 方法,太烦躁了,那时候有什么方法可以简化这些呢。... = Lists.newArrayList(); Lists 命名是一种约定(俗话说:约定优于配置),它是指 Lists 是 List 这个类的一个工具类,那么使用 List 的工具类去产生 List,

    69720

    细思极恐 - 你真的会写 Java 吗?

    DTO 数据传输我们应该使用 DTO 对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端 API 设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的 Java 程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert(...).convert(userInputDTO); 你会发现,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和...拥抱 lombok 上边的 DTO 代码,已经让我看的很累了,我相信读者也是一样,看到那么多的 Getter 和 Setter 方法,太烦躁了,那时候有什么方法可以简化这些呢。...= Lists.newArrayList(); Lists 命名是一种约定(俗话说:约定优于配置),它是指 Lists 是 List 这个类的一个工具类,那么使用 List 的工具类去产生 List,

    58030

    你见过哪些目瞪口呆的 Java 代码技巧?

    DTO 数据传输我们应该使用 DTO 对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端 API 设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的 Java 程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert(...).convert(userInputDTO); 你会发现,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和...我希望写一些网上很难查到,或者很少人进行说明的 lombok 的使用以及在使用时程序语义上的说明。...= Lists.newArrayList(); Lists 命名是一种约定(俗话说:约定优于配置),它是指 Lists 是 List 这个类的一个工具类,那么使用 List 的工具类去产生 List

    16711

    包括我哈

    DTO 数据传输我们应该使用 DTO 对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端 API 设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的 Java 程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert(...).convert(userInputDTO); 你会发现,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和...我希望写一些网上很难查到,或者很少人进行说明的 lombok 的使用以及在使用时程序语义上的说明。...= Lists.newArrayList(); Lists 命名是一种约定(俗话说:约定优于配置),它是指 Lists 是 List 这个类的一个工具类,那么使用 List 的工具类去产生 List

    52630

    Spring WebClient vs RestTemplate——比较和特点

    基本上,一个人必须做 自动装配 RestTemplate 对象 使用授权和内容类型构建 HTTP 标头 使用 HttpEntity 包装请求对象 提供 URL、Http 方法和交换方法的返回类型。...retrieve 方法直接获取响应体。它更容易使用。 此外,根据您是尝试获取单个对象作为响应还是对象列表,您可以使用monoor flux。...消息读取器/写入器自定义 我已经retrieve在上面的代码演示中展示了方法。...WebClient 还提供了一种带有变量的方法,exchange例如exchangeToMono andexchangeToFlux`。 使用attribute(),我们还可以向请求添加属性。...或者,也可以使用 WebClient 进行同步使用。在我上面的 MainController 示例中,我使用它block来获取最终结果。这基本上会阻止并行调用,直到我们得到结果。

    1K10

    @Validated和@Valid区别

    总结: @Validated 注解,可以使用 分组进行校验! 定义分组接口,根据接口来给实体类上的 校验注解进行分组!...如果是使用Spring表单 还可以可以Spring表单进行绑定使用展示异常信息,目前少见了! 根据实际开发需求来做,讲异常信息包装返回前端进行展示,提示用户!...全局异常处理类: 可以先了解:此篇文章:异常处理! 因为每个Controller 都会需要进行 BindingResult 可能会比较麻烦,可以使用全局异常进行捕获处理!...注解声明异常类型, 当类中出现改异常会进入该方法处理 在单个,Controller中也可以使用,但是进限于声明的Controller 声明在 @ControllerAdvice类中 则全局的Controller...总结:@ControllerAdvice 就相当于一个全局的Controller 累下的方法,可以被所有的Controller类共享…可以做全局异常,初始化数据 数据绑定!

    12420

    恕我直言,在座的各位根本不会写 Java!

    DTO 数据传输我们应该使用 DTO 对象作为传输对象,这是我们所约定的,因为很长时间我一直都在做移动端 API 设计的工作,有很多人告诉我,他们认为只有给手机端传输数据的时候(input or output...不知道在看完这段代码之后,读者有是否发现还有其他问题的存在,作为一个优秀的 Java 程序员,请看一下这段我们刚刚抽象完的代码: User user = new UserInputDTOConvert(...).convert(userInputDTO); 你会发现,new 这样一个 DTO 转化对象是没有必要的,而且每一个转化对象都是由在遇到 DTO 转化的时候才会出现,那我们应该考虑一下,是否可以将这个类和...拥抱 lombok 上边的 DTO 代码,已经让我看的很累了,我相信读者也是一样,看到那么多的 Getter 和 Setter 方法,太烦躁了,那时候有什么方法可以简化这些呢。...= Lists.newArrayList(); Lists 命名是一种约定(俗话说:约定优于配置),它是指 Lists 是 List 这个类的一个工具类,那么使用 List 的工具类去产生 List,

    72510

    23种设计模式(三)--装饰器模式

    这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例来演示装饰器模式的用法。其中,我们将把圣诞节的房间在原来的基础上装饰上了气球。...通常这个组件Component是抽象的(接口或者抽象类) 然后, 抽象类会有一个具体的实现 ConcreteComponent, 除了实现组件Component的方法, 还可自定义方法....装饰器模式的使用场景: 以下情况可以考虑使用装饰器模式 需要扩展一个类的功能,或给一个类添加附加职责。 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。...当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。 四....但是,如果你要针对具体组件编程时,就应该重新思考你的应用架构,以及装饰者是否合适。当然也可以改变Component接口,增加新的公开的行为,实现“半透明”的装饰者模式。在实际项目中要做出最佳选择。

    43650

    天命吃鸡还是落地成盒 学学装饰模式先

    M416 来看看如何设计代码,首先游戏里面肯定不止这一种枪,除了步枪还有手枪,狙击枪等等,所以老规矩,将枪作为父类提出来,作为抽象类,可以实现枪的公用方法,也可以只要抽象方法,不同的枪都来继承它就行了。...我想说,其实我这里只是简化了配件数量,其实M416的配件还有弹夹和枪托,并且每个部位的配件可能不止一种,比如弹夹还可以分为扩容弹夹和快速弹夹,真要一个个写下来,可能几十个类都写不完。那么该怎么办?...首先创建一个抽象装饰类,这个类的作用就是动态的传入对象,这个对象只要是Gun或者Gun的子类都可以,简单的说,只要传入一把枪就行,然后用具体装饰类对这个抽象装饰类进行“装饰”,加上各种功能即可。 ?...抽象装饰和具体装饰 抽象装饰类,用于维护一个对象,这个对象可以是任何一个M416,没有配件或者有配件都可以,然后在具体的装饰类中,可以继续对这个对象进行功能的添加,这样就可以在M416的基础上,配置各种配件...理解了上面这个例子,再来对比一下这个例子和IO流中的设计,来看看IO流中如何使用装饰模式。 ? 对比 左边的结构就是上例的结构,各位应该已经明白了。再来看右图,有没有发现结构几乎一样?

    34020

    用了这么多年分页PageHelper,才发现自己一直用错了!

    BaseService作为interface,page为什么可以声明方法体?...是因为page函数只关注分页参数和分页响应,脱离了业务场景,方法体大相径庭,所以索性抽象定义出来,免去了其实现的复杂冗余过程 ” 2....“ 答: PageParam是参考PageInfo编写的类(不确定往后PageHelper是否会封装此类,兴许我可以提个Issue上去,也参与开源框架的开发) 编写此类的目的就是为了分离分页和业务数据...,让开发者专注于业务的实现和开发,同时也是对分页查询API的一种规范,无论是请求还是响应都将分页相关的数据抽离出来,单独使用 而实现IPage则是因为IPage作为PageHelper内置的interface...,在不了解它更多意义上的作用前,可以作为我们分页参数声明的一种规范,而IPage中也只声明了三个方法,分别是pageNum/pageSize/orderBy的Getter方法,另外在源码分析中,我将会提到实现此接口更深层的意义

    9.6K43

    62道Java核心面试题,这次全了

    在 Java 中,抽象类用于创建具有某些被子类实现的默认方法的类,一个抽象类可以有没有方法体的抽象方法,也可以有和普通类一样有方法体的方法。...抽象类是对类的一种抽象,继承抽象类的类和抽象类本身是一种 is-a 的关系。...接口是对类的某种行为的一种抽象,接口和类之间并没有很强的关联关系,所有的类都可以实现 Serializable 接口,从而具有序列化的功能。 34、一个接口可以实现或者继承另外一个接口吗?...注解是 Java 1.5 时引入的,同 class 和 interface 一样,也属于一种类型,注解提供了一系列数据用来装饰程序代码(类、方法、字段等),但是注解并不是所装饰代码的一部分,它对代码的运行效果没有直接影响...我们可以使用 instanceof 关键字检查对象是否属于一个类。

    64120

    DDD专题案例二《领域层决策规则树服务设计》

    甚至怀疑自己,我在干嘛? 无论是DDD、MVC,他们更像是家里三居或者四局的格局,每一种格局方式都是为了更好的实现对应架构下的设计思想。...2、另外一些行为规则是会随着业务发展而增加或者变动的,所以不能写死{写死太吓人了}。 3、数据库的PO类不应该被外部服务调用,这也是必须的。如果你开发过很多系统,那么可能已经吃过亏并意识到这个问题。...但是为了使这个领域服务具备良好的使用和扩展性,我们需要做些拆分,那么如下; 1、你是否想过系统在过滤过则的时候其实就像执行一棵二叉树一样非左即右侧,每一条线上都有着执行条件,通过判断来达到最终的结果。...api 2、外部传输对象采用DTO类,主要为了避免内部类被污染{不断的迭代的需求会在类中增加很多字段} 3、目前依然是提供的Http服务,如果提供的rpc服务,将需要对外提供可引用jar interfaces...另外决策服务可以使用Drools,任何抽象并不一定永远使用,不要拘泥于一种形式 一些大型架构设计往往不是换一个设计模型就能彻底提升效率,还是需要人员整体素质,这是一个不断培养的过程 领域驱动设计的思想并不只是教会程序猿写代码

    1.2K10

    Spring Boot – 使用 ModelMapper 将实体映射到 DTO

    总体思路是客户端将请求发送到服务器,服务器用一些响应来响应该请求。一般来说,我们大多数应用程序都具有三个不同的层:Web层、业务层和数据库层。这些层中的对象大多彼此不同。...如果未使用 GET 端点正确处理响应,则可以获取 User 类的所有字段,甚至密码,这对于编写静态服务来说不是一种好的做法。...图 6 – 数据库连接设置 第5步: 创建实体类 现在,我们需要创建实体类。对于我们的应用程序,我们将使用User 类作为我们的实体类。它将包含以下字段id、名称、电子邮件和密码。...图 9 – 响应 我们还可以检查数据库中的新用户条目。 图 10 – 添加到数据库的用户 2. 获取用户: 我们将使用 GET 端点和用户 ID 从数据库中检索用户。...图 11 – 获取用户 正如我们在上面的响应中看到的,我们还将收到密码,这不是编写 Restful API 的好习惯。为了解决这个问题,我们将使用 DTO。

    1.2K30
    领券