• #4 楼 @shlallen 本来各种注入就已经够危险的了,你这个还直接执行命令..

  • 不会。

  • #1 楼 @lyfi2003 大哥,你真的跑过你的代码吗??那两个 puts 语句都是 false #2 楼 @edokeh #3 楼 @moofox

  • 楼上神仙打架。

  • #1 楼 @lyfi2003 同问 3L 的问题

  • 你们也整天写报告吗? at 2013年07月08日

    哎哟兄弟,做产品的你就认命了吧。。怎么能少了报告。。

  • 因为你是在 dev 模式,所以 rails s 是阻塞的:一个进程卡住,就不服务其他了。

    要是你用了 unicorn 之类的多进程服务器的话,应该就不会有这个问题了。

  • 我觉得如果楼主面临着 mac 与 linux 的选择的话,其实你要的答案是 heroku。

  • 我就是来看看第一句然后就走的。。

  • Daniel Lv 明天是否有喜事呀 at 2013年06月22日

    恭喜恭喜~!

  • #8 楼 @blacktulip 嗯。。说起来有盗版有正版吧,有些书本身就是开源的,在上面可以找到。有些书是有版权的,也找得到.....

    只能说...大家尽量去上面下载 O'Reilly 开源出来的书籍吧。。

  • http://www.ppurl.com/

    这个网站皮皮书屋也有很多类似的电子书。

  • 求职:Ruby 新手求带走 at 2013年06月16日

    #96 楼 @fsword 目前...成了你的同事...跟@朴灵 @玄澄 他们一起的...

  • 求职:Ruby 新手求带走 at 2013年06月12日

    #42 楼 @tyaccp_guojian 我是那个简历的主人...其实我学的东西大部分都不是老师教的,我也不在乎老师在学校教的那些。如果今后要回顾我大学期间学习的计算机知识,我主要会感谢 O'Reilly、机械工业出版社、各种开源文档以及开源社区。

  • 听说这是 Node.js 最适用的场景...用了 Node.js,同时并发多少都能撑住。。。至于上万的话能不能,可以去 cnodejs 问问吧我觉得。

  • Ruby 正则的问题 at 2013年06月08日

    /\d{4}\\/\d{2}\\/\d{2}/

    试试这个?

  • 『你是不是彰显自己的个性,ruby 都是日本人在玩』

    这句话是无知成年人在面对自己不懂领域时,对青少年说出的典型话语。

  • #63 楼 @tangzhan_ 一直在寻找更合适的词语来表述:)

    墨龙科技??莫非我们在川大见过面??

  • 关于 inject 方法 at 2013年05月30日

    #5 楼 @youseke 就使用场景来说,是的。而且一般大家都不用 inject 方法而用 reduce 方法,reduce 这个名字才是名门正派啊。另外也可以叫做 fold。

  • Ruby 的方法调用好像野马 at 2013年05月30日

    对的,这是 Ruby 不好的地方。

    1. 首先函数不是第一等公民了。要通过 to_proc 才可被传递
    2. 应该学习 CoffeeScript,在函数无参数调用时,需要显式使用 ();函数后面跟参数时,不必显式使用 ()。如果函数后来不接参数且没有 () 时,此时可取出函数对象来。
  • 关于 inject 方法 at 2013年05月30日

    之前只有 &:*,后来进一步简化,有了 :* 。以后只使用后者就好了

    他们的本质都是会自动调用 #.to_proc。

  • #5 楼 @fengfans 小需求其实也没必要用那么多库,你可以简单地做 before_filter 判断啊。

    在 wordlist 的 controller 里面的 delete 和 edit 里面判断一下:

    if current_user.id == wordlist.user_id then allow else deny end

  • 对了,楼主,忘了说。我最近为了面前端职位,一直都是复习的 HTTP、CSS、JS 这类东西。Python 已经很久没有看了,虽然平常也会使用它。

    这份面试题合不合格的话,要看你面的是什么公司的什么职位了。但如果面试者单纯面这些,而缺乏了一些主观性方面的题目的话,当然是不合格的一个面试题。

    and 我觉得,有可能面试官也不是想你全部回答出来这些问题吧,可能他是想尽量多出点题目,然后挑你掌握的部分跟你聊,免得出了你刚好不懂的题目把你给错过了。

  • 首先,你既然打算以后让授权用户可以创建多个单词表,那么你的 user 表 和 wordlist 的关系一定得是一对多的啊,你的帖子里说是 一对一,这让我很迷惑。

    我就当是一对多吧。当你在 activerecord 里面指定了 user 和 wordlist 的关系后,你应该可以通过

    current_user.wordlists 来取出当前用户对应的 wordlist 来的。Rails 会自动取出 user_id 对应当前用户的 wordlist 来。这样的话,当然『每个用户仅能对自己的单词表进行增、删、改、查操作,而无法对其他用户的单词表做这样的操作。』啦。

    『今后想实现,普通的注册用户仅能创建一个单词表,只有授权的用户可以实现多个单词表。 请问实现这样的效果,实现的思路是什么?』

    我觉得你在 #2 楼 的两个需求啊,其实都是关于权限控制方面的内容,这跟你用不用 devise 貌似关系不是很大。有兴趣的话,去了解一下 cancan 这个 gem 吧。

  • #21 楼 @lgn21st 我觉得 @hello_little_yy 貌似不是在鄙视楼主诶...他鄙视的是面试官吧...因为一开始他 bless 楼主啊..

  • 楼主,这是我在不查任何资料的情况下,直接打开 ST2 答题的结果,希望对你有帮助。

    我最近也在面试,虽然不是面试 Python 程序员。:):

    1. List 对应普通编程概念中的数组,在 Python 中,List 里面可以容纳不同类型的数据,且 List 的大小是可以动态分配的。Tuple 相当于不可变的 List,使用起来在性能上有优势。Dict 对应编程概念中的 Hash 或者叫字典,是 Key-Value 形式的一个容器,Key 不可重复。顺便说说,还有个类型叫 Set,可以理解为不存在重复值的 List。

    使用场景:

    需要存储相同类型的一系列数据时,使用 List。

    当上一场景的数据集不需要发生变化时,使用 Set。

    当数据可以通过某种方式的 标志 进行读取时,使用 Dict。比如一个 House,里面会有 Bed,Table 等等其他嵌套的属性,且可以通过标志进行定位。

    2.

    List Comprehension 是从 Haskell 里面借来的思想,它是一种语法糖。用它可以实现 filter 与 map 功能的简写。

    代码示例:

    [i for i in xrange(100) if i % 2 == 0] # 取出 100 以内的所有偶数。

    直接使用 '+' 号,不考虑它与 str.join 之间的效率问题,因为解释器会优化。

    4.

    for line in open('filename.txt'): print line

    5.

    try: d[keyy] = 1 except KeyError, e: print e

    6.

    generator 会使用 yield 来产生数据,可以被 for 来逐个调用。如果不使用 for 来遍历 generator 的话,可以通过 iterator 的 next 一类的函数来手动控制消费数据的节奏。如果没记错,iterator 还可以向 generator 通过 send 来发送数据进行交互。

    当 generator 不被继续消费时,它会『停止』并等待下一步的消费,这是 Python 中的协程特性。

    他们的关系是:generator 提供一个可用的数据集,惰性的产生数据;iterator 负责消费。

    7.

    特殊方法??元编程吗?或者是 '__' 包含的方法??我随口说几个。

    len 长度相关

    getattr and getattribute

    index 貌似是这么写。控制 [] 操作符的意义。

    8.

    最简单的方式是使用 docstring 的测试。如果用到相关测试库的话,记不得名字。但测试的主要思想还是明白的。

    9.

    docstring 可以被用来生成文档,而 comment 一般不负责这个功能。且 docstring 里面可以加测试用例和一些类似 @arg:int 这样的详细说明。

    使用场景:

    当概括性地描述一个 类 或者 函数 的时候,使用 docstring。

    当针对小的功能或者代码段进行说明的时候,使用 comment。

    10.

    Python 中的正则又没有什么需要特殊注意的地方。略。

    唯一需要注意的地方就是,当使用的正则多次出现时,最好用上 re.compile

    11.

    decorator 通俗地讲是用来『包裹』函数的。它出现在函数或者类的定义之上,用来执行一些 pre_run 和 post_run 的功能,但它一般不用来改变函数的内部运行内容。

    用法??比如写了一个通用的『函数参数打印』 decorator 的话,就可以在需要的函数前加上这个 decorator。

    代码示例:

    @logArgs def myFunc(arg1, arg2): pass

    12.

    Python 以文件作为 namespace,不存在通常意义上的全局变量和函数。所使用的外部模块都需要通过 import 来导入。

    variable scope 的话,就只说说闭包方面的内容吧。在一个函数中是可以『看见』外部变量的,但只限于 get 而无法 set,一般情况下,会借助 global 声明来完成某些变量的共享。当然,也有个叫做 local 的声明可以使用,这样的话,某个被 local 声明了的变量就会从当前函数自动向外查找。

    13.

    classmethod 会把自己作为 cls 参数传给所定义的函数(当然,也不一定要叫 cls 这个名字),而且定义出来的函数是一个类函数。用 staticmethod 与 classmethod 差不多,只是类不会把自己传给函数,一般使用 classmethod 就好了。

    普通 method 也要分两种情况。不在类中定义 method 时,不会传入 self,在类中定义时,需要手动传入 self。

    and 说更细也行,只是不懂面试官想考什么。

    14.

    略。

    15.

    举一个例子:Flask 通过 decorator 的方式来实现 route 我觉得很巧妙。

  • #14 楼 @5long #16 楼 @luikore 嗯,看了 @luikore 的例子,我承认我的想法是有所偏差的,:to_i 是个很好的选择。

  • #1 楼 @5long #4 楼 @jjym #6 楼 @zgm #7 楼 @quakewang #8 楼 @wuwx #10 楼 @luikore #11 楼 @sevk

    忍不住 at 了楼上所有人的原因是,你们真的觉得在这个问题里面用上了 :to_i 这个方法是合适的吗??

    看到楼上的朋友用 :to_i,让我想起了大一上 C 语言课的时候,老师要我们计算一个数字有几个尾随的 0,比如 300 有两个,10000 有四个。由于 C 语言里面的字符串老师不打算让我们接触,于是就让我们通过求余的思维来做这一题,而且它也没提到 其实这题就逻辑上来说,是不应该用求余来做的

    楼上的各位你们想想,楼主的需求要的是一种 模式 上的匹配!而你们却通过 :to_i 的方式来找出这种模式上的匹配,我觉得是不可取的一种思维。更正确的方式应该是通过字符串的思维来对待楼主的需求,即,通过正则来完成。

    借用一下 #11 楼 的代码,我给出的答案是:

    ["11.0", "0.1", "1.2", "1.3", "0.2", "-11.5"].group_by{|s| s.match(/(.+?)./)[1] }

    输出:

    {"11"=>["11.0"], "0"=>["0.1", "0.2"], "1"=>["1.2", "1.3"], "-11"=>["-11.5"]}

  • #7 楼 @qqrrm 如果你的 cd 是床,那么你的输入法设置应该是设置了模糊音。id 才是 床。