00:00
好,同学们,那么下面呢,我们来看一个基于呃文本界面的客户信息管理软件,好,那这个软件咱们做一件什么事情呢?诶该软件呢,咱们用scanner,诶用SC来实现。Scanner能够实现对客户用户呃,客户对象的插入、修改、删除,当然还可以便利啊,当然也可以便利。啊,便利。就是显示吧,显示当然还可以查询啊,可以查询。那么目的是干什么呢?让我们对看的这个语言。做一个就是综合的一个应用,那么这里呢,我们可以用AR buffer,或者用list的buffer来实现,那老师呢用array buffer,你们呢用list buffer跟老师稍微区别一点,这样呢大家会自己会有有一些思考。
01:00
好,我们第一个阶段呢,项目需求就说完了,相当于说这一部分就说完了,因为我们这个特别小,谈不上什么需求分析,对吧,如果说你将来做大东西,那肯定就不是一半一时半会了,有些需求分析师还要到对方的公司里面去待着呢。好,这个呢,我就往下写了,咱们看第一个项目需求,诶,咱们一个项目需求来走一个。那项目需求呢,我们已经做了一些说明。好项目需求就OK了,那第二个根据项目需求呢,我们按理说这地方需求完了过后呢,我们进入到一个设计,设计的话呢,就应该是用什么技术架构选人是吧,这个我们特别小,就谈不上这些事了,包括这个类图时序图呢,理论上说你们将来应该是,呃,要学一门课程叫UML,你们应该课程没有这门课了是吧,那样子我以前讲过UML,我把那个当时应该分享一下,你们如果说现在不用看。
02:00
如果将来你们哪天需要的,你可以稍微搂一眼啊,一一个小时左右,呃,看一看也是没有什么坏处的,只是现在大家不用看,那么这个呃类图持续图,因为很简单,所以说我这这里就到时间画一个程序框架图就可以了,那么圆形的界面呢,我们有了,我们把界面拿出来看一下。见面。把界面拿出来,呃,界面呢,我们这有,我们把这个界面给同学们拿过来看一看诶。我们还是把这个流程走一下,那界面在哪里呢?4000我已经设计好了,打开诶。好了,完了,这又卡顿了。鼠标。玄。鼠标卡了。不知道什么原因,等一下。鼠标卡这个录制没问题啊。好的同学们,我们打开这个,呃,这有一个客户信息管理软件,我们把PPT打开,那打开过后呢,我们来看一下它的界面,首先第一个界面是它的主界面,主菜单,比如说这里面呢,会提示,呃,可以添加修改,删除客户列表和退出,当然你们到时候再加一个查询,后面我有要求说第一个界面我们就有了,叫做什么呢?叫做主界面。
03:23
Or主界面?主界面。主界面呢,我们给大家截过来。好,主界面放到这儿。到时候我们看一下怎么一步一步把它实现出来哈,主界面就它。啊,就这个界面。拿过来,这是第一个主界面,那主界面完了过后呢。主界面完了过后呢,我们来看第二一个界面,第二个界面呢,就是我们这儿所说的什么呢,这个界面叫。添加客户的界面也给大家罗列过来。
04:04
这是我们添加客户的界面。好,拿到这边来写一个叫添加客户。添加客户。好,添加客户呢,我们也放到这里来,好紧接着我们还有什么界面呢,往下继续看,下一个界面呢,就是我们修改客户的界面,诶就是客户呢,我们需要修改。看下修改客户。诶,修改客户的界面。放到这里来,还有什么呢?还有下一个界面就是删除客户的界面。删除就QQ我们不要了,我们怎么删除它。删除客户的界面。好,删除界面。好,删除完了我们再来看还有什么界面没有,下一个界面,下一个界面呢,就是我们能够。
05:00
列客户列表。就把所有的客户。列出来这么一个界面。到时候我们分析的时候呢,要根据界面来进行分析好,这个是写到这里的客户列表。客户列表界面。好,当然了,下面呢,我就没有写其他的了,比如说同学们要写的话,可以写这个查询界面,这个呢交给你们去做。好,那么界面我们就分析完毕,界面分析完毕过后呢,下一步我们来画出一个这个设计文档,这个设计文档呢,有一个,呃,对于小项目呢,我们可以画出这种程序框架图。程序的一个框架图就是,呃,我说一下程序框架图是什么,我们来看一下下一个章节啊,这说完了,说完了我们看下一个程序框架图。好,写到这了。给大家罗列到笔记中去,首先我解释一下什么叫程序框架图,做一个说明。
06:01
啊,解释一下啊,程序框架图是干什么呢?它主要是完成这么一个功能,就是描述或者说设计。啊,设计系统有多少个多多少个多少个文件,以及以及文件之间的调用关系。那么你将来在做一个模块的时候,这个程序框架图还是特别有用的,就是你要知道文件之间,他们就是我为了完成这个功能,我需要几个文件,那么一般来讲呢,一个文件对应一个类,一般来说是这样子的啊,但是也有例外,就一般来说,一般来说。来说什么呢?就是一个文件对应啊,对应什么呢?一个类啊,这样子呢,就相当于说把类图也画出来了,因为内内内也设计出来了吗?那么这个图的作用是干什么呢?可以清晰帮助我们,可以帮助程序员。
07:04
它有两个作用,第二是可以帮助帮助程序员实现这个模块的一个设计,某个设计就清晰你的这个思路。就更清晰了。清晰。第二个呢,它更重要的是便于程序员之间的一个交流,比如你写完了过后,你会把这个东西拿出来跟交流,你不能光光在这说话呀,假如两个程序员之间交流,就说我这写了个文件,我调用谁,另外一个程序我写了一个文调谁两文件少还可以,如果你有十个文件,20个文件,你说的清楚吗?说不清楚,所以说还便于。便于程序员之间的之间的一个交流,对啊之间对项目啊,对项目的一个交流啊,项目的交流和分析。分析啊,可能大家没有没有这样的感受啊,尤其是尤其是写这种写这种网络程序。
08:04
你网络设计我以前也是自己想了一下,结果我发现最后人家那个,呃,这个我们项目经理说你这个设计都是错的,你不应该是由这一级到那一级,而是从另外一到另外一集,我才明白,因为当时全是脑海里面想,没有画一个图,画一个图别人马上就能指出来你这个设计的缺陷是什么,可以进行优化,现在大家可能还没有感受到,一个项目其实并不是代码最核心的,他一个什么东西是它核心呢?就是我们原说的是一个是业务是核心。第二个是优化式核心还有一个什么呢?就是设计方案,是资金,可能大家没有现在没有这样感受,你看有些公司现在在市面上有一种公司,它叫方案提供商。大家可能听过方案提供就一件事,他告诉你你这个软件或者是一个项目应该怎么做,其他我通通不管。通通不管啊,以前我们在我在参加工作的时候面试,呃,那个外企他喜欢怎么问,你知道吗?他喜欢这么问,你说你写了个项目好,你的代码什么我都不看。
09:07
我都不看,我通通不看,我通通不看,我就问你件事儿。你这个项目,比如说你设计的是一个数据通道,或者是你设计的是一个,呃,这个这个叫做集群服务器,你支撑多少人在线哈,我先问你,你是当时是怎么设计的。把这个设计的一个结构给我说出来,并且分析他是怎么能够实现支撑1000万人或者是100万人同时在线的,你把你的这个原因给我说清楚。画一个图给我说清楚,下面一般有三到四个面试官同时问你。这个你就很难作假了。就说也就是同学们不用特别担心,你们将来什么简历包装的可能根本无所谓,对吧,为什么呢?别人想知道你是假的太容易了,但是别人为什么让你去了,那说明你包装的还算是比较OK的是吧?那肯定是别人是知道的,就一个面试官,他不可能不知道,就是随便问都能问,问你怎么样,他发现你呃,思路很清晰,你的解答和你有这个能力,我就要了。
10:07
没问题啊,所以说为什么说有些设计方案很重要呢?比如说我以前在那个点击干活的时候,我们做的是数据通道,我下面有不是讲过吗?我下面有四个四个组员,四个组员啊,虽然虽然当时我是做一个组长,但是下面四个组员还是比较强的,有一个女生是清华的,还有一还有一个男男生是北航的,那个电气工程的一个硕士,还是很厉害,电气工程北航还是比较厉害的,还有一个中科院的那几个哥们整完了过后,诶,有一天我发现有个哥们说他要离职了,还很高兴的样子,满脸通红,我说为什么那么这么兴奋呢?他说我明天就要离职了,我说离职的离职为什么那么兴奋呢?他说我到那个朗讯去了,朗讯是一家专门做语音识别的。当然他已经外交活,他说一一个月一年年薪就到20万了,当时是零六年还是零七年,年薪20万是非常恐怖的,年薪20万我当时才拿多少钱,我当时一个月也也就我看算下来也就5000块钱。
11:03
啊,5000块钱很低,5000块钱到6000块钱的样样子,他能拿年薪20万,而且他是下面我的一个组员,你想想这个心里面很不平衡,那段时间为什么我老觉得,诶,这小伙子你们怎么这么勤奋,没事就来请教我呢,我还很高兴的样子,我和盘托出对吧?把这个设计方和盘托出,那哥们就拿这一套,然后去跟人家面试,他英文比较好,那外企的全英文面试啊,就是你说话你描述的用英文跟他沟通。就你写的文档,英文文档,然后那边用英文给你讲,你这边用英语回答说那哥们进去也是他的道理,水英文,水英文水平不说,然后他当时别人就问一件事情,就是你怎么设计的。就完了,现在还有些公司也是这么干的,假如你们你们将来面试有各种各样坑等着你们,其中有一个坑是这样一个坑,他怎么怎么可以设坑呢?就说现在我这里有一个功能,有一个功能需要你去实现,实现了哦,你实现完了把代码发给我,如果我认为你实现的好,我就要你,我你要实现的不好呢,我就不要你,一般的人肯定就写了嘛,写花了两天三天时间,把这个代码写完过后,他直接拿拿过去用,然后没有下文了。
12:10
也有这样的故事,也有啊。所以你要敏锐的感觉到到底,一般来讲很少有公司这样子,这样去面试的公司一般都有,都有可说啊,我这有一个功能,比如说这个功能,如果是算法,这你要考核我很简单吗。你要考核我,你出一个题,我面试一下,最多写两个小时就能面试出来是吧,但是如果把一个功能模块交给你去做。而且他还允许你去查资料。一般来讲。都是想让你免费干活的啊。这这种大家要要要警惕要警惕啊,这这种公各种坑都会等着你们,但相对来说,呃软件这个,呃,我们这个软件这个行业的坑呢,比别的要少一点,但是也要注意啊,有些地方去了过是你也知道有上次有一个学Java这哥们儿不就被弄掉了嘛,是吧,被那个传销你你们知道这事吧。不知道,就就就就就就哈尔滨的那个什么大学的毕业那小伙子还不错的学校是吧,他就被那个传销搞过去了嘛,所以弄过去过后,然后他说人家是在一聘假话程序员的,结果他把你就搞传销那哥们就跑了,跑了过后反正又被人家拯救,就就弄死了嘛。
13:16
啊,所以大家去的时候有些坑,你要如果拿不准的,你可以到时间问一下韩老师,你说这个韩老师现在有个公司是这样一个情况是吧,我会敏锐的告诉你这个公司有没有问题啊,有没有问题,这个大家注意一下,就有一可能要小心好这个框架呢,我们就来设计一下,很简单一个设计框架,好现在呢,我们要完成的事,根据刚才老师要做的事呢,我们设计一个方案。啊,设计一个方案,现在呢,我们用分层模式来写就可以了啊,使用我把这个放大一点,使用分层,诶我们使用。使用分层的分层分。分成模式开发好,那现在呢,我们就这做啊,根据刚才这个设计呢,我们先写一个叫做view的页面啊,同学们前面学过,比如我写个customer。
14:07
Customer view啊点SC,那这个文件干什么呢?它完成这么一件事情,第一个它显示页面。啊,显示我们界面没问题,第二个他接收他接收接收什么呢?用户的这个各种请求啊,接收用户的请求啊,比如说他要查询了啊,他要这个添加了。啊,比如说他要显示了,比如说他要删除了,好那么第三一个呢,他自己不干活,因为我们一般说见面就干这个这个接收的事情,然后呢,他干什么,他调用。调用下面下层的。下沉。要调用业务层啊,业务逻辑层的代码,完成什么呢?完成这个增删改查,完成对客户客户的这个增删改仓,那也就是说意味着我应该这还有一层。
15:02
哎,这一层呢,在同学们前也学过,就是service层,好,我们也可以这样去设计service serve service层干什么事情呢?这里就是,呃,提供啊,他是干什么呢,提供。提供对这个什么呢,客户的增删改查的操作。啊操作,然后呢,完成相应任务,完成相应的这个任务,好待会我们还要分析啊,先把大体说出来,第三一个,第三一个呢,就是我们说的下一层,下一层是什么呢?就是我们的数据层啊,这个叫业务层,这个叫界面层。这个呢,我们叫界面。界面层,以前老师也讲过这个呢,我们把它称之为业务逻辑层啊,业务逻辑,业务逻辑是什么呢?干活的还有一层呢,就是我们的数据层。啊,数据层,数据层是干什么呢?存放数据的吗?数据层好,数据层呢,我到时候直接写customer这个就可以了。
16:00
好,这个地方是干什么呢?保存数据的,简单说就是它是一个加病,即是什么呢?是一个病。就是并并干什么呢?它表示数据,哎,那什么呢,它是表示数据的。表示数据,那么一个这个customer呢,一个customer对象就是一个客户信息。啊,就是我的一个设计。好,那么到时候我们调用关系应该是这样的一个关系,同学们看啊它。它这个地方来调用。下面这个。然后呢,他又去调用下面那层。最后完成这个增删改查,当然这边会有结果返回,比如说我这增删改查成功了没有,那么我这边有个结果给你返回去。大体就这样子的。好,有了这个东西,我们就开始这个第一初步的一个设计就写完了啊到到时间还要还要优化,就是这里面到底怎么怎么去设计的,里面还有什么东西,我们一步一步的来设计好,先做一个设计的初始初始稿。
17:05
好,我把这个图拿过来。拿过来啊。好,给大家截到这一栏。好,有了这个图过后呢,我们大体就知道什么呀,我们这个程序大概有几个文件了,你就可以分成了,所以说你看这个图呢,还是有价值的,虽然我这个很简单,但是你们将来越是复杂的项目,用这个分析越是清晰,好有了这个程序的分析过后呢,我们下面就可以来写一下这个代码了,我们就按照这个流程一步一步的实现。好,我先截取一段视频。
我来说两句