`
dtzq01
  • 浏览: 6469 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

磕磕碰碰,勉强过关

阅读更多
今天客户过来,面试了一下,技术上的问题居然基本都没有答上,自己很不满意啊。

下面是提的一些问题:
TCP/IP的七层网络模型是什么?
由于我之前提到了我看过TCP/IP协议,他于是问了下,哪知道我居然忘了,我说:“从下往上说,有物理层,链路层,网络层,传输层,会话层,应用层。少了一层……其实我比较熟悉的是五层模型,哎,失误啊!

正确的七层模型是:
物理层,链路层,网络层,传输层,会话层,表示层,应用层。

Module你知道吧,应该怎么使用它呢?
有两种使用方法,一是定义在类内部的,二是通过外部引用使用(extend)。我忘记内部的类怎么使用它……
参考:
1. ruby只是简单的产生一个指向模块的引用,用include可以使用,但是如果模块如果在另外的文件,需要先使用require将文件加载进来。
2. extend的使用方法也和include类似,不过一个是内部,一个是外部。具体的见例子:
module A 
  def test
    puts 1
  end
end
class B
  #在定义类的使用mixin模块
  include A
end
b = B.new
b.test

c = String.new
c.extend(A)
#把模块当中的实例方法添加到c当中
c.test



Duck Typing能解释下么?
这个我在programming ruby里面看到过,记得不太清楚了。就是如果它像鸭子一样呱呱的叫,我们就把它当鸭子一样的处理。然后让我举个例子,后面我就尴尬了
参考:
Duck Typing只需要记住一件事,对象的类型只根据它能做什么而不是它的类来确定的。
举个例子,如果要把歌曲信息添加到一个字符串里面去,通常会这样写:
def append_song(result, song)
    if !result.kind_of?(String)
        fail TypeError.new("String expected")
    end
    if !song.king_of?(Song)
        fial TypeError.new("Song expected")
    end
    
    result << song.title << "-" << song.artist
end

如果使用Duck Typing来编写的话:
def append_song(result, song)
  result << song.title << "-" << song.artist
end


我们忽略对象的类,以对象的能力(是否支持<<)来判断是不是duck,如果是,一切都可以正常运行,否则的话,也会抛出异常。省略检查类型会让代码变得非常灵活。
0
5
分享到:
评论
2 楼 dtzq01 2011-04-26  
cxh116 写道
从应用上面来讲,include 主要用来添加实例方法
extend 主要用来添加类方法 也就是单键方法

  第一个问题没有什么实际作用

第一个问题主要是因为我说了下我在做manual测试的看了一下TCP/IP协议,分析过IP log来定位问题
1 楼 cxh116 2011-04-25  
从应用上面来讲,include 主要用来添加实例方法
extend 主要用来添加类方法 也就是单键方法

  第一个问题没有什么实际作用

相关推荐

    使用Frontier4.1做随机前沿引力模型的相关资料和操作步骤及假设检验

    在整个论文写作过程中,收集了许多关于随机前沿引力模型的教学方法,从一开始对随机前沿引力模型的一窍不通,到最终作出实证,完成论文顺利毕业,一路也是磕磕碰碰,这里将我搜集的资料进行了汇总和整理,想为之后...

    已验证可用的bootstrap报表导出插件

    这个插件本身不复杂,但在使用过程中磕磕碰碰遇到了超级多的问题麻烦,用了三天时间才彻底解决理清。 很坑爹,总结下来就是:有关bootstrap的文件,就算在官网下载的css、js,也95%存在问题。 这几天的问题全部都...

    iOS开发的最佳实践

    当你尝试在真机上跑程序时难免会磕磕碰碰。这份持续更新的文档就是你的救星!无论你是Cocoa王国的新手,或是老练到只想知道"最佳做法"是什么,这份文档都值得一读。当然,内容仅供参考,你有理由采取不同的做法只要...

    RabbitMQ实战视频.zip

    对于消息中间件,目前在企业级应用以及微服务应用跟分布式系统应用还是相当广泛的,但是有时候有些童鞋苦于没有入门以及实战的视频教程指导而磕磕碰碰了许久。在此,我精心录制的这一套视频教程将几乎手把手指导大家...

    saolei.rar

    自制的一个扫雷小游戏。winders 没有 自己写了一个,纯的js来实现的,初学者打发时间写到。磕磕碰碰就写了一个功能已经完成的扫雷小游戏。

    四年级上册品德与社会每天都有好心情∣科教PPT学习教案.pptx

    首先,PPT提到了生活中的小冲突,比如“牙齿碰舌头,锅碗碰着勺”,比喻人们在生活中难免会遇到磕磕碰碰。这是在引导孩子们理解,生活中的一些小误会和不愉快是正常的,不必为此过于生气或烦恼。课程鼓励孩子们保持...

    易语言-E2EE做的一个预约网站

    因为单位有个项目上线,领导要求做一个...抄袭了很多前辈的代码,一边百度一边在问答区问,磕磕碰碰的写出来了.内容非常新手,就一个预约功能和数据汇总.涉及E2EE,sqlite,libxl.dll,和TX云短信.有设计不合理的地方请指正.

    妙用.htaccess隐藏网页文件扩展名

    在我经过无数次HTTP 500后,磕磕碰碰折腾出以下7行代码,也是使用.htaccess的URL Rewrite(URL重写)实现的,同样适用于其他文件扩展名: 代码如下:Options +FollowSymlinks RewriteEngine On RewriteBase / ...

    家有三辆车作文.doc

    孩子在游戏中可能会遇到磕磕碰碰,但他们总能迅速恢复,继续奔跑。这种生动的自我认知,体现了孩子在家庭中的活力源泉和快乐氛围。 这篇作文通过车辆的比喻,展示了家庭生活的多样性和每个成员的独特性。它强调了...

    详解Vue路由开启keep-alive时的注意点

    当然,干任何事儿都不会一帆风顺的,在路上的磕磕碰碰在所难免,故在此记录下遇到的问题,希望看到这篇文章的人能有所帮助。ps:这个也没多难。 HTML部分: &lt;router&gt;&lt;/router&gt; JavaScript部分:

    E2EE做的一个预约网站-易语言

    抄袭了很多前辈的代码,一边百度一边在问答区问,磕磕碰碰的写出来了.内容非常新手,就一个预约功能和数据汇总.涉及E2EE,sqlite,libxl.dll,和TX云短信.有设计不合理的地方请指正.  开源大赛重在参与,如果正好有需要的...

    小学四年级上册品德与社会对自己说不要紧PPT教案.pptx

    接着,课程强调了生活中磕磕碰碰的常态,比如"牙齿碰舌头,锅碗碰着勺",提醒孩子们对待这些小事要有豁达的态度,学会说"对不起",以化解可能出现的摩擦。案例中小美和琦琦的故事进一步深化了这一主题,通过角色扮演...

    浅谈vuepress 踩坑记

    恰好最近需要为一些组件写文档,就动手撸了一波,毕竟刚发布,遇到不少坑,最终还是磕磕碰碰的运行起来了,为了避免大家踩同样的坑,特意将搭建的过程记录下来,分享一波。 以下是几个已知的问题 因为util.promisify...

    CC3D的两大飞行模式的原理详细说明

    笔者是CC3D开源飞控入门玩家,遇到过不少磕磕碰碰。所以写此文以记之,一是梳理一下遇到的问题及对策,二是希望帮到一些入门玩家。   OpenPilot是CC3D的官网,截止至现在(2016年1月6号),只能访问主页,...

    Windows上安装Apache2、PHP5、MySQL5及与Resin配合实现多系统之整合

    谁知坎坷颇多,故觉得有必要记录下来,一来为了备忘,二来希望对后来者有所助益,避免走不必要的弯路。本人的安装操作过程也参考了很多前辈们的经验,在此一并表示感谢...以下流程笔者走了不下10余次,其间磕磕碰碰、反

Global site tag (gtag.js) - Google Analytics