一个日牯子
Home
Tags
GitHub
Author
2018-01-16
SVG
HTML
PDF
C
o
n
t
e
n
t
s
1
关
于
代
码
注
释
开
发
实
践
闲
话
编
程
C
o
n
t
e
n
t
s
在
一
个
敏
捷
的
团
队
,
写
注
释
被
认
作
是
一
个
不
好
的
习
惯
,
因
为
他
们
认
为
,
总
结
一
下
,
认
为
程
序
中
不
需
要
写
注
释
的
原
因
主
要
有
如
下
的
几
点
:
需
要
写
注
释
的
程
序
说
明
代
码
不
够
清
晰
啊
,
可
以
可
以
通
过
重
构
的
方
式
,
让
代
码
变
得
可
读
维
护
注
释
是
一
件
工
作
量
很
大
的
事
情
,
改
完
代
码
之
后
,
时
常
会
忘
记
修
改
注
释
注
释
如
果
解
释
的
不
清
楚
,
那
就
需
要
注
释
的
注
释
不
能
不
说
这
些
没
有
道
理
,
实
际
上
也
都
是
很
关
心
的
问
题
,
代
码
写
的
更
好
更
可
读
,
当
然
是
值
得
推
崇
的
。
并
且
诚
如
所
言
,
代
码
应
该
是
自
解
释
的
,
大
部
分
情
况
下
,
我
们
可
能
的
确
不
需
要
注
释
。
代
码
的
可
读
性
,
和
注
释
,
目
的
都
是
一
样
的
,
让
别
人
看
得
懂
,
不
会
掉
坑
里
面
。
这
里
的
坑
,
可
能
是
代
码
逻
辑
的
,
可
能
是
业
务
逻
辑
的
,
可
能
是
某
个
库
的
,
可
能
是
某
种
奇
怪
的
设
计
或
者
历
史
原
因
。
所
以
说
,
有
另
外
一
个
更
重
要
的
他
们
没
有
考
虑
到
的
就
是
:
正
好
最
近
又
遇
到
一
次
坑
。
来
描
述
一
下
这
个
故
事
:
起
因
是
我
们
系
统
需
要
从
一
个
第
三
方
系
统
中
查
询
数
据
。
这
个
系
统
调
用
,
我
们
代
码
里
面
是
这
么
写
的
:
t
r
y
{
r
e
t
u
r
n
c
l
i
e
n
t
.
g
e
t
V
e
h
i
c
l
e
B
a
s
e
D
a
t
a
(
f
i
n
O
r
V
i
n
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
l
o
g
.
e
r
r
o
r
(
"
e
r
r
o
r
l
o
a
d
i
n
g
v
e
h
i
c
l
e
b
a
s
i
c
d
a
t
a
f
r
o
m
e
v
a
f
o
r
f
i
n
O
r
V
i
n
:
{
}
"
,
f
i
n
O
r
V
i
n
)
;
t
h
r
o
w
n
e
w
E
v
a
A
c
c
e
s
s
F
a
i
l
u
r
e
E
x
c
e
p
t
i
o
n
(
e
v
a
L
o
a
d
S
e
r
v
i
c
e
.
g
e
n
e
r
a
t
e
F
a
l
l
b
a
c
k
(
e
.
g
e
t
M
e
s
s
a
g
e
(
)
)
)
;
}
这
段
代
码
的
功
能
是
,
调
用
外
部
系
统
的
,
然
后
返
回
一
个
结
果
;
如
果
出
错
则
抛
出
异
常
。
同
时
,
需
要
根
据
出
错
的
代
码
来
判
断
是
对
方
系
统
的
内
部
错
误
,
还
是
资
源
找
不
到
。
F
a
l
l
b
a
c
k
g
e
n
e
r
a
t
e
F
a
l
l
b
a
c
k
(
S
t
r
i
n
g
m
e
s
s
a
g
e
)
{
t
r
y
{
i
n
t
s
t
a
r
t
P
o
s
=
m
e
s
s
a
g
e
.
i
n
d
e
x
O
f
(
"
{
\
"
e
r
r
o
r
\
"
:
"
)
;
i
f
(
s
t
a
r
t
P
o
s
=
=
-
1
)
{
r
e
t
u
r
n
n
e
w
F
a
l
l
b
a
c
k
(
U
N
E
X
P
E
C
T
E
D
,
m
e
s
s
a
g
e
)
;
}
E
v
a
E
r
r
o
r
R
e
s
p
o
n
s
e
r
e
s
p
o
n
s
e
=
J
s
o
n
U
t
i
l
s
.
u
n
m
a
r
s
h
a
l
(
m
e
s
s
a
g
e
.
s
u
b
s
t
r
i
n
g
(
s
t
a
r
t
P
o
s
)
,
E
v
a
E
r
r
o
r
R
e
s
p
o
n
s
e
.
c
l
a
s
s
)
;
C
o
n
t
e
n
t
s
2
r
e
t
u
r
n
n
e
w
F
a
l
l
b
a
c
k
(
g
e
t
B
y
S
t
r
i
n
g
V
a
l
u
e
(
r
e
s
p
o
n
s
e
.
g
e
t
E
r
r
o
r
(
)
.
g
e
t
E
r
r
o
r
C
o
d
e
(
)
)
)
;
}
c
a
t
c
h
(
E
x
c
e
p
t
i
o
n
e
)
{
l
o
g
.
e
r
r
o
r
(
"
u
n
e
x
p
e
c
t
e
d
e
r
r
o
r
m
e
s
s
a
g
e
f
r
o
m
E
V
A
{
}
"
,
m
e
s
s
a
g
e
)
;
l
o
g
.
e
r
r
o
r
(
e
.
g
e
t
M
e
s
s
a
g
e
(
)
,
e
)
;
r
e
t
u
r
n
n
e
w
F
a
l
l
b
a
c
k
(
U
N
E
X
P
E
C
T
E
D
,
m
e
s
s
a
g
e
)
;
}
}
这
段
代
码
尝
试
从
里
面
解
析
一
串
,
然
后
再
反
序
列
化
为
,
这
里
是
这
个
的
定
义
:
@
D
a
t
a
@
B
u
i
l
d
e
r
@
G
e
t
t
e
r
@
S
e
t
t
e
r
@
N
o
A
r
g
s
C
o
n
s
t
r
u
c
t
o
r
@
A
l
l
A
r
g
s
C
o
n
s
t
r
u
c
t
o
r
p
u
b
l
i
c
c
l
a
s
s
E
v
a
E
r
r
o
r
R
e
s
p
o
n
s
e
{
p
r
i
v
a
t
e
E
r
r
o
r
e
r
r
o
r
;
}
@
D
a
t
a
@
B
u
i
l
d
e
r
@
G
e
t
t
e
r
@
S
e
t
t
e
r
@
N
o
A
r
g
s
C
o
n
s
t
r
u
c
t
o
r
@
A
l
l
A
r
g
s
C
o
n
s
t
r
u
c
t
o
r
c
l
a
s
s
E
r
r
o
r
{
p
r
i
v
a
t
e
S
t
r
i
n
g
e
r
r
o
r
C
o
d
e
;
p
r
i
v
a
t
e
S
t
r
i
n
g
e
r
r
o
r
D
e
s
c
;
}
姑
且
不
说
一
个
简
单
的
用
这
么
多
注
解
的
问
题
然
后
我
需
要
做
的
是
,
模
拟
这
个
系
统
的
出
错
返
回
,
因
为
我
们
的
开
发
环
境
无
法
连
真
实
的
三
方
系
统
测
试
。
那
么
问
题
来
了
,
三
方
系
统
出
错
的
时
候
,
应
该
返
回
什
么
呢
?
首
先
问
问
写
这
个
代
码
的
人
(
也
就
是
直
接
对
接
这
个
系
统
的
人
)
吧
。
他
给
了
我
一
个
文
档
,
文
档
里
面
是
这
么
描
述
的
:
那
么
问
题
来
了
,
这
和
代
码
定
义
完
全
不
一
样
啊
!
然
后
告
诉
我
以
代
码
为
准
。
从
这
个
代
码
根
本
无
法
确
定
错
误
返
回
结
构
。
然
后
又
看
看
我
们
这
个
模
拟
的
的
代
码
,
关
于
出
错
的
地
方
是
这
么
定
义
的
:
C
o
n
t
e
n
t
s
3
p
u
b
l
i
c
c
l
a
s
s
O
a
b
R
e
s
p
o
n
s
e
D
t
o
{
p
r
i
v
a
t
e
b
o
o
l
e
a
n
s
u
c
c
e
s
s
;
p
r
i
v
a
t
e
O
b
j
e
c
t
r
e
s
u
l
t
;
p
r
i
v
a
t
e
S
t
r
i
n
g
e
r
r
o
r
;
后
来
才
觉
察
到
,
这
是
另
一
个
系
统
的
接
口
返
回
了
。
但
几
个
系
统
的
模
拟
都
写
到
了
一
起
,
让
人
完
全
无
法
确
定
真
实
的
三
方
接
口
定
义
。
最
终
,
我
找
到
了
调
用
这
个
接
口
的
测
试
环
境
,
自
己
调
用
了
一
次
,
原
来
结
果
是
这
样
的
:
{
"
e
r
r
o
r
"
:
{
"
e
r
r
o
r
C
o
d
e
"
:
"
W
D
C
S
0
0
0
3
"
,
"
e
r
r
o
r
D
e
s
c
"
:
"
R
e
s
o
u
r
c
e
n
o
t
a
v
a
i
l
a
b
l
e
!
"
}
}
这
耗
费
了
我
半
天
的
时
间
。
于
是
为
了
避
免
有
人
再
踩
这
种
坑
,
我
加
了
个
注
释
在
这
里
:
F
a
l
l
b
a
c
k
g
e
n
e
r
a
t
e
F
a
l
l
b
a
c
k
(
S
t
r
i
n
g
m
e
s
s
a
g
e
)
{
t
r
y
{
/
*
*
*
e
x
a
m
p
l
e
a
c
t
u
a
l
r
e
s
p
o
n
s
e
f
r
o
m
e
v
a
:
*
{
"
e
r
r
o
r
"
:
{
"
e
r
r
o
r
C
o
d
e
"
:
"
W
D
C
S
0
0
0
3
"
,
"
e
r
r
o
r
D
e
s
c
"
:
"
R
e
s
o
u
r
c
e
n
o
t
a
v
a
i
l
a
b
l
e
!
"
}
}
*
/
i
n
t
s
t
a
r
t
P
o
s
=
m
e
s
s
a
g
e
.
i
n
d
e
x
O
f
(
"
{
\
"
e
r
r
o
r
\
"
:
"
)
;
然
而
这
又
被
批
判
了
,
理
由
是
这
段
注
释
不
能
解
释
代
码
。
因
为
这
里
并
不
是
这
样
。
那
到
底
是
什
么
样
?
他
们
说
,
你
可
以
调
试
打
个
断
点
看
。
难
道
让
每
一
个
看
代
码
的
人
都
打
个
断
点
来
看
么
,
这
是
什
么
逻
辑
!
我
就
呵
呵
了
。
最
终
我
还
是
妥
协
了
,
删
了
呗
,
对
我
而
言
无
任
何
影
响
。
HTML view coming soon.
Download PDF
for the full formatted version.