博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
好代码
阅读量:5898 次
发布时间:2019-06-19

本文共 1192 字,大约阅读时间需要 3 分钟。

hot3.png

认识和了解我的人,大概都知道,我这个人对代码是有要求的。我很反感仅仅为了功能来写代码,把代码写的平铺直叙,如果流水账一样。这样做,也许老板并不知道,老板关心功能,关心你是否竭尽全力。不过我始终认为,对于软件来说,代码就是它的全部,不重视代码质量的软件公司是注定不可能长久的。
我是web程序员,比较擅长java方面的开发,对java,scala,clojure,javascrit掌握的比较好.如果仅仅从语言的角度个人最喜欢clojure,最讨厌java。为什么不喜欢java呢?最主要的原因是java太啰嗦了,而且琐碎,缺乏数据结构支持,导致程序庞大,可读性差。
所以好代码第一条就是要简洁, 完成一个功能其代码要尽可能的少,越少越好。这个观点受《黑客与画家》这本书影响比较大。感兴趣的同学其实可以好好看看这本书,不过这本书是鼓吹lisp的。有人可能会认为代码越少可读性就越差,我觉得恰恰相反,人类理解认识的时间,其实大大少于翻阅代码的时间。简而言之,就是理解的时间远远小于翻阅的时间。这一点可能写过lisp的人会比较有体会,经常会对着几行代码冥思苦想,而javaer会不停的滚动鼠标,不停的在类和类直接切换。想要减少代码量,尽可能的使用类库是很重要的一种手段。好的 类库可以大大减少你的代码量,比如说google的guava。
好代码的第二条就是 没有重复的代码。这一点做到并不容易,需要很多的手段,对于java来说,就需要大量的 抽象手段。并尽可能的抽取方法。同时自己多写一些 工具类,如StringUtil,DateUtil等
第三尽可能减少复杂的if语句。其实无论什么语言,这都是一个问题,对于scala来说,有模式匹配,可能还好一点,但其他语言实在是缺乏削减if语句高度的手段。在java语言里面一个比较好的方法是用枚举定义很多相关的状态,然后用if语句切换状态,最后用case语句实现分支。这样可以大大削减if语句的高度,因为if语句体中不包含具体的处理手段。而case语句又可以转换成策略模式,用类的手段还可以大大的减少代码重复。
第四,不要过多无用注释。特别是大量注释掉的代码。这一点可以参看鲍勃大叔的《clean code》这本书。
第五,不要出现错别字。
第六,不要出现怪异的写法,例如:if(xxxx){return true}else{return false}直接写成return xxxx;就好了。总之java培养了人啰嗦的习惯。但啰嗦实在是坏习惯。
最后,大家去看看《clean code》这本书吧。我觉得我的观感其实是建立在这本书上的。另外大家可能注意到,我没有说注释。其实好代码往往是自解释的,基本就不需要注释。可能仅仅需要文档来说明API的用法。

转载于:https://my.oschina.net/weiweiblog/blog/470109

你可能感兴趣的文章
Hibernate从入门到放弃(三)----持久化对象
查看>>
Aop RealProxy 千年遇BUG
查看>>
java解析虾米音乐
查看>>
rails将类常量重构到数据库对应的表中之三
查看>>
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
查看>>
android本地音乐播放器
查看>>
泛函编程(37)-泛函Stream IO:通用的IO处理过程-Free Process
查看>>
mysql 多行合并函数
查看>>
【案例】RAID卡写策略改变引发的问题
查看>>
AFNetworking 2.5.x 网络请求的封装
查看>>
Github项目推荐-图神经网络(GNN)相关资源大列表
查看>>
VLAN在交换机上的实现方法,可以大致划分为六类
查看>>
windows server 2008 R2 AD 域之---当计算机加入域时出现“拒绝访问”错误消息
查看>>
Linux用户管理3
查看>>
枚举目录下的目录和文件CFileFind
查看>>
产品设计流程
查看>>
Spark Infomation
查看>>
Java多线程中start()和run()的区别
查看>>
生产环境elasticsearch的配置建议
查看>>
dup和dup2函数
查看>>