avatar
求助 router ac66u# Hardware - 计算机硬件
r*n
1
今天又被一道这种题目弄郁闷了,那人叫我OOD设计一个version control system,比如
就是SVN,怎么design? 我大致说job是个class, file是个class,然后不同的文件格式
可以subclass file, job里面可以包含check-in, check-out等methods;file里面
property有content,version#,有个compare method等。然后,他问如何实现svn
status功能,我就说可以把两个file vector中的file进行比较,返回有修改的file
list。似乎还问了如何实现branch功能,总之最后似乎电面的人十分不满意我的答案,
直接说“that's not what I expect to hear. wish you good luck in job hunting,
blablabla” ......
的确不太会答这类题。因为这类题目太含糊,店面时,基本都是说完题目,我基本也得
马上回答。所以我一般都是挑出几个最明显的component,说这几个东西要成为class,
大致说下可以有一些property(name,age, color etc..), methods(set, get和特别明
显的需求)。然后就开始想有没有subclass,表明我知道inheritage,polymorphism的
概念;假如有公有资源,就会说是否要加上mutex。除此之外,往往就不知道咋想了。
各种design pattern大致也知道些,不过总觉得这时候不太容易一下子,把一个具体的
design题扯到pattern上。
不太清楚interview到底想听到啥关键字之类的,有大牛能以SVN这题为例讲讲不?
avatar
c*2
2
如果一方stuck住了,会影响另外一方的进度吗?
谢谢。
avatar
R*n
3
【 以下文字转载自 JobHunting 讨论区 】
发信人: liuliu07 (柳柳), 信区: JobHunting
标 题: 女生裸奔去加州找工作有优势么?
发信站: BBS 未名空间站 (Fri Mar 26 16:14:30 2010, 美东)
所在州根本就没太多Engineering的公司,有也不招fresh graduate。
听说加州很多entry level的工作,要不要裸奔过去找,好多人都这样做。
另外,我要找的工作是关于Junior Java Developer的,加州好些,还是NYC好些。
avatar
m*i
4
请问版上同学
我有一台ac66u,设置了asus的ddns想从外网通过hostname访问自己的路由。结果在外
网一试,根本访问不了。
自己尝试把router的firewall关了,就可以访问了。但是不想关掉firewall因为挂着u
盘不想冒风险。
现在问题是,怎么能既开着firewall,又能从外网访问我的router呢?我试过port
forwarding,不知为什么不好用(80端口,http)
哪位同学有经验啊,谢谢了
avatar
f*t
5
帮忙re

system,比如
文件格式
file里面
现svn
file
案,
job hunting,

class,

【在 r******n 的大作中提到】
: 今天又被一道这种题目弄郁闷了,那人叫我OOD设计一个version control system,比如
: 就是SVN,怎么design? 我大致说job是个class, file是个class,然后不同的文件格式
: 可以subclass file, job里面可以包含check-in, check-out等methods;file里面
: property有content,version#,有个compare method等。然后,他问如何实现svn
: status功能,我就说可以把两个file vector中的file进行比较,返回有修改的file
: list。似乎还问了如何实现branch功能,总之最后似乎电面的人十分不满意我的答案,
: 直接说“that's not what I expect to hear. wish you good luck in job hunting,
: blablabla” ......
: 的确不太会答这类题。因为这类题目太含糊,店面时,基本都是说完题目,我基本也得
: 马上回答。所以我一般都是挑出几个最明显的component,说这几个东西要成为class,

avatar
d*l
6
主申请人影响副申请人
副申请人不影响主申请人
avatar
c*1
7
先网上找,打电话问,然后phone interview,找到了再搬家过来呀。
我看GOOGLE Santa Monica 最近在招JAVA的,去查查看啦
avatar
m*i
8
问题解决了。。。
这个挨千刀的Asus,在administration--system页面里藏了个button,设置web access
wan..... 顿时觉得自己参与了一次藏宝活动。。。
记录一下,和我一样遭受痛苦的同学这个帖子或许会有帮助

u

【在 m*******i 的大作中提到】
: 请问版上同学
: 我有一台ac66u,设置了asus的ddns想从外网通过hostname访问自己的路由。结果在外
: 网一试,根本访问不了。
: 自己尝试把router的firewall关了,就可以访问了。但是不想关掉firewall因为挂着u
: 盘不想冒风险。
: 现在问题是,怎么能既开着firewall,又能从外网访问我的router呢?我试过port
: forwarding,不知为什么不好用(80端口,http)
: 哪位同学有经验啊,谢谢了

avatar
s*n
9
傻逼公司出的傻逼题目。没有OOA这么大的系统怎么做OOD? 而且电门里面怎么好交流?

hunting,

【在 r******n 的大作中提到】
: 今天又被一道这种题目弄郁闷了,那人叫我OOD设计一个version control system,比如
: 就是SVN,怎么design? 我大致说job是个class, file是个class,然后不同的文件格式
: 可以subclass file, job里面可以包含check-in, check-out等methods;file里面
: property有content,version#,有个compare method等。然后,他问如何实现svn
: status功能,我就说可以把两个file vector中的file进行比较,返回有修改的file
: list。似乎还问了如何实现branch功能,总之最后似乎电面的人十分不满意我的答案,
: 直接说“that's not what I expect to hear. wish you good luck in job hunting,
: blablabla” ......
: 的确不太会答这类题。因为这类题目太含糊,店面时,基本都是说完题目,我基本也得
: 马上回答。所以我一般都是挑出几个最明显的component,说这几个东西要成为class,

avatar
a9
10
人笨怪刀钝

access
在外

【在 m*******i 的大作中提到】
: 问题解决了。。。
: 这个挨千刀的Asus,在administration--system页面里藏了个button,设置web access
: wan..... 顿时觉得自己参与了一次藏宝活动。。。
: 记录一下,和我一样遭受痛苦的同学这个帖子或许会有帮助
:
: u

avatar
m*2
11
为啥这公司傻逼?
这道题蛮好的啊
OOAD就是可以把复杂的东西Abstract了

【在 s*****n 的大作中提到】
: 傻逼公司出的傻逼题目。没有OOA这么大的系统怎么做OOD? 而且电门里面怎么好交流?
:
: hunting,

avatar
g*n
12
很贴切. ;)
这个选项可以有很严重的安全隐患, 如果默认打开的话 Asus 才该被骂.

【在 a9 的大作中提到】
: 人笨怪刀钝
:
: access
: 在外

avatar
c*t
13
帮顶,我也答不好OOD,是不是自己简单画一个UML会帮助理解一点?
记得看到一篇文章里面写的OOD四大原则就是找出entity, 分析每个entity对应method
, 设计子类继承,以及如果collaboration。
请指正:)
avatar
m*i
14
楼上两位有点不厚道
也怪自己没说清楚,不是说不应该有这个选项,而是这个选项应该放到wan那一大类里
面,而不是放到很笼统的adminstration,查查老版本的asus界面,这个功能的位置变
动很大。
avatar
f*4
15
做desgin的时候,最重要的是要了解客户(这里是面试的那人)到低要求是啥。你可以
说一下SVN有那些功能,然后问他你的desgin是否要全部cover这些功能。(一般情况,
一个面试的时间里面不可能把所有细节都cover到,别人会让你就某一个细节详细问的
)要是这些功能你不知道,你可以让人家解释一下。这个过程,是你了解需求的过程。
需求了解之后,你要做一些假设,比如这个系统是一个小系统,那就不需要对
scalability做考虑;大系统需要考虑scalability和performance(你可以先给出一个
可行方案,然后再改进;但是你一开始就提到你已经考虑这个问题了;这和后面别人反
问你scalability和performance怎么处理,你再改进是两回事了)
假设完之后,你需要把这个系统大体框架及各个部分的功能解释一边。比如,你的SVN
就压根没提到处理数据库的模块。。。
然后对主要模块进行类定义,函数定义。这里的定义,一定要cover到前面的需求。要
当心,在这个过程中,面的人完全会要一个新的功能,然后你的desgin解决不了。这个
时候,你前面的需求分析就起作用了——这是一个需求变更,所以,我需要重新desgin
我的方案。
如果这是一个onsite问题,在白板上大致写下讨论过程,类名成员变量,函数名;如果
是电话面试,那就必须和面的人来回的交流;而不是你自己blabla的说你认为的方案。
Good luck

hunting,

【在 r******n 的大作中提到】
: 今天又被一道这种题目弄郁闷了,那人叫我OOD设计一个version control system,比如
: 就是SVN,怎么design? 我大致说job是个class, file是个class,然后不同的文件格式
: 可以subclass file, job里面可以包含check-in, check-out等methods;file里面
: property有content,version#,有个compare method等。然后,他问如何实现svn
: status功能,我就说可以把两个file vector中的file进行比较,返回有修改的file
: list。似乎还问了如何实现branch功能,总之最后似乎电面的人十分不满意我的答案,
: 直接说“that's not what I expect to hear. wish you good luck in job hunting,
: blablabla” ......
: 的确不太会答这类题。因为这类题目太含糊,店面时,基本都是说完题目,我基本也得
: 马上回答。所以我一般都是挑出几个最明显的component,说这几个东西要成为class,

avatar
d*n
16
赞,省了我1小时找资料的时间。
avatar
c*t
17
赞细节! 请问一下,所谓的需求变更和重新设计,是不是涉及到refactoring、接口设
计和design pattern相关的知识呢?

SVN

【在 f****4 的大作中提到】
: 做desgin的时候,最重要的是要了解客户(这里是面试的那人)到低要求是啥。你可以
: 说一下SVN有那些功能,然后问他你的desgin是否要全部cover这些功能。(一般情况,
: 一个面试的时间里面不可能把所有细节都cover到,别人会让你就某一个细节详细问的
: )要是这些功能你不知道,你可以让人家解释一下。这个过程,是你了解需求的过程。
: 需求了解之后,你要做一些假设,比如这个系统是一个小系统,那就不需要对
: scalability做考虑;大系统需要考虑scalability和performance(你可以先给出一个
: 可行方案,然后再改进;但是你一开始就提到你已经考虑这个问题了;这和后面别人反
: 问你scalability和performance怎么处理,你再改进是两回事了)
: 假设完之后,你需要把这个系统大体框架及各个部分的功能解释一边。比如,你的SVN
: 就压根没提到处理数据库的模块。。。

avatar
f*4
18
需求变更是像这么个东西:
你一开始被要求设计一个手机,你设计了
结果人家说要这个手机能剃胡子,那这就是需求变更
refactoring象这么个东西:
你把你的车换了更好的轮胎,引擎,刹车
车还是车,只是内在更好了
接口设计像这么个东西:
你设计了个5叉插座,然后厂家都生产了5叉插头,产品大卖
然后,你突然要求修改5叉为6叉——你让人家已经生产的产品怎么办?剪掉插头,自己
再绑一个上去?(其实你也知道没这么简单的)
所有public出去的接口,等你再想修改的时候就没那么简单了(除非没一个人用过这个
接口)
design pattern就像说明书
告诉了你碰到啥样的情况,可以用啥样的办法来设计
其实,很多时候,系统要是根本就没有变化,根本不需要修改设计,不要做
refactoring的话,design pattern的最大优势根本体现不出来

【在 c******t 的大作中提到】
: 赞细节! 请问一下,所谓的需求变更和重新设计,是不是涉及到refactoring、接口设
: 计和design pattern相关的知识呢?
:
: SVN

avatar
r*n
19
多谢详细的回复。
我的理解你说的第一个design阶段,就是OOA。但是通常这里要求设计的对象,默认都
是大家都知道的东西,比如chess game, vending machine, SVN。所以基本的功能需求
,可以说是明确的,的确是可以跳过这一步。因为面试者基本也就是要的现有功能。我
之前碰到的面试者基本不会要你去做这种详细的analysis,基本就是上来就问有哪些key
class (fzzh24的意思是:我们应该把话题引到回功能需求的讨论?我觉得这样子往
往在店面时会耗太多时间吧。)。我觉得这块最难,因为每个class内具体的method,
attribute,会有很多很多,面试者似乎也不需要你把它们都说出来。所以,我觉得最
困难的就是如何想到把面试者想听到的这些key class全部报出来,是最关键的。接下
来的pattern, 通常简单的subclass, composition 就能搞定面试者的需求。要是面试
者这时候提出一些具体的feature,往往就是引导你往现有class里加method,或者希望
你提出一个新class,然后怎么class interaction。
我的理解最难的地方就是:对一个貌似熟悉的事物的design题上来,我们通常都是作为
用户来熟悉这个事物的。也就是我们只熟悉最后这个主class的public interface,但
是它后面需要哪些key support class,往往在店面听完问题1-2分钟马上开始说,很不
容易。比如你说的SVN后面有数据库的概念,我的确压根就没想到,或者说压根就不知
道。

SVN

【在 f****4 的大作中提到】
: 做desgin的时候,最重要的是要了解客户(这里是面试的那人)到低要求是啥。你可以
: 说一下SVN有那些功能,然后问他你的desgin是否要全部cover这些功能。(一般情况,
: 一个面试的时间里面不可能把所有细节都cover到,别人会让你就某一个细节详细问的
: )要是这些功能你不知道,你可以让人家解释一下。这个过程,是你了解需求的过程。
: 需求了解之后,你要做一些假设,比如这个系统是一个小系统,那就不需要对
: scalability做考虑;大系统需要考虑scalability和performance(你可以先给出一个
: 可行方案,然后再改进;但是你一开始就提到你已经考虑这个问题了;这和后面别人反
: 问你scalability和performance怎么处理,你再改进是两回事了)
: 假设完之后,你需要把这个系统大体框架及各个部分的功能解释一边。比如,你的SVN
: 就压根没提到处理数据库的模块。。。

avatar
f*4
20
数据库是SVN数据库,我也不知道svn到底是怎么存储的
OOA就是交流的过程,哪怕是电面也是这样
SVN的话,你可以说支持创建SVN数据库,支持文件add, commit,update,这是最基本
的功能了。这时候,面的人可能就要求你增加branch的概念。在OOA的时候就让他提出
来,比在最后追问好多了。

key

【在 r******n 的大作中提到】
: 多谢详细的回复。
: 我的理解你说的第一个design阶段,就是OOA。但是通常这里要求设计的对象,默认都
: 是大家都知道的东西,比如chess game, vending machine, SVN。所以基本的功能需求
: ,可以说是明确的,的确是可以跳过这一步。因为面试者基本也就是要的现有功能。我
: 之前碰到的面试者基本不会要你去做这种详细的analysis,基本就是上来就问有哪些key
: class (fzzh24的意思是:我们应该把话题引到回功能需求的讨论?我觉得这样子往
: 往在店面时会耗太多时间吧。)。我觉得这块最难,因为每个class内具体的method,
: attribute,会有很多很多,面试者似乎也不需要你把它们都说出来。所以,我觉得最
: 困难的就是如何想到把面试者想听到的这些key class全部报出来,是最关键的。接下
: 来的pattern, 通常简单的subclass, composition 就能搞定面试者的需求。要是面试

avatar
s*n
21
面试官:现在,你要做一个app,读入一个文件名,该文件可以是xml、excel表格、
blah blah(他一共举了四种不同的文件名),然后把它显示在一个窗口里。画出你需
要的模块来。
我:好的,我需要一个parse文件的模块,一个显示文件的模块……
面试官:假设这些你都已经有了。你有了四个API,可以分别读入并且parse我说的这四
种文件,你也有了一个API可以用来显示被parse好的文件。
看一个很适合电面的OOD例子。很小很具体。
如果你知道用polymorphism. good enough.
如果你知道在加上一个simple factory来最小化client side changes. almost
correct.
面管想扩展的话,还可以很多分支可以问。
而题目SVN这个问题,居然有人考虑到数据库这种实现层面的问题了。估计100个人有
100个回答方法。你说到底面试这人是知道还是不知道OOD呢?
A家就爱问这种傻比问题感觉还很好。类似的例子还有那个正则表达式查电话的问题。
人家不是不会,而是误解了你要问的问题。
avatar
f*4
22
都说了,数据库是SVN数据库。。。
英文叫做 SVN reposity

【在 s*****n 的大作中提到】
: 面试官:现在,你要做一个app,读入一个文件名,该文件可以是xml、excel表格、
: blah blah(他一共举了四种不同的文件名),然后把它显示在一个窗口里。画出你需
: 要的模块来。
: 我:好的,我需要一个parse文件的模块,一个显示文件的模块……
: 面试官:假设这些你都已经有了。你有了四个API,可以分别读入并且parse我说的这四
: 种文件,你也有了一个API可以用来显示被parse好的文件。
: 看一个很适合电面的OOD例子。很小很具体。
: 如果你知道用polymorphism. good enough.
: 如果你知道在加上一个simple factory来最小化client side changes. almost
: correct.

avatar
m*2
23
“估计100个人有
100个回答方法。你说到底面试这人是知道还是不知道OOD呢”
他只是想知道你的想法
there is no right or wrong answer.
I hope all interview questions are like this.

【在 s*****n 的大作中提到】
: 面试官:现在,你要做一个app,读入一个文件名,该文件可以是xml、excel表格、
: blah blah(他一共举了四种不同的文件名),然后把它显示在一个窗口里。画出你需
: 要的模块来。
: 我:好的,我需要一个parse文件的模块,一个显示文件的模块……
: 面试官:假设这些你都已经有了。你有了四个API,可以分别读入并且parse我说的这四
: 种文件,你也有了一个API可以用来显示被parse好的文件。
: 看一个很适合电面的OOD例子。很小很具体。
: 如果你知道用polymorphism. good enough.
: 如果你知道在加上一个simple factory来最小化client side changes. almost
: correct.

avatar
t*e
24
这个总结很好,要赞!设计类的面试问题对于有工作经验的申请者非常重要,很多时候
是区分
senior/junior level的分水岭。我也来分享一下最近碰到的A公司设计面试题。题目就
是设计类
似于ebay的bid功能。我感觉在解答这类问题之前一定要和面试官好好沟通,摸清楚对
方想要考察的
是哪个层面,最好按照top down design 的思路,首先保证大的方向是对方想要的。比
如这个问
题我一上来就按照OOD的思路列出backend部分需要的模块,以及各个object之间的
interaction,有了对象操作的定义如何设计文件存储结构等等。但是讲了一半发现面
试官想要的
其实是整体architecture的设计,类似于multiple tier system design,而不是只见树
木不
见森林的ADT描述。面试的时候碰到这类设计问题一定要问清楚specification和use
cases,否
则答非所问会给对方留下很不好的印象。但是话说回来,这类问题就像是高考中的作文
主观性太强,
一方面面试者需要有很好的积累,另一方面面试官也应该有很好的修养,懂得如何分别
对待面试者给
出的千奇百怪的解答。我在M公司工作做过不少设计,也参加过同事的design review,
我敢肯定地
说不同的review committee 对同一份design spec给出的feedback会截然不同,甚至在
很多
具体实现上会给出大相径庭的建议。关于准备这类问题的书籍,推荐"Agile Software
Development: Principles, Patterns and Practices",希望能有所帮助。

SVN

【在 f****4 的大作中提到】
: 做desgin的时候,最重要的是要了解客户(这里是面试的那人)到低要求是啥。你可以
: 说一下SVN有那些功能,然后问他你的desgin是否要全部cover这些功能。(一般情况,
: 一个面试的时间里面不可能把所有细节都cover到,别人会让你就某一个细节详细问的
: )要是这些功能你不知道,你可以让人家解释一下。这个过程,是你了解需求的过程。
: 需求了解之后,你要做一些假设,比如这个系统是一个小系统,那就不需要对
: scalability做考虑;大系统需要考虑scalability和performance(你可以先给出一个
: 可行方案,然后再改进;但是你一开始就提到你已经考虑这个问题了;这和后面别人反
: 问你scalability和performance怎么处理,你再改进是两回事了)
: 假设完之后,你需要把这个系统大体框架及各个部分的功能解释一边。比如,你的SVN
: 就压根没提到处理数据库的模块。。。

avatar
m*2
25
赞, exactly!

【在 t******e 的大作中提到】
: 这个总结很好,要赞!设计类的面试问题对于有工作经验的申请者非常重要,很多时候
: 是区分
: senior/junior level的分水岭。我也来分享一下最近碰到的A公司设计面试题。题目就
: 是设计类
: 似于ebay的bid功能。我感觉在解答这类问题之前一定要和面试官好好沟通,摸清楚对
: 方想要考察的
: 是哪个层面,最好按照top down design 的思路,首先保证大的方向是对方想要的。比
: 如这个问
: 题我一上来就按照OOD的思路列出backend部分需要的模块,以及各个object之间的
: interaction,有了对象操作的定义如何设计文件存储结构等等。但是讲了一半发现面

avatar
f*4
26
Agile处理需求变更,快速原型法都是非常强大——只要是客户,都会喜欢的
关于OOA和OOD还有一点,可能大家都没注意到的是:这问题问的人是一个什么角色
如果那个人是搞系统架构的,你要回答的几乎就是high level design的东西,具体实
现环节,可以大胆假设已经有相关模块了。需要注意的是,这个时候系统功能会显的更
重要。这里不但是现有功能还要对可预测的新政功能留下支持的余地。
如果那人是个project leader,他会更关心detail design的东西。也就是说,上面那
些你假设已经有的东西,这里可能会对某一些要求你进行设计。
如果那人是个Sr Engineer,他会更关心implementation design,包括函数接口,变量
,数据库实现,并发等等
给个极端的例子,我给一个mananger问到“如何才能把你thesis做的东西,转换成产品
,并且卖给客户”。我的回答是从技术上说的。人家最后只说了一句话“我会告诉他,
我这产品能帮你省钱/赚钱”

【在 t******e 的大作中提到】
: 这个总结很好,要赞!设计类的面试问题对于有工作经验的申请者非常重要,很多时候
: 是区分
: senior/junior level的分水岭。我也来分享一下最近碰到的A公司设计面试题。题目就
: 是设计类
: 似于ebay的bid功能。我感觉在解答这类问题之前一定要和面试官好好沟通,摸清楚对
: 方想要考察的
: 是哪个层面,最好按照top down design 的思路,首先保证大的方向是对方想要的。比
: 如这个问
: 题我一上来就按照OOD的思路列出backend部分需要的模块,以及各个object之间的
: interaction,有了对象操作的定义如何设计文件存储结构等等。但是讲了一半发现面

avatar
n*p
27
mark~~~~~~~~~~~~
avatar
b*j
28
这么好的thread为啥没mark?
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。