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

程序员日常互怼指南.avi,请谨慎打开,产品经理回避一下

这篇文章分享之前我还是要推荐下我自己的群:726272430 java海量知识分享,不管你是小白还是大牛,小编我都挺欢迎,小编还会不定期分享干货,包括我自己整理的一份最新资料和零基础入门视频教程!欢迎初学和进阶中的小伙伴前来光顾!

1,是否需要DAO/DAL

在java spring的大环境下,程序员日常开发是这样的

controller---service----(mybatis)mapper

mapper 目前可以理解为DAO(data access object)如果加入DAL,结构就变为 controller---service----DAL----(mybatis)mapper

有很多时候,确实会为了DAL打的不可开交,到底需不需要DAL(data access layer)

佛系程序员会说:

魔系程序员1:必须需要,大家都这么做的,你为什么不加

魔系程序员2:无非是在mapper上封装一层,一行代码还是一行代码,完全是脱裤子放屁

魔系程序员3:谁说必须的?你给我说清楚,说不清楚,谁也别想活着下班

道系程序员:多既是少,少既是多

这个问题我是这么认为的,加入DAL是为了在service层之前可以将必要的DAO操作聚合在DAL,减少在service层的重复代码,说白了就是复用,如果在service操作的是很简单的操作,也没有必要一定非要添加DAL,否则还是要考虑DAL,看图!

除非是个人项目一般公司的项目中,很少有这么直来直去的调用关系,所以还是建议加入DAL

以上是基于java spring 框架来说的,DAL可以理解为数据库操作的聚合层,某个DAL方法中同时包含多个数据库交互的操作

2.方法返回什么情况下用map结构?

见过很多代码包括在api(controller)层都是返回map数据,这是一个很头大的问题,表示整个项目基本上没有什么可读性了,有人说,这样的话可以保证项目的灵活性,想返回什么就返回什么,很洋气。项目最重要的不是洋气,真要洋气的话,贴个照片上去最洋气,项目对于开发者而言最重要的是可读性和规范化,如此才能保证项目良性的进入迭代,否则有一天排查一个紧急问题,你会发现,

什么情况下使用map或者其他非标品对象?最好不是对外公开的方法,自己写的自己用,不会影响别人的心情,这样就很有可能发生这样的一幕,有一天你的假期结束,开开心心的回到公司,结果发现你写的的代码都不见了。。。。

3.最好的语言答案

php: java python nodejs,在我面前都是垃圾

java ,python nodejs :请问你工资多少?多少。。。。少。。。。

php:。。。。。。

分分钟结束战斗,

不过我想说:python是最屌的语言,她的胸怀旧入36D一般宽广

4.设计方式:自上而下还是自下而上

其实我也很反感讨论这些上上下下的事情,

自下而上的设计:倾向于领域模型的设计方式,我的习惯是关注三点:模型 行为 数据

模型其实就是业务场景中参与者,行为就是模型要完成那些业务,模型与模型之间要发生那些关系,数据最后落地的方式,需要那些表来支撑这些模型和行为,以及可能会存在的行为

其他的就是迎合需求,设计接口,来调用不同的行为就可以了,保证模型 行为 数据三个点的正确性,中间的代码写的再烂,都有机会掰回来,

自上而下的设计: 迎合敏捷的开发方式,直接根据需求的业务设计接口,在模型方面和行为方面会根据业务需求来,不会刻意追求模型的独立完美和行为的边界,在数据库层的设计看具体设计者的心情,大部分情况都是比较慎重,毕竟改数据库比改代码要复杂的多

如果非要比较的话,前者更加稳重一点,项目越大越优势,不会被复杂逻辑带沟里,小项目的话就会显的很啰嗦,后者是效率流的,主要是要保证迭代的正常,中小项目都适用,大项目会容易把整个架构带偏,最后只能强势维护或重构,如何选择?反正我一直都是选前者,就算是敏捷的团队,也不能阻碍我追求完美模型的心

5.异常的处理的统一

异常是很多新人容易忽略的一个重要话题,总是认为哪有那么多异常,有异常try catch ,打个log,随便返回一个异常到前端就完事了,然后就没有然后,前端不知道发生了什么,后端日志看不到有效信息

先来理一下异常一般分为两种:业务异常,系统异常,

业务异常表示:业务校验中失败的表现,比如登陆失败,库存不足,余额不足,都业务处理中自定义的各种异常

系统异常:空指针,数组越界等,代码引起的异常

业务异常建议在代码中:controller---service---dal---dao,直接向上抛,一直抛到切面位置,交由切面统一处理,记录日志,返回前端明确的异常信息,其中对于业务异常的规范的统一,从code msg desc,要尽量细化,尽可能多的表达异常的准确信息

6.产品经理应该打死还是打残

先打残再打死!!!!

下面是小编整理的一整套系统Java学习教程

最后给大家推荐我的JAVA资料分享群:726272430有免费java学习资料,还有各种趣味案例等,欢迎各位加群!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180409A1J7E900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券