投了简历,2 天了都没有回复。。
redis 可以配置持久化
主要是更新了 API 设计。
Fanli.when(:create_user, exec: proc { |args| # business logic goes here })
Fanli.trigger(:create_user, with: {name: 'daqing'})
class CreateUser < Fanli::Base
def perform
# business logic goes here
end
end
调用方法:
CreateUser.exec(name: 'daqing', age: 30)
和 wisper 本身没什么优势,但是后面准备添加 sidekiq 支持。wisper 的 sidekiq gem,已经很久不维护了。
并不一定放在 initializer 下面,也可以放到 app/business/registry.rb
里面
其实我这个就是 service 啊,只是没有用 XXXService
来命名。而是用了动词 + 名词的方式。
那对于这类需求,有没有不是意大利面条的写法?
class CreateUser
def perform(args)
user = User.create!(args)
[SendWelcomeEmail, GiveCouponIfXmas, GiveInitialCash].each do |clazz|
clazz.(args)
end
end
end
从职责的角度,“创建用户”这个业务逻辑,不应该关心是否要“发邮件”“发优惠券”等职责。所以,这个代码,让 CreateUser
有了多个职责,违反了“单一职责原则”。
另外,还违反了 Open/closed principle。因为我要想在用户注册之后,加入更多逻辑的话,使用我的设计,只需要修改 config/initializer/business.rb
里面的配置,不需要修改 CreateUser
的 perform() 方法。而你的例子,必须去修改 perform() 方法的实现。
你那样写,就把依赖写死了,不方便进行单元测试,而且违反了“单一职责”原则
是的,受到 wisper 启发
改成 .call
呢?
我们生产环境用了 rancher
Erlang 里面,进程就是对象啊,Erlang 里面的 OOP,就是面向进程编程。
好棒!
Scala 搞的过于复杂了
一直觉得原生 erlang 挺好的,所以 elixir 一直没尝试。go 和 crystal 都尝试了,都很喜欢。
目前就我们公司在用吧
在济南上班了,没有创业
Cool!
我的是 3000 端口。现在的问题就是图片不存在。
主要是我想修改一些代码,加入自定义的功能,用 docker 安装就不方便了。
好的,明白
@huacnlee NoPoint 是特殊的名字约定吗?
还有一个问题:怎么调整导航栏链接的顺序?,比如让头条在最前面?
这个生成 letter_avatars 的代码在哪里?
我看了一下 public/system 那个目录,没有 64.png
这个文件
以下是 log
Started GET "/system/letter_avatars/2/D/149_114_207/64.png" for ::1 at 2017-03-17 21:38:50 +0800
Processing by HomeController#error_404 as PNG
Parameters: {"path"=>"system/letter_avatars/2/D/149_114_207/64"}
(1.0ms) SELECT COUNT(*) FROM "new_notifications" WHERE "new_notifications"."user_id" = 2 AND "new_notifications"."read_at" IS NULL
DEPRECATION WARNING: `:nothing` option is deprecated and will be removed in Rails 5.1. Use `head` method to respond with empty response body. (called from block (2 levels) in render_optional_error_file at /Users/daqing/v8os/products/homeland/app/controllers/application_controller.rb:73)
Rendering text template
Rendered text template (0.0ms)
Completed 404 Not Found in 7ms (Views: 1.1ms | ActiveRecord: 1.0ms)
那个 PR 我看了,按照上面说的修改就好了。我用的是 ES 5
还遇到一个问题:
新注册的用户,小头像显示不出来:
对啊,但是似乎有 bug,代码我还没详细看。