`
jack
  • 浏览: 392822 次
  • 来自: 温州
社区版块
存档分类
最新评论

自己的Ruby学习误区

阅读更多
ROR离我很近,Ruby却离我很远.

学习ROR已经有段时间了,也试着做一个demo项目.遇到了不少的问题,大都也都解决了.这几天下载了typo的代码.
打开粗率的看了一遍. 至少有60%的代码看不懂,不知道为什么要这么写.这一对比才发现一个问题,自己原来始终用错误的方式在学习和使用ROR.

仗着自己有开发经验,然后快速学习了一遍Ruby和ROR.马上就动手开发项目.错,实在是大错特错.很多Ruby的思想根本没有理会,最终写出来的代码,只不过就是换了种语言而已,骨子里头还是以前.换汤不换药.

Ruby本身有很多精妙之处,还得重新学习和领会才行.看来Ruby根本无法快速学习,以往的语言使用经验起的作用也是负面大于正面.
参考Typo,准备从头演练Ruby.
分享到:
评论
35 楼 edwardpro 2007-06-04  
应该先看ruby的书的,直接看rails基本上改不了习惯,感觉ruby就是喜欢用block,用得入魔了,平时我们都是function概念的东西人一个block解决一大堆,这应该是很大的不同地方。
34 楼 darkjune 2007-06-03  
脚本语言跟以前的正统面向对象还是有挺大差别的
33 楼 sizhefang 2006-11-30  
找到一个老外出的自称能让你看懂rails代码的ruby教程,我花一天时间仔细看了一下,感觉还可以.
http://sitekreator.com/satishtalim/index.html
32 楼 sizhefang 2006-11-30  
在学习ror之前,粗略的看了一遍ruby的语法,就开始看Agile Web...了,一开始有很多Depot的代码看不懂,可硬着头皮往下看,遇到不懂的地方就google,现在把那本书已经基本上看完第一遍了,回头看第二边的时候就照着Depot的例子敲代码(当然只有在自己认为已经明白了代码是什么意思之后才写后面的代码),就这样滚雪球式的学习ruby on rails.最理想的是在自己认为水平差不多了,能找个兼职做做,体验一下真实项目中的感觉.这样等自己用他做项目的时候,技术沉淀就差不多了.
31 楼 s5kk 2006-11-30  
很不幸,我刚开始看的就是 The Ruby Way, 特郁闷,
然后看到 javaeye 的人说ruby怎么怎么好,怎么怎么容易,大汗。
后来看到agile那本书,才明白原来很多人只不过是雾里看花。
30 楼 mathsfan 2006-11-30  
有点道理,目前我就只是照着透明的那本书做,很多都弄不懂哦
29 楼 axgle 2006-11-15  
roseanne 写道
Huge thanks!

谢谢胡戈! (Don't worry,this is a chinese humor)
28 楼 roseanne 2006-11-15  
引用
By the name convention of Ruby, I think they should really be named as 'pop!' and 'push!'


Hey, I thought so too, and check the RubyAPI Doc...

I guess you explanation makes sense.

Huge thanks!
27 楼 cookoo 2006-11-15  
Pop and push have side effects: they are destructive to data. That's why aardvark pop then push back in order to maintain the state. By the name convetion of Ruby, I think they should really be named as 'pop!' and 'push!'

While I use parallel assignment, which simply makes a copy of data without any change.
26 楼 roseanne 2006-11-15  
I wrote a random driver to run them at the same time to compare the efficiency and correctness.

aardvark and cookoo code seem equivalent to me.

However, I took line #7 of aardvark code of, the method does not work correctly sometimes.

I made cookoo code almost the same as aardvark code without line #7, it works correctly. I am still confused...

  
25 楼 aardvark 2006-11-15  
head, *tail = nums

还是cookoo对ruby熟,这个用法我不会,只好pop再push.
ruby要学的太多了.
24 楼 森海 2006-11-15  
刚买了一本书,收到,开始学习这个
23 楼 roseanne 2006-11-15  
Thanks cookoo
I got it!!!!
22 楼 roseanne 2006-11-15  
I fixed my bug there for the poor Java kid first.
21 楼 roseanne 2006-11-15  
Hey, cookoo

Sorry!

I was in a meeting and did not refresh the screen, and did not see your code.

Now, it is time to try yours...

Wait! Thanks first!!!!
20 楼 roseanne 2006-11-15  
Wow, I love it!!!
试君一程序,胜读三月书!
Huge Thanks, aardvark!!!!

A long long learning curve is waiting for me for sure.
I know I am not a ruby programmer, not yet!

=============
Deleted some of my wrong comments on line #7
===============

I am waiting for some other solutions.
You guys are just great!



19 楼 cookoo 2006-11-15  
Rachgirl, basically I follow your logic with a small bug fixed:
def bag(nums,sack)
  return true if nums.include?(sack)
  return false if sack < 0 or nums.empty?
  head, *tail = nums 
  return true if bag(tail, sack - head)
  if tail.size >= 2 then bag(tail, sack) else return false end
end


The bug in your original code is the omission of condition "sack < 0", therefore when sack = 13, nums = [5,4,3,2], the result will be true, while actually should be false.
18 楼 aardvark 2006-11-15  
roseanne 写道
Here is my little piece of Java/C++ like Ruby code, solved a small problem for others.

If somebody can rubylize the code for me, it will be greatly appreciated!!!!!

The link:
http://bbs.chinajavaworld.com/thread.jspa?threadID=729132&tstart=4

You can read and know what problem I want to solve. Algorithm highlight is there too.

You can post you code in either forum. Better here!

Thanks in Advance!!!!



def bag(volume, items)
  puts "bag #{volume}, [#{items.join(',')}]"
  return true if items.include?(volume)
  return false if volume < 0 || items.empty?
  item = items.pop
  return true if bag(volume - item,items) || bag(volume, items)
  items.push(item)
  return false
end

puts bag(15,[2,9,8,5,3])

刚开始学ruby,抛块砖先
17 楼 roseanne 2006-11-15  
Here is my little piece of Java/C++ like Ruby code, solved a small problem for others.

If somebody can rubylize the code for me, it will be greatly appreciated!!!!!

The link:
http://bbs.chinajavaworld.com/thread.jspa?threadID=729132&tstart=4

You can read and know what problem I want to solve. Algorithm highlight is there too.

You can post you code in either forum. Better here!

Thanks in Advance!!!!

16 楼 roseanne 2006-11-15  
Languages are just tools to get the job done!!!!

I think it is OK to write Java/C++ like ruby code, we are in a learning process, we have more than one way to solve the problem.

Because I am working in C++, I am only using ruby to solve some side problems at work, when I write more, my code is more Ruby-like.

I wrote a RoR prototype too, I was using SQL to solve many database problems, since I did not have enough time to learn and do the ruby way.

I am OK, at least I think...

相关推荐

    深度剖析Ruby vs Java误区

    Halloway指出,编程本身就是一个挑战,无论使用Java还是Ruby,都需要一定的学习曲线。限制语言特性并不能真正降低编程的难度。 误区四讨论了Rails创新的复制性。虽然Rails的一些理念可以应用于其他语言,但有些特性...

    关于ruby学习的资料

    在Ruby学习中,这样的文档可能是关于错误处理、异常捕获(trap)或系统调用的相关教程。在Ruby中,`trap`常用于设置信号处理器,允许程序在接收到特定系统信号时执行自定义操作,这在编写可靠和响应迅速的系统中非常...

    ruby学习的源码

    本资料包针对Ruby学习者提供了丰富的资源,对于初学者来说是非常有价值的。 1. **Ruby基础知识**: - 变量:Ruby支持局部变量、实例变量、类变量和全局变量,它们以不同的符号开头,如`@`、`$`等。 - 类与对象:...

    Python & Ruby 学习

    而文件名“New Microsoft Office Word Document.docx”则提示我们其中可能包含一篇关于Python和Ruby学习的文档,详细讲解了相关概念、技巧或实践案例。遗憾的是,由于没有实际的文件内容,无法进一步展开讨论。如果...

    Ruby学习笔记

    这个暑假回家没事干闲...恩,废话就少提,下面我学习Ruby的各个部分。其中Ruby风格这一部分是开放的,因为我暂时还没有形成自己的风格。我用xmind来记笔记,因此我只是把笔记搬到博客上,看看下面的图。好有爱啊!!!

    Ruby学习交流指教

    Ruby学习交流指教Ruby学习交流指教Ruby学习交流指教Ruby学习交流指教Ruby学习交流指教

    RubyStudy-master-ruby学习笔记

    学习 Ruby 的旅程即将开始! Ruby 是一种功能强大、灵活的编程语言,广泛应用于 Web 开发、脚本编写和系统管理等领域。下面是学习 Ruby 的一些实用建议:首先,了解 Ruby 的基本概念和语法。 Ruby 是一种面向对象的...

    Ruby-Ruby中机器学习的实用资源

    Ruby中机器学习的实用资源

    ruby学习资料大全,很全很丰富

    Ruby是"一种用于迅速和简便的面向对象编程的解释性脚本语言";这意味着什么? 解释性脚本语言: 有直接呼叫系统调用的能力 强大的字符串操作和正则表达式 开发中快速回馈 迅速和简便: 无需变量声明 变量无...

    [转] ruby学习一个综合小练习

    标题中的“ruby学习一个综合小练习”表明这是一个关于Ruby编程语言的学习资源,可能是通过一个实际的小项目或练习来帮助学习者提升对Ruby的理解。描述中提到的“博文链接”指向了一个特定的博客文章,虽然没有给出...

    对Ruby VS Java误区的深度剖析

    误区一:Ruby适合小型项目,Java适合大型复杂项目。Halloway认为,对于小型项目,Java的成熟生态系统,如丰富的库和社区支持,可能是优势。然而,对于大型项目,Ruby的生产力和灵活性,特别是Ruby on Rails框架在...

    Ruby学习笔记(学习心得)

    Ruby学习笔记 01 类的属性与方法 02 访问控制 03 Container(Array/Hash) 04 Iterator 05 简单数据类型 06 范围 07 方法 08 条件控制 09 异常处理

    ruby中文教程,从基础到深入的让你学习ruby

    在学习Ruby的过程中,你还需要了解一些工具,如Ruby的解释器irb(交互式Ruby环境)和ri/rdoc(Ruby文档工具),它们有助于调试和理解代码。版本管理工具如RVM(Ruby Version Manager)和rbenv可以帮助你管理多个Ruby...

    Ruby学习资料(含参考手册和Programming Ruby)-中文.rar

    这份"Ruby学习资料(含参考手册和Programming Ruby)-中文.rar"压缩包包含了一系列的资源,帮助初学者和进阶者深入理解Ruby语言。 首先,"ruby中文文档(含参考手册和Programming Ruby).chm"是一个综合性的中文参考...

    笨方法学习 Ruby 电子书

    很好的ruby学习材料,ruby的入门有点难,比较繁琐,这本书很好的帮助大家开启ruby的大门

    Ruby/tk学习资料

    **描述**:“自己整理的Ruby/tk学习资料!” **标签**:“Ruby” **部分内容**:RUBY/tk学习文档 在本文档中,我们将详细探讨Ruby/tk的基础知识、核心概念及其应用方法。Ruby/tk是一种基于Ruby语言的图形用户界面...

    Ruby学习资料chm

    这份"Ruby学习资料chm"集合了关于Ruby的基础学习材料,对于初学者或是希望深入理解Ruby的人来说是一份宝贵的资源。 Ruby的核心特性包括: 1. 面向对象:在Ruby中,一切都是对象,包括基本的数据类型如整数、字符串...

    ruby学习资源(Programming Ruby, Learning Ruby, The Ruby Way)

    内含以下4个文档: 1、Addison.Wesley.The.Ruby.Way.2nd.Edition.Oct.2006.chm 2、O'Reilly.Learning.Ruby.May.2007.chm 3、Programming Ruby 2e.pdf 4、ruby中文文档.chm

    Ruby新手学习书(Ruby语言中文教程)和Rails_4_days

    "Ruby新手学习书"和"Rails_4_days"这两个资源是为初学者设计的,旨在帮助他们快速掌握Ruby语言的基础以及Rails框架的核心概念。 在Ruby语言中文教程中,你将学到以下关键知识点: 1. **基础语法**:Ruby的语法简洁...

Global site tag (gtag.js) - Google Analytics