请注意,这是MAC 系统适配的webstrom
如果你的系统是windows ,那么这个版本不适用,再去网上找一找!
请注意,这是一个老版本 2021版
如果你不接受老版本,那么下面的内容就不用看了.
如果你尝试了很多办法都无法继续使用webstrom
不防试一试这款试用版 (无限循环试用,前提是不要升级)
download URL 链接: https://pan.baidu.com/s/1klFAS5mJyWLRGViSq0zomQ
提取码: rqhu
试用方法
下载安装
拖拽直接安装
选择Evaluate
选择30天试用
然后创建一个空项目
把安装包中的 ide-eval-
2023-02-03
2116
开发工具
查看更多
推荐官方下载版本 1.5.10
其他版本可能并不适用此方法!
1.下载安装应用后打开 typora
右下角可以看到 "未激活" 字样.
2.推出 typora
程序坞上右键,退出应用.
3.打开finder
按下快捷键 command+shift+g ,
输入下面的路径,
/Applications/Typora.app/Contents
找到/Resources/TypeMark/page-dist/static/js/LicenseIndex.....如下图
4.使用vscode打开文件 输入 hasActivated="true"e.ha
2023-01-19
1009
开发工具
查看更多
什么是BFF框架 BFF框架指的是一种逻辑分成,而非一种新技术;
即 Backend For Frontend(服务于前端的后端),也就是服务器设计 API 时会考虑前端的使用,并在服务端直接进行业务逻辑的处理,又称为用户体验适配器.
为什么要使用BFF 当然一般情况下后端 api 不需要区别对待不同的前端;
不同的前端平台所带来的差异化不会很大,但有些特殊的商业软件会细分到以上 3 种不同的前端平台.
如果是基于这个假设那么前端每做一点改变都需要后端的支持;
有没有一个中间件平台提供所有前端所需的 api,同时负责和后端交互呢?
对于基本的小改动中间件平台完全可以提供其相应的数据支持,而不
2021-01-21
5933
心得
查看更多
sync 包的简介 Go语言的sync包提供了常见的并发编程控制锁;
在并发编程中锁的主要作用是保证多个线程或者 goroutine在访问同一片内存时不会出现混乱;
golang 中使用 go 语句来开启一个新的协程。 goroutine 是非常轻量的,除了给它分配栈空间,它所占用的内存空间是微乎其微的;
但当多个 goroutine 同时进行处理的时候,就会遇到比如同时抢占一个资源,某个 goroutine 等待另一个 goroutine 处理完某一个步骤之后才能继续的需求。
在 golang 的官方文档上,作者明确指出,golang 并不希望依靠共享内存的方式进行进程的协同操作。
而是希
2021-01-13
5140
go
查看更多
地址 https://docker.mirrors.ustc.edu.cn/
#说明
Docker Hub 镜像缓存
使用说明 注意 由于访问原始站点的网络带宽等条件的限制,导致 Docker Hub, Google Container Registry (gcr.io) 与 Quay Container Registry (quay.io) 的镜像缓存处于基本不可用的状态。故从 2020 年 4 月起,从科大校外对 Docker Hub 镜像缓存的访问会被 302 重定向至其他国内 Docker Hub 镜像源。从 2020 年 8 月 16 日起,从科大校外对 Google Contain
2021-01-03
6801
linux
查看更多
yarn是什么 Yarn是一个用于node.js应用程序的高级包管理软件。它是任意一个其他Nodejs包管理器的快速、安全和可靠的替代方案,比npm更好的解决包依赖问题。本篇文章介绍在CentOS,Redhat和Fedora系统上安装Yarn的方法。
centos下如何安装 使用NPM安装Yarn Yarn组件可与NPM一起安装。只需运行以下命令即可全局安装Yarn。另外,没有-g,就是仅为当前项目安装。
$ sudo npm install yarn -g
用脚本安装Yarn 这是安装Yarn最为推荐的方法。这将下载yarn档案并在home的.yarn目录下提取。脚本还设置了PATH环境
2020-12-27
4765
linux
查看更多
解决Homebrew 更新卡住的问题 brew install 安装软件时会遇到先执行 update ,
而整个update 过程brew 会从 github上下载代码,
github 用的aws ,而aws在我们的网络环境下访问都非常非常慢,
导致 update 会被卡住,或者几k的速度在下载.
给brew 换源 这里推荐试用 中科大的源,
之前换过 阿里的镜像,
但是 阿里镜像里只有brew-core 没有brew-cask ,
导致 update 过程中,依然从 github 拉取 brew-cask的代码, 就算单独把brew-cask 的源换成中科大镜像依然无用.
所以干脆全部换成
2020-12-25
3739
开发工具
查看更多
什么是微服务 微服务极大的改变了服务端引擎的架构方式;
微服务不是一个单一的巨型的用来托管应用程序所有业务逻辑的代码库,而是反映了分布式系统模型,在该模型中,一组应用程序组件协同工作来满足业务需求;
通过遵循十项基本的微服务最佳实践,你可以实现一个高效的微服务生态系统,从而避免不必要的架构复杂性.
单一责任原则 就像代码中的类一样,它仅仅在单个原因情况下改变,微服务也是采用类似的方式建模;
构建可能会改变一个以上的业务这种臃肿的服务是一个非常不好的实践.
例如:你正在构建用于订购披萨的微服务;
你可以基于功能构建下面这些组件,诸如InventoryService,OrderService,P
2020-11-19
3108
Java
查看更多
centos下安装 docker 卸载老版本docker 较旧版本的Docker被称为docker或docker-engine.请卸载它们以及相关的依赖项
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
2020-11-01
7121
开发工具
查看更多
mac下安装 docker 官网下载地址:
https://docs.docker.com/docker-for-mac/install/
安装启动 docker
左小角显示 docker running
shell 执行 docker version
$ docker version
Client: Docker Engine - Community
Cloud integration: 1.0.4
Version: 20.10.0
API version: 1.41
Go version: go1.13.15
Git commit:
2020-10-09
3215
开发工具
查看更多
mongod 启动报错 $ mongod --config /usr/local/etc/mongod.conf
Error parsing YAML config file: yaml-cpp: error at line 9, column 9: illegal map value
try 'mongod --help' for more information
报错原因 mongodb 3.0之后的配置文件采用YAML格式;
YAML 格式约定如下:
: 形式定义配置文件
: 后面如果有 key 前面有空格(一般是2个)不能是tab键 , value 前面必须有一个空格
:
2020-09-19
5458
mongodb
查看更多
go语言中的 switch 可以一个条件一个分支
switch flag {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
}
可以多条件写一个分支
switch flag {
case 1:
fmt.Println("one")
case 2,3,4:
fmt.Println("two,three,four")
}
可以把判断条件写到case 后面 switch {
case flag == 1:
2020-09-12
3318
go
查看更多
go语言实现欧几里得算法 求2个数的最大公约数 辗转相除法
大数对小数求余
余数不为零时,小数对余数求余
余数为零时,小数就是俩个数的最大公约数
package main
import "fmt"
func divisor(min, max int) (maxDivisor int) {
//用大数对小数取余
complement := max % min
//余数不为零,小数作为大数,将余数作为小数,大数对小数递归求余
if complement != 0 {
maxDivisor = divisor(complement, min)
2020-09-10
3173
go
查看更多
go语言中的随机数
math/rand包操作随机数,
rand.Seed(seedNum)方法设定种子值,
rand.Intn(n)获取一个小于n的随机数,[ 同一个种子值,生成的随机数是确定的 ]
所以go语言中的随机数取决于种子的随机性,
一般情况下可以采用系统时间的毫秒数作为种子值.
当种子值相同时 package main
import (
"fmt"
"math/rand"
)
func main() {
rand.Seed(888)
//获取8个小于1000的随机数
for i := 0; i < 8; i++ {
2020-08-03
3484
go
查看更多
Docker Compose是什么
Docker Compose 是一个工具,这个工具可以通过一个 yml 文件定义多容器的 Docker 应用.
通过一条命令就可以根据 yml 文件的定义去创建或者管理多个容器.
什么是yml文件 YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,
YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互.
如何定义yml文件 新建 docker-compose.yml 文件
version: '3.7'
services:
mongodb:
contain
2020-07-11
3553
Docker
查看更多
go 冒泡排序 & 选择排序 冒泡排序
将每一个数同相邻的下一个数对比,如果比下一个数大则交换位置.
func bubble(list []int) []int {
//用来拍断是否完成排序
flag := true
len := len(list)
for i := 0; i < len-1; i++ {
//预设没有发生交换 flag=true,当发生交换,flag=false
flag = true
for j := 0; j < len-1-i; j++ {
2020-07-09
2836
go
查看更多
go语言中的错误处理
go语言中遇到错误,一般直接返回 error ,如果手动无法处理的 error ,可以直接触发 panic .
当遇到一些严重错误,比如数组,切片越界等错误,直接 panic 也会被触发.
panic 一但被触发,当前执行的程序会退出.
package main
import (
"fmt"
)
func main() {
fmt.Println("before panic")
panic("program crash")
fmt.Println("after panic")
}
执行结果:
./prog.go:24:2:
2020-07-02
3540
go
查看更多
代码的整洁和进行合理的分流
http.StripPrefix函数的作用之一,就是在将请求定向到你通过参数指定的请求处理处之前,将特定的prefix从URL中过滤出去.
下面是一个浏览器或HTTP客户端请求资源的例子:
/assets/js/page.min.js
StripPrefix 函数将会过滤掉/assets/,
并将修改过的请求定向到http.FileServer所返回的Handler中去,因此请求的资源将会是:
/js/page.min.js
http.FileServer 返回的Handler将会进行查找,并将与文件夹或文件系统有关的内容以参数的形式返回给你
(在这里你将&
2020-06-12
3622
go
查看更多
回顾 一.之前说到了go中如何实现类 传送门
二.go中如何实现类的封装 传送门
go 语言中如何实现继承 package main
import (
"fmt"
)
type people struct {
name string
age int
}
func (p people) GetName() string {
return p.name
}
type Student struct {
people
grade int
}
func (s Student) GetGrade() int {
return s.gr
2020-06-10
3504
go
查看更多
go中的类的定义和使用 之前一篇博客详细介绍了go语言中如何定义类,使用类,
点击查看
go语言中如何实现封装? go是直接支持strut的封装的,go语言的可见性是根据首字母大小写来实现的.
首字母大写表示对外部可见,类似C#中的public,首字母小写,对外部不可见,类似C#中的private.
package main
import (
"fmt"
)
type Student struct {
name string
age int
}
func (s Student) GetName() string {
return s.name
}
func
2020-06-03
3031
go
查看更多
go语言中的类是如何实现的?
go语言中严格意义来说是没有类的概念,当然也不存在面向对象的封装和继承,
但是go语言可以通过struct 结构体来模拟类的概念,试的我们用起来像是一种类.
struct 如何来实现面向对象的类? struct 首先是一种类型,值类型.它是由一系列具有相同类型或不同类型的数据构成的数据集合.
和c语言的struct很像,用起来就相当于java / c# 中的的class .
struct 的定义 下面的内容中我们直接把struct 称呼为 "类"
type student struct {
name string
age
2020-05-28
5627
go
查看更多
go语言中默认用换行来表示语句结束,那么能不能用分号来代替换行呢?
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
main函数的左花括号必须在main同行,否则出错. 为什么go语言要这么玩呢? 这是为了在语言层面强制让所有使用者统一编程规范.
看看go圣经中的原话, 我来手动打一下: In effect, newlines following certain tokens are converted into semicolons, so where newline
2020-05-23
3495
go
查看更多
容器之间为什么要互访 docker容器与容器之间是隔离状态,不能互相访问,但如果有些依赖关系的服务要如何访问对方呢?
介绍三种方法来解决容器互访问题.
虚拟IP访问 安装docker时,docker会默认创建一个内部的桥接网络docker0,每创建一个容器分配一个虚拟网卡,容器之间可以根据ip互相访问。
运行一个centos镜像, 查看ip地址得到:192.168.32.2
首先通过 docker ps 查看当前电脑上运行的容器实例
$ docker ps
CONTAINER ID IMAGE COMMAND CREATE
2020-04-20
4452
Docker
查看更多
docker 创建mongodb 容器 安装 mongodb 镜像 拉取官方镜像
docker pull mongo
本地创建数据库目录 # zhangzhi @ ZhangZhi-MacBook-Pro in ~ [9:03:15]
$ sudo mkdir mongodb
不要忘记给目录 777 权限
sudo chmod 777 mongodb
本地配置文件目录 # zhangzhi @ ZhangZhi-MacBook-Pro in ~ [9:27:24] C:130
$ sudo mkdir docker/mongodb
不要忘记给目录 777 权限
sudo chmod
2020-04-09
9666
Docker
查看更多
前言 在面向对象语言中,我们很容易理解对象及对象的实例,
但是sequelize ORM框架中我们通常会说成模型和实例.
模型可以理解为对一个表结构的抽象定义,好比工厂的一条流水线,
实例可以理解为表结构中一个具体的数据结构,好比流水线生产出来的一个商品.
在sequelize 类中有一些api是针对实例操作 (可以理解成内存中的改变)
实例持久化以后,数据才写入我们物理存储单元中 (比如具体的数据库)
新建实例并持久化 定义模型 const Task = sequelize.define('task', {
title: Sequelize.STRING,
rating: { type
2020-03-27
4825
javascript
查看更多
查询操作符 Sequelize提供了一整套查询操作符,下面分别列出来看下
比较操作符 const Op = Sequelize.Op
[Op.and]: {a: 5} // AND (a = 5)
[Op.or]: [{a: 5}, {a: 6}] // (a = 5 OR a = 6)
[Op.gt]: 6, // > 6
[Op.gte]: 6, // >= 6
[Op.lt]: 10, // < 10
[Op.lte]: 10, //
2020-03-26
7942
javascript
查看更多
前言 最近把代码进行升级,原来旧版本的Sequelize 也一下升级的V5.0版本,
为了学习使用方便,统一把 Sequelize 5.0 更新,移除,替换,升级的内容标记一下.
对node的支持 Sequelize v5 将仅支持 Node 6 以及更高版本
安全的运算符 在 v4 中,就开始收到弃用警告 String based operators are now deprecated (基于字符串的运算符现在已弃用).
同时也介绍了运算符的概念.这些运算符是一些防止散列注入攻击的符号.
在V5 版本中,运算符默认启用.
你仍然可以通过在 operatorsAliases 中传递一个运算
2020-03-26
4826
javascript
查看更多
curl curl是linux系统中一个利用URL规则在命令行下工作的文件传输工具.
语法 curl [option] [url]
参数 -A/--user-agent <string> 设置用户代理发送给服务器
-b/--cookie <name=string/file> cookie字符串或文件读取位置
-c/--cookie-jar <file> 操作结束后把cookie写入到这个文件中
-C/--continue-at <offset> 断
2020-03-17
5014
linux
查看更多
前言 在使用sequelize ORM框架时一定要先创建模型对象.
对象模型对应的就是数据库中表,字段及字段类型等的定义.
我们一般的做法是先在nodejs中将对象创建出来,然后调用Sequelize的同步方法,将数据库自动创建出来.
这样就避免了既要写代码建表,又要手工创建数据库中的表的操作.
只需要单独考虑代码中的对象类型等属性就好了.
如果数据库中已经建好了表,并且不能删除,这个时候就不能自动创建了,因为创建的时候会删除掉旧的数据
定义模型
名称类型说明
modelNameString模型名,在sequelize.models属性中会使用这个名称;
如果没有在options中指定
2020-02-28
5697
javascript
查看更多
前言 Node.js 社区中,sequelize 应该是最好用的 ORM 框架,它支持多种数据库,包括 PostgreSQL ,MySQL ,SQLite 和 MSSQL.
安装 npm install --save sequelize
在你的项目中使用了哪种数据源,那么对应的去安装此数据源的驱动程序:
$ npm install --save pg pg-hstore # PostgreSQL
$ npm install --save mysql2 # MySQL
$ npm install --save mariadb # Mariadb (mysql的孪生兄弟)
$ n
2020-02-24
6467
javascript
查看更多