00:00
同学们,我们接着上午的内容呢,继续来进行讲解,上午我们完成了这样一个功能,就是把服务器和客户端的结构,咱们进行了一个合理的改进,进行了一个合理改进,让我们这个程序呢,可以支持更加复杂的业务逻辑,对吧,可以支持更加复杂的业务逻辑。那下边呢,我们来看一下下一个功能,下一个功能呢,我们就要完成go语言和RA的一个互通。因为前面我们数据这个登录呢,我们是直接把用户名还有他的啊,把他的用户ID,还有他的密码呢,是写死的,这个实际上在开发中也是不太可能,对不对,所以说呢,我们来做这样一个工作什么呢?就是在red里面来验证用户ID和密码是否正确。那么针对这个步骤呢,代码量也会比较大,代码量也会比较大,就说怎么来做呢?首先我们把它分成这么几个步骤,一步一步的来做,思路会比较清晰一点,首先我们这样做啊,在ready先手动的添加测试用户。
01:10
就说我们先添加一个在数据库里边存在的一个用户,然后呢,我们去登录成功,登录成功完了过后,我们再去完成一个真实的一个注册。啊,这里边儿把这个打通的话呢,我们后台就这大块的内容就通了。哪一大块呢?大家可以看到,目前来说我们这些程序,包括这个process,还有我们的process,就是没有跟数据库发生交互,现在我们要加的逻辑是这一段。哪一段呢,同学们可以看到,现在我们要增加数据库这一块,听我说啊,这是一块数据库。这个数据库呢,当然可以是MYSQL,也可以是我们的red,我们现在呢,用我们学过的red数据库来做这个事情。
02:03
数据库,那么大家想一想哈,我们先来做一个简单的分析,现在呢,我们先做第一步,先把一个用户。先把一个用户,先把它直接添加到这个,这个就是red里面去,那我们的结构呢,到时间会这样去做啊,同学们先在这加一个用,加一个用户,这个用户的结构呢,我们做成这样一个结构,做成什么结构呢?什么结构比较合理,大家可以动一动脑筋。就是我们把用户信息存在red里面,它的结构怎么样做比较合理呢?我觉得咱们用这种结构比较合理,前面我们学的时候呢,学了它的数据类型有这么几种,String。哈西,还有S就集合,还有list,主要有这么几种。那么这个时候呢,我们首先要挑一种,就是。它相对来说比较高效,同时呢,它的那个K不能重复的这样一种数据结构来存放,那这个时候我想啊,咱们队列肯定不太合适,队列它是它这个直接往里面扔东西,看不出来有什么效果。
03:14
那现在呢,呃,那个。什么比较合理呢?我们选择哈希。用哈希比较合理,哈希倒型结构是这样子,大概我们写一个users,这个是哈希的一个,它的一个名称users,这个是哈希里边,由它延伸出去呢,有一堆这个K和value,大家应该还记得啊,就这个Y,这个用户里边呢,我们认为有这么一些信息,它有K和VALUE6的这种键值段。啊,照现在这样子做,里边呢,假设有一个用户是100号用户。100方用户,我们把这个用户的信息呢,整体放成一个字符串,就是用户信息。
04:01
用户信息是寸。同样到时候我们假设还有一个用户是200号,他呢,他的信息也把它存到这里去。就用户信息失真。好这样子,这样子做完以后呢,到时验我们要去看数据库里边,就是red里面有没有这个用户呢,我们只需要通过这个users,这个哈希它的一个一个名称,找到它的这一个K,当然这当然这个也叫也叫字段了,它也理解成字段就是100,这个100里面有没有对应这个值。如果有的话,说明这个用户是存在的,如果没有就说明不存在,我们在添加的时候呢,也可以这么去处理,就是我们得到一个用户过后,把它序列化成一个用户信息,然后再去做。好,大致的思路就这样子的,那么问题又来了,说老师,那到时这个用户信息怎么表示呢?显然目前在服务器这边没有一种数据结构可以去描述用户信息的,我们有什么结构,现在我们我们数据结构是什么呀?对于这个描述用户的结构还没有说到时间来,在这个地方我们要加一层东西,注意听。
05:17
我往这边挪动啊,这边加的东西也不少,在这一块呢,我们要加一层猫都层。加一层model层,注意听好,那么model层我会怎么加,加到这个位置。挡在这个地方。啊,这也是一种设计的思路。那在这个model里面啊,我换一种颜色,换一种颜色,比如说换成这个颜色吧,啊换个这个model model这个地方呢,就是相当于是我们的数据,这个是我们的model层。Model这里面呢,最重要就是我们的数据。啊,数据到时候我们会做这样几个东西,第一个首先呢,我们要添加一个user结构体。
06:05
就是加一个这个,加一个这个这个文件吧,user.go这个user.go里面呢,会定义或者叫声明啊,都可以定义一个user这个结构体。那大到先想想这个结构体里面应该包含哪些字段,大家可以动脑筋。至少哈,至少肯定用户的ID,用户的密码,用户的名字要有,当然还可以加很多用户的性别呀,他电子邮件呢啊,包括他的这个好,它对应的有哪些好友啊等等都可以,但是现在最基本的迫切需要的肯定是ID。密码和用户名最基本的后面可以加很多东西,可以扩展,这个扩展性就会很好,这是第一个要加的,第二个呢,我们还要做什么呢?我们还要一个专门用于操作user的一个DAO。OK,那有些地方呢,可能叫做manager,也可以,到时候我们还会写一个这样的文件叫user。
07:05
到。点go,那这个是用来干什么的呢?这个呢是一个数据库访问对象啊,数据库访问对象就这个DAO的简单的含义做一个介绍,Do,呃,我们我们很多同学呢,可能是有一些基础的,他应该知道这个data。Data,然后呢,A。叫做数据访问对象,就是专门用来访问一个咱们定好的一个实例或者对象的这么一个文件里边呢,我们会声明或者叫编写啊编写。编写什么呢?我们要去编写。编写对user。User这个对象,对象当然也可以叫实例啊,实例进行操作的各种方法,实例进行操作的操作的各种方法,各种方法,比如说深删改,查登录获取等等都可以啊,包括呃,像像有些啊,把些分页啊也加到这里面的,我们现在没有分页就不去考虑了,反正这里面有很多的操作,主要就是对主要就是啊对主要就是注意听。
08:20
主要就是对这个对其操作就是什么呢?比如说资产改查的操作。啊,增三改茶。改唱。OK。改。改善。啊,包括我们的获取用户啊,注册呀,都可以写到这里面去啊,可以写到这里。啊好,这是第二个要做的,第三一个呢,我们还要写一个文件,什么文件呢,就是因为我们将来登录也好,注册也好,会有各种各样的错误。那么这个错误呢,我们现在没有自定义错误,这个也不行,这个错误将来种类会比较多,所以说呢,我们还要去编写一些这个错误的信息,那我到时候会写个L。
09:08
点购。好,这个地方呢,是一个错误信息,到时呢,这里面定义啊自定义。自定义啊,这个关于用户制定一些错误吧。好,大致我们需要这么一些东西。大致需要这么一些东西,好,另外一个呢,同学们还有一个问题啊,大家可以看到,到时间我们会这这么去使用,就是如果注意听这句话啊,如果我们user process要去进行跟他进行数据的交互,就是他们之间的一个数据交互。听我讲就是客户端和服务器端的这个交互。他们之间的交互,我们使用user,呃,UTS,因为这是读写的操作,我们用这个工具,当我们要这个user process,或者是SM process process要去对RA进行操作的时候呢,我们会去使用哪一个呢?各位,我们会去使用这个工具,就是do。
10:15
哎,用它用这个到干什么事情呢?用这个到去完成对数据库的一个操作啊,也就是说后边跟数据库进行交互的动作呢,主要是放它来完成。大家看这个逻辑啊,就跟后台操作我们用的是U到跟前台操作我们是用的u tears里面的方法。OK,那除此之外,我们还要做一些工作。还有哪个工作必须要做呢?同学们想,我们既然要完成对RA的操作,那么这个时候呢,我们就要去连接red。那么软连接ready我们有两个方法,第一个就是当操作一次,我们就连接一次,对不对,但显然这个效率会比较低下,会比较低下,那还有一种什么思路呢?诶同学们,我们还一种思路呢,就是可以事先初始化一些这个re的连接词。
11:13
当我们需要操作的时候,我们就让这个user到去连接里面取一根连接,操作完了再回放回去,效率会大大提升,因此呢,我们这边还要建一个东西,就是我们这个可爱的连接词。连接词呢,这地方因为空间不够了,我就画到这个地方啊,首先大家要知道连接词是谁在维护。是谁在维护啊,显然不可能是red数据库在维护,而是我们服务器在维护,所以说这个连接词呢,它的这个地方如果要画的话,他也应该画在服务器这个内部。这个大家能理解吗?因为你这个是由谁来创建的,当然就是由哪个程序来维护的。对不对,你别说,诶red是它在维护,这就不合理了,但这个维护这个这个这个东西最好是画在这个model和red之间更合理,但是它还是属于这个服务器的一个范畴,它的逻辑会这样子啊,我往这边再挪一挪,因为这个这个空间不够我使用了。
12:13
我得往这边稍微的挪动一下,各位朋友。OK,那么我们可以把这一个服务器这块这个灰色的底线往后面挪动一下。到时间我们这有个连接词,注意听讲,连接词我稍微画小一点点。好连接词呢,画到这上面啊,然后画到上面更更形象一点,画画小一点。到线这边会维护一个连接词,用服务器来维护一个连接词,好这个连接词呢,我换成这样一个颜色,好,这是我们的连接词,Ready式的一个连接词,各位听注意听啊啊,我们到现都会用到ready的一个连接词。RA的一个连接词。那么我们原先呃,最普通的方法就是我如果要去操作历,我就这样去操作,这个操作呢,效率很低下,我们会变成我们实际上在我写代码的时候,我会这么去操作啊,这个线不要了,效率太低,效率太低我先怎么办呢?我先让这个连接词跟我们的数据库red已然建立好连接的关系。
13:22
已然建立好连接的关系,然后呢,我这个user do要去操作ready的时候,我就从它这里取出一个连接词。交给我就说我我从它取出一个连接词,然后呢,从这个连接连接再去操作它。啊操作,它操作完了过后,我把这个连接池用完了后,我连接用完了过后,我再把它放回连接池就可以了,它是这么一个逻辑。好了。代码我们大体就分析完了,那建设连接时我肯定会写一个文件,我用一个文件来维护,叫red。
14:01
顶购好同学们,整个这个思路就服务器这端的一个改进先分析到这儿,那下面呢,我们就要来开始写我们的代码,写我们代码那步骤是如此特慢的啊,同学们,第一步我们先手动往这个red里面加一个用户。然后呢,我们就去登录,看看能不能到数据库完成验证,这个做完了以后,这个做完了以后,下一步我们就让谁呢,我们就让这个客户端发送一个登录啊,登录或者是注册的一个信息,然后呢,如果发现用户没有,我们就把这个用户序列化,然后扔到数据库里边去,这个逻辑是这样子的啊,那就一步步来了。好,一步一步来啊,这个很有搞头啊,写完了过后,大家就觉得哦,思路就更清晰了。哎,好好,我们来开始玩这个东西,首先先往里面加点东西,来找一个东西把它扔进去,启动我们的ready先。
15:10
先把red提起来。找到呃,这个思路分析,我们先截取一段视频。
我来说两句