• 关于 ruby 当中的 self at 2019年08月11日

    类方法,你可以认为它类似C++,C#或者Java里面的类里面的静态函数,它为所有类实例可见,无需实例化类对象就可以使用了

    $ cat a.rb
    class A
      def self.x
        p self
      end
    end
    A.x
    A.new.x
    $ ruby a.rb
    A
    a.rb:7:in `<main>': undefined method `x' for #<A:0x00000001a83f58> (NoMethodError)
    
  • 必然会越来越像 leetcode.

  • 另外从 Ruby 程序员修炼之道一文中也提到,load 可以辨识当前工作目录,require 确不行,比如 load "xxx.rb"可正常编译,而 require "xx.rb"不可以编译通过,需要改为 require "./xx.rb"或者全路径模式,还有一个 require_relative 也很好用

  • 讲得很清楚了,谢谢

  • 良心公司啊

  • 好的,谢谢您

  • 那你现在一般就是自己随便画一下或者本子上写一下就开始搞对吧。

  • 直接用 PPT 或者 word 画?

  • 所以事实上,在做我们这个方向的软件的时候,是常常让各个模块把自己内部的数据信号拉出来的,这样在调设备或者芯片的时候,为区分是硬件问题还是软件问题留下足够的证据。不然扯起皮来没完没了。

  • 这个我肯定是同意你的说法的,有问题张口就问是很遭人讨厌的,有问题了,先自己想想是不是自己的问题,一般而言 80% 都是自己的理解问题,10% 是文档说明没说清楚发生歧义,10% 是别人的问题。10% 是别人的问题的,也需要提问者拿出足够的证据从侧面证明是开发者的问题,这样开发者一下就能明白自己的问题是在哪,很高兴的去处理。 在这句“不如有经验的同事告诉你怎么回事来得快”是指,比如你看到同事在用某款软件时,非常快速的用一个快捷键搞定问题,你可以问他比去翻软件使用手册快,再比如对于多态,接口,虚拟继承理解不够深刻,拿出问题来问,资深程序师给出的理解会比书本给你的更深刻。 至于 bug 或者 issue,回到第一段处理方式。

  • 贵不贵啊,自己掏银子,太贵还是不舍得的。哈哈

  • 谢谢,我想写一个设备运行监控程序,监控数据上传服务器,免得每次测试 PC 端软件都还要等着第二天来看设备运行状态。

  • 没有,身边做了很多年的基本上都是10y+的AE(应用工程师)或者模拟设计工程师,手边都会有一本模拟电路(清华版,绿色的)。10Y+的MCU开发工程师手边都是一般谭浩强的C语言基础。那我们写C++,C#的一般都是深入浅出MFC(侯俊杰)。这么多年也没发现更好的。

  • 我也不熟悉互联网方面的技术,只是纯从这么多年学习经验来看的话,人的精力都有限吧,把一个细分领域做好,做到专业就难能可贵了,全面铺开而深入有点难度。

  • 我说很多人都是我老师,厉害的人物,我只是个打嘴炮的,这个没有误伤谁呢。

  • 编程语言不光光只是计算机专业学的,电子,自动化等专业也会学习如 C 语言,汇编,C++ 程序设计之类的语言,那以我们电子系专业而言,还有单片机原理,数模电,信号分析与线性系统等,那最后你走哪个方向才会深挖。我们同学有的做销售了,那就看鸡汤书籍,做应用工程师或者半导体了,数电模电书就要一直拿着翻了,做单片机那汇编语言,c 语言就是常备书籍,做 PC 端就是 C++,C#,更多是看网络解决方案,如登录 stackflow, csdn 等网站需求解决方案了。 所以关键不是你是否是计算机或者非计算机专业的,而是需要看你走哪个方向,细分,很多理论性的东西,会把你看得头晕目眩,最后工作中可能只用到那么 10%,而且还不如有经验的同事告诉你怎么回事来得快。 所以找准你要走的方向,再去看看相关基础书籍,大部头,纯理论的东西没必要看太多,所谓纸上得来终觉浅,做过才晓得。也就是这个道理。 ruby 这块坛子里很多人是我老师,吹牛逼我是老师了,哈哈。

  • 服务器是自己买的么?最近想搞个服务端,与 PC 端交互

  • rails 关于 css 引入的问题 at 2019年07月09日

    有点疑问是,css 用 require? scss 用@import?,还是都可以用呢?

  • import scss 文件,测试了一下,有效果。

  • ruby 官方文档没有这种树形继承结构图么?C++,C#,java 直接跟你拉出来了。

  • 事实上,现在没有太多的程序员钻研的这么深刻了,都是拿着能用,能开发就好,内存管理需要回到最基础的计算机组成原理,汇编等基础语言上。如果开发过 C 语言,单片机会更深刻一些,当然如果开发过 SDK,Drive 也会感触颇多。

  • 从C++以及C#语言,主要是内存,堆栈概念来看,类对象方法以及属性只是当这个类对象内存被分配之后,即实例化后存在的,那么事实上,只要提及类对象的方法,一般都是实例化的,跟随内存分配而存在,跟随内存销毁而消失。因此一旦类对象被干掉,所谓的方法以及属性只是一堆符号。 全局方法及属性,如果在自己定义的框架中,是可以强制内存分配的,全部类可见,可用,不会随类对象销毁而销毁。怎么说,还是到内存里面去了,这个内存就当SDK启动就一直存在了。如果我们常用的int,double,byte等,你用它就存在,当然貌似ruby把这些也当做对象在看,而C,C++,C#只是临时给它们分配一些内存。 可能没有说清楚,呵呵,权当看看

  • 插句嘴,是否会存在全局静态函数?

  • bootstrape-sass 如何快速开发 at 2019年07月07日

    谢谢您的耐心回答,我是一个人独立学习 rails 中,所以有些不知所以然,以前都是写.net wpf,设备通讯软件的,公司也是芯片设计厂商,所以不熟悉网络编程。一直都在看 rails 感觉不入门,所以过来打扰一下大佬门了

  • bootstrape-sass 如何快速开发 at 2019年07月05日

    谢谢,那我懂了,我是说怎么 gem 里面又有 bootstrap-sass,还有 bootstrap-ruby 等,您这解释的很清楚了。另外多问一个问题,就是可视化 UIi 编辑器产生的 html,css 文件,html 可以直接放入 erb 文件下,css 文件我是直接放入 scss 文件么?还是将 scss 文件改为 css.scss 文件呢?然后 scss 文件和 css.scss 文件有啥区别啊,记得看过一篇文章说后者可以兼容 css 文件。

  • ActiveAdmin 中关联库调用 at 2019年07月01日

    More detail solution as following: Active Admin makes educated guesses when displaying objects.

    This is the list of methods it tries calling in order

    display_name full_name name username login title email to_s So, it works with categories since Category has :name attribute.

    For labels you can do the following:

    class Label < ActiveRecord::Base def display_name label_name end end You can also configure displayed names in ActiveAdmin initializer:

    ActiveAdmin.setup do |config|
    config.display_name_methods = [:display_name, :full_name, :name, ..., :to_s] end

  • ActiveAdmin 中关联库调用 at 2019年07月01日

    yes, you are right @pynix , i set the method with def display_name categoryprojectstring #the attribute on the has_many model
    end And now, the column work fine. thanks again.

  • ActiveAdmin 中关联库调用 at 2019年07月01日

    谢谢,我再查查资料,没用过这个方法

  • ActiveAdmin 中关联库调用 at 2019年06月30日

    看了 youtobe 上一位大牛的做法,发现他可以很轻松的实现这种模式,还是需要继续研究一下,重新开启一下

  • ActiveAdmin 中关联库调用 at 2019年06月30日

    还是重写了一把 index 实现了,先玩着吧,后面有精力再回头看看,谢谢

    index do column :id column :osdescribe column :osorder column :updated_at column :categoryproject do |osplatform| Categoryproject.find(osplatform.categoryproject_id).categoryprojectstring end actions end