`
halfmile
  • 浏览: 12006 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

我喜欢Ruby的原因

阅读更多
刚看到“姜太公”说开始不喜欢Ruby,读了一遍帖子,觉得。。。青菜萝卜各有所爱吧。

本想跟贴讨论,但觉得那样的争论很无谓,毕竟代码说明问题

Java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test 
{
    public static void main(String[] args)
    {
        try {
            BufferedReader in = new BufferedReader(new FileReader("test.txt"));
            StringBuffer sb = new StringBuffer();
            String str;
            while ((str = in.readLine()) != null) 
              { sb.append(str + "\n"); }            
            in.close();
            String result = sb.toString();
            Pattern sentencePattern = Pattern.compile("(.*?\\.)\\s+?");
            Pattern javaPattern = Pattern.compile("Ruby");
            Matcher matcher = sentencePattern.matcher(result);
            while (matcher.find()) {
                String match = matcher.group();
                Matcher matcher2 = javaPattern.matcher(match);
                if (matcher2.find())
                    System.err.println(match);
            }
        } catch (IOException e) 
          {
            e.printStackTrace();
          }     
    }
}


Ruby
File.read('test.txt').scan(/.*?\. /).each { |s| puts s if s =~ /Ruby/ }


这个可能不怎么说明问题。在程序里面,经常会用到xml数据容器,那么

要表达:

  <node name="a">
      <node name="b">
          <node name="d"/>
          <node name="e"/>
      </node>
      <node name="c">
          <node name="f"/>
          <node name="g"/>
          <node name="h"/>
      </node>
  </node>


*在 Java 里*

Tree a = new Tree("a");

Tree b = new Tree("b");
Tree c = new Tree("c");
a.addChild(b);
a.addChild(c);

Tree d = new Tree("d");
Tree e = new Tree("e");
b.addChild(d);
b.addchild(e);

Tree f = new Tree("f");
Tree g = new Tree("g");
Tree h = new Tree("h");
c.addChild(f);
c.addChild(g);
c.addChild(h);


* 在 Ruby 里 *
tree = a {
            b { d e }
            c { f g h }
          }


这里例子都是搬来的,更多在http://www.rubyrailways.com/sometimes-less-is-more
分享到:
评论
50 楼 robbin 2008-04-17  
gigix 写道

Robbin说的那个,一个类两百多行的,对于我来说就是不可接受…不过比起Java来终归是好得太多了。
ActionScript到现在都没有一个成熟的MVC框架,并且ActionScript是一个很蠢的语言,写出代码来根本不显得比Java少。


真是以讹传讹,我说的是最大的model是224行,不是每个model 224行

+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |  2755 |  2346 |      46 |     377 |   8 |     4 |
| Helpers              |   458 |   422 |       0 |      37 |   0 |     9 |
| Models               |  1990 |  1657 |      51 |     243 |   4 |     4 |
| Libraries            |   782 |   650 |       9 |      73 |   8 |     6 |
| Model specs          |  1175 |   895 |       0 |       0 |   0 |     0 |
+----------------------+-------+-------+---------+---------+-----+-------+


这个是JavaEye的rake stats,46个controller,平均每个controller不过51行代码,每个方法4行代码;51个model,平均每个model不过32行代码,每个方法4行代码

49 楼 gigix 2008-04-17  
引用
然后你再在Ruby语言解析器的性能、稳定性上大作文章,
这样就从底层实现上波及所有ruby有关的应用开发,只要Rails还在Ruby语言解析器上跑,自然也被拖进泥潭啦。

这个话说得就很外行。解释器(不是解析器)做得不好是可以改进的,C-Ruby(就算真的)做得不好可以在CLR或者JVM上面做,性能不好可以做JIT编译。只要语言确实好,有杀手应用,这些底层的问题都有办法解决。而且我说的这些东西,都是已经或者正在发生的。至于说什么Mats的解释器里写了多少多少行的C程序,第一他做的是语言不是应用,第二那正好说明人们需要高级的语言,比如XRuby和JRuby的情况就比他好得多。
48 楼 gigix 2008-04-17  
rubynroll 写道
我从另外一个角度说说ruby吧...要掌握ruby要花的时间,从目前的学习方法来看确实比掌握C语言或者Java语言要来的难些。

这个…
我大学里学了四年C,工作用了一年多,到现在我看见C程序都犯怵
47 楼 treenode 2008-04-17  
ltian 写道
我目前使用Flex开发,用到的AS3据说也是动态语言,由于动态增加属性造成维护困难的问题,所以就说了一下。



我现在这个项目用Flex开发也已经有大半年了,从来没有在动态属性的问题上遇到过麻烦。并不是没有遇到过错误,只是这些问题,在调试器帮助下我们那些菜鸟程序员基本上能在几分钟内定位到错误原因。粗略统计,和解决臭名卓著的NPE问题代价差不多,完全没有那么可怕。

其实我看到的一个有趣的现象是,动态语言最能发挥威力的地方,恰恰是那些程序员不希望、事实上也很可能不需要手工去维护的领域,包括Flex里面的服务层数据访问、E4X调用,以及Rails中的ActiveRecord,我们只是使用它,让动态语言在幕后发挥作用,很少需要手工来维护这样一个东西,基本上也不用担心有人来破坏它。在这个前提下,对动态语言质疑最多的维护问题,真的是一个问题吗?我是有怀疑的。
46 楼 rubynroll 2008-04-17  
我从另外一个角度说说ruby吧...要掌握ruby要花的时间,从目前的学习方法来看确实比掌握C语言或者Java语言要来的难些。(但是要达到“精通”的程度,就因人而异了。)

但是这个是ruby的缺点么?不见得,综合考虑生产效率因素,还是非常值得。

未来在编程技术方面的趋势,我想是对程序员的要求越来越高,而不是越来越低。程序员的个人生产效率会越来越高,会出现越来越多的“小”公司可以做“大”项目,超大型团队合作开发的重要性不再那么突出。

类似ruby的动态语言,很适合这个潮流。

45 楼 liusong1111 2008-04-17  
参考我们现在的情况,可以回答两个问题:
1. 动态添加的方法不易控制。
完全没有这种感觉,而且有完全可控感。我们系统是基于rails的,排除非rails的情况。我们team所有人都清楚的知道哪些地方可以使用哪些方法。
可能会有team成员不清楚某些方法到底在哪里mixin进去的,但这丝毫不影响正确使用。正如很多java程序员会使用某些Util类,却不知道它在哪个jar中定义一样。反倒是如果没有方法动态生成,我很难想像rails这个框架会是什么样,我们开发者会愁成什么样。
至于文档方面,我觉得IDE的提示功能上,我承认它能做到的和已做到的是比java的差一些,但还算不错了,而如果直接查doc,那甚至比java还舒服。
对于rails工程而言,需要方法动态生成的情况不多。方法动态生成一般由rails框架或者是plugin完成,而系统需要哪些plugin,要达到什么目标,如何取舍,都必须是明确可控的。目前来说我们系统用到的plugin也不多,方法动态加入的更少,我们也不需要那么多。
网上可选的plugin很多,良莠不齐,向自己工程引入一个plugin需要评估权衡,需要team中至少有一个人完全读过它的代码,在实现、性能、代码质量上完全有把握,必要时候可以自由裁剪。
另外,跑下题,plugin通常做的(但不限于),是在rails公开稳定的接口上做增强,而现实情况是,很多plugin修改了rails的底层实现以达到某些目标,有时这样做是出于无耐(rails没有提供扩展接口),但这终是违背了plugin的本旨,最终在维护、升级上会让人吃苦头。

2. ruby对一个问题可以有多种解法,这会带来大团队合作和维护上的问题。
完全不会,同样我是限制在用rails开发WEB系统这个场景下,至于用ruby做系统管理等的情况我没有经验,也许会不一样。
其实你会发现,在不同的场景下,虽然有不同的解法,但你会清楚的知道哪种最好,其实多数情况当你面对一个问题时,你都不会想到其它解法。这个在team中开发过一段时间就都接受了。这种看似多种解法,实质最佳只有一种的情况,对于维护和团队协作是相当有利的。
44 楼 liusong1111 2008-04-17  
gigix 写道
我也贴一下BaoMingBa.com的rake stats吧
+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |   246 |   199 |       6 |      29 |   4 |     4 |
| Helpers              |    30 |    25 |       0 |       1 |   0 |    23 |
| Models               |   311 |   234 |       6 |      47 |   7 |     2 |
| Libraries            |   136 |    72 |       0 |      17 |   0 |     2 |
| Integration tests    |    75 |    57 |       1 |       6 |   6 |     7 |
| Functional tests     |   440 |   340 |       7 |      44 |   6 |     5 |
| Unit tests           |   290 |   228 |       5 |      34 |   6 |     4 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                |  1528 |  1155 |      25 |     178 |   7 |     4 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 530     Test LOC: 625     Code to Test Ratio: 1:1.2

Robbin说的那个,一个类两百多行的,对于我来说就是不可接受…不过比起Java来终归是好得太多了。
ActionScript到现在都没有一个成熟的MVC框架,并且ActionScript是一个很蠢的语言,写出代码来根本不显得比Java少。


我学习flex有一段时间了,期间也摸索了它的一些框架、架构设计、编程语言等方面的东西,整体感觉上完全如gigix所说,这个东东在表现层的架构上十分棒,简直是理想中的理想。在框架上欠缺,在编程语言上,我就把它当成java语言微调后的产物。不同的动态语言相差甚远,正如静态语言中C和java一样 -- 尽管我了解这一点,但在内心深处,如果一个人拿AS3的动态性而嘲笑ruby,我觉得对ruby是莫大的侮辱。 -- 不过还好了,这是我的个人感情,也不具专业精神,看的人一笑而过吧,我上面的话大家可以看作一个flex/air/AS3初学者的感受。也欢迎AS3大牛指正。

另外, robbin说的是:javaeye行数最多的model有224行,不是平均行数。
43 楼 gigix 2008-04-17  
我也贴一下BaoMingBa.com的rake stats吧
+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |   246 |   199 |       6 |      29 |   4 |     4 |
| Helpers              |    30 |    25 |       0 |       1 |   0 |    23 |
| Models               |   311 |   234 |       6 |      47 |   7 |     2 |
| Libraries            |   136 |    72 |       0 |      17 |   0 |     2 |
| Integration tests    |    75 |    57 |       1 |       6 |   6 |     7 |
| Functional tests     |   440 |   340 |       7 |      44 |   6 |     5 |
| Unit tests           |   290 |   228 |       5 |      34 |   6 |     4 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                |  1528 |  1155 |      25 |     178 |   7 |     4 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 530     Test LOC: 625     Code to Test Ratio: 1:1.2

Robbin说的那个,一个类两百多行的,对于我来说就是不可接受…不过比起Java来终归是好得太多了。
ActionScript到现在都没有一个成熟的MVC框架,并且ActionScript是一个很蠢的语言,写出代码来根本不显得比Java少。
42 楼 liusong1111 2008-04-17  
ltian 写道
robbin 写道
ltian 写道

我不知道你的Rails框架是什么样子,但是我想说的是,能保证对这个model的所有操作都能封装在一个文件中吗?就所能锋到一个文件中,那么代码行数要有多少呢?我想这个本不关视力问题,而是关乎精力问题。如果一个程序员要开发程序的时候都要把前面别人的每行代码都过目一遍,以发现是否在某行中添加了某个属性,我看那才吃饱了是撑的。如果我说的不对,就当我没说。


原来你真的是没有Rails开发经验,难怪说出来的话这么离谱,可以理解了。

一个model的操作是肯定会写在这个源代码文件里面的。而且你不了解ruby本身表达能力强,很多事情都只需要写一两行代码,所以代码行数再多也不会比Java多吧。更何况,如果这个model的职责太大的话,说明就不适合放在这个对象里面,应该分离到其他对象里面去了,听说过单一职责原则吗?

我给你一个实际点的例子,JavaEye网站源代码50多个model当中,代码行数最多的model文件也不过224行,你程序员要多娇气,连200多行的代码过目一遍都做不到?那Java程序员写的源代码动辄一个文件几千行,你还不得跳楼?


你说的有些道理,但是JavaEye网站源的用了50多个代码行数比较小的model能否具有广泛的代表性值得商榷,我不是做网站开发的,我的工作背景是开发基于B/S结构的电力行业软件,一个完整的电力管理信息系统要集成多达几十个子系统,都能做到您说的这样保证每个model不是很大,我心里没底。
另外我更觉得每个model文件也不过224行主要功劳应该归功于设计合理,这一点我是很佩服的,估计你的需求分析和设计的投入的精力不少!而规划设计合理的Java类文件也不会动辄上千行,因为面向对象中的单一职责原则也适合Java语言。
我目前使用Flex开发,用到的AS3据说也是动态语言,由于动态增加属性造成维护困难的问题,所以就说了一下。我不反对跟进先进的技术潮流,但是也希望里面存在的问题能够不被忽略,觉得有些方面的解释有些牵强,力度不够,所以就说了几句,可能存在误解,希望各位不要介意,尤其gigx,我们两个说话都很冲!也希望在ROR技术走在前面的弟兄继续努力,如果这东西真的在行业软件领域成熟了,还会向各位请教的。


刚统计了下我们系统,model文件共167个,共17759行。行数最多的那个很变态,有1167行。剩下还有5个超过500行的。这是个业务逻辑十分复杂的系统,表间关系之复杂超出想像(DB schema是我们WEB显示和底层运算两个team协作的最重要依据,也是为什么不用rails的db migration的原因)。你算一下会发现,平均每个文件的代码不到80行
这是rails stats的一部份,仅供参考:

+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Models               | 17759 | 13439 |     169 |     771 |   4 |    15 |
+----------------------+-------+-------+---------+---------+-----+-------+

41 楼 robbin 2008-04-17  
ltian 写道

我不知道你的Rails框架是什么样子,但是我想说的是,能保证对这个model的所有操作都能封装在一个文件中吗?就所能锋到一个文件中,那么代码行数要有多少呢?我想这个本不关视力问题,而是关乎精力问题。如果一个程序员要开发程序的时候都要把前面别人的每行代码都过目一遍,以发现是否在某行中添加了某个属性,我看那才吃饱了是撑的。如果我说的不对,就当我没说。


原来你真的是没有Rails开发经验,难怪说出来的话这么离谱,可以理解了。

一个model的操作是肯定会写在这个源代码文件里面的。而且你不了解ruby本身表达能力强,很多事情都只需要写一两行代码,所以代码行数再多也不会比Java多吧。更何况,如果这个model的职责太大的话,说明就不适合放在这个对象里面,应该分离到其他对象里面去了,听说过单一职责原则吗?

我给你一个实际点的例子,JavaEye网站源代码50多个model当中,代码行数最多的model文件也不过224行,你程序员要多娇气,连200多行的代码过目一遍都做不到?那Java程序员写的源代码动辄一个文件几千行,你还不得跳楼?
40 楼 Ashela 2008-04-17  
gigix 写道
ltian 写道
gigix 写道
JBeans 写道
代码什么都说明不了~ruby本身就是一门动态语言~其自身的动态特性决定了一定程度上存在很大的灵活性~相比较而言javascript更是如此~拿精巧的动态特性去比较静态语言本身的一板一眼的写法没有任何意义~

一行代码干完的事情要写十行,你说有没有意义?

成功的软件项目开发中,代码所占的工作量并不大。 所以即使省几行代码也没多大意义,另外,由此可能会产生大量的维护成本。动态语言,在WEB客户端开发中能发挥作用,服务器端的业务逻辑层还是靠静态语言比较放心。

首先这句就是扯淡。软件的价值链上最主要的一部分就是编码,代码都不重要我就不知道还有什么重要。维护成本,huh?维护难道不是在代码上工作?难道不是代码越少越容易维护,反而是代码多了容易维护?说什么Java一板一眼规范严格,我就奇了怪了,怎么我每每看到的都是遗留系统里Java代码乱七八糟没法维护呢?是我运气太背,还是所谓一板一眼规范严格根本就是想象出来的呢?

39 楼 7thbyte 2008-04-17  
关于这个问题我一直是这么理解的:

无论是静态语言或动态语言,在存在『垃圾程序员』的情况下,一样能写出不容易维护的烂代码。
而使用动态语言,更容易进行迭代开发,实现重构和自动化测试。

在没有编译器约束所谓“不知什么地方添加的属性”是否存在并互相覆盖的问题的现实下,
况且,在需求变化迅速和维护工作繁复的现实下,
自动化测试是必须的。

动态语言是有适合动态语言的开发理念和开发方法的。
一直认为一种语言所包含的外延远远超出该语言本身。
忽略这些外延而去反对一种语言,我认为是不够公允的。


试想,如果开发一个JAVA工程的时候,不去划分DAO,Serivce,Action等诸多层面,完全凭藉个人喜好去编写代码,代码难道就规范且整齐了么?

静态语言仅仅在代码层次上增添了一些约束,能够阻止思维的混乱么?


很多人对动态语言的一个极大的误解就是,动态语言是过度自由且几乎没有方法在软件工程中加以约束的。


而许多框架,成熟的库的出现正在有力地对此进行回击。

在进行了许多静态语言的最佳实践的基础上,带着有色眼镜来看待动态语言。
而并没有试图深入了解一些东西。这种态度并非科学辩证的,我想。
38 楼 open2ye 2008-04-17  
我喜欢 ruby
37 楼 liusong1111 2008-04-17  
ltian 写道
gigix 写道
ltian 写道
我不知道你的Rails框架是什么样子,但是我想说的是,能保证对这个model的所有操作都能封装在一个文件中吗?就所能锋到一个文件中,那么代码行数要有多少呢?我想这个本不关视力问题,而是关乎精力问题。如果一个程序员要开发程序的时候都要把前面别人的每行代码都过目一遍,以发现是否在某行中添加了某个属性,我看那才吃饱了是撑的。如果我说的不对,就当我没说。

过去四十年的历史已经证明你没有办法保证垃圾程序员不把项目搞得一团糟
大致了解一下Rails再来发表关于Ruby的评论可以帮助很多人节约看你废话的时间


我没根本就没提Rails这个东西,我对这个语言不感兴趣,
另外您也别提40年的血泪史,好像40年来人类的软件事业一塌糊涂,根本没成就,于是乎,ROR这个这个拯救人类软件事业的语言或者平台诞生了。
我是基于对As3这种类似的动态语言的了解来讲这些存在的可导致程序难以维护的问题的。你说不存在,那当然好了。你去玩你的 Ruby,我也没时间看你在这里废话。


Rails是基于ruby语言的一个WEB框架,我想你是笔误。
对不了解的东西做结论式的评论,是我十分反感的。因为从哲学的空对空的角度,任何一门语言/框架,或它的任何一个特性,都会有所取舍,有好坏两方面,"都有它的适用之处". 但如果最终结论是"比较它们没有意义",或者不加了解的做结论,都是有违专业精神的.
AS3在我的了解中,更像java语言(十分像),而跟ruby相去甚远. 这里讨论的是ruby,所以类比AS3可以,但绝不是充份条件.
关于ruby/rails哪些好哪些不好的讨论,我一直保持兴趣,因为在我们使用rails的工作当中,确实发现一些问题. 但令人失望的是,很多参加讨论的人发表的言之凿凿的结论,在我们工作当中或者正好不是问题而是优势,或者是个大不了的问题。
我希望的是跟有实践经验的人互相交流,却每每最终发现是给人解释,事情不是这样,是那样的,等等等等,而且是对一个没有什么了解却言之凿凿的人。
太令我失望了,太令我失望了,呼呼,唉唉~
36 楼 gigix 2008-04-17  
ltian 写道
我不知道你的Rails框架是什么样子,但是我想说的是,能保证对这个model的所有操作都能封装在一个文件中吗?就所能锋到一个文件中,那么代码行数要有多少呢?我想这个本不关视力问题,而是关乎精力问题。如果一个程序员要开发程序的时候都要把前面别人的每行代码都过目一遍,以发现是否在某行中添加了某个属性,我看那才吃饱了是撑的。如果我说的不对,就当我没说。

过去四十年的历史已经证明你没有办法保证垃圾程序员不把项目搞得一团糟
大致了解一下Rails再来发表关于Ruby的评论可以帮助很多人节约看你废话的时间
35 楼 寻找出路的苍蝇 2008-04-17  
gigix 写道
ltian 写道
“软件的价值链上最主要的一部分就是编码”这样的提法才是扯淡,不管哪个大师说的,都是有很大的问题。我只能说,这个观点适合于功能简单的小软件。

(耸肩)
你去随便找一个软件项目,统计在上面耗费的所有成本,然后看看一个软件的成本结构是怎样的

我们做一个不大不小的项目,前期需求、设计大概要花两三个月,而主要功能代码开发就两三个星期而已,剩下的N多个月就是在不停的测试、bug修复、功能补充、用户反馈。。。。应该也算是编码的一部分吧,不过很多时候都是需求做的有问题,编码所占比重貌似并不大。。。
34 楼 robbin 2008-04-17  
引用
这在一个比较大的系统中,某程序员在某处为一个对象添加了动态属性,而其他程序员不知道,他也想添加这么一个名字的属性,但是意义和用途完全不同,这就是问题之所在。


在Rails框架下面编程,你要是给一个model对象增加动态属性,一定会在这个model的源代码里面添加你的code(当然,如果你吃饱了撑的,非自己弄一个文件去瞎改,然后把这个文件require到environment.rb里面来,就当我没回过这个帖子),如果其他程序员也要干这件事情的时候,当他打开这个model的源代码,我假设他眼睛的视力在正常范围内,他必然不会看不到前面程序员已经添加的动态属性。于是我请问,你所谓的问题究竟何在呢?是程序员的视力问题,还是程序员的智商问题?

33 楼 gigix 2008-04-16  
ltian 写道
“软件的价值链上最主要的一部分就是编码”这样的提法才是扯淡,不管哪个大师说的,都是有很大的问题。我只能说,这个观点适合于功能简单的小软件。

(耸肩)
你去随便找一个软件项目,统计在上面耗费的所有成本,然后看看一个软件的成本结构是怎样的
32 楼 kaoumay 2008-04-16  
就不喜欢ruby,气死你,咬我呀
31 楼 gigix 2008-04-16  
ltian 写道
gigix 写道
JBeans 写道
代码什么都说明不了~ruby本身就是一门动态语言~其自身的动态特性决定了一定程度上存在很大的灵活性~相比较而言javascript更是如此~拿精巧的动态特性去比较静态语言本身的一板一眼的写法没有任何意义~

一行代码干完的事情要写十行,你说有没有意义?

成功的软件项目开发中,代码所占的工作量并不大。 所以即使省几行代码也没多大意义,另外,由此可能会产生大量的维护成本。动态语言,在WEB客户端开发中能发挥作用,服务器端的业务逻辑层还是靠静态语言比较放心。

首先这句就是扯淡。软件的价值链上最主要的一部分就是编码,代码都不重要我就不知道还有什么重要。维护成本,huh?维护难道不是在代码上工作?难道不是代码越少越容易维护,反而是代码多了容易维护?说什么Java一板一眼规范严格,我就奇了怪了,怎么我每每看到的都是遗留系统里Java代码乱七八糟没法维护呢?是我运气太背,还是所谓一板一眼规范严格根本就是想象出来的呢?

相关推荐

    网友原创系列之Silver_Ruby主题包

    【Ruby语言介绍】 Ruby是一种面向对象的、动态类型的编程语言,由日本人松本行弘(Yukihiro Matsumoto)在1995年设计并创造。...对于那些喜欢Ruby语言的人来说,这样的主题包无疑为他们的编程生活增添了色彩和乐趣。

    Ruby 15天自学教程ppt

    ThoughtWorks的首席科学家、敏捷开发的鼻祖Martin Fowler在博客中曾写到“我的任何一个合格读者都应该知道这几年我已成了一个Ruby爱好者,简洁的语法及优雅的框架使我喜欢上Ruby,它已成为我开发个人项目的首选语言...

    Ruby 自学教程程序源代码

    ThoughtWorks的首席科学家、敏捷开发的鼻祖Martin Fowler在博客中曾写到“我的任何一个合格读者都应该知道这几年我已成了一个Ruby爱好者,简洁的语法及优雅的框架使我喜欢上Ruby,它已成为我开发个人项目的首选语言...

    vim-ruby-refactoring, 在vim中,用于 ruby的重构工具 !.zip

    用于Vim的 ruby-重构工具我喜欢 vim 当我开发软件的时候,它是我的选择编辑器。目前( 至少在过去的4年中) 主要使用 ruby 编程语言。在开发过程中,我一直丢失了一个重构工具,但是我从没有心想过( 就像你在内部找到...

    ruby-rust-interop:展示在 Ruby 运行时中从 Rust 调用基于数字的函数

    ruby-rust-互操作展示在 Ruby 运行时中从 Rust 调用基于数字的函数我希望这些例子能帮助你使用 Rust 设置 Ruby! 所有这些示例都在使用 Ruby 2.1.6 和 Rust 1.0.0-beta.4 的 Windows 上进行了测试如果你克隆 repo,...

    audio-ruby:Ruby 的跨平台音频设备接口

    如果您喜欢处理其中任何一个,我非常乐意接受 Pull Requests! 用法 列出可用的音频设备 音频模块提供了一种方法来检索系统上可用的所有音频设备的列表。 require 'audio' devices = Audio . devices # =&gt; An ...

    vimilicious:用于创建 vim 插件的 Ruby 库

    就像我喜欢和崇拜 rails.vim 一样......你有没有看过源代码? 天啊! 将 ruby​​ 用于一些 vim 脚本或应用程序创建可以使您的生活更轻松。 只有那些使用 ruby​​ 支持编译的 vim 才能利用 vimilicious 或基于 ...

    Combine_pdf:一个纯Ruby库,用于合并PDF文件,数字页甚至更多。

    我喜欢这种宝石,但是我觉得是时候该放弃维护它了,并专注于音乐和其他我想开发的东西。 如果您想加入并最终接手,请打我。 已知局限性 快速淘汰: 阅读PDF表单时,某些表单数据可能会丢失。 我已尽力尝试解决此...

    myGoodiesAutoInstall:我最喜欢的程序的Ruby Auto Installer

    自动安装我的东西一个简单的ruby脚本,它会自动安装一些程序。 该脚本在采用纯格式后非常有用,因为它可以节省一些时间。 试试吧!安装...安装自动构建并运行wget ...

    rubyfmt:Ruby自动格式化程序!

    不,但是距离真的很近我该如何使用建立它: 确保您已安装货物运行make all 将target / release / ruby​​fmt-main复制为rubyfmt到路径上的某个rubyfmt Rubyfmt支持以下CLI调用: &lt;whatever&gt; | rubyfmt &lt;whatever&gt; ...

    小胡子:无逻辑的Ruby模板

    胡子 受和启发,Mustache是​​一种与框架无关的呈现无逻辑视图的方法。 正如ctemplates所说,“它强调... 我喜欢写Ruby。 我喜欢编写HTML。 我喜欢写JavaScript。 我不喜欢编写ERB,Haml,Liquid,Django模板,将Ru

    实例解析Ruby程序中调用REXML来解析XML格式数据的用法

    我有这样的问题:我不喜欢令人困惑的 API。有几种用于 Java 实现的 XML 解析器 API。其中大多数都遵循 DOM 或 SAX,并且在基本原理上与不断出现的众多 Java API 非常相似。也就是说,它们看 上去象是由从未使用过...

    ruby_videos:关于 Ruby 编程语言或与之相关的优质视频的精选列表

    这个项目的原因是我喜欢许多概念,但也想知道我是否可以只用标准的 Rails 和 PORO(带有一些轻量级的 gem)来做类似的事情。 虽然这个项目非常简单,但很多代码对于项目来说看起来有点过分。 这是现阶段的预期。 ...

    ruby-hysh:黄鹰的Ruby外壳

    但是我不喜欢bash的语法,宁愿在Ruby中这样做。 这项工作基于HYSH(黄鹰在Common Lisp中的SHell: )。示例 def dpkg_installed1 ( package_names = nil ) Hysh . out_lines -&gt; { Hysh . pipe [ 'dpkg' , '-l' ], ...

    程序员为什么还要刷题-ruby-101:Ruby-101

    程序员常刷题Ruby 101:学习 Ruby 编程语言 在这里,我描述了我学习 Ruby 的历程,Ruby 是一种非常酷且快速的面向对象的解释型编程语言。 有一些编程概念的基本知识是很好的开始。 本文档会定期更新,我也会提供大量...

    rubysnake:经典蛇游戏的克隆,使用图形库ruby2d

    欢迎来到我的Ruby蛇游戏。 这是使用ruby2d gem /库构建的项目。 要运行此程序,您应该已经安装了这样的库,然后您可以通过在控制台中输入: ruby snake.rb来运行游戏。 安装Ruby2d 首先:安装所需的依赖项 对于Mac...

    ruby101-kitap:土耳其Ruby书

    我一直很喜欢的口袋书。 无论是在大小还是内容上。 您可以始终随身携带的资源,以紧凑的方式包含与其主题相关的所有内容。 我的目的是准备一本味道像这样的床头书,随时随地都可以找到。 编写本书时,最困难的...

    rubylisp:Ruby的Lisp方言

    从设计角度来看, 是我最喜欢的语言,并且可以利用现有JVM库这一事实非常方便。 但是只有一个问题-它的启动时间太慢。 很不错; 它是一个强大的Lisp,而且速度很快。 但是,找到X现有库来执行Y任务并不总是那么...

    生菜:受Ruby启发的Cucumber的python行为驱动开发工具

    我喜欢python,而且从没这么做过。 但是我也曾经错过过一些使编写测试变得容易和有趣的事情。 我喜欢,这是一个单元测试的pythonic框架。 但是,随着我从事的项目的增长,测试也随之增加,并且变得越来越难以理解...

Global site tag (gtag.js) - Google Analytics