学前端直接入 Next.js 啊,结合国内情况,考虑到小程序之类的支持,Rails 只提供 API 也还好啦。完美的前后端同构方案我目前是还没了解到。
看不出来为何使用编辑器=拒绝 RBS,Matz 在 19 年的 RubyConf China 都点名 Solargraph 了。
我现在就用 Emacs+TIDE 写 TypeScript
报名
我没注意看到 5 个名额
另外墙裂推荐已经免费了的 Terraform Cloud 存储 remote state
可以以 TF_VAR_name
这种形式的环境变量给变量设置值, .tfvars
文件可以不用放进版本库。 TF_VAR_name
.tfvars
的一个使用场景就是把测试环境工作目录下的 .tf
文件全部复制到生产环境,改改 .tfvars
,就能搭建出一致的生产环境了。
用过,推荐
W3Schools 有个 Demo 你可以试一下。
把中间那行改成
$.ajax({url: "demo_ajax_script.js", dataType: "script", success: function (result) { console.log(result) }});
就可以在控制台看到效果了,success 的 result 是 response body 的纯文本表示。
尤其注意的是,浏览器已经把 success 的 response body 当作 JavaScript 代码执行过一次了。
我复制了你的 database.yml
,没有问题,可以正常创建数据库。(我把 socket: /tmp/mysql.sock
改成 host:
了)
正如楼上所说,检查一下 DATABASE_URL
环境变量吧。
ThinkPHP 3.2.3
啊我大学里的青春
因为 ThinkPHP 了解到 Laravel,又从 Laravel 了解到 Rails
非宁静无以致远
CloudFormation 试用过一下,太繁琐了,而且 AWS 限定。
这样建议吧:学习 CloudFormation 的时间,可以用来学好几个 Terraform 了,不妨先熟悉一下 Terraform,学习成本极低,配置简洁,表意明确。
就以我了解的 DevOps 团队来说,都是用 Terraform,没有用 CloudFormation 的。
(小声:如果 Terraform 不成功,为啥连国内的阿里云都铁了头要支持 https://github.com/aliyun/terraform-provider-alicloud https://api.aliyun.com/#/cli?tool=Terraform)
用一次 Terraform
当运维都快乐了
因为都是追求 程序员幸福最大化
的人
我也想写成 Immutable 的,只是没打算投入更多时间。因为非 Immutable,特地没有写成链式的。private 你也提到了,把我对这段代码的顾虑都说出来了哈哈。
require 'rspec/mocks'
require 'vip_money'
RSpec.describe 'vip_money' do
subject { vip_money }
let(:sale) do
{
month: {
money: 1600, original_money: 2000, unit: 2000, discount: 0.8,
saving: 0.2, saving_money: 400
},
quarter: {
money: 4000, original_money: 6000, unit: 1666.67, discount: 0.67,
saving: 0.33, saving_money: 2000
},
semi_annual: {
money: 6400, original_money: 12_000, unit: 1333.34, discount: 0.54,
saving: 0.46, saving_money: 5600
},
year: {
money: 11_200, original_money: 24_000, unit: 1166.67, discount: 0.47,
saving: 0.53, saving_money: 12_800
}
}
end
before do
stub_const('Order::TYPE_MONEY', [2000, 5000, 8000, 14_000])
allow(self).to receive(:test_money_discount).and_return(0.8)
end
it { is_expected.to eq sale }
end
require 'active_support/all'
require 'order'
require 'sale_detail'
require 'test_money_discount'
def vip_money
month_money, quarter_money, semi_annual_money, year_money = Order::TYPE_MONEY
user_discount = test_money_discount
sale_detail = SaleDetail.new(month_money, user_discount)
%i[month quarter semi_annual year].index_with do |period|
sale_detail.send("by_#{period}!", binding.local_variable_get("#{period}_money"))
sale_detail.attributes
end
end
class Order
TYPE_MONEY = [2000, 5000, 8000, 14_000].freeze
end
require 'bigdecimal'
require 'active_support/all'
class SaleDetail
attr_reader :monthly, :user_discount, :price, :months
def initialize(monthly, user_discount)
@monthly = BigDecimal(monthly.to_s)
@user_discount = BigDecimal(user_discount.to_s)
end
def attributes
{
money: total.ceil(2),
original_money: original.ceil(2),
unit: unit.ceil(2),
discount: discount.ceil(2),
saving: saving.floor(2),
saving_money: saved.floor(2)
}
end
def by_month!(price, months = 1)
@months = months
@price = BigDecimal(price.to_s)
end
def by_quarter!(price)
by_month!(price, 3)
end
def by_semi_annual!(price)
by_month!(price, 6)
end
def by_year!(price)
by_month!(price, 12)
end
def total
price * user_discount
end
def original
monthly * months
end
def unit
price / months
end
def discount
total / original
end
def saving
1 - discount
end
def saved
original - total
end
end
def test_money_discount
0.8
end
考虑提炼值对象,利用多态重构一下?
8G 内存实在不够,主要是前端项目和浏览器费内存,再买开发机内存 16G 起步,XPS 9360 不能加内存难受。
GNU Emacs + Solargraph
可以尝试一下。我开发环境一堆 worker,用 foreman 一键就全启动了。生产环境用 capistrano-foreman 可以给所有的 worker 生成 systemd 服务。
另外不尝试一下 capistrano-foreman 么?
Delegated Types
Matz 说令人痛心的是,Ruby 也是因为在国外先流行起来,才开始在发源地日本流行的
XX 过多导致视觉模糊。
感谢各位回复,了解了一下大家更新数据表的常规思路。
这个场景做到了兼容旧版数据库确实不需要停机
总结来看,这样的一次发布会包含两个 migration 和一个数据更新。
执行更新脚本之前,到 post 包含 user_id 的新业务逻辑发布的这段时间,为了防止空 user_id 的新 post 产生,需要停机,我这样理解对吗?
https://guides.rubygems.org/make-your-own-gem/
这个流程走一遍就知道了,其本按类和嵌套关系组织。
t.references :operator, foreign_key: { to_table: :users }
t.references :reviewer, foreign_key: { to_table: :users }
牛逼!