00:00
第一个项目描述说完了,然后再看第二问题啊,就是第二个呢,可能面试中别人不会问这种问题,但是这属于一个常识性的东西,希望各位知道啊,这个问题是什么?看里面描述我这里写到啊,比如说有时候可能别人可能问你啊,但是问的几率不大,就是咱们现在做的是个项目。还是一个产品啊,两个词一个叫项目,一个叫产品,其实咱们做的肯定是个项目,那什么叫产品的,这两个有什么区别?给大家来解释一下啊,咱说的比较简单点,比如说我们现在咱们做这个在线教育这个东西是不是从零开始做的,所有东西是不是都重新搭建的,这叫做过项目,那什么叫产品呢?产品什么意思啊?说的简单点啊,就是我这东西已经给他做出来了,但是我可以根据不同的这个用户给他定制在改功能,比如里边加一些东西,捡一些东西,做一个叫定制性开发,这叫产品,举一个例子啊,这例子不知各位是否听过,有个系统,这系统叫做OA系统。
01:05
OAOA是什么呢?叫做办公自动化,里边有很多这种流程,比如说有一个典型的模块,叫做审批流程,OA里边有典型这个模块,那什么叫产品,举个例子啊,因为大家知道OA嘛,应该是一个比较成型的东西,不管个公司都会有这个类似的模块,但是因为每个公司的审批流程是不一样的,比方我现在这个公司,比如他审批,比如请假,我请假三天,比如这个公司啊,他需要你的主管申请审批通过就可以了。比如那个公司我请假三天,他需要董事长审批才能通过,每个公司是不都不一样啊,但是就算不一样,他做的时候都叫审批呀,这个叫产品,也就是说做了一个基本一个功能在里边,根据不同公司可以做这个定制开发,这个叫产品啊,这各位了解一下啊,就是现在很多公司都在做产品。有一个比较著名的公司啊,这公司不知道各位是否听过啊,它叫用友。
02:03
就是用友软件啊,应该就在那个啊,那个软件园那个福建那边啊,一个叫用友软件,然后这个公司啊,他就是专门做产品的啊,这个啊就是什么是项目生产品,产品理解为有一个成型的一个东西在里边,可以定制开发,而我们的这个项目就是从零开始,完全。完全给它做出来啊,这两个是不同的概念。所以说啊,针对项目产品,我记得在几年前网上有句话就是调侃这个项目产品,这个公司这个特点啊,给大家大概也说一下啊,各位也当个笑话来听听啊,一般这句话怎么说呢?很多年前我看过这句话,他是这么说的,说这个公司嘛,分成不同的等级,一般来讲一类公司就是最顶层公司做什么。做的叫服务。就是一类公司做服务,什么叫服务啊,不是叫服务,说错了啊,一类公司做的叫标准。啊,标准。
03:01
这是一类公司。写一下啊,它叫。标准?什么叫标准呢?举个例子啊,大家知道Java语言是不是由那个sun公司开发出来的,就是后来被Oracle收购嘛,他做的就叫标准,比如说你用过Java,按照我规定的标准是不是来开发,按照我规定的语法是不是写代码,这叫标准啊,但是标准现在公司不多,因为做标准的就那么几个公司,所以后来有了二类公司做什么?叫做服务,一类公司做标准,二类公司做服务。什么叫服务呢?阿里云就是一个典型的服务,因为大家注意啊,阿里云提供了各种那种产品,另外他的服务做的特别到位,比如你这里边别给大家举个例子啊,你代码不会写,可以打他那客服电话,他虽然不会帮你写代码,会告诉你他这产品怎么去用,服务做的特别到位,比如奥利口,他服务做的也很到位,你用奥利Le的产品,只要你花钱买奥类服务,然后它里边各种东西都会帮你提供各种支持,这叫二类公司。
04:01
然后三类公司做什么,做的是产品啊,这是三类公司,然后还有就是不入流的公司做什么。做项目。啊,所以这各位啊,了解一下啊,比如说以后你有实力,那去做标准公司,比如你去散公司,或者去那奥里公司,或者你去阿里巴巴,或者说你去拥有,如果你不入流,那去一些小公司做项目,但最终啊往这个标准服务这方面去发展,这个啊就是咱们说的第二问题,大家了解一下啊,不是什么重点,但是虽然一个常识性的东西,项目和产品。一类公司做标准,二类公司做服务,三类公司做产品,不入流公司做项目啊,有这么一个说法啊,几年前这句话很流行,但目前可能听的人不多了啊。知道一下啊,然后往下看,下面有一个叫测试要求,就是这个一般啊,就是比如说别人问到你可能问的几率不大,他就表示啊有一个值,这个值就是你的平均想时间的并发量啊,这么一个值了解一下啊,这叫QPS啊,就大概比如你这里边我们QPS,比如2000加或者多少,就在你的平均时间内有多少并发量,比如我现在在每一秒或者每一分钟并发量能有多大啊,这是一种测试要求。
05:14
啊,给各位知道一下啊,在实际的项目中呢,这些测试在一些比较正规公司中都有那个专业测试,做各种压力性能等等测试,在小公司中可能也会做到啊,就是类似的这种测试要求这个啊知道一下啊。我觉得特别重要啊,然后咱们再往下看,下面还有几个问题,咱们看第四个。第四个是什么呢?这里边就是我们一个做软件开发一个比较完整一个流程,因为咱们在公司里边目前做软件大部分应该都是满足这么一个流程啊,主要是这一个部分,然后在流程中咱开机构跟我们最相关的。那大家看啊,就各位能看到,你说我们以后到公司里边做项目,咱最开始你说我们参与的是哪个部分。
06:01
大家能清晰看到第一部分。咱是不是要开发呀,就是你要写代码嘛,然后做前后端联调,就是前端后端调试问题,然后这做完之后还有一部分是咱项目中做的很多的这个部分。叫什么bug修改,这别看小看这bug修改会维持到你项目从开始到结束的完整过程,你一出现功能就有bug,有bug就要改,改完之后可能有新的bug,这个会一直出现,所以咱们在开发中。我们刚开始去公司,你可能做到就是写代码做功能,然后做这个调试,然后再去改bug啊,这一过程各位应该经历比较多。先给他知道一下,以后你到公司中都会体会到,另外就是大家注意啊,在一个项目的完整开发过程中,是大家可以想一下,你说哪部分应该是最重要的。比如我们现在做个项目,大家说哪部分最重要?希望各位知道啊,咱们最重要的部分不是说做开发,也不是说做测试,也不是说做修改bug等等,这些都不重要,最重要的是什么是第一部分。
07:06
需求最重要,因为咱们做项目要围绕需求去做,比如你现在这公司,比如老板确定要做什么功能,产品经理设计出你的功能,各种效果,那你按照需求来做,如果你后面比如说你技术用的再牛,功能做的再好,跟需求不一样,这项目做出来没有任何意义,所咱一个项目需求是最重要的,我们这所有东西都是围绕需求去做的,这是一个重要的部分啊,所以各位给这个明确啊,做项目围绕需求做,比如你这里边项目经理给你安排任务,他可能告诉你做出什么效果,那你围绕他这个需求来完成你的功能。技术在真正项目中不能说不重要,不是最重要的,最重要的是需求,咱们技术也是为了服务需求而产生这个东西,如果说这技术再牛,但跟我需求不一样,那这时候可能需求中用不到这技术,我也没意义去用,我用到跟我们需求相关的技术,选择最好的技术完成这个需求。
08:03
这是啊,咱说的开发流程,各位记住,项目开发中需求最重要,咱做的都是围绕需求去实现的。也就是说,你要明确要做什么功能,如果做什么功能不明确,那这代码肯定你也写不下去。这个啊,各位要特别明确啊。是这一点啊,也就是说各位感受到啊,就是我在讲的过程中啊,其实咱们写代码时间,我们后面会发现其实不是最多的,最多时间呢,我都是在分析它的过程,包括他怎么去实现,就好比说在这些项目中,咱去分析他的需求。这是啊,第四个各位铁头知道一下啊,然后还有第五个就是这个问题呢,在咱们项目中应该比较简单,因为咱们项目用的是不是叫BTOC模式,咱的角色应该就这个角色,包括我们的管理员,包括普通用户啊,就两个角色,另外一边人可能问到数据库,那各位如果问到这个问题,你要把我们数据库的设计关系给他说一下,比如答案道。课程修换表包咱的权限修换表这些之前我都说到了,课程就有这些,比如说课程描述包,这个课程的这个分类啊,还有讲师等等这个表,然后咱们的权限,就咱们这五张表,就把这些说一下就可以了,这个应该不复杂,咱们项目b to c就两角色,一个管理员,一个普通用户,然后咱数据库按照咱这些方式做一个操作。
09:23
这个啊,是咱说的第五个啊,然后咱们看第六个。第六问题是什么呢?比如说别人问到你啊,因为咱们做的是在线教育项目,在线教育项目中肯定会涉及到视频的部分吗?那别人问你说你们项目中视频是怎么做的,这个大家之前提到过啊,就是目前来讲啊,在国内的公司里边,能有实力独立做视频的公司并不是很多,因为很多公司呢,第一个他要做视频,他会发现要耗费很多的人力物力和财力,他不想浪费这个时间,所以很多公司做视频都是用一些第三方平台东西,而咱们现在用的也是第三方,大家用的是什么?就是阿里云里边这个叫视频点播,所以别人问到你,你把这个都推给阿里云。
10:11
我们确实是用阿里云做到了,包括这里边提供了各种功能,比如这个视频的上传转码加密啊,包括咱做这个阿里云播放器整合做了视频播放,在在项目中都用到了啊,这是我们的实际场景,整合阿里云的视频点播,然后完成里边这个相关功能。这个啊,咱说的第六个啊,然后除了这个之外,下面还有一些基本问题啊,这些问题其实之前我都说到了啊,咱大概就看一遍啊,比如说这个在咱们前后端开发过程中有什么问题。注意这里面一个词,可以把这词给他知道啊。这词是什么呢?叫做前后端联调,那什么叫联调呢?说的简单点啊,因为咱们现在是前端后端都我们一个人去写,在实际公测中,并给公司很正规,那接口是我们做的前端由那个前公式去做的,而这两都写完之后,咱们这个接口要给他部署上,前端要去调接口,看这过程是否正确,这叫前后端联调,咱之前一直在做这个过程。
11:14
而在前端链条中会有很多问题,这问题啊就比较常见的,比如说请求方式不对,什么参数少,或者说这个ID显示长度不一样,这咱们也都提到过了啊,包括前后端分离中,里边这些跨域怎么解决等等。啊,这个啊是咱们刚才这问题应该都总结过了啊,所以把我刚才总结问题看一看可以了,然后在我课件中有这么一个问题啊,这些问题我们目前是不存在的,给大家也提一下啊,这是什么呢?所以看到这个东西,哎,这写错了,应该叫zoo啊,Zoo网关,因为咱们现在用的网关用的不是zoo,咱用的是不是叫getaway getaway没这问题,如果你用的是zoo网关,里边会有这个问题给大家了解一下啊,不需要掌握,因为咱们现在没用这个东西啊,这是之前那个版本中是zoo,现在咱用的getway这问题已经。
12:05
不存在的啊,这个啊,就是一些基本的一些问题啊。这各位给他知道一下啊,刚才我们都总结过了啊,然后除了这个之外,咱往下看看这个问题。给大家说一下啊,就是这个问题呢,跟技术无关,但是在很多面试中啊,会经常问到,一般你比如说你面试到最后,别人可能随便问这个问题,或者说你在面试中,假如这公司很正规,你先技术面试,在人力资源面试,人力资源很喜欢问这种问题。这个问题我强调各位在说的时候要说的就是别说的那种,太这种教条了。这个词啊,就是不要太教条了。什么叫教条呢?就是你不要说的说太固定了,所有人说的都是一个样子,因为大家注意啊,这个问题是什么,咱们看一下。比如别人问你说你们这个项目啊,你项目组中有多少个人呀,然后你们人是怎么组成的呢?一般来讲,比如说你到网上去搜,或者你问很多人,他可能教你这么去说,怎么说呢,别人可能告诉你,你这么来说,我项目组比如有八个人,或者有六个人,或者有七个人,或者有十个人等等啊,这人数无所谓,然后他会说你可以这么说,你项目组织有八个人,有一个项目经理,有一个架构师,然后有比如说有三个后端,有一个前端,一个美工,一个运维,一个测试,然后等等这些,可能把这说了一遍,就把所有角色都在这里边描述了一遍,然后最终构成你的项目组。
13:33
这么说呢,不能算你错,但是这么说法太教条了,为什么呢?给大家说明啊,大家要考虑到实际。就是在咱们国内的公司,除了一些大公司以外,大部分中小公司都不是这么组成的,就说的很实际啊,说你去大公司,比如你去京东,去什么阿里巴巴,去什么百度,他是这么架构的,没有错,项目经理,架构师,或者还有什么需求分析师,有产品经理,有这个什么后端,有前端,有测试,有美工,有运维包,有什专业的运营,这套架构是没有错的,但是大部分中小公司它不是这么架构的,因为中小公司没这个实力,他一般怎么做呢?一般是这么一种情况,比如他有一个。
14:17
项目经理他可能没有架构师,架构师可能就是项目经理他兼任的,另外有后端,然后有前端,一般后端肯定比前端要多,但是有的公司可能他没有前端,或者说前端跟美工是一个人,另外还有测试,有些公司没有测试,测试是谁,就是我们所有人都是测试,很多公司没有运维,运维还是你的项目经理啊,所以这是比较符合实际的架构,所以各位说的时候特别注意一下啊,比如说以后你写你的公司,一个小公司,你去你工作,然后你出来之后,你写了很多你公司各种架构,然后别人可能问你一句。说你公司有多少人,你告诉他我公司比较小,只有20几个人,那别人说你公司20几个人,可能这么架构,这肯定有问题啊,所以各位说的时候要特别注意啊,就是按照那种比较教条的方式说没有错,但是你要符合你的实际,大公司是这么做的,小公司一般没有这么多人,他可能一个人身兼多职,你这个人既是项目经理,又是架构师,又是技术经理,可能又是运维啊,可能一个人都干了,比如你这个人既是后端又是前端,这个人可能既是前端又是美工,可能他还是测试。
15:26
这是比较符合实际的一个,就比如架构啊,所以大家把这个给他在面试中说的时候都注意一下啊,说的符合点实际,不要说太教条。这个啊,咱说的第11个啊,然后咱们再看第12个,第12个中呢,有一个原理,这原理呢,面试中可能基本上不会,别人不会问这个概念,但是这个在笔试中有时会考到啊,那这原理是什么啊,大家看一下啊,叫capp原理,主要三部分。C代表什么?一致性A代表什么?可用性,P代表分区容错性,就这三部分啊,然后里边什么意思?第一个一致性,比如你现在做分布式中,那保证所有数据都要相同,第二个可用性,当你现在比如说我这个,比如启用压力过大,那要保证我的项目能正常用下去。第三个叫容错,但我这里边比如说某个服务挂掉了,但让他的项目还能够继续用下去,不影响其他功能,比如咱当时用那个熔断器就跟这个就类似,这叫CP的原理,大家了解一下啊,很多笔试中可以考到类似题目,但是面试中的几率不大啊,因为这个就是使得我们在分布式中保证你的系统的可靠性有这么一个原则。
16:41
啊,大家了解一下可以了啊。然后在我课件中的就是这个位置,还提到一个东小叫组keepper e瑞克,咱现在不用了,咱项目中用的是nacos啊,但是他的注册中心,然后组keepper也是一种注册中心,这注册中心然后后面有课程中给大家讲到啊,就组keepper是这个啊,咱们后面再来说啊,大家先知道这么一个基本原理,叫CP啊,给它了解一下啊。
17:08
然后除了这个之外,就是后面啊,这里边。这个咱之前说到了过,就是我们做这个前端和后就服端渲染,如果你用服务端渲染,它就利于咱做这个Su,就那个搜索引擎,让它排名更靠前,咱做那个纳斯就是一个服务端渲染技术。啊,这些啊,就是一些基本问题给各位快速过了一遍,你把这些自己大概看一看就可以了,然后重点是第一个问题,把这项描述你给他好好去写一写,因为不管你是在面试中给别人说的时候,还是在简历中写的时候,这些必须都要有体现。这个啊,是咱们说一个问题啊,然后我再强调啊,各位在写项目描述中,就是我说的原则,你写完之后,比如说你在写完你的简历之后,把自己简历自己好好给他熟悉熟悉,不要说你写完之后简历中写过什么自己都不记得了,这要注意啊,我举个例子啊。
18:03
我记得我之前呢,教过有一个班上一个同学,当时他去面试,他简历中呢写了一个东西,这个东西啊。所以咱后面也会讲到有课程中有的东西叫做RPC,是一个那个框架的一个原理,他就写到了这里边,我们用到了RPC框架,然后面试中面试官看到他写到肯定要问他,面试官就问他说你们项目中什么地方用到RPC,然后他一愣,啊,但是同学很聪明,他就说啊,我们项目中没有用到RPC,然后别人问他说你知道什么叫RPC,然后他就一愣,他就没说出来。为什么要?因为他之前没有熟悉过自己的项目,他没有觉得自己项目中写过RPC,他只是知道有这东西,但是你注意啊,就是我说的原则,各位在写完简历的时候,把你简历中写过什么技术都要给他好好去自己熟悉熟悉,不要说你写完之后都忘记自己写过这个东西,这是最致命的,这要明确啊。不要觉得我觉得,觉得我说这是笑话,在实际中可能你就会发生这个问题,写过之后你没去看,然后你就忘记了里边写过这个东西,别人一问你说不出来,那就是一个致命的问题。
19:10
自己的简历自己都不知道要写的什么,那这个面试通过几率绝对是很低的。把这些各位都给他知道一下啊。然后这个说完之后,我们看最后一个问题啊,最后一个是什么呢?这在很多面试中你会经常会考到,你一般会怎么做呢?就是你在面试中,一般面试官呢,给一张白纸,让你来写题目,一般他会考什么,比如让你写个所有语句,让你写个什么算法,或者让你画一下你项目中这个架构图是怎么样,这会经常遇到,而这里边我给大家画一个简单一个架构图。就是比之前那个就是更完善一点,结合咱的实际。我强调啊,这个图的画法也是没有标准答案,但是里边有几点咱必须要有个体现,那咱看一下啊,我这里边有哪些点,咱们把这图啊,我们来大概就看一遍啊。
20:04
呃,就这里看应该也能看到啊,首先第一个啊,就这边看大家看啊,我现在用客户端发送这个请求,首先到我们这个getway属于网关呀,然后通过网关把请求是不是分发到咱的不同服务器中,就是这个位置大家看啊,这是第一点要体现大家用的是getway网关,然后第二点咱们项目做的是不是叫微服务架构,是不是有不同的服务,所以咱们做到这一点啊,然后咱们通过网关反微服务要经过什么。是不是这个NAS,是不是咱们这个注册中心啊,通过NAS,然后做这个。就是能够访问到你不同服务啊,用这个做到一和网关,然后做到之后咱每个微服务,咱要做数据库的访问,咱就做一个分库处理,就访问不同数据库,然后在数据库访问过程中,咱可以用red作为缓存,另外咱的代码可以用这个GI,就是本地get和这个远程地的仓库,主要有这一点体现,另外你可以进一步化,比如里边咱做到单点登录SSO啊,包括做到什么等等一些内容啊,这是一个简单的一个架构图,各位给他自己去练练啊。
21:11
在以后的面试中,这种题目可能会考到你,别人让你现场画一个架构图给别人能够准确的画出来,当然画的话不一定画的多么的完美,但是有几点要体现,比如我这里边的get way网关,Na的注册中心,这个微服务架构,数据库、分库,包括这个ready缓存,还有这个K仓库等等,这些主要有个体现,或者你加一个那个单点登录O,什么o two dt这些方式啊。这是关于架构图,各位都给他提前去练,练到面试中都提前给他准备好,不要面试中你再去想,这肯定画不出来,提前都准备好啊。这个啊,是咱们说的我们这个文档中的一些相关内容啊,把这个给各位最终做了一个说明啊,主要就是这些基本题目。
我来说两句