代码是落地
代码是最终工程师的结果呈现,其中包括了本身的业务的实现,逻辑的展现,代码的质量,代码的习惯,甚至一些个人风格。
基础标准
个人理解,基础的业务满足,代码清晰,无逻辑bug,代码稳定,符合标准规范和具有一定的可读性这是一个基础。
追求的一些标准
这里罗列一些想法,供参考。也要求自己按照这个习惯坚持下去。
- 先做到业务满足、代码清晰、无bug、稳定、符合规范。至于符合规范,可以用阿里的代码规范检查,参考阿里公布的代码规范。整理的点点滴滴。
- 定期review code,会有新的思想和注释,大部分情况下,会对以前的代码‘嗤之以鼻’, 然后重写。review的周期(如果不重写的话,只是修改和增强理解),建议2-3个月review一下。
- 逻辑要非常清晰,如有必要,在javadoc里写上算法流程和参考文档。以便以后重现算法和代码review。
- 代码也是作品,和文学作品无本质区别,只是遵循了一些规范之外,一样要求优雅和易读,最好引人入胜。
- 当别人读代码的时候,说脏话的频率是衡量代码好坏的一个标准,我们读别人的代码经常提出各种意见,应该也有同样的感受。
- 代码就是注释。不用注释一样做到逻辑清晰,别人也能读懂,当然,还是要加注释,注释本身要通顺、明确。。
- 避免重复代码。
- 最后还是优雅,读起来让人心旷神怡。
- 无论多么牛逼的想法和算法,最后都要用逻辑清晰,优雅的方式组织出来,让人用起来、读起来还是心旷神怡。哈哈!
欢迎补充。
参考例子
第一列是需要的解决的问题,第二列是正确的命名;第三列是不太合适的命名;星号代表不建议。
Prose form | Correct | Incorrect |
---|---|---|
“XML HTTP request” | XmlHttpRequest | XMLHTTPRequest |
“new customer ID” | newCustomerId | newCustomerID |
“inner stopwatch” | innerStopwatch | innerStopWatch |
“supports IPv6 on iOS?” | supportsIpv6OnIos | supportsIPv6OnIOS |
“YouTube importer” | YouTubeImporter YoutubeImporter * |
参考文献
https://blog.youkuaiyun.com/iterate7/article/details/78102344
http://techbus.safaribooksonline.com/book/software-engineering-and-development/agile-development/9780136083238
https://zhuanlan.zhihu.com/p/27098454
https://blog.youkuaiyun.com/u013322876/article/details/50681979
https://google.github.io/styleguide/javaguide.html#s4.1.2-blocks-k-r-style