粉丝6.9万获赞46.8万



大家好,这里是一秋计算机毕业设计代作,本期视频带来的是一款教学质量评价评教系统的毕社,喜欢的点赞加关注。十分感谢大家这么长时间的关注,有任何关于毕社的问题都可以来问我,保证让大家满意,也保护你们的隐私。

这里是轻松学编程加腕入门篇的第三节课,我先给大家演示一下最终的效果, 我们要把这个项目导进来文件,这里需要学一下怎么导入项目导入我们常用的是 maven 啊,看一下,这是 maven, maven 存在的项目,点击下一步浏览, 这个是浏览,浏览找到我们这个存放位置,我先把它放到这里了,选择文件夹, 点击分一式就完成了,把它进行下边右下角有便利, 这是一个迈文的项目。好导人,进来以后我们要改一个东西呢,改个什么呢?改一下这个文件, 这个文件是连接数据库,好看到没有连接数据库,我们只需要把这个地址换成 logo hous 的撸,他不用动, 密码换成当时在创建数据库的时候那个密码。这里改好以后再说一下这个,我们一个一颗粒的字体有点小,我们可以这么改 windows 参数,在这里 选择这个样式,看了 fmx, 点击编辑,可以这里改,字号大小不要乱乱,小二 二号小三可以自己进行调整,然后我们小一要很大的一个应用,是不是很大了,然后我们把它改回来,我们改成三号。 好,这个是很正常的一个字体,改完以后我们看一下我们最终效果,我要运行这个项目,运行这个项目,选中 cnqc w r 这个,然后我们 然后这个字有点大了,好,我们右键选择,我一般喜欢第八个,第八个爱字,选择加把 auth 运行,然后我们在运行的时候,这里端口,在程序里边有一个端口的概念,除了 ip, ip 地址那个有端口 是九八九零,我们看一下我们的服务,服务已经运行起来了,斯坦的运行起来以后,我们看看效果, 不要这个不是重新开一个幺二 七点零点零点幺九八九零,冒号端口,九八九零回车, 这就是我们的留言板,帮我看一下,我增加一个标题,标题可以打自己的。学习编程好学编程吗? 留言人,比方说我们叫张大山,点击提交留言,看留言就已经上来了,然后我们可以对这个留言进修改,修改就出来了,比方说 把鞋变成吗? 哦,输入法切一下 叫 好学啊,我想学,比方说打成这个一提交就进行把它修改过来了,修改的是内容,这里提交 看到没有,这个涉及到哪些,他会把这一个提添加留言添加到数据库,然后进行修改,会修改数据库删除,从数据库中删除,然后我们再添加一条, 我想学编程,学学 寻哪个语言好?留言人,赵子龙, 留言又出来了,我想学编程,学哪个语言好?赵子龙,看到我们打开数据库,这,这时我们正好要学习一下数据库,双击这个 关闭,然后双击这个,我们的数据保存到这个例子,例子下有个表叫留言板,然后我们右键打开表,看到没有表,就是就是行 行的数据,没有标题,猜测是标题。学习编程内容,作者推荐时间正好对上标题内容。留言人, 抖音时间, 现在是两条记录,比方说我要修改 哪个圆好,我们点下修改 学加二可以吗?提交留言看我们这里没有变化,我们再接下边刷新一下,刷新 可以,是不是?然后我们试一下修改啊,修改,试了,我们试一下删除,我们比方把第一条删除,点删除,确定要删除留言吗?我们点取消就没有删,我们再点他确定吗?确定删除,然后我们再看一下我们数据库, 好,是不是就没有了?我们这一个基本上把一个程序所需要包含的都有了。前台 htm 二循环列 表,看到没有表单,提交表单,这是提交表单,然后对表单对这个内容进行修改,修改的时候把内容回写到表单,然后再进行编辑表单,最后删除,从数据库里删除, 这就是最基础的。我们下边就开始如何搭建这一个项目, 虽然简单,但里边设计的东西还是有一些内容的。好,今天就到这里。

当我们发表一条评论的时候,程序都做了什么?我们都知道程序是分前端和后端,所以当我们发表一个评论的时候,程序经历了前段的监听动作、传送数据和后端的处理数据返回结果这么几个过程。当我们点击发送按钮的时候,实际上会触发一个昂克力克事件。 我们通常使用复制符号,也就是等号来调用我们想调我们的方法。假设我们的方法名字叫做 reply, 我们唯一要做的事情就是在这个吧台按钮上,通过昂克利克等于 reply 这个方式来调用它。在这个方法中获取页面内容,组成 jason 结构或阿加克斯的方式发送到后台,最后也会处理一下后台返回的结果。 当程序执行到通过阿扎克斯的方式往后台发送数据的时候,我们这一份结构的字母串就会用前端来送到后端。当然这个过程当中还需要经过验证、压缩、加密等操作。而我们的后端在获取到数据以后,要对这个数据进行一些业务上的操作, 比如说二次验证等等,最后把它存储到数据库当中,并且把这次操作的结果通过这次的形式挽回给前台。学会了吗?哦?

大家好,我是鱼皮,俗话说的好啊,这个工欲善其事必先利其器爱。第二是目前企业中最主流的加瓦开发工具,这个工具虽然本身就很强大了,但我们还可以通住安装各种各样的插件来增强他的功能, 事半功倍。那今天呢,我就给大家分享一波最最最实用的 id 二插件。其实之前在网上有很多类似的分享了,那我为什么还要做呢?一是这个插件中心换代太快了,很多的插件都失效了。 二十,网上的插件分享都比较零碎。三十,很多的插件分享就草草的描述一下就结束了,并不能带大家感受到这个插件到底有多强大,多好用。所以我也特地整理了一部 id 插件,并且把他们分为了几大类,并且从大量的插件中 又精挑细选了十几个插件,在这期视频中给大家一一介绍和演示,希望能够帮助大家提高开发效率。 那我也是很贴心的将全部的插件整理成了一份文档,放到了我的原创公众号程序员鱼皮中。还有一些第二,快捷键使用技巧,使用教程啊,都放在一起了,大家如果没时间看这个视频的话,可以先收藏起来,或者直接去领取文档 好了,希望小伙伴们可以把知识打在弹幕上,下面让我们开始吧。首先,我把精选插件分为了地品和天品两类, 地品就是一些简单好用,增强功能的插件,天品是提高开发效率和代码质量的插件。首先打开第二,哎呀,这个界面黑不溜秋,略显枯燥啊,那为了吸引大家看下去,我 换着背景好了,是不是穴位比长长好看一点了呢?那这个背景是怎么换的呢?其实很简单,打开 fal 塞挺一次,选中 plus 一次,在这里可以搜索插件,要介绍的第一个插件便是 babygrady maxplus, 有了这个插件,我们不仅能给编辑器换壁纸,还能随机换壁纸。进入啊 prans 啊 prans 这里有一个 barry max, 在这里就可以选择壁纸图片,还可以选择他的排版啊,透明度啊什么的,跟我们桌面换壁纸是一样的。 进入这个插件,我们可以选择壁纸所在的目录,然后呢,可以设置定时切换壁纸,比如说每折五秒切换一张应用。 ok, 现在这个壁纸就会自动更换。第二者插件是中文语言包哎,第二默认是英文的,那如果大家觉得看英文比较吃力,可以下载这个插件,用法不要太简单,安装之后直接拆洗就可以了。 好,现在我们的 id 二已经成功汉化,但是这个插件只能让工具本身进行汉化,我们写代码归根结底还是要面对大量的英文,如果看不懂怎么办呢?可以使用穿丝雷神翻译插件, 他非常强大,支持多种翻译引擎,支持多种语言,支持文档翻译,支持华词翻译。 比如我们选中一个不认识的单词,点击右键穿丝类的就能翻译了。哎啊,大家不要惊慌,我们墙外之人遇到这个是很正常的。可以 打开设置,搜索川思雷神,可以切换翻译引擎,然后点击配置,申请应用 id 和密钥,创建应用,选择文本翻译接入方式 api, 然后就能拿到这些信息, ok, ok, 再试一次选词右键翻译大中照成以后,遇到不认识的单词,也不用打开浏览器凡字典再去查了,非常方便。下一个插件是 kippoot 叉快捷键提示插件, 这玩意太有用了,你说说,哎,第二,那么多快捷键我能记下来吗?对吧?肯定记不住,但下了这个插件后呢?每当我们没有使用快捷键,插件都会提示说你可以用哪个快捷键来代替这个鼠标操作。我们甚至还能看到有 有多少次没有使用快捷键,像这个玩意,我二十八次都没用快捷键,所以我很有必要来学习这个快捷键,提高我的效率,也是可以帮助我们大大减轻记忆负担吧。 下着插件是 renbobrk 彩虹括号,假如我们写了这样一行烂代码,括号套括号颜色还都一样,很容易就懵逼了呀。 那如果拆起彩虹绰号插件,他会给你的括号上色,同级的括号颜色相同,让你阅读代码更加舒服,不容易找错签套关系。 下载插件是抽的这浪子代码小地图,当我们要阅读很长的代码文件时,一直用鼠标滚轮往下滑就很麻烦。大家看右上方,有了小地图插件后,我们可以很方便的对代码文件进行浏览, 还可以灵活跳转到想查看的代码,真的非常方便了。接下来是两个代码统计插件,先看挖叉探目,安装插件后,你要去官网申请一个 app, 之后呢?挖差探母会自动统计我们的项目和编写的代码,比如说我在什么时候写了代码,写了多少行代码,用了什么开发工具,修改了哪些代码文件,一看便知。 和他类似的插件有 spatstat, 也是代码统计,安装之后在下方菜单找到 spatstate, 做一番统计的设置,要选定哪些语言,排除哪些目录, 然后插件就会统计出我们的项目有多少种不同类型的文件啊,每种类型的文件他有多少行,有多少注视,有多少冲行,还有些汇总 什么的。那如果你要申请什么软助专利,需要统计代码行数的话,这个插件还是非常棒的。 下面是帮助我们提高开发效率和代码质量的甜品插件。首先是 sj mandeple, 雷神自负上岸处理, 安装插件后,选中字不串,右键可以看到各式各样的字不串处理方法,有什么转意加解密,切换风格,什么排序啊,对齐啊等等等等。当然了,你也可以在设置中增删改字不串处理的行为, 按艾奥特加栏目,还可以直接呼出菜单,配合数字键选择行为,实现无鼠标操作。 下着插件是 typen 人工智能代码,股权也是之前的床兜毯安装及生效。有了这 插件,我们可以获得比原来埃迪尔自带的更强大的代码补全能力,而且你还可以训练它,据说代码写的越多效果越好。然后是两款代码生成插件, 首先是 gsappapplus, 按 alt 加 s, 打开插件,粘贴一段,摘散数据, 然后插件就会自动帮我们把 gs 转换为对象,这些都是自动生成的代码。 另一个代码生成插件是 junit 战略 ret。 有了这种玩意,再也不用自己去编写又臭又长的单元测试类了, 使用前记得先在设置中修改生成的测试文件,位置路径要根据你项目的实际情况来设置,当然你也可以自定义生成的代码模板。 ok, 然后进入到你想要测试的类中,点击 右键詹纳瑞特双层单元测试,下着插件简直绝了。飞坤 stylem 可以根据代码帮助我们生成实序图,在代码文件中点击右键,选择 ctrl 带转,选择某个方法,然后得到实序图,可以查看方法间的调用顺序和关系, 还可以导出为图片或者 uml 类图,这在我们阅读原码和技术分享时特别有用。 下面插件是 resto two, 这是一套 restop 服务拆发工具集,我们大多数后台拆发同学的工作就是编写接口,什么登山摆茶 那如今非常流行的接口拆法规范,有了这个插件就可以很轻松的管理项目中的接口,大家看一目了然 然还能轻松查看接口的请求头,请求体,还有返回,甚至还可以在线调用,真的是非常的方便了。接下来是三款代码检查插件, 首先是拆除 style, 有了这种玩意,我们就可以指定一套代码规范,可以用现成的,比如主遮代码规范,也可以自己编写一个规范文件,在团队内部保持统一。 插件能够指出我们代码中写的不规范的地方,并且快速定位,从而优化我们的代码,指出我们代码的不足之处,帮助我们养成好的编程习惯。 类似的插件还有阿里巴巴、加瓦规范以及 sonant, 他们的用法和 chix 调很类似,检查出一些我们可能忽视的细节,给你一些好的建议,你也可以 在代码文件或者目录中点击右键主动扫描。最后这个插件真的拍案叫绝。买白题是差 是对加瓦知名数据访问框架买白提死的扩展功能包括美化图标,自动跳转以及最最最实用的代码生成。 选中数据表,点击右键打开生成器,然后配置一些生成的路径,指定一些选项,比如生成注视、生成注解和其他框架整合等等。 像这些加袜对象都是拿它生成的,没必要重复的编写。当然我最喜欢的一点还是因为它免费,虽然好用的买白提斯插件不少,但是免费的真的是太难得了。还有这个福瑞买白提斯 阿枕也是不错的,大家也可以试一下。好了,以上就是本期分享更多插件,大家可以在公众号后台回复 id 二获取,那如果本期视频有帮助,还请大家多多点赞收藏投币三连支持! 大家有什么好用的插件,也欢迎在评论区留言分享出来。我是鱼皮,一名分享编程章货的程序员,阿布主,我们下期再见!


githubs 上收藏量最高的加瓦练手项目,应付 b c h 项目就够用了,像电商项目为人事管理系统快速构建中小型 api 项目 macadam 编辑 sism 博客系统考虑到有些同学进不去 github, 我给大家把项目都下载下来放在评论区了,大家可以根据自己的需要学习扣六领取吧。

梦瑶,你过来一下,我刚刚看了一下你这个更新藏品的这个代码啊,虽然说整体执行下来没有什么异常,但是我觉得这里面有很多的优化点,然后主要是在于什么?是在我们执行时间 rt 的优化,我现在给你讲一下。呃,宋,宋春生,你也可以听一下 啊。你看你这个代码,这个代码里面分为几步,首先第一步这边是要更新这个藏品,对吧?对。然后第二步是什么?查询这个属性,然后判定一下这个属性对不对?这个命名用历史的命名啊,不要说用这种什么 id 这种奇怪的命名方式啊。然后第三步就是要 删除吧,就是循环删除已经存在的这个属性,然后第四步把新的属性插入进来,对吧?对,然后你会发现我刚刚讲的这些操作是不是全部都是数据库的 l 操作, 对吧?然后我们再看另外一个东西,这边得做几个教练,因为你这里是加了事物,对不对?我们这边抛出的异常之后,这个事物是会生息失效, 对吧?所以我们的这个 update 和这个方案的操作就会失效,对吧?对,那么我们可以怎么做?我们可以把这个教验前置,比如说刚刚的我们最近的一个教验,我们是不是可以放到这个 update 之前?这样子,我们这个操作失败了,那么我们这个 update 是不执行的,对不对?是, 我们再看这一个教验,然后这个教验就更特殊了,这个教验是什么?你是从参数里面获取的属性来进行一个教验,发现没有?嗯,这是跟所有的数据库,你这一步还查一下数据库,这一步是完全不用查数据库,对吧?对,那么这个教验我们可以完全是放到更前面,放到这个教 交易,交易 id 的后面,因为这个交易失败了,他是后面所有的逻辑都能不执行的。你看 一旦出,一旦我们这样改下来之后,我们出现这个异常是不可以减少很多次的。这个数据库的 l 交互是, 还第三个,第三个你发现没有?你这个删除啊,删除这个逻辑啊,你是通过循环来删除的,其实这里我们完全可以通过批量删除的方式,你说对不对?即使说我们里面是 update 操作,对吧?也是批量 update 吧?还有这里我们是通过的 add, 你循环进行一个插入,对吧?嗯, 这里我们是不是也可以通过批量的 a、 d、 d 操作,对,对吧?对,这是当我们数据量比较小的时候,我们这么操作他可能性能影响不大,一旦我们数据量搭起来,我们这这里就很很影响性能, 很耗费。 rt, 知道吗?啊,这你注意啊。啊,宋春生,听明白了吗?听明白了, ok, 好,那就这样,你们继续敲吧。

前面呢咱们是已经完成了在我们 java 程序当中来操作 redis, 那接下来呢,咱们就来看一下我们今天最后一部分内容啊,也就是我们这个店铺营业状态设置,这个业务功能的开发。 那这块呢,我们还是通过这三个方面来说啊,首先呢是做一个需求分析,还有接口的设计,然后呢我们进行代码的开发,最后呢来做一个功能测试就可以了。好,那接下来呢,咱们先来看一下我们这个需求分析和设计。 那现在大家看到的这个页面呢,其实就是产品经理给咱们设计的产品原型这个页面对吧?那么在这个页面上呢,大家可以看到,那么我们这个地方,也就是在这个位置可以展示我们当前这个店铺的状态对吧?那这个地方 可以展示成营业中或者是打烊中对吧?并且呢,我们也可以去修改这个店铺的营业状态,那比如说我们要修改的时候呢,我就可以点击这个地方这个按钮,也就是营业状态设置这个按钮,那这个时候呢就会弹出来这么一个对话框对吧? 这个时候呢,我们就可以选择去修改这个营业状态,比如说呢,我可以把这个状态给他设置成打烊,当然也可以设置成营业对吧? 然后呢,我们前面其实也提到过了,那么我们修改完这个营业状态之后呢,他其实是会影响到我们小程序这一段用户点餐的对吧? 那如果说我们当前这个店铺的状态呢,设置的是正常营业中这种状态,那这个时候呢,用户是不是应该就可以正常去点餐?那如果我们设置成打烊呢?那用户是不是就不能点餐? 大家看我们这个地方呢,是不是也简单说明了一下对吧?如果是营业状态客户呢,是可以在小程序下单点餐的对吧?然后呢,如果是设置成打烊这种状态呢,那么客户是无法点餐的。 所以从业务功能这个层面来说的话呢,其实还是比较简单的对吧?那接下来呢,咱们就需要来做一个接口设计看看呢,要实现我们这块这个业务功能,需要设计到几个接口? 首先我们最容易想到的是什么呢?就是我要修改这个营业状态,那这对应的是不是需要一个接口对吧? 然后呢,我们在这个地方是不是能够看到当前这个状态啊,也就是说我们是不是需要有一个查询类的接口,去查询一下我们当前这个店铺的营业状态。所以这个地方呢,起码是不是应该有这么两个接 口,一个就是去修改这个状态的接口,还一个呢,就是去查询这个状态的接口。那么我们这个地方呢,需要再来多思考一下,就是什么呢?我们查询这个营业状态,首先呢,是在我们商家这一端是不是需要查询对吧?你看,从这个产品原型这个位置呢,就已经体现出来了。 那么在我们用户的小程序那端需不需要查询呢?那很显然是不是也是需要查询的。 但是这呢,可能大家会有疑问,就是什么呢?那既然都是查询状态,那我这个商家管理端这个查询状态跟小程序这一端,这个查询状态我能不能使用同一个接口呢? 哎,实际上呢,从技术层面来说呢,是完全可以实现的。但是呢,在咱们这个项目当中啊,我们是给他设计成了这么两个不同的查询 接口。那么为什么这样来设计呢?那这个呢,主要就是因为我们当前这个项目对于我们这些接口路径啊,其实是做了这么一个约定的。大家来看一下。 也就是说啊,我们现在这个接口呢,应该是分成了这么三个接口,一个是设置营业状态的接口对吧?还有两个呢,都是查询营业状态的接口。而这两个查询呢,一个是管理端查询的, 还有一个呢,是用户小程序这段来查询的。那么为什么这个查询设计成这么两个呢?哎,就是因为我们这个项目啊,有这么一个约定啊。 那具体的约定是什么呢?就是我们这个商家管理端发出的请求啊,咱们是不是统一都使用的是杠啊的命作为前缀啊。你看咱们前面开发的这些业务功能,不管是我们员工模块的对吧,还是菜品模块, 套餐模块,包括分类模块,那么这些呢,都属于我们管理端相关的一些接口对吧?那么咱们是不是统一都是使用的杠啊的命这个字符串作为我们这个请求的前缀啊。那么我们用户端的请求呢,到时候呢,咱们会统一使用杠 user 作为请求的前缀。 所以说呢,你看我们不同的端发出的请求呢,从这个前缀上是不是就不一样?所以说呢,我们这两个接口的话呢,其实是没有办法去合并的,这就是基于我们当前这个项目的约定。 那么这种约定其实有什么好处啊?就是我们的程序是不是就很容易能够判断出来,当前这个请求是管理端发出来的,还是用户端发出来的,我是不是根据这个请求的路径就可以去判断对吧?好,那接下来呢,咱们就具体来设计一下,看看我 我们这三个接口具体应该是怎么设计。首先第一个呢,是设置营业状态,那既然是设置营业状态,那是不是相当于是一个修改类的操作呀,对吧?比如说我当前这个营业状态呢,可能是这种打烊这种状态, 那现在呢,我是不是给他设置成这种营业状态,对吧?所以说呢,他本质上呢,应该是一个修改类的操作。 所以说这个请求方式呢,是不是应该是一个 pro 的方式,对吧?然后呢,这个请求路径呢,那我们是不是应该是以杠啊的命作为前缀啊,那么后边跟上什么呢?咱们这个店铺呢,是不是应该叫做 soft? 所以说呢,我们这个地方应该是杠 are the mean 刚 soft。 然后呢,我现在要把它设置成一个具体什么样的状态呢?我是不是可以把这个状态值给他传过去,那我这个状态值具体怎么传呢?咱们其实有多种传法对不对?我既可以 通过 u l 地址栏来传,我是不是也可以通过咱们这个请求体来传,对吧?或者说呢,我还可以通过路径参数来传,是不是都可以, 对吧?所以说呢,咱们来看一下咱们这个设置营业状态这个接口,你看我们这个请求的方式呢,就是 put 方式, 然后呢,这个请求路径呢,就是 gun and mean gunshop, 然后呢,后边是一个路径参数来传咱们这个状态,而我们这个状态呢,还是做了这么一个约定啊,如果我们传过来的值是一呢,就表示给它设置成营业状态,那么如果传一个零过来呢,就表示打烊这种状态, 那么你看咱们是不是只需要把这个状态值给他传过来就可以了对吧?那其他的参数呢,其实就不需要了。然后我们设置完之后呢,是不是需要给他返回数据啊,来告诉我们的前端。那 那你这个设置到底是成功还是不成功呢,对吧?那这个返回数据呢,其实跟原先都是同一个套路啊,还是 code data message。 然后这个地方这个 code 是不是必须的, 比如说我们如果这个业务操作是成功了对吧?那么就返回一个一就可以了,那么如果操作失败呢,是不是就返回零,并且呢,把这个 message 是不是也给他返回,好让前端是不是去展示一下为什么没有设置成功对吧?好,这就是咱们这个设置营业状态啊,这个接口就是这样来设计的。 然后接下来呢,我们再来看一下,就是我们这个管理端来查询营业状态这个接口,那么首先呢,它是一个查询类的操作,所以这个请求方式呢,肯定是 get 方式对吧。 那我们这个请求路径呢,是不是就可以使用 gun admin gun shop, 然后再来一个 gun status, 注意这个 status 呢,它就不是路 进参数了对吧?那么我们获取状态的时候,其实需要传参数吗?哎,其实就不需要了,对吧?所以说呢,这个请求呢,应该是没有参数的。关键就是什么呢?关键是不是需要通过返回结果,也就是返回来的数据,来体现我们当前这个店铺他的营业状态对吧? 咱们是不是还是基于这个约定,也就是如果这个 data 里边放的是一呢,是不是就表示是营业状态的对吧?如果放了个零呢,那是不是就表示是一个打烊的状态? 接下来呢,咱们来看一下我们这个管理端查询营业状态这个接口,你看请求方式是不是就是 get 方式。然后呢,这个请求路径呢,就是 gun under me, gunshop, gun status。 然后呢,我们可以看到请求参数这一块是不是没有?然后这个返回数据呢,你看就是我们这个地方是不是会使用到这个 data 对吧?那么如果这个 data 呢,它是 一,就表示当前这个店铺的状态啊,是营业中的状态对吧?如果是零呢,就表示店铺的状态呢,是打烊这种状态。好,那这个接口呢,其实还是比较简单的。然后接下来呢,我们再来看第三个接口,也就是我们这个用户端查询营业状态。 那这个接口的话呢,大家其实应该很容易就能想到啊,是不是应该跟我们这个管理端查询营业状态这个接口非常类似,只需要哪变一下呀,是不是只需要我们这个请求的前缀,把这个杠二的命给他改成什么呢?是不是改成杠 user 就可以。 所以说呢,我们来看一下咱们这个用户端查询营业状态啊,就是这么一个路径,杠 user 杠 sofa 杠 status 对吧?还是 get 方式请求,然后呢,反过来的这个数据呢,其实也都是一样的,所以唯一的区别在哪呢?就在于这个请求路 路径是不是不一样。好。咱们呢这是把这个接口呢给设计了一下,一共呢,是不是就设计到了这么三个接口对吧?那这个接口设计好之后呢?那接下来咱们是不是就需要来想一下,那么我们要存储这个营业状态这个数据,那具体我们应该如何来存储啊? 咱们当然是可以把它存到一张表里面的对吧?但是你会发现啊,如果我们存到一张表里面的话,那这个表的话,他是不是只需要有一个字段,就是这个状态字段,并且呢只有一列对吧?存一个零或者一就完事了。 那这个时候呢,就为了存这么一个数据,我们就单独搞一张表,其实是没有多大意义的。那我们现在呢,应该如何来存储这个营业状态这个值呢?那这个地方呢,我们其实是建议什么呢?把它存到我们刚刚讲的这个 redis 当中, 大家来看一下。你看我们这个营业状态数据的存储方式呢?我们是建议基于 redis 的字符串儿来进行存储,因为它其实无非就是一个状态值嘛,对不对?或者是零,或者是一。 你看咱们 redis 当中的数据呢,是不是就是这种 key value 结构的?那现在呢,我们是不是就可以来设计一个 key, 比如说叫做 shop gun status, 那这个 k 所对应的值呢?或者是零,或者是一对不对?那么这个时候呢,我们通过这条数据是不是就来体现我们当前这个店铺的营业状态 对吧?那这样的话呢,我们使用起来呢,其实是非常方便的,咱们就没有必要在我们买 circle 数据库里面单独去创建一张表了。那么我们这个地方这个约定呢,就是这样的对吧?刚才也已经多次提到了,一表示营业零呢, 表示打烊好。那么到这的话呢,咱们是对我们这个店铺营业状态设置这块进行了一个需求分析,并且呢把我们所需要的这个接口给设计出来。 然后呢,把这个数据的存储方式呢,是不是也已经指定好了,那一会呢,我们就通过代码的方式啊,把这块功能把它开发出来就可以了。

嗨,大家好,最近总是有些朋友在问我,在使用 intellige idea 的时候,使用了哪些主题插件,或者说使用哪些特定的插件来提高自己的工作效率,所以在本期视频中会介绍一些我使用过一些 有趣的 id 插件,接着来提高工作的生产力。好了,废话不多说,让我们开始吧。 ok, 咱们来看一下我的 id, 这个界面是白白的对吧?那个特别的丑陋对吧?什么也没有,那如果咱们想把它改成一个深色主题怎么办呢?这里边我经常使用一个插件叫做插扣的,咱们这里可以双击 shift, 然后输入 plugin 这个关键词,然后打开 plug ins, 当然你也可以在这个这个 personality 打开之后去找像的 plug in 的菜单,然后咱们在这个 marketplace 里面输入插口,插口第一个就是叫插插口的 duct, 然后咱们来进一下安装, ok, 现在其实就已经安装好了,然后我们现在就看到的是一个深色的主题,这样照看着就这个就比较符合咱们家教成员对吧,使用 idea 的一个习惯了。那其实咱们再看左边这个图标呢,其实左边这个图标看起来还是 比较丑啊,心情是就不是很美丽了。其实咱们这里面可以再去下载差别叫 atom, 咱们这里再去再去找一下 plug in plugins, 点进去,然后咱们搜一下 atom, 就是这个 autumn material accounts, 它就是会把你的这个你左侧的这个项目的结构呀,包括你其他这个 idea 的一些一些一些图标啊,给你替换掉,看起来比较舒服一些,那么这里面也可以装一下,正在下载, ok, 这里面它需要咱们的 rest 二小 idea, 那咱们就重启一下 restart, okay, 嗯,重启完了啊,咱们再看左侧这个图标,就非常的有意思了,看 controller 抖麦 mapper service, 对吧?他就你帮,他会帮你生成各种不同颜色的这个文件,包括你的样子文件,这个小图标 y a m l 就是,啧,看起来非常的舒服, 非常的棒。关于关于主题插件呢,我这里再介绍一个,就是我自己也非常喜欢的,就是说你的程序在加载的时候,对吧?你的进度条一般是在下方黑黑的,对吧?特别的难看,比如说你在启动项目的时候,你慢慢的依赖在加载的时候,对吧?可能很慢,然后你的心情就会焦虑,然后就不开心了, 那咱们怎么来改进这个,对吧?这个进度条的美观或者说你的心情呢?这里我介绍一款这个进度条的一个一款的主题插件,叫做 mario, 就是马里奥。然后咱们来搜索一下,还是在这个 marketplace 地方啊,咱们输入 mario, 咱们可以看到一个 mario mario process bar, 然后咱们点键装 instell, 安装成功了, ok, 比如现在我们刷新一下这个 man 的依赖,咱们看一下是不是有这个拉利 out, 这个进度,这个太快了。再来一遍,可以看到啊,下下方有这个, 看到下方是有一个有一个小乌龟的,因为咱们依赖比较少啊,所以他比较快啊,可以看到下方有个小乌龟。 咱们来看这段代码啊,这段代码其实缩进很多啊,对吧?有有有,缩进两个 table, 四个 table 的,对吧?然后咱们就是很难发现他是怎么进行缩进的,其实咱们可以下载一个叫做 intent 的一个 idea, 一个插件,咱们下载完插件之后,对吧?这些代码是不是看起来就比较清醒, 叫做 intendant, intendant ribbo, 咱们把它安装一下,点击 instyle 看,现在你看到这个吧, mario 的这个 process 填就 ok, ok, 咱们看看这个代码对吧?你是有几行缩进清晰明了,你的 four 循环到哪结束,怎么对齐,对吧? 你这张照看起的代码就很清爽,看看其他的都已经帮你加好了都已经帮你加好了。 这个高亮缩进提示的插件还有一个好处就是可以提醒我们在写这个 spring boot 的 application 的样本文件的时候,他也可以给我们展示这个缩缩进多少,这点是非常好的,这防止你的样本文件这个缩进错了, 就有可能会启动报错呀,或者之后读取会报错位啊,这点也是非常好的。 ok, 其实我们在写这个 three boot, 这个配文件就是 application 点压文件的时候是默认是没有警提示的啊,如果我们想有这种提示的话,呃,怎么办?比如我们输入 spring, 然后后面就能够提示出 application, 提示出 name 来, 那么怎么能做到这一点呢?这里我们可以安装一个插件叫做 spring boot, 呃,精神,咱们来搜索一下, 找到 plugins, 这里输入 spin boot, 呃, assistant, 然后咱们这里安装一下 install, 看到没有?又看到这个马里奥了, ok, 点击, ok, 然后这时候我们把它删掉啊,然后咱们你看这里面就现在就已经有提示了,你是输入 a begin 点 name 呢?还是 iq mq 呀,还是 lp 点 alt 呀?只要你选上了,那么他就会自动帮你生成了,非常的方便啊,不用 你一个一个去敲了,而且是智能的帮你提示了。 ok, 我们这里再介绍一款插件,用于使用不同的颜色标记程度的括号啊,咱们可以看现在这种括号都是,对吧?都是相同的颜色,白色呀,包括这种小括号,大括号其实很容易造成混乱,那么我们怎么能够对吧,比较清晰,比较美观的,对吧?看到它是一对括号呢,哎,咱们来安装一个 用于标记乘值括号的一个插件,嗯,再来搜索一下,这个插件名字叫做 rainbow, rainbow breakcase, 然后咱们进行一下安装, excel mario processor 一直在这 loading, 这个插件比较慢啊,哎,安装成功这一他又让我们去 resign, 那咱们就 resire, 看见没有, mario 又出现了, 哎,咱们再来看这个代码啊,刚才都是白括号,比如说这对黄色的,这对黄色的包括你的数组,对吧?你的小括号他都给你标记出来了。这样,然后咱们再看咱们代码的时候就非常的清楚,再包括这,再加上这个使用这个缩进的这个插件, 你的代码就非常的整洁了。在咱们开发过程中,经常会开发一些 api, 比如 rise api, 那你在写完好 rise api 的时候,经常会做一些测试,比如你用这个 posna, 或者用 api fox 在进行测试的时候,比如是一个这个 post 请求,对吧?你需要提交一个这层数据,那么你的这层数据可能是,对吧?你后台 你在程序里定义的一个 dto 对象,那么你怎么能够快速的复制出这个 dto 的 jason, 对吧? jason 格式的 jason 格式的数据,然后到你的 a b fox 里,然后点击请求提交数据呢?这里我介绍一款我经常使用的产检,叫做抛九图 jasonok, 我们来下载一下抛九图 jason 这个插件, performance plug ins, 然后在 marketplace 输入抛球 to jason, 搜索一下,咱们可以找到抛球 to jason, 然后 install, ok, 然后咱们右键一下啊,右键诶,咱们可以看到 copy jason 或者是 copy jason and read them value, 咱们点 copy jason, 然后其实咱们可以,嗯,创建一个文件吧 feel test, 这次咱们看一下这个,这次他已经帮他们生成好了,就直接 ctrl v 复制到这就可以了,那你可以把它复制到你的 api fox 呀,或者是 posemak 金箱的测试。 ok, 最后我们来再介绍一款能够给你智能提示和补全代码,或者给你代码建议的一款叫 code completor 的一个插件啊,这里我们还 是打开 performance, 然后是 plus, 然后我们输入叫做 tim nine, tim 的名字叫做 tim nine aicode complication, 这里其实我已经装好,装好了啊,然后 ok, 我们来做一下实验啊。这里我们需要搅一下这个柚子 id, 如果柚子 id 为空,对吧?我们就会抛出这个参数异常, 然后这里面点 if user id id 等于等于 now, 然后我会 throw, 你看它,这里其实就已经给提示了, 你有,对吧?还有这个 arguments exception, 那如果你想选择他这个体式,或者说他给你的建议,你需要进行选择,那么既然 tab 键就选择上了是吧?你看他还给你加说 uz 肯定比闹,其实他已经帮你加好了, table 是不是特别的智能 哎。今天的分享就到这里了,希望大家给予点赞关注,再见。

作为一个家,往后端如果让你来设计推特出技术方案,你怎么做?根据推特二零一二年十一月发布的数据来看,推特两个典型的场景,第一,发布推文消息,用户可以快速的推送消息给所有的关注者, 平均大约每秒钟的请求量是四点六 k, 那么在峰值的时候,每秒钟的请求量可以达到十二 k。 第二个场景是主页按照时间来浏览消息,可以查看到关注对象的消息, 平均每秒钟的请求量是三百 k。 我们先看第一种方案,也是大部分人都会想到的方案,设计三张表,分别为用户表、追随者表和消息表,然后通过用户 id 来关联查询,得到用户所有关注的人所发的消息,最后按照时间 排序就可以了。这个方案会有问题,当一个人有几十万或者几百万追随者时,这种人越来越多的时候,那这个方案优化起来就会越来越困难,这个时候有了方案二,对于某个用户的时间线维护一个缓存,当一个用户发送新消息的时候, 查询他的关注者,然后将消息插入到他关注者的时间线缓存中,因为放在了缓存中,所以读取速度, 时间线的速度会非常快。但这个方案也有问题,就是如果一个人有三千万多万个追随者,就需要写入三千万词。 按照之前提到了四点六 k 每秒的写入量,对写入的性能是一种考验。那最后推特采用的是哪种方案呢?方案二已经稳定实现了,并且能控制写入时间在五 五秒内。推测采用了两种方案结合的形式,大多数用户会以一对多的方式写入时间线缓存,少数具有超多关注者的大网红,他们的消息会被单独处理,然后只有用户需要读取的时候,才会和用户的时间线的缓存合并。 其实可以理解为我们一般处理热点缓存的方法。这个技术方案不是我编的,是这本数据密集型应用系统设计中写的真实案例。 有人不是经常苦于没有实际项目经验,每天 crud 吗?其实完全可以在书里找方案借鉴一下,如果感兴趣可以买来看看。但友情提示一下,这本书真不是所有人都能看懂的,不要乱花钱,关注我,一个分享干货的技术博主。

推荐一个超级强的基于扎瓦开发的博客框架。一直以来开源博客呢,主要以 p h d 的 word price, note g s hikeso 六的 view price 这三个博客框架为主。但是有没有基于扎瓦语言开发的简单又好用的博客框架呢?还真有这个项目呢,在 github 上有二十五 k 的 stat, 它是基于 spring boot 开发的,还主要用到了 g p a 糊涂 bootscrab 龙 book, eige catch 等常用的开源工具库项目当中呢,同时提供了前端的博客页面和后台的管理页面,但基于刀科呢,就能快速的进行构建。 而且这个博客呢,他支持马克当,所以对程序员来说特别的友好。而且他和其他著名的博客系统一样,他也支持不同的主题和插件。最重要的是,他是基于扎瓦医院开发的,所以扎瓦开发者呢,完全可以自己任意抹改, 你可以开发各种主题插件以及任何你想要的功能,而且他还有自己的社区,可以在里面和其他的开发者一起交流。这个项目的名字呢,叫做 hello, 在 kithub 或者 kte 上面呢,你都能搜的到。不管你是想搭建一个博客自己用,还是想找一个小的项目练手,这个项目都非常的不错,强烈推荐给大家。