本鸟曾有幸做过两年的 ruby 开发,因为一些原因转做 java 了,现在想正式转回专做国内的 ruby 开发。 请教各位大神,怎样找回状态,以及跟进 ruby 的更新?
目前写的 ruby 代码总是带有一些 java 的味道,请求各位指点,如何能改善这一点。
额,感觉问题出在还不够热爱 ruby 吧,
举个不恰当的栗子,你跟 ruby 交往了 2 年,然后分手了,找到了 java 谈了一段时间,现在又想起前女友了,想要找回以前的感觉。
我想唯一的方法就是这次请深爱她!
此外,写 ruby 带有 java 的味道,被 ruby 知道了是要被抽的!😅
说的不好,供参考:)
能闻到 code smell 就没什么大的问题了。 有两样是推荐花时间阅读的: https://github.com/JuanitoFatas/ruby-style-guide/blob/master/README-zhCN.md https://github.com/JuanitoFatas/rails-style-guide/blob/master/README-zhCN.md 具体于开发环境上,请选择搭配 rubocop. 我个人的环境是 atom+ rubucop 的 linter. 给我的帮助很大。我觉得称为 ruby 上矫正脊背的背背佳不为过. 阅读他人的代码或者优秀 gem 的代码,也很有帮助。
#10 楼 @bird_on_rails 比如说按照 Java 的风格你会这么写
result = new Array
for (d in data) { func1(); if(!func2()) continue; func3(); result.push(func4()) }
按照函数式风格的话
result = data.map(&:func1).select(&:func2).map(&:func3).map(&:func4)
# Gemfile
gem 'rubocop'
gem 'rubycritic'
$ bundle install
$ bundle exec rubocop ruby-code-folder/
$ bundle exec rubycritic
Writing Fast Ruby —— Collect Common Ruby idioms. — https://github.com/JuanitoFatas/fast-ruby
中规中矩
result = []
data.each do |item|
fun1
next unless fun2
fun3
result.push fun4
end