Atwood定律:凡是能用JavaScript写出来的,最终都会用JavaScript写出来

 

MySQL 开发规范

(一)建表规约1.【强制】表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint(1表示是,0表示否)。说明:任何字段如果为非负数,必须是unsigned。注意:POJO类中的任何布尔类型的变量,都不要加is前缀,所以,需要在设置从is_xxx到Xxx的映射关系。数据库表示是与否的值,使用tinyint类型,坚持is_xxx的命名方式是为了明确其取值含义与取值范围。正例:表达逻辑删除的字段名is_deleted,1表示删除,0表示未删除。2.【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代
ngtwewy 2020-04-24    MySQL   

uniapp 开发笔记 (二)

1,全局组件正常Vue的做法:在App.vue上加上自定义组件,就能显示在所有页面上。在uni-app上却无法实现,在uni-app的App.vue上是没有template片段。方法一:就是在main.js 中定义全局组件:import myPlayerCircle from '@/components/my-player-circle/my-player-circle.vue'; Vue.component(myPlayerCircle); 方法二:新版uni-app已经支持easycom,无需考虑全局组件,想在什么地方用,就在什么地方用https://uniapp.dcloud.io/
ngtwewy 2020-04-22    App开发   

什么是加载占位图(Skeleton Screen Loading)

Skeleton Screen(加载占位图)是近年流行的加载控件,通常表现形式是在界面上待加载区域填充灰色的占位图,与线框图的效果非常相似。Skeleton Screen本质上是界面加载过程中的过渡效果。Skeleton Screen这个概念最早出自Google产品总监,《Web表单设计》作者,Luke Wroblewski于2013年9月17日发表的博文《Mobile Design Details: Avoid The Spinner》里。(博文地址:http://www.lukew.com/ff/entry.asp?1797 )代码: @keyframes placeHolderShi
ngtwewy 2020-04-20    CSS   

Flex 布局 space-between 最后一行左对齐最佳实践

在使用 flex 布局时,设置 justify-content: space-between,如果一行有三个 div,那最后一行如果不满三个元素,就会出现下面的情况,如何使最后一个 div 向左对齐呢。有两种方法:方法一:这种方法的缺点是,最后一个 div 左外边距是0。div:after { content: ""; flex: auto; } 方法二:创建几个空的 div,貌似这种方法最合适了
ngtwewy 2020-04-20    CSS   

Bash 常用代码

一,判断文件是否存在# 定义文件位置 filePath="/opt/test/log.txt" # 获取系统时间 time=$(date "+%Y-%m-%d %H:%M:%S") # 判断文件是否存在 if [ ! -f "$filePath" ];then touch $filePath echo "11111" + $time > $filePath echo "文件创建完成" else echo "11111" + $time >> $filePath echo "文件已经存在" fi 文件是否存在的参数说明-e 判断对
ngtwewy 2020-04-19    CentOS   

CentOS 设置 cron 定时任务

简介linux定时任务分为两种:第一种,是系统自身轮训的任务,比如定时(5天或者一周)备份/var/log/message等日志文件。第二种,是用户执行的定时任务(用户的定时任务一般分为六段)at适合执行一次就结束的调度任务anacrontab适合于非7*24小时开机的服务器准备的,是以天为单位执行的,不能指定以分钟的定时任务,在停机期间没有任务执行,可以开机时执行。cron 相关命令cron 服务是一个定时执行的服务,而crond正是它的守护进程。可以通过crontab 命令添加或者编辑需要定时执行的任务。cron 服务命令systemctl start crond systemctl s
ngtwewy 2020-04-19    CentOS   

CentOS 上安装最新版本的 Node.js

CentOS 中 yum 安装的 Node.js 版本比较低。CentOS 7 的默认 Node.js 版本居然是 6,最新版本都是 12 了。安装方法:创建用户文件夹/opt/software下载文件 https://nodejs.org/en/download/$ wget https://nodejs.org/dist/v12.16.2/node-v12.16.2-linux-x64.tar.xz$ tar -xvf node-v12.16.2-linux-x64.tar.xz$ mv node-v12.16.2-linux-x64 /opt/software/nodejs建立软连接,变
ngtwewy 2020-04-18    CentOS   

阿里云对象存储 OSS 限流超过阈值自动关闭【防破产,保平安】

场景使用对象存储,遇到恶意盗刷流量,不能及时发现,搞不好会“破产”的。市面上的云服务器对象存储,都没有带宽限制,也没有超过流量阈值,自动停止的功能。甚至有些拒绝恶意IP访问都不可以。。。这种状况已经持续很多年了(设置referer 设置防盗链是挡不住恶意刷流量的 https://help.aliyun.com/document_detail/31869.html )“对象存储破产案例“:Dhttps://www.v2ex.com/t/269463?p=1https://developer.aliyun.com/ask/196191https://segmentfault.com/q/10100
ngtwewy 2020-04-18    CentOS   

macOS 系统常用目录

1,macOS QQ 聊天记录文件位置~/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ2,Apache 和 PHP 位置PHP 位置 /usr/local/php5Apache 位置 /usr/local/opt/httpdApache 配置文件 /usr/local/etc/httpdApache 重启 sudo apachectl restart3, Xcode 删除过程3.1.根目录下的必须要用管理员权限:sudo rm -rf /Applications/Xcode.app sudo rm -
ngtwewy 2020-04-14    macOS   

详解 RESTful API 中的动词覆盖

今天,写篇文章介绍一下 RESTful API 中的动词覆盖吧。在开发各种小程序的时候,总是会遇到不能正常支持 HTTP 请求的平台,比如支付宝小程序只支持 GET 和 POST 请求,这时候充分利用 HTTP 请求方法的 RESTful API 就会遇到问题,不支持 PUT, PATCH, DELETE 请求,该怎么办呢?嗯,使用动词覆盖。什么是动词覆盖我最初遇到不支持全部 HTTP 请求的时候,解决方案是修改 API 路径,比如 DELETE /user/:id 时,我的方案是 POST /user/:id/delete。后来看了阮一峰的《RESTful API 最佳实践实践 》,才明白有
ngtwewy 2020-04-09    RESTful API   

函数限流,防止多次触发函数 Debounce 和 Throttle 的原理及实现

场景1,有些用户很调皮,快速多次点击一个按钮。2,用户不必特地捣乱,他在一个正常的操作中,都有可能在一个短的时间内触发非常多次事件绑定程序。比如页面绑定的 resize 事件。分析怎么解决?函数节流就是一种办法。函数节流,简单地讲,就是让一个函数无法在很短的时间间隔内连续调用,只有当上一次函数执行后过了你规定的时间间隔,才能进行下一次该函数的调用。函数节流的原理挺简单的,估计大家都想到了,那就是定时器。当我触发一个时间时,先 setTimout 让这个事件延迟一会再执行,如果在这个时间间隔内又触发了事件,那我们就 clear 掉原来的定时器,再 setTimeout 一个新的定时器延迟一会执行
ngtwewy 2020-04-07    JavaScript   

Node.js 递归遍历目录

遍历目录遍历目录是操作文件时的一个常见需求。比如写一个程序,需要找到并处理指定目录下的所有JS文件时,就需要遍历整个目录。递归算法遍历目录时一般使用递归算法,否则就难以编写出简洁的代码。递归算法与数学归纳法类似,通过不断缩小问题的规模来解决问题。以下示例说明了这种方法。function factorial(n) { if (n === 1) { return 1; } else { return n * factorial(n - 1); } } 上边的函数用于计算 N 的阶乘(N!)。可以看到,当 N 大于 1 时,问题简化为计算 N 乘以 N-1 的阶乘。当 N 等于 1 时
ngtwewy 2020-04-06    Node.js   

PHP 如何防止 CSRF 跨站域请求伪造

CSRF 背景与介绍CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多数人来说,CSRF 却依然是一个陌生的概念。即便是大名鼎鼎的 Gmail, 在 2007 年底也存在着 CSRF 漏洞,从而被黑客攻击而使 Gmail 的用户造成巨大的损失。CSRF 攻击实例CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况
ngtwewy 2020-04-05    PHP   

如何让网页变灰 CSS3 filter(滤镜) 属性

代码示例:html{ -webkit-filter:grayscale(100%); -moz-filter:grayscale(100%); -ms-filter:grayscale(100%); -o-filter:grayscale(100%); filter:grayscale(100%); filter:url("data:image/svg+xml;utf8,#grayscale"); filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1) } CSS3 filter(滤镜) 属性CSS 语
ngtwewy 2020-04-04    CSS   

为什么日本动漫中会出现大眼睛,多发色,多瞳色

原因在动漫圈尽人皆知——降低绘画的难度。先说彩色的问题吧动画分清人物的两大法宝:发型,发色。作为对比,请看黑头发黑眼睛的情况这是相当NB的画师画的单幅肖像,尚且存在第一眼认错的情况,那动画片是什么情况我就不用说了。换成这张你再看看,能认错?很多画家比如平井久司,还比如平井久司,又比如平井久司,抹去发型和发色差别后就没法看了。同理,大部分动画角色从来不换发型。头发五颜六色是因为黑金棕三色实在不够用,连五小强都凑不齐,所以绿和蓝就跑出来了。你看圣斗士星矢。至于眼睛。次要的原因是大眼睛好看。主要原因是很多画家根本不会画人的五官,就会画眼睛,眼睛再不画大点,岂不是逼他们去死?相当比例的漫画家一开始都是
ngtwewy 2020-04-03    PS 手绘