我同事说我写代码像写诗
把自己平时写代码的习惯跟大家分享一下 1.定义配置文件信息
有时候我们为了统一管理会把一些变量放到yml配置文件中
例如
用 @ConfigurationProperties 代替@Value
使用方法
定义对应字段的实体 @Data // 指定前缀 @ConfigurationProperties(prefix = "developer") @Component public class DeveloperProperty { private String name; private String website; private String qq; private String phoneNumber; }
使用时注入这个bean @RestController @RequiredArgsConstructor public class PropertyController { final DeveloperProperty developerProperty; @GetMapping("/property") public Object index() { return developerProperty.getName(); } } 2. 用@RequiredArgsConstructor代替@Autowired
我们都知道注入一个bean有三种方式哦(set注入, 构造器注入, 注解注入),spring推荐我们使用构造器的方式注入Bean
我们来看看上段代码编译完之后的样子
RequiredArgsConstructor:lombok提供 3.代码模块化
阿里巴巴Java开发手册中说到每个方法的代码不要超过50行(我没记错的话)
在实际的开发中我们要善于拆分自己的接口或方法, 做到一个方法只处理一种逻辑, 说不定以后某个功能就用到了, 拿来即用
4. 抛异常而不是返回
在写业务代码的时候,经常会根据不同的结果返回不同的信息,尽量减少返回,会显得代码比较乱
反例
正例
5. 减少不必要的db
尽可能的减少对数据库的查询
举例子
删除一个服务(已下架或未上架的才能删除)
之前有看别人写的代码,会先根据id查询该记录,然后做一些判断
反例
正例
6. 不要返回null
反例
正例
别处调用方法时,避免不必要的空指针 7. if else
不要太多了if else if
可以试试策略模式代替 8. 减少controller业务代码
业务代码尽量放到service层进行处理,后期维护起来也好操作而且美观
反例
正例
9. 利用好Idea
目前为止市面上的企业基本都用idea作为开发工具了吧
举一个小例子
idea会对我们的代码进行判断,提出合理的建议
例如:
它推荐我们用lanbda的形式代替
点击replace
10. 阅读源码
一定要养成阅读源码的好习惯包括优秀的开源项目GitHub上stars:>1000, 会从中学好好多知识包括其对代码的设计思想以及高级API,面试加分(好多面试官习惯问源码相关的知识) 11. 设计模式
23种设计模式,要尝试代码中运用设计模式思想,写出的代码即规范又美观还高大上哈哈。 12. 拥抱新知识
像我们这种工作年限少的程序员,我觉得要多学习自己认知之外的知识,不能每天crud,有机会就多用用有点难度的知识,没有机会(项目较传统),可以自己下班多些相关demo练习 13. 基础问题
map遍历 HashMap map = new HashMap<>(); map.put("name", "du"); for (String key : map.keySet()) { String value = map.get(key); } map.forEach((k, v) -> { }); // 推荐 for (Map.Entry entry : map.entrySet()) { }
optional 判空 //获取子目录列表 public List getChild(String pid) { if (V.isEmpty(pid)) { pid = BasicDic.TEMPORARY_DIRECTORY_ROOT; } CatalogueTreeNode node = treeNodeMap.get(pid); return Optional.ofNullable(node) .map(CatalogueTreeNode::getChild) .orElse(Collections.emptyList()); }
递归
大数据量的递归时,避免在递归方法里new对象,可以试试把对象当作方法参数进行传递使用
注释
类 接口方法 注解 较复杂的方法 注释都要写而且要写清楚, 有时候写注释不是给别人看的 而是给自己看的 14. 判断元素是否存在
hashSet而不是list
list判断一个元素是否存在的代码 ArrayList list = new ArrayList<>(); // 判断a是否在list中 for (int i = 0; i < list.size(); i++) if ("a".equals(elementData[i])) return i;
由此可见其复杂度为On
而hashSet底层采用hashMap作为数据结构进行存储,元素都放到map的key(即链表中) HashSet set = new HashSet<>(); // 判断a是否在set中 int index = hash(a); return getNode(index) != null
由此可见其复杂度为O1
手把手教你如何设计出高点击率的京东产品主图在京东的运营中,主图是商品宝贝最重要的展示窗口,与主图有直接关联的数据就是点击率。在同样的展现下,一张主图设计的优劣就会导致点击率出现差距!所以没有点击率就没有更多的流量,点击率的
好看视频作者主页的视频怎么批量下载到本地电脑上好看视频是由百度团队打造集内涵和颜值于一身的专业短视频聚合平台,好看视频平台拥有独家短视频内容源,覆盖搞笑音乐影视娱乐游戏生活小品军事汽车新闻等全方位优质视频内容。我们平时在逛好看
又拍相册上的全部图片怎么快速批量下载到本地又拍网作为一种网络在线相册,用户可以在里面发布存储分享及传播照片。拍友们可以使用又拍直接边拍边传,记录照片拍摄位置,也可以将图片自动同步新浪微博,腾讯微博浏览朋友们的最新活动,最近
速看!这里教你简单快速搭建外卖点餐小程序商城互联网时代,很多餐饮店都有外卖送餐的业务,一般商家都是选择入驻第三方外卖平台来帮助开展外卖业务,但是随着各个外卖平台的订单抽成不断增加以及拼团满减等各种营销活动的开展,商家的利润受
招聘H5模板一键套用,招贤纳士从H5招聘开始当我们策划一个活动的时候,无论是文章还是一场活动,突出主题,让自身的品牌进行定位,这样才能让用户更好的切入。为了满足用户群体不同的需求,我们可以阶段性选题,这样可以防止用户群体出现
为什么装修行业要做微信小程序?家装装修类小程序怎么做?传统装修行业开发制作微信小程序有什么好处?1。开通线上渠道,轻松获客。2。线上经营,有助于客户全面了解装修公司的情况。3。客户可在线查看装修方案与风格,拥有舒适便捷的装修服务。4。
仅需五分钟!快速制作美容行业小程序互联网时代,很多传统行业都在转型,比如传统的美容行业,不仅开发了美容行业相关APP,就连微信小程序也随之而来。微信美容小程序更是凭借其无需下载快速使用,用完即走的优势深受用户的喜爱
H5投票页面怎么做?看这篇就够了最近小编在网络上看到了一个很多人都在关注的问题微信h5投票怎么做?,今天针对这个问题,小编给大家讲解一下,分享一个简单又实用的微信h5投票页面制作教程,新手小白们赶紧Get哦所需工
微信小程序超市平台怎么制作,如何开发一个商城小程序微信商城小程序,不占内存,不用下载,在手机微信上面搜索店铺名称就能找到,也可以直接下拉找到历史打开过的小程序店铺,各行业零售商家纷纷抓紧时间,想要制作自己的小程序,随着科技的发展,
快手运营技巧以及实操如何去养一个新的快手号?(详细解析)快手做短视频一定要养号,因为养号可以提高我们的账号权重,平台会给我们更多的播放量,今天我就带大家了解一下,新手注册快手号之后,是通过什么方法进行养号的。1。第一步我们需要注册账号,
干货!怎么压缩视频大小,怎么缩小视频体积可能因为使用pr渲染质量太高,导致我们的视频太大了,无法上传到短视频平台,如果我们去压缩视频,可能就会影响最初的视频画质,下面小编就带大家了解一下,在视频画质不受影响的情况下,如何