ruby时间转时间戳_使用Ruby节省开发时间和精力

ruby时间转时间戳

工作日逐渐减少。 您和您的重要同伴预订了晚餐,因此您渴望回家。 这就是电子邮件到达的时间。

它说:“我明天需要在与执行人员的会议中再增加一份报告。” “我已经附上了一些电子表格。您能给我写些什么来计算[无关紧要的业务术语]吗?”

您开始考虑完成此操作所需的条件。 如果您只知道C#或Java之类的编译语言,则列表可能如下所示:

  • 创建一个新的项目文件夹。
  • 创建一个源文件。
  • 提出一个类名(即使您稍后要扔掉它)。
  • 键入一个类定义(或让您的IDE帮您完成)。
  • 编写您的代码。
  • 编译代码。
  • 运行您的代码。

...这是假设您在第一次尝试时正确无误,而不必修改,重新编译和重新运行几次。 现在,您可能会想必须取消晚餐。

但是,如果您碰巧知道像Ruby这样的解释型语言,则清单会短很多:

  • 创建一个源文件。
  • 编写您的代码。
  • 运行您的代码。

您不需要项目文件夹,因为没有可跟踪的已编译类文件(仅是源文件)。 您不需要类名或定义,因为Ruby允许您根据需要在类之外编写代码。 您可能需要进行几次修改和重新测试,但每次尝试之间都不需要进行任何编译步骤。 仪式少了。 这意味着您的简单任务将更快地完成。

快速入门:“您好,世界”

即使在简单的“ Hello,world”程序中,您也可以看到区别。 这是代码在C#中的外观:

public class Hello
{
   public static void Main()
   {
      System.Console.WriteLine("Hello, World");
   }
}

将其与Ruby程序进行比较,以执行相同的操作:


puts "Hello, World" 

是的,只有一行! 没有类定义,没有方法,只是您需要的代码。

我不想暗示您不能在Ruby中创建类和对象。 实际上,这就是大多数Ruby代码的编写方式。 但你不会被强迫使用样式简单的问题。 语言使您摆脱困境,并让您按照自己的意愿进行编码。

存取器

这是在Ruby中更容易实现的另一种常见操作:属性访问器。 不直接从类外部访问对象的实例变量已被公认为是最佳实践。 相反,您可以设置访问器方法以帮助确保正确的封装。 (实际上,与大多数面向对象的语言不同,Ruby 不允许您直接访问实例变量。这样更安全。)

如果我们有一个带有名称实例变量的Person类,则需要设置一个方法来读取 name的值,并设置另一个方法来编写它。 这是该代码在Java中的外观:

public class Person {
    // Set up an instance variable.
    private String name;

    // Set up a reader method.
    public String getName() {
       return name;
    }

    // Set up a writer method.
    public void setName(String name) {
       this.name = name;
    }
}

现在,让我们看一下Ruby版本:



   
   
class Person
  # Set up reader and writer methods for @name.
  attr_accessor :name
end

当您在Ruby类的主体内调用attr_accessor方法,并为其传递带有您要创建的属性的符号(即:name )时,它将自动为您设置一个reader方法,writer方法和一个实例变量。 —只需一行代码。

另外,请注意,尽管我们必须在Java示例中为实例变量和访问器方法声明类型( String ),但在Ruby中却不必这样做。 这是因为与许多编译语言不同,Ruby不执行类型检查。 Ruby仅仅相信您知道给定变量中存储了哪种类型的对象,并且只会调用适合该对象的方法。 (如果不这样做,则会在运行时出现错误。但是实际上,这种情况很少发生。)

这些都是小的便利,但是想象一下在一个大型项目中它们将为您节省多少代码!

开源利益

Ruby是根据开放源代码许可证发行的,该许可证允许在专有软件中使用。 当然,这带来了各种各样的好处。 不过,最切实的是,它可以在任何需要的时间自动免费,免费地下载,编译和安装在任何服务器上。

Ruby社区强烈希望开放源代码许可证用于它们发布的库。 成千上万个涵盖各种任务的库已准备好在您的项目中使用。 借助RubyGems打包系统,安装过程也自动进行。

以下是Ruby如何加快开发速度的更多示例:

  • 想要将几个字符串组合成一个吗? 在Java或C#中,您可能需要创建StringBuilder类的单独实例。 在Ruby中,您需要的方法就在string对象上
  • 是否想查看字符串是否与正则表达式匹配? 在大多数其他语言中,正则表达式不是一等公民。 您必须使用所需的模式创建一个字符串,然后将其编译为正则表达式对象,最后将该对象与原始字符串进行比较。 Ruby 只需一步就可以做到; 您只需使用/ a regexliteral /创建一个正则表达式,然后使用=〜运算符将其与您的字符串进行匹配。
  • 在大多数面向对象的语言中,在多个类之间共享代码的唯一方法是继承,并且您只能从单个类继承。 如果某个对象需要其他几个类的行为,则必须从其他几个对象中组成该对象,或者从该对象的类中的其他这些类中复制方法。 但是,在Ruby中,您具有mixins ,可以将来自几个不同模块的方法混合到一个类中。 (mixin是类似于类的方法的集合,除非您无法创建它的实例。)这提供了多重继承的所有好处(例如在C ++中),但没有增加任何复杂性。
  • 惩戒对象为其他语言的单元测试需要在测试任一任一创建子类专门使用,或使用第三方嘲笑 框架 。 在Ruby中,您可以直接在object上直接重新定义方法

我可以继续,但是我想你明白了。 Ruby的创建者花费了很多精力来使语言的几乎每个方面都变得简洁明了。 Ruby中的编码更加令人愉悦和高效。

别误会,其他语言的形式也可以带来好处。 以类型检查为例:当然,必须声明每个变量和方法的类很痛苦。 但是,进行类型检查的语言在编译时会比Ruby发现更多错误。 静态类型还允许编译器优化,以使完整的应用程序运行更快。

但是实际上,我发现用Ruby进行编码的好处远远超过了花费。 拥有一个可靠的单元测试套件(Ruby使它易于编写)往往会捕获所有与类型检查相同的错误。 Ruby的灵活性使代码易于重构和维护。

如果您的开发时间对您来说很宝贵,并且您想最大限度地利用那段时间完成工作,那么应该尝试一下Ruby。 但请注意:一旦切换,您可能永远都不想返回!

翻译自: https://opensource.com/business/16/4/save-development-time-and-effort-ruby

ruby时间转时间戳

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值