Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
机械唯物主义
@linjunhalida
VIP
NO. 64 / 2011-11-13

[email protected]
上海
144 Topics / 760 Replies
40 Followers
15 Following
25 Favorites
GitHub Public Repos
  • snake-challenge 77

    snake game -- by write AI!

  • blog 37

    my blog

  • scheduler 5

  • code_example 3

  • data_list_converter 1

  • focus_common 1

  • battle-city 1

  • cloud_init_demo 0

  • kamago 0

  • ansible_simple_nginx 0

More on GitHub
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 关于为什么国内做不出所谓游戏大作的问题 at May 20, 2023

    手机游戏现在乃至以后都是绝对的主流,中国手游是统治地位,原神一年赚几百亿。单一付费的模式被价格歧视模式打爆。什么 3A 游戏大作都要被边缘化了。你提的问题不重要。

  • 开发一个面向程序员的聊天软件,有前途吗 at May 20, 2023

    社交平台这种赢家通吃的领域,个人开发者甚至普通小公司团队都没有赢面。

  • 有没有人一起摸鱼聊天,讨论技术的? at January 04, 2022

    猎头群。

  • 讨薪说明 at July 15, 2017

    直接找相关政府部门告,公司怕政府。

  • 一段加密信息被破密,如何知道解密是否正确 at July 07, 2017

    乱码至少知道几点:字符编码区间,以及明文的统计学规律(比如 is 这种的出现频率),然后写一个函数检查是否符合明文的统计学规律就可以了。

  • 如何成为快乐高产的程序员 at July 07, 2017

    你一篇文章写太长了,拆分成 5 篇文章吧。

  • 一年后回来发帖,我的情况更加糟糕了,想从事开发,跪求指导。 at June 28, 2017

    @samatist 对了,你是深圳人,可以看看这个: http://blog.linjunhalida.com/blog/shuiku/ 比程序员有前途多了,深圳明年很大可能开涨一波。

  • 一年后回来发帖,我的情况更加糟糕了,想从事开发,跪求指导。 at June 28, 2017

    背了二十五万卡债。。千万不要滚成高利贷了,你很危险呀,赶紧先还了。

  • 苏州昆山招聘 Ruby On Rails 工程师 at June 11, 2017

    难得看到昆山的工作,友情顶一下。我估计难招,会 ruby 的人不太会跑昆山,上海的人看不上这个工资。

  • [美国远程全职] 艾迪福克斯 1 名 Ruby 高级工程师,1 名 C# 高级工程师 at May 25, 2017

    @nikoloss Hi, 你好,我们工作经常英文开会,还是需要听说的能力的。

  • 互联网公司办公环境的重要性 at May 14, 2017

    你道出了一个非常可怕的现实:

    • 我们知道:办公环境能促进程序员的产出
    • 同时:老板并没有很热衷改进办公环境
    • 所以:老板并不是很在乎程序员的产出

    也就是说,程序员在整体业务里面,并不是核心需要推动的因素。

  • 互联网公司办公环境的重要性 at May 14, 2017

    玩了大概 6 年了吧

  • Ruby 需要一个静态类型验证系统 at May 09, 2017

    打了补丁的部分可以跳过不做类型检查嘛。给个报警之类的。

  • [美国远程全职] 艾迪福克斯 1 名 Ruby 高级工程师,1 名 C# 高级工程师 at May 05, 2017

    还在招聘中,快快投简历。

  • 互联网公司办公环境的重要性 at May 04, 2017

    还好,就是隔音成问题,影响开会

  • 互联网公司办公环境的重要性 at May 02, 2017

    都不是好的办公环境,好的办公环境是一个人一个单间,保证不影响工作,开会到外面会议室开。 我这种才是最好的办公环境。封闭,安静,没其他干扰因素(唯一的缺陷是门不太隔音不过不要紧我买了隔音耳塞)

  • 我该不该走 at May 02, 2017

    有诚意的老板不会不发工资,真没钱不可以多办几张信用卡,房子抵押掉付工资呀。楼主明显被忽悠了。走完了之后发贴说一下这家公司的名字,让大家不要掉坑。

  • [美国远程全职] 艾迪福克斯 1 名 Ruby 高级工程师,1 名 C# 高级工程师 at May 02, 2017

    自己顶一下,我们还在继续招聘。

  • 说我最近关注 Crystal 的感受 at April 17, 2017

    OO 又是一个老话题了,编程范式跟着业务抽象来,什么合适用什么。比如 GUI 编程,没有 OO 怎么做?不要拿到锤子就把所有东西当钉子敲。通用编程语言应该支持所有编程范式。

  • 说我最近关注 Crystal 的感受 at April 16, 2017

    我最近安装了 Linux, 下面用了 prax.cr 这个替代 pow 的工具,它就是用 crystal 重写的。看看能不能解决我关注的 Ruby 缺少类型检查的 问题。

  • 现在国外服务器还有救么? at March 30, 2017

    新泽西节点。。。就算选美国你倒是找一个西海岸的 VPS 呀。

  • [美国远程全职] 美国艾迪福克斯 1 名 高级 Ruby 工程师,1 名 高级 C# 工程师  at March 27, 2017

    工资待遇是 13k 起,水平可以的话比这个高很多,具体看能力。

  • Ruby 需要一个静态类型验证系统 at March 21, 2017

    解析函数的阶段可以说是编译期。在这个阶段可以对函数代码进行优化。不过 Ruby 实现不支持。。。

  • Ruby 需要一个静态类型验证系统 at March 21, 2017

    Ruby 语言的语法特性和执行方式其实是可以支持函数边界类型验证的(比如 Racket 就实现了),这个是属于可以做的事情。

  • Ruby 需要一个静态类型验证系统 at March 21, 2017

    C# partial 应该可以做到这一点。

  • Ruby 需要一个静态类型验证系统 at March 21, 2017

    C 语言特性以外的都不是必需品,但是作为现代通用编程语言,很多特性是保证开发效率和工程质量必须的。 烂语言有很多,比如 Autoit,PHP,Perl,都能用,但是烂。

    函数式,类型系统都是极大提升开发效率和质量的,作为通用编程语言,是必须有的特性,没有理由不加。

  • Ruby 需要一个静态类型验证系统 at March 20, 2017

    还是要用语言实现比较好。库写起来不好的。

  • Ruby 需要一个静态类型验证系统 at March 20, 2017

    实现类型验证的简单过程:

    # 定义函数需要加上类型
    define_function :calculate, [Array(A)] do |objects|
      lambda {
        objects.map{|o| count_method.call(o)}.sum
      }
    end
    def define_function(name, types)
      Function.new(method: block.call, types: types)
    end
    
    # 解析调用到这个函数的代码的时候,会进行类型验证
    define_function :run do
      call_function(:calculate, :objects)
    end
    def call_function(func_name, args)
      func = get_function(func_name)
      type_checking(func, args)
      lambda { func.call(args) }
    end
    
    # 类型验证会去检查是否函数是否支持该类型,不支持的话就报错
    def type_checking(func, args)
      func.types.each_with_index do |type, i|
        unless args[i].kind_of?(type)
          raise TypeError
        end
      end
    end
    
    
  • Ruby 需要一个静态类型验证系统 at March 20, 2017

    因为我就写了一句话,不明白是正常的。举个例子:

    def calculate(objects)
      objects.map(&:count).sum
    end
    
    class A
      def count; rand; end
    end
    
    class B
      def count; 10; end
    end
    
    calculate(12.times.map{A.new})
    calculate(12.times.map{B.new})
    

    在 ruby 里面,calculate 就不晓得传进来的是什么东西,只会把 count 消息传给 object,让 object 返回结果,object 本身要实现接收:count 然后执行对应方法的过程。

    • 优化 1: 假设传进来的 objects 都是同样的类型,我们可以先取得 count_method,这样不需要 object 动态查找 count 的 method。

      def calculate(objects)
      # 假设objects都是同样类型
      count_method = objects.first.class.get_method(:count)
      objects.map{|o| count_method.call(o)}.sum
      end
      
    • 优化 2:宏编译优化,查找 count_method 的过程在编译期的时候就完成了。

      def create_calculate(klass, objects)
      count_method = klass.get_method(:count)
      lambda { |objects|
      objects.map{|o| count_method.call(o)}.sum
      }
      end
      

    calculate_method = create_caculate(A) calculate_method.calculate(objects)

    
    上面这两个优化可以提升很多的效率。要知道代码里面大多数的东西都是在方法调用来调用去。
    
    
  • Ruby 需要一个静态类型验证系统 at March 20, 2017

    很明显是执行的时候才会猜类型呀,能够动态定义函数,同时函数本身不带有类型信息,那么只能在执行时才可以知道传进来的参数类型。 我觉得你以为实现的方式是:函数是一个模板,类似:func(T arg),当然不可能是这样的。

  • 1
  • 2
  • 3
  • …
  • 24
  • 25
  • Next
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English