我也没说 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
这边的 Ruby 开发还是很有血性的
Gem 源还是中立好,阿里源就是因为一些公司因素无法继续维护的
招,我目前是北京第一个 Ruby 开发
下篇似乎并没有?
异步任务
你要不要发个帖子预热下话题?
这种方法只能解决模型和控制器在同一个 module 下的,如果不同的话,还是要这样覆写 model_name
有啥需要随时找虎炮嘛
Excited!
单身狗运算符 google 搜前两个都来自 RubyChina,不知道谁先给出的翻译。。。
楼主是不会渲染层次结构,ancestry 还在更的,还是很好用的
yml 应该可以内嵌 erb 的,如果链接可以插入 Rails 的 Routes Helper 就最好了
更新了日程安排
HTTP 是无状态的,只要不是在同一个页面,“你”就不是“你”,所以我提到“扫码登录”,你先搞明白这里前后端是怎么互动的,写出来原型去肉测,写测试无非是肉测自动化而已
页面显示的效果是 HTML 控制的,那么问题就在于你的改动没有将 HTML 变更成期望的样子
思路就是:每个单元格都是一个 <td>
标签,加列自然就是给所有行都加额外的 <td>
你在描述的是 Real-time web 在 HTML 5 普及的今天,解决这个领域的关键技术是 WebSocket,在 Rails 上有封装过的前后端解决方案 Action Cable
至于你的需求,想想微信网页版的扫码登录是怎么做的。
体验世界也是一种修行呀!
我的朋友圈都是晒吃喝四处玩。。。