自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小辣抓

勤于思考,循序渐进

  • 博客(231)
  • 收藏
  • 关注

原创 自定义 CSS 单位的利器

前文很多时候我们很想要一个能够自定义 CSS 单位的东西,比如下面这种情况UI 妹子给的图总是 px 单位的,但是我们做移动端的时候很多时候是想要 rem 的,这时候我们会手动计算从 px 到 rem。假如你计算的是 rem = px / 100,通常情况下,可能我们每次都需要从 UI 稿除以 100 写在代码里面。比如UI 稿给的是 1.5px 那我们需要在代码里写上0.015rem。现...

2019-10-10 13:51:52 1175 2

原创 Koa-Static 该换换了吧 试试 Awesome-Static

其实还是得按自个儿的需求来。koa-static 有啥问题么koa-static是一个非常轻量的koa中间件,能够迅速的搭建起一个静态文件服务器,通常我们把静态文件都放进public,并且通过类似koa-static这样的东西来将我们的public作为静态目录,这样的话,我们就能直接通过根路由进行访问了。emmmm,扯多了。回到正轨首先koa-static不能映射到其他的路由上,一般是跟路...

2019-01-24 20:41:40 492

翻译 什么是扁平化设计

原文链接:https://gizmodo.com/what-is-flat-design-508963228译者前言一个戏剧性的事实,不出意外我现在应该是一名 Android 开发工程师,意外是指遇到了 Angular,戏剧是指这俩都是 Google 的!而 Google 最出名的设计语言是 Material Design。我最近一直在忙于自己项目的设计(https://github.com...

2020-03-04 11:36:09 2512

原创 JS 实现并发控制器

JS 实现并发控制器JS 实现并发控制器前言好久没有产出过一篇博客,因为最近一直在对自己的项目忙前忙后。写这篇文章的动机是,见到了一道面试题,觉得挺有意思,于是写出来和大家分享,也说一下我的思路。题目实现一个 Scheduler,让同时进行的任务在同一时间不超过两个,输出如下class Scheduler { add(promiseCreactor) {...}}cons...

2019-12-03 20:57:20 1642

原创 我想用白话讲懂公钥和私钥

我想用白话讲懂公钥和私钥公钥和私钥这对东西很早就出现了, 其实想基本的弄懂它并不需要什么长篇大论,几句话就能说清楚的,所以我希望用一些简单易懂的话来帮助大家理解公钥和私钥。公钥公钥的作用通俗的来讲就是加密,比如你希望和 A 君之间的通信加密,这个时候你可以给 A 一个公钥,当 A 拿到公钥之后,之后 A 给你发的任何消息都能通过你给他的公钥来进行加密了,当你收到 A 的加密信息,那么你就可以...

2019-07-17 22:34:55 1049 5

原创 【Perl6】perl6 中的容器和引用

【Perl6】perl6 中的容器和引用perl6 中没有引用,或者说 perl6 中到处都能见到引用常量perl6 中声明一个常量是通过 := 二元运算符来进行操作的,这个操作在 perl6 中又被称作为 bind比如my $b := 1;$b = 2;# Cannot assign to an immutable value# in block <unit> at...

2019-05-07 20:31:53 500 2

原创 Perl6 中的异常处理

Perl6 中的异常处理perl6 的异常处理机制,个人认为大体上分为两个部分,一个是 exception, 另一个是 failure,有时候又叫 soft failure,意思为遇到错误的时候不及时的抛出,在使用它的时候才会被抛出来。Failurefailure 是 Perl6 作为弱类型的标志,这种错误被 Perl6 发现, 但是并没有立即抛出Golang 是一种典型的强类型和静态类型...

2019-05-05 13:45:13 864

原创 【golang】实现一个 html 解析器

【golang】实现一个 html 解析器今天发现 golang 中提供的 xml 包可以方便的帮助我们解析标记语言,所以,我们可以很方便的就实现一个 html 的解析器。先来看一下数据结构type Node interface {}type Element struct { tagName string attrs []xml.Attr children []Node}之所...

2019-05-03 17:12:10 2389

原创 【golang】实现数组 map 方法

【golang】实现数组 map 方法经常会在项目里用到数组的 map 方法,闲来无事打算在 golang 中实现一下 map 方法。上工具要先上用法numbers := []int{1, 2, 3}// convert to []interface{}interfaceNumbers, err := utils.ToInterface(numbers)utils.Check(err...

2019-05-02 20:03:20 9240

原创 【golang】可变参数

Golang 可变参数很多语言都提供了这个特性,这里不再赘述,但是众所周知的是 Golang 没有可选参数!是的,因为 rest 和 可选参数有的时候是可以替代的,但是 rest 还是有很多的坑。Golang 中的 rest 参数传递后会隐式的在内部创建一个新的切片,所以你可以在内部无所顾及的使用 range 或者直接改变它的元素的值func rest(args ...int){ for...

2019-05-01 20:33:17 1117

原创 【错误记录】psql: FATAL: role [User] does not exist

【错误记录】psql: FATAL: role “postgres” does not exist这是因为 psql 默认是连接的当前用户名的数据库,字面意思就是当前用户名的数据库不存在,当然,PostgreSQL 默认会创建有三个数据库postgrestemplate0template1如果想连接当前用户名数据库,可以通过createdb这条命令是默认创建一个以当前用户名为名称...

2019-05-01 15:26:13 8640

原创 Perl6 Lambda

Perl6 LambdaLambda 一直是函数式编程津津乐道的东西,从 Haskell 再到许多编程语言为了支持函数式,引入了 Lambda,Perl6 也支持 Lambda,但是 Perl6 中的 Lambda 好像又不太一样。我理解的 Perl6 中的 Lambda 其实是一个可以传入参数的代码块,而并不是一个 “正宗” 的 subroutinesay -> {}.WHAT; #...

2019-04-29 10:19:52 410

原创 Perl6 函数重载

Perl6 函数重载重载的概念常常见于那些 OOP 的静态类型的语言,但是在函数一等公民的 Perl6 中也是能实现函数重载的,要不先来看一下 TypeScript 的函数重载function sayHello(name:string):void;function sayHello(name:string, age:number):void;function sayHello(name:s...

2019-04-26 13:31:55 329

原创 Meet Perl6

Meet Perl6借个机会写一下对 Perl6 的见闻。从 Perl 过来的同学一定会认为这是一个新版本的 Perl,然鹅不幸的是 Perl 的作者已经宣布不再维护 Perl,所以看 Perl6 大可以像学习一门新的语言一样去学。现在大红大紫的 Python 也从 Perl 上借鉴了很多东西,可是青出于蓝而胜于蓝,Perl 已经疲惫不堪了。Perl 还冠名了一个名号,叫 巫师语言 它提供...

2019-04-25 20:32:37 973

原创 见一道阿里简单面试题

阿里简单面试题今天在群里见到一个简单的阿里面试题,遂做,记录一下输入一个数字 整数位每隔三位插入一个逗号 小数点后保存两位 输入的不是数字返回“-”看到这道题应该立马就有思路了想到了正则,于是拿了 perlsub process_number { my ($str) = @_; unless($str =~ m/\d+/){ return '-'; } u...

2019-04-10 22:54:56 362

原创 JS Const 关键字用于 Foreach

JS Const 关键字用于 Foreach对于 const 相信大家已经用的熟的不能再熟了,这里想谈论一下关于我的疑问对于 const按照惯例还是放个小的代码片for(const i = 0;i < n;i++) { console.info(i) // error}上面的代码不能正常运行,这是正常的,在我们的预料范围之内const 对于在 stack 上存储的数据向来都...

2019-04-05 22:12:50 969

转载 为什么银行家舍入是合理的?

我们知道银行的盈利渠道主要是利息差,从储户手里收拢资金,然后放贷出去,其间的利息差额便是所获得的利润。对一个银行来说,对付给储户的利息的计算非常频繁。场景介绍完毕,我们回过头来看四舍五入,小于5的数字被舍去,大于等于5的数字进位加一,由于所有位上的数字都是自然计算出来的,按照概率计算可知,被舍入的数字均匀分布在0到9之间,下面以10笔存款利息计算作为模型,以银行家的身份来思考这个算法:(1)四...

2019-02-27 18:57:10 1341

原创 求解 Fibonacci 的正确姿势

求解 Fibonacci 的正确姿势前言吼。很久没有产出博客了,这几天都闲的很,可是产出博客的好时机啊,可是写什么呢?脑子里过的第一个是 fibonacci,好啦,就写它吧!Fibonacci (递归)这玩意儿算是老朋友了,在大学,或者是刚学计算机基础的时候,递归的经典案例就是它,别被它的名字吓到,它就是普通的数列而已,它的通项公式是Fibonacci(n) = Fibonacci(n...

2019-02-20 18:39:42 572 2

原创 Perl 中的钻石操作符

Perl 中的钻石操作符经常会遇到需要读取某些文件的内容的时候,在 Perl 中,可以用 &amp;lt;STDIN&amp;gt; 开启一个输入流,比如下面的代码while(&amp;lt;STDIN&amp;gt;){ print &quot;$_&quot;;}运行它,将会开启一个标准输入流,按下回车后,就会打印输入流中的信息。while 的作用是不断的读取标准输入流中的数据并打印。在没有确认之前,标准输入流始终是开启的,...

2018-12-29 20:03:39 2854

原创 【JavaScript】一行代码实现 JS 日期的排序

【JavaScript】一行代码实现 JS 日期的排序可读性为 0 哈哈哈哈哈。const sortDate = (parseDate =&amp;gt; targetDateInfos =&amp;gt; targetDateInfos.sort(({ date: preDate }, { date: nextDate }) =&amp;gt; parseDate(preDate) - parseDate(next...

2018-12-21 17:06:24 643 1

原创 【丑帅的 Perl】奇怪的字符串

【丑帅的 Perl】奇怪的字符串无所谓的解释看上去很久都没有写博客了。其中有两个原因,第一是实在没有时间(无奈),第二是感觉没有碰到需要写下来的东西,今天碰到 perl 中的字符串标量,让我觉得有写下来的必要。正文都说 perl 丑,写出来的代码几个月后自己都不认识,在 perl 中,确实有许多奇奇怪怪的语法,比如 perl 中字符串与数字标量之间的隐式的转换。比如看下面一个例子:&quot;2p...

2018-12-19 13:37:10 578

原创 【golang】传递任意类型的切片

【golang】传递任意类型的切片前言Golang 是一门类型严格的静态语言。看看下面的代码type MyInt = intvar bar MyInt = 2var foo int = 1虽然上面 foo 和 bar 的底层类型都是一样的,是 int, 但是 bar 和 foo 的类型在语言层面并不一样,因此它们不能互相赋值,这样会引起 panic。所以这样就出现了一个问题,有...

2018-11-10 17:53:23 3410 1

原创 ADB 连接不上 Android 设备

ADB 连接不上 Android 设备博主的机器是 mac,在初次连接 Android 设备的时候发现连接不上。这里分享一下解决办法出现这种情况主要是因为adb内建有一个知名的厂商ID列表,对于列表内的设备,adb可以直接连接,而不在列表中的设备,则不好意思,它会直接返回,这也就是为什么android设备的驱动已经安装好了,而adb连接不上的原因那 adb 靠什么来辨识呢?就是厂商ID,也...

2018-10-21 23:35:50 1012

原创 【dart】被省略的函数返回值和 void

【dart】被省略的函数返回值和 void在 dart 里,被省略的函数返回值不是 void,dart 可以允许你不写函数的返回值,编译器会自动帮助你返回 nullvoid main(){ print(hello() == null); // true}hello() { }但是如果你显示的声明了 void ,那就另当别论了。void main(){ print(h...

2018-10-15 21:03:30 3109

原创 【dart】private 小坑

【dart】private 小坑今天在看dart相关,发现dart里居然没有private/protected/public等权限修饰符,但是要实现private,只需要将需要修饰的字段或者方法,加上_前缀即可。但是这里比较坑的一点是,_并不是从class级别去限制,而是从package级别去限制的。这里有个简单的package,同时还有一个main函数main(){ Person...

2018-10-12 18:46:46 2431

原创 潭州教育刷花

潭州教育刷花朋友在潭州教育上授课,想刷个花来支持一下,反正花也没啥用,把刷花的脚本分享出来。本身潭州教育上的花是不需要购买的,所以可以送无数朵,但是它会有时间限制,每五秒最多只能送一朵,要想达到刷花的效果啊,先把时间搞定了就好了我直接分享脚本吧 (e =&amp;gt; e._ms_context_.timeControl = () =&amp;gt; true &amp;amp;&amp;amp; setInterv...

2018-10-07 12:50:40 1098 3

原创 【regex】字符组

【regex】字符组国庆的第五天,荒废了整整一天了,今天除了长得像个人,其余跟猪没什么区别,想着写点东西,以前说些一篇关于正则表达式的基础知识,但是一直没有时间去写,今天恰好可以写写,其实很多人都知道正则这个东西,而且也仅仅会使用一些基础的元字符,大多是看网上的一些精简教程,简单的介绍了一下,可能晦涩难懂,想着把这些也写出来,看看能不能好理解一些,帮助刚学习正则的(同学!!)能够少走弯路。哈,...

2018-10-05 23:07:21 288

原创 【regex】如何判断正则引擎是 DFA 还是 NFA

【regex】如何判断正则引擎是 DFA 还是 NFA一般的正则引擎会分为 NFA, DFA 和 POSIX NFA,为了区分,前者被称作传统 NFA,NFA和DFA经常被类比为烧汽油的汽车和烧电的,烧电的一般看着会高档很多,烧汽油的乍一看会笨重很多,但是笨重,就有丰富的元字符的支持,两者在实现上也各有千秋,下面先看一下如何判断正则引擎是 DFA 还是 NFA。如何判断首先需要明确的是,DF...

2018-10-03 23:59:01 2021

原创 匿名函数的递归

匿名函数的递归本着想写一篇 Lambda 演算 的博文,但是因为太懒了, 就写一篇比较短的匿名函数递归的博文吧,实际上两个有着不可切断的联系,Lambda 演算还是留着以后写吧递归大家都知道,简单来说就是函数调用自身,但是匿名函数怎么来做递归呢?在函数为一等公民的语言中,函数能够当作参数进行传递,并且允许匿名函数的存在。先看一个 js 实现 Fibonacci的例子let fibonacc...

2018-09-29 20:38:06 1164 1

原创 【regex】用环视实现固化分组

用环视实现固化分组首先看这篇博文的“老几”应该知道固化分组的概念。但是也有可能是读者冲着环视进来的。所以还是有必要的说一下固化分组的概念。咱知道,NFA 的灵魂是回溯,固化分组也是 NFA 特有的,而固化分组的任务却是让你丢弃前面的备用状态。那固化分组的作用是什么呢?想想你有没有这样的需求,如果你写了这样一个正则[0-3]?\d去匹配“3”这个字符串毫无疑问,3应该是被\d匹配到了,...

2018-09-28 00:02:07 467

原创 【regex】忽略优先量词

忽略优先量词正则里的忽略优先量词有 *?,+?,??,也就是匹配优先量词加上一个?,忽略优先也叫做我们平时说的惰性匹配忽略优先量词也是DFA和NFA的分水岭,这个东西是NFA里特有的,DFA里没有的。忽略优先量词与匹配优先量词不同的地方在于,匹配优先量词会首先尝试匹配,而忽略优先量词会先尝试忽略,在保存状态的时候也是不一样的,匹配优先量词因为会先尝试匹配,所以它的备用状态保存在该量词的后面,...

2018-09-26 17:20:47 526

原创 【regex】以大局为重的匹配优先量词

以大局为重的匹配优先量词在正则表达式中有三个匹配优先的量词,分别是*, +, ?。所谓匹配优先,其实就是日常说的贪婪,它们会尽可能的匹配更多的字符,换一种说法,它们一般会匹配大于下限,它们好像一群好久没吃饱饭的穷苦人民,有东西吃,当然要尽可能吃的更多啊!比如说,现在有这样一个字符串 hello man!如果我用 .* 去匹配,得到的将会是 hello man! 整个串。因为 * 是匹配...

2018-09-26 12:57:01 415

转载 【regex】传统 NFA 正则引擎匹配原理

NFA引擎匹配原理1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 为什么要了解引擎匹配原理一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱出非常动听的乐曲,一个演奏者同样可以照着乐谱奏出动听的乐曲,但他/她或许不知道该如何去改变音符...

2018-09-25 15:48:52 379

原创 Travis CI 持续集成 yarn 执行失败

Travis CI 持续集成 yarn 执行失败最近可能没那么多时间来写博客。但是把我最近遇到的一些问题用来写成经验分享也好。最近使用 Travi CI 来对项目配置持续集成,但是遇到了个问题,因为我项目是用 yarn 来作为包版本管理器,然鹅, 在 Travis 构建中, 出现下面的错误patterns.map is not a function同时The comma...

2018-08-17 20:07:18 1184

原创 使用 TSLint 规范你的代码 自定义Rule

使用 TSLint 规范你的代码 自定义RuleTSLint可以帮你规范你的代码,配合 vs code 上的 TSLint 插件,可以帮你治疗你的代码洁癖。为了统一公司内的代码风格,最近公司也要开发一些 Rule,配合 Prettier 还不是美滋滋?而我就是负责这个 Rule 的开发,TSlint 在国内的资料少之又少, 并且 TSLint 自己的文档对开发自定义 Rule 也是描述的很...

2018-08-11 14:58:51 11052 1

原创 谈谈JS中的 {} + [] 和 [] + {}

谈谈JS中的 {} + [] 和 [] + {}先谈谈为什么会有这种问题,这是因为js的弱类型导致的,js的弱类型,导致js的隐式类型转换频繁。比如像标题中的{} + [],[] + {},你完全不能去预测它的类型。先来看一条在js里的隐式的rule,js在进行加法运算的时候, 会先推测两个操作数是不是number。 如果是,则直接相加得出结果。 如果其中有一个操作数为string,则...

2018-07-31 19:33:58 6814 1

原创 jest SecurityError: localStorage is not available for opaque origins

jest SecurityError: localStorage is not available for opaque origins最近要为公司的一个项目添加单元测试,选择了jest框架, 但是在quickstart的时候就遇到了一个错误,错误信息如标题所示,localstorage是浏览器的东西,但是我这里的环境是node, 原因很明显了。看看官方文档怎么解释This optio...

2018-07-30 18:50:03 8433 17

原创 Javascript 让你的排序稳一些

Javascript 让你的排序稳一些最近在做一个TSlint的自定义rule,由于我们公司有太多的风格要求,这个工具是很必要的。同时该rule也会和其他rule一样,提供一个fixer,来帮助你自动修复代码。但是在开发中还是遇到了很多问题,其中有一个场景是我需要对很多的import语句进行排序,这就导致了我需要一个稳定的排序算法,因为import的先后顺序有的时候是很重要的。这时候就不能用j...

2018-07-27 14:53:43 486

原创 Js经验之谈 属性与键重复解决方案

Js经验之谈 属性与键重复解决方案今天在一个小项目中被大佬讲解了一番,虽然没有涉及到标题的问题,但还是引出了这个问题,先来看一个例子let data = {name:"zhangsan", age:19}data.hasOwnProperty("name") //true看样子是不会有什么问题如果是这样呢let data = {name:"zhangsan", age...

2018-07-23 20:07:25 904

原创 @ts-check 给js点类型看看!

@ts-check 给js点类型看看!js的动态类型一直是让人头疼的问题,特别是项目大了之后,难受的类型方面的错误会加大debug的强度,很难被发现。另一方面就是关于性能的方面,js的解释器在进行解释的时候会不断的将你的代码的类型进行推断,比如:let x = 1x = 'a'这样是在js里是没有任何问题的,但是解释器解释的时候,看到let x = 1,心想,那x肯定就是numbe...

2018-07-19 17:40:45 2710

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除