看来大家都是先学的 Ruby。很多语言都有 ?.
运算符了。
2004 年 IETF 通过了 RFC 7239 标准,为这样的问题制定了通用的标准。简单来说,就是用
X-Real-IP
header 标记用户的真实 IP,用X-Forwarded-For
header 标记途径路由。
注意一下,RFC 7239 并不是提出 X-Real-IP
和 X-Forwarded-For
的。RFC 7239 提出了 Forwarded
header,用以替代所有从未被标准化的 X-Forwarded-*
header。
RSpec 能做的 MiniTest 都能做,但是 RSpec 代碼真的特別好看…… 而且 MiniTest 現在也不在標準庫裡了,一大優勢沒有了。我反正一直是用 RSpec。
Devise 不能做「前後端分離」的項目,我已經棄用…… 什麼時候做前後端一體的項目,再把他拿出來用。
我也覺得 Devise 應該建立在充分瞭解現有 Rails 機制的基礎上。比如你要搞懂 Devise 路由,先得搞懂 Rails 路由。
「提問內容沒有提現提問者的努力」在 Stack Overflow 會被 -1 的,參考 Stack Overflow 給出的理由:Optimizing For Pearls, Not Sand(英文)。
#10 吧
題主似乎暗示了明文是沒有統計規律的二進制:
但是如果信息不是语言呢,假设是随机字符串,例如加密后的随机密码?
或者可以使用布署工具,比如 Ansible、Chef、Puppet。
我覺得不可能會有。關注了此話題,等大神
等下,你盜取了私鑰?那你直接用公鑰再加密一遍不就好了?
我的意思是說,你可能用公鑰加密,不知道私鑰…… 不是算法不可逆,是你沒法逆……
另外我也沒怎麼聽說過僅僅憑明文和密文,沒有其他信息就判斷是否成功的…… 難道用信息量?
光你這點信息肯定是不知道的,至少加、解密的算法要知道吧,是否可逆也得知道吧?
謝謝樓主的 hint,我才知道原來 Rails 裡面可以配置生成器。
但感覺有點不滿足單一功能原則?Current 的信息從邏輯上來說就是屬於 Controller 管的…… 比如這種情況,我寧願在 controller 裡寫一個 create_event
函數,分享給所有需要用到 event 的控制器……
這只是「簡單的方法」,並不是「精確的標準」。配置的核心在於
配置文件在各部署间存在大幅差异,代码却完全一致。
所以,只要各布署間有差異的,就叫應該用環境變量歸類為「配置」而不是「代碼」。換言之,如果某個項目的代碼,給另一個項目使用,能夠不修改代碼就馬上使用,才滿足 12 factor。注意 12 factor 並不是說「一定要用環境變量」,也可以用「未被版本控制的文件」,只不過(12 factor
認為)環境變量更方便而已。
if attributes.nil?
可以換成 attributes ||=
沒太理解,這好像只在 controller 裡用?那不能用實例變量麼?(比如 @request_id
)
我寧願直接用環境變量,服務器多的話用布署工具(比如 Ansible)。把配置存在文件裡,非常不 12 factor……
我不怎麼寫前端,但是感覺前端框架不是主要問題,主要是設計:什麼樣子的網站才能稱得上「好看酷炫」……
我在那段話裡面沒有特意區分類和類型,反正在 Ruby 裡面都是一個東西。不過 class 和 type 的區別是不是只有 Python 2 有?Python 3 我記得都是 object 了。
我也是這麼想,正在試驗這種想法。前後端代碼分離的話,前端可以有效利用 CDN 和緩存。
「修改字符串」這個我覺得沒啥用,而且宮本好像也發現了,所以他說 Ruby 3 裡面要默認所有的字符串都是 freeze 的。
另外 Ruby 有兩點點我很喜歡的(相對於 Python):
優秀的工具鏈。Bundler 是「依賴管理工具」的先鋒(並且依然是最優秀的);後續的其他依賴管理方式都有大量借鑑 Bundler,比如 Rust 的 Cargo,JavaScript 的 Yarn,Dart 的 Pub,等等。Python 的 pip 比起來就差多了,唯一的希望就在於 pip-tools 了。我唯一不認同 Bundler 的是,他不應該用來管理 Ruby 版本。Ruby 版本應該是先於 Bundler 的,否則會形成循環依賴。但作為補償,chruby 是我用過(rbenv,RVM,pyenv,nvm)的所有版本管理器裡面,最喜愛的,沒有之一。
內置方法(built-in method)比 Python 更「面向對象」。比如說 Python 裡面「類型轉換」是 int('3')
和 str(4)
的形式,Ruby 裡面則是 '3'.to_i
和 4.to_s
;還有「排序」,Python 是 sorted(arr)
,Ruby 是 arr.sort
。當需要進行多次轉換、調用,Python 需要函數嵌套,Ruby 則是 method chaining,而我認為「函數嵌套」更「面向過程」,method chaining 更「面向對象」。
有個問題,OMR 到底是什麼意思(是哪三個詞的縮寫)?Eclipse OMR 的主頁並沒有解釋…… R 我估計是 Runtime。
關於 Ruby OMR,本站有篇譯文。
production mode 我觉得翻译成「生产模式」比「产品模式」恰当;「产品」的英文用 product 更贴切。
不用共享变量就不会。没事不要在线程中修改全局变量($foobar += 1
)或者 static 属性(Foo.bar += 3
)就好了,Rails 不作死的话是不会踩坑的。
你这个程序肯定是依赖于线程调度的,但实际使用中如果把变量初始化放在线程中,肯定要加锁的吧,否则不是作死么…… 而且我不确定 @c += @a
这行是不是原子的,如果是 Redis 的话就没问题了
中间过程不一定要对吧,比如你统计票数,实时票数多一票少一票又有何关系?只要投票结束以后票数对了就行了嘛。