游客发表
用 Ruby 写代码,工具第一件事不是工具学语法,是工具装对工具。我见过太多人卡在环境配置上,工具还没写一行 puts "hello" 就放弃了。工具Ruby 的工具工具链其实不复杂,但选择多,工具得挑顺手的工具。
装完 Ruby 就自带 irb。终端敲 irb,工具立刻能试代码。工具我习惯用它验证小片段,工具比如确认 [1,工具2,3].sum 到底返回什么。它不会自动补全,工具也不高亮,工具但胜在零配置。新手别急着上 IDE,先跟 irb 混熟,理解 Ruby 的对象模型比记住快捷键重要。
不过 irb 有个升级版叫 irb --simple-prompt,提示符从 >> 变成 >> ,看着清爽点。另外 pry 是更强大的替代品,能看源码、改方法、跳进对象内部。装法简单:gem install pry。我调试复杂逻辑时基本离不开它,binding.pry 插在代码里,运行到那儿就停住,像给程序按了暂停键。
VS Code 装 Ruby 插件和 Solargraph,补全、跳转、lint 都能用。免费,启动快,适合大多数场景。但如果你做 Rails 大项目,RubyMine 的代码洞察确实更狠——它能理解 ActiveRecord 的动态方法,比如 User.find_by_name 这种没显式定义的方法,RubyMine 能跳过去。代价是吃内存,启动慢。我自己的选择:小脚本用 VS Code,公司项目用 RubyMine,不纠结。
Vim 用户也有得选。vim-ruby 加 tpope/vim-rails 是经典组合,配合 ctags 跳转够用。但配置成本高,除非你已经活在 Vim 里,否则别为了写 Ruby 专门折腾。
Ruby 的依赖管理靠 gem 和 bundler。装 gem 直接 gem install rails,但项目里必须用 Bundler。写个 Gemfile,bundle install,所有版本锁在 Gemfile.lock 里。我踩过的坑:没锁版本,服务器上跑出和本地不一样的结果。现在每个项目第一件事就是 bundle init。
bundle exec 也常用。比如 bundle exec rspec,保证用 Gemfile 里指定的 rspec 版本,而不是系统全局的。多项目并行时,这能省掉一堆“为什么我本地过了”的破事。
RSpec 是事实标准,语法像自然语言。expect(user.name).to eq("Alice") 读起来顺。但 Minitest 更轻,Ruby 自带,适合小库。我写 gem 时用 Minitest,写 Rails 应用用 RSpec。别纠结哪个“更好”,看项目上下文。另外 guard 能监听文件变化自动跑测试,配合 spring 加速启动,改一行代码立刻看到结果,反馈循环短了,写代码才不烦。
byebug 是标准调试器,gem install byebug,代码里写 byebug 就断住。比 puts 打印强,能查调用栈、修改变量。性能方面,stackprof 和 ruby-prof 能采样出热点方法。我遇到接口慢,先用 stackprof 跑一遍,八成问题出在 N+1 查询或字符串拼接上。
最后提一句 rubocop。它管代码风格,也抓潜在 bug。团队项目里加个 .rubocop.yml,CI 上跑一遍,少很多无意义的格式争论。但别被它绑架——有些规则该关就关,比如 Metrics/LineLength 设 120 还是 80,看团队习惯。
工具是拿来用的,不是拿来供的。装好 irb、Bundler、一个顺手的编辑器,就能开始写 Ruby 了。剩下的边写边加。
友情链接