前言:今天突然意识到,实习记录很少有技术性的东西,更多的是自己的心里活动和一些感想,其实这类博客更趋向于日记而非技术记录。也许哪天不再充满兴趣了,这个实习记录也就结束了(想下班了同志们)

实习第三天:

上午9点打卡,我今天8点38就打了,看来明天还是晚起十分钟,多睡一会

上午第一件事问问大哥有没有什么活,大哥给了我一个扩充条件查询的任务:

首先修改后端,找到对应的接口之后从controller-》service-》mapper-》mapper.xml一层一层往下看。看到service的时候我都懵逼了,怎么一个分页查询写了200多行,有这么多的mapper在里面,本着好好学习的理念我先快速浏览了一下代码,果然没看懂.....不过我找到了我需要修改的那个SQL对应的mapper,点进去之后我又傻眼了:一个SQL怎么有200行,join了10个表,不是说阿里公约规定不建议用join连接应该把这个分散在service里吗?不过还好,我的任务不是梳理SQL,我只要找到我新增的那两个内容对应的表的别名,然后往后堆<if>就好了。除此之外,我还需要给dto添加两个我写的额外的内容。至此后端的修改就算完成了。

在前端新增两个视图,这个可把我难住了,我现在能根据请求立刻找到前端的js,根据URL找请求,再根据请求找params。然后想法把数据填进params。那么问题来了,我该去哪找这个html呢,我发现压根没有和js对应名称的html。经过我地毯式搜索半天,最终我放弃了,因为我又想到了另外一个主意:根据页面上的中文div去搜这个页面。然后我发现好多div内的中文都被封装了.....还挺不好搜,不过幸好有个漏网之鱼,估计是后加的,所以我很快就定位在了两个网页,通过实验对比我确定了是哪一个网页,添加上了输入框。照葫芦画瓢添加输入框之后,我又在找怎么把数据放入params,我翻遍了那章JS,却等到一个相关字段,之后我抱着试一试的心态直接发送请求,居然把我添加上的内容携带了,那么按理来说我的任务就算完成了。不过我没有查看数据库的权限,而网页内显示的数据是没有我输入的字段的,就是说我没有测试数据,最后我通过乱输测试了一下,看看能不能查到内容,id那输了个1,成功了,修改到此为止。

因为时间还很充裕(我抱着强烈的好奇心想看看这个分页的service是怎么实现的),我看了那个service的实现,经过我大概半个多小时的梳理,终于明白了他的大概流程:分页订单查询是一个多角色使用的查询,这里的代码将不同角色不同权限耦合在了一起,也就是说,在开始查询的前面必须要抽出来当前查询的用户角色,然后根据角色为query附上更多查询条件以便于过滤内容。在查询出内容后,又要根据不同角色权限去为查询出来的数据添加一些额外的内容然后将他们一并返回。我还注意到了一些特别的内容:1.实现方法的开始,还特意为数据导出提供了一个额外的变量:当使用数据导出功能时,为了防止数据过多导出来直接崩溃,设置了1000条一页的查询,以便于安全实现。2.在商户查询自己旗下的订单时不仅需要根据自己的ID过滤,还需要根据自己当前的地市再加上过滤条件。了解完这个流程之后就已经快到饭点了,我把代码推上去上午的活动也就结束了。

关于git的commit message,我昨天看到了大家的commit message的格式是【姓名】当次内容,而我之前都是只提交了内容(因为经常看游戏修复了XXBUG,所以我也会在提交的时候模仿这种口吻,类似于:修复了XXX,现在他变得更完善了)

中午:恰饭!不过今天的午饭不是很给力,很素很淡很减肥。但是由于我饿了,还是吃了很多....吃完回去的路上遇到了大哥(应该是?),很遗憾的是我没认出来,大哥和我打招呼问我吃了吗我说吃了当时还在好奇这谁?....现在稍微有点困了,我打算先看看leetcode再睡觉,今天写的是leetcode283移动零:两层for循环就可以过,看了大佬的优化只需要一层for循环,有一个非0的计数器:不是0就覆盖计数器的值,计数器++,这样循环结束后,当我们的计数器的下一个值开始一直到最后就都赋0即可。我的腿上被蚊子咬了十几个红包,妈呀,明天开始不穿短裤了,今天已经喷了好几次花露水了,再咬要变成火腿肠了T^T

下午:想咬打火机了

上午代码写错位置了,金箔的怎么那么多长的差不多的代码块。改了半天最终很无奈只能发给大哥,大哥直呼没问题,后面过了半天大哥告诉我是万能解:缓存锅

然后开始下午的任务:大哥让我写一个接口,仿照一个分页查询,写一个分组查询。第一次写接口还是有点小激动的,又仔细阅读了开发者手册:取名get是返回单个数据的,取名find是返回list的,取名query是返回分页的。

之前一直以为是上面不愿意给数据库文件,今天和大哥说我一直是摸黑测试的,大哥交了我平时怎么找sql,先找到yaml这类的配置文件,然后通过里面的jdbc,user,ps等等就可以在自己这链接上数据库啦,后面大哥还告诉我这里面都是测试数据(不过这东西是存在公司的服务器),想咋改咋改。不得不说看着好几十个字段好几十个表,黑压压长长的满是null的库,很难受。

命好名之后我先画了个流程图,然后问大哥,经过多次审批(2次)大哥觉得我的图没问题了,那么我的代码也就没问题了(大概吧,明天才会知道,今天已经没有想测的时间了)配一下模块里没用过的启动类,查查数据库熟悉一下dbaver,弄弄swagger看看jwt不如今天就到这里吧,实习生6点该润还是要润的

实习记录day03:尝试写一个接口的更多相关文章

  1. 第二篇 -- Django写一个接口并用Jmeter进行测试

    第一节学习了Jmeter的下载和安装,那么第二节就来看看具体怎么使用. 本篇介绍的是使用Jmeter进行http接口测试,那么接口程序使用Django开发的一个小接口. 一.Django编写接口 这一 ...

  2. Flask--第三个例子,写一个接口,该接口返回html前端页面,模板的使用

     将接口数据返回至html前端页面有两种方法 方法一: 1 @app.route('/index',methods=['get']) 2 def open_index(): 3 page=open(' ...

  3. 纯后端尝试写一个前端slide插件

    概述 由于项目组前端人员缺失,又赶上需要在手机端做一个slide效果的页面,所以只能自己硬着头皮上了,写的很简单,请大家不要笑话,只是拿出来分享下,大家先看下完成后的效果,如下: 过程 看了效果图是不 ...

  4. 在dedecms系统下, 改写火车头的入库接口 写一个接口文件运行一次自动读取 http://news.163.com/rank/

    1:火车头入库接口里面的密码与login.php传过来的密码是保持一致的: 2:在(!$ispost)里面编写一个form表单提交,验证用户名,channelid,以及typeid; html代码格式 ...

  5. 用openresty(Lua)写一个获取YouTube直播状态的接口

    文章原发布于:https://www.chenxublog.com/2019/08/29/openresty-get-youtube-live-api.html 之前在QQ机器人上面加了个虚拟主播开播 ...

  6. 写一个Spring Boot的Hello World

    尽管这个demo也就hello world水平,但我还是要记录一下(总算能动了QAQ),毕竟老是看文章不动手不行啊 上次写Servlet的CRUD项目还是2月份,虽然代码忘的差不多了,但我就记得JDB ...

  7. Swagger解决你手写API接口文档的痛

    首先,老规矩,我们在接触新事物的时候, 要对之前学习和了解过的东西做一个总结. 01 痛     苦 不做.不行 之前,前后端分离的系统由前端和后端不同的编写,我们苦逼的后端工程师会把自己已经写完的A ...

  8. 手写一个简版 asp.net core

    手写一个简版 asp.net core Intro 之前看到过蒋金楠老师的一篇 200 行代码带你了解 asp.net core 框架,最近参考蒋老师和 Edison 的文章和代码,结合自己对 asp ...

  9. 怎样写一个webpack loader

    div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme- ...

  10. 用Python写一个简单的Web框架

    一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...

随机推荐

  1. Win10任务栏图标居中

    win+q键搜索并打开字符映射表 点击第五行的空白字符,然后先后点击下方的选择以及复制 在桌面新建一个文件夹,然后重命名,将刚才复制的空白字符粘贴进去,如图,这样我们就拥有了一个空白名称的文件夹 在任 ...

  2. Linux 应用案例开发手册——基于Zynq-7010/20工业开发板

    目 录 1 开发案例说明 4 2 Linux 常用开发案例 4 2.1 tl_led_flash 案例 4 2.2 tl_key_test 案例 7 2.3 tl_can_echo 案例 11 2.4 ...

  3. 深度长文解析SpringWebFlux响应式框架15个核心组件源码

    Spring WebFlux 介绍 Spring WebFlux 是 Spring Framework 5.0 版本引入的一个响应式 Web 框架,它与 Spring MVC 并存,提供了一种全新的编 ...

  4. vue项目的简单创建与插件下载

    准备工作 安装node.js 安装node.js过程全部采用默认配置,一步一步next即可 检验node.js是否安装成功:在cmd命令行中输入node -v以及npm -v 通过cmd创建 安装vu ...

  5. 在github开源市场如何高效寻找优秀开源项目

    作为程序员,不论是开发还是学习,肯定会用到开源项目,那么怎么快速在开源网站找到这些项目呢? 常用的开源网站有:github 和 gitee github是全球最大的开源社区,今天就以github为例, ...

  6. 新一代云原生日志架构 - Loggie的设计与实践

    Loggie萌芽于网易严选业务的实际需求,成长于严选与数帆的长期共建,持续发展于网易数帆与网易传媒.中国工商银行的紧密协作.广泛的生态,使得项目能够基于业务需求不断完善.成熟.目前已经开源:https ...

  7. oeasy教您玩转vim - 63 - # window分屏

    ​ 窗口window 回忆上次 我们这次了解了缓冲区buffer ls可以查看buffer 如下是buffer缓冲的一些flag + 有修改未保存内容 - 可修改标签关闭 = 只读缓冲区 a 活跃缓冲 ...

  8. 只会建数据库怎么写API?database2api 能帮到你!

    database2api 意为 DataBase to API,即只要有数据库,就可以生成开放 API. database2api 是一款强大而便捷的工具,主要功能是依据现有的数据库自动生成开放的 A ...

  9. 题解:AT_abc357_f [ABC357F] Two Sequence Queries

    题意 维护一个数据结构,支持两个数列的区间求和,和查询区间内两数列各元素积的和. 分析 线段树万岁! 这道题要维护两个序列,所以线段树中要同时存储两个区间和.但还要在维护一个信息,是该区间内两序列元素 ...

  10. 彻底理解Linux的DISPLAY变量的作用

    背景 最近遇到个两年前遇到的问题,使用virt-manager提示(virt-manager:873): Gtk-WARNING **: 14:53:28.147: cannot open displ ...