• 我也是這麼想,正在試驗這種想法。前後端代碼分離的話,前端可以有效利用 CDN 和緩存。

  • 前端视角下的 Ruby at 2017年06月20日

    「修改字符串」這個我覺得沒啥用,而且宮本好像也發現了,所以他說 Ruby 3 裡面要默認所有的字符串都是 freeze 的。

    另外 Ruby 有兩點點我很喜歡的(相對於 Python):

    1. 優秀的工具鏈。Bundler 是「依賴管理工具」的先鋒(並且依然是最優秀的);後續的其他依賴管理方式都有大量借鑑 Bundler,比如 Rust 的 Cargo,JavaScript 的 Yarn,Dart 的 Pub,等等。Python 的 pip 比起來就差多了,唯一的希望就在於 pip-tools 了。我唯一不認同 Bundler 的是,他不應該用來管理 Ruby 版本。Ruby 版本應該是先於 Bundler 的,否則會形成循環依賴。但作為補償,chruby 是我用過(rbenv,RVM,pyenv,nvm)的所有版本管理器裡面,最喜愛的,沒有之一。

    2. 內置方法(built-in method)比 Python 更「面向對象」。比如說 Python 裡面「類型轉換」是 int('3')str(4) 的形式,Ruby 裡面則是 '3'.to_i4.to_s;還有「排序」,Python 是 sorted(arr),Ruby 是 arr.sort。當需要進行多次轉換、調用,Python 需要函數嵌套,Ruby 則是 method chaining,而我認為「函數嵌套」更「面向過程」,method chaining 更「面向對象」。

  • Ruby + OMR JIT 简介 at 2017年06月05日

    有個問題,OMR 到底是什麼意思(是哪三個詞的縮寫)?Eclipse OMR 的主頁並沒有解釋…… R 我估計是 Runtime。

  • 關於 Ruby OMR,本站有篇譯文

  • production mode 我觉得翻译成「生产模式」比「产品模式」恰当;「产品」的英文用 product 更贴切。

  • 或者至少有个像 Sinatra 这样的薄框架……

    已经有了!Kemal

    其实好像确实有几个 Web 框架了,有些还声称和 Rails 接近。选择框架的话可能要参考流行度

  • Rails 基础实现学习笔记 at 2017年05月14日

    「感觉 Rails 就是 Rack 封装了一下」这么想不太恰当。Rack 的本意是在于提供一个界面(interface),用来连接服务器程序(比如 Puma、Unicorn、WEBrick)和框架(比如 Rails,Sinatra)。类似的界面在其他语言有 Python 的 WSGI,Perl 的 PSGI,JavaScript 的 JSGI,还有语言无关的 CGI。「支持界面」看起来像是「封装」,但有微妙的区别……

    如果你会翻墙,可以看看这个模板的「服务器 API」部分,列出了一些例子。

  • 不用共享变量就不会。没事不要在线程中修改全局变量($foobar += 1)或者 static 属性(Foo.bar += 3)就好了,Rails 不作死的话是不会踩坑的。

  • 你这个程序肯定是依赖于线程调度的,但实际使用中如果把变量初始化放在线程中,肯定要加锁的吧,否则不是作死么…… 而且我不确定 @c += @a 这行是不是原子的,如果是 Redis 的话就没问题了

  • 中间过程不一定要对吧,比如你统计票数,实时票数多一票少一票又有何关系?只要投票结束以后票数对了就行了嘛。