forked from IT-xzy/NEW-JAVA
-
Notifications
You must be signed in to change notification settings - Fork 0
/
20190115-B-JAVA-3.html
212 lines (201 loc) · 9.64 KB
/
20190115-B-JAVA-3.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>葡萄藤PPT</title>
<link rel="stylesheet" href="https://ptteng.github.io/PPT/css/reveal/reveal.css">
<!-- PPT主题,可以在/css/reveal/theme/中选择其他主题,目前暂时只能使用该模板 -->
<link rel="stylesheet" href="https://ptteng.github.io/PPT/css/reveal/theme/ptt.css">
<!-- syntax highlighting 代码高亮主题 -->
<link rel="stylesheet" href="https://ptteng.github.io/PPT/lib/reveal/css/zenburn.css">
<!-- 打印和PDF输出样式 -->
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? './css/reveal/print/pdf.css' : '../css/reveal/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
<style>
.left{ text-align: left; }
</style>
</head>
<body>
<img src="https://ptteng.github.io/PPT/img/demo/logo.png" alt="" usemap="#pttmap" class="base-logo">
<map name="pttmap">
<area shape="rect" coords="0,0,276,58" href="http://www.jnshu.com" alt="" target="_blank"/>
</map>
<div class="reveal">
<div class="slides">
<section>
<h2>为什么要写假数据,前后端联调的时候,应该什么时候商定接口文档,接口文档应该谁来维护,如果不提供假数据,会发生什么问题?</h2>
<p>分享人:李雨航</p>
</section>
<section>
<p>1.背景介绍</p>
<p>2.知识剖析</p>
<p>3.常见问题</p>
<p>4.编码实战</p>
<p>5.扩展思考</p>
<p>6.参考文献</p>
<p>7.更多讨论</p>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section style="top: 267px; display: block;" class="" aria-hidden="true">
<h3>1.背景介绍</h3>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p></p>
<p>什么是假数据?</p>
<p>当我们做好了客户端的开发,为了从服务器获取数据,就要从后台调用接口进行json解析。由于没有数据库,但还是要测试的时候,就需要假数据来实现这部分的功能。</p>
<p>假数据是JSON类型的。</p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p></p>
<p></p>
<p></p>
</section>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section style="top: 267px; display: block;" class="" aria-hidden="true">
<h3>2.知识剖析</h3>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>提供假数据的原则</p>
<p>模拟假数据,不是模拟垃圾数据。假数据仅仅是指数据不真实,并不代表着数据可以随便填</p>
<p></p>
<p>模拟数据的时候要保证数据的多样性</p>
<p></p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>什么是接口文档</p>
<p>在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。</p>
<p></p>
<p></p>
<p></p>
<p></p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>接口规范是什么?</p>
<p>接口分为四部分:方法、uri、请求参数、返回参数</p>
<p></p>
<p></p>
<p></p>
<p></p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
</section>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section style="top: 267px; display: block;" class="" aria-hidden="true">
<h3>3.常见问题</h3>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>为什么要写接口文档?</p>
<p><p/>
<p><p/>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>前后端联调的时候,应该什么时候商定接口文档,接口文档应该谁来维护?</p>
<p><img src="C:\12.png" alt=""></p>
<p></p>
<p></p>
<p></p>
<p></p>
</section>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<h3>4.编码实战</h3>
</section>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<h3>5.扩展思考</h3>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>设计原理</p>
<p>1. 深入了解需求:从“客户端-接口-数据库”的层次上看,接口明显扮演着承上启下的角色,一方面要明白接口要什么数据,另一方面要考虑如何从数据库获取、组织数据。</p>
<p>所以如果不了解需求,你就无法正确抽象对象来组织数据给客户端,也无法验证数据库的数据结构能否满足需求。</p>
<p>2.了解数据库结构:既然接口要明白如何从数据库获取、组织数据,就当然要了解数据库结构啦。</p>
<p>3.了解客户端原型:了解原型,其实更多是为了帮助你设计接口时需要提供的数据和结构。</p>
<p></p>
<p></p>
<p></p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>设计原则</p>
<p>1.充分理由:不是随便一个功能就要有个接口,也不是随便一个需求就要加个接口。</p>
<p>2.职责明确</p>
<p>3.高内聚低耦合</p>
<p>4.分析角度明确</p>
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
<p>5.入参格式统一</p>
<p>6.状态及消息:提供必要的接口调用状态信息</p>
<p>7.控制数据量 </p>
<p></p>
<p> </p>
</section>
</section>
<section>
<h3>6.参考文献</h3>
<p>https://blog.csdn.net/xcymorningsun/article/details/54631027</p>
<p></p>
</section>
<section>
<h3>7.更多讨论</h3>
</section>
<section>
<h3>分享到此结束</h3>
<p></p>
</section>
<section class="stack past" style="top: 0px; display: block;" data-previous-indexv="0" hidden="" aria-hidden="true">
<section style="top: 267px; display: block;" class="" aria-hidden="true">
</section>
<section class="future" aria-hidden="true" style="top: 198px; display: none;" hidden="">
</section>
</section>
</div>
</div>
<script src="https://ptteng.github.io/PPT/lib/reveal/js/head.min.js"></script>
<script src="https://ptteng.github.io/PPT/lib/reveal/reveal.js"></script>
<script>
// 以下为常见配置属性的默认值
// {
// controls: true, // 是否在右下角展示控制条
// progress: true, // 是否显示演示的进度条
// slideNumber: false, // 是否显示当前幻灯片的页数编号,也可以使用代码slideNumber: 'c / t' ,表示当前页/总页数。
// history: false, // 是否将每个幻灯片改变加入到浏览器的历史记录中去
// keyboard: true, // 是否启用键盘快捷键来导航
// overview: true, // 是否启用幻灯片的概览模式,可使用"Esc"或"o"键来切换概览模式
// center: true, // 是否将幻灯片垂直居中
// touch: true, // 是否在触屏设备上启用触摸滑动切换
// loop: false, // 是否循环演示
// rtl: false, // 是否将演示的方向变成RTL,即从右往左
// fragments: true, // 全局开启和关闭碎片。
// autoSlide: 0, // 两个幻灯片之间自动切换的时间间隔(毫秒),当设置成 0 的时候则禁止自动切换,该值可以被幻灯片上的 ` data-autoslide` 属性覆盖
// transition: 'default', // 切换过渡效果,有none/fade/slide/convex/concave/zoom
// transitionSpeed: 'default', // 过渡速度,default/fast/slow
// mouseWheel: true, //是否启用通过鼠标滚轮来切换幻灯片
// }
// 初始化幻灯片
Reveal.initialize({
history: true,
dependencies: [
{ src: './plugin/markdown/marked.js' },
{ src: './plugin/markdown/markdown.js' },
{ src: './plugin/notes/notes.js', async: true },
{ src: './plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
]
});
</script>
</body>
</html>