-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
330 lines (272 loc) · 43.3 KB
/
index.html
File metadata and controls
330 lines (272 loc) · 43.3 KB
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
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>CrazyCodes - 记录|分享|开发|学习|生活|中的点点滴滴</title><meta name="keywords" content="PHP|Laravel开发|PHP课程|电商系统设计|程序员|创业|Go语言|MySQL|极客|分享|WordPress|GitHub"><meta name="author" content="CrazyCodes"><meta name="copyright" content="CrazyCodes"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="ffffff"><meta name="description" content="Welcome In My Blog">
<meta property="og:type" content="website">
<meta property="og:title" content="CrazyCodes">
<meta property="og:url" content="https://www.fastrun.cn/index.html">
<meta property="og:site_name" content="CrazyCodes">
<meta property="og:description" content="Welcome In My Blog">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://avatar-static.segmentfault.com/177/158/177158972-603b0838da516_huge256">
<meta property="article:author" content="CrazyCodes">
<meta property="article:tag" content="PHP|Laravel开发|PHP课程|电商系统设计|程序员|创业|Go语言|MySQL|极客|分享|WordPress|GitHub">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://avatar-static.segmentfault.com/177/158/177158972-603b0838da516_huge256"><link rel="shortcut icon" href="https://resources.blog.fastrun.cn/wp-content/uploads/2020/05/2020050605523531.png"><link rel="canonical" href="https://www.fastrun.cn/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//fonts.googleapis.com" crossorigin=""/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css" media="print" onload="this.media='all'"><script async="async" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><script>(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: 'v_S-tE3K74U59jsF5f110w',
enable_page_level_ads: 'true'
});</script><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium+Web&display=swap" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: undefined,
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '',
date_suffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: undefined,
source: {
justifiedGallery: {
js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.js',
css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery@2/dist/fjGallery.min.css'
}
},
isPhotoFigcaption: false,
islazyload: false,
isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'CrazyCodes',
isPost: false,
isHome: true,
isHighlightShrink: false,
isToc: false,
postUpdate: '2022-06-26 01:22:09'
}</script><noscript><style type="text/css">
#nav {
opacity: 1
}
.justified-gallery img {
opacity: 1
}
#recent-posts time,
#post-meta time {
display: inline !important
}
</style></noscript><script>(win=>{
win.saveToLocal = {
set: function setWithExpiry(key, value, ttl) {
if (ttl === 0) return
const now = new Date()
const expiryDay = ttl * 86400000
const item = {
value: value,
expiry: now.getTime() + expiryDay,
}
localStorage.setItem(key, JSON.stringify(item))
},
get: function getWithExpiry(key) {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = new Date()
if (now.getTime() > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = url => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
document.head.appendChild(script)
})
win.activateDarkMode = function () {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = function () {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', 'ffffff')
}
}
const t = saveToLocal.get('theme')
if (t === 'dark') activateDarkMode()
else if (t === 'light') activateLightMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><meta name="generator" content="Hexo 6.2.0"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="https://avatar-static.segmentfault.com/177/158/177158972-603b0838da516_huge256" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">16</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">3</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">2</div></a></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 目录</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></li></ul></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 主题</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/kaifagongju/"><i class="fa-fw fas fa-music"></i><span> 开发工具</span></a></li><li><a class="site-page child" href="/kaifagongju/"><i class="fa-fw fas fa-music"></i><span> 瞎聊</span></a></li><li><a class="site-page child" href="/kaifagongju/"><i class="fa-fw fas fa-music"></i><span> 电商设计</span></a></li></ul></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 其他</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> Music</span></a></li><li><a class="site-page child" href="/movies/"><i class="fa-fw fas fa-video"></i><span> Movie</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友情链接</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于我</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('https://bing.com/th?id=OHR.CelebratingSurfing_ZH-CN9747833506_1920x1080.jpg')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">CrazyCodes</a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 目录</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></li></ul></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 主题</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/kaifagongju/"><i class="fa-fw fas fa-music"></i><span> 开发工具</span></a></li><li><a class="site-page child" href="/kaifagongju/"><i class="fa-fw fas fa-music"></i><span> 瞎聊</span></a></li><li><a class="site-page child" href="/kaifagongju/"><i class="fa-fw fas fa-music"></i><span> 电商设计</span></a></li></ul></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 其他</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/music/"><i class="fa-fw fas fa-music"></i><span> Music</span></a></li><li><a class="site-page child" href="/movies/"><i class="fa-fw fas fa-video"></i><span> Movie</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> 友情链接</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于我</span></a></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">CrazyCodes</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="https://github.com/xxxxx" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:xxxxxx@gmail.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="post_cover left"><a href="/2018/10/29/%E8%AE%BA%E6%9F%90%E6%95%99%E8%82%B2%E6%9C%BA%E6%9E%84%E8%80%83%E8%AF%95%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/" title="论某教育机构考试系统设计"><img class="post_bg" src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/10/2888525365-5bd67ae95ffa3_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="论某教育机构考试系统设计"></a></div><div class="recent-post-info"><a class="article-title" href="/2018/10/29/%E8%AE%BA%E6%9F%90%E6%95%99%E8%82%B2%E6%9C%BA%E6%9E%84%E8%80%83%E8%AF%95%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/" title="论某教育机构考试系统设计">论某教育机构考试系统设计</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2018-10-29T10:11:25.000Z" title="发表于 2018-10-29 18:11:25">2018-10-29</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/">系统设计</a></span></div><div class="content">前言近期在做一套答题系统,参考了某教育机构的设计。本章跟大家聊聊考试系统中的核心 - 如何考试?
简单点说,所谓考试系统就是答题系统,通过答题完成进行判分后返回其答题结果即完成整个流程。
当然过程中有些数据需要存储,有些则可在后期查询计算(个人理解),如有误导请速喷
如上图所示,一套试卷有N道试题,每道试题又是由题干与选项、答案组成,这样才汇聚了完整的一套答题(考试)系统。
试卷一次考试(问卷)则使用一套试卷,考试(问卷)与考试则为一对一的关系,而试卷与考试(问卷)则是多对多的关系
1234567CREATE TABLE `company_paper` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '试卷名称', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2018/09/11/Supervisor%20%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83/" title="Supervisor 从入门到放弃"><img class="post_bg" src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/09/963433467-5b9b1ea063ba7_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Supervisor 从入门到放弃"></a></div><div class="recent-post-info"><a class="article-title" href="/2018/09/11/Supervisor%20%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83/" title="Supervisor 从入门到放弃">Supervisor 从入门到放弃</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%9E%8E%E8%81%8A/">瞎聊</a></span></div><div class="content">前言
Supervisor是一个客户端/服务器系统,允许其用户在类UNIX操作系统上控制许多进程。(官方解释)
简单点来讲,就是一个监控脚本运行的工具,不过他可以统一化管理,laravel的队列文档上也有相关使用方式方法,例如
定时脚本的启动、重启、关闭和日志监控
swoole的启动、重启、关闭和日志监控 (众所周知,swoole大部分的特性都只能在cli中运行)
redis的启动、重启、关闭和日志监控 (redis自身未提供类似phpmyadmin的后台可视化工具)
laravel中的队列、一些自动化的脚本、workman等等的脚本
一般都使用 &test.sh 让其来保证在后台运行,但在很多情况下,无法对脚本个人化的监控。这时你可能就需要 Supervisor 来帮助你。你大可把它当作你的unix系统的可视化管理后台。下面来让我们见证它的强大之处。
安装Supervisor 有多种安装方式,我推荐其中最简单也是最容易安装的一种
12apt-get -y install python-setuptoolseasy_install supervisor
正如你所 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2018/09/11/RabbitMQ%20%E5%88%9D%E4%BD%93%E9%AA%8C/" title="RabbitMQ 初体验"><img class="post_bg" src="https://blog.fastrun.cn/wp-content/uploads/2018/07/1220604718-5b3cd86641ab8_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="RabbitMQ 初体验"></a></div><div class="recent-post-info"><a class="article-title" href="/2018/09/11/RabbitMQ%20%E5%88%9D%E4%BD%93%E9%AA%8C/" title="RabbitMQ 初体验">RabbitMQ 初体验</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%9E%8E%E8%81%8A/">瞎聊</a></span></div><div class="content">概述
RabbitMQ是一款消息队列中间件。他提供了几乎覆盖所有语言的SDK与文档,简直强大的不的了。要详细的去了解学习RabbitMQ,我建议还是看官方文档吧。http://www.rabbitmq.com/getstarted.html
消息队列有以下几个基本用途
异步处理
应用解耦
流量削峰
系统架构
消息队列的这几个用途我会在后续的文章以真实案例去表述
生产者创建RabbitMQ链接12$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest');$channel = $connection->channel ();
与链接一个数据库概念差不多
创建一个队列声明1$channel->queue_declare ('hello');
创建多个队列与创建多个数据库一样,hello则是队列名
创建一条消息到队列1$message = new AMQPMessage('Hello ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2018/09/11/XDEBUG%20%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/" title="XDEBUG 从入门到精通"><img class="post_bg" src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/09/3752657298-5b93f027b4712_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="XDEBUG 从入门到精通"></a></div><div class="recent-post-info"><a class="article-title" href="/2018/09/11/XDEBUG%20%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/" title="XDEBUG 从入门到精通">XDEBUG 从入门到精通</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%9E%8E%E8%81%8A/">瞎聊</a></span></div><div class="content">前言Xdebug是PHP的扩展,用于协助调试和开发。
它包含一个用于IDE的调试器
它升级了PHP的var_dump()函数
它为通知,警告,错误和异常添加了堆栈跟踪
它具有记录每个函数调用和磁盘变量赋值的功能
它包含一个分析器
它提供了与PHPUnit一起使用的代码覆盖功能。
猿生必备的工具。但不推荐在生产环境中使用xdebug,因为他太重了。
安装PECL 安装12pecl install xdebugzend_extension="/usr/local/php/modules/xdebug.so"
源码包安装https://xdebug.org/download.php 寻找对应的包
1234wget xxx.gz./configuremake && make installzend_extension="/usr/local/php/modules/xdebug.so"
Docker安装以下为php dockerfile内部分内容
12RUN pecl install xdebugRUN echo ' ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2018/09/11/%E2%80%9C%E7%94%9F%E4%BA%8E%E5%BF%A7%E6%82%A3,%E6%AD%BB%E4%BA%8E%E5%AE%89%E4%B9%90%E2%80%9D%E4%B9%8B%E7%A8%8B%E5%BA%8F%E5%91%98%E4%BA%BA%E7%94%9F/" title="“生于忧患,死于安乐”之程序员人生"><img class="post_bg" src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/09/2709492982-5b97cfc213a95_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="“生于忧患,死于安乐”之程序员人生"></a></div><div class="recent-post-info"><a class="article-title" href="/2018/09/11/%E2%80%9C%E7%94%9F%E4%BA%8E%E5%BF%A7%E6%82%A3,%E6%AD%BB%E4%BA%8E%E5%AE%89%E4%B9%90%E2%80%9D%E4%B9%8B%E7%A8%8B%E5%BA%8F%E5%91%98%E4%BA%BA%E7%94%9F/" title="“生于忧患,死于安乐”之程序员人生">“生于忧患,死于安乐”之程序员人生</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%9E%8E%E8%81%8A/">瞎聊</a></span></div><div class="content">前言这本是《孟子》的一首诗词,拿来用有些惭愧。
废话不多讲,本章我们聊聊
“生于忧患,死于安乐”
忧患
上天要把重任降临在某人的身上,一定先要使他心意苦恼,筋骨劳累,使他忍饥挨饿,身体空虚乏力,使他的每一行动都不如意,这样来激励他的心志,使他性情坚忍,增加他所不具备的能力。
程序员是如何成为程序员的大伙有考虑过吗?我自认为是这样的
小学 -> 初中 -> 网吧 -> 高中 -> 网吧 -> 大学 -> 实习 -> 初级 -> 中级 -> 高级 -> 架构师
没错,大多人的经历都是如此!这样艰苦的奋斗,不断的努力,使我们在这个行业立足。正是这份兴趣、这份毅力、这份坚持支撑着我们,才让我们走到了现在。
现在,当我们工作了很长一段时间后,加班熬夜、受人欺负的日子都随之而去,可能你在想,总算是熬出头了。算是在某某城市扎根了。
但其实困难才刚开始,当年的热血消逝的已不剩多少,醒醒各位工程师。
安乐新进入一家公司,从小员工做起,当做到总监的职位时,是否该休息一下了?“不能”
如果在一家公司,拿着高薪,顶着乌纱帽,每天悠哉悠哉的 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2018/09/11/%E4%B8%8D%E8%A6%81%E8%A2%AB%E9%9B%86%E6%88%90%E7%8E%AF%E5%A2%83%E6%9D%9F%E7%BC%9A%E4%BD%8F%E4%BD%A0%E5%89%8D%E8%BF%9B%E7%9A%84%E8%84%9A%E6%AD%A5/" title="不要被集成环境束缚住你前进的脚步"><img class="post_bg" src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/10/2543013788-5bd1724fd8291_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="不要被集成环境束缚住你前进的脚步"></a></div><div class="recent-post-info"><a class="article-title" href="/2018/09/11/%E4%B8%8D%E8%A6%81%E8%A2%AB%E9%9B%86%E6%88%90%E7%8E%AF%E5%A2%83%E6%9D%9F%E7%BC%9A%E4%BD%8F%E4%BD%A0%E5%89%8D%E8%BF%9B%E7%9A%84%E8%84%9A%E6%AD%A5/" title="不要被集成环境束缚住你前进的脚步">不要被集成环境束缚住你前进的脚步</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%9E%8E%E8%81%8A/">瞎聊</a></span></div><div class="content">前言PHP之所以被称为入门快的一门开发语言,其中一个原因是因为他有很完善的集成开发环境,无论是在Windows还是Mac os 上都可一键安装,开启PHP学习之路。我依旧记得当年入门时,仅仅的几分钟则开启了
1echo "Hello World"
的不归路,但这也是快捷中存在的“弊端”。之所以说其存在“弊端”,是因为“集成“两字造成的,因“集成”而“集成”,会将初学者的思路封装到其中,如果这时候需要学习swoole或者安装一个rtmp的扩展。则瞬间懵逼(至少我当年是懵逼的)。
我之前写过一篇源码安装Nginx的文章,被人称为“多此一举”,我依旧认为作为一名程序员,了解其本质是必修功课。
本篇文章则讲解下如何在集成环境内安装你需要的扩展。
思路集成环境也是将Mysql,PHP,Nginx || Apache封装,写一个脚本将其启动、停止等操作统一化,如果需要安装扩展,这时候你需要先做几件事情。
寻找集成环境内的PHP安装目录
判断操作环境是linux还是windows
去下载你需要安装的扩展,如果是windows就很简单了,一般都是编译好的dll
安装好扩展重启你的 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2018/09/11/%E4%BC%98%E5%8C%96%E4%BD%A0%E7%9A%84PHP%E4%BB%A3%E7%A0%81,%E4%BB%8E%E7%8E%B0%E5%9C%A8%E5%81%9A%E8%B5%B7/" title="优化你的PHP代码,从现在做起"><img class="post_bg" src="https://resources.blog.fastrun.cn/wp-content/uploads/2019/05/2588740952-5ce6624e0ca28_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="优化你的PHP代码,从现在做起"></a></div><div class="recent-post-info"><a class="article-title" href="/2018/09/11/%E4%BC%98%E5%8C%96%E4%BD%A0%E7%9A%84PHP%E4%BB%A3%E7%A0%81,%E4%BB%8E%E7%8E%B0%E5%9C%A8%E5%81%9A%E8%B5%B7/" title="优化你的PHP代码,从现在做起">优化你的PHP代码,从现在做起</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%9E%8E%E8%81%8A/">瞎聊</a></span></div><div class="content">前言
我一生的文章都会放在这里,我的博客,我希望每一行代码,每一段文字都能帮助你。https://github.com/CrazyCodes/Blog
大家好,我是CrazyCodes ,今天我们不聊工具、规范等等等等的辅助,就聊一下该如何写一段“好”的代码,本文以我的职业生涯碰到的代码为例,如有出入请在评论区提出异议,谢谢。
搜索功能搜索很常见,复杂的搜索大多出行在后台,举个栗子,大概需求是这样的
这是一个后台用户列表的搜索功能
搜索条件
可否并行
是否必填
用户名
可以
否
手机号码
可以
否
是否已认证
可以
是
用户性别
可以
否
最近登录时间
可以
否
账户余额
可以
否
初学者代码看到这些例子你是否不由的一颤,又要开始造轮子的是不是?以原生的例子为例,开始你可能会这样写(以下为伪代码)
123456789101112131415161718192021222324252627282930313233343536373839404142434445if (IS_POST) { $like = ''; ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2018/09/11/%E6%97%A5%E5%B8%B8%E5%88%92%E6%B0%B4:%E7%9F%AD%E4%BF%A1%E9%AA%8C%E8%AF%81%E7%A0%81%E5%BC%80%E5%8F%91%E5%AE%9E%E4%BE%8B/" title="日常划水/短信验证码开发实例"><img class="post_bg" src="https://resources.blog.fastrun.cn/wp-content/uploads/2019/09/1406099182-5d1b310b33e30_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="日常划水/短信验证码开发实例"></a></div><div class="recent-post-info"><a class="article-title" href="/2018/09/11/%E6%97%A5%E5%B8%B8%E5%88%92%E6%B0%B4:%E7%9F%AD%E4%BF%A1%E9%AA%8C%E8%AF%81%E7%A0%81%E5%BC%80%E5%8F%91%E5%AE%9E%E4%BE%8B/" title="日常划水/短信验证码开发实例">日常划水/短信验证码开发实例</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%9E%8E%E8%81%8A/">瞎聊</a></span></div><div class="content">前言
我一生的文章都会放在这里,我的博客,我希望每一行代码,每一段文字都能帮助你。https://github.com/CrazyCodes/Blog
大家好,我是CrazyCodes,在日常开发中有没有遇到过发送短信验证码的接口需要开发?你是如何处理短信验证码发送的呢?本篇我分享下短信验证码发送的设计。
初学者以聚合数据为例,初学者会酱紫做
百度
找到一串既熟悉又陌生的代码 (咋整也记不住的代码)
12345678910111213141516171819202122//初始化$curl = curl_init();//设置抓取的urlcurl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, 1);//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置post方式提交curl_setopt($curl, ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2018/09/11/%E5%9F%BA%E4%BA%8E%E4%B8%9A%E5%8A%A1%E8%AE%BE%E8%AE%A1%E6%95%B0%E6%8D%AE%E8%A1%A8%E7%9A%84%E6%80%BB%E7%BB%93/" title="基于业务设计数据表的总结"><img class="post_bg" src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/10/1407886238-5baee9babc382_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="基于业务设计数据表的总结"></a></div><div class="recent-post-info"><a class="article-title" href="/2018/09/11/%E5%9F%BA%E4%BA%8E%E4%B8%9A%E5%8A%A1%E8%AE%BE%E8%AE%A1%E6%95%B0%E6%8D%AE%E8%A1%A8%E7%9A%84%E6%80%BB%E7%BB%93/" title="基于业务设计数据表的总结">基于业务设计数据表的总结</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%9E%8E%E8%81%8A/">瞎聊</a></span></div><div class="content">前言这是一篇日常开发中根据产品需求去设计数据表的总结。
抛去测试、架构来说,数据表设计是指定功能开发的一个起点,如果出现失误将会对未来开发以及运行都会有很大的影响。接下来我们聊聊应该如何根据需求去设计数据表。
原型图首先产品递交的绝笔是份原型图或者需求文档,这里先看原型图,根据原型图上的任意label、input汇总,再根据逻辑不同去划分为不同的块(也就意味着不同的表)。以电商优惠卷为例,原型图可能是这样的(原谅我不会画这图,就拿京东的一张图代替吧)。
当你看到这张原型后,首先你得确认这是个什么功能是吧。瞅了一眼是优惠券的功能,首先确立有了第一张表和表名
coupons再者优惠券是给予用户使用的,所以又有了
user_coupons
一个是优惠券存库表,一个是发送优惠券的用户表,至此表名想好了。接下来就是字段了。
分离根据上述原型图我们可以将字段所属逻辑区域分成以下这样
将以原型图为基准的逻辑分为两大块,一块是显示相关的字段,另一块则是控制相关的字段(如添加时间,过期时间,状态等)。
任意一家公司都想要有相关行业经验的开发者,并不是因为技术有多高深,而是可以根据给出的具有局限性 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2018/09/11/%E6%88%91%E4%B8%8EJetbrains%E7%9A%84%E8%BF%99%E4%BA%9B%E5%B9%B4/" title="我与Jetbrains的这些年"><img class="post_bg" src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/11/3172380423-5bf6bb76b2c05_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="我与Jetbrains的这些年"></a></div><div class="recent-post-info"><a class="article-title" href="/2018/09/11/%E6%88%91%E4%B8%8EJetbrains%E7%9A%84%E8%BF%99%E4%BA%9B%E5%B9%B4/" title="我与Jetbrains的这些年">我与Jetbrains的这些年</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E7%9E%8E%E8%81%8A/">瞎聊</a></span></div><div class="content">前言本章主要说一下如何去使用Jetbrains的各类工具,并且在上周参加了Jetbrains开发者日的大会,把参会的感受和体验在这里分享给各位。话不多说,我们进入正题。
使用想必各位一定使用过Jetbrains的任意一款产品,就算没用过也应该听说过吧。Jetbrains从开始至今总共分为三大模块
Developer Ide (集成开发工具)
Language (Jetbrains的开发语言 Kotlin)
DevOps (任务管理,持续集成,持续部署的一些东西)
对于Developer Ide我推荐使用Jetbrains ToolBox,它是管理所有Jetbrains Ide的工具。
Jetbrains平均一个月做一次小更新,安装了Jetbrains ToolBox就不必再去关心更新的事情了。并且Jetbrains ToolBox 还提供了项目列表的功能,如果这时候你需要打开一个项目,你无需去关心项目是哪种开发语言做的,只需要打开它并选择你需要开启的项目即可。
这里要注意,使用Alfred的同学,Jetbrains ToolBox将Ide安装的目录不在是/Applic ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="https://avatar-static.segmentfault.com/177/158/177158972-603b0838da516_huge256" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">CrazyCodes</div><div class="author-info__description">Welcome In My Blog</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">16</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">3</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">2</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/xxxxxx"><i class="fab fa-github"></i><span>Follow Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/xxxxx" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:xxxxxx@gmail.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">This is my Blog</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/2018/10/29/%E8%AE%BA%E6%9F%90%E6%95%99%E8%82%B2%E6%9C%BA%E6%9E%84%E8%80%83%E8%AF%95%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/" title="论某教育机构考试系统设计"><img src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/10/2888525365-5bd67ae95ffa3_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="论某教育机构考试系统设计"/></a><div class="content"><a class="title" href="/2018/10/29/%E8%AE%BA%E6%9F%90%E6%95%99%E8%82%B2%E6%9C%BA%E6%9E%84%E8%80%83%E8%AF%95%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/" title="论某教育机构考试系统设计">论某教育机构考试系统设计</a><time datetime="2018-10-29T10:11:25.000Z" title="发表于 2018-10-29 18:11:25">2018-10-29</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2018/09/11/Supervisor%20%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83/" title="Supervisor 从入门到放弃"><img src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/09/963433467-5b9b1ea063ba7_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Supervisor 从入门到放弃"/></a><div class="content"><a class="title" href="/2018/09/11/Supervisor%20%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E6%94%BE%E5%BC%83/" title="Supervisor 从入门到放弃">Supervisor 从入门到放弃</a><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2018/09/11/RabbitMQ%20%E5%88%9D%E4%BD%93%E9%AA%8C/" title="RabbitMQ 初体验"><img src="https://blog.fastrun.cn/wp-content/uploads/2018/07/1220604718-5b3cd86641ab8_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="RabbitMQ 初体验"/></a><div class="content"><a class="title" href="/2018/09/11/RabbitMQ%20%E5%88%9D%E4%BD%93%E9%AA%8C/" title="RabbitMQ 初体验">RabbitMQ 初体验</a><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2018/09/11/XDEBUG%20%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/" title="XDEBUG 从入门到精通"><img src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/09/3752657298-5b93f027b4712_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="XDEBUG 从入门到精通"/></a><div class="content"><a class="title" href="/2018/09/11/XDEBUG%20%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/" title="XDEBUG 从入门到精通">XDEBUG 从入门到精通</a><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2018/09/11/%E2%80%9C%E7%94%9F%E4%BA%8E%E5%BF%A7%E6%82%A3,%E6%AD%BB%E4%BA%8E%E5%AE%89%E4%B9%90%E2%80%9D%E4%B9%8B%E7%A8%8B%E5%BA%8F%E5%91%98%E4%BA%BA%E7%94%9F/" title="“生于忧患,死于安乐”之程序员人生"><img src="https://resources.blog.fastrun.cn/wp-content/uploads/2018/09/2709492982-5b97cfc213a95_articlex.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="“生于忧患,死于安乐”之程序员人生"/></a><div class="content"><a class="title" href="/2018/09/11/%E2%80%9C%E7%94%9F%E4%BA%8E%E5%BF%A7%E6%82%A3,%E6%AD%BB%E4%BA%8E%E5%AE%89%E4%B9%90%E2%80%9D%E4%B9%8B%E7%A8%8B%E5%BA%8F%E5%91%98%E4%BA%BA%E7%94%9F/" title="“生于忧患,死于安乐”之程序员人生">“生于忧患,死于安乐”之程序员人生</a><time datetime="2018-09-11T10:11:25.000Z" title="发表于 2018-09-11 18:11:25">2018-09-11</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
<i class="fas fa-folder-open"></i>
<span>分类</span>
</div>
<ul class="card-category-list" id="aside-cat-list">
<li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E7%9E%8E%E8%81%8A/"><span class="card-category-list-name">瞎聊</span><span class="card-category-list-count">15</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/"><span class="card-category-list-name">系统设计</span><span class="card-category-list-count">1</span></a></li>
</ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/go/" style="font-size: 1.1em; color: #999">go</a> <a href="/tags/java/" style="font-size: 1.1em; color: #999">java</a> <a href="/tags/php/" style="font-size: 1.1em; color: #999">php</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2018/10/"><span class="card-archive-list-date">十月 2018</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2018/09/"><span class="card-archive-list-date">九月 2018</span><span class="card-archive-list-count">15</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">16</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2022-06-25T17:22:09.097Z"></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">©2020 - 2022 By CrazyCodes</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.js"></script><div class="js-pjax"><script>function subtitleType () {
if (true) {
window.typed = new Typed("#subtitle", {
strings: ["相信美好的事情终将发生","Believe that good things will happen"],
startDelay: 300,
typeSpeed: 150,
loop: true,
backSpeed: 50
})
} else {
document.getElementById("subtitle").innerHTML = '相信美好的事情终将发生'
}
}
if (true) {
if (typeof Typed === 'function') {
subtitleType()
} else {
getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType)
}
} else {
subtitleType()
}</script></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>