由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 有关design的题目
相关主题
Re: 一个弱弱的CS Master找工作失败经历建筑专业 H1B转行可能吗
EE转CS可能吗?惠普/敏捷 Security Team 招人,有感兴趣的吗?
How to design Netflix?南加州招人,职位较高,有意者站内联系
Job Openings: Data Warehouse Architect/ETL/Business Objects Architect/DeveloperDesign Pattern 2: Procedural, OO and Functional programming
NYC midtown IT positions***********Vmware 招cloud infrastructure software engineer*****************
[Apple Jobs]software, optics, mechanics, ee, camera, display[Seattle Job Opening] Public Cloud Chief Architect
Google onsite求助.NET Architect Houston, TX.
IT system design/architect manager (pre-sales)的职位怎么设计电话本的通配查找
相关话题的讨论汇总
话题: design话题: functional话题: 轮子话题: 设计话题: 好友
进入JobHunting版参与讨论
1 (共1页)
d****n
发帖数: 2
1
那个f design的帖子看了一下,但感觉内容太宽泛,看完之后还是没有什么心得,不知
道该从那个角度说起,都该说些什么。
马上就好onsite了,请教几个design的问题:
1. Design a key-value store.
2. Design Google search
3. Architect a world-wide video distribution system
4. Build Facebook chat
5. Design News Feed
请教该如何回答以上题目呢?多谢。。。
j****y
发帖数: 684
2
你就不能自己google下,随便google都有比较详细的,比那个帖子详细的。当然有些你
可以找中文的,很多中文技术blog写的更好其实。
我就问你,你准备让别人怎么回复你,这下面每个问题要写估计都能写很多,都给你存
档,发email啊。

【在 d****n 的大作中提到】
: 那个f design的帖子看了一下,但感觉内容太宽泛,看完之后还是没有什么心得,不知
: 道该从那个角度说起,都该说些什么。
: 马上就好onsite了,请教几个design的问题:
: 1. Design a key-value store.
: 2. Design Google search
: 3. Architect a world-wide video distribution system
: 4. Build Facebook chat
: 5. Design News Feed
: 请教该如何回答以上题目呢?多谢。。。

j**********3
发帖数: 3211
3
太不好意思了。。。对不起楼上阿。。我刚想跟贴说,我也不会。。。
o***g
发帖数: 2784
4
乱喷几句设计问题
设计这个应该算是软件工程范畴的内容,如果不是科班出身的人,对这个可能都不是很
了解
即便科班的同学,这门课可能也稀里糊涂的就过去了
其实课本上讲的东西也没啥用,经验最有用。
设计包含的内容太丰富,课本上也会分为系统设计和详细设计两个,但是题目中似乎从
class design到architect design都有,甚至还有product design,他们之间其实没有
太明显的边界。而设计的结果一般也没有明确的哪个更好,总是在做各种tradeoff。实
际工作中被定下来的设计一般也不一定就是最优的设计。
做设计之前要先定需求。虽然实际上需求是很难定下来的。我的意思是它总有各种变动
。但是还是需要定。需求分为功能性需求和非功能性需求。功能性需求一般课本上用
user case来表示。非功能性需求就是各种-bility,还可能有各种限制,比如budget各
种resource。
我知道对想知道怎么搞设计的人,现在又冒出来这些需求的概念,挺烦的。通俗点儿说
,就是需要站在一个使用者的角度,看你要设计的系统是一个黑盒子,想想你要怎么使
用这个系统,对它的各种输入,期望有怎样的输出。
to be continued

【在 d****n 的大作中提到】
: 那个f design的帖子看了一下,但感觉内容太宽泛,看完之后还是没有什么心得,不知
: 道该从那个角度说起,都该说些什么。
: 马上就好onsite了,请教几个design的问题:
: 1. Design a key-value store.
: 2. Design Google search
: 3. Architect a world-wide video distribution system
: 4. Build Facebook chat
: 5. Design News Feed
: 请教该如何回答以上题目呢?多谢。。。

z****e
发帖数: 54598
5
re

【在 o***g 的大作中提到】
: 乱喷几句设计问题
: 设计这个应该算是软件工程范畴的内容,如果不是科班出身的人,对这个可能都不是很
: 了解
: 即便科班的同学,这门课可能也稀里糊涂的就过去了
: 其实课本上讲的东西也没啥用,经验最有用。
: 设计包含的内容太丰富,课本上也会分为系统设计和详细设计两个,但是题目中似乎从
: class design到architect design都有,甚至还有product design,他们之间其实没有
: 太明显的边界。而设计的结果一般也没有明确的哪个更好,总是在做各种tradeoff。实
: 际工作中被定下来的设计一般也不一定就是最优的设计。
: 做设计之前要先定需求。虽然实际上需求是很难定下来的。我的意思是它总有各种变动

d****n
发帖数: 2
6

感谢提点!

【在 o***g 的大作中提到】
: 乱喷几句设计问题
: 设计这个应该算是软件工程范畴的内容,如果不是科班出身的人,对这个可能都不是很
: 了解
: 即便科班的同学,这门课可能也稀里糊涂的就过去了
: 其实课本上讲的东西也没啥用,经验最有用。
: 设计包含的内容太丰富,课本上也会分为系统设计和详细设计两个,但是题目中似乎从
: class design到architect design都有,甚至还有product design,他们之间其实没有
: 太明显的边界。而设计的结果一般也没有明确的哪个更好,总是在做各种tradeoff。实
: 际工作中被定下来的设计一般也不一定就是最优的设计。
: 做设计之前要先定需求。虽然实际上需求是很难定下来的。我的意思是它总有各种变动

f********x
发帖数: 2086
7



【在 o***g 的大作中提到】
: 乱喷几句设计问题
: 设计这个应该算是软件工程范畴的内容,如果不是科班出身的人,对这个可能都不是很
: 了解
: 即便科班的同学,这门课可能也稀里糊涂的就过去了
: 其实课本上讲的东西也没啥用,经验最有用。
: 设计包含的内容太丰富,课本上也会分为系统设计和详细设计两个,但是题目中似乎从
: class design到architect design都有,甚至还有product design,他们之间其实没有
: 太明显的边界。而设计的结果一般也没有明确的哪个更好,总是在做各种tradeoff。实
: 际工作中被定下来的设计一般也不一定就是最优的设计。
: 做设计之前要先定需求。虽然实际上需求是很难定下来的。我的意思是它总有各种变动

o***g
发帖数: 2784
8
继续喷
非功能性需求在这里有个不完全列表
http://en.wikipedia.org/wiki/Non-functional_requirement
希望能有大牛能针对其中一二讲讲经验,很多东西,如果没有经验的话,光拿名词出来
都不知道具体指的是什么,而且很多没有经验的话,都不知道从何下手,需要做哪些额
外工作来满足这些需求
实际工作中,尤其是面试里,就不用拘泥于功能性和非功能性啦,有些情况写在一起也
正常。但所有的你能想到的情况问的越详细越好,工作中很多东西最好是反复确认,这
样能够保证客户和你脑袋里想象的东西是一样的。
下面就楼主的几个例子来说明一下,需求到底要弄些啥
楼主提到的f design,我搜了一下,就找到这个帖子
http://www.mitbbs.com/article_t/JobHunting/32466401.html
需求最重要的是要问清,寻找的人名的范围如何确定,是只有好友里?还是包括好友的
好友,还是所有用户?他们之间有严格的优先级么?比如好友的优先级全部大于好友的
好友?这些问题的答案直接影响设计的可能性。比如如果只在好友和好友的好友里找。
然后可以问,平均一个人的好友有多少?我估计30-50?,那一共也就3000人的样子,
人名加起来也就几十K。这样就可以都传到客户端去找。而且焦点到了输入框的时候就
可以开始传这些数据了,一般人都是用鼠标点输入框,然后手移到键盘大概有0.3-0.5
秒的时间,这些数据可能就都到了。然后就都是在客户端的搜索,用户体验好。如果用
户每输入一个字符都要往server发一个请求的话,这个要求太高了,人可能一下在0.5
秒里输入三四个字符。如果需求是在所有人里搜索,那就只能在服务器端折腾了。这时
就得想怎么准备成品半成品数据了,因为直接每次都从所有用户里算这5个人实在是不
现实的。
还有fistname lastname有什么规则
还有有可能用户会删除,还需要在客户端做cache。因为删除了后面的字符,前面的字
符串的结果刚才已经算过了,就直接显示就好了,不需要再问服务器要了。
其实你会发现,这个题跟怎么找到这5个人的算法没太大关系。只是一个算法,就一个
函数,有人看着不爽再重新实现一遍就好了,但是所有相关的数据流相关的操作等以后
是很难改的。
一个题就写了这么多,明天继续吧

【在 o***g 的大作中提到】
: 乱喷几句设计问题
: 设计这个应该算是软件工程范畴的内容,如果不是科班出身的人,对这个可能都不是很
: 了解
: 即便科班的同学,这门课可能也稀里糊涂的就过去了
: 其实课本上讲的东西也没啥用,经验最有用。
: 设计包含的内容太丰富,课本上也会分为系统设计和详细设计两个,但是题目中似乎从
: class design到architect design都有,甚至还有product design,他们之间其实没有
: 太明显的边界。而设计的结果一般也没有明确的哪个更好,总是在做各种tradeoff。实
: 际工作中被定下来的设计一般也不一定就是最优的设计。
: 做设计之前要先定需求。虽然实际上需求是很难定下来的。我的意思是它总有各种变动

z****e
发帖数: 54598
9
functional就是可行不可行
non-functional就是可行之后,要达到什么标准
还有一个domain,这个就是专业上的东西,比如什么颜色好看
红色,绿色,蓝色?这个就是domain
项目胜负关键在non-functional
一般functional的分析在可行性分析阶段就会完成
就像你要找人给你做软件,让软件送你上火星,这个目前没有办法完成
这个就是functional不可行,但是一般人找你做的软件,都属于functional可行
但是要达标,达标的部分都是non-functional
比如系统响应时间要控制在多少ms以内
系统要能同时承受多少用户访问
这种都是non-functional
non-functional的优化有一个指导原则
就是在functional阶段先堆轮子,然后看轮子是否健壮
当轮子实在是撑不住的时候,你再调整/优化,这个一般能搞定90%的需求
所以优化第一原则,不要优化,因为优化会使得代码可读性下降
增加将来项目失败的可能,所以能不优化就不优化
第二原则,看看是否有更好的轮子,如果有,坚决用更好的轮子
这两条都不具备,你再自己去造轮子,造轮子的成本及其高昂,一般小公司根本顶不住
而且很容易受到开源的冲击,轮子都是可以复用的
所以你可以理解为啥我不从array开始写了,能堆轮子我一定堆轮子
也能解释为啥有些东西有的人写了800行,而别人未必用800行,可能8行就搞定了
这个一般给会java的人说比较容易懂,软件工程都用java做入门语言
减少各种干扰,否则思维方式就很容易定型,要改起来很难,人是习惯动物
java这个东西就是从人月神话那本书开始推广的
没有银弹是软件工程的圣经,不过这些东西理论说起来是让人觉得有些扯蛋
实际动手干活体会更深,尤其是找一些项目,多死几次,多搞几次通宵
就知道为啥有些语言不行,光说没用,大多数人都是记吃不记打
我也是擦了n个屁股之后,慢慢领悟的
但是话也说回来,一般面试的design题,光堆轮子肯定是不够的
对方一般也会追问轮子是如何操作的,所以还是要懂原理

【在 o***g 的大作中提到】
: 继续喷
: 非功能性需求在这里有个不完全列表
: http://en.wikipedia.org/wiki/Non-functional_requirement
: 希望能有大牛能针对其中一二讲讲经验,很多东西,如果没有经验的话,光拿名词出来
: 都不知道具体指的是什么,而且很多没有经验的话,都不知道从何下手,需要做哪些额
: 外工作来满足这些需求
: 实际工作中,尤其是面试里,就不用拘泥于功能性和非功能性啦,有些情况写在一起也
: 正常。但所有的你能想到的情况问的越详细越好,工作中很多东西最好是反复确认,这
: 样能够保证客户和你脑袋里想象的东西是一样的。
: 下面就楼主的几个例子来说明一下,需求到底要弄些啥

1 (共1页)
进入JobHunting版参与讨论
相关主题
怎么设计电话本的通配查找NYC midtown IT positions
问google designer / user experience 的面试[Apple Jobs]software, optics, mechanics, ee, camera, display
on-site individual interview 时怎么称呼对方呢?Google onsite求助
请帮忙作个SQL的题目IT system design/architect manager (pre-sales)的职位
Re: 一个弱弱的CS Master找工作失败经历建筑专业 H1B转行可能吗
EE转CS可能吗?惠普/敏捷 Security Team 招人,有感兴趣的吗?
How to design Netflix?南加州招人,职位较高,有意者站内联系
Job Openings: Data Warehouse Architect/ETL/Business Objects Architect/DeveloperDesign Pattern 2: Procedural, OO and Functional programming
相关话题的讨论汇总
话题: design话题: functional话题: 轮子话题: 设计话题: 好友