我最后还是没弄
正常的技术储备啦,Phoenix 作为新生事物还是有很多可取之处的,有个非关键的服务组件尝试 Phoenix 了,没有了解那边的细节,闲聊感觉那边对于 Elixir 应用的部署运维还是不太熟悉,所以运维成本未必低。
Ruby 这边部署运维这一套很熟悉了,专门的运维团队(不懂开发的)和 Rails 开发这边也有了一定的默契。
@lihuazhang 新服务器没添加我公钥,联系其他管理员部署了,估计要过会
小妹妹睡得好晚啊
登录后 App.current_user_id = 1107;
渲染到了 HTML 上,但是 App.current_user_id => null
App.isLogined() => false
就是说那 JS 没按预期方式执行,那我说更正下说法“没有正确的使用 Turbolinks”可以了吧...
当然你说的改法是很好的,我没注意到有这个 meta
https://github.com/ruby-china/homeland/blob/master/app/assets/javascripts/app.coffee#L117 这个判断造成的跳转,结合 https://github.com/ruby-china/homeland/blob/master/app/assets/javascripts/app.coffee#L325 这里 还有 https://github.com/ruby-china/homeland/blob/master/app/views/layouts/application.html.erb#L83 这里,应该是 turbolinks 的锅,登录成功要么补上这个赋值要么干脆刷新全站好了
笔记本上没 homeland 的开发环境。。。
可以呀,一直到开会当天都可以买~
还没组,下周吧,这周太忙了
有衣服送的~ 云币赞助,这次没有公司 Logo 哦~ 其他在我们精力和预算内,还在计划中~
那应该是 sxl 编辑器的问题了。。。我删掉重新添加吧,本来复制一份新的出来,把字改掉,更新链接就可以了
现在流行 Puma 了,Puma 首先是 Rails 5 的默认 web 容器,其次如果你使用 ActionCable 或类似的 websocket 后端的话,Puma 不需要你单独再启动额外服务来运行了。
至于和 Nginx 搭配,两个在 Nginx 的配置方式是完全相同的
其实放 if else 啥的 也没啥不妥,如果你觉得不爽或者逻辑确实太长,影响可读性,可以用把具体逻辑封装进子视图
<% if condition %>
<%= render 'view1' %>
<% elsif condition2 %>
<%= render 'view2' %>
<% else %>
<%= render 'view3' %>
<% end %>
另外像通知这种类型的内容,可以采用 Tell, don't ask principal 来组织代码
<%= render 'notice' %>
在 notice 里去处理是否渲染
<% next if flash.empty? %>
...
或者封装 helper render_notice
fixed
那天开会去了。。。回来翻了下源码,没注意是要加到 module 上的,简单来说就是加了以后,model_name 就把 namespace 设置成 nil,于是就等同于
def self.model_name
ActiveModel::Name.new(self, nil, name.demodulize)
end
这个 hack 了
devise 支持 scope
有可能,1.8.7 是九十年前的版本,早已停止维护,1.9 开始 Ruby 的实现有了很大变动
于是至今还是前端苦手...
ruby 版本太老了,升级到 2.2 以上
合不合理要看在什么语境下讨论,Elixir 和 Ruby 虽然像,但是根本理念不同,套用 Elixir 的理念去说 Ruby 的某条不合理,这个是没有办法讨论的
我也没说 Elixir/Ecto 不如 Ruby/AR,我想讲的是元编程是 feature,本质上还是方法调用。你指出 Ecto 的写法,我表达的是在 Ruby 上也是可以实现的(不过流行的库目前还没有人这样做,这个就是社区问题了)。
AR 的模型的属性的访问器是基于表的定义生成的,这件事如果不选择类似 .Net Entity Framework 的方式开发期代码生成的话,在运行前是无法做到的,这样做并不一定是好事,但是,没有 Ruby 的运行时元编程的支持(eval),这件事是做不到的。
至于性能问题,这个是解释器实现的问题,PHP 也提供了魔术方法系列,性能就(远)好于 Ruby,我比较赞同 Matz 的理念,语言(DSL、API)的设计者、语言的实现者、语言的使用者三种角色分离。
至于 Method missing,这个是建立在 SmallTalk 风格面向对象上的概念,在对象的消息模型的概念之内,method missing 是合理的。
维护性是一个玄学问题,即使是严格如 Java 的面向对象语言,还是有人试图通过设计模式来规范编码,这不就是为了提高维护性么?但是,Java 明显比 Ruby 对编码的局限性要高很多呀
Ruby 的元编程也不过就是方法调用而已,没有性能损耗一说(Ruby 跑的不快是另一方面问题),Ecto 也有 AR 式的 pipeline 写法,在 Ruby 上实现 Linq 风格的 query 并不复杂。
AR 里的元编程不可能在编译期完成(即使 Ruby 存在编译期),模型类反射数据库 Schema 生成字段的访问器这件事只能在运行时做(当然生产环境就在初始化的时候进行了,所以在运行时并不会有额外开销)。而 Ecto 是要显式声明字段的,自然不会有问题
有的
Boy♂next♂door 你有着一颗哲♂学的心
我胡汉三即将...归来
还是拿实力说话嘛...我在简历上都没写社区工作的事...
我把你的转交给 HR
你可以投试试的,这边有一些实习生
酒仙桥附近,恒通国际商务园 应该是 360 对面
海波可以 或者我也行吧 jun.jiang#dji.com