做项目时需要考虑的几个点

之前写过为啥需要做项目的文章,看这里:为啥要做项目 + 项目怎么学 + 问什么 + 怎么写

下面这篇说了在做项目时,你可以去思考的点。

现在大家应该也陆续做了项目,那关于如何做一个项目,其实一个项目中,有很多的东西,都不会在面试用上,有些人可能做了之后,也不知道自己学习了什么,下面我简单说一下,在我们做一个项目时,需要关注的点。

当然,也不用太关注,最好是一个项目做的差不多了,再来思考这些问题是最好的,后面你们做完一个项目之后,趁着还比较有印象,可以考虑如下一下通用的问题,这些问题有助于我们去捋清楚一个项目 + 面试官有时候为了验证这个项目是否是你做的,也会问你这些问题。

1、为什么要做这个项目?

自己可以找一个合理的理由吧,可以是用来学习,也可以是要参加比赛等等。

2、这个项目整体架构是什么样子的

事实上,很少人做完一个项目会去想整体架构这个事情,反正就那样吗,硬要问说,我也说不出来,不过呢,大家可以捋一捋,比如可以说这个项目由哪些模块组成的,这样你就把项目拆分成更小了,也可以先说一下这个项目涉及到的技术栈,然后说一说这些技术分别用来干嘛,比如你说用到了 redis,主要充当缓存。

3、项目的各个模块是怎么协同工作的?

每个模块应该分工明确,并且每个模糊也都是互补关系,可以想一想他们都是怎么协同工作的

4、表结构是怎么设计的?

这个问题还挺常问的,让你说一说表设计,一般你自己挑熟悉的例子说一说就好了,比如牛客网那个,你可以说一说 评论表 怎么设计的,其实问这个问题也是验证你自己是否做过项目 + 设计表的时候有没有思考过。

5、每个具体的技术,你用到了哪方面的功能,也就是涉及到的一些可能会问的八股文。

我之前说过,很多项目,背后还是问八股文,比如你 redis 用了 字符串 这种数据类型来当缓存,那么就会问缓存相关的,又比如你用了异步、多线程这些来加快响应速度,那么就会问你多线程相关,用了线程池,就会问你线程池,问了消息队列,就会问你消息队列。

所以呢,所有模块可能涉及到的操作系统、数据结构的知识,我们都要捋清楚,不过这是一个比较杂的事情了

6、自己基于项目,加一些自己的东西上去。

我相信大家都是跟着视频做的,如果有时间,做完自己加一些东西上去,相信你可以更加理解项目中各个模块是怎么交互的,而且你在写简历时,也可以强调这一点,问起来你也好回答。

7、为什么要用这个技术,有没有其他的可代替方案呢?

比如你说用 redis 来缓存 xxx,那面试官问你,不这样可以吗?或者说,除此之外,还有哪些方式呢?比如你消息队列选择了 kafka,那么面试官问你,用其他的消息队列可以吗?或者说不使用消息队列会产生什么影响。

当然,我只是举例子,思考这个问题,可以让你理解的更加深刻。

8、基于项目,如果流量大了,有哪些解决方案?

很多东西并不难,但是一旦流量大了,那么就完全不一样了,比如淘宝,比如微博某个明星出轨,比如知乎某个问题成为热榜,都会突然流量猛增。

虽然你是个小项目,但是面试官会因此来跟你谈大流量了,你可以怎么处理,所以你这个也要思考一下,比如加缓存啊,分布式啊,CDN啊,负载均衡啊,等等。

这部分的话,有点类似于场景题了

推荐读物

感觉有空可以看下这本书:大型网站技术核心原理与案例分析 李智慧(书签目录) 百度云下载 提取码:kgbj

发表评论

后才能评论