• 基于 cancancan pundit 做访问控制 https://github.com/airblade/paper_trail 做文档版本管理 当然整套自己写也不是不可以

  • Cool things in Ruby in 2018 at 2018年01月30日

    还有我的 😎

  • 报错信息是什么意思? at 2018年01月26日

    win 10 在 WSL 下安装 Ruby

  • 可喜可贺

  • 一种推荐,当你需要两个以上实例变量的时候需要考虑下他的必要性,这条建议的可能道理是:很多时候,实例变量的赋值牵扯到数据库查询,而过多的数据库查询会降低页面的处理速度,所以不建议在一个请求的响应中做太多的查询。

    当然,随着项目膨胀和需求复杂,很多时候这条原则不好遵守,那么写代码的时候多一个心,想想查询的必要性就好了

  • 你截图来看看,referrer 是给服务器看得,正常来说跟浏览器无关

  • 没懂 兼容浏览器跟 referrer 有啥关系

  • username: <%= ENV["APPNAME_DATABASE_USER"] %> 其他的同

  • 前后端分裂 at 2018年01月09日

    对于鼓吹前后端分离的人,我一般会问他后端渲染有什么好处和前后端分离有什么坏处,当然我自己也会思考前后端分离有什么好处。

    目前为止,我主观上倾向后端渲染还是适合大部分场景,但也看到了很多前后端分离的好处,可接触过的追求前后端分离的人绝大部分回答不了我的问题。

  • 偷懒的话直接搞个 Job 模型,记 User total_count processed_count 然后导入数据的时候,导入几条就更新下,然后前端 API 定期轮寻就好了

  • 这种的话,你如果想做的完善很麻烦,一种方法是 ActionCable 或者类似的长连接方案,后台插入数据到一定数量的时候就往前台推一下进度(其实就是已导入数量和总量)

    没有 ActionCable 的话,就是做个 API,然后想办法记一下导入的状态,然后前端定期轮训

    或者最粗暴的,弄个假进度嘛... 布朗运动往前走

  • 主要是能作为一个职业的,Ruby 目前局限于 Web 开发了,而 Rails 又是最好的 Web 框架。

    要说 Ruby 的应用确实很广泛,但是其他的能支撑起一个职业的,就没有什么了

  • 算啦,竟然没有删除功能 at 2018年01月07日

    可以试着参与下 discourse 那些开源项目吧,其实可以搞得容易的地方挺多的,而且时髦值也高

  • Facebook、Microsoft、Amazon、Google 曾经是 FLAG 但是 L 歇菜了,所以。。。

  • Ruby 现在是不是很尴尬 at 2018年01月06日

    能干什么事情跟语言没关系,是有人写轮子,没有 Rails 那 Ruby 还是能写 Web,只是不会有太多人去用的 Ruby 写 Web 了

  • Ruby 现在是不是很尴尬 at 2018年01月05日

    可以看看 https://github.com/jasl-lab/form_core 的 dummy 能做到的效果,我发现还有很多点可以去总结的。

    另外我昨天还跟同事感慨,现在分享 Rails 使用技巧的帖子越来越少了,我自己也在想,这么多年来我自己独创的技巧估计都有不少了,但是我主观上有惰性去总结成帖子,因为感觉这些别人不知道其实也没啥影响,但是模式是能够带来巨大生产力差距的,值得去推广

  • Ruby 现在是不是很尴尬 at 2018年01月05日

    小而美最后也是要变成巨无霸的,我个人经验认为 Rails 支撑大型项目没有问题

  • Ruby 现在是不是很尴尬 at 2018年01月05日

    虽然看业务逻辑上语言的优势可以忽略不计,但是为了支撑表达业务逻辑,不同的语言、技术带来的生产力差异是非常大的。

    比如 ORM 领域,ActiveRecord 可以称为地表最强。

    .Net 的 Entity Framework 可以说一般场景下不输 AR,因为 EF 有地表最强 IDE VS 提供工具支持去方便的生成模型的代码,并且在 C# 的 partial class 的支持下,可以对开发者隐藏掉这些生成出来的代码,让代码组织更干爽,在 C# Linq 的支持下允许写出类似 AR 的链式查询或者用类 sql 的 DSL 去查询,灵活性甚至胜了 AR 一筹。

    但是 Java 的 Hibernate 呢?手动声明字段,Migration 不管,Getter、Setter 自己搞,甚至还得学个 HQL。

    为啥 ActiveRecord 只在 Ruby 上有,其他语言抄不走?因为 Ruby 提供了必要的基础设施。而 ActiveRecord 已经可以称为一种 pattern 了,是 pattern 导致的开发效率的差距。

    一个例子就是,我最近在公司内部、在论坛、在线下聚会都在推我写的 form_core 还有他所采用的 动态虚拟模型生成 的手法,我们都知道 AR 的模型(或者说数据结构)很容易使用,包括数据验证等等常见的需求都满足了,但是 AR 的模型只解决静态的数据结构,动态的数据结构呢?比如类似京东,不同的商品类型的商品参数是不同的且由用户去定义。这个场景很常见,比如过去我在知人,员工的档案需要 HR 定制、工作流的表单也是用户定制的,我也研究过 Redmine 任务的字段也是可以定制的,但是他们在解决这个场景上做法就很传统,Java、PHP 任何语言也都那么去做,那用 Rails 还有啥开发效率优势?但是用了我的动态虚拟模型手法就不同了,动态定义的数据结构最后转化成一个符合跟 AR 一样的模型,类似数据验证直接交给模型去处理了,不需要额外的开发工作,开发效率自然巨幅提升,而且扩展性、代码可维护性也有保障。

    而这个手法也是来自当时解决工作的灵感的总结,所以我就产生了年头,如果关键业务场景的解法能总结成模式,那么生产力重新和其他语言产生代差,会不会在现有条件下(没有新的增长点)让 Rails 再热一次?

    举个例子,最近我收到很多帮招人的邀请,是做数字货币的交易所,为啥。。。因为 貔貅 是世界上唯一一个开源的产品级交易所

  • Ruby 现在是不是很尴尬 at 2018年01月05日

    (先声明:我现在说的都是主观观点)

    我觉得 SSR 反而是拉回正轨了,JS 不是不可以一统天下,可以让 JS 接管和用户相关的工作,有微服务的加持下,后端让合适的技术解决合适的业务(Spark 做数据平台,Go 做 实时,Java 写业务系统等等),然后 JS 把这些离散的业务系统串联起来,再展示给用户,相当于现在的后端更后,让 JS 的“服务器端”做“后端的前端”(有点绕),这样产品形态(UI/UX)的变更就完全交给前端开发来完成了,按照产品的需要来组合后端提供的各种服务。

    在这个模式之下,后端开发专注于实现业务,精进后端的技术栈。前端开发掌握 SSR 为了更高效的实现 UX,又避免了学习过多的传统后端的技术栈(在目前的形势下,前端即使有了 node.js,由于前端开发没有系统的受过数据库等后端技术栈的学习,实际上是给很多项目造成过负面贡献的,相信不少后端开发有这个体会)

    我觉得这才是正确的道路。

    Rails 的 SSR 能力非常强大,这就和 JS 的发展路线产生了冲突,目前来看 JS 或者说前端社区赢了,现在的前后端分离,Rails 的 SSR 能力等于废掉。

    再看表达业务逻辑,做业务逻辑的精髓在于,精确地表达,即使是 Ruby,惯例上,也提倡不要炫技,用最朴素的代码去编写,根据我的经验,这个时候,代码量上 Ruby 不会比 Java 少多少,这就造成另一个尴尬,Java 的人好找,Go 的性能好,不如直接用他们了。

  • Ruby 现在是不是很尴尬 at 2018年01月05日

    还有一个是,我相信 Rails 在企业级系统上会有很大作为,这种系统的特点是 业务复杂、对 UI 要求不高、需要配合公司管理模式长期迭代。

    Rails 支撑多变的业务需求还有很大的发挥空间(我刚在公司做了这方面的分享),但是在社区层面缺乏总结。

  • Ruby 现在是不是很尴尬 at 2018年01月05日

    大环境是还缺乏一些新的业务的增长点,最悲观的情况下,我个人判断 Ruby 最差会成为下一个 Lua。

    写 Rails 的话其实也不用担心,起码北上深是不会愁工作的,论坛的招聘帖也集中这些城市,而且交流下来看的话是供小于求。

    我个人另一个判断是现在 Web 行业处于转型期,WASM 还有 PWA 对于 Ruby 还有其他有兴趣做应用开发的语言都是新的机会,而且前端社区现在火的框架也在发展 SSR,最终可能会造成一种轮回

  • GopherChina 2018 又要来了 at 2018年01月03日

    提个建议,banner 文字配这个背景太不明显啦

  • Ruby 2.5.0 已发布 at 2018年01月03日

    我觉得 2.6 发布应该会有类似 iPhone X 的感觉

  • 我让前端做的,而且是显示的时候再转成元,这样就不会遇到计算钱时候遇到的坑

  • JS 的基本类型没有吧。。。用第三方库也不是不行,不过前端的主要目的是展示,计算结果 round(2) 可以 ok 了,基本不会出错,话说去年大会用的多会,他们就在算金额的时候出过 bug

  • 去年猎头说面试是六轮纯英语视频面试...

  • 另外考虑案例的话,支付宝的支付接口的金额单位是元,微信支付的是分

  • 主要是 JS 没有 Decimal 类型,他的 Number 也是单精度浮点,用元来传递和计算(分自然就是小数了)就很容易出意外的问题,不考虑转汇的问题的话,存分,计算也用分来进行,只有在显示的时候才转换成元,是最安全的实现方式。

    当然你时不时的 round 一下,也可以算是一种 workaround,绝大多数情况都可以避免计算导致的精度问题

  • 据朋友给我说,美帝一流 CS 专业的学生都去 FMAG 了,于是苹果只能退而求其次招 EE 的,编程专业训练就不如 CS 的学生,主要是工程能力,造成苹果软件质量不如其他家

  • 你有什么好怕的,谨慎评论自己不熟悉的东西不是最基本的么?或者你要验证自己的观点对不对,作为问题问出来,你每次遇到的尴尬就都不存在。在者,提醒你错了,你可以自己去补全知识,也可以听取正确的观点。

    可现在是什么样的呢?反驳你,你就摆出一副被迫害的样子,这不是健康的交流方式