轻舞飞扬

心有猛虎 细嗅蔷薇


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

TypeScript 学习总结

发表于 2020-12-26 | 分类于 TypeScript

TypeScript 学习总结

TypeScript 定义

TypeScript 是一个 JavaScript 的超集,主要提供了对类型系统和 ES6 的支持。
目前 JS 引擎无法读取 TS 代码,因此任何 TS 文件都有一个预编译的过程。

TS 作用

TypeScript 是 JS 静态检查的最佳工具。在代码运行之前测试代码的正确性。 TS 会让 JS 的代码结构更好。

到目前为止,JS 有 7 种类型:

1
2
3
4
5
6
7
1. String
2. Number
3. Boolean
4. Null
5. Undefined
6. Object
7. Symbol(es6)

在使用 JS 进行开发的时候,声明变量的类型是可以随时改变的, 例如布尔类型可以变成字符串。js 松散的特性可能会在代码中造成严重的问题,破坏其可维护性。
TS 则可以通过向 JS 添加强类型检测,来避免这些问题。

1
2
let bool = true
bool = 'string'
阅读全文 »

什么是函数柯里化(Currying)

发表于 2020-12-05 | 分类于 JavaScript

函数柯里化

函数柯里化概念

函数柯里化是一种关于函数的高阶技术,不仅可以被用于 JavaScript,还可被用于其他编程语言。

柯里化是一种函数的转换,它将一个可调用的函数 f(a, b, c) 转换成 f(a)(b)(c)。

柯里化不会调用函数,它只是对函数进行转换。

先用一个实际应用对函数柯里化进行理解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 函数柯里化
funtion curry(f) {
return function(a) {
return function(b) {
return f(a, b)
}
}
}

function sum(a, b) {
return a + b
}

let curriedSum = curry(sum)

console.log(curriedSum(a)(b))
阅读全文 »

干了这碗毒鸡汤

发表于 2020-07-21 | 分类于 Life

干了这碗碗毒鸡汤

  1. 你以为你还能反杀,你以为来日方长,你以为你真正的生活还没有开始,可那都是你以为。你行动了么?你有任何实质性的东西支撑你的“以为”么?

  2. 一个人能改头换命的机会就那么几次,你过了 30 岁如果还浑浑噩噩,还看不出一点儿成功的兆头,那你 99.999%的概率是没戏了。

  3. 不要拿着“我不会”当理由了

  在这世上最简单的事情就是用嘴巴毫不费力地说一句“我不会”,可是谁又是生下来就什么都会的呢?

  你不肯去学习的东西,总有别人去学;
  你不敢去尝试的东西,总有别人去试;
  你愿意拖到明天的事,总有人今天努力做完。

  那么不好意思,你想去的学校也只能別人去了,你想过的人生也只能别人过了,你喜欢的女生也去跟别人睡了。

  1. 人总是会低估自己的欲望,高估自己的自制力。

  2. 很多人看似努力,其实不过是在假努力。

  那种感觉就像个演员一样,拿着书本去图书馆拍照,宿舍里在台灯下熬夜苦读,抄笔记抄的工工整整,通过这些方式让自己沉浸在“努力”的这个角色之中。
可是这种努力的效率十分低下。而更可怕的是,人很容易被这种体力和精力上的付出所迷惑,当你这么做一段时间之后你自己就会被自己感动,觉得自己已经尽力了。

阅读全文 »

Centos7 搭建 Shadowsocks

发表于 2020-06-13 | 分类于 Linux

Centos7 搭建 Shadowsocks

Centos 7 中 SS 服务器配置

shadowsocks 服务器需要 python 支撑,要先安装 python 环境。

1
2
3
4
5
sudo yum install python-setuptools

sudo easy_install pip

sudo pip install shadowsocks

SS 服务器配置

在 /etc 文件夹下创建 shadowsocks.json 配置文件

1
sudo vi /etc/shadowsocks.json

写入配置

1
2
3
4
5
6
7
8
9
10
{
"server": "0.0.0.0",
"local_address": "127.0.0.1",
"local_port": 1080,
"port_password": {
"8888": "password"
},
"timeout": 600,
"method": "aes-256-cfb"
}

port_password: 监听外部请求的端口和对应的密码;此处可以配置多个,以逗号分隔
用于 SS 客户端连接。

启动或着停止服务

1
2
3
sudo ssserver -c /etc/shadowsocks.json -d start

sudo ssserver -c /etc/shadowsocks.json -d stop

centos7 中 ss 服务器配置
搬瓦工
搬瓦工测试 IP 是否被封
IP change
IP 查询是否被封
bywave

vue-cli3 分环境打包

发表于 2020-05-28 | 分类于 Vue

Vue-cli3 配置环境变量与分环境打包

配置环境变量

在前端项目开发完成后,在发布的时候,我们会需要将项目部署到不同环境,例如开发,测试,预发布,生产。

这个时候就需要前端项目根据部署的环境,配置 环境变量 进行打包。

我们可以在前端项目的根目录下新增以下 环境变量文件:

1
2
3
4
5
.env                # 在所有的环境中都会被载入
.env.local # 在所有的环境中都会被载入,会被 git 忽略
.env.[mode] # 在指定的模式中被载入
.env.[mode].local # 在指定的模式中被载入, 会被 git 忽略
.env.develop # 示例

环境变量文件只包含环境变量的 键值对,例如

1
2
// 接口地址
VUE_APP_BASE_URL = 'xxx'

除了自定义的 VUE_APP_* 变量之外,环境变量文件中还有 2 个特殊的变量:

1
2
NODE_ENV       # develop、production、test 中的一个。具体的值取决于运行的模式
BASE_URL # 与 vue.config.js 中的 publicPath 相同,即应用会部署到的基础路径

为一个指定模式的准备环境变量文件如 .env.staging 会比一般的环境变量文件 .env 拥有更高的优先级。

阅读全文 »

重温时间复杂度

发表于 2019-12-19 | 分类于 Algorithm

重温时间复杂度

何为算法(Algorithm) ?

算法是指用来操作数据、解决程序问题的一组方法

衡量算法的优劣:主要从时间和空间两个维度去考量。

时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。
空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。

时间复杂度

T(n) = O(f(n))

其中 n 表示数据规模,O(f(n)) 表示运行算法所需要执行的指令数,和 f(n) 成正比。

参考

程序员必须掌握哪些算法?

Centos 下安装 python3

发表于 2019-12-10 | 分类于 python

Centos 下安装 python3

准备工作

更新 yum

1
sudo yum -y update

安装 yum-utils

一组扩展和补充yum的实用程序和插件

1
sudo yum -y install yum-utils

安装 CentOS 开发工具

用于允许从源代码构建和编译软件

1
sudo yum -y groupinstall development
阅读全文 »

程序员必读的书

发表于 2019-10-29 | 分类于 book

程序员必读的书

作为一个程序员这么多年了,也没正儿八经的读完过几本书,趁着这段时间有空,赶紧提升下自己。

离 2019 年春节还有 3 个月多一点的时间。也别读太多,让自己难以下台。给自己定个小目标先,选两本书,然后争取读完。

技术类的书籍大致可以分为两类:术和道

我看过的绝大多数的技术书都应该属于“术”级别,大多讲解的客观知识、方法和步骤,相当于工具书。

而极少数的技术书属于“道”级别。到底什么是道呢?道就是放之四海而皆准的原理、法则,是经过长时间、大范围的检验、实践和优化而总结出来的经验规律.

术和道的区别,也就是“授人以鱼”和“授人以渔”的区别

阅读全文 »

python 语言学习

发表于 2019-10-19 | 分类于 python

python 语言学习(三)

Python 数据类型

Python 中一切皆为对象。JavaScripts 也如此。

  1. Booleans [布尔型]
    或为 True[真] 或为 False[假]

  2. Numbers [数值型]
    Intergers [整数]: 1,2
    Floats [浮点数]: 1.1, 1.2
    Fractions [分数]: 1/2, 2/3

  3. Strings [字符串型]
    Unicode 字符序列

    阅读全文 »

python 语言学习

发表于 2019-10-10 | 分类于 python

python 语言学习(二)

使用 pip 管理包

使用 pip 程序来安装、升级和移除软件包,默认情况下 pip 将从 Python Package Index 安装软件包.

pip 子命令:search、install、uninstall、freeze等。

可以参阅 安装 Python 模块 指南来了解完整的 pip 文档。

python 对应的是 pip 命令,而 python3 对应的则是 pip3.

安装包

安装最新的包

1
pip install [包名]

安装特定版本的包

1
pip install [包名]==[version]

升级包到最新版本

1
pip install --upgrade [包名]
阅读全文 »
prev12345next

46 日志
14 分类
20 标签
RSS
© 2022 FateZeros