00:00
好,那么关于这个项目的话呢,咱就算是就要告一段落了,哎,大家下来以后呢,可以把它写一写,那这里边儿呢,可以强调的一个点是什么呢?就是项目相较于咱们前面讲知识点的一个区别啊。呃,项目的主要特点,首先代码量呢大一些。啊,这第一个点。呃,那么第二点的话呢,就是这里边儿呢,不包含任何新的知识。注意,新的知识不包含啊,哎,那么集合在一起的点是什么呢?就是这个项目我们要不要写呢?要写是吧,这个呢,其实它是一个项目呢,就看看我们相应的一些知识点呢,怎么去用的是吧,从这个意义上来讲呢,大家实际上是可以写写项目,通过项目的话呢,呃,因为它的逻辑更多更复杂,所以呢,是有助于提升大大家整体的一个处理问题的一个逻辑能力的。啊,这是一个啊,第二点的话呢,就是既然要写的探探难度要大一点啊,那么因为它里边没有包含任何的新的知识点,所以呢,你不着急写。是吧,哎,你就比如说咱们今天讲完这个课之后呢,大家着急的应该是写咱们当天讲的一些知识点方面这些代码,今天这个你要有时间了,这个项目就写写,但没写完,没写完就先放一放。
01:09
是吧,然后呢,诶等到这个周四自习的时候,或者周日休息的时候呢,你再去写,因为里边没有新知识点,所以你不用着急马上去练它。啊,当然呢,因为它的呃逻辑呢又更复杂,然后呢,这个也能看看相应的知识点,我们在实际生产环境当中怎么去用,所以从这意义上来讲呢,是有必要去练一练的,那你就是诶后边有时间了去写一遍不行,写两遍,两遍不行,写三遍,哎,当大家呢,你把这个项目能够很轻松的写下来的时候,你会发现你再看当初我们讲课的一些代码量比较少的这种代码的时候,你发现呢,这个逻辑呢,似乎很简单。啊,有点像什么呢,就是大家上高中的时候,看能不能有这样的共鸣啊,因为你上高一的时候呢,你做了好多这个题目。啊,当然还会有一些,你不太会啊,这时候有两个选择,第一个呢,就是你再读一次高一。呃,第二个呢,选择呢,就是你接着上高二,高二完了以后上高三,高三呢做这个综合性的题目啊,高一呢,比如说又来了一遍,读了三年,高一跟高一高二高三读完之后呢,呃相比哪个呃会更。
02:11
优秀一点的。对,应该是接着往后读要好一点啊。呃,为什么这么讲呢?就是你老是读高一吧,其实你整个这个境界啊,老是在高一的这个层面,虽然说你做的很熟了,但是你这个境界呢,没有提升啊,解决一个问题呢,可能还是呃十行就搞定了,但你读完高二,读高三,尤其高三做综合性练习的时候啊,这个题目就难度很大了哈,你可能解决一个问题呢,需要30~40行这个。呃,这个逻辑才能够解决了,但是呢,到那个时候呢,你再翻回去,就看高一的那些题目,你会发现他感觉挺简单的。啊,难是因为它有综合了是吧?啊你光看高一的话呢,其实你发现这个题目呢,似乎没有那么复杂,就是因为你整个的认知能力,解决问题的能力整体的就提升了啊那么这个提升呢,就是因为你见过更复杂的逻辑。和问题了,哎,那这块项目呢,就是这样的特征。
03:02
OK啊,所以说要写,但是呢,不着急写啊。好,那么这块我们再拉回去,诶这个项目呢,我们讲了一个,通过这一个项目呢,诶想给大家呢,说一下在实际开发当中,呃,咱们呢,所处的角色是在哪儿,你需要搭配的角色有哪些。包括呢,在这个过程当中啊,这个包括咱们中午不是也有演讲吗?人,那到底这个程序员呢,这个口才重不重要呢。嗯。对,就是应该说呢,就是你技术呢,是看家的是吧,除了技术之外呢。呃,其实呢啊,随着你的职业生涯,不断的去提升你发现的这种沟通协作能力,团队协作能力,处理问题的能力。其实慢慢的就凸显出来它的重要性了。诶,或者换句话说,大家刚开始工作的这个前三年前五年你就是技术岗嘛。那你要说没有其他方面能力,那你就是好好把技术做好是吧,哎,你要有其他方面能力呢,你的发展会更好。啊,只能这么讲是吧,诶那这里边儿我们看一看啊,整个呢,在整个开发的这个环节当中哈,我们都有哪些角色哈。
04:07
哎,涉及到这个项目研发的一个流程是什么样子的。好,这呢,你看我列了一个顺序图,整体上来看针对一个项目,哎,我们通过这个功能上来说的,第一个叫需求分析啊,说这个项目,比如说我们现在要做一个电商的项目,就是假设,比如就京东啊,或者叫拼多多是吧,好,那么整个这个项目的话呢,诶,可能是一个外包的项目,交给你们公司说诶我要做这样一个电商的项目了,也可能是你们公司的一个自研的项目。啊,我们公司就叫京东啊,我们要开发开发一款这个,呃,这个这个项目是吧,这个项目呢,就是叫京东商城。啊,这就是你自研的项目了,还是你外包人家一个客户的一个需求,所以呢,先要做需求的分析。啊,这个我等一下细节来讲啊,然后呢,接着呢就项目的设计啊,在那开发呢,去写代码实现,最后呢功能的测试,最后步署实施,诶然后项目呢,开始去运营啊,后期呢还有一些维护,这是大体的方向,那首先呢,针对于第一个啊,我们说叫需求分析。
05:04
这个需求分析呢,相对应的这个角色呢,还有产品经理。哎,产品经理的话呢,诶,这个还需要搭配着叫UI工程师。啊,这样的角色呢,去实现这个叫需求分析哈,呃,这个产品经理,这个如果是你们公司自研的项目呢,这个产品经理通常呢,跟这个公司的老大关系都比较近啊,老大有什么样的想法,我们要做什么样的产品,产品经理呢,把它给描述出来,刻画出来。诶,你要是一个呃外包的一个项目的话呢,那产品经理呢,需要跟呃人家这个大客户是吧,甲方需要去对接,说你们要做一个什么样的产品啊,具备什么样的功能啊,诶这要做一个充分的沟通,诶所以呢,这个产品经理的角色呢,它需要统筹整个这样的一个产品啊,从头到尾它其实有一个统筹的一个作用,根据客户或者老板的需求呢,提供需求分析报告,输出产品的方案,指明项目或产品的一个功能。也就说这个产品最终的形态是什么样子,具备什么样的功能啊,比如说我们支付是用支付宝啊,还是用这个微信呢,还是银联啊是吧,诶等等这样的场景呢,一开始的时候产品经理一块要确定好。
06:08
啊,充分的做一个沟通好了,这个确定好以后,下一步呢,就是这个整个项目的一个架构和设计了。这个过程当中涉及到的角色呢,就是项目经理。或者呢是架构师,这个就是回归到咱们代码这个层面了啊,你说具备什么样功能已经确定了,下边我们要看一看啊,整个的这个项目,我们要想实现的话呢,怎么去搭建它整个这样一个技术的一个架构。啊,同时的话呢,我们还要计算出来整个项目的一个开发周期,团队的人数应该怎么样去配比。如果你要是一个呃外包的项目,人家呢,可能甲方会说说我这个项目到底需要花多少钱呀。啊,那这时候这个呃,产品经理和项目经理呢,充分沟通以后,项目经理就开始划分了,比如说你希望说三个月呢,把这个项目就交出来是吧?啊三个月其实也也比较快了啊假设呢,就三个月吧,诶那这时候呢,我要布几个呃前端开发的,几个后台开发的,呃后台这块呢,是有高级的,还有这个中级的成员,诶待遇呢是多少?诶三个月啊工作周期是多少?
07:12
然后呢,包括还有后期的测试啊等等,把这些人员都算进去,他的成本我要核算出来多少钱。当然你不能可丁可卯的啊,中间的万一要有人员离这个离职怎么办呢?啊,万一有些代码功能呢,呃,客户这块可能改需求,小需求呢,可能也还好,就是你稍微得有一个缓冲的一个情况是吧,来把这个时间呢给他预留出来,那同时呢,你要是一个外包项目,你还要挣钱,你们的利润仍希望控制到多少,整个呢,计算出来这个项目是多少钱。哎,你要自研的话呢,你也要做一个规划啊,大概得是多少周期,多少人,大概成本是多少,心里得有数。啊,那么这个呢,就是整个项目经理和架构师来处理的问题啊。啊,包括这个整个这个开发的过程当中,如果有呃个别人要离职了啊,这个项目经理呢,得有个统筹,他是顶上去,还是在从别的项目组再调人过来,还是赶紧招聘啊,这个都需要项目经理来做一个把控的啊,哎,包括呢,适当的时间节点,是不是要提这个绩效了呀,提薪资呀,这个都是要考虑的问题,哎,他呢是一个管理岗。
08:12
OK啊,技术的管理岗。好,那么下一步呢,叫开发实现啊,那就是大家呢,在工作的时候呢,一开始啊,处在这个位置,就是这个位置叫开发实现成员啊,软件开发工程师啊有高级的,有中级的是吧?诶这个就上了啊,诶分工协作完成项目的具体模块的功能,诶一个京东商城它有很多的模块啊,这个商品详情模块啊,购物车模块包括呢,还有这个相应的支付模块,包括呢,还有这个,比如说诶物流系统啊,这个又分出来一个此系统,诶相应的这块呢,诶分工协作啊去完成这个功能的开发。好,有的时候也分阶段啊,第一个阶段我们做这个,第二阶段做这个,这就项目比较大了,哎,那么开发完以后的话呢,其实我们成员这个角度内部呢,我们其实自己呢,也可以做相关的一些测试了。啊,那么整体上来讲的话呢,相应的你说我们内部的一个小的代码测试也搞定了,这个时候会专门有测试工程师,他们专门就来针对我们这个项目,因为一开始产品经理嘛,他已经确定了这个产品的整体的形态和功能了,然后按照他的这个要求,他就来测试程序员写的这个项目呢,靠不靠谱来做大量的这种测试,这个测试呢,大方向来讲呢,诶,我们可以理解成叫黑盒测试和白盒测试啊。
09:23
这个黑盒呢,就是你看看不到里边是什么。啊,就跟盲盒一样是吧,诶它呢主要来测试功能。啊,比如说你有这些功能啊,一款APP吧,我就各种点是吧,看你现在这功能呢,是不是都是正常实现的,包括呢一些极限测试啊,这个进去之后还没加载完,我就马上就退出来,是不是报错了,呃,弹框又谈什么了,诶都属于这个功能层面,这叫黑盒测试,诶那相应来讲呢,不懂代码嘛,所以这块呢就显着会呃薪资待遇不会太高是吧?哎,那么对应的这种白盒测试呢,它就要深入代码层面去看,诶你这个性能比较差哈,诶是不是有优化的空间。啊,那么一些白鹤测试的这些,呃,包括呢,一些高级的一些呃,项目优化啊等等的这个呢,都是呃以前有一些开发经验的人来做的,那相应的这种待遇呢,反而还是不低的啊。
10:10
这个呢,就是功能测试啊,那测试完以后呢,各种bug呢,他就通过相关的一些工具呢,提交给我们开发组了,开发组你就一个一个去改,改完之后呢,再提交给人家,人家再测,测完之后呢,发现还有再改再测再改再测好最终呢没问题了,没问题以后呢,我们就可以呢去部署实施。诶,这个呢,就涉及到有运维工程师啊,实施工程师,把项目呢正确部署到相应的平台上,确保项目能够正常的去运行,就部署到相应的这个呃,云平台上啊,这个项目呢,我们对外呢就可以去访问了啊,普通用户呢就可以去登录了。那下一步的话呢,就是项目的一个运营。啊,这个呢,就不懂代码了,就是相当于一些销售团队一样,开始去做推广了啊,百度上啊,头条上啊,抖音上啊,诶开始去推广我们这个项目,诶鼓励呢,大家来去登录去使用啊,这个线上的一个宣传,这是花钱的。好了,然后呢,这个项目一方面呢去运营,另外一方面呢,还需要做相关的这种维护,比如说你在上线以后有一些bug呢,是在线上呢才发现呢,及时呢做个弥补,包括呢,我们这个版本,第一个版本推出以后呢,接下来马上就要开发第二版,做一个性能的一个迭代,这个时候呢,就涉及到这个二次开发了。
11:18
啊,就相当于第二版的一个升级啊,一个优化。好,那么整个的话呢,就是我们讲解的这样的一个环节。啊,就大体上就是我们这样的一个情况啊,呃,那么这个情况讲完以后的话呢,呃,大家呢,首先明确一下我们所处的位置。是在这儿是吧。啊,那么跟开发相关的呢。呃,应该算是这两个。嗯,对吧。好,那么整个这个讲完之后的话呢,诶抛一个问题啊,大家觉得这些环节当中哪个环节最重要呢?嗯,就是哪些人最重要呢?功能测试最重要是吧。嗯,那代码不重要吗?代码也重要是吧,那这个需求这块重要吗。
12:01
是吧,诶对,所以这里边儿就涉及到每个角色都认为自己很重要是吧?诶项目经理,这个产品经理会说说你这个产品最终的形态,我们是干什么的,这个是我来定的是吧?包括这个界面的整个这个效果呢,诶我比如说我们这个,呃下边有几个选项,这几个选项呢,分别是什么?这都是产品经理要决策的点。啊,用户觉得好用,我的功劳是吧,哎,这是产品经理认为的,那我们作为开发人员呢。说你想法再好,你得落地呀,是吧,我得给你写,我不写出来你能实现吗?哎,那肯定我们也认为自己很重要,那测试的呢。你那一堆bug,用户体验得多差,我要不给你测,你能让用户觉得好吗?是吧?啊,那这个实施呢。说你们这叨叨什么了,都不上线都白扯是吧?啊这个上线了以后呢,说说我不给你推广,这不就是一堆代码吗?那有啥用呢?用户都不知道,那谁会去用呢?啊,大家都认为很重要是吧?所以这里边儿就涉及到一个写作的问题了。
13:01
啊,协调问题了啊,诶,那像我们看到一些大厂的这种公司呢,这个流程首先就很规范了,诶那么有一些公司呢,就属于。这个叫什么呀,产品为主导的是吧,有一些有的人是以这种开发为主导的,呃,这就是不同的这种场景了,比如说一提到像,呃,比如说苹果公司,咱们一提到说乔布斯,乔布斯呢,算是一个什么角色呢?对啊,乔布斯呢,其实是一个非常优秀的产品经理是吧,诶,他不懂具体的这种代码怎么去写他呢,对于产品呢,其实应该算是可以说呢,世界范围内比较顶级的这个产品经理了啊,很多的公苹果公司的这种产品线,他不是后来又回到苹果优化产品线,推出这个iPod呀,啊,这个这个iPhone啊是吧,包括ipad呀等等啊,它是很。重量级的这个产品经理啊,产品来驱动的啊,啊那么像呃微软啊,比如说比尔盖茨是吧,呃,他是亲自写代码的,而且他给自己的定位,其实他都已经守护很多年了,他呃首先呢,第一个title呢,就是软件开发工程师。
14:02
啊,所以呢,诶他呢,就是属于这个开发港的啊。嗯,还有呢。其实这个马斯克呢,我倒觉得。想干这个的。是吧,你看这哥们儿呢,虽然说这个挣的钱也不少啊。这哥们儿特别会营销啊,三天两头的,你看这个今天一个这个明天一个那个推特呢,收购今天收购明天不收购,还占了很多免费的广告是吧。呃,这哥们儿特别擅长运行啊,运营啊,而且呢,这个呃,咱们国家呢,把这个特斯拉这不引到这个上海是吧?呃,这个呃当然大家都知道了,就是说为了把咱们国家的这个呃电车的这个相关的领域,希望他给带起来。其实我觉得还有一个。咱们国家考虑的一个点啊,就是这个电车呢,我们叫新能源了,其实新能源不止电车。包括还炒新能新能源啊等等的,其实那个可能会会更靠谱一点,是吧,但是呢,为什么我们引进来之后,这个这个其实还有一个作用是什么,就是马斯克这哥们儿在美国呢,特别擅长营销,诶特斯拉呢,诶他在国内呢,咱们给他,呃这个这个什么造的很快,卖的很快,他就美国去宣传,他就说你看啊,这个新能源电车很靠谱,他就把美国人就忽悠的也去买电车,所以就省着我们去宣传了。
15:13
要不他要万一定位呢是做氢能源咋整,咱们国家整氢能源这个专利呢,也不够是吧,咱们是希望呢做电池的,所以呢,美国也跟着咱们一块做做电池是吧。还有这样一个作用啊对,诶就相当于每个角色呢,都很重要,那么对于大家来讲的话呢,诶你需要呢,跟其他的一些角色呢,要处理好相关的这种关系是吧。啊,这是整个这个图哈,这个关系呢,网上有很多啊,成员跟产品经理呢,打架的一些。视频是吧,可能没打架,但是呢,这个关系呢,可能就会比较僵一些是吧。啊,这个是一七年还是哪一年出过一个,呃,出过一个问题哈,呃,什么问题呢?说这个是根据怎么着。是是根据用户的一个呃眼镜的颜色,还是怎么着呢,去改变他的这个呃,手机的壁纸的颜色。
16:03
啊,就是产品经理提出一个需求是吧,然后把这个成员气的不行了,俩人就吵架,然后就开始干仗了,真的在办公室就打起架来了啊,然后那个视频都发出来,特别逗啊,就是比较典型的很僵的这样一种关系是吧?或者你要说这个僵的话呢,我们好像不光跟产品经理讲,跟测试也僵是吧。啊,这个交给测试的,测试说你这写的是啥呀,是吧,啊就你这全是bug,那我们就不乐意了,说你这会不会测呀,是吧,不是这样用的就是吧。哎,对,这个其实反而测试的话,你说诶你看这个功能,你看我测的是不是不对呀,诶你看我这块好像出不来啊,你可能自己看了看,说哎哟,我这是个bug。所以说人跟人之间交流啊,是有技巧是吧。OK啊行,这个呢,了解这样一个场景,然后另外呢,从整个我们这样的一个呃,流程上来讲呢,花的时间比较多的哈,大家看一看整个的时间一个占比啊,在整个开发环境呢,环节呢,我们花的时间是最多的,钱呢也主要花到这儿了,精力也花到这儿了,诶需求的一个分析,包括我们具体的一个编码,还有相应的一些测试。
17:06
啊,你可能别觉得说这个测试呢,这个应该比较省时间,其实不是哈,比如说三个月呢,可能我们花了一个月多一点时间呢,这个就开完了,后边你是大量的测试。呃,然后呢,回头去改代码。啊,是有这种可能性的啊OK,所以这呢,就大体的一个时间啊,这个成本投入啊,大家呢,了解一下。好,然后这块的话呢,我是放了一个,呃,移动互联网的一个公司,真实的这个公司的一个架构哈,呃,就是大家呢,你大体上能了解不同的公司呢,它的规模不一样啊,这是一个移动产品啊,这个产品当中呢,这是公司的整个架构,研发部这里边儿,比如说他后台呢,你看有几个人是吧?啊前端呢,这个是纯网页的哈。还有iOS端,还有安卓端有几个人啊,还有测试呢,有几个人来做产品经理,这几个人啊,做相关相关的这个运营的,来做这个UI设计的,这呢是他具体的这个产品开始干什么呢?他有这个具体的内容部。啊,再就是推广这个市场部了,诶大体的一个情况哈,这呢是一个移动的产品,它这个不是特别重,你要是一个京东商城哇,那开发团队这海了去了,几千人的团队都在维护是吧。
18:10
大家清楚一下啊,OK,行这块呢,大概大概呢,这个心里有数就行了。好,那么这样的话呢,整个把我们整个这个呃,算是一个开发的一个流程哈,给大家呢,就过了一下,呃,稍微的清晰一点,呃,那么呃,大家在找工作的时候呢。啊,一般呢,你跟面试官呢,聊完之后,他最后有时候会问一个问题哈,呃,说这个你有什么问题要问吗。嗯,那么这时候呢,一般大家都,哎可以去问一问什么呢。问薪资,薪资这些都,呃,薪资的话呢,你不要问他这个人的话呢,可能是面技术的,你问他了也不好使,你就跟HR去聊是吧。啊,这周聊的话呢,其实你可以问一问,就是说诶我过来以后呢,诶我参与到公司里边,这个我要做哪个项目,我是负责什么呢?是吧,咱们公司整个架构的技术是是是用的是什么,哎通过这个呢,你也了解了解这个公司呢,它大概的一个情况。
19:02
呃,因为有的同学呢,手里会拿好几个offer,拿offer说我应该去哪个呢,经常有好多同学就开始问我了,那我可能会反问他各个公司的一些信息,结果发现呢,他都有的不知道。啊,其实这个时候你通过他问你说你有什么问题要问,你要了解这个公司的一些技术站,比如这个技术站你很熟,那你去这个就相对轻松一点,他如果这块呢,是比如说你很不熟的,或者一些特别新的,或者他公司自己研发的啊,有的呢,可能也不是特别靠谱的,那你可以考虑就不去是吧。啊,你不要问说咱们公司这个加不加班啊。是吧,呃,加班到几点呀,说包括呢,说咱们有没有完善的这个员工的培训体系呀,也不太适合问。你像你一上来就问说咱们有没有这种培训体系,其实这块呢,只有新手才会这样去问是吧,或者只有你是大学刚毕业的,你才会这样去想,对于公司来讲的话,你过来就是我给你开薪资,你呢给我创造价值是双向的。你不能说你不用给我开钱,我就来学习的公司呢,他还不想要这样的人呢。
20:00
是吧,诶包括呢,通过沟通呢,大家也可以呃简单的去试图了解一下这个公司呢,这种老大呀,老二啊,这个是吧,管理层的他是呃产品经理驱动的,还是研发驱动的,有些公司呢,是产品经理说了算的啊,那你要过去的话,稍微来讲会痛苦一点。啊,因为老板他都跟产品经理很近是吧,哎,中间呢,已经开发过程已经走着了,突然说我要加需求。啊,那这个老板说加。那你就跟着加吧,是吧,这个其实是挺痛苦的哈,但是呢,如果公司的老大呢,他是技术出身的,他会相对来说就比较向着这个开发部门是吧?啊,那这块加需求不行,咱们先把这一版产品先上了,下一版再加。是吧,诶当然越是大公司呢,它这个就越规范一些,小公司呢可能随时去加,当然这里边呢,往往产品引领可能会有一些不合理的要求,从我们的角度来看是吧?诶那这时候呢,你就看公司老大他是技术出身的,还是跟产品进了,诶这个呢,诶你有的会舒服一点,呃跟技术进的舒服,跟产品进的话就不舒服一点是吧。
21:01
哎,就这么个情况啊好,那么这个呢,就说一下这个事儿。
我来说两句