cosyer's Blog

Blog


  • 首页

  • 友链

  • 留言板

  • 归档

  • 关于

  • 搜索
11月
18
更新于
11月18
2020
React

react面试题记录

发表于 2018-06-07 | 热度 ℃
| 字数统计: 10,197 (字) | 阅读时长: 39 (分钟)
reactInterview
阅读全文 »
11月
16
更新于
11月16
2020
工具

macvscode更新失败:Permissiondenied解决办法

发表于 2019-04-09 | 热度 ℃
| 字数统计: 520 (字) | 阅读时长: 2 (分钟)

场景 – mac vscode不能安装更新

Could not create temporary directory: Permission denied

原因分析

mac下/Users/username/Library/Caches/用户文件不一样,root和username

导致

drwxr-xr-x 6 username staff 204B Jan 17 20:33 com.microsoft.VSCode drwxr–r– 2 root staff 68B Dec 17 13:51 com.microsoft.VSCode.ShipIt

解决方案

1
2
3
4
5
6
7
8
9
10
// 1. 关闭vscode

// 2. 这一步是需要输入密码的
sudo chown $USER ~/Library/Caches/com.microsoft.VSCode.ShipIt/

// 3. 这一步是不需要输入密码的, 如果不进行第一步,第二步会报错
sudo chown $USER ~/Library/Caches/com.microsoft.VSCode.ShipIt/*

// 4. 更新xattr
xattr -dr com.apple.quarantine /Applications/Visual\ Studio\ Code.app

重新安装更新 完成😁

Mac版本下的Chrome,双击html文件打不开

原因其实是因为在Mac OS系统下,在Finder(访达)中做任何操作,文件都会不可避免的被附加上一个特有的拓展属性(extend attributes),可以通过终端命令ls -l查看,这些文件通常都会有@作为标记,因此,由于产品的原型是由Axure来制作的,然后导出了tar的压缩包,因此我们解压之后,通常都不能直接在浏览器打开!

怎么解决这种问题呢?

我们可以清除掉这个属性(extend attributes)!

  1. 可以针对单个文件做清除操作(filename就是要文件名,例如:index.html)

    1
    xattr -c filename
  2. 也可以针对整个目录做清除操作(directory就是目录名,例如:content)

    1
    xattr -rc directory

重启电池smc

1
2
3
4
5
6
7
8
将 Mac 关机。
在内建键盘上,按住以下所有按键。Mac 可能会开机。
键盘左侧的 Control
键盘左侧的 Option (Alt)
键盘右侧的 Shift
按住全部三个按键 7 秒钟,然后在不松开按键的情况下按住电源按钮。如果 Mac 处于开机状态,它将在您按住这些按键时关机。
继续按住全部四个按键 7 秒钟,然后松开这些按键。
等待几秒钟,然后按下电源按钮以将 Mac 开机。
11月
13
更新于
11月13
2020
JS

TypeScript 中,interface 和 type 的区别

发表于 2020-05-18 | 热度 ℃
| 字数统计: 432 (字) | 阅读时长: 2 (分钟)

interface是接口,type是类型,本身就是两个概念。只是碰巧表现上比较相似。希望定义一个变量类型,就用type,如果希望是能够继承并约束的,就 用interface。如果你不知道该用哪个,说明你只是想定义一个类型而非接口,所以应该用type。

在 TypeScript 中,interface 和 type 主要用于类型的声明,它们的相同点以及区别如下:


阅读全文 »
11月
12
更新于
11月12
2020
知识

测试的分类

发表于 2020-11-12 | 热度 ℃
| 字数统计: 925 (字) | 阅读时长: 3 (分钟)

一直以来,我都听到过各式各样的测试——单元测试、黑盒测试、压力测试等等,但是很难对所有的测试方式有一个总体的认知。

在经过大量的谷歌之后,我终于把各种种类的测试弄清白了,下面针对每一种测试做一个简单的一句话介绍,更详细的介绍可以自行搜索。


阅读全文 »
11月
11
更新于
11月11
2020
React

react源码解析系列二(React Render)

发表于 2020-11-11 | 热度 ℃
| 字数统计: 2,272 (字) | 阅读时长: 11 (分钟)

创建更新的方式

  1. render || hydrate
  2. setState
  3. forceUpdate

render的步骤

  1. 创建 ReactRoot
  2. 创建FiberRoot RootFiber
  3. 创建更新

后续的是进入调度后,由调度器进行管理


阅读全文 »
11月
10
更新于
11月10
2020
JS

超详细的TypeScript教程

发表于 2020-06-28 | 热度 ℃
| 字数统计: 7,858 (字) | 阅读时长: 35 (分钟)

typescript

TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。

区别

TypeScript JavaScript
JavaScript 的超集用于解决大型项目的代码复杂性 一种脚本语言,用于创建动态网页
可以在编译期间发现并纠正错误 作为一种解释型语言,只能在运行时发现错误
强类型,支持静态和动态类型 弱类型,没有静态类型选项
最终被编译成 JavaScript 代码,使浏览器可以理解 可以直接在浏览器中使用
支持模块、泛型和接口 不支持模块,泛型或接口
支持 ES3,ES4,ES5 和 ES6 等 不支持编译其他 ES3,ES4,ES5 或 ES6 功能
社区的支持仍在增长,而且还不是很大 大量的社区支持以及大量文档和解决问题的支持

安装

1
npm install -g typescript

编译

1
2
tsc helloworld.ts
// helloworld.ts => helloworld.js

在线学习语法和特性


阅读全文 »
10月
15
更新于
10月15
2020
JS

常见排序的JS实现

发表于 2018-06-25 | 热度 ℃
| 字数统计: 785 (字) | 阅读时长: 4 (分钟)

https://github.com/damonare/Sorts 这位大兄弟♂总结的很好,快去看看吧!

阅读全文 »
10月
14
更新于
10月14
2020
JS

深入理解JS的类型、值和类型转换

发表于 2019-03-07 | 热度 ℃
| 字数统计: 739 (字) | 阅读时长: 4 (分钟)

image


阅读全文 »
10月
08
更新于
10月08
2020
工具

【Mac 终端配置】iTerm2 + oh-my-zsh

发表于 2020-06-21 | 热度 ℃
| 字数统计: 1,045 (字) | 阅读时长: 5 (分钟)

安装iterm2

  • 官网下载 下载完,拖到应用程序里即可

iterm2配置配色方案

  • 下载复制文件内容

  • 保存为文件SolarizedDarkHigherContrast.itermcolors,双击安装

  • 打开 iTerm2 终端,依次在菜单栏选择:iTerm2 –> Preferences –> Profiles –> Colors –> Colors Presets –> SolarizedDarkHigherContrast

恢复iterm2默认设置

1
defaults delete com.googlecode.iterm2

前置校验

1
2
3
4
5
6
7
8
9
# 1、默认已安装 Homebrew、iTerm2
# 2、查看是否安装了zsh,查看是否返回 /usr/bin/zsh
cat /etc/shells
# 若未安装
brew install zsh

# iTerm2 启动项配置
chsh -s /bin/zsh # 设置为zsh
chsh -s /bin/bash # 设置为bash(Mac自带默认)

阅读全文 »
10月
07
更新于
10月07
2020
工具

Docker

发表于 2020-06-01 | 热度 ℃
| 字数统计: 4,071 (字) | 阅读时长: 17 (分钟)

Docker,是一款现在最流行的 软件容器平台,提供了软件运行时所依赖的环境。

物理机

硬件环境,真实的 计算机实体,包含了例如物理内存,硬盘等等硬件;

虚拟机:

在物理机上 模拟出一套硬件环境和操作系统,应用软件可以运行于其中,并且毫无感知,是一套隔离的完整环境。本质上,它只是物理机上的一份运行文件。

为什么需要虚拟机?

环境配置与迁移

在软件开发和运行中,环境依赖一直是一个很头疼的难题,比如你想运行 node 应用,那至少环境得安装 node 吧,而且不同版本,不同系统都会影响运行。解决的办法就是我们的包装包中直接包含运行环境的安装,让同一份环境可以快速复制到任意一台物理机上。

资源利用率与隔离

通过硬件模拟,并包含一套完整的操作系统,应用可以独立运行在虚拟机中,与外界隔离。并且可以在同一台物理机上,开启多个不同的虚拟机启动服务,即一台服务器,提供多套服务,且资源完全相互隔离,互不影响。不仅能更好提高资源利用率率,降低成本,而且也有利于服务的稳定性。

传统虚拟机的缺点

资源占用大

由于虚拟机是模拟出一套完整系统,包含众多系统级别的文件和库,运行也需要占用一部分资源,单单启动一个空的虚拟机,可能就要占用 100+MB 的内存了。

启动缓慢

同样是由于完整系统,在启动过程中就需要运行各种系统应用和步骤,也就是跟我们平时启动电脑一样的耗时。

冗余步骤多

系统有许多内置的系统操作,例如用户登录,系统检查等等,有些场景其实我们要的只是一个隔离的环境,其实也就是说,虚拟机对部分需求痛点来说,其实是有点过重的。

Linux 容器

Linux 中的一项虚拟化技术,称为 Linux 容器技术(LXC)。它在进程层面模拟出一套隔离的环境配置,但并没有模拟硬件和完整的操作系统。因此它完全规避了传统虚拟机的缺点,在启动速度,资源利用上远远优于虚拟机;


阅读全文 »
1234…16
陈宇(cosyer)

陈宇(cosyer)

不去做的话永远也做不到。

159 日志
10 分类
51 标签
RSS
GitHub Twitter E-Mail FB Page
推荐阅读
  • Callmesoul
  • JsTips
  • Personal Site
  • Resume
© 2021 陈宇(cosyer)
终于等到你(UV):   |   欢迎再来(PV):
Blog总字数: 312.5k字
苏ICP备17005342号-1