• Rails遗留程序中最常犯的错误(下)

    Posted by : lon.y@qq.com on 2017年7月4日

    在模型的实例方法里,本来不需要的时候使用了“self.” 不好的 ; html-script: false ] # app/models/user.rb class User < ActiveRecord::Base def full_name "#{self.first_name} #{self.last_name}" end end 这段代码并不复杂但是里面并不需要使用“self.”。把“self.”去

    阅读全文...

  • Rails遗留程序中最常犯的错误(上)

    Posted by : lon.y@qq.com on 2017年7月4日

    近来我一直在对几个遗留项目作维护。 众所周知,处理遗留项目多数时间都感觉糟透了,因为那些代码通常都丑陋不堪而且晦涩难懂。 我决定做一个列表,记录下那些公认的不良实践,或者是我认为不太好的实践,以及如何改良代码来避免这些不良实践。 问题一览 在模型层以外使用查询方法 在视图层使用业务逻辑 使用无意义的方法名和变量名 条件判断时使用unless或者否定的表达式 没有遵循“命令,不要去询问”原则 使用复杂的条件 在模型的实例方法里,本来不需要的时候使用了“sel

    阅读全文...

  • Rails 缺失的部分(1):Interactors

    Posted by : lon.y@qq.com on 2017年7月4日

    在Grouper,我们是Rails的长期用户,像其他在纽约的敏捷团队RapGenius和Kickstarter一样。它容易使用并且可以有效提高开发人员的效率。 然而,人们开始注意到它的缺点–一旦代码量超过几千行,测试套件会变的缓慢并且框架加载时间会显著增加。 一些没有帮助的Rails特性鼓励用户少用设计模式,这通常会导致高度耦合的代码,以及缓慢不可维护的测试套件。我们意识到没有必要非得这样做。 Rails或许是敏捷开发的最完美的工具,但是对于中型或大型程序

    阅读全文...

  • 使用RSpec编写具有可读性的功能测试

    Posted by : lon.y@qq.com on 2017年7月4日

    Chris Zetter是FutureLearn产品组的一名开发者,他为我们讲述了自己的小组为了使功能测试兼具可维护性与可读性,在把Cucumber替换为RSpec之后是如何来编写测试的。 测试是建立与维护一个大型平台不可或缺的一部分。每当我们为FutureLearn这个平台增添新功能时,我们都会编写自动化的功能测试来记录这些新功能是如何运作的,并确保他们不运转时我们也能知晓。 令人爱恨交加的Cucumber Cucumber是一款用来编写功能测试的常用工

    阅读全文...

  • 编程语言拟人化(1):Java、C++、Python、Ruby、PHP、C#、J…

    Posted by : lon.y@qq.com on 2017年7月4日

    Java 犹如宫泽贤治的《不畏风雨》中出现的、性格木讷的女孩子。从小就由于迟钝和大食量等特征被别人当作笨蛋,从小学入学开始进入田径部、坚持跑步,在中长跑中经常取得好成绩,给人以活泼的印象。是十分努力的女孩子。 她的家境并不算好。父亲Sun是有才能的艺术家,但不擅长理财,在她14岁的时候因为苦于借债积劳成疾而去世。她被Oracle叔叔收养,那时还与Google叔叔之间因为对她的扶养权问题而引起争端并闹上法庭。 在周围的人都担心,正值青春期时她在这样的处境下会

    阅读全文...

  • 从实战项目总结的Ruby小技巧(第二部分)

    Posted by : lon.y@qq.com on 2017年7月4日

    这是我们从两年项目经验中获得的ruby小技巧的第二部分.。击这里查看第一部分,第一部分包含代码块(Blocks)和区间(Ranges)。  拆分和重构(Destructuring) 你或许会对ruby的合成/拆分符印象深刻,例子如下: attrs = [:data, :cache] attr_accessor *attrs # destructure array into an arguments list private *attrs def hyphe

    阅读全文...

  • 从实战项目总结的Ruby小技巧(第一部分)

    Posted by : lon.y@qq.com on 2017年7月4日

    从我们在Global Personals项目中使用Github并且following Github Flow开始到现在已经将近两年的时间。在这段时间中,我们以很高的频率提交了上千次的pull请求,虽然没有太多如何改善或提高程序的建议和想法,但是我仍获得了如此广泛和珍贵的经验。其中,有一些建议是和项目相关的,同时,也包含了大量可以在团队内分享的Ruby开发小技巧。 由于我担心将从这个项目中获得和学习到的如此珍贵的技巧和经验所遗忘,于是我挑出了其中最好的最有价

    阅读全文...

  • 对于现代开发来说,JavaScript就是一种垃圾语言

    Posted by : lon.y@qq.com on 2017年7月4日

    伯乐在线导读:昨天 Reddit/Programming 频道的头条热帖是一篇来自 julik live 博主的技术吐槽文,最初的英文标题是“For modern development Javascript indeed is a shit language”。该文在Reddit得分是800+,引发了热评(930+评论)。感谢@蔡volvo蔡 的热情翻译,以下是译文。   我很抱歉,但 Crockford 就是坚持这么写的(I’m sorry, but

    阅读全文...