对于工作了几年的java开发人员来说,写代码已经有了一定的熟练度,但是怎么样的代码才是好代码,怎么样的代码才能更像一个高手写的代码,俨然一脸懵逼,也许有人会说按照阿里的代码规范来写代码就行了。其实阿里的代码规范是给新手写的,如果想进一步的写好代码,我们都会迷茫。
罗胖说过,科学就是在前人的基础上开枝散叶,前进一小步。同理,好的代码就是在大牛的基础上开枝散叶,前进一小步。那大牛的代码在哪,大牛是怎么写好代码的呢?
1、什么样的代码才是好代码
好代码的条件有很多,初期我们要最求格式规范,命名规范。中期我们就要最求实现优雅,性能高。后期我们就要最求结构优雅,可扩展,别人看着舒服。说人话就是你写代码要符合设计模式规范,后期别人修改的时候好修改,代码可读性强。
2、我们怎么学习写好代码
最大的大牛就是JDK的编写者,这些哥们一般很牛,也不排除有阿三写的,所以看看JDK的代码就知道大牛是怎么写代码了。
开源是进步的动力,很多优秀的开源软件都是安装设计模式设计的,最终易读性可扩展性都不错。研读优秀的开源软件可以让我们见识到很多
这也是很多公司面试时问我们有没有看过某某某的源码的一个原因
3、我们怎么做
学习也学了,书也看了。我还是好像什么都没有学到。那是因为学没有致用。其实学以致用说起来容易,做起来就不是一般的难,首先我们没有环境,人人都想有阿里大牛一样的学习经历,人人都想经历滴滴七天扩容的经历,但是这些都是幸运儿。我们没有机会的
那我们就混吃等死?也不尽然。我们可以试着自己来一个七天扩容,我们也可以试着自己去实现一些中间件,虽说不能立竿见影,但是如果我们持续的鞭策自己,也能学有所成。
老是忘记怎么办
百看不如一用。我也学习过一段时间,但是就是隔一段时间就忘记了,所以。
找个大公司才是王道
找个大公司才是王道
找个大公司才是王道
因为大公司才用设计模式,大公司才讲究规范,小公司就呵呵了。
所以面试的时候比起长得帅 面试官更看重你的项目经历,是不是有大公司工作经历。
举个栗子
光说不练,都是PPT玩家。我就说一个例子吧。
现在的类的创建都是很复杂的。比如一个order的创建,一般我们都是把属性塞到构造函数,或者new 之后再set。
public class Order {
private String code;
private List<String> offers;
private Map<String, Object> features;
}
但是这些怎么看着都不makesense。所以,我想到了建造者模式。使用loombook插件很容易就实现了
@Builder
public class Order {
private String code;
@Singular
private List<String> offers;
@Singular
private Map<String, Object> features;
}
使用也很优雅,可读性很强:
Order order = Order.builder().code("123")
.offer("asdfadf")
.feature("asdf","tttt")
.build();
是不是一下子把自己的代码逼格提高好几个百分点
例子未完待续