Ruby, Rails 不值一学

2020-11-11 12:12:49 +08:00
 coool

这是前两天开的帖:https://www.v2ex.com/t/723318

我的工作是 Go 开发,因为总听说 Ruby 、Rails 很吊,所以业余打算学学,选了《 Agile web development with Rails 6 》一书看的,折腾了 3 天准备放弃了,真的不值一学。

如果一项编程语言的入门,大量时间要花到折腾环境、各种乱七八糟的报错上而无法聚焦到语言、框架本身,那还谈什么提高?

当初学 Go 也就小半天搭了环境就开始写了,Rails 整了 3 天,每天十个小时,到现在rails new demo都没跑起来,确切的说是没完全跑起来。

安装 Ruby 、Rails就不说了,rails new demo各种报错,最后localhost:3000访问到了,但是自从执行 了bin/rails generate controller Say hello goodbye,历数我遇到的各种奇怪的报错,完全没有任何解决方案:

node:internal/modules/cjs/loader:903
  throw err;
  ^

Error: Cannot find module 'webpack-cli/bin/config-yargs'
Require stack:

官方 github issure 各种说版本问题,还让在packge.json加了scripts:代码,换成webpack serve啥的,没点用,我就奇怪了前端圈各种软件库啥的升级从来不考虑向后兼容吗?约定的命令说改就改,改了还没啥用,解决不了旧问题还制造一堆新问题。github 、stack overflow 、csdn 之流都没有任何解决方案:https://github.com/webpack/webpack-dev-server/issues/2759, https://blog.csdn.net/Piconjo/article/details/105744808


…………
……………………
………………………………

$ bin/rails about

About your application's environment
Rails version             6.0.3.4
Ruby version              ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
RubyGems version          3.1.4
Rack version              2.2.3
Middleware                Webpacker::DevServerProxy, ActionDispatch::HostAuthorization, Rack::Sendfile, ActionDispatch::Static, ActionDispatch::Executor, ActiveSupport::Cache::Strategy::LocalCache::Middleware, Rack::Runtime, Rack::MethodOverride, ActionDispatch::RequestId, ActionDispatch::RemoteIp, Sprockets::Rails::QuietAssets, Rails::Rack::Logger, ActionDispatch::ShowExceptions, WebConsole::Middleware, ActionDispatch::DebugExceptions, ActionDispatch::ActionableExceptions, ActionDispatch::Reloader, ActionDispatch::Callbacks, ActiveRecord::Migration::CheckPending, ActionDispatch::Cookies, ActionDispatch::Session::CookieStore, ActionDispatch::Flash, ActionDispatch::ContentSecurityPolicy::Middleware, Rack::Head, Rack::ConditionalGet, Rack::ETag, Rack::TempfileReaper
Application root          /Users/coool/ruby/work/demo
Environment               development
Database adapter          sqlite3
Database schema version   0

package.json文件是这样的

{
  "name": "demo",
  "private": true,
  "dependencies": {
    "@rails/actioncable": "^6.0.0",
    "@rails/activestorage": "^6.0.0",
    "@rails/ujs": "^6.0.0",
    "turbolinks": "^5.2.0",
    "webpack": "^5.4.0"
  },
  "scripts": {
    "serve": "webpack serve"
  },
  "version": "0.1.0",
  "devDependencies": {
    "webpack-cli": "^4.2.0",
    "webpack-dev-server": "^3.11.0"
  },
  "babel": {
    "presets": [
      "./node_modules/@rails/webpacker/package/babel/preset.js"
    ]
  },
  "browserslist": [
    "defaults"
  ]
}

可能 Rails 确实是殿堂级的框架,但是这个框架的门槛在云上,我在地上上不去……各种环境、升级、代理设置、global 翻墙都没用、版本不兼容、乱七八糟的报错,是我在写 Go 的时候从来没有遇到过的。

另外吐槽一下 Ruby-China 真的……不知道有多少人的耐心是 7 天,反正我这三天,每天十几个小时的折腾这些报错已经耗尽了耐心,放弃了。

10988 次点击
所在节点    Ruby on Rails
166 条回复
litujin1123
2020-11-11 13:09:48 +08:00
关注一下前端就知道,招聘还出现过 webpack 工程师,所以怪到 ruby 头上?
rrfeng
2020-11-11 13:12:09 +08:00
Ruby 哪有什么牛逼特性……Rails 是个牛逼框架罢了。
coool
2020-11-11 13:12:51 +08:00
@polythene @Numbcoder 这虽然是前端的问题,但难道不是 rails 里集成的 webpack 么?如果学 rails 不能避开这个,那难道不应该归结到“学 rails 中的挫折”么?
ericguo
2020-11-11 13:14:37 +08:00
看了楼主的帖子,我下定了决心,放弃 Go,转 Phoenix/Elixir !
love
2020-11-11 13:15:07 +08:00
这都过气多少年了。。。
另外 ruby 这个语言真是一言难尽
Mark24
2020-11-11 13:15:15 +08:00
webpack-dev-server 报错的,那是 webpack 复杂

跟 rails 有啥关系

前端的东西,作为前端自己都觉得复杂。东西太多,轮子太多。天朝网络不好,各种暗坑。

平心而论,rails 十分具有服务精神,喂到嘴巴里。不要太棒。。。
liprais
2020-11-11 13:15:36 +08:00
@rrfeng 你听说过 method_missing 么......
ppphp
2020-11-11 13:16:56 +08:00
不过话说回来,rails 确实很难学的,经常因为一些功能抽象程度太高而不容易搞懂
yaphets666
2020-11-11 13:17:39 +08:00
前端是有 package.json.lock 这个文件的 能锁死包的版本号 你这个工程里没有吗 没有的话这不能怪前端
yaphets666
2020-11-11 13:18:11 +08:00
@yaphets666 package-lock.json
ace12
2020-11-11 13:18:45 +08:00
@ericguo 以后再也不愁找得到工作啦
no1xsyzy
2020-11-11 13:20:34 +08:00
你这里的问题都是 webpack 的问题,webpack 我自己也都解决不了(

一个别人放弃的项目重构为模块化,webpack 我弄了半天搞不清,rollup 输出 iife 一遍过(不涉及模块基本就是 cat ),然后修修补补修修补补每次都是稍微动一点点动一点点,输出也看得出对应地一点点一点点地动,很清晰。
reus
2020-11-11 13:23:19 +08:00
十年前接触过一下,当时前端也没有这些东西,都是服务器端输出 html 完事
后来就是前后端分离的时代了,其他框架就专注于做 api 服务器了
rails 不是,它既要坚持服务端渲染,又要拥抱现代 js 生态,于是就把 webpack 这类 js 工具链引入了 rails 里面
这是个绝对的败笔,js 生态是相当不成熟的,是相当混乱的,即使是 webpack 这类基础工具,版本之间根本没有兼容性可言
于是就出现楼主这样的遭遇了
现在的大势就是,后端就做后端,前端就做前端,前后端通吃的 web 开发,已经是移动互联网成为主流前的老古董了
确实不值一学
coool
2020-11-11 13:24:37 +08:00
@reus 有道理,醍醐灌顶
Wincer
2020-11-11 13:26:32 +08:00
@ericguo #24 Phoenix 也有 webpack 。。(🐶
lidashuang
2020-11-11 13:27:57 +08:00
不要学 go,太几把难用了
Rwing
2020-11-11 13:28:24 +08:00
不是,没人提及 C#吗?
songtinhuang
2020-11-11 13:29:31 +08:00
看了楼主的贴子,我下定了决心,拥抱微软 Asb .NOT Care 5 。
Lax
2020-11-11 13:29:51 +08:00
现在学习 ruby 的前置条件是:认证 webpack 配置工程师
atpking
2020-11-11 13:30:46 +08:00
@ericguo 我是来围观的 😆

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/723965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX