-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
629 lines (368 loc) · 23.9 KB
/
index.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
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
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 3.9.0">
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png?v=7.4.0">
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png?v=7.4.0">
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png?v=7.4.0">
<link rel="mask-icon" href="/images/logo.svg?v=7.4.0" color="#222">
<link rel="alternate" href="/atom.xml" title="Yujun's Blog" type="application/atom+xml">
<link rel="stylesheet" href="/css/main.css?v=7.4.0">
<link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css?v=4.7.0">
<script id="hexo-configurations">
var NexT = window.NexT || {};
var CONFIG = {
root: '/',
scheme: 'Pisces',
version: '7.4.0',
exturl: false,
sidebar: {"position":"left","display":"post","offset":12,"onmobile":false},
copycode: {"enable":false,"show_result":false,"style":null},
back2top: {"enable":true,"sidebar":false,"scrollpercent":false},
bookmark: {"enable":false,"color":"#222","save":"auto"},
fancybox: false,
mediumzoom: false,
lazyload: false,
pangu: false,
algolia: {
appID: '',
apiKey: '',
indexName: '',
hits: {"per_page":10},
labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
},
localsearch: {"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},
path: 'search.xml',
motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
translation: {
copy_button: '复制',
copy_success: '复制成功',
copy_failure: '复制失败'
},
sidebarPadding: 40
};
</script>
<meta name="description" content="提供多种选择,不要找接口出了问题后,要提出各种解决方案的选择,而不是找借口;不要说事情做不到,要说明接下来做什么来挽回局面; 不要容忍破窗户我们看到过整洁、运行良好的系统,一旦窗户开始破裂,就相当迅速的恶化;不要留着破窗户不修;发现一个bug就修复一个,如果没有足够的时间进行恰当的修理,就用木板先订起来;或许你可以先把代码注释起来,或是显示“未实现”的消息;采取某种行动防止进一步的损坏,并说明情形">
<meta name="keywords" content="读书,笔记">
<meta property="og:type" content="article">
<meta property="og:title" content="程序员修炼之道笔记">
<meta property="og:url" content="http://yoursite.com/2017/09/11/程序员修炼之道笔记/index.html">
<meta property="og:site_name" content="Yujun's Blog">
<meta property="og:description" content="提供多种选择,不要找接口出了问题后,要提出各种解决方案的选择,而不是找借口;不要说事情做不到,要说明接下来做什么来挽回局面; 不要容忍破窗户我们看到过整洁、运行良好的系统,一旦窗户开始破裂,就相当迅速的恶化;不要留着破窗户不修;发现一个bug就修复一个,如果没有足够的时间进行恰当的修理,就用木板先订起来;或许你可以先把代码注释起来,或是显示“未实现”的消息;采取某种行动防止进一步的损坏,并说明情形">
<meta property="og:locale" content="zh-CN">
<meta property="og:updated_time" content="2019-09-11T09:22:23.257Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="程序员修炼之道笔记">
<meta name="twitter:description" content="提供多种选择,不要找接口出了问题后,要提出各种解决方案的选择,而不是找借口;不要说事情做不到,要说明接下来做什么来挽回局面; 不要容忍破窗户我们看到过整洁、运行良好的系统,一旦窗户开始破裂,就相当迅速的恶化;不要留着破窗户不修;发现一个bug就修复一个,如果没有足够的时间进行恰当的修理,就用木板先订起来;或许你可以先把代码注释起来,或是显示“未实现”的消息;采取某种行动防止进一步的损坏,并说明情形">
<link rel="canonical" href="http://yoursite.com/2017/09/11/程序员修炼之道笔记/">
<script id="page-configurations">
// https://hexo.io/docs/variables.html
CONFIG.page = {
sidebar: "",
isHome: false,
isPost: true,
isPage: false,
isArchive: false
};
</script>
<title>程序员修炼之道笔记 | Yujun's Blog</title>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?80c95f9bba65f4f77b0b954251bec511";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<noscript>
<style>
.use-motion .brand,
.use-motion .menu-item,
.sidebar-inner,
.use-motion .post-block,
.use-motion .pagination,
.use-motion .comments,
.use-motion .post-header,
.use-motion .post-body,
.use-motion .collection-header { opacity: initial; }
.use-motion .logo,
.use-motion .site-title,
.use-motion .site-subtitle {
opacity: initial;
top: initial;
}
.use-motion .logo-line-before i { left: initial; }
.use-motion .logo-line-after i { right: initial; }
</style>
</noscript>
</head>
<body itemscope itemtype="http://schema.org/WebPage" lang="zh-CN">
<div class="container use-motion">
<div class="headband"></div>
<header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
<div class="header-inner"><div class="site-brand-container">
<div class="site-meta">
<div>
<a href="/" class="brand" rel="start">
<span class="logo-line-before"><i></i></span>
<span class="site-title">Yujun's Blog</span>
<span class="logo-line-after"><i></i></span>
</a>
</div>
<p class="site-subtitle">凡是不能毁灭我的,必使我强大</p>
</div>
<div class="site-nav-toggle">
<button aria-label="切换导航栏">
<span class="btn-bar"></span>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
</button>
</div>
</div>
<nav class="site-nav">
<ul id="menu" class="menu">
<li class="menu-item menu-item-home">
<a href="/" rel="section"><i class="menu-item-icon fa fa-fw fa-home"></i> <br>首页</a>
</li>
<li class="menu-item menu-item-tags">
<a href="/tags/" rel="section"><i class="menu-item-icon fa fa-fw fa-tags"></i> <br>标签</a>
</li>
<li class="menu-item menu-item-categories">
<a href="/categories/" rel="section"><i class="menu-item-icon fa fa-fw fa-th"></i> <br>分类</a>
</li>
<li class="menu-item menu-item-archives">
<a href="/archives/" rel="section"><i class="menu-item-icon fa fa-fw fa-archive"></i> <br>归档</a>
</li>
<li class="menu-item menu-item-commonweal">
<a href="/404.html" rel="section"><i class="menu-item-icon fa fa-fw fa-heartbeat"></i> <br>公益 404</a>
</li>
</ul>
</nav>
</div>
</header>
<div class="back-to-top">
<i class="fa fa-arrow-up"></i>
<span>0%</span>
</div>
<main id="main" class="main">
<div class="main-inner">
<div class="content-wrap">
<div id="content" class="content">
<div id="posts" class="posts-expand">
<article itemscope itemtype="http://schema.org/Article">
<div class="post-block post">
<link itemprop="mainEntityOfPage" href="http://yoursite.com/2017/09/11/程序员修炼之道笔记/">
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
<meta itemprop="name" content="俊俊哥">
<meta itemprop="description" content="">
<meta itemprop="image" content="/images/avatar.jpg">
</span>
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<meta itemprop="name" content="Yujun's Blog">
</span>
<header class="post-header">
<h1 class="post-title" itemprop="name headline">程序员修炼之道笔记
</h1>
<div class="post-meta">
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-o"></i>
</span>
<span class="post-meta-item-text">发表于</span>
<time title="创建时间:2017-09-11 10:41:50" itemprop="dateCreated datePublished" datetime="2017-09-11T10:41:50+08:00">2017-09-11</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="fa fa-calendar-check-o"></i>
</span>
<span class="post-meta-item-text">更新于</span>
<time title="修改时间:2019-09-11 17:22:23" itemprop="dateModified" datetime="2019-09-11T17:22:23+08:00">2019-09-11</time>
</span>
<span class="post-meta-item">
<span class="post-meta-item-icon">
<i class="fa fa-folder-o"></i>
</span>
<span class="post-meta-item-text">分类于</span>
<span itemprop="about" itemscope itemtype="http://schema.org/Thing"><a href="/categories/人生心得/" itemprop="url" rel="index"><span itemprop="name">人生心得</span></a></span>
</span>
</div>
</header>
<div class="post-body" itemprop="articleBody">
<h2 id="提供多种选择,不要找接口"><a href="#提供多种选择,不要找接口" class="headerlink" title="提供多种选择,不要找接口"></a>提供多种选择,不要找接口</h2><p>出了问题后,要提出各种解决方案的选择,而不是找借口;不要说事情做不到,要说明接下来做什么来挽回局面;</p>
<h2 id="不要容忍破窗户"><a href="#不要容忍破窗户" class="headerlink" title="不要容忍破窗户"></a>不要容忍破窗户</h2><p>我们看到过整洁、运行良好的系统,一旦窗户开始破裂,就相当迅速的恶化;<br>不要留着破窗户不修;发现一个bug就修复一个,如果没有足够的时间进行恰当的修理,就用木板先订起来;或许你可以先把代码注释起来,或是显示“未实现”的消息;采取某种行动防止进一步的损坏,并说明情形在你的控制之下;</p>
<h2 id="投资知识资产"><a href="#投资知识资产" class="headerlink" title="投资知识资产"></a>投资知识资产</h2><p>我们喜欢把程序员所知道的关于计算机技术和经验视为他们的知识资产;<br>你的资产是有时效的资产,会随着新技术、语言和环境的出现而变得过时;<br>管理知识资产与管理金融资产非常类似:</p>
<ol>
<li><p>严肃的投资者定期投资-作为习惯</p>
</li>
<li><p>多元化是长期成功的关键</p>
</li>
<li><p>管理风险;聪明的投资者在保守的投资和高风险的投资之间平衡他们的资产;</p>
</li>
<li><p>应周期性的重新评估和平衡资产</p>
</li>
</ol>
<p>投资建议:<br>每年至少学习一种新语言;<br>每季度至少阅读一本技术书籍;<br>也要阅读非技术书籍;</p>
<h2 id="多交流,会交流"><a href="#多交流,会交流" class="headerlink" title="多交流,会交流"></a>多交流,会交流</h2><p>与他人交流时,你需要了解你的听众:<br>你想他们学到什么?<br>他们对你讲的什么感兴趣?<br>他们有多富有的经验?<br>他们想要多少细节?<br>你如何促使他们听你说话?</p>
<p>遇到程序Bug时,不要一味的指责代码编写者;我们需要的是修正问题,而不是发出指责;</p>
<h2 id="DRY-不要重复你自己"><a href="#DRY-不要重复你自己" class="headerlink" title="DRY -不要重复你自己"></a>DRY -不要重复你自己</h2><p>don’t repeat yourself;<br>系统中的每一项知识都必须具有单一、无歧义、权威的表示;<br>重复的发生地方:<br>开发者没有意识到重复;有时,重复来自于设计中的错误;<br>开发者偷懒、他们重复,因为那样代码似乎更容易修改;<br>开发者之间的重复:同一团队中几个人重复了同样的信息;处理这个问题的最佳方式就是鼓励交流;一定要阅读他人的代码,并进行代码review;</p>
<p>让复用变得更容易!<br>你需要营造一种环境,在其中找到并复用已有的东西;如果不容易,大家就不会去复用;而如果不复用,就有了重复的风险;</p>
<h2 id="维持正交性"><a href="#维持正交性" class="headerlink" title="维持正交性"></a>维持正交性</h2><p>正交:两个事物中一个发生变化,对其他无影响,这两个事物就是具有正交性;<br>正交性的好处:</p>
<ol>
<li><p>提高生存率;</p>
</li>
<li><p>降低风险</p>
</li>
</ol>
<p>让代码维持正交性,可以消除无关事物之间的影响;</p>
<h2 id="可撤销,可更换"><a href="#可撤销,可更换" class="headerlink" title="可撤销,可更换"></a>可撤销,可更换</h2><p>不存在最终的目标,也没有终极的架构;项目的任何一个模块一个组件都是可撤销,可替换的;不要过度依赖于某个第三方的产品,否则你的项目就被第三方绑架了;<br>通过灵活的架构,将第三方产品隐藏在良好的抽象接口之后;</p>
<h2 id="无处不在的自动化"><a href="#无处不在的自动化" class="headerlink" title="无处不在的自动化"></a>无处不在的自动化</h2><p>多用python、shell等脚本语言,将工作的重复性任务自动化实现;<br>对于编程中的重复性代码,通过脚本自动生成代码来实现;<br>在工作中多总结,提炼小系统,让流程、代码都自动化;<br>linux下的cron是个好东西,让你的自动化任务都在夜深人静时准时执行;</p>
<h2 id="不要靠巧合编程"><a href="#不要靠巧合编程" class="headerlink" title="不要靠巧合编程"></a>不要靠巧合编程</h2><p>你所写的代码都是深思熟虑过后的产物,先有设计,然后再产出;想到一处写一处是刚毕业的水平;<br>按照合约编程,别想着这个地方可以增加多少好功能,画蛇添足的故事太多,过多的超过用户期望未必有好的结果,可能就成了用户不想要的;</p>
<h2 id="测试的重要性"><a href="#测试的重要性" class="headerlink" title="测试的重要性"></a>测试的重要性</h2><p>测试重要,大家都知道;但单元测试,有多少个项目能认真的做过;没有质量高、覆盖好的单元测试,哪来的勇气去重构一个个庞然大物似的老项目?<br>这句话很精辟:测试你的软件,否则用户就得测试;</p>
<h2 id="新方法和新工具"><a href="#新方法和新工具" class="headerlink" title="新方法和新工具"></a>新方法和新工具</h2><p>有个新工具或新方法想在项目组中推广,这事挺好;但不要低估采用新工具和新方法的代价,可能你的项目需要花上太多精力来熟悉这个方法,而第一个采用这个方法的项目,可能就只能是实验品;<br>批判的看待方法学,从中提炼适用团队的精华;</p>
</div>
<div id="reward-container">
<div></div>
<button id="reward-button" disable="enable" onclick="var qr = document.getElementById("qr"); qr.style.display = (qr.style.display === 'none') ? 'block' : 'none';">
打赏
</button>
<div id="qr" style="display: none;">
<div style="display: inline-block">
<img src="/images/pay-wechat.jpeg" alt="俊俊哥 微信支付">
<p>微信支付</p>
</div>
<div style="display: inline-block">
<img src="/images/pay-zfb.jpeg" alt="俊俊哥 支付宝">
<p>支付宝</p>
</div>
</div>
</div>
<footer class="post-footer">
<div class="post-tags">
<a href="/tags/读书/" rel="tag"># 读书</a>
<a href="/tags/笔记/" rel="tag"># 笔记</a>
</div>
<div class="post-nav">
<div class="post-nav-next post-nav-item">
</div>
<span class="post-nav-divider"></span>
<div class="post-nav-prev post-nav-item">
<a href="/2019/09/11/程序优化的5个方向/" rel="prev" title="程序优化的5个方向">
程序优化的5个方向 <i class="fa fa-chevron-right"></i>
</a>
</div>
</div>
</footer>
</div>
</article>
</div>
</div>
</div>
<div class="sidebar-toggle">
<div class="sidebar-toggle-line-wrap">
<span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
<span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
<span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
</div>
</div>
<aside class="sidebar">
<div class="sidebar-inner">
<ul class="sidebar-nav motion-element">
<li class="sidebar-nav-toc">
文章目录
</li>
<li class="sidebar-nav-overview">
站点概览
</li>
</ul>
<!--noindex-->
<div class="post-toc-wrap sidebar-panel">
<div class="post-toc motion-element"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#提供多种选择,不要找接口"><span class="nav-number">1.</span> <span class="nav-text">提供多种选择,不要找接口</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#不要容忍破窗户"><span class="nav-number">2.</span> <span class="nav-text">不要容忍破窗户</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#投资知识资产"><span class="nav-number">3.</span> <span class="nav-text">投资知识资产</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#多交流,会交流"><span class="nav-number">4.</span> <span class="nav-text">多交流,会交流</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#DRY-不要重复你自己"><span class="nav-number">5.</span> <span class="nav-text">DRY -不要重复你自己</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#维持正交性"><span class="nav-number">6.</span> <span class="nav-text">维持正交性</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#可撤销,可更换"><span class="nav-number">7.</span> <span class="nav-text">可撤销,可更换</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#无处不在的自动化"><span class="nav-number">8.</span> <span class="nav-text">无处不在的自动化</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#不要靠巧合编程"><span class="nav-number">9.</span> <span class="nav-text">不要靠巧合编程</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#测试的重要性"><span class="nav-number">10.</span> <span class="nav-text">测试的重要性</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#新方法和新工具"><span class="nav-number">11.</span> <span class="nav-text">新方法和新工具</span></a></li></ol></div>
</div>
<!--/noindex-->
<div class="site-overview-wrap sidebar-panel">
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
<img class="site-author-image" itemprop="image"
src="/images/avatar.jpg"
alt="俊俊哥">
<p class="site-author-name" itemprop="name">俊俊哥</p>
<div class="site-description" itemprop="description"></div>
</div>
<nav class="site-state motion-element">
<div class="site-state-item site-state-posts">
<a href="/archives/">
<span class="site-state-item-count">2</span>
<span class="site-state-item-name">日志</span>
</a>
</div>
<div class="site-state-item site-state-categories">
<a href="/categories/">
<span class="site-state-item-count">2</span>
<span class="site-state-item-name">分类</span>
</a>
</div>
<div class="site-state-item site-state-tags">
<a href="/tags/">
<span class="site-state-item-count">4</span>
<span class="site-state-item-name">标签</span>
</a>
</div>
</nav>
<div class="feed-link motion-element">
<a href="/atom.xml" rel="alternate">
<i class="fa fa-rss"></i>RSS
</a>
</div>
<div class="links-of-author motion-element">
<span class="links-of-author-item">
<a href="/[email protected]" title="E-Mail → [email protected]"><i class="fa fa-fw fa-envelope"></i>E-Mail</a>
</span>
<span class="links-of-author-item">
<a href="/woqqpop32" title="微信 → woqqpop32"><i class="fa fa-fw fa-wechat"></i>微信</a>
</span>
</div>
<div class="links-of-blogroll motion-element">
<div class="links-of-blogroll-title">
<i class="fa fa-fw fa-link"></i>
Links
</div>
<ul class="links-of-blogroll-list">
<li class="links-of-blogroll-item">
<a href="https://yujun32.github.io/" title="https://yujun32.github.io/" rel="noopener" target="_blank">github</a>
</li>
<li class="links-of-blogroll-item">
<a href="https://baidu.com" title="https://baidu.com" rel="noopener" target="_blank">百度</a>
</li>
</ul>
</div>
</div>
</div>
</aside>
<div id="sidebar-dimmer"></div>
</div>
</main>
<footer id="footer" class="footer">
<div class="footer-inner">
<div class="copyright">© <span itemprop="copyrightYear">2019</span>
<span class="with-love" id="animate">
<i class="fa fa-user"></i>
</span>
<span class="author" itemprop="copyrightHolder">俊俊哥</span>
</div>
<div class="powered-by">由 <a href="https://hexo.io" class="theme-link" rel="noopener" target="_blank">Hexo</a> 强力驱动 v3.9.0</div>
<span class="post-meta-divider">|</span>
<div class="theme-info">主题 – <a href="https://theme-next.org" class="theme-link" rel="noopener" target="_blank">NexT.Pisces</a> v7.4.0</div>
</div>
</footer>
</div>
<script src="/lib/anime.min.js?v=3.1.0"></script>
<script src="/lib/velocity/velocity.min.js?v=1.2.1"></script>
<script src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
<script src="/js/utils.js?v=7.4.0"></script><script src="/js/motion.js?v=7.4.0"></script>
<script src="/js/schemes/pisces.js?v=7.4.0"></script>
<script src="/js/next-boot.js?v=7.4.0"></script>
</body>
</html>