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

实习第三天:

上午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. 简约博客新主题Sina上线 - 魔改新浪

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 简约博客新主题Sina上线 - 魔改新浪 日期:2018- ...

  2. P6623 [省选联考 2020 A 卷] 树

    day2t2但难度不大,和AGC044C解法类似 题目大意: 给定一棵 \(n\) 个结点的有根树 \(T\),结点从 \(1\) 开始编号,根结点为 \(1\) 号结点,每个结点有一个正整数权值 \ ...

  3. Kubernetes(五) Pod控制器详解

    Pod控制器详解 本章主要介绍Pod控制器的详细使用 1. Pod控制器介绍 在kubernetes中,按照pod的创建方式可以将其分为2类: 自主式pod:kubernetes直接创建出来的pod, ...

  4. 移植 uCos-III 3.03 到 STM32F429 上

    背景 通过STM32 的学习,我们可以往更深层次的地方走,尝试系统上的一些开发. STM32: F429(StdPeriph) uCos-III : v3.04 + 3.03 有关说明: 在移植 3. ...

  5. EC热键问题

    EC热键问题 ec 问题描述 ACPI事件监控 按键监控 UDEV事件监控 kprobe探测 初步总结热键功能流程 调试记录 PS2 问题描述 系统无触摸板打开和关闭的提示 已知热键功能 快捷键 功能 ...

  6. 开发板测试手册——SPI FLASH 读写、USB WIFI 模块(2)

    目录 1.8 SPI FLASH 读写测试 20 1.9 USB 接口读写测试 21 1.10 网络接口测试 23 1.10.1 网络连通测试 23 1.10.2 网络速度测试 25 2 网络静态 I ...

  7. Filter拦截器从入门到快速上手与Listener监听器概述

    前置内容: 会话跟踪技术 目录 1. 过滤器Filter 1.1 Filter快速入门 1.2 Filter执行流程 1.3 Filter使用细节 1.4 案例 2. 监听器Listener概述 2. ...

  8. VUE商城项目 -商品列表功能 - 手稿

  9. 洛谷P1043

    [NOIP2003 普及组] 数字游戏 题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前 ...

  10. 在宝塔上配置打包好的vue3项目

    配置文件如下 server{ listen 80; server_name gongchang.365cb.cn; index index.html index.htm default.php def ...