本文算是我个人的一些心得和总结吧。前几天一个同事分享了一个session: 代码标准和工具。我觉得挺好的,但是不够深入,只是简单的介绍了一下工具。我很久以前做过调研,今天算是做一次总结吧。写好代码真是一种能力。只有不断追求卓越的代码,才能提升自我。感谢现在的开源社区,总是能提供各种优秀的工具,来帮助我们规范我们的代码,强迫我们提升代码的质量,提升我们思考代码的深度。
代码Style的工具
ruby是一种动态语言,缺少编译检查。所以,有时候一些比较常见的错误,只有在运行的时候才能发现。这类的工具算是弥补了这些不足,并且还能提供部分代码style的提醒。
代表工具是 rubocop.
地址: https://github.com/bbatsov/rubocop
rubocop是ruby静态代码解析工具
安装特别简单 gem install rubocop
与vim的集成
Bundle 'Syntastic'
关于 rubocop的配置 ,可以自行参考 https://github.com/bbatsov/rubocop#configuration
设计模式的Style
比rubocop更强大工具是 reek, 它的强大之处在于可以提醒我们代码有哪些地方值得修改,可以促使我们以面向对象的方式去写代码。这是我们重构代码的利器。但是千万记得,测试是重构代码的前提。
安装: gem install reek
与vim的集成: reek-vim
Bundle 'https://github.com/rainerborene/vim-reek.git'
let g:reek_on_loading = 0
let g:reek_always_show = 0
我修改了一下它的默认配置,此插件默认是在文件代码和保存的时候,自动运行reek命令。这样比较耗时,体验不好。我修改成了必须显示的运行才行。
命令是 :RunReek 还有比较有用的几个命令
:ll 显示当前行的诊断信息
:lne 跳转到下一个有问题的行
:lNe 显示到上一个有问题的行
:lopen 以window方式打开诊断信息
代码性能的工具
ruby代码的性能测试工具有很多,比较强大的一个是ruby-prof. ruby-prof 有两种运行方式 ,一种是api 方式,可以集成在我们自己的代码中,另外一种是 命令行方式。
此处想说的是命令行方式,api方式可以参考它的官方文档。
地址: https://github.com/ruby-prof/ruby-prof
安装: gem install ruby-prof
与vim集成:
map ,rp :!clear; ruby-prof %<CR>